aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog846
-rw-r--r--gcc/DATESTAMP2
-rw-r--r--gcc/Makefile.in79
-rw-r--r--gcc/alias.c78
-rw-r--r--gcc/basic-block.h3
-rw-r--r--gcc/builtins.c49
-rw-r--r--gcc/c-common.c25
-rw-r--r--gcc/c-common.h1
-rw-r--r--gcc/c-decl.c23
-rw-r--r--gcc/c-parser.c5
-rw-r--r--gcc/c-pretty-print.c11
-rw-r--r--gcc/c-typeck.c12
-rw-r--r--gcc/caller-save.c2
-rw-r--r--gcc/cfgcleanup.c2
-rw-r--r--gcc/cfglayout.c4
-rw-r--r--gcc/cfgloop.h17
-rw-r--r--gcc/cgraph.h8
-rw-r--r--gcc/cgraphunit.c19
-rw-r--r--gcc/common.opt2
-rw-r--r--gcc/config.gcc52
-rw-r--r--gcc/config/arm/arm.c6
-rw-r--r--gcc/config/dfp-bit.c2
-rw-r--r--gcc/config/fr30/fr30.h15
-rw-r--r--gcc/config/fr30/fr30.md16
-rw-r--r--gcc/config/i386/i386.c173
-rw-r--r--gcc/config/m32c/m32c.h3
-rw-r--r--gcc/config/mips/mips.c14
-rw-r--r--gcc/config/mmix/mmix.h1
-rw-r--r--gcc/config/pa/pa.c56
-rw-r--r--gcc/config/pa/pa.md276
-rw-r--r--gcc/config/pa/t-pa648
-rw-r--r--gcc/config/rs6000/e500-double.h4
-rw-r--r--gcc/config/rs6000/rs6000.c62
-rw-r--r--gcc/config/rs6000/rs6000.h5
-rw-r--r--gcc/config/rs6000/sfp-machine.h63
-rw-r--r--gcc/config/rs6000/t-fprules12
-rw-r--r--gcc/config/rs6000/t-fprules-fpbit11
-rw-r--r--gcc/config/rs6000/t-fprules-softfp6
-rw-r--r--gcc/config/rs6000/t-linux6421
-rw-r--r--gcc/config/rs6000/t-ppccomm2
-rw-r--r--gcc/config/s390/s390.md108
-rw-r--r--gcc/config/sh/embed-elf.h9
-rw-r--r--gcc/config/sh/lib1funcs-Os-4-200.asm325
-rw-r--r--gcc/config/sh/lib1funcs.asm44
-rw-r--r--gcc/config/sh/lib1funcs.h69
-rw-r--r--gcc/config/sh/sh.h4
-rw-r--r--gcc/config/sh/sh.md2
-rw-r--r--gcc/config/sh/symbian.c6
-rw-r--r--gcc/config/sh/t-elf2
-rw-r--r--gcc/config/sh/t-sh10
-rw-r--r--gcc/config/sh/t-superh2
-rw-r--r--gcc/config/sh/t-symbian4
-rw-r--r--gcc/config/soft-fp/README4
-rw-r--r--gcc/config/soft-fp/adddf3.c49
-rw-r--r--gcc/config/soft-fp/addsf3.c50
-rw-r--r--gcc/config/soft-fp/addtf3.c49
-rw-r--r--gcc/config/soft-fp/divdf3.c49
-rw-r--r--gcc/config/soft-fp/divsf3.c49
-rw-r--r--gcc/config/soft-fp/divtf3.c49
-rw-r--r--gcc/config/soft-fp/double.h264
-rw-r--r--gcc/config/soft-fp/eqdf2.c51
-rw-r--r--gcc/config/soft-fp/eqsf2.c51
-rw-r--r--gcc/config/soft-fp/eqtf2.c51
-rw-r--r--gcc/config/soft-fp/extenddftf2.c54
-rw-r--r--gcc/config/soft-fp/extended.h453
-rw-r--r--gcc/config/soft-fp/extendsfdf2.c54
-rw-r--r--gcc/config/soft-fp/extendsftf2.c54
-rw-r--r--gcc/config/soft-fp/fixdfdi.c46
-rw-r--r--gcc/config/soft-fp/fixdfsi.c46
-rw-r--r--gcc/config/soft-fp/fixsfdi.c46
-rw-r--r--gcc/config/soft-fp/fixsfsi.c46
-rw-r--r--gcc/config/soft-fp/fixtfdi.c46
-rw-r--r--gcc/config/soft-fp/fixtfsi.c46
-rw-r--r--gcc/config/soft-fp/fixunsdfdi.c46
-rw-r--r--gcc/config/soft-fp/fixunsdfsi.c46
-rw-r--r--gcc/config/soft-fp/fixunssfdi.c46
-rw-r--r--gcc/config/soft-fp/fixunssfsi.c46
-rw-r--r--gcc/config/soft-fp/fixunstfdi.c46
-rw-r--r--gcc/config/soft-fp/fixunstfsi.c46
-rw-r--r--gcc/config/soft-fp/floatdidf.c46
-rw-r--r--gcc/config/soft-fp/floatdisf.c46
-rw-r--r--gcc/config/soft-fp/floatditf.c46
-rw-r--r--gcc/config/soft-fp/floatsidf.c46
-rw-r--r--gcc/config/soft-fp/floatsisf.c46
-rw-r--r--gcc/config/soft-fp/floatsitf.c46
-rw-r--r--gcc/config/soft-fp/floatundidf.c47
-rw-r--r--gcc/config/soft-fp/floatundisf.c47
-rw-r--r--gcc/config/soft-fp/floatunditf.c47
-rw-r--r--gcc/config/soft-fp/floatunsidf.c47
-rw-r--r--gcc/config/soft-fp/floatunsisf.c47
-rw-r--r--gcc/config/soft-fp/floatunsitf.c47
-rw-r--r--gcc/config/soft-fp/gedf2.c51
-rw-r--r--gcc/config/soft-fp/gesf2.c51
-rw-r--r--gcc/config/soft-fp/getf2.c51
-rw-r--r--gcc/config/soft-fp/ledf2.c51
-rw-r--r--gcc/config/soft-fp/lesf2.c51
-rw-r--r--gcc/config/soft-fp/letf2.c51
-rw-r--r--gcc/config/soft-fp/muldf3.c49
-rw-r--r--gcc/config/soft-fp/mulsf3.c49
-rw-r--r--gcc/config/soft-fp/multf3.c49
-rw-r--r--gcc/config/soft-fp/negdf2.c48
-rw-r--r--gcc/config/soft-fp/negsf2.c48
-rw-r--r--gcc/config/soft-fp/negtf2.c48
-rw-r--r--gcc/config/soft-fp/op-1.h302
-rw-r--r--gcc/config/soft-fp/op-2.h615
-rw-r--r--gcc/config/soft-fp/op-4.h686
-rw-r--r--gcc/config/soft-fp/op-8.h111
-rw-r--r--gcc/config/soft-fp/op-common.h1330
-rw-r--r--gcc/config/soft-fp/quad.h271
-rw-r--r--gcc/config/soft-fp/single.h151
-rw-r--r--gcc/config/soft-fp/soft-fp.h209
-rw-r--r--gcc/config/soft-fp/subdf3.c49
-rw-r--r--gcc/config/soft-fp/subsf3.c49
-rw-r--r--gcc/config/soft-fp/subtf3.c49
-rw-r--r--gcc/config/soft-fp/t-softfp108
-rw-r--r--gcc/config/soft-fp/truncdfsf2.c54
-rw-r--r--gcc/config/soft-fp/trunctfdf2.c54
-rw-r--r--gcc/config/soft-fp/trunctfsf2.c54
-rw-r--r--gcc/config/soft-fp/unorddf2.c45
-rw-r--r--gcc/config/soft-fp/unordsf2.c46
-rw-r--r--gcc/config/soft-fp/unordtf2.c46
-rw-r--r--gcc/config/sparc/sparc.c168
-rw-r--r--gcc/cp/ChangeLog192
-rw-r--r--gcc/cp/Make-lang.in2
-rw-r--r--gcc/cp/call.c83
-rw-r--r--gcc/cp/class.c65
-rw-r--r--gcc/cp/cp-tree.h27
-rw-r--r--gcc/cp/cvt.c1
-rw-r--r--gcc/cp/decl.c271
-rw-r--r--gcc/cp/decl2.c55
-rw-r--r--gcc/cp/friend.c9
-rw-r--r--gcc/cp/init.c341
-rw-r--r--gcc/cp/method.c11
-rw-r--r--gcc/cp/parser.c167
-rw-r--r--gcc/cp/pt.c26
-rw-r--r--gcc/cp/rtti.c6
-rw-r--r--gcc/cp/semantics.c3
-rw-r--r--gcc/cp/typeck.c63
-rw-r--r--gcc/cp/typeck2.c2
-rw-r--r--gcc/df-core.c2
-rw-r--r--gcc/df-problems.c4
-rw-r--r--gcc/doc/install.texi5
-rw-r--r--gcc/doc/invoke.texi11
-rw-r--r--gcc/doc/tm.texi30
-rw-r--r--gcc/dominance.c4
-rw-r--r--gcc/double-int.h2
-rw-r--r--gcc/dwarf2out.c831
-rw-r--r--gcc/except.c42
-rw-r--r--gcc/except.h1
-rw-r--r--gcc/expr.c23
-rw-r--r--gcc/flow.c2
-rw-r--r--gcc/fold-const.c475
-rw-r--r--gcc/fortran/ChangeLog90
-rw-r--r--gcc/fortran/expr.c46
-rw-r--r--gcc/fortran/intrinsic.c2
-rw-r--r--gcc/fortran/iresolve.c11
-rw-r--r--gcc/fortran/parse.c6
-rw-r--r--gcc/fortran/resolve.c128
-rw-r--r--gcc/fortran/trans-array.c70
-rw-r--r--gcc/fortran/trans-decl.c6
-rw-r--r--gcc/fortran/trans-expr.c10
-rw-r--r--gcc/fortran/trans-intrinsic.c1
-rw-r--r--gcc/fortran/trans-io.c12
-rw-r--r--gcc/fortran/trans-openmp.c2
-rw-r--r--gcc/function.c58
-rw-r--r--gcc/function.h16
-rw-r--r--gcc/gcc.c4
-rw-r--r--gcc/gcse.c10
-rw-r--r--gcc/genextract.c5
-rw-r--r--gcc/gimple-low.c15
-rw-r--r--gcc/gimplify.c3
-rw-r--r--gcc/global.c1
-rw-r--r--gcc/haifa-sched.c44
-rw-r--r--gcc/ifcvt.c113
-rw-r--r--gcc/ipa-cp.c10
-rw-r--r--gcc/java/ChangeLog20
-rw-r--r--gcc/java/class.c203
-rw-r--r--gcc/java/constants.c23
-rw-r--r--gcc/java/decl.c8
-rw-r--r--gcc/java/java-tree.h9
-rw-r--r--gcc/java/jvgenmain.c10
-rw-r--r--gcc/java/lang.c3
-rw-r--r--gcc/java/lang.opt4
-rw-r--r--gcc/java/mangle.c15
-rw-r--r--gcc/jump.c2
-rw-r--r--gcc/lambda-code.c4
-rw-r--r--gcc/local-alloc.c6
-rw-r--r--gcc/mips-tfile.c2
-rw-r--r--gcc/mklibgcc.in6
-rw-r--r--gcc/omp-low.c951
-rw-r--r--gcc/params.def6
-rw-r--r--gcc/params.h2
-rw-r--r--gcc/po/ChangeLog5
-rw-r--r--gcc/po/de.po3987
-rw-r--r--gcc/po/es.po8889
-rw-r--r--gcc/po/sv.po1884
-rw-r--r--gcc/po/zh_TW.po28574
-rw-r--r--gcc/print-tree.c3
-rw-r--r--gcc/profile.c180
-rw-r--r--gcc/reg-stack.c4
-rw-r--r--gcc/regclass.c38
-rw-r--r--gcc/regs.h27
-rw-r--r--gcc/reload.c8
-rw-r--r--gcc/reload.h2
-rw-r--r--gcc/reload1.c5
-rw-r--r--gcc/rtlanal.c77
-rw-r--r--gcc/sched-int.h2
-rw-r--r--gcc/stor-layout.c31
-rw-r--r--gcc/target-def.h5
-rw-r--r--gcc/target.h8
-rw-r--r--gcc/targhooks.c9
-rw-r--r--gcc/targhooks.h1
-rw-r--r--gcc/testsuite/ChangeLog330
-rw-r--r--gcc/testsuite/g++.dg/abi/bitfield1.C2
-rw-r--r--gcc/testsuite/g++.dg/abi/bitfield2.C4
-rw-r--r--gcc/testsuite/g++.dg/compat/abi/bitfield1_main.C2
-rw-r--r--gcc/testsuite/g++.dg/compat/abi/bitfield1_x.C2
-rw-r--r--gcc/testsuite/g++.dg/compat/abi/bitfield1_y.C2
-rw-r--r--gcc/testsuite/g++.dg/compat/abi/bitfield2_main.C2
-rw-r--r--gcc/testsuite/g++.dg/compat/abi/bitfield2_x.C2
-rw-r--r--gcc/testsuite/g++.dg/compat/abi/bitfield2_y.C2
-rw-r--r--gcc/testsuite/g++.dg/conversion/dynamic1.C15
-rw-r--r--gcc/testsuite/g++.dg/debug/dwarf2-2.C17
-rw-r--r--gcc/testsuite/g++.dg/expr/call3.C12
-rw-r--r--gcc/testsuite/g++.dg/gomp/block-0.C2
-rw-r--r--gcc/testsuite/g++.dg/gomp/pr26823-1.C23
-rw-r--r--gcc/testsuite/g++.dg/gomp/pr26823-2.C29
-rw-r--r--gcc/testsuite/g++.dg/init/bitfield1.C6
-rw-r--r--gcc/testsuite/g++.dg/opt/bitfield1.C18
-rw-r--r--gcc/testsuite/g++.dg/opt/pr15551.C3
-rw-r--r--gcc/testsuite/g++.dg/other/incomplete2.C14
-rw-r--r--gcc/testsuite/g++.dg/parse/dtor7.C2
-rw-r--r--gcc/testsuite/g++.dg/parse/new1.C4
-rw-r--r--gcc/testsuite/g++.dg/parse/ptrmem4.C4
-rw-r--r--gcc/testsuite/g++.dg/parse/template19.C11
-rw-r--r--gcc/testsuite/g++.dg/template/crash35.C2
-rw-r--r--gcc/testsuite/g++.dg/template/crash45.C13
-rw-r--r--gcc/testsuite/g++.dg/template/crash46.C5
-rw-r--r--gcc/testsuite/g++.dg/template/friend41.C11
-rw-r--r--gcc/testsuite/g++.dg/template/new3.C17
-rw-r--r--gcc/testsuite/g++.dg/template/pure1.C6
-rw-r--r--gcc/testsuite/g++.dg/tree-ssa/pr27218.C17
-rw-r--r--gcc/testsuite/g++.old-deja/g++.brendan/friend4.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/friend36.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/incomplete1.C2
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20000804-1.c1
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20001226-1.c1
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20010327-1.c3
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20020604-1.c1
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20050303-1.c3
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20060419-1.c21
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20060421-1.c9
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/980506-1.c1
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr27087.c23
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20020404-1.x12
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20021024-1.x8
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20040629-1.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20040703-1.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20040705-1.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20040705-2.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20040709-1.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20040709-2.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20040811-1.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20050316-1.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/bitfld-4.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/pr19689.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/pr7284-1.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/shiftdi.x8
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/usmul.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/vrp-5.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/vrp-6.x7
-rw-r--r--gcc/testsuite/gcc.dg/20020312-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/20040622-2.c1
-rw-r--r--gcc/testsuite/gcc.dg/20050321-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/20050321-2.c1
-rw-r--r--gcc/testsuite/gcc.dg/20060410.c16
-rw-r--r--gcc/testsuite/gcc.dg/20060419-1.c4
-rw-r--r--gcc/testsuite/gcc.dg/arm-vfp1.c1
-rw-r--r--gcc/testsuite/gcc.dg/asm-1.c1
-rw-r--r--gcc/testsuite/gcc.dg/fold-cond-1.c28
-rw-r--r--gcc/testsuite/gcc.dg/fold-mod-1.c1
-rw-r--r--gcc/testsuite/gcc.dg/fold-overflow-1.c1
-rw-r--r--gcc/testsuite/gcc.dg/format/bitfld-1.c5
-rw-r--r--gcc/testsuite/gcc.dg/init-bad-4.c5
-rw-r--r--gcc/testsuite/gcc.dg/init-string-2.c1
-rw-r--r--gcc/testsuite/gcc.dg/max-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/noncompile/920923-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/pch/struct-1.c1
-rw-r--r--gcc/testsuite/gcc.dg/pr14796-2.c1
-rw-r--r--gcc/testsuite/gcc.dg/pr17112-1.c1
-rw-r--r--gcc/testsuite/gcc.dg/pr18241-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/pr18241-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/pr19340.c2
-rw-r--r--gcc/testsuite/gcc.dg/pr23049.c1
-rw-r--r--gcc/testsuite/gcc.dg/pr26961-1.c8
-rw-r--r--gcc/testsuite/gcc.dg/pr27314.c14
-rw-r--r--gcc/testsuite/gcc.dg/sibcall-7.c43
-rw-r--r--gcc/testsuite/gcc.dg/struct-parse-1.c11
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr26565.c2
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr26587.c1
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr26630.c1
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr26869.c7
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/loop-10.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/loop-2.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/loop-4.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ltrans-1.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ltrans-2.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ltrans-3.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ltrans-4.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr14341.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr23382.c2
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr24627.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr26180.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr27236.c19
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-3.c2
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-4.c2
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-5.c2
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/vrp14.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/vrp21.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/vrp22.c1
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-fold-1.c16
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-recip.c18
-rw-r--r--gcc/testsuite/gcc.dg/vmx/pr27006.c23
-rw-r--r--gcc/testsuite/gcc.target/i386/20050113-1.c2
-rw-r--r--gcc/testsuite/gcc.target/i386/sse-18.c38
-rw-r--r--gcc/testsuite/gcc.target/i386/sse-19.c29
-rw-r--r--gcc/testsuite/gcc.target/i386/vecinit-1.c11
-rw-r--r--gcc/testsuite/gcc.target/i386/vecinit-2.c11
-rw-r--r--gcc/testsuite/gcc.target/i386/vecinit-3.c8
-rw-r--r--gcc/testsuite/gcc.target/i386/vecinit-4.c7
-rw-r--r--gcc/testsuite/gfortran.dg/allocate_zerosize_1.f9031
-rw-r--r--gcc/testsuite/gfortran.dg/array_return_value_1.f9024
-rw-r--r--gcc/testsuite/gfortran.dg/assumed_charlen_function_1.f908
-rw-r--r--gcc/testsuite/gfortran.dg/assumed_size_refs_1.f902
-rw-r--r--gcc/testsuite/gfortran.dg/auto_char_pointer_array_result_1.f9036
-rw-r--r--gcc/testsuite/gfortran.dg/auto_pointer_array_result_1.f9036
-rw-r--r--gcc/testsuite/gfortran.dg/bounds_temporaries_1.f9064
-rw-r--r--gcc/testsuite/gfortran.dg/character_array_constructor_1.f9047
-rw-r--r--gcc/testsuite/gfortran.dg/defined_operators_1.f9056
-rw-r--r--gcc/testsuite/gfortran.dg/elemental_subroutine_4.f9038
-rw-r--r--gcc/testsuite/gfortran.dg/g77/20030115-1.f17
-rw-r--r--gcc/testsuite/gfortran.dg/label_1.f902
-rw-r--r--gcc/testsuite/gfortran.dg/namelist_4.f905
-rw-r--r--gcc/testsuite/gfortran.dg/proc_assign_1.f9078
-rw-r--r--gcc/testsuite/gfortran.dg/procedure_lvalue.f902
-rw-r--r--gcc/testsuite/gfortran.dg/read_bad_advance.f9032
-rw-r--r--gcc/testsuite/gfortran.dg/specification_type_resolution_1.f9031
-rw-r--r--gcc/testsuite/gfortran.dg/write_recursive.f9039
-rw-r--r--gcc/testsuite/lib/gcc-defs.exp2
-rw-r--r--gcc/testsuite/lib/target-supports.exp37
-rw-r--r--gcc/timevar.def1
-rw-r--r--gcc/tree-cfg.c105
-rw-r--r--gcc/tree-cfgcleanup.c3
-rw-r--r--gcc/tree-complex.c2
-rw-r--r--gcc/tree-flow.h45
-rw-r--r--gcc/tree-gimple.c3
-rw-r--r--gcc/tree-inline.c13
-rw-r--r--gcc/tree-into-ssa.c7
-rw-r--r--gcc/tree-mudflap.c11
-rw-r--r--gcc/tree-outof-ssa.c10
-rw-r--r--gcc/tree-pretty-print.c9
-rw-r--r--gcc/tree-ssa-alias.c94
-rw-r--r--gcc/tree-ssa-copy.c15
-rw-r--r--gcc/tree-ssa-dom.c4
-rw-r--r--gcc/tree-ssa-dse.c2
-rw-r--r--gcc/tree-ssa-live.c32
-rw-r--r--gcc/tree-ssa-live.h5
-rw-r--r--gcc/tree-ssa-loop-prefetch.c2
-rw-r--r--gcc/tree-ssa-math-opts.c33
-rw-r--r--gcc/tree-ssa-operands.c3
-rw-r--r--gcc/tree-ssa-reassoc.c4
-rw-r--r--gcc/tree-ssa-structalias.c2
-rw-r--r--gcc/tree-ssa-structalias.h7
-rw-r--r--gcc/tree-tailcall.c2
-rw-r--r--gcc/tree-vrp.c2
-rw-r--r--gcc/tree.c14
-rw-r--r--gcc/tree.def17
-rw-r--r--gcc/tree.h26
-rw-r--r--gcc/treelang/ChangeLog4
-rw-r--r--gcc/treelang/Make-lang.in5
-rw-r--r--gcc/value-prof.c16
-rw-r--r--gcc/vecprim.h30
384 files changed, 50319 insertions, 10397 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 11092923e4c..f41b3a939d2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,841 @@
+2006-04-24 Mark Mitchell <mark@codesourcery.com>
+
+ Revert:
+ 2006-04-23 Mark Mitchell <mark@codesourcery.com>
+ * configure.ac: Completely disregard languages that are not
+ enabled.
+ * configure: Regenerated.
+
+2006-04-24 Andrew Pinski <pinskia@gcc.gnu.org>
+ Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/27236
+ * tree-inline.c (copy_body_r): Make sure to copy
+ TREE_THIS_VOLATILE flag.
+
+2006-04-24 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/26869
+ * tree-complex.c (update_parameter_components): Don't handle
+ unused parameters which have no default def.
+
+2006-04-24 Andrew Pinski <pinskia@gcc.gnu.org>
+ Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/27218
+ * tree-inline.c (expand_call_inline): Strip useless type
+ conversions for the return slot address.
+
+2006-04-24 Richard Guenther <rguenther@suse.de>
+
+ * cfgloop.h (struct loops): Remove unused field array. Reorder
+ state after num.
+ (LOOP_PREFETCH): Remove.
+
+2006-04-24 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/22525
+ * value-prof.c (tree_mod_pow2): Remove unnecessary temporary
+ variable, adjust types of generated expressions.
+
+2006-04-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ * Makefile.in (c-convert.o): Add dependency on $(TARGET_H)
+ (tree-vect-patterns.o): Likewise.
+ (jump.o): Likewise.
+ (cselib.o): Likewise.
+ (loop-doloop.o): Likewise.
+ (regclass.o): Likewise.
+ (reload1.o): Likewise.
+ (explow.o): Replace target.h with $(TARGET_H).
+ (ipa-prop.o): Likewise.
+ (ipa-cp.o): Likewise.
+ (ipa-inline.o): Likewise.
+ (reorg.o): Likewise.
+ (reg-stack.o): Likewise.
+
+2006-04-23 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too.
+
+2006-04-23 Mark Mitchell <mark@codesourcery.com>
+
+ * print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE.
+
+ * configure.ac: Completely disregard languages that are not
+ enabled.
+ * configure: Regenerated.
+
+ PR c++/26534
+ * c-common.h (c_build_bitfield_integer_type): Declare.
+ * c-decl.c (c_build_bitfield_integer_type): Move to ...
+ * c-common.c (c_build_bitfield_integer_type): ... here.
+
+2006-04-23 Roger Sayle <roger@eyesopen.com>
+
+ PR target/21283
+ * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on
+ a SImode SUBREG of a floating point register after no_new_pseudos.
+
+2006-04-23 Roger Sayle <roger@eyesopen.com>
+
+ * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to
+ identify potentially eliminable registers to additionally catch
+ VIRTUAL_INCOMING_ARGS_REGNUM.
+ (addsi3): Update the conditions on when to use addsi_small_int.
+
+2006-04-23 Roger Sayle <roger@eyesopen.com>
+
+ PR target/16641
+ * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for
+ STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the
+ rtx to stack_pointer_rtx or frame_pointer_rtx directly.
+
+2006-04-23 Eric Botcazou <ebotcazou@adacore.com>
+
+ * fold-const.c (range_predecessor): Use operand_equal_p
+ as the predicate for equality.
+ (range_successor): Likewise.
+
+2006-04-22 Kazu Hirata <kazu@codesourcery.com>
+
+ Revert:
+ * config/soft-fp/op-common.h: Fix a typo.
+
+2006-04-22 Frank Ch. Eigler <fche@redhat.com>
+
+ PR libmudflap/26864
+ * common.opt (flag_mudflap_threads): Overload flag_mudflap.
+ * tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap.
+
+2006-04-22 Kazu Hirata <kazu@codesourcery.com>
+
+ * config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c:
+ Fix comment typos.
+ * doc/tm.texi: Fix a typo.
+
+2006-04-21 Geoffrey Keating <geoffk@apple.com>
+
+ * dwarf2out.c (struct die_struct): Document that die_sib makes
+ a circular linked list.
+ (FOR_EACH_CHILD): New.
+ (reverse_die_lists): Delete.
+ (reverse_all_dies): Delete.
+ (add_dwarf_attr): Correct documentation.
+ (remove_child_with_prev): New.
+ (remove_child_TAG): Update for change to die_struct, use
+ remove_child_with_prev.
+ (add_child_die): Update for change to die_struct.
+ (splice_child_die): Use remove_child_with_prev and add_child_die.
+ (print_die): Use FOR_EACH_CHILD.
+ (die_checksum): Likewise.
+ (assign_symbol_names): Likewise.
+ (output_location_lists): Likewise.
+ (build_abbrev_table): Likewise.
+ (calc_die_sizes): Likewise.
+ (mark_dies): Likewise.
+ (unmark_dies): Likewise.
+ (unmark_all_dies): Likewise.
+ (output_die): Likewise.
+ (prune_unused_types_mark): Likewise.
+ (prune_unused_types_walk): Likewise.
+ (same_die_p): Update for change to die_struct.
+ (break_out_includes): Likewise.
+ (prune_unused_types_prune): Likewise.
+ (add_sibling_attributes): Use FOR_EACH_CHILD, simplify logic.
+ (prune_unmark_dies): Use FOR_EACH_CHILD, don't clear die_mark if
+ it's already clear.
+ (dwarf2out_finish): Don't call reverse_all_dies.
+
+2006-04-21 Eric Christopher <echristo@apple.com>
+
+ * df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos
+ in comments and function names.
+
+2006-04-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR c/25875
+ * c-typeck.c (digest_init): Robustify.
+
+ * c-typeck.c (pop_init_level): Simplify.
+
+2006-04-21 Steve Ellcey <sje@cup.hp.com>
+
+ * config/pa/t-pa64: Add dependencies on $(GCC_PASSES).
+
+2006-04-21 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/arm.c (arm_override_options): Error on iWMMXt and
+ hardware floating point.
+
+2006-04-21 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to
+ NON_FLOAT_REGS.
+
+2006-04-21 Nick Clifton <nickc@redhat.com>
+
+ * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include
+ OPT_EXTRA_PARTS.
+
+2006-04-21 Alan Modra <amodra@bigpond.net.au>
+
+ PR target/27230
+ * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
+ C++ lang type in traceback table for Objective-C++.
+
+ * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment.
+
+2006-04-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (asm_preferred_eh_data_format): Reformat.
+
+2006-04-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR mudflap/26789
+ * tree-mudflap.c (mudflap_finish_file): Skip function when there
+ were errors. Remove check for erroneous objects.
+
+2006-04-20 Jeff Law <law@redhat.com>
+
+ PR tree-optimization/26854
+ * tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when
+ checking for zero or one use.
+ * tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly.
+ * tree-cfgcleanup.c (merge_phi_nodes): Similarly.
+ * tree-ssa-reassoc.c (negate_value): Similarly.
+ (reassociate_bb): Similarly.
+
+2006-04-20 Jakub Jelinek <jakub@redhat.com>
+
+ * c-pretty-print.c (pp_c_direct_abstract_declarator): Print
+ TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather
+ than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).
+
+2006-04-20 Alan Modra <amodra@bigpond.net.au>
+
+ * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all
+ fp regs if the last fp arg doesn't fit in regs.
+
+2006-04-20 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR target/27182
+ * config/sh/sh.md (movsicc_true+3): Tweak condition for the case
+ that the last insn has the REG_INC note.
+
+2006-04-19 Carlos O'Donell <carlos@codesourcery.com>
+ Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c/26774
+ * stor-layout.c (update_alignment_for_field): Do not align
+ ERROR_MARK nodes.
+ (place_union_field): Place union field at the start of the union.
+ (place_field): Move ERROR_MARK check later, and use the current
+ allocation position to maintain monotonicity.
+
+2006-04-19 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * dominance.c: Include timevar.h.
+ (calculate_dominance_info): Use TV_DOMINANCE.
+ * timevar.def (TV_DOMINANCE): New timevar.
+ * Makefile.in (dominance.o): Add TIMEVAR_H dependency.
+
+2006-04-19 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ PR rtl-optimization/14261
+ * ifcvt.c (noce_emit_move_insn): Call store_bit_field if the resulting
+ move would be an INSV insn.
+ (noce_process_if_block): Don't optimize if the destination is a
+ ZERO_EXTRACT which can't be handled by noce_emit_move_insn.
+
+2006-04-19 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.md: Add comments with the instructions emitted
+ by an insn pattern if macros are used.
+
+2006-04-19 Alan Modra <amodra@bigpond.net.au>
+
+ PR rtl-optimization/26026
+ * fold-const.c (fold_binary): Optimize div and mod where the divisor
+ is a known power of two shifted left a variable amount.
+
+2006-04-18 Geoffrey Keating <geoffk@apple.com>
+
+ * dwarf2out.c (prune_unused_types_update_strings): Don't add strings
+ to hash table twice when the debug_str section has SECTION_MERGE.
+
+2006-04-18 Joseph S. Myers <joseph@codesourcery.com>
+
+ * config/soft-fp: New directory. From glibc.
+ * config/soft-fp/t-softfp: New.
+ * config/soft-fp/README: New.
+ * mklibgcc.in: Handle LIB2FUNCS_EXCLUDE.
+ * Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New.
+ (libgcc.mk): Pass LIB2FUNCS_EXCLUDE.
+ (LIBGCC_DEPS): Add $(SFP_MACHINE).
+ * config.gcc: Use rs6000/t-fprules-fpbit or
+ rs6000/t-fprules-softfp and soft-fp/t-softfp together with
+ rs6000/t-fprules.
+ * config/rs6000/sfp-machine.h: New. Based on glibc.
+ * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp:
+ New.
+ * config/rs6000/t-fprules: Remove fp-bit rules.
+ * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=.
+ * config/rs6000/t-linux64: Likewise. Remove duplicates from
+ LIB2FUNCS_EXTRA. Remove fp-bit rules.
+ (softfp_wrap_start, softfp_wrap_end): New.
+
+2006-04-18 DJ Delorie <dj@redhat.com>
+
+ * config/m32c/m32c.h (PTRDIFF_TYPE): Define.
+
+2006-04-18 Devang Patel <dpatel@apple.com>
+
+ * doc/invoke.texi (-Wuninitialized): Clarify -O connection.
+
+2006-04-18 Nick Clifton <nickc@redhat.com>
+
+ * config/sh/t-symbian: Add rule to build sh-c.o
+ * config/sh/symbian.c (sh_symbian_mark_dllexport): Replace use
+ of DECL_NON_ADDR_CONST_P with DECL_DLLIMPORT_P.
+ (sh_symbian_encode_section_info): Likewise.
+
+2006-04-18 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * builtins.c (expand_builtin_strcmp): Cover label definition of
+ do_libcall with HAVE_cmpstrnsi.
+
+2006-04-18 Kazu Hirata <kazu@codesourcery.com>
+
+ * function.c (temp_slots_at_level, max_slot_level): Use VEC
+ instead of VARRAY.
+ * function.h (temp_slot_p): New.
+ (function): Change the type of x_used_temp_slots to
+ VEC(temp_slot_p,gc) *.
+
+2006-04-18 Nick Clifton <nickc@redhat.com>
+
+ * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to
+ flag_strength_reduce.
+
+ * doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo.
+
+2006-04-18 Paolo Bonzini <bonzini@gnu.org>
+
+ PR target/27117
+
+ Partial revert of revision 112637
+ 2006-04-03 Paolo Bonzini <bonzini@gnu.org>
+ Dale Johannesen <dalej@apple.com>
+
+ PR target/19653
+ * regclass.c (struct reg_pref): Update documentation.
+ (regclass): Set prefclass to NO_REGS if memory is the best option.
+ (record_reg_classes): Cope with a prefclass set to NO_REGS.
+
+2006-04-18 Paolo Bonzini <bonzini@gnu.org>
+
+ PR tree-optimization/26821
+ * tree-ssa-math-opts.c (get_constant_one): New.
+ (insert_reciprocals): Use it.
+
+2006-04-17 Geoffrey Keating <geoffk@apple.com>
+
+ * dwarf2out.c (free_AT): Delete.
+ (remove_AT): Update string ref counts.
+ (remove_child_TAG): Don't call free_die.
+ (free_die): Delete.
+ (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL
+ or DW_TAG_GNU_EINCL.
+ (prune_unused_types_walk_attribs): Reset string refcounts.
+ (prune_unused_types_update_strings): New.
+ (prune_unused_types_prune): Don't make unnecessary stores. Don't
+ call free_die. Do call prune_unused_types_update_strings.
+ (prune_unused_types): Empty debug_str_hash.
+
+2006-04-17 Roger Sayle <roger@eyesopen.com>
+
+ * expr.c (expand_assignment): Optimize away no-op moves where the
+ source and destination are equal and have no side-effects.
+
+2006-04-17 Richard Guenther <rguenther@suse.de>
+
+ PR target/26826
+ * reload.c (push_reload): Guard calls to get_secondary_mem
+ for memory subregs.
+
+2006-04-16 Kazu Hirata <kazu@codesourcery.com>
+
+ * alias.c (reg_base_value, old_reg_base_value): Change the
+ type to VEC(rtx,gc) *.
+ (REG_BASE_VALUE, find_base_value, record_set,
+ init_alias_analysis): Use VEC instead of VARRAY.
+
+ * alias.c (alias_sets): Change the type to
+ VEC(alias_set_entry,gc) *.
+ (get_alias_set_entry, new_alias_set, record_alias_subset): Use
+ VEC instead of VARRAY.
+ (last_alias_set): Remove.
+
+ * cgraph.h (cgraph_edge_p): New.
+ Update the prototype of cgraph_function_versioning.
+ * cgraphunit.c (cgraph_copy_node_for_versioning,
+ cgraph_function_versioning): Use VEC instead of VARRAY.
+ * ipa-cp.c (ipcp_insert_stage): Likewise.
+
+2006-04-16 Roger Sayle <roger@eyesopen.com>
+
+ PR target/26961
+ * fold-const.c (fold_ternary): When converting "A ? B : C" into either
+ "A op B" or "A op C", we may need to convert A to the type of B and C.
+
+2006-04-16 Adam Nemet <anemet@caviumnetworks.com>
+
+ * target.h (struct gcc_target): Add mode_rep_extended.
+ * rtlanal.c (num_sign_bit_copies_in_rep): New global.
+ (init_num_sign_bit_copies_in_rep): Initialize it using
+ mode_rep_extended.
+ (truncate_to_mode): Use it.
+ (init_rtlanal): Call init_num_sign_bit_copies_in_rep.
+ * targhooks.h (default_mode_rep_extended): Declare it.
+ * targhooks.c (default_mode_rep_extended): Define it.
+ * target-def.h (TARGET_MODE_REP_EXTENDED): New macro. Default to
+ default_mode_rep_extended.
+ (TARGET_INITIALIZER): Include it.
+ * doc/tm.texi (Misc): Document it.
+ * config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it.
+ (mips_truncated_to_mode): New function.
+
+2006-04-16 Roger Sayle <roger@eyesopen.com>
+
+ PR middle-end/25474
+ * expr.c (compress_float_constant): Copy the narrow constant into
+ a new pseudo before extending it to its final width.
+
+2006-04-16 Roger Sayle <roger@eyesopen.com>
+ Andrew Pinski <pinskia@gcc.gnu.org>
+ Dale Johannesen <dalej@apple.com>
+
+ PR target/24076
+ * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add
+ special case code to implement V8HImode and V16QImode with SSE2.
+
+2006-04-15 Roger Sayle <roger@eyesopen.com>
+
+ * config/i386/i386.c (ix86_va_start): Ensure all integer constant
+ trees are constructed with a suitable tree type.
+
+2006-04-15 Roger Sayle <roger@eyesopen.com>
+
+ * tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW.
+ (integer_onep): Likewise.
+ (integer_all_onesp): Likewise.
+ (integer_pow2p): Likewise.
+ (integer_nonzerop): Likewise.
+ (real_zerop): Likewise.
+ (real_onep): Likewise.
+ (real_twop): Likewise.
+ (real_minus_onep): Likewise.
+ (int_size_in_bytes): Likewise.
+ (host_integerp): Likewise.
+
+2006-04-15 Kazu Hirata <kazu@codesourcery.com>
+
+ * cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c,
+ jump.c, mips-tfile.c, omp-low.c, sched-int.h,
+ tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos.
+
+ * tree-ssa-structalias.h (alias_info): Remove num_references.
+
+2006-04-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa.md (output_bb patterns): Shorten long branch alternatives by 4.
+ (output_bvb patterns): Likewise.
+ * pa.c (output_bb): Use 'bb' insn for long branch case.
+ (output_bvb): Likewise use '{bvb|bb}' for long branch case.
+ (output_dbra): Use '{comb|cmpb}' for long branch case for alternative
+ 1. Correct length operand for alternatives 1 and 2.
+ (output_movb): Use '{comb|cmpb}' for long branch case for alternatives
+ 1, 2 and 3. Correct length operand for alternatives 1, 2 and 3.
+
+2006-04-14 Roger Sayle <roger@eyesopen.com>
+
+ * tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r,
+ is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that
+ were accidentally reverted by r112959.
+
+2006-04-15 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/26823
+ * except.h (eh_region_outermost): New prototype.
+ * except.c (eh_region_outermost): New function.
+ * tree-cfg.c (find_outermost_region_in_block): Use it.
+
+2006-04-14 Kazu Hirata <kazu@codesourcery.com>
+
+ * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead
+ of VARRAY.
+ * reload1.c (reg_equiv_memory_loc_varray): Rename to
+ reg_equiv_memory_loc_vec. Change the type to VEC(rtx,gc) *.
+ (init_reload, reload): Use VEC instead of VARRAY.
+ * reload.h: Update the prototype for
+ reg_equiv_memory_loc_varray.
+
+2006-04-14 Alexey Starovoytov <alexey.starovoytov@sun.com>
+ Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * config/sparc/sparc.c (emit_and_preserve): Allocate space for the
+ register save area.
+
+2005-04-13 Uros Bizjak <uros@kss-loka.si>
+
+ PR middle-end/27134
+ * builtins.c (expand_builtin_int_roundingfn): Use expand_normal()
+ to expand fallback builtin function call.
+
+2006-04-14 Alan Modra <amodra@bigpond.net.au>
+
+ PR middle-end/27095
+ * builtins.c: (expand_builtin_memset): Stabilize args before expansion
+ and emit libcall here in case the builtin fails.
+ (expand_builtin_strcmp): Always emit the libcall here on failure.
+
+2006-04-14 Kazu Hirata <kazu@codesourcery.com>
+
+ * basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY.
+ * flow.c (reg_n_info): Change the type to
+ VEC(reg_info_p,heap) *.
+ * regclass.c (allocate_reg_info, free_reg_info): Use VEC
+ instead of VARRAY.
+ * regs.h (reg_info_p): New.
+ (REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS,
+ REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED,
+ REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC
+ instead of VARRAY.
+
+2006-04-13 Eric Botcazou <ebotcazou@adacore.com>
+
+ * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
+ defaulting to 100.
+ * params.h (MAX_SCHED_READY_INSNS): New macro.
+ * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle
+ past MAX_SCHED_READY_INSNS during the first scheduling pass.
+ (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in
+ the ready list for 1 cycle during the first scheduling pass.
+ * doc/invoke.texi (--param): New parameter max-sched-ready-insns.
+
+2006-04-13 Richard Henderson <rth@redhat.com>
+
+ PR libgomp/26651
+ * gimple-low.c (lower_omp_directive): Remove dead code.
+ (lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL.
+ * gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE.
+ * omp-low.c (struct omp_region): Move to tree-flow.h.
+ (root_omp_region): Export.
+ (omp_regions, lookup_omp_region): Remove.
+ (determine_parallel_type): Update for struct omp_region changes.
+ (dump_omp_region): Dump regions with block numbers.
+ (new_omp_region): Take type and block instead of stmt; malloc
+ instead of ggc.
+ (free_omp_region_1, free_omp_regions): New.
+ (expand_parallel_call): Take entry_stmt as argument; update for
+ changes to omp_region.
+ (remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT.
+ (remove_exit_barriers): New.
+ (expand_omp_parallel): Update for struct omp_region changes.
+ (expand_omp_synch): Likewise.
+ (expand_omp): Likewise.
+ (expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE.
+ (expand_omp_for_static_chunk): Likewise.
+ (expand_omp_for): Likewise.
+ (expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call.
+ (expand_omp_sections): Similarly, with GOMP_sections_end.
+ (expand_omp_single): New.
+ (build_omp_regions_1): Update for OMP_CONTINUE.
+ (execute_expand_omp): Call remove_exit_barriers, free_omp_regions.
+ (lower_omp_sections): Expand with OMP_CONTINUE, do not collect
+ OMP_SECTIONS_SECTIONS.
+ (lower_omp_single_simple): Don't emit barrier here.
+ (lower_omp_single_copy): Likewise.
+ (lower_omp_single): Fix bindings, and lower to straightline now.
+ (lower_omp_master, lower_omp_ordered): Likewise.
+ (lower_omp_critical): Likewise.
+ (lower_omp_for): Likewise. Emit OMP_CONTINUE.
+ * tree-cfg.c (make_edges): Collect an omp_region tree, use it for
+ omp edges, free it afterward.
+ (make_omp_sections_edges): Remove.
+ (is_ctrl_altering_stmt): Don't bother checking flag_openmp.
+ (move_stmt_r): Handle OMP_CONTINUE.
+ * tree-flow.h (struct omp_region): Move from omp-low.c. Switch
+ statement pointers to basic blocks. Add type member.
+ (root_omp_region, new_omp_region, free_omp_regions): Declare.
+ * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE.
+ * tree-inline.c (estimate_num_insns_1): Likewise.
+ * tree-pretty-print.c (dump_generic_node): Likewise.
+ * tree-ssa-operands.c (get_expr_operands): Likewise.
+ * tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand.
+ (OMP_RETURN): Rename from OMP_RETURN_EXPR.
+ (OMP_CONTINUE): New.
+ * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE.
+ (OMP_SECTIONS_SECTIONS): Remove.
+ (OMP_SECTION_LAST): New.
+ (OMP_RETURN_NOWAIT): New.
+
+2006-04-13 Roger Sayle <roger@eyesopen.com>
+
+ * fold-const.c (native_encode_vector, native_interpret_real):
+ Correct obvious mistakes in the previous check-in.
+
+2006-04-13 Roger Sayle <roger@eyesopen.com>
+
+ * fold-const.c (native_encode_expr): New function to encode
+ the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST
+ or VECTOR_CST into a specified buffer.
+ (native_encode_int): New function.
+ (native_encode_real): New function.
+ (native_encode_complex): New function.
+ (native_encode_vector): New function.
+ (native_interpret_expr): Inverse of native_encode_expr to convert
+ a target representation into an INTEGER_CST, REAL_CST etc...
+ (native_interpret_int): New function.
+ (native_interpret_real): New function.
+ (native_interpret_complex): New function.
+ (native_interpret_vector): New function.
+ (fold_view_convert_expr): New function to constant fold/evaluate
+ a VIEW_CONVERT_EXPR of a suitable constant expression.
+ (fold_unary) <VIEW_CONVERT_EXPR>: Call fold_view_convert_expr.
+ Change call of build1 to fold_build1 when constructing a
+ VIEW_CONVERT_EXPR.
+
+2006-04-13 Paolo Bonzini <bonzini@gnu.org>
+ Ulrich Weigand <uweigand@de.ibm.com>
+
+ PR target/27006
+ * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
+ to be even.
+
+2006-04-13 Alan Modra <amodra@bigpond.net.au>
+
+ PR target/26459
+ * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
+ optimize to lo_sum for DFmode if !TARGET_FPRS.
+
+2006-04-12 Kazu Hirata <kazu@codesourcery.com>
+
+ * tree-ssa-alias.c (set_initial_properties, init_alias_info,
+ delete_alias_info, compute_flow_sensitive_aliasing,
+ group_aliases): Use VEC instead of VARRAY.
+ * tree-ssa-structalias.c (update_alias_info): Likewise.
+ * tree-ssa-structalias.h (alias_info): Change the type of
+ processed_ptrs to VEC(tree,heap) *.
+
+2006-04-12 J"orn Rennecke <joern.rennecke@st.com>
+
+ PR target/27060
+ * config/sh/lib1funcs.h: New file, broken out of:
+ * config/sh/lib1funcs.asm.
+ * config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41):
+ New macros.
+ * config/sh/lib1funcs.asm (udivsi3_i4): Use them.
+ * config/sh/lib1funcs-Os-4-200.asm: New file.
+ * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200.
+ * config/sh/t-sh (OPT_EXTRA_PARTS): New variable.
+ (EXTRA_MULTILIB_PARTS): Include it.
+ ($(T)sdivsi3_i4i-Os-4-200.o): New rule.
+ ($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise.
+ * config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS.
+ * config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for
+ TARGET_SH2.
+
+2006-04-12 Kazu Hirata <kazu@codesourcery.com>
+
+ * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
+ * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
+ tpa_compact, root_var_init, type_var_init): Use VEC instead of
+ VARRAY.
+ * tree-ssa-live.h: Include vecprim.h.
+ (tree_partition_associator_d): Change the type of
+ first_partition to VEC(int,heap) *.
+ (tpa_first_partition): Use VEC instead of VARRAY.
+
+ * Makefile.in (GTFILES): Move functions.h after tree.h.
+ * function.c (reset_block_changes, record_block_change,
+ check_block_change, free_block_changes): Use VEC instead of
+ VARRAY.
+ * function.h (function): Change the type of
+ ib_boundaries_block to VEC(tree,gc) *.
+ * tree-inline.c (copy_cfg_body): Initialize
+ ib_boundaries_block to NULL instead of (varray_type) 0.
+
+2006-04-12 Roger Sayle <roger@eyesopen.com>
+
+ * expr.c (emit_group_store): Correct operand order in call to
+ subreg_lowpart_offset. Always create paradoxical SUBREGs with
+ a SUBREG_BYTE of zero.
+
+2006-04-12 Richard Guenther <rguenther@suse.de>
+
+ * profile.c (compute_branch_probabilities): Remove code
+ encapsulated in !ir_type (), which are remanents of the
+ removed RTL profiling code.
+ * rtl-profile.c: Remove.
+
+2006-04-12 Alan Modra <amodra@bigpond.net.au>
+
+ * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update
+ magic NULL_RTX comment.
+ (function_arg): Store entire fp arg to mem if any part should go
+ on stack.
+ (rs6000_arg_partial_bytes): Adjust for above change.
+
+2006-04-11 Roger Sayle <roger@eyesopen.com>
+
+ * dwarf2out.c (output_call_frame_info): Create debug_frame_section
+ if it hasn't been initialized by dwarf2out_init.
+
+2006-04-11 John David Anglin <dava.anglin@nrc-cnrc.gc.ca>
+
+ * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new
+ symbolic constants in branch patterns.
+
+2006-04-11 Roger Sayle <roger@eyesopen.com>
+
+ * caller-save.c: #include "addresses.h" after #include "tm_p.h".
+
+2006-04-11 Richard Sandiford <richard@codesourcery.com>
+
+ PR rtl-optimization/27073
+ * gcse.c (try_replace_reg): Revert last change. Continue to search
+ for both REG_EQUAL and REG_EQUIV notes, but only perform replacements
+ on the former.
+
+2006-04-11 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * config/sparc/sparc.c (function_arg_slotno) <BLKmode>: Handle
+ aggregate types other than record and union types.
+ (function_arg): Likewise.
+ (function_arg_pass_by_reference): In 64-bit mode, return 0 for
+ small arrays.
+ (function_value): In 64-bit mode, return objects that require it
+ in FP registers.
+
+2006-04-11 Roger Sayle <roger@eyesopen.com>
+
+ * dwarf2out.c (premark_used_types): Remove problematic prototype.
+
+2006-04-11 Jakub Jelinek <jakub@redhat.com>
+
+ * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o.
+
+2006-04-03 Jeff Law <law@redhat.com>
+
+ PR/27087
+ * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
+ alias information too.
+
+2006-04-10 Mike Frysinger <vapier@gentoo.org>
+
+ * gcc/Makefile.in (gcc-cross): Add $(exeext) to target name.
+
+2006-04-10 Aldy Hernandez <aldyh@redhat.com>
+
+ PR/21391
+ * dwarf2out.c (struct die_struct): Add die_perennial_p field.
+ (premark_used_types_helper): New.
+ (premark_used_types): New.
+ (gen_subprogram_die): Call premark_used_types.
+ (prune_unused_types_walk): Do not prune perennial dies.
+ * function.c (used_types_insert): New.
+ * function.h (struct function): Add used_types_hash field.
+ (used_types_insert): Add prototype.
+ * Makefile.in (FUNCTION_H): Depend on HASHTAB_H.
+ * c-parser.c (c_parser_cast_expression): Save casted types in used
+ types hash table.
+
+2006-04-11 Mark Mitchell <mark@codesourcery.com>
+
+ PR target/26459
+ * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test
+ rs6000_explicit_options.float_gprs.
+
+2006-04-10 Roger Sayle <roger@eyesopen.com>
+
+ * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed
+ from ix86_expand_vector_init_low_nonzero. Take an additional
+ one_var argument indicating which element is non-zero. Support
+ one_var != 0 for V4SFmode and V4SImode by permuting the result.
+ (ix86_expand_vector_init): Call ix86_expand_vector_init_one_nonzero
+ with one_var instead of ix86_expand_vector_init_low_nonzero.
+
+2006-04-10 Kazu Hirata <kazu@codesourcery.com>
+
+ * Makefile.in (tree-into-ssa.o, tree-outof-ssa.o,
+ tree-ssa-live.o, tree-ssa-alias.o, function.o, df-problems.o,
+ global.o, cfglayout.o, lambda-code.o, reg-stack.o,
+ build/genextract.o): Depend on vecprim.h.
+ * cfglayout.c, df-problems.c, function.c, genextract.c,
+ global.c, lambda-code.c, reg-stack.c, tree-into-ssa.c,
+ tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Include
+ vecprim.h.
+ * vecprim.h: New.
+
+2006-04-10 Geoffrey Keating <geoffk@apple.com>
+
+ * dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next.
+ Declare VECs of this type.
+ (struct die_struct): Make field die_attr a VEC of dw_attr_struct.
+ (remove_children): Delete.
+ (add_dwarf_attr): Use VEC routines.
+ (add_AT_flag): Update for changes to add_dwarf_attr.
+ (add_AT_int): Likewise.
+ (add_AT_unsigned): Likewise.
+ (add_AT_long_long): Likewise.
+ (add_AT_vec): Likewise.
+ (add_AT_string): Likewise.
+ (add_AT_die_ref): Likewise.
+ (add_AT_fde_ref): Likewise.
+ (add_AT_loc): Likewise.
+ (add_AT_loc_list): Likewise.
+ (add_AT_addr): Likewise.
+ (add_AT_lbl_id): Likewise.
+ (add_AT_lineptr): Likewise.
+ (add_AT_macptr): Likewise.
+ (add_AT_offset): Likewise.
+ (add_AT_range_list): Likewise.
+ (get_AT): Use VEC_iterate.
+ (remove_AT): Use VEC_ordered_remove.
+ (free_die): Fold remove_children into here; have it use VEC_iterate.
+ (print_die): Use VEC_iterate on attrs.
+ (reverse_die_lists): Don't reverse attr lists.
+ (die_checksum): Use VEC_iterate on attrs.
+ (same_die_p): Likewise.
+ (output_location_lists): Likewise.
+ (build_abbrev_table): Likewise.
+ (size_of_die): Likewise.
+ (unmark_all_dies): Likewise.
+ (output_abbrev_section): Likewise.
+ (output_die): Likewise.
+ (prune_unused_types_walk_attribs): Likewise.
+
+2006-04-10 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * doc/install.texi (*-*-solaris2*): Point to the configure page.
+
+2006-04-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/27057
+ * dwarf2out.c (is_symbol_die): Return true also for namespaces.
+
+2006-04-09 Roger Sayle <roger@eyesopen.com>
+
+ * expr.c (store_constructor): Don't bother clearing target if
+ we're about to assign a vector to it using vec_init_optab.
+
+2006-04-10 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-ssa-alias.c (lhs_may_store_to): New function.
+ (recalculate_used_alone): Handle LHS of calls.
+
2006-04-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR target/27034
@@ -81,7 +919,7 @@
* tree-ssa-loop-niter.c (inverse, number_of_iterations_ne,
assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
number_of_iterations_le, number_of_iterations_cond, find_loop_niter,
- estimate_numbers_of_iterations_loop): Use build_int_cst instead of
+ estimate_numbers_of_iterations_loop): Use build_int_cst instead of
build_int_cst_type.
* tree-chrec.c (chrec_fold_multiply_poly_poly,
chrec_fold_multiply): Same.
@@ -179,7 +1017,7 @@
(Downloading the source): Refer to SVN instead of CVS.
Adjust a link to our web site accordingly.
(Configuration): Fix casing of Bison.
- (Building): Refer to SVN instead of CVS.
+ (Building): Refer to SVN instead of CVS.
Fix a sentence on the use of Bison and remove duplicate (and
incorrect) version number of Bison requirement.
Remove one redundant list of packages needed for building.
@@ -1088,10 +1926,10 @@
2006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
- PR mudflap/26790
+ PR mudflap/26789
* tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
- PR mudflap/26789
+ PR mudflap/26790
* tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
2006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 2d660a36a02..bdfd4065f66 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20060410
+20060424
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index ed239388aa0..4f1f3b49abd 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -611,6 +611,12 @@ LIB2FUNCS_EXTRA =
# Assembler files should have names ending in `.asm'.
LIB2FUNCS_STATIC_EXTRA =
+# List of functions not to build from libgcc2.c.
+LIB2FUNCS_EXCLUDE =
+
+# Target sfp-machine.h file.
+SFP_MACHINE =
+
# Program to convert libraries.
LIBCONVERT =
@@ -751,7 +757,7 @@ RECOG_H = recog.h
ALIAS_H = alias.h
EMIT_RTL_H = emit-rtl.h
FLAGS_H = flags.h options.h
-FUNCTION_H = function.h $(TREE_H)
+FUNCTION_H = function.h $(TREE_H) $(HASHTAB_H)
EXPR_H = expr.h insn-config.h $(FUNCTION_H) $(RTL_H) $(FLAGS_H) $(TREE_H) $(MACHMODE_H) $(EMIT_RTL_H)
OPTABS_H = optabs.h insn-codes.h
REGS_H = regs.h varray.h $(MACHMODE_H) $(OBSTACK_H) $(BASIC_BLOCK_H) $(FUNCTION_H)
@@ -787,7 +793,7 @@ TREE_GIMPLE_H = tree-gimple.h tree-iterator.h
TREE_FLOW_H = tree-flow.h tree-flow-inline.h tree-ssa-operands.h \
bitmap.h $(BASIC_BLOCK_H) hard-reg-set.h $(TREE_GIMPLE_H) \
$(HASHTAB_H) $(CGRAPH_H) $(IPA_REFERENCE_H)
-TREE_SSA_LIVE_H = tree-ssa-live.h $(PARTITION_H)
+TREE_SSA_LIVE_H = tree-ssa-live.h $(PARTITION_H) vecprim.h
PRETTY_PRINT_H = pretty-print.h input.h $(OBSTACK_H)
DIAGNOSTIC_H = diagnostic.h diagnostic.def $(PRETTY_PRINT_H) options.h
C_PRETTY_PRINT_H = c-pretty-print.h $(PRETTY_PRINT_H) $(C_COMMON_H) $(TREE_H)
@@ -1252,7 +1258,7 @@ config.status: $(srcdir)/configure $(srcdir)/config.gcc
all.internal: start.encap rest.encap doc
# This is what to compile if making a cross-compiler.
-all.cross: native gcc-cross cpp$(exeext) specs \
+all.cross: native gcc-cross$(exeext) cpp$(exeext) specs \
$(LIBGCC) $(EXTRA_PARTS) lang.all.cross doc @GENINSRC@ srcextra
# This is what must be made before installing GCC and converting libraries.
start.encap: native xgcc$(exeext) cpp$(exeext) specs \
@@ -1362,7 +1368,7 @@ $(SPECS): xgcc$(exeext)
# We do want to create an executable named `xgcc', so we can use it to
# compile libgcc2.a.
# Also create gcc-cross, so that install-common will install properly.
-gcc-cross: xgcc$(exeext)
+gcc-cross$(exeext): xgcc$(exeext)
cp xgcc$(exeext) gcc-cross$(exeext)
dummy-checksum.o : dummy-checksum.c
@@ -1399,6 +1405,7 @@ libgcc.mk: config.status Makefile mklibgcc $(LIB2ADD) $(LIB2ADD_ST) specs \
objext='$(objext)' \
LIB1ASMFUNCS='$(LIB1ASMFUNCS)' \
LIB2FUNCS_ST='$(LIB2FUNCS_ST)' \
+ LIB2FUNCS_EXCLUDE='$(LIB2FUNCS_EXCLUDE)' \
LIBGCOV='$(LIBGCOV)' \
LIB2ADD='$(LIB2ADD)' \
LIB2ADD_ST='$(LIB2ADD_ST)' \
@@ -1450,7 +1457,7 @@ LIBGCC_DEPS = $(GCC_PASSES) $(LANGUAGES) stmp-int-hdrs $(STMP_FIXPROTO) \
config/dfp-bit.h config/dfp-bit.c \
$(LIB2ADD_ST) $(LIB2ADDEH) $(LIB2ADDEHDEP) $(EXTRA_PARTS) \
$(srcdir)/config/$(LIB1ASMSRC) \
- $(srcdir)/gcov-io.h $(srcdir)/gcov-io.c gcov-iov.h
+ $(srcdir)/gcov-io.h $(srcdir)/gcov-io.c gcov-iov.h $(SFP_MACHINE)
libgcov.a: libgcc.a; @true
@@ -1598,7 +1605,7 @@ c-aux-info.o : c-aux-info.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_
$(C_TREE_H) $(FLAGS_H) toplev.h
c-convert.o : c-convert.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
$(TREE_H) $(FLAGS_H) toplev.h $(C_COMMON_H) convert.h $(C_TREE_H) \
- langhooks.h
+ langhooks.h $(TARGET_H)
c-pragma.o: c-pragma.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
$(TREE_H) $(FUNCTION_H) $(C_PRAGMA_H) toplev.h output.h $(GGC_H) $(TM_P_H) \
$(C_COMMON_H) $(TARGET_H) gt-c-pragma.h $(CPPLIB_H) $(FLAGS_H)
@@ -1824,13 +1831,13 @@ tree-into-ssa.o : tree-into-ssa.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
$(FUNCTION_H) $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
langhooks.h domwalk.h tree-pass.h $(GGC_H) $(PARAMS_H) $(BASIC_BLOCK_H) \
bitmap.h $(CFGLOOP_H) $(FLAGS_H) hard-reg-set.h $(HASHTAB_H) \
- $(TREE_GIMPLE_H) $(TREE_INLINE_H) $(VARRAY_H)
+ $(TREE_GIMPLE_H) $(TREE_INLINE_H) $(VARRAY_H) vecprim.h
tree-outof-ssa.o : tree-outof-ssa.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
$(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) output.h $(DIAGNOSTIC_H) \
$(FUNCTION_H) $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
langhooks.h tree-pass.h $(TREE_SSA_LIVE_H) $(BASIC_BLOCK_H) bitmap.h \
$(FLAGS_H) $(GGC_H) hard-reg-set.h $(HASHTAB_H) $(TREE_GIMPLE_H) \
- $(TREE_INLINE_H) $(VARRAY_H) toplev.h
+ $(TREE_INLINE_H) $(VARRAY_H) toplev.h vecprim.h
tree-ssa-dse.o : tree-ssa-dse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
$(TM_H) $(GGC_H) $(TREE_H) $(RTL_H) $(TM_P_H) $(BASIC_BLOCK_H) \
$(TREE_FLOW_H) tree-pass.h $(TREE_DUMP_H) domwalk.h $(FLAGS_H) \
@@ -1885,7 +1892,7 @@ tree-ssa-live.o : tree-ssa-live.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
$(TREE_H) $(DIAGNOSTIC_H) $(FUNCTION_H) $(TIMEVAR_H) \
$(TM_H) coretypes.h $(TREE_DUMP_H) $(TREE_SSA_LIVE_H) $(BASIC_BLOCK_H) \
bitmap.h $(FLAGS_H) $(HASHTAB_H) $(TREE_GIMPLE_H) $(TREE_INLINE_H) \
- $(VARRAY_H) toplev.h
+ $(VARRAY_H) toplev.h vecprim.h
tree-ssa-copyrename.o : tree-ssa-copyrename.c $(TREE_FLOW_H) $(CONFIG_H) \
$(SYSTEM_H) $(TREE_H) $(DIAGNOSTIC_H) $(FUNCTION_H) $(TIMEVAR_H) tree-pass.h \
$(TM_H) coretypes.h $(TREE_DUMP_H) $(TREE_SSA_LIVE_H) $(BASIC_BLOCK_H) \
@@ -2010,7 +2017,7 @@ tree-ssa-alias.o : tree-ssa-alias.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
$(FUNCTION_H) $(TIMEVAR_H) convert.h $(TM_H) coretypes.h langhooks.h \
$(TREE_DUMP_H) tree-pass.h $(PARAMS_H) $(BASIC_BLOCK_H) $(DIAGNOSTIC_H) \
hard-reg-set.h $(TREE_GIMPLE_H) vec.h tree-ssa-structalias.h \
- $(IPA_TYPE_ESCAPE_H)
+ $(IPA_TYPE_ESCAPE_H) vecprim.h
tree-ssa-reassoc.o : tree-ssa-reassoc.c $(TREE_FLOW_H) $(CONFIG_H) \
$(SYSTEM_H) $(TREE_H) $(GGC_H) $(DIAGNOSTIC_H) errors.h $(TIMEVAR_H) \
$(TM_H) coretypes.h $(TREE_DUMP_H) tree-pass.h $(FLAGS_H) tree-iterator.h\
@@ -2063,7 +2070,7 @@ tree-vect-analyze.o: tree-vect-analyze.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
tree-vect-patterns.o: tree-vect-patterns.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) $(EXPR_H)
+ tree-vectorizer.h $(TREE_DATA_REF_H) $(EXPR_H) $(TARGET_H)
tree-vect-transform.o: tree-vect-transform.c $(CONFIG_H) $(SYSTEM_H) \
coretypes.h $(TM_H) $(GGC_H) $(OPTABS_H) $(RECOG_H) $(TREE_H) $(RTL_H) \
$(BASIC_BLOCK_H) $(DIAGNOSTIC_H) $(TREE_FLOW_H) $(TREE_DUMP_H) \
@@ -2167,7 +2174,7 @@ function.o : function.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
$(OPTABS_H) libfuncs.h $(REGS_H) hard-reg-set.h insn-config.h $(RECOG_H) \
output.h toplev.h except.h $(HASHTAB_H) $(GGC_H) $(TM_P_H) langhooks.h \
gt-function.h $(TARGET_H) $(BASIC_BLOCK_H) $(INTEGRATE_H) $(PREDICT_H) \
- tree-pass.h $(DF_H) timevar.h
+ tree-pass.h $(DF_H) timevar.h vecprim.h
stmt.o : stmt.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
$(TREE_H) $(FLAGS_H) $(FUNCTION_H) insn-config.h hard-reg-set.h $(EXPR_H) \
libfuncs.h except.h $(RECOG_H) toplev.h output.h $(GGC_H) $(TM_P_H) \
@@ -2204,8 +2211,8 @@ expmed.o : expmed.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE_
toplev.h $(TM_P_H) langhooks.h
explow.o : explow.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE_H) \
$(FLAGS_H) hard-reg-set.h insn-config.h $(EXPR_H) $(OPTABS_H) $(RECOG_H) \
- toplev.h $(FUNCTION_H) $(GGC_H) $(TM_P_H) langhooks.h gt-explow.h target.h \
- output.h
+ toplev.h $(FUNCTION_H) $(GGC_H) $(TM_P_H) langhooks.h gt-explow.h \
+ $(TARGET_H) output.h
optabs.o : optabs.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
$(TREE_H) $(FLAGS_H) insn-config.h $(EXPR_H) $(OPTABS_H) libfuncs.h \
$(RECOG_H) reload.h toplev.h $(GGC_H) $(REAL_H) $(TM_P_H) except.h \
@@ -2247,11 +2254,11 @@ integrate.o : integrate.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
$(EXPR_H) $(REAL_H) $(REGS_H) intl.h $(FUNCTION_H) output.h $(RECOG_H) \
except.h toplev.h $(PARAMS_H) $(TM_P_H) $(TARGET_H) langhooks.h \
gt-integrate.h $(GGC_H) tree-pass.h $(DF_H)
-jump.o : jump.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(FLAGS_H) \
- hard-reg-set.h $(REGS_H) insn-config.h $(RECOG_H) $(EXPR_H) real.h except.h \
- $(FUNCTION_H) tree-pass.h \
- toplev.h $(INSN_ATTR_H) $(TM_P_H) reload.h $(PREDICT_H) $(TIMEVAR_H) \
- $(DIAGNOSTIC_H)
+jump.o : jump.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
+ $(FLAGS_H) hard-reg-set.h $(REGS_H) insn-config.h $(RECOG_H) $(EXPR_H) \
+ $(REAL_H) except.h $(FUNCTION_H) tree-pass.h $(DIAGNOSTIC_H) \
+ toplev.h $(INSN_ATTR_H) $(TM_P_H) reload.h $(PREDICT_H) \
+ $(TIMEVAR_H) $(TARGET_H)
simplify-rtx.o : simplify-rtx.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
$(RTL_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) $(REAL_H) insn-config.h \
$(RECOG_H) $(EXPR_H) toplev.h output.h $(FUNCTION_H) $(GGC_H) $(TM_P_H) \
@@ -2267,10 +2274,10 @@ cgraphunit.o : cgraphunit.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
$(FIBHEAP_H) output.h $(PARAMS_H) $(RTL_H) $(TIMEVAR_H) ipa-prop.h
ipa.o : ipa.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(CGRAPH_H)
ipa-prop.o : ipa-prop.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
- langhooks.h $(GGC_H) target.h $(CGRAPH_H) ipa-prop.h \
+ langhooks.h $(GGC_H) $(TARGET_H) $(CGRAPH_H) ipa-prop.h \
tree-flow.h $(TM_H) tree-pass.h $(FLAGS_H) $(TREE_H)
ipa-cp.o : ipa-cp.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
- langhooks.h target.h $(CGRAPH_H) ipa-prop.h \
+ langhooks.h $(TARGET_H) $(CGRAPH_H) ipa-prop.h \
tree-flow.h $(TM_H) tree-pass.h $(FLAGS_H) $(TREE_H) \
diagnostic.h
ipa-inline.o : ipa-inline.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
@@ -2300,7 +2307,7 @@ coverage.o : coverage.c $(GCOV_IO_H) $(CONFIG_H) $(SYSTEM_H) coretypes.h \
cselib.o : cselib.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
$(REGS_H) hard-reg-set.h $(FLAGS_H) $(REAL_H) insn-config.h $(RECOG_H) \
$(EMIT_RTL_H) toplev.h output.h $(FUNCTION_H) cselib.h $(GGC_H) $(TM_P_H) \
- gt-cselib.h $(PARAMS_H) alloc-pool.h $(HASHTAB_H)
+ gt-cselib.h $(PARAMS_H) alloc-pool.h $(HASHTAB_H) $(TARGET_H)
cse.o : cse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(REGS_H) \
hard-reg-set.h $(FLAGS_H) insn-config.h $(RECOG_H) $(EXPR_H) toplev.h \
output.h $(FUNCTION_H) $(BASIC_BLOCK_H) $(GGC_H) $(TM_P_H) $(TIMEVAR_H) \
@@ -2359,7 +2366,7 @@ df-core.o : df-core.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
df-problems.o : df-problems.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
$(RTL_H) insn-config.h $(RECOG_H) $(FUNCTION_H) $(REGS_H) alloc-pool.h \
hard-reg-set.h $(BASIC_BLOCK_H) $(DF_H) bitmap.h sbitmap.h $(TM_P_H) \
- $(FLAGS_H) output.h except.h dce.h
+ $(FLAGS_H) output.h except.h dce.h vecprim.h
df-scan.o : df-scan.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
insn-config.h $(RECOG_H) $(FUNCTION_H) $(REGS_H) alloc-pool.h \
hard-reg-set.h $(BASIC_BLOCK_H) $(DF_H) bitmap.h sbitmap.h $(TM_P_H) \
@@ -2385,7 +2392,7 @@ value-prof.o : value-prof.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
tree-flow-inline.h timevar.h tree-pass.h
loop-doloop.o : loop-doloop.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
$(RTL_H) $(FLAGS_H) $(EXPR_H) hard-reg-set.h $(BASIC_BLOCK_H) $(TM_P_H) \
- toplev.h $(CFGLOOP_H) output.h $(PARAMS_H)
+ toplev.h $(CFGLOOP_H) output.h $(PARAMS_H) $(TARGET_H)
alloc-pool.o : alloc-pool.c $(CONFIG_H) $(SYSTEM_H) alloc-pool.h $(HASHTAB_H)
flow.o : flow.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
$(TREE_H) $(FLAGS_H) insn-config.h $(BASIC_BLOCK_H) $(REGS_H) \
@@ -2449,7 +2456,7 @@ loop-unroll.o: loop-unroll.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TM_H) \
output.h $(EXPR_H) coretypes.h $(TM_H) $(HASHTAB_H) $(RECOG_H) \
$(OBSTACK_H)
dominance.o : dominance.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
- hard-reg-set.h $(BASIC_BLOCK_H) et-forest.h $(OBSTACK_H) toplev.h
+ hard-reg-set.h $(BASIC_BLOCK_H) et-forest.h $(OBSTACK_H) toplev.h $(TIMEVAR_H)
et-forest.o : et-forest.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
et-forest.h alloc-pool.h $(BASIC_BLOCK_H)
combine.o : combine.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
@@ -2460,7 +2467,8 @@ combine.o : combine.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
regclass.o : regclass.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
hard-reg-set.h $(FLAGS_H) $(BASIC_BLOCK_H) $(REGS_H) insn-config.h \
$(RECOG_H) reload.h $(REAL_H) toplev.h $(FUNCTION_H) output.h $(GGC_H) \
- $(TM_P_H) $(EXPR_H) $(TIMEVAR_H) gt-regclass.h $(HASHTAB_H) tree-pass.h
+ $(TM_P_H) $(EXPR_H) $(TIMEVAR_H) gt-regclass.h $(HASHTAB_H) \
+ $(TARGET_H) tree-pass.h
local-alloc.o : local-alloc.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
$(RTL_H) $(FLAGS_H) $(REGS_H) hard-reg-set.h insn-config.h $(RECOG_H) \
output.h $(FUNCTION_H) $(INSN_ATTR_H) toplev.h except.h reload.h $(TM_P_H) \
@@ -2470,7 +2478,7 @@ bitmap.o : bitmap.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
global.o : global.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
$(FLAGS_H) reload.h $(FUNCTION_H) $(RECOG_H) $(REGS_H) hard-reg-set.h \
insn-config.h output.h toplev.h $(TM_P_H) $(MACHMODE_H) tree-pass.h \
- timevar.h $(DF_H)
+ timevar.h $(DF_H) vecprim.h
varray.o : varray.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(GGC_H) \
$(HASHTAB_H) $(BCONFIG_H) $(VARRAY_H) toplev.h
vec.o : vec.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) coretypes.h vec.h $(GGC_H) \
@@ -2483,7 +2491,7 @@ reload1.o : reload1.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
$(EXPR_H) $(OPTABS_H) reload.h $(REGS_H) hard-reg-set.h insn-config.h \
$(BASIC_BLOCK_H) $(RECOG_H) output.h $(FUNCTION_H) toplev.h $(TM_P_H) \
addresses.h except.h $(TREE_H) $(REAL_H) $(FLAGS_H) $(MACHMODE_H) \
- $(OBSTACK_H) $(DF_H)
+ $(OBSTACK_H) $(DF_H) $(TARGET_H)
rtlhooks.o : rtlhooks.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
rtlhooks-def.h $(EXPR_H) $(RECOG_H)
postreload.o : postreload.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
@@ -2506,7 +2514,7 @@ reorg.o : reorg.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
conditions.h hard-reg-set.h $(BASIC_BLOCK_H) $(REGS_H) insn-config.h \
$(INSN_ATTR_H) except.h $(RECOG_H) $(FUNCTION_H) $(FLAGS_H) output.h \
$(EXPR_H) toplev.h $(PARAMS_H) $(TM_P_H) $(OBSTACK_H) $(RESOURCE_H) \
- timevar.h target.h tree-pass.h $(DF_H)
+ timevar.h $(TARGET_H) tree-pass.h $(DF_H)
alias.o : alias.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
$(FLAGS_H) hard-reg-set.h $(BASIC_BLOCK_H) $(REGS_H) toplev.h output.h \
$(ALIAS_H) $(EMIT_RTL_H) $(GGC_H) $(FUNCTION_H) cselib.h $(TREE_H) $(TM_P_H) \
@@ -2566,7 +2574,7 @@ reg-stack.o : reg-stack.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
$(RTL_H) $(TREE_H) $(RECOG_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) \
insn-config.h toplev.h reload.h $(FUNCTION_H) $(TM_P_H) $(GGC_H) \
$(BASIC_BLOCK_H) output.h $(VARRAY_H) timevar.h tree-pass.h \
- target.h $(DF_H)
+ $(TARGET_H) $(DF_H) vecprim.h
sreal.o: sreal.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) sreal.h
predict.o: predict.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
$(TREE_H) $(FLAGS_H) insn-config.h $(BASIC_BLOCK_H) $(REGS_H) \
@@ -2587,7 +2595,8 @@ tracer.o : tracer.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
cfglayout.o : cfglayout.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
$(RTL_H) $(TREE_H) insn-config.h $(BASIC_BLOCK_H) hard-reg-set.h output.h \
$(FUNCTION_H) $(CFGLAYOUT_H) $(CFGLOOP_H) $(TARGET_H) gt-cfglayout.h \
- $(GGC_H) alloc-pool.h $(FLAGS_H) $(OBSTACK_H) tree-pass.h $(DF_H)
+ $(GGC_H) alloc-pool.h $(FLAGS_H) $(OBSTACK_H) tree-pass.h vecprim.h \
+ $(DF_H)
timevar.o : timevar.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
$(TIMEVAR_H) $(FLAGS_H) intl.h toplev.h $(RTL_H) timevar.def
regrename.o : regrename.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
@@ -2607,7 +2616,7 @@ lambda-code.o: lambda-code.c $(LAMBDA_H) $(GGC_H) $(SYSTEM_H) $(CONFIG_H) \
$(TM_H) $(OPTABS_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) $(EXPR_H) coretypes.h $(TARGET_H) \
- tree-chrec.h tree-pass.h vec.h
+ tree-chrec.h tree-pass.h vec.h vecprim.h
params.o : params.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(PARAMS_H) toplev.h
pointer-set.o: pointer-set.c pointer-set.h $(CONFIG_H) $(SYSTEM_H)
hooks.o: hooks.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(HOOKS_H)
@@ -2821,8 +2830,8 @@ s-constrs-h: $(MD_DEPS) build/genpreds$(build_exeext)
GTFILES = $(srcdir)/input.h $(srcdir)/coretypes.h \
$(CPP_ID_DATA_H) $(host_xm_file_list) \
$(tm_file_list) $(HASHTAB_H) $(SPLAY_TREE_H) $(srcdir)/bitmap.h \
- $(srcdir)/coverage.c $(srcdir)/function.h $(srcdir)/rtl.h \
- $(srcdir)/optabs.h $(srcdir)/tree.h $(srcdir)/libfuncs.h $(SYMTAB_H) \
+ $(srcdir)/coverage.c $(srcdir)/rtl.h \
+ $(srcdir)/optabs.h $(srcdir)/tree.h $(srcdir)/function.h $(srcdir)/libfuncs.h $(SYMTAB_H) \
$(srcdir)/real.h $(srcdir)/varray.h $(srcdir)/insn-addr.h $(srcdir)/hwint.h \
$(srcdir)/ipa-reference.h $(srcdir)/output.h \
$(srcdir)/cselib.h $(srcdir)/basic-block.h $(srcdir)/cgraph.h \
@@ -2967,7 +2976,7 @@ build/genconstants.o : genconstants.c $(RTL_BASE_H) $(BCONFIG_H) \
build/genemit.o : genemit.c $(RTL_BASE_H) $(BCONFIG_H) $(SYSTEM_H) \
coretypes.h $(GTM_H) errors.h gensupport.h
build/genextract.o : genextract.c $(RTL_BASE_H) $(BCONFIG_H) \
- $(SYSTEM_H) coretypes.h $(GTM_H) errors.h gensupport.h
+ $(SYSTEM_H) coretypes.h $(GTM_H) errors.h gensupport.h vecprim.h
build/genflags.o : genflags.c $(RTL_BASE_H) $(OBSTACK_H) $(BCONFIG_H) \
$(SYSTEM_H) coretypes.h $(GTM_H) errors.h gensupport.h
build/gengenrtl.o : gengenrtl.c $(BCONFIG_H) $(SYSTEM_H) rtl.def
diff --git a/gcc/alias.c b/gcc/alias.c
index ad9855d0fed..db8555fdc6a 100644
--- a/gcc/alias.c
+++ b/gcc/alias.c
@@ -206,21 +206,21 @@ static void record_alias_subset (HOST_WIDE_INT, HOST_WIDE_INT);
current function performs nonlocal memory memory references for the
purposes of marking the function as a constant function. */
-static GTY(()) varray_type reg_base_value;
+static GTY(()) VEC(rtx,gc) *reg_base_value;
static rtx *new_reg_base_value;
/* We preserve the copy of old array around to avoid amount of garbage
produced. About 8% of garbage produced were attributed to this
array. */
-static GTY((deletable)) varray_type old_reg_base_value;
+static GTY((deletable)) VEC(rtx,gc) *old_reg_base_value;
/* Static hunks of RTL used by the aliasing code; these are initialized
once per function to avoid unnecessary RTL allocations. */
static GTY (()) rtx static_reg_base_value[FIRST_PSEUDO_REGISTER];
-#define REG_BASE_VALUE(X) \
- (reg_base_value && REGNO (X) < VARRAY_SIZE (reg_base_value) \
- ? VARRAY_RTX (reg_base_value, REGNO (X)) : 0)
+#define REG_BASE_VALUE(X) \
+ (REGNO (X) < VEC_length (rtx, reg_base_value) \
+ ? VEC_index (rtx, reg_base_value, REGNO (X)) : 0)
/* Vector indexed by N giving the initial (unchanging) value known for
pseudo-register N. This array is initialized in init_alias_analysis,
@@ -248,8 +248,11 @@ static bool *reg_known_equiv_p;
NOTE_INSN_FUNCTION_BEG note. */
static bool copying_arguments;
+DEF_VEC_P(alias_set_entry);
+DEF_VEC_ALLOC_P(alias_set_entry,gc);
+
/* The splay-tree used to store the various alias set entries. */
-static GTY ((param_is (struct alias_set_entry))) varray_type alias_sets;
+static GTY (()) VEC(alias_set_entry,gc) *alias_sets;
/* Returns a pointer to the alias set entry for ALIAS_SET, if there is
such an entry, or NULL otherwise. */
@@ -257,7 +260,7 @@ static GTY ((param_is (struct alias_set_entry))) varray_type alias_sets;
static inline alias_set_entry
get_alias_set_entry (HOST_WIDE_INT alias_set)
{
- return (alias_set_entry)VARRAY_GENERIC_PTR (alias_sets, alias_set);
+ return VEC_index (alias_set_entry, alias_sets, alias_set);
}
/* Returns nonzero if the alias sets for MEM1 and MEM2 are such that
@@ -622,18 +625,15 @@ get_alias_set (tree t)
/* Return a brand-new alias set. */
-static GTY(()) HOST_WIDE_INT last_alias_set;
-
HOST_WIDE_INT
new_alias_set (void)
{
if (flag_strict_aliasing)
{
- if (!alias_sets)
- VARRAY_GENERIC_PTR_INIT (alias_sets, 10, "alias sets");
- else
- VARRAY_GROW (alias_sets, last_alias_set + 2);
- return ++last_alias_set;
+ if (alias_sets == 0)
+ VEC_safe_push (alias_set_entry, gc, alias_sets, 0);
+ VEC_safe_push (alias_set_entry, gc, alias_sets, 0);
+ return VEC_length (alias_set_entry, alias_sets) - 1;
}
else
return 0;
@@ -675,7 +675,7 @@ record_alias_subset (HOST_WIDE_INT superset, HOST_WIDE_INT subset)
superset_entry->children
= splay_tree_new_ggc (splay_tree_compare_ints);
superset_entry->has_zero_child = 0;
- VARRAY_GENERIC_PTR (alias_sets, superset) = superset_entry;
+ VEC_replace (alias_set_entry, alias_sets, superset, superset_entry);
}
if (subset == 0)
@@ -815,7 +815,7 @@ find_base_value (rtx src)
The test above is not sufficient because the scheduler may move
a copy out of an arg reg past the NOTE_INSN_FUNCTION_BEGIN. */
if ((regno >= FIRST_PSEUDO_REGISTER || fixed_regs[regno])
- && regno < VARRAY_SIZE (reg_base_value))
+ && regno < VEC_length (rtx, reg_base_value))
{
/* If we're inside init_alias_analysis, use new_reg_base_value
to reduce the number of relaxation iterations. */
@@ -823,8 +823,8 @@ find_base_value (rtx src)
&& REG_N_SETS (regno) == 1)
return new_reg_base_value[regno];
- if (VARRAY_RTX (reg_base_value, regno))
- return VARRAY_RTX (reg_base_value, regno);
+ if (VEC_index (rtx, reg_base_value, regno))
+ return VEC_index (rtx, reg_base_value, regno);
}
return 0;
@@ -968,7 +968,7 @@ record_set (rtx dest, rtx set, void *data ATTRIBUTE_UNUSED)
regno = REGNO (dest);
- gcc_assert (regno < VARRAY_SIZE (reg_base_value));
+ gcc_assert (regno < VEC_length (rtx, reg_base_value));
/* If this spans multiple hard registers, then we must indicate that every
register has an unusable value. */
@@ -2424,24 +2424,16 @@ init_alias_analysis (void)
reg_known_value = ggc_calloc (reg_known_value_size, sizeof (rtx));
reg_known_equiv_p = xcalloc (reg_known_value_size, sizeof (bool));
- /* Overallocate reg_base_value to allow some growth during loop
- optimization. Loop unrolling can create a large number of
- registers. */
+ /* If we have memory allocated from the previous run, use it. */
if (old_reg_base_value)
- {
- reg_base_value = old_reg_base_value;
- /* If varray gets large zeroing cost may get important. */
- if (VARRAY_SIZE (reg_base_value) > 256
- && VARRAY_SIZE (reg_base_value) > 4 * maxreg)
- VARRAY_GROW (reg_base_value, maxreg);
- VARRAY_CLEAR (reg_base_value);
- if (VARRAY_SIZE (reg_base_value) < maxreg)
- VARRAY_GROW (reg_base_value, maxreg);
- }
- else
- {
- VARRAY_RTX_INIT (reg_base_value, maxreg, "reg_base_value");
- }
+ reg_base_value = old_reg_base_value;
+
+ if (reg_base_value)
+ VEC_truncate (rtx, reg_base_value, 0);
+
+ VEC_safe_grow (rtx, gc, reg_base_value, maxreg);
+ memset (VEC_address (rtx, reg_base_value), 0,
+ sizeof (rtx) * VEC_length (rtx, reg_base_value));
new_reg_base_value = XNEWVEC (rtx, maxreg);
reg_seen = XNEWVEC (char, maxreg);
@@ -2576,11 +2568,11 @@ init_alias_analysis (void)
for (ui = 0; ui < maxreg; ui++)
{
if (new_reg_base_value[ui]
- && new_reg_base_value[ui] != VARRAY_RTX (reg_base_value, ui)
+ && new_reg_base_value[ui] != VEC_index (rtx, reg_base_value, ui)
&& ! rtx_equal_p (new_reg_base_value[ui],
- VARRAY_RTX (reg_base_value, ui)))
+ VEC_index (rtx, reg_base_value, ui)))
{
- VARRAY_RTX (reg_base_value, ui) = new_reg_base_value[ui];
+ VEC_replace (rtx, reg_base_value, ui, new_reg_base_value[ui]);
changed = 1;
}
}
@@ -2609,15 +2601,15 @@ init_alias_analysis (void)
pass++;
for (ui = 0; ui < maxreg; ui++)
{
- rtx base = VARRAY_RTX (reg_base_value, ui);
+ rtx base = VEC_index (rtx, reg_base_value, ui);
if (base && REG_P (base))
{
unsigned int base_regno = REGNO (base);
if (base_regno == ui) /* register set from itself */
- VARRAY_RTX (reg_base_value, ui) = 0;
+ VEC_replace (rtx, reg_base_value, ui, 0);
else
- VARRAY_RTX (reg_base_value, ui)
- = VARRAY_RTX (reg_base_value, base_regno);
+ VEC_replace (rtx, reg_base_value, ui,
+ VEC_index (rtx, reg_base_value, base_regno));
changed = 1;
}
}
diff --git a/gcc/basic-block.h b/gcc/basic-block.h
index 3b1e907e73b..7a1c3417b27 100644
--- a/gcc/basic-block.h
+++ b/gcc/basic-block.h
@@ -473,7 +473,8 @@ extern bitmap_obstack reg_obstack;
#define REG_BLOCK_UNKNOWN -1
#define REG_BLOCK_GLOBAL -2
-#define REG_BASIC_BLOCK(N) (VARRAY_REG (reg_n_info, N)->basic_block)
+#define REG_BASIC_BLOCK(N) \
+ (VEC_index (reg_info_p, reg_n_info, N)->basic_block)
/* Stuff for recording basic block info. */
diff --git a/gcc/builtins.c b/gcc/builtins.c
index f504e311d6a..5747de440c6 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -2312,7 +2312,7 @@ expand_builtin_int_roundingfn (tree exp, rtx target, rtx subtarget)
gcc_assert (fallback_fndecl != NULL_TREE);
exp = build_function_call_expr (fallback_fndecl, arglist);
- tmp = expand_builtin_mathfn (exp, NULL_RTX, NULL_RTX);
+ tmp = expand_normal (exp);
/* Truncate the result of floating point optab to integer
via expand_fix (). */
@@ -3390,12 +3390,14 @@ expand_builtin_memset (tree arglist, rtx target, enum machine_mode mode,
tree dest = TREE_VALUE (arglist);
tree val = TREE_VALUE (TREE_CHAIN (arglist));
tree len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
+ tree fndecl, fn;
+ enum built_in_function fcode;
char c;
-
- unsigned int dest_align
- = get_pointer_alignment (dest, BIGGEST_ALIGNMENT);
+ unsigned int dest_align;
rtx dest_mem, dest_addr, len_rtx;
+ dest_align = get_pointer_alignment (dest, BIGGEST_ALIGNMENT);
+
/* If DEST is not a pointer type, don't do this
operation in-line. */
if (dest_align == 0)
@@ -3409,15 +3411,21 @@ expand_builtin_memset (tree arglist, rtx target, enum machine_mode mode,
return expand_expr (dest, target, mode, EXPAND_NORMAL);
}
+ /* Stabilize the arguments in case we fail. */
+ dest = builtin_save_expr (dest);
+ val = builtin_save_expr (val);
+ len = builtin_save_expr (len);
+
len_rtx = expand_normal (len);
dest_mem = get_memory_rtx (dest, len);
if (TREE_CODE (val) != INTEGER_CST)
{
+ tree cval;
rtx val_rtx;
- val = fold_build1 (CONVERT_EXPR, unsigned_char_type_node, val);
- val_rtx = expand_normal (val);
+ cval = fold_build1 (CONVERT_EXPR, unsigned_char_type_node, val);
+ val_rtx = expand_normal (cval);
/* Assume that we can memset by pieces if we can store the
* the coefficients by pieces (in the required modes).
@@ -3433,9 +3441,9 @@ expand_builtin_memset (tree arglist, rtx target, enum machine_mode mode,
store_by_pieces (dest_mem, tree_low_cst (len, 1),
builtin_memset_gen_str, val_rtx, dest_align, 0);
}
- else if (!set_storage_via_setmem(dest_mem, len_rtx, val_rtx,
- dest_align))
- return 0;
+ else if (!set_storage_via_setmem (dest_mem, len_rtx, val_rtx,
+ dest_align))
+ goto do_libcall;
dest_mem = force_operand (XEXP (dest_mem, 0), NULL_RTX);
dest_mem = convert_memory_address (ptr_mode, dest_mem);
@@ -3443,7 +3451,7 @@ expand_builtin_memset (tree arglist, rtx target, enum machine_mode mode,
}
if (target_char_cast (val, &c))
- return 0;
+ goto do_libcall;
if (c)
{
@@ -3455,7 +3463,7 @@ expand_builtin_memset (tree arglist, rtx target, enum machine_mode mode,
builtin_memset_read_str, &c, dest_align, 0);
else if (!set_storage_via_setmem (dest_mem, len_rtx, GEN_INT (c),
dest_align))
- return 0;
+ goto do_libcall;
dest_mem = force_operand (XEXP (dest_mem, 0), NULL_RTX);
dest_mem = convert_memory_address (ptr_mode, dest_mem);
@@ -3474,6 +3482,19 @@ expand_builtin_memset (tree arglist, rtx target, enum machine_mode mode,
}
return dest_addr;
+
+ do_libcall:
+ fndecl = get_callee_fndecl (orig_exp);
+ fcode = DECL_FUNCTION_CODE (fndecl);
+ gcc_assert (fcode == BUILT_IN_MEMSET || fcode == BUILT_IN_BZERO);
+ arglist = build_tree_list (NULL_TREE, len);
+ if (fcode == BUILT_IN_MEMSET)
+ arglist = tree_cons (NULL_TREE, val, arglist);
+ arglist = tree_cons (NULL_TREE, dest, arglist);
+ fn = build_function_call_expr (fndecl, arglist);
+ if (TREE_CODE (fn) == CALL_EXPR)
+ CALL_EXPR_TAILCALL (fn) = CALL_EXPR_TAILCALL (orig_exp);
+ return expand_call (fn, target, target == const0_rtx);
}
}
@@ -3719,9 +3740,8 @@ expand_builtin_strcmp (tree exp, rtx target, enum machine_mode mode)
/* If both arguments have side effects, we cannot optimize. */
if (!len || TREE_SIDE_EFFECTS (len))
- return 0;
+ goto do_libcall;
- /* Stabilize the arguments in case gen_cmpstrnsi fails. */
arg3_rtx = expand_normal (len);
/* Make a place to write the result of the instruction. */
@@ -3752,6 +3772,9 @@ expand_builtin_strcmp (tree exp, rtx target, enum machine_mode mode)
/* Expand the library call ourselves using a stabilized argument
list to avoid re-evaluating the function's arguments twice. */
+#ifdef HAVE_cmpstrnsi
+ do_libcall:
+#endif
arglist = build_tree_list (NULL_TREE, arg2);
arglist = tree_cons (NULL_TREE, arg1, arglist);
fndecl = get_callee_fndecl (exp);
diff --git a/gcc/c-common.c b/gcc/c-common.c
index 1a11c3b189a..35982e58c1e 100644
--- a/gcc/c-common.c
+++ b/gcc/c-common.c
@@ -1871,6 +1871,31 @@ c_common_signed_or_unsigned_type (int unsignedp, tree type)
return build_nonstandard_integer_type (TYPE_PRECISION (type), unsignedp);
}
+/* Build a bit-field integer type for the given WIDTH and UNSIGNEDP. */
+
+tree
+c_build_bitfield_integer_type (unsigned HOST_WIDE_INT width, int unsignedp)
+{
+ /* Extended integer types of the same width as a standard type have
+ lesser rank, so those of the same width as int promote to int or
+ unsigned int and are valid for printf formats expecting int or
+ unsigned int. To avoid such special cases, avoid creating
+ extended integer types for bit-fields if a standard integer type
+ is available. */
+ if (width == TYPE_PRECISION (integer_type_node))
+ return unsignedp ? unsigned_type_node : integer_type_node;
+ if (width == TYPE_PRECISION (signed_char_type_node))
+ return unsignedp ? unsigned_char_type_node : signed_char_type_node;
+ if (width == TYPE_PRECISION (short_integer_type_node))
+ return unsignedp ? short_unsigned_type_node : short_integer_type_node;
+ if (width == TYPE_PRECISION (long_integer_type_node))
+ return unsignedp ? long_unsigned_type_node : long_integer_type_node;
+ if (width == TYPE_PRECISION (long_long_integer_type_node))
+ return (unsignedp ? long_long_unsigned_type_node
+ : long_long_integer_type_node);
+ return build_nonstandard_integer_type (width, unsignedp);
+}
+
/* The C version of the register_builtin_type langhook. */
void
diff --git a/gcc/c-common.h b/gcc/c-common.h
index ed93f97b3e9..5636685efed 100644
--- a/gcc/c-common.h
+++ b/gcc/c-common.h
@@ -644,6 +644,7 @@ extern tree c_common_type_for_size (unsigned int, int);
extern tree c_common_unsigned_type (tree);
extern tree c_common_signed_type (tree);
extern tree c_common_signed_or_unsigned_type (int, tree);
+extern tree c_build_bitfield_integer_type (unsigned HOST_WIDE_INT, int);
extern tree c_common_truthvalue_conversion (tree);
extern void c_apply_type_quals_to_decl (int, tree);
extern tree c_sizeof_or_alignof_type (tree, bool, int);
diff --git a/gcc/c-decl.c b/gcc/c-decl.c
index db906b4456b..f4d33307bf2 100644
--- a/gcc/c-decl.c
+++ b/gcc/c-decl.c
@@ -3814,29 +3814,6 @@ check_bitfield_type_and_width (tree *type, tree *width, const char *orig_name)
}
}
-/* Build a bit-field integer type for the given WIDTH and UNSIGNEDP. */
-static tree
-c_build_bitfield_integer_type (unsigned HOST_WIDE_INT width, int unsignedp)
-{
- /* Extended integer types of the same width as a standard type have
- lesser rank, so those of the same width as int promote to int or
- unsigned int and are valid for printf formats expecting int or
- unsigned int. To avoid such special cases, avoid creating
- extended integer types for bit-fields if a standard integer type
- is available. */
- if (width == TYPE_PRECISION (integer_type_node))
- return unsignedp ? unsigned_type_node : integer_type_node;
- if (width == TYPE_PRECISION (signed_char_type_node))
- return unsignedp ? unsigned_char_type_node : signed_char_type_node;
- if (width == TYPE_PRECISION (short_integer_type_node))
- return unsignedp ? short_unsigned_type_node : short_integer_type_node;
- if (width == TYPE_PRECISION (long_integer_type_node))
- return unsignedp ? long_unsigned_type_node : long_integer_type_node;
- if (width == TYPE_PRECISION (long_long_integer_type_node))
- return (unsignedp ? long_long_unsigned_type_node
- : long_long_integer_type_node);
- return build_nonstandard_integer_type (width, unsignedp);
-}
/* Given declspecs and a declarator,
determine the name and type of the object declared
diff --git a/gcc/c-parser.c b/gcc/c-parser.c
index b5722738ac9..0c90fa84bd8 100644
--- a/gcc/c-parser.c
+++ b/gcc/c-parser.c
@@ -4660,6 +4660,11 @@ c_parser_cast_expression (c_parser *parser, struct c_expr *after)
ret.original_code = ERROR_MARK;
return ret;
}
+
+ /* Save casted types in the function's used types hash table. */
+ if (debug_info_level > DINFO_LEVEL_NONE)
+ used_types_insert (type_name->specs->type, cfun);
+
if (c_parser_next_token_is (parser, CPP_OPEN_BRACE))
return c_parser_postfix_expression_after_paren_type (parser,
type_name);
diff --git a/gcc/c-pretty-print.c b/gcc/c-pretty-print.c
index 67015675234..9b9add2d0a0 100644
--- a/gcc/c-pretty-print.c
+++ b/gcc/c-pretty-print.c
@@ -521,7 +521,16 @@ pp_c_direct_abstract_declarator (c_pretty_printer *pp, tree t)
case ARRAY_TYPE:
pp_c_left_bracket (pp);
if (TYPE_DOMAIN (t) && TYPE_MAX_VALUE (TYPE_DOMAIN (t)))
- pp_expression (pp, TYPE_MAX_VALUE (TYPE_DOMAIN (t)));
+ {
+ tree maxval = TYPE_MAX_VALUE (TYPE_DOMAIN (t));
+ tree type = TREE_TYPE (maxval);
+
+ if (host_integerp (maxval, 0))
+ pp_wide_integer (pp, tree_low_cst (maxval, 0) + 1);
+ else
+ pp_expression (pp, fold_build2 (PLUS_EXPR, type, maxval,
+ build_int_cst (type, 1)));
+ }
pp_c_right_bracket (pp);
pp_direct_abstract_declarator (pp, TREE_TYPE (t));
break;
diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c
index 98eeacd552a..21fe12538a2 100644
--- a/gcc/c-typeck.c
+++ b/gcc/c-typeck.c
@@ -4495,6 +4495,7 @@ digest_init (tree type, tree init, bool strict_string, int require_constant)
tree inside_init = init;
if (type == error_mark_node
+ || !init
|| init == error_mark_node
|| TREE_TYPE (init) == error_mark_node)
return error_mark_node;
@@ -5442,15 +5443,8 @@ pop_init_level (int implicit)
constructor_stack = p->next;
free (p);
- if (ret.value == 0)
- {
- if (constructor_stack == 0)
- {
- ret.value = error_mark_node;
- return ret;
- }
- return ret;
- }
+ if (ret.value == 0 && constructor_stack == 0)
+ ret.value = error_mark_node;
return ret;
}
diff --git a/gcc/caller-save.c b/gcc/caller-save.c
index d0c33e3cf31..576c6417e4d 100644
--- a/gcc/caller-save.c
+++ b/gcc/caller-save.c
@@ -25,7 +25,6 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
#include "tm.h"
#include "rtl.h"
#include "regs.h"
-#include "addresses.h"
#include "insn-config.h"
#include "flags.h"
#include "hard-reg-set.h"
@@ -36,6 +35,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
#include "expr.h"
#include "toplev.h"
#include "tm_p.h"
+#include "addresses.h"
#ifndef MAX_MOVE_MAX
#define MAX_MOVE_MAX MOVE_MAX
diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c
index 14dac5b64af..821321cacde 100644
--- a/gcc/cfgcleanup.c
+++ b/gcc/cfgcleanup.c
@@ -1669,7 +1669,7 @@ try_crossjump_to_edge (int mode, edge e1, edge e2)
&& (newpos1 != BB_HEAD (src1)))
return false;
- /* Avoid deleting preserve label when redirecting ABNORMAL edeges. */
+ /* Avoid deleting preserve label when redirecting ABNORMAL edges. */
if (block_has_preserve_label (e1->dest)
&& (e1->flags & EDGE_ABNORMAL))
return false;
diff --git a/gcc/cfglayout.c b/gcc/cfglayout.c
index d999070d564..172a8727397 100644
--- a/gcc/cfglayout.c
+++ b/gcc/cfglayout.c
@@ -38,6 +38,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
#include "flags.h"
#include "tree-pass.h"
#include "df.h"
+#include "vecprim.h"
/* Holds the interesting trailing notes for the function. */
rtx cfg_layout_function_footer, cfg_layout_function_header;
@@ -222,9 +223,6 @@ record_effective_endpoints (void)
cfg_layout_function_footer = unlink_insn_chain (cfg_layout_function_footer, get_last_insn ());
}
-DEF_VEC_I(int);
-DEF_VEC_ALLOC_I(int,heap);
-
/* Data structures representing mapping of INSN_LOCATOR into scope blocks, line
numbers and files. In order to be GGC friendly we need to use separate
varrays. This also slightly improve the memory locality in binary search.
diff --git a/gcc/cfgloop.h b/gcc/cfgloop.h
index 3309e0fdca9..9805d4cff60 100644
--- a/gcc/cfgloop.h
+++ b/gcc/cfgloop.h
@@ -149,13 +149,10 @@ struct loops
/* Number of natural loops in the function. */
unsigned num;
- /* Array of natural loop descriptors (scanning this array in reverse order
- will find the inner loops before their enclosing outer loops). */
- struct loop *array;
+ /* State of loops. */
+ int state;
- /* The above array is unused in new loop infrastructure and is kept only for
- purposes of the old loop optimizer. Instead we store just pointers to
- loops here.
+ /* We store just pointers to loops here.
Note that a loop in this array may actually be NULL, if the loop
has been removed and the entire loops structure has not been
recomputed since that time. */
@@ -177,9 +174,6 @@ struct loops
/* Headers shared by multiple loops that should be merged. */
sbitmap shared_headers;
-
- /* State of loops. */
- int state;
};
/* The loop tree currently optimized. */
@@ -408,9 +402,4 @@ extern void doloop_optimize_loops (struct loops *);
extern void move_loop_invariants (struct loops *);
extern void record_estimate (struct loop *, tree, tree, tree);
-/* Old loop optimizer interface. */
-
-/* Flags passed to loop_optimize. */
-#define LOOP_PREFETCH 1
-
#endif /* GCC_CFGLOOP_H */
diff --git a/gcc/cgraph.h b/gcc/cgraph.h
index 6e60f8c205e..8058d97c079 100644
--- a/gcc/cgraph.h
+++ b/gcc/cgraph.h
@@ -189,6 +189,11 @@ struct cgraph_edge GTY((chain_next ("%h.next_caller"), chain_prev ("%h.prev_call
int loop_nest;
};
+typedef struct cgraph_edge *cgraph_edge_p;
+
+DEF_VEC_P(cgraph_edge_p);
+DEF_VEC_ALLOC_P(cgraph_edge_p,heap);
+
/* The cgraph_varpool data structure.
Each static variable decl has assigned cgraph_varpool_node. */
@@ -307,7 +312,8 @@ void cgraph_build_static_cdtor (char which, tree body, int priority);
void cgraph_reset_static_var_maps (void);
void init_cgraph (void);
struct cgraph_node *cgraph_function_versioning (struct cgraph_node *,
- varray_type, varray_type);
+ VEC(cgraph_edge_p,heap)*,
+ varray_type);
void cgraph_analyze_function (struct cgraph_node *);
struct cgraph_node *save_inline_function_body (struct cgraph_node *);
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index 80f26fac52a..030f8681792 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -1575,7 +1575,8 @@ update_call_expr (struct cgraph_node *new_version)
static struct cgraph_node *
cgraph_copy_node_for_versioning (struct cgraph_node *old_version,
- tree new_decl, varray_type redirect_callers)
+ tree new_decl,
+ VEC(cgraph_edge_p,heap) *redirect_callers)
{
struct cgraph_node *new_version;
struct cgraph_edge *e, *new_e;
@@ -1614,14 +1615,12 @@ cgraph_copy_node_for_versioning (struct cgraph_node *old_version,
if (!next_callee)
break;
}
- if (redirect_callers)
- for (i = 0; i < VARRAY_ACTIVE_SIZE (redirect_callers); i++)
- {
- e = VARRAY_GENERIC_PTR (redirect_callers, i);
- /* Redirect calls to the old version node
- to point to it's new version. */
- cgraph_redirect_edge_callee (e, new_version);
- }
+ for (i = 0; VEC_iterate (cgraph_edge_p, redirect_callers, i, e); i++)
+ {
+ /* Redirect calls to the old version node to point to its new
+ version. */
+ cgraph_redirect_edge_callee (e, new_version);
+ }
return new_version;
}
@@ -1641,7 +1640,7 @@ cgraph_copy_node_for_versioning (struct cgraph_node *old_version,
struct cgraph_node *
cgraph_function_versioning (struct cgraph_node *old_version_node,
- varray_type redirect_callers,
+ VEC(cgraph_edge_p,heap) *redirect_callers,
varray_type tree_map)
{
tree old_decl = old_version_node->decl;
diff --git a/gcc/common.opt b/gcc/common.opt
index 425d68edea1..bf3f14943e7 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -613,7 +613,7 @@ Common RejectNegative Report Var(flag_mudflap)
Add mudflap bounds-checking instrumentation for single-threaded program
fmudflapth
-Common RejectNegative Report Var(flag_mudflap_threads)
+Common RejectNegative Report VarExists Var(flag_mudflap,2)
Add mudflap bounds-checking instrumentation for multi-threaded program
fmudflapir
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 67a0625b1dd..dbc6debdd9f 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -1642,7 +1642,7 @@ pdp11-*-*)
;;
# port not yet contributed
#powerpc-*-openbsd*)
-# tmake_file="${tmake_file} rs6000/t-fprules "
+# tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-fprules-fpbit "
# extra_headers=
# ;;
powerpc64-*-linux*)
@@ -1654,16 +1654,16 @@ powerpc64-*-linux*)
tm_file="rs6000/secureplt.h ${tm_file}"
fi
extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
- tmake_file="t-dfprules rs6000/t-fprules ${tmake_file} rs6000/t-ppccomm rs6000/t-linux64"
+ tmake_file="t-dfprules rs6000/t-fprules ${tmake_file} rs6000/t-ppccomm rs6000/t-linux64 rs6000/t-fprules-softfp soft-fp/t-softfp"
;;
powerpc64-*-gnu*)
tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux64.h rs6000/gnu.h"
extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
- tmake_file="rs6000/t-fprules t-slibgcc-elf-ver t-gnu rs6000/t-linux64"
+ tmake_file="rs6000/t-fprules t-slibgcc-elf-ver t-gnu rs6000/t-linux64 rs6000/t-fprules-softfp soft-fp/t-softfp"
;;
powerpc-*-beos*)
tm_file="${tm_file} rs6000/aix.h rs6000/beos.h rs6000/xcoff.h"
- tmake_file="rs6000/t-fprules rs6000/t-beos"
+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-beos"
extra_headers=
use_fixproto=yes
;;
@@ -1685,7 +1685,7 @@ powerpc-*-darwin*)
;;
powerpc*-*-freebsd*)
tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h rs6000/freebsd.h"
- tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
extra_options="${extra_options} rs6000/sysv4.opt"
;;
powerpc-*-netbsd*)
@@ -1695,7 +1695,7 @@ powerpc-*-netbsd*)
;;
powerpc-*-chorusos*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h chorus.h"
- tmake_file="rs6000/t-fprules rs6000/t-ppcos rs6000/t-ppccomm"
+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos rs6000/t-ppccomm"
extra_options="${extra_options} rs6000/sysv4.opt"
case ${enable_threads} in
yes | posix)
@@ -1712,48 +1712,48 @@ powerpc-*-eabispe*)
powerpc-*-eabisimaltivec*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h rs6000/eabialtivec.h"
extra_options="${extra_options} rs6000/sysv4.opt"
- tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcendian rs6000/t-ppccomm"
;;
powerpc-*-eabisim*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h"
extra_options="${extra_options} rs6000/sysv4.opt"
- tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
;;
powerpc-*-elf*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h"
extra_options="${extra_options} rs6000/sysv4.opt"
- tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
use_fixproto=yes
;;
powerpc-*-eabialtivec*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabialtivec.h"
extra_options="${extra_options} rs6000/sysv4.opt"
- tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcendian rs6000/t-ppccomm"
;;
powerpc-*-eabi*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h"
extra_options="${extra_options} rs6000/sysv4.opt"
- tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
;;
powerpc-*-rtems*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/rtems.h rtems.h"
extra_options="${extra_options} rs6000/sysv4.opt"
- tmake_file="rs6000/t-fprules rs6000/t-rtems t-rtems rs6000/t-ppccomm"
+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-rtems t-rtems rs6000/t-ppccomm"
;;
powerpc-*-linux*altivec*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxaltivec.h"
extra_options="${extra_options} rs6000/sysv4.opt"
- tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
+ tmake_file="rs6000/t-fprules rs6000/t-fprules-softfp soft-fp/t-softfp rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
;;
powerpc-*-linux*spe*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxspe.h"
extra_options="${extra_options} rs6000/sysv4.opt"
- tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
+ tmake_file="rs6000/t-fprules rs6000/t-fprules-softfp soft-fp/t-softfp 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"
extra_options="${extra_options} rs6000/sysv4.opt"
- tmake_file="t-dfprules rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
+ tmake_file="t-dfprules rs6000/t-fprules rs6000/t-fprules-softfp soft-fp/t-softfp 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
@@ -1774,14 +1774,14 @@ powerpc-*-linux*)
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"
extra_options="${extra_options} rs6000/sysv4.opt"
- tmake_file="rs6000/t-fprules rs6000/t-ppcos t-slibgcc-elf-ver t-gnu rs6000/t-ppccomm"
+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos t-slibgcc-elf-ver t-gnu rs6000/t-ppccomm"
if test x$enable_threads = xyes; then
thread_file='posix'
fi
;;
powerpc-*-gnu*)
tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux.h rs6000/gnu.h"
- tmake_file="rs6000/t-fprules rs6000/t-ppcos t-slibgcc-elf-ver t-gnu rs6000/t-ppccomm"
+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos t-slibgcc-elf-ver t-gnu rs6000/t-ppccomm"
extra_options="${extra_options} rs6000/sysv4.opt"
if test x$enable_threads = xyes; then
thread_file='posix'
@@ -1791,7 +1791,7 @@ powerpc-wrs-vxworks|powerpc-wrs-vxworksae)
# We want vxworks.h after rs6000/sysv4.h, which unfortunately
# means we have to redo the tm_file list from scratch.
tm_file="rs6000/rs6000.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h"
- tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
+ tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppccomm rs6000/t-vxworks"
extra_options="${extra_options} rs6000/sysv4.opt"
extra_headers=ppc-asm.h
case ${target} in
@@ -1806,7 +1806,7 @@ powerpc-wrs-vxworks|powerpc-wrs-vxworksae)
;;
powerpc-wrs-windiss*) # Instruction-level simulator for VxWorks.
tm_file="${tm_file} elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/windiss.h"
- tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
extra_options="${extra_options} rs6000/sysv4.opt"
thread_file=""
use_fixproto=yes
@@ -1824,39 +1824,39 @@ powerpc-*-lynxos*)
;;
powerpcle-*-sysv*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h"
- tmake_file="rs6000/t-fprules rs6000/t-ppcos rs6000/t-ppccomm"
+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos rs6000/t-ppccomm"
extra_options="${extra_options} rs6000/sysv4.opt"
use_fixproto=yes
;;
powerpcle-*-elf*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h"
- tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
extra_options="${extra_options} rs6000/sysv4.opt"
use_fixproto=yes
;;
powerpcle-*-eabisim*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h rs6000/eabisim.h"
- tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
extra_options="${extra_options} rs6000/sysv4.opt"
;;
powerpcle-*-eabi*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h"
- tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
extra_options="${extra_options} rs6000/sysv4.opt"
;;
powerpc-*-kaos*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h kaos.h rs6000/kaos-ppc.h"
- tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
extra_options="${extra_options} rs6000/sysv4.opt"
;;
powerpcle-*-kaos*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h kaos.h rs6000/kaos-ppc.h"
- tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
extra_options="${extra_options} rs6000/sysv4.opt"
;;
rs6000-ibm-aix4.[12]* | powerpc-ibm-aix4.[12]*)
tm_file="${tm_file} rs6000/aix.h rs6000/aix41.h rs6000/xcoff.h"
- tmake_file="rs6000/t-fprules rs6000/t-newas"
+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-newas"
extra_options="${extra_options} rs6000/aix41.opt"
use_collect2=yes
extra_headers=
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 0f46b3e8dd9..3b221e2977e 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -1230,6 +1230,12 @@ arm_override_options (void)
if (arm_float_abi == ARM_FLOAT_ABI_HARD && TARGET_VFP)
sorry ("-mfloat-abi=hard and VFP");
+ /* FPA and iWMMXt are incompatible because the insn encodings overlap.
+ VFP and iWMMXt can theoretically coexist, but it's unlikely such silicon
+ will ever exist. GCC makes no attempt to support this combination. */
+ if (TARGET_IWMMXT && !TARGET_SOFT_FLOAT)
+ sorry ("iWMMXt and hardware floating point");
+
/* If soft-float is specified then don't use FPU. */
if (TARGET_SOFT_FLOAT)
arm_fpu_arch = FPUTYPE_NONE;
diff --git a/gcc/config/dfp-bit.c b/gcc/config/dfp-bit.c
index 271bfb5627a..c9374c51f06 100644
--- a/gcc/config/dfp-bit.c
+++ b/gcc/config/dfp-bit.c
@@ -411,7 +411,7 @@ DFP_TO_INT (DFP_C_TYPE x)
TO_INTERNAL (&s, &n1);
/* Rescale if the exponent is less than zero. */
decNumberToIntegralValue (&n2, &n1, &context);
- /* Get a value to use for the quanitize call. */
+ /* Get a value to use for the quantize call. */
decNumberFromString (&qval, (char *) "1.0", &context);
/* Force the exponent to zero. */
decNumberQuantize (&n1, &n2, &qval, &context);
diff --git a/gcc/config/fr30/fr30.h b/gcc/config/fr30/fr30.h
index b423b0a66ce..0901649c312 100644
--- a/gcc/config/fr30/fr30.h
+++ b/gcc/config/fr30/fr30.h
@@ -842,13 +842,15 @@ do \
goto LABEL; \
if (GET_CODE (X) == PLUS \
&& ((MODE) == SImode || (MODE) == SFmode) \
- && XEXP (X, 0) == stack_pointer_rtx \
+ && GET_CODE (XEXP (X, 0)) == REG \
+ && REGNO (XEXP (X, 0)) == STACK_POINTER_REGNUM \
&& GET_CODE (XEXP (X, 1)) == CONST_INT \
&& IN_RANGE (INTVAL (XEXP (X, 1)), 0, (1 << 6) - 4)) \
goto LABEL; \
if (GET_CODE (X) == PLUS \
&& ((MODE) == SImode || (MODE) == SFmode) \
- && XEXP (X, 0) == frame_pointer_rtx \
+ && GET_CODE (XEXP (X, 0)) == REG \
+ && REGNO (XEXP (X, 0)) == FRAME_POINTER_REGNUM \
&& GET_CODE (XEXP (X, 1)) == CONST_INT \
&& IN_RANGE (INTVAL (XEXP (X, 1)), -(1 << 9), (1 << 9) - 4)) \
goto LABEL; \
@@ -862,15 +864,16 @@ do \
goto LABEL; \
if (GET_CODE (X) == PLUS \
&& ((MODE) == SImode || (MODE) == SFmode) \
- && XEXP (X, 0) == stack_pointer_rtx \
+ && GET_CODE (XEXP (X, 0)) == REG \
+ && REGNO (XEXP (X, 0)) == STACK_POINTER_REGNUM \
&& GET_CODE (XEXP (X, 1)) == CONST_INT \
&& IN_RANGE (INTVAL (XEXP (X, 1)), 0, (1 << 6) - 4)) \
goto LABEL; \
if (GET_CODE (X) == PLUS \
&& ((MODE) == SImode || (MODE) == SFmode) \
- && GET_CODE (XEXP (X, 0)) == REG \
- && (REGNO (XEXP (X, 0)) == FRAME_POINTER_REGNUM \
- || REGNO (XEXP (X, 0)) == ARG_POINTER_REGNUM) \
+ && GET_CODE (XEXP (X, 0)) == REG \
+ && (REGNO (XEXP (X, 0)) == FRAME_POINTER_REGNUM \
+ || REGNO (XEXP (X, 0)) == ARG_POINTER_REGNUM) \
&& GET_CODE (XEXP (X, 1)) == CONST_INT \
&& IN_RANGE (INTVAL (XEXP (X, 1)), -(1 << 9), (1 << 9) - 4)) \
goto LABEL; \
diff --git a/gcc/config/fr30/fr30.md b/gcc/config/fr30/fr30.md
index 734b3749ada..0deda961e85 100644
--- a/gcc/config/fr30/fr30.md
+++ b/gcc/config/fr30/fr30.md
@@ -290,7 +290,9 @@
(define_split
[(set (match_operand:SI 0 "register_operand" "")
(match_operand:SI 1 "const_int_operand" ""))]
- "INTVAL (operands[1]) <= -1 && INTVAL (operands[1]) >= -128"
+ "INTVAL (operands[1]) <= -1 && INTVAL (operands[1]) >= -128
+ && (GET_CODE (operands[0]) != SUBREG
+ || SCALAR_INT_MODE_P (GET_MODE (XEXP (operands[0], 0))))"
[(set:SI (match_dup 0) (match_dup 1))
(set:SI (match_dup 0) (sign_extend:SI (match_dup 2)))]
"{
@@ -654,10 +656,10 @@
emit_insn (gen_addsi_regs (operands[0], operands[1], operands[2]));
else if (GET_CODE (operands[2]) != CONST_INT)
emit_insn (gen_addsi_big_int (operands[0], operands[1], operands[2]));
- else if ( (REGNO (operands[1]) != FRAME_POINTER_REGNUM)
- && (REGNO (operands[1]) != ARG_POINTER_REGNUM)
- && (INTVAL (operands[2]) >= -16)
- && (INTVAL (operands[2]) <= 15))
+ else if (INTVAL (operands[2]) >= -16
+ && INTVAL (operands[2]) <= 15
+ && (!REGNO_PTR_FRAME_P (REGNO (operands[1]))
+ || REGNO (operands[1]) == STACK_POINTER_REGNUM))
emit_insn (gen_addsi_small_int (operands[0], operands[1], operands[2]));
else
emit_insn (gen_addsi_big_int (operands[0], operands[1], operands[2]));
@@ -680,8 +682,8 @@
[(set (match_operand:SI 0 "register_operand" "=r,r")
(plus:SI (match_operand:SI 1 "register_operand" "0,0")
(match_operand:SI 2 "add_immediate_operand" "I,J")))]
- " (REGNO (operands[1]) != FRAME_POINTER_REGNUM)
- && (REGNO (operands[1]) != ARG_POINTER_REGNUM)"
+ "! REGNO_PTR_FRAME_P (REGNO (operands[1]))
+ || REGNO (operands[1]) == STACK_POINTER_REGNUM"
"@
addn %2, %0
addn2 %2, %0"
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 9c24004411b..3e65b4e58a1 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -1084,8 +1084,8 @@ static rtx get_thread_pointer (int);
static rtx legitimize_tls_address (rtx, enum tls_model, int);
static void get_pc_thunk_name (char [32], unsigned int);
static rtx gen_push (rtx);
-static int ix86_flags_dependant (rtx, rtx, enum attr_type);
-static int ix86_agi_dependant (rtx, rtx, enum attr_type);
+static int ix86_flags_dependent (rtx, rtx, enum attr_type);
+static int ix86_agi_dependent (rtx, rtx, enum attr_type);
static struct machine_function * ix86_init_machine_status (void);
static int ix86_split_to_parts (rtx, rtx *, enum machine_mode);
static int ix86_nsaved_regs (void);
@@ -4123,6 +4123,7 @@ ix86_va_start (tree valist, rtx nextarg)
HOST_WIDE_INT words, n_gpr, n_fpr;
tree f_gpr, f_fpr, f_ovf, f_sav;
tree gpr, fpr, ovf, sav, t;
+ tree type;
/* Only 64bit target needs something special. */
if (!TARGET_64BIT)
@@ -4153,26 +4154,29 @@ ix86_va_start (tree valist, rtx nextarg)
if (cfun->va_list_gpr_size)
{
- t = build2 (MODIFY_EXPR, TREE_TYPE (gpr), gpr,
- build_int_cst (NULL_TREE, n_gpr * 8));
+ type = TREE_TYPE (gpr);
+ t = build2 (MODIFY_EXPR, type, gpr,
+ build_int_cst (type, n_gpr * 8));
TREE_SIDE_EFFECTS (t) = 1;
expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
}
if (cfun->va_list_fpr_size)
{
- t = build2 (MODIFY_EXPR, TREE_TYPE (fpr), fpr,
- build_int_cst (NULL_TREE, n_fpr * 16 + 8*REGPARM_MAX));
+ type = TREE_TYPE (fpr);
+ t = build2 (MODIFY_EXPR, type, fpr,
+ build_int_cst (type, n_fpr * 16 + 8*REGPARM_MAX));
TREE_SIDE_EFFECTS (t) = 1;
expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
}
/* Find the overflow area. */
- t = make_tree (TREE_TYPE (ovf), virtual_incoming_args_rtx);
+ type = TREE_TYPE (ovf);
+ t = make_tree (type, virtual_incoming_args_rtx);
if (words != 0)
- t = build2 (PLUS_EXPR, TREE_TYPE (ovf), t,
- build_int_cst (NULL_TREE, words * UNITS_PER_WORD));
- t = build2 (MODIFY_EXPR, TREE_TYPE (ovf), ovf, t);
+ t = build2 (PLUS_EXPR, type, t,
+ build_int_cst (type, words * UNITS_PER_WORD));
+ t = build2 (MODIFY_EXPR, type, ovf, t);
TREE_SIDE_EFFECTS (t) = 1;
expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
@@ -4180,8 +4184,9 @@ ix86_va_start (tree valist, rtx nextarg)
{
/* Find the register save area.
Prologue of the function save it right above stack frame. */
- t = make_tree (TREE_TYPE (sav), frame_pointer_rtx);
- t = build2 (MODIFY_EXPR, TREE_TYPE (sav), sav, t);
+ type = TREE_TYPE (sav);
+ t = make_tree (type, frame_pointer_rtx);
+ t = build2 (MODIFY_EXPR, type, sav, t);
TREE_SIDE_EFFECTS (t) = 1;
expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
}
@@ -13428,7 +13433,7 @@ ix86_issue_rate (void)
by DEP_INSN and nothing set by DEP_INSN. */
static int
-ix86_flags_dependant (rtx insn, rtx dep_insn, enum attr_type insn_type)
+ix86_flags_dependent (rtx insn, rtx dep_insn, enum attr_type insn_type)
{
rtx set, set2;
@@ -13473,7 +13478,7 @@ ix86_flags_dependant (rtx insn, rtx dep_insn, enum attr_type insn_type)
address with operands set by DEP_INSN. */
static int
-ix86_agi_dependant (rtx insn, rtx dep_insn, enum attr_type insn_type)
+ix86_agi_dependent (rtx insn, rtx dep_insn, enum attr_type insn_type)
{
rtx addr;
@@ -13531,17 +13536,17 @@ ix86_adjust_cost (rtx insn, rtx link, rtx dep_insn, int cost)
{
case PROCESSOR_PENTIUM:
/* Address Generation Interlock adds a cycle of latency. */
- if (ix86_agi_dependant (insn, dep_insn, insn_type))
+ if (ix86_agi_dependent (insn, dep_insn, insn_type))
cost += 1;
/* ??? Compares pair with jump/setcc. */
- if (ix86_flags_dependant (insn, dep_insn, insn_type))
+ if (ix86_flags_dependent (insn, dep_insn, insn_type))
cost = 0;
/* Floating point stores require value to be ready one cycle earlier. */
if (insn_type == TYPE_FMOV
&& get_attr_memory (insn) == MEMORY_STORE
- && !ix86_agi_dependant (insn, dep_insn, insn_type))
+ && !ix86_agi_dependent (insn, dep_insn, insn_type))
cost += 1;
break;
@@ -13564,7 +13569,7 @@ ix86_adjust_cost (rtx insn, rtx link, rtx dep_insn, int cost)
in parallel with previous instruction in case
previous instruction is not needed to compute the address. */
if ((memory == MEMORY_LOAD || memory == MEMORY_BOTH)
- && !ix86_agi_dependant (insn, dep_insn, insn_type))
+ && !ix86_agi_dependent (insn, dep_insn, insn_type))
{
/* Claim moves to take one cycle, as core can issue one load
at time and the next load can start cycle later. */
@@ -13593,7 +13598,7 @@ ix86_adjust_cost (rtx insn, rtx link, rtx dep_insn, int cost)
in parallel with previous instruction in case
previous instruction is not needed to compute the address. */
if ((memory == MEMORY_LOAD || memory == MEMORY_BOTH)
- && !ix86_agi_dependant (insn, dep_insn, insn_type))
+ && !ix86_agi_dependent (insn, dep_insn, insn_type))
{
/* Claim moves to take one cycle, as core can issue one load
at time and the next load can start cycle later. */
@@ -13617,7 +13622,7 @@ ix86_adjust_cost (rtx insn, rtx link, rtx dep_insn, int cost)
in parallel with previous instruction in case
previous instruction is not needed to compute the address. */
if ((memory == MEMORY_LOAD || memory == MEMORY_BOTH)
- && !ix86_agi_dependant (insn, dep_insn, insn_type))
+ && !ix86_agi_dependent (insn, dep_insn, insn_type))
{
enum attr_unit unit = get_attr_unit (insn);
int loadcost = 3;
@@ -17852,11 +17857,66 @@ ix86_expand_vector_init_duplicate (bool mmx_ok, enum machine_mode mode,
wvmode = V4HImode;
goto widen;
case V8HImode:
+ if (TARGET_SSE2)
+ {
+ rtx tmp1, tmp2;
+ /* Extend HImode to SImode using a paradoxical SUBREG. */
+ tmp1 = gen_reg_rtx (SImode);
+ emit_move_insn (tmp1, gen_lowpart (SImode, val));
+ /* Insert the SImode value as low element of V4SImode vector. */
+ tmp2 = gen_reg_rtx (V4SImode);
+ tmp1 = gen_rtx_VEC_MERGE (V4SImode,
+ gen_rtx_VEC_DUPLICATE (V4SImode, tmp1),
+ CONST0_RTX (V4SImode),
+ const1_rtx);
+ emit_insn (gen_rtx_SET (VOIDmode, tmp2, tmp1));
+ /* Cast the V4SImode vector back to a V8HImode vector. */
+ tmp1 = gen_reg_rtx (V8HImode);
+ emit_move_insn (tmp1, gen_lowpart (V8HImode, tmp2));
+ /* Duplicate the low short through the whole low SImode word. */
+ emit_insn (gen_sse2_punpcklwd (tmp1, tmp1, tmp1));
+ /* Cast the V8HImode vector back to a V4SImode vector. */
+ tmp2 = gen_reg_rtx (V4SImode);
+ emit_move_insn (tmp2, gen_lowpart (V4SImode, tmp1));
+ /* Replicate the low element of the V4SImode vector. */
+ emit_insn (gen_sse2_pshufd (tmp2, tmp2, const0_rtx));
+ /* Cast the V2SImode back to V8HImode, and store in target. */
+ emit_move_insn (target, gen_lowpart (V8HImode, tmp2));
+ return true;
+ }
smode = HImode;
wsmode = SImode;
wvmode = V4SImode;
goto widen;
case V16QImode:
+ if (TARGET_SSE2)
+ {
+ rtx tmp1, tmp2;
+ /* Extend QImode to SImode using a paradoxical SUBREG. */
+ tmp1 = gen_reg_rtx (SImode);
+ emit_move_insn (tmp1, gen_lowpart (SImode, val));
+ /* Insert the SImode value as low element of V4SImode vector. */
+ tmp2 = gen_reg_rtx (V4SImode);
+ tmp1 = gen_rtx_VEC_MERGE (V4SImode,
+ gen_rtx_VEC_DUPLICATE (V4SImode, tmp1),
+ CONST0_RTX (V4SImode),
+ const1_rtx);
+ emit_insn (gen_rtx_SET (VOIDmode, tmp2, tmp1));
+ /* Cast the V4SImode vector back to a V16QImode vector. */
+ tmp1 = gen_reg_rtx (V16QImode);
+ emit_move_insn (tmp1, gen_lowpart (V16QImode, tmp2));
+ /* Duplicate the low byte through the whole low SImode word. */
+ emit_insn (gen_sse2_punpcklbw (tmp1, tmp1, tmp1));
+ emit_insn (gen_sse2_punpcklbw (tmp1, tmp1, tmp1));
+ /* Cast the V16QImode vector back to a V4SImode vector. */
+ tmp2 = gen_reg_rtx (V4SImode);
+ emit_move_insn (tmp2, gen_lowpart (V4SImode, tmp1));
+ /* Replicate the low element of the V4SImode vector. */
+ emit_insn (gen_sse2_pshufd (tmp2, tmp2, const0_rtx));
+ /* Cast the V2SImode back to V16QImode, and store in target. */
+ emit_move_insn (target, gen_lowpart (V16QImode, tmp2));
+ return true;
+ }
smode = QImode;
wsmode = HImode;
wvmode = V8HImode;
@@ -17881,15 +17941,16 @@ ix86_expand_vector_init_duplicate (bool mmx_ok, enum machine_mode mode,
}
/* A subroutine of ix86_expand_vector_init. Store into TARGET a vector
- whose low element is VAR, and other elements are zero. Return true
+ whose ONE_VAR element is VAR, and other elements are zero. Return true
if successful. */
static bool
-ix86_expand_vector_init_low_nonzero (bool mmx_ok, enum machine_mode mode,
- rtx target, rtx var)
+ix86_expand_vector_init_one_nonzero (bool mmx_ok, enum machine_mode mode,
+ rtx target, rtx var, int one_var)
{
enum machine_mode vsimode;
- rtx x;
+ rtx new_target;
+ rtx x, tmp;
switch (mode)
{
@@ -17901,6 +17962,8 @@ ix86_expand_vector_init_low_nonzero (bool mmx_ok, enum machine_mode mode,
case V2DFmode:
case V2DImode:
+ if (one_var != 0)
+ return false;
var = force_reg (GET_MODE_INNER (mode), var);
x = gen_rtx_VEC_CONCAT (mode, var, CONST0_RTX (GET_MODE_INNER (mode)));
emit_insn (gen_rtx_SET (VOIDmode, target, x));
@@ -17908,10 +17971,55 @@ ix86_expand_vector_init_low_nonzero (bool mmx_ok, enum machine_mode mode,
case V4SFmode:
case V4SImode:
+ if (!REG_P (target) || REGNO (target) < FIRST_PSEUDO_REGISTER)
+ new_target = gen_reg_rtx (mode);
+ else
+ new_target = target;
var = force_reg (GET_MODE_INNER (mode), var);
x = gen_rtx_VEC_DUPLICATE (mode, var);
x = gen_rtx_VEC_MERGE (mode, x, CONST0_RTX (mode), const1_rtx);
- emit_insn (gen_rtx_SET (VOIDmode, target, x));
+ emit_insn (gen_rtx_SET (VOIDmode, new_target, x));
+ if (one_var != 0)
+ {
+ /* We need to shuffle the value to the correct position, so
+ create a new pseudo to store the intermediate result. */
+
+ /* With SSE2, we can use the integer shuffle insns. */
+ if (mode != V4SFmode && TARGET_SSE2)
+ {
+ emit_insn (gen_sse2_pshufd_1 (new_target, new_target,
+ GEN_INT (1),
+ GEN_INT (one_var == 1 ? 0 : 1),
+ GEN_INT (one_var == 2 ? 0 : 1),
+ GEN_INT (one_var == 3 ? 0 : 1)));
+ if (target != new_target)
+ emit_move_insn (target, new_target);
+ return true;
+ }
+
+ /* Otherwise convert the intermediate result to V4SFmode and
+ use the SSE1 shuffle instructions. */
+ if (mode != V4SFmode)
+ {
+ tmp = gen_reg_rtx (V4SFmode);
+ emit_move_insn (tmp, gen_lowpart (V4SFmode, new_target));
+ }
+ else
+ tmp = new_target;
+
+ emit_insn (gen_sse_shufps_1 (tmp, tmp, tmp,
+ GEN_INT (1),
+ GEN_INT (one_var == 1 ? 0 : 1),
+ GEN_INT (one_var == 2 ? 0+4 : 1+4),
+ GEN_INT (one_var == 3 ? 0+4 : 1+4)));
+
+ if (mode != V4SFmode)
+ emit_move_insn (target, gen_lowpart (V4SImode, tmp));
+ else if (tmp != target)
+ emit_move_insn (target, tmp);
+ }
+ else if (target != new_target)
+ emit_move_insn (target, new_target);
return true;
case V8HImode:
@@ -17925,11 +18033,15 @@ ix86_expand_vector_init_low_nonzero (bool mmx_ok, enum machine_mode mode,
vsimode = V2SImode;
goto widen;
widen:
+ if (one_var != 0)
+ return false;
+
/* Zero extend the variable element to SImode and recurse. */
var = convert_modes (SImode, GET_MODE_INNER (mode), var, true);
x = gen_reg_rtx (vsimode);
- if (!ix86_expand_vector_init_low_nonzero (mmx_ok, vsimode, x, var))
+ if (!ix86_expand_vector_init_one_nonzero (mmx_ok, vsimode, x,
+ var, one_var))
gcc_unreachable ();
emit_move_insn (target, gen_lowpart (mode, x));
@@ -18186,9 +18298,10 @@ ix86_expand_vector_init (bool mmx_ok, rtx target, rtx vals)
the pool and overwritten via move later. */
if (n_var == 1)
{
- if (all_const_zero && one_var == 0
- && ix86_expand_vector_init_low_nonzero (mmx_ok, mode, target,
- XVECEXP (vals, 0, 0)))
+ if (all_const_zero
+ && ix86_expand_vector_init_one_nonzero (mmx_ok, mode, target,
+ XVECEXP (vals, 0, one_var),
+ one_var))
return;
if (ix86_expand_vector_init_one_var (mmx_ok, mode, target, vals, one_var))
@@ -18749,7 +18862,7 @@ asm_preferred_eh_data_format (int code, int global)
{
if (flag_pic)
{
-int type = DW_EH_PE_sdata8;
+ int type = DW_EH_PE_sdata8;
if (!TARGET_64BIT
|| ix86_cmodel == CM_SMALL_PIC
|| (ix86_cmodel == CM_MEDIUM_PIC && (global || code)))
diff --git a/gcc/config/m32c/m32c.h b/gcc/config/m32c/m32c.h
index 5eb2aaecf2c..1b1d357c2b7 100644
--- a/gcc/config/m32c/m32c.h
+++ b/gcc/config/m32c/m32c.h
@@ -171,6 +171,9 @@ machine_function;
#define DEFAULT_SIGNED_CHAR 1
+#undef PTRDIFF_TYPE
+#define PTRDIFF_TYPE (TARGET_A16 ? "int" : "long int")
+
/* REGISTER USAGE */
/* Register Basics */
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index ffe047ea068..f66cdc255af 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -409,6 +409,7 @@ static rtx mips_expand_builtin_compare (enum mips_builtin_type,
static rtx mips_expand_builtin_bposge (enum mips_builtin_type, rtx);
static void mips_encode_section_info (tree, rtx, int);
static void mips_extra_live_on_entry (bitmap);
+static int mips_mode_rep_extended (enum machine_mode, enum machine_mode);
/* Structure to be filled in by compute_frame_size with register
save masks, and offsets for the current function. */
@@ -1139,6 +1140,9 @@ static struct mips_rtx_cost_data const mips_rtx_cost_data[PROCESSOR_MAX] =
#undef TARGET_ARG_PARTIAL_BYTES
#define TARGET_ARG_PARTIAL_BYTES mips_arg_partial_bytes
+#undef TARGET_MODE_REP_EXTENDED
+#define TARGET_MODE_REP_EXTENDED mips_mode_rep_extended
+
#undef TARGET_VECTOR_MODE_SUPPORTED_P
#define TARGET_VECTOR_MODE_SUPPORTED_P mips_vector_mode_supported_p
@@ -10725,5 +10729,15 @@ mips_extra_live_on_entry (bitmap regs)
bitmap_set_bit (regs, PIC_FUNCTION_ADDR_REGNUM);
}
+/* SImode values are represented as sign-extended to DImode. */
+
+int
+mips_mode_rep_extended (enum machine_mode mode, enum machine_mode mode_rep)
+{
+ if (TARGET_64BIT && mode == SImode && mode_rep == DImode)
+ return SIGN_EXTEND;
+
+ return UNKNOWN;
+}
#include "gt-mips.h"
diff --git a/gcc/config/mmix/mmix.h b/gcc/config/mmix/mmix.h
index 9ae7bc7f36d..f41b8d38cb2 100644
--- a/gcc/config/mmix/mmix.h
+++ b/gcc/config/mmix/mmix.h
@@ -165,7 +165,6 @@ extern int target_flags;
if (SIZE || LEVEL > 1) \
{ \
flag_omit_frame_pointer = TRUE; \
- flag_strength_reduce = FALSE; \
} \
} \
while (0)
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index 509e016cd13..48b8ca4f560 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -1,6 +1,6 @@
/* Subroutines for insn-output.c for HPPA.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
- 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+ 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
Contributed by Tim Moore (moore@cs.utah.edu), based on sparc.c
This file is part of GCC.
@@ -6436,27 +6436,27 @@ output_bb (rtx *operands ATTRIBUTE_UNUSED, int negated, rtx insn, int which)
{
nullify = 1;
xdelay = 0;
- operands[4] = GEN_INT (length - 8);
+ operands[4] = GEN_INT (length);
}
else
{
xdelay = 1;
- operands[4] = GEN_INT (length - 4);
+ operands[4] = GEN_INT (length + 4);
}
if (GET_MODE (operands[0]) == DImode)
- strcpy (buf, "extrd,s,*");
+ strcpy (buf, "bb,*");
else
- strcpy (buf, "{extrs,|extrw,s,}");
+ strcpy (buf, "bb,");
if ((which == 0 && negated)
|| (which == 1 && !negated))
- strcat (buf, ">= %0,%1,1,%%r0\n\t");
+ strcat (buf, "<");
else
- strcat (buf, "< %0,%1,1,%%r0\n\t");
+ strcat (buf, ">=");
if (nullify)
- strcat (buf, "b,n .+%4");
+ strcat (buf, ",n %0,%1,.+%4");
else
- strcat (buf, "b .+%4");
+ strcat (buf, " %0,%1,.+%4");
output_asm_insn (buf, operands);
return output_lbranch (negated ? operands[3] : operands[2],
insn, xdelay);
@@ -6616,27 +6616,27 @@ output_bvb (rtx *operands ATTRIBUTE_UNUSED, int negated, rtx insn, int which)
{
nullify = 1;
xdelay = 0;
- operands[4] = GEN_INT (length - 8);
+ operands[4] = GEN_INT (length);
}
else
{
xdelay = 1;
- operands[4] = GEN_INT (length - 4);
+ operands[4] = GEN_INT (length + 4);
}
if (GET_MODE (operands[0]) == DImode)
- strcpy (buf, "extrd,s,*");
+ strcpy (buf, "bb,*");
else
- strcpy (buf, "{extrs,|extrw,s,}");
+ strcpy (buf, "{bvb,|bb,}");
if ((which == 0 && negated)
|| (which == 1 && !negated))
- strcat (buf, ">= {%0,%1,1,%%r0|%0,%%sar,1,%%r0}\n\t");
+ strcat (buf, "<");
else
- strcat (buf, "< {%0,%1,1,%%r0|%0,%%sar,1,%%r0}\n\t");
+ strcat (buf, ">=");
if (nullify)
- strcat (buf, "b,n .+%4");
+ strcat (buf, ",n {%0,.+%4|%0,%%sar,.+%4}");
else
- strcat (buf, "b .+%4");
+ strcat (buf, " {%0,.+%4|%0,%%sar,.+%4}");
output_asm_insn (buf, operands);
return output_lbranch (negated ? operands[3] : operands[2],
insn, xdelay);
@@ -6763,8 +6763,8 @@ output_dbra (rtx *operands, rtx insn, int which_alternative)
return "{comclr|cmpclr},%B2 %%r0,%4,%%r0\n\tb %3\n\t{fldws|fldw} -16(%%r30),%0";
else
{
- operands[4] = GEN_INT (length - 24);
- output_asm_insn ("addib,%N2 %1,%0,.+%4", operands);
+ operands[5] = GEN_INT (length - 16);
+ output_asm_insn ("{comb|cmpb},%B2 %%r0,%4,.+%5", operands);
output_asm_insn ("{fldws|fldw} -16(%%r30),%0", operands);
return output_lbranch (operands[3], insn, 0);
}
@@ -6781,8 +6781,8 @@ output_dbra (rtx *operands, rtx insn, int which_alternative)
return "addi,%N2 %1,%4,%4\n\tb %3\n\tstw %4,%0";
else
{
- operands[5] = GEN_INT (length - 12);
- output_asm_insn ("addib,%N2 %1,%0,.+%5\n\tstw %4,%0", operands);
+ operands[5] = GEN_INT (length - 4);
+ output_asm_insn ("addib,%N2 %1,%4,.+%5\n\tstw %4,%0", operands);
return output_lbranch (operands[3], insn, 0);
}
}
@@ -6906,8 +6906,8 @@ output_movb (rtx *operands, rtx insn, int which_alternative,
return "{comclr|cmpclr},%B2 %%r0,%1,%%r0\n\tb %3\n\t{fldws|fldw} -16(%%r30),%0";
else
{
- operands[4] = GEN_INT (length - 12);
- output_asm_insn ("movb,%N2 %1,%0,.+%4", operands);
+ operands[4] = GEN_INT (length - 4);
+ output_asm_insn ("{comb|cmpb},%B2 %%r0,%1,.+%4", operands);
output_asm_insn ("{fldws|fldw} -16(%%r30),%0", operands);
return output_lbranch (operands[3], insn, 0);
}
@@ -6923,8 +6923,9 @@ output_movb (rtx *operands, rtx insn, int which_alternative,
return "{comclr|cmpclr},%B2 %%r0,%1,%%r0\n\tb %3\n\tstw %1,%0";
else
{
- operands[4] = GEN_INT (length - 8);
- output_asm_insn ("movb,%N2 %1,%0,.+%4\n\tstw %1,%0", operands);
+ operands[4] = GEN_INT (length);
+ output_asm_insn ("{comb|cmpb},%B2 %%r0,%1,.+%4\n\tstw %1,%0",
+ operands);
return output_lbranch (operands[3], insn, 0);
}
}
@@ -6937,8 +6938,9 @@ output_movb (rtx *operands, rtx insn, int which_alternative,
return "{comclr|cmpclr},%B2 %%r0,%1,%%r0\n\tb %3\n\tmtsar %r1";
else
{
- operands[4] = GEN_INT (length - 8);
- output_asm_insn ("movb,%N2 %1,%0,.+%4\n\tmtsar %r1", operands);
+ operands[4] = GEN_INT (length);
+ output_asm_insn ("{comb|cmpb},%B2 %%r0,%1,.+%4\n\tmtsar %r1",
+ operands);
return output_lbranch (operands[3], insn, 0);
}
}
diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md
index e8acd9a465a..ada336823df 100644
--- a/gcc/config/pa/pa.md
+++ b/gcc/config/pa/pa.md
@@ -1,6 +1,6 @@
;;- Machine description for HP PA-RISC architecture for GCC compiler
;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-;; 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+;; 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
;; Contributed by the Center for Software Science at the University
;; of Utah.
@@ -52,6 +52,16 @@
(UNSPECV_LONGJMP 5) ; builtin_longjmp
])
+;; Maximum pc-relative branch offsets.
+
+;; These numbers are a bit smaller than the maximum allowable offsets
+;; so that a few instructions may be inserted before the actual branch.
+
+(define_constants
+ [(MAX_12BIT_OFFSET 8184) ; 12-bit branch
+ (MAX_17BIT_OFFSET 262100) ; 17-bit branch
+ ])
+
;; Insn type. Used to default other attribute values.
;; type "unary" insns have one input operand (1) and one output operand (0)
@@ -1713,10 +1723,10 @@
[(set_attr "type" "cbranch")
(set (attr "length")
(cond [(lt (abs (minus (match_dup 0) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 4)
(lt (abs (minus (match_dup 0) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 8)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
(const_int 24)
@@ -1742,10 +1752,10 @@
[(set_attr "type" "cbranch")
(set (attr "length")
(cond [(lt (abs (minus (match_dup 0) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 4)
(lt (abs (minus (match_dup 0) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 8)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
(const_int 24)
@@ -1769,10 +1779,10 @@
[(set_attr "type" "cbranch")
(set (attr "length")
(cond [(lt (abs (minus (match_dup 0) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 4)
(lt (abs (minus (match_dup 0) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 8)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
(const_int 24)
@@ -1798,10 +1808,10 @@
[(set_attr "type" "cbranch")
(set (attr "length")
(cond [(lt (abs (minus (match_dup 0) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 4)
(lt (abs (minus (match_dup 0) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 8)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
(const_int 24)
@@ -1824,10 +1834,10 @@
[(set_attr "type" "cbranch")
(set (attr "length")
(cond [(lt (abs (minus (match_dup 0) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 4)
(lt (abs (minus (match_dup 0) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 8)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
(const_int 24)
@@ -1853,10 +1863,10 @@
[(set_attr "type" "cbranch")
(set (attr "length")
(cond [(lt (abs (minus (match_dup 0) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 4)
(lt (abs (minus (match_dup 0) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 8)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
(const_int 24)
@@ -1882,16 +1892,16 @@
[(set_attr "type" "cbranch")
(set (attr "length")
(cond [(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 4)
(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 8)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
- (const_int 28)
+ (const_int 24)
(eq (symbol_ref "flag_pic") (const_int 0))
- (const_int 24)]
- (const_int 32)))])
+ (const_int 20)]
+ (const_int 28)))])
(define_insn ""
[(set (pc)
@@ -1910,16 +1920,16 @@
[(set_attr "type" "cbranch")
(set (attr "length")
(cond [(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 4)
(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 8)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
- (const_int 28)
+ (const_int 24)
(eq (symbol_ref "flag_pic") (const_int 0))
- (const_int 24)]
- (const_int 32)))])
+ (const_int 20)]
+ (const_int 28)))])
(define_insn ""
[(set (pc)
@@ -1938,16 +1948,16 @@
[(set_attr "type" "cbranch")
(set (attr "length")
(cond [(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 4)
(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 8)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
- (const_int 28)
+ (const_int 24)
(eq (symbol_ref "flag_pic") (const_int 0))
- (const_int 24)]
- (const_int 32)))])
+ (const_int 20)]
+ (const_int 28)))])
(define_insn ""
[(set (pc)
@@ -1966,16 +1976,16 @@
[(set_attr "type" "cbranch")
(set (attr "length")
(cond [(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 4)
(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 8)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
- (const_int 28)
+ (const_int 24)
(eq (symbol_ref "flag_pic") (const_int 0))
- (const_int 24)]
- (const_int 32)))])
+ (const_int 20)]
+ (const_int 28)))])
(define_insn ""
[(set (pc)
@@ -1994,16 +2004,16 @@
[(set_attr "type" "cbranch")
(set (attr "length")
(cond [(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 4)
(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 8)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
- (const_int 28)
+ (const_int 24)
(eq (symbol_ref "flag_pic") (const_int 0))
- (const_int 24)]
- (const_int 32)))])
+ (const_int 20)]
+ (const_int 28)))])
(define_insn ""
[(set (pc)
@@ -2022,16 +2032,16 @@
[(set_attr "type" "cbranch")
(set (attr "length")
(cond [(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 4)
(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 8)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
- (const_int 28)
+ (const_int 24)
(eq (symbol_ref "flag_pic") (const_int 0))
- (const_int 24)]
- (const_int 32)))])
+ (const_int 20)]
+ (const_int 28)))])
(define_insn ""
[(set (pc)
@@ -2050,16 +2060,16 @@
[(set_attr "type" "cbranch")
(set (attr "length")
(cond [(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 4)
(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 8)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
- (const_int 28)
+ (const_int 24)
(eq (symbol_ref "flag_pic") (const_int 0))
- (const_int 24)]
- (const_int 32)))])
+ (const_int 20)]
+ (const_int 28)))])
(define_insn ""
[(set (pc)
@@ -2078,16 +2088,16 @@
[(set_attr "type" "cbranch")
(set (attr "length")
(cond [(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 4)
(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 8)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
- (const_int 28)
+ (const_int 24)
(eq (symbol_ref "flag_pic") (const_int 0))
- (const_int 24)]
- (const_int 32)))])
+ (const_int 20)]
+ (const_int 28)))])
;; Branch on Variable Bit patterns.
(define_insn ""
@@ -2107,16 +2117,16 @@
[(set_attr "type" "cbranch")
(set (attr "length")
(cond [(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 4)
(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 8)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
- (const_int 28)
+ (const_int 24)
(eq (symbol_ref "flag_pic") (const_int 0))
- (const_int 24)]
- (const_int 32)))])
+ (const_int 20)]
+ (const_int 28)))])
(define_insn ""
[(set (pc)
@@ -2135,16 +2145,16 @@
[(set_attr "type" "cbranch")
(set (attr "length")
(cond [(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 4)
(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 8)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
- (const_int 28)
+ (const_int 24)
(eq (symbol_ref "flag_pic") (const_int 0))
- (const_int 24)]
- (const_int 32)))])
+ (const_int 20)]
+ (const_int 28)))])
(define_insn ""
[(set (pc)
@@ -2163,16 +2173,16 @@
[(set_attr "type" "cbranch")
(set (attr "length")
(cond [(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 4)
(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 8)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
- (const_int 28)
+ (const_int 24)
(eq (symbol_ref "flag_pic") (const_int 0))
- (const_int 24)]
- (const_int 32)))])
+ (const_int 20)]
+ (const_int 28)))])
(define_insn ""
[(set (pc)
@@ -2191,16 +2201,16 @@
[(set_attr "type" "cbranch")
(set (attr "length")
(cond [(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 4)
(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 8)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
- (const_int 28)
+ (const_int 24)
(eq (symbol_ref "flag_pic") (const_int 0))
- (const_int 24)]
- (const_int 32)))])
+ (const_int 20)]
+ (const_int 28)))])
(define_insn ""
[(set (pc)
@@ -2219,16 +2229,16 @@
[(set_attr "type" "cbranch")
(set (attr "length")
(cond [(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 4)
(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 8)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
- (const_int 28)
+ (const_int 24)
(eq (symbol_ref "flag_pic") (const_int 0))
- (const_int 24)]
- (const_int 32)))])
+ (const_int 20)]
+ (const_int 28)))])
(define_insn ""
[(set (pc)
@@ -2247,16 +2257,16 @@
[(set_attr "type" "cbranch")
(set (attr "length")
(cond [(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 4)
(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 8)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
- (const_int 28)
+ (const_int 24)
(eq (symbol_ref "flag_pic") (const_int 0))
- (const_int 24)]
- (const_int 32)))])
+ (const_int 20)]
+ (const_int 28)))])
(define_insn ""
[(set (pc)
@@ -2275,16 +2285,16 @@
[(set_attr "type" "cbranch")
(set (attr "length")
(cond [(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 4)
(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 8)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
- (const_int 28)
+ (const_int 24)
(eq (symbol_ref "flag_pic") (const_int 0))
- (const_int 24)]
- (const_int 32)))])
+ (const_int 20)]
+ (const_int 28)))])
(define_insn ""
[(set (pc)
@@ -2303,16 +2313,16 @@
[(set_attr "type" "cbranch")
(set (attr "length")
(cond [(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 4)
(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 8)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
- (const_int 28)
+ (const_int 24)
(eq (symbol_ref "flag_pic") (const_int 0))
- (const_int 24)]
- (const_int 32)))])
+ (const_int 20)]
+ (const_int 28)))])
;; Floating point branches
@@ -2355,7 +2365,7 @@
[(set_attr "type" "fbranch")
(set (attr "length")
(cond [(lt (abs (minus (match_dup 0) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 8)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
(const_int 32)
@@ -2399,7 +2409,7 @@
[(set_attr "type" "fbranch")
(set (attr "length")
(cond [(lt (abs (minus (match_dup 0) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 12)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
(const_int 28)
@@ -7181,11 +7191,11 @@
(cond [(eq (symbol_ref "jump_in_call_delay (insn)") (const_int 1))
(if_then_else (lt (abs (minus (match_dup 0)
(plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 4)
(const_int 8))
(lt (abs (minus (match_dup 0) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 4)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
(const_int 20)
@@ -9007,10 +9017,10 @@ add,l %2,%3,%3\;bv,n %%r0(%3)"
;; Short branch has length of 4
;; Long branch has length of 8, 20, 24 or 28
(cond [(lt (abs (minus (match_dup 3) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 4)
(lt (abs (minus (match_dup 3) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 8)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
(const_int 24)
@@ -9023,10 +9033,10 @@ add,l %2,%3,%3\;bv,n %%r0(%3)"
(if_then_else (eq_attr "alternative" "1")
(if_then_else (lt (match_dup 3) (pc))
(cond [(lt (abs (minus (match_dup 3) (plus (pc) (const_int 24))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 24)
(lt (abs (minus (match_dup 3) (plus (pc) (const_int 24))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 28)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
(const_int 44)
@@ -9034,10 +9044,10 @@ add,l %2,%3,%3\;bv,n %%r0(%3)"
(const_int 40)]
(const_int 48))
(cond [(lt (abs (minus (match_dup 3) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 24)
(lt (abs (minus (match_dup 3) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 28)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
(const_int 44)
@@ -9049,10 +9059,10 @@ add,l %2,%3,%3\;bv,n %%r0(%3)"
;; Extra goo to deal with additional reload insns.
(if_then_else (lt (match_dup 3) (pc))
(cond [(lt (abs (minus (match_dup 3) (plus (pc) (const_int 12))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 12)
(lt (abs (minus (match_dup 3) (plus (pc) (const_int 12))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 16)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
(const_int 32)
@@ -9060,10 +9070,10 @@ add,l %2,%3,%3\;bv,n %%r0(%3)"
(const_int 28)]
(const_int 36))
(cond [(lt (abs (minus (match_dup 3) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 12)
(lt (abs (minus (match_dup 3) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 16)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
(const_int 32)
@@ -9090,10 +9100,10 @@ add,l %2,%3,%3\;bv,n %%r0(%3)"
;; Short branch has length of 4
;; Long branch has length of 8, 20, 24 or 28
(cond [(lt (abs (minus (match_dup 3) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 4)
(lt (abs (minus (match_dup 3) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 8)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
(const_int 24)
@@ -9106,10 +9116,10 @@ add,l %2,%3,%3\;bv,n %%r0(%3)"
(if_then_else (eq_attr "alternative" "1")
(if_then_else (lt (match_dup 3) (pc))
(cond [(lt (abs (minus (match_dup 3) (plus (pc) (const_int 12))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 12)
(lt (abs (minus (match_dup 3) (plus (pc) (const_int 12))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 16)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
(const_int 32)
@@ -9117,10 +9127,10 @@ add,l %2,%3,%3\;bv,n %%r0(%3)"
(const_int 28)]
(const_int 36))
(cond [(lt (abs (minus (match_dup 3) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 12)
(lt (abs (minus (match_dup 3) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 16)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
(const_int 32)
@@ -9131,10 +9141,10 @@ add,l %2,%3,%3\;bv,n %%r0(%3)"
;; Loop counter in memory or sar case.
;; Extra goo to deal with additional reload insns.
(cond [(lt (abs (minus (match_dup 3) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 8)
(lt (abs (minus (match_dup 3) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 12)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
(const_int 28)
@@ -9162,10 +9172,10 @@ add,l %2,%3,%3\;bv,n %%r0(%3)"
;; Short branch has length of 4
;; Long branch has length of 8
(cond [(lt (abs (minus (match_dup 3) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 4)
(lt (abs (minus (match_dup 3) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 8)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
(const_int 24)
@@ -9178,10 +9188,10 @@ add,l %2,%3,%3\;bv,n %%r0(%3)"
(if_then_else (eq_attr "alternative" "1")
(if_then_else (lt (match_dup 3) (pc))
(cond [(lt (abs (minus (match_dup 3) (plus (pc) (const_int 12))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 12)
(lt (abs (minus (match_dup 3) (plus (pc) (const_int 12))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 16)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
(const_int 32)
@@ -9189,10 +9199,10 @@ add,l %2,%3,%3\;bv,n %%r0(%3)"
(const_int 28)]
(const_int 36))
(cond [(lt (abs (minus (match_dup 3) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 12)
(lt (abs (minus (match_dup 3) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 16)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
(const_int 32)
@@ -9203,10 +9213,10 @@ add,l %2,%3,%3\;bv,n %%r0(%3)"
;; Loop counter in memory or SAR case.
;; Extra goo to deal with additional reload insns.
(cond [(lt (abs (minus (match_dup 3) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 8)
(lt (abs (minus (match_dup 3) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 12)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
(const_int 28)
@@ -9227,10 +9237,10 @@ add,l %2,%3,%3\;bv,n %%r0(%3)"
[(set_attr "type" "parallel_branch")
(set (attr "length")
(cond [(lt (abs (minus (match_dup 3) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 4)
(lt (abs (minus (match_dup 3) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 8)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
(const_int 24)
@@ -9250,10 +9260,10 @@ add,l %2,%3,%3\;bv,n %%r0(%3)"
[(set_attr "type" "parallel_branch")
(set (attr "length")
(cond [(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 4)
(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 8)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
(const_int 24)
@@ -9273,10 +9283,10 @@ add,l %2,%3,%3\;bv,n %%r0(%3)"
[(set_attr "type" "parallel_branch")
(set (attr "length")
(cond [(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 4)
(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 8)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
(const_int 24)
@@ -9296,10 +9306,10 @@ add,l %2,%3,%3\;bv,n %%r0(%3)"
[(set_attr "type" "parallel_branch")
(set (attr "length")
(cond [(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 4)
(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 8)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
(const_int 24)
@@ -9319,10 +9329,10 @@ add,l %2,%3,%3\;bv,n %%r0(%3)"
[(set_attr "type" "parallel_branch")
(set (attr "length")
(cond [(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 8184))
+ (const_int MAX_12BIT_OFFSET))
(const_int 4)
(lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))
- (const_int 262100))
+ (const_int MAX_17BIT_OFFSET))
(const_int 8)
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0))
(const_int 24)
diff --git a/gcc/config/pa/t-pa64 b/gcc/config/pa/t-pa64
index 9d4a545f16c..66cc4b5b04b 100644
--- a/gcc/config/pa/t-pa64
+++ b/gcc/config/pa/t-pa64
@@ -6,19 +6,19 @@ stublib.c: $(srcdir)/config/pa/stublib.c
rm -f stublib.c
cp $(srcdir)/config/pa/stublib.c .
-rfi-stub.o: stublib.c
+rfi-stub.o: stublib.c $(GCC_PASSES)
$(GCC_FOR_TARGET) -c -O2 -DL_register_frame_info stublib.c \
-o rfi-stub.o
-dfi-stub.o: stublib.c
+dfi-stub.o: stublib.c $(GCC_PASSES)
$(GCC_FOR_TARGET) -c -O2 -DL_deregister_frame_info stublib.c \
-o dfi-stub.o
-cxaf-stub.o: stublib.c
+cxaf-stub.o: stublib.c $(GCC_PASSES)
$(GCC_FOR_TARGET) -c -O2 -DL_cxa_finalize stublib.c \
-o cxaf-stub.o
-jvrc-stub.o: stublib.c
+jvrc-stub.o: stublib.c $(GCC_PASSES)
$(GCC_FOR_TARGET) -c -O2 -DL_Jv_RegisterClasses stublib.c \
-o jvrc-stub.o
diff --git a/gcc/config/rs6000/e500-double.h b/gcc/config/rs6000/e500-double.h
index 3c0d906a4bd..55587e469b8 100644
--- a/gcc/config/rs6000/e500-double.h
+++ b/gcc/config/rs6000/e500-double.h
@@ -1,5 +1,5 @@
/* Target definitions for E500 with double precision FP.
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2006 Free Software Foundation, Inc.
Contributed by Aldy Hernandez (aldyh@redhat.com).
This file is part of GCC.
@@ -21,5 +21,5 @@
#undef SUB3TARGET_OVERRIDE_OPTIONS
#define SUB3TARGET_OVERRIDE_OPTIONS \
- if (rs6000_float_gprs_string == NULL) \
+ if (!rs6000_explicit_options.float_gprs) \
rs6000_float_gprs = 2;
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index ec2cfdef933..e373e687f59 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -3402,9 +3402,12 @@ rs6000_legitimize_reload_address (rtx x, enum machine_mode mode,
&& !flag_pic
#endif
/* Don't do this for TFmode, since the result isn't offsettable.
- The same goes for DImode without 64-bit gprs. */
+ The same goes for DImode without 64-bit gprs and DFmode
+ without fprs. */
&& mode != TFmode
- && (mode != DImode || TARGET_POWERPC64))
+ && (mode != DImode || TARGET_POWERPC64)
+ && (mode != DFmode || TARGET_POWERPC64
+ || (TARGET_FPRS && TARGET_HARD_FLOAT)))
{
#if TARGET_MACHO
if (flag_pic)
@@ -5058,17 +5061,13 @@ rs6000_mixed_function_arg (enum machine_mode mode, tree type, int align_words)
if (align_words + n_units > GP_ARG_NUM_REG)
/* Not all of the arg fits in gprs. Say that it goes in memory too,
using a magic NULL_RTX component.
- FIXME: This is not strictly correct. Only some of the arg
- belongs in memory, not all of it. However, there isn't any way
- to do this currently, apart from building rtx descriptions for
- the pieces of memory we want stored. Due to bugs in the generic
- code we can't use the normal function_arg_partial_nregs scheme
- with the PARALLEL arg description we emit here.
- In any case, the code to store the whole arg to memory is often
- more efficient than code to store pieces, and we know that space
- is available in the right place for the whole arg. */
- /* FIXME: This should be fixed since the conversion to
- TARGET_ARG_PARTIAL_BYTES. */
+ This is not strictly correct. Only some of the arg belongs in
+ memory, not all of it. However, the normal scheme using
+ function_arg_partial_nregs can result in unusual subregs, eg.
+ (subreg:SI (reg:DF) 4), which are not handled well. The code to
+ store the whole arg to memory is often more efficient than code
+ to store pieces, and we know that space is available in the right
+ place for the whole arg. */
rvec[k++] = gen_rtx_EXPR_LIST (VOIDmode, NULL_RTX, const0_rtx);
i = 0;
@@ -5310,9 +5309,8 @@ function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode,
include the portion actually in registers here. */
enum machine_mode rmode = TARGET_32BIT ? SImode : DImode;
rtx off;
- int i=0;
- if (align_words + n_words > GP_ARG_NUM_REG
- && (TARGET_32BIT && TARGET_POWERPC64))
+ int i = 0;
+ if (align_words + n_words > GP_ARG_NUM_REG)
/* Not all of the arg fits in gprs. Say that it
goes in memory too, using a magic NULL_RTX
component. Also see comment in
@@ -5391,18 +5389,20 @@ rs6000_arg_partial_bytes (CUMULATIVE_ARGS *cum, enum machine_mode mode,
align_words = rs6000_parm_start (mode, type, cum->words);
- if (USE_FP_FOR_ARG_P (cum, mode, type)
+ if (USE_FP_FOR_ARG_P (cum, mode, type))
+ {
/* If we are passing this arg in the fixed parameter save area
(gprs or memory) as well as fprs, then this function should
- return the number of bytes passed in the parameter save area
- rather than bytes passed in fprs. */
- && !(type
- && (cum->nargs_prototype <= 0
- || (DEFAULT_ABI == ABI_AIX
- && TARGET_XL_COMPAT
- && align_words >= GP_ARG_NUM_REG))))
- {
- if (cum->fregno + ((GET_MODE_SIZE (mode) + 7) >> 3) > FP_ARG_MAX_REG + 1)
+ return the number of partial bytes passed in the parameter
+ save area rather than partial bytes passed in fprs. */
+ if (type
+ && (cum->nargs_prototype <= 0
+ || (DEFAULT_ABI == ABI_AIX
+ && TARGET_XL_COMPAT
+ && align_words >= GP_ARG_NUM_REG)))
+ return 0;
+ else if (cum->fregno + ((GET_MODE_SIZE (mode) + 7) >> 3)
+ > FP_ARG_MAX_REG + 1)
ret = (FP_ARG_MAX_REG + 1 - cum->fregno) * 8;
else if (cum->nargs_prototype >= 0)
return 0;
@@ -5960,10 +5960,10 @@ rs6000_gimplify_va_arg (tree valist, tree type, tree *pre_p, tree *post_p)
t = build1 (LABEL_EXPR, void_type_node, lab_false);
append_to_statement_list (t, pre_p);
- if (n_reg > 2)
+ if ((n_reg == 2 && reg != gpr) || n_reg > 2)
{
/* Ensure that we don't find any more args in regs.
- Alignment has taken care of the n_reg == 2 case. */
+ Alignment has taken care of the n_reg == 2 gpr case. */
t = build2 (MODIFY_EXPR, TREE_TYPE (reg), reg, size_int (8));
gimplify_and_add (t, pre_p);
}
@@ -15326,7 +15326,8 @@ rs6000_output_function_epilogue (FILE *file,
official way to discover the language being compiled, so we
use language_string.
C is 0. Fortran is 1. Pascal is 2. Ada is 3. C++ is 9.
- Java is 13. Objective-C is 14. */
+ Java is 13. Objective-C is 14. Objective-C++ isn't assigned
+ a number, so for now use 9. */
if (! strcmp (language_string, "GNU C"))
i = 0;
else if (! strcmp (language_string, "GNU F77")
@@ -15336,7 +15337,8 @@ rs6000_output_function_epilogue (FILE *file,
i = 2;
else if (! strcmp (language_string, "GNU Ada"))
i = 3;
- else if (! strcmp (language_string, "GNU C++"))
+ else if (! strcmp (language_string, "GNU C++")
+ || ! strcmp (language_string, "GNU Objective-C++"))
i = 9;
else if (! strcmp (language_string, "GNU Java"))
i = 13;
diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
index 75ff4a66cd6..f47324e3e12 100644
--- a/gcc/config/rs6000/rs6000.h
+++ b/gcc/config/rs6000/rs6000.h
@@ -1024,7 +1024,7 @@ enum reg_class
{ 0xffffffff, 0x00000000, 0x0000000f, 0x00022000 }, /* SPEC_OR_GEN_REGS */ \
{ 0x00000000, 0x00000000, 0x00000010, 0x00000000 }, /* CR0_REGS */ \
{ 0x00000000, 0x00000000, 0x00000ff0, 0x00000000 }, /* CR_REGS */ \
- { 0xffffffff, 0x00000000, 0x0000efff, 0x00000000 }, /* NON_FLOAT_REGS */ \
+ { 0xffffffff, 0x00000000, 0x0000efff, 0x00020000 }, /* NON_FLOAT_REGS */ \
{ 0x00000000, 0x00000000, 0x00001000, 0x00000000 }, /* XER_REGS */ \
{ 0xffffffff, 0xffffffff, 0xffffffff, 0x0003ffff } /* ALL_REGS */ \
}
@@ -1598,7 +1598,8 @@ typedef struct rs6000_args
#define EASY_VECTOR_15(n) ((n) >= -16 && (n) <= 15)
#define EASY_VECTOR_15_ADD_SELF(n) (!EASY_VECTOR_15((n)) \
- && EASY_VECTOR_15((n) >> 1))
+ && EASY_VECTOR_15((n) >> 1) \
+ && ((n) & 1) == 0)
/* The macros REG_OK_FOR..._P assume that the arg is a REG rtx
and check its validity for a certain class.
diff --git a/gcc/config/rs6000/sfp-machine.h b/gcc/config/rs6000/sfp-machine.h
new file mode 100644
index 00000000000..29173e235dc
--- /dev/null
+++ b/gcc/config/rs6000/sfp-machine.h
@@ -0,0 +1,63 @@
+#define _FP_W_TYPE_SIZE 32
+#define _FP_W_TYPE unsigned long
+#define _FP_WS_TYPE signed long
+#define _FP_I_TYPE long
+
+#define _FP_MUL_MEAT_S(R,X,Y) \
+ _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_D(R,X,Y) \
+ _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_Q(R,X,Y) \
+ _FP_MUL_MEAT_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
+
+#define _FP_DIV_MEAT_S(R,X,Y) _FP_DIV_MEAT_1_loop(S,R,X,Y)
+#define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_2_udiv(D,R,X,Y)
+#define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_4_udiv(Q,R,X,Y)
+
+#define _FP_NANFRAC_S ((_FP_QNANBIT_S << 1) - 1)
+#define _FP_NANFRAC_D ((_FP_QNANBIT_D << 1) - 1), -1
+#define _FP_NANFRAC_Q ((_FP_QNANBIT_Q << 1) - 1), -1, -1, -1
+#define _FP_NANSIGN_S 0
+#define _FP_NANSIGN_D 0
+#define _FP_NANSIGN_Q 0
+
+#define _FP_KEEPNANFRACP 1
+
+/* Someone please check this. */
+#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \
+ do { \
+ if ((_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs) \
+ && !(_FP_FRAC_HIGH_RAW_##fs(Y) & _FP_QNANBIT_##fs)) \
+ { \
+ R##_s = Y##_s; \
+ _FP_FRAC_COPY_##wc(R,Y); \
+ } \
+ else \
+ { \
+ R##_s = X##_s; \
+ _FP_FRAC_COPY_##wc(R,X); \
+ } \
+ R##_c = FP_CLS_NAN; \
+ } while (0)
+
+#define __LITTLE_ENDIAN 1234
+#define __BIG_ENDIAN 4321
+
+#if defined __BIG_ENDIAN__ || defined _BIG_ENDIAN
+# if defined __LITTLE_ENDIAN__ || defined _LITTLE_ENDIAN
+# error "Both BIG_ENDIAN and LITTLE_ENDIAN defined!"
+# endif
+# define __BYTE_ORDER __BIG_ENDIAN
+#else
+# if defined __LITTLE_ENDIAN__ || defined _LITTLE_ENDIAN
+# define __BYTE_ORDER __LITTLE_ENDIAN
+# else
+# error "Cannot determine current byte order"
+# endif
+#endif
+
+
+/* Define ALIASNAME as a strong alias for NAME. */
+# define strong_alias(name, aliasname) _strong_alias(name, aliasname)
+# define _strong_alias(name, aliasname) \
+ extern __typeof (name) aliasname __attribute__ ((alias (#name)));
diff --git a/gcc/config/rs6000/t-fprules b/gcc/config/rs6000/t-fprules
index d311d8c3187..aa686c15b00 100644
--- a/gcc/config/rs6000/t-fprules
+++ b/gcc/config/rs6000/t-fprules
@@ -1,15 +1,3 @@
-# We want fine grained libraries, so use the new code to build the
-# floating point emulation libraries.
-FPBIT = fp-bit.c
-DPBIT = dp-bit.c
-
-dp-bit.c: $(srcdir)/config/fp-bit.c
- cat $(srcdir)/config/fp-bit.c > dp-bit.c
-
-fp-bit.c: $(srcdir)/config/fp-bit.c
- echo '#define FLOAT' > fp-bit.c
- cat $(srcdir)/config/fp-bit.c >> fp-bit.c
-
MULTILIB_MATCHES_FLOAT = msoft-float=mcpu?401 \
msoft-float=mcpu?403 \
msoft-float=mcpu?405 \
diff --git a/gcc/config/rs6000/t-fprules-fpbit b/gcc/config/rs6000/t-fprules-fpbit
new file mode 100644
index 00000000000..a80c1cf4eec
--- /dev/null
+++ b/gcc/config/rs6000/t-fprules-fpbit
@@ -0,0 +1,11 @@
+# We want fine grained libraries, so use the new code to build the
+# floating point emulation libraries.
+FPBIT = fp-bit.c
+DPBIT = dp-bit.c
+
+dp-bit.c: $(srcdir)/config/fp-bit.c
+ cat $(srcdir)/config/fp-bit.c > dp-bit.c
+
+fp-bit.c: $(srcdir)/config/fp-bit.c
+ echo '#define FLOAT' > fp-bit.c
+ cat $(srcdir)/config/fp-bit.c >> fp-bit.c
diff --git a/gcc/config/rs6000/t-fprules-softfp b/gcc/config/rs6000/t-fprules-softfp
new file mode 100644
index 00000000000..10b271f036d
--- /dev/null
+++ b/gcc/config/rs6000/t-fprules-softfp
@@ -0,0 +1,6 @@
+softfp_float_modes := sf df
+softfp_int_modes := si di
+softfp_extensions := sfdf
+softfp_truncations := dfsf
+softfp_machine_header := rs6000/sfp-machine.h
+softfp_exclude_libgcc2 := y
diff --git a/gcc/config/rs6000/t-linux64 b/gcc/config/rs6000/t-linux64
index 2c30a89892f..a2c04f928e6 100644
--- a/gcc/config/rs6000/t-linux64
+++ b/gcc/config/rs6000/t-linux64
@@ -1,8 +1,9 @@
#rs6000/t-linux64
-LIB2FUNCS_EXTRA = tramp.S $(srcdir)/config/rs6000/ppc64-fp.c \
+LIB2FUNCS_EXTRA += tramp.S $(srcdir)/config/rs6000/ppc64-fp.c \
$(srcdir)/config/rs6000/darwin-ldouble.c
+LIB2FUNCS_EXTRA := $(sort $(LIB2FUNCS_EXTRA))
TARGET_LIBGCC2_CFLAGS += -mno-minimal-toc
@@ -14,19 +15,5 @@ MULTILIB_EXCLUSIONS = m64/!m32/msoft-float
MULTILIB_OSDIRNAMES = ../lib64 ../lib nof
MULTILIB_MATCHES = $(MULTILIB_MATCHES_FLOAT)
-# We want fine grained libraries, so use the new code to build the
-# floating point emulation libraries.
-# fp-bit is only to be used by 32-bit multilibs
-FPBIT = fp-bit32.c
-DPBIT = dp-bit32.c
-
-dp-bit32.c: $(srcdir)/config/fp-bit.c
- ( echo '#ifndef __powerpc64__'; \
- cat $(srcdir)/config/fp-bit.c; \
- echo '#endif' ) > dp-bit32.c
-
-fp-bit32.c: $(srcdir)/config/fp-bit.c
- ( echo '#ifndef __powerpc64__'; \
- echo '#define FLOAT'; \
- cat $(srcdir)/config/fp-bit.c; \
- echo '#endif' ) > fp-bit32.c
+softfp_wrap_start := '\#ifndef __powerpc64__'
+softfp_wrap_end := '\#endif'
diff --git a/gcc/config/rs6000/t-ppccomm b/gcc/config/rs6000/t-ppccomm
index e58dfe5f687..1ca509cd59a 100644
--- a/gcc/config/rs6000/t-ppccomm
+++ b/gcc/config/rs6000/t-ppccomm
@@ -1,6 +1,6 @@
# Common support for PowerPC ELF targets (both EABI and SVR4).
-LIB2FUNCS_EXTRA = tramp.S $(srcdir)/config/rs6000/darwin-ldouble.c
+LIB2FUNCS_EXTRA += tramp.S $(srcdir)/config/rs6000/darwin-ldouble.c
# This one can't end up in shared libgcc
LIB2FUNCS_STATIC_EXTRA = eabi.S
diff --git a/gcc/config/s390/s390.md b/gcc/config/s390/s390.md
index c03f8808b55..54822da8081 100644
--- a/gcc/config/s390/s390.md
+++ b/gcc/config/s390/s390.md
@@ -467,6 +467,7 @@
"ltgfr\t%2,%0"
[(set_attr "op_type" "RRE")])
+; ltr, lt, ltgr, ltg
(define_insn "*tst<mode>_extimm"
[(set (reg CC_REGNUM)
(compare (match_operand:GPR 0 "nonimmediate_operand" "d,m")
@@ -479,6 +480,7 @@
lt<g>\t%2,%0"
[(set_attr "op_type" "RR<E>,RXY")])
+; ltr, lt, ltgr, ltg
(define_insn "*tst<mode>_cconly_extimm"
[(set (reg CC_REGNUM)
(compare (match_operand:GPR 0 "nonimmediate_operand" "d,m")
@@ -534,6 +536,7 @@
[(set_attr "op_type" "RS")
(set_attr "atype" "reg")])
+; ltr, ltgr
(define_insn "*tst<mode>_cconly2"
[(set (reg CC_REGNUM)
(compare (match_operand:GPR 0 "register_operand" "d")
@@ -656,6 +659,7 @@
chy\t%0,%1"
[(set_attr "op_type" "RX,RXY")])
+; cr, chi, cfi, c, cy, cgr, cghi, cgfi, cg
(define_insn "*cmp<mode>_ccs"
[(set (reg CC_REGNUM)
(compare (match_operand:GPR 0 "register_operand" "d,d,d,d,d")
@@ -774,6 +778,7 @@
; (DF|SF) instructions
+; ltxbr, ltdbr, ltebr
(define_insn "*cmp<mode>_ccs_0"
[(set (reg CC_REGNUM)
(compare (match_operand:FPR 0 "register_operand" "f")
@@ -783,6 +788,7 @@
[(set_attr "op_type" "RRE")
(set_attr "type" "fsimp<mode>")])
+; ltxr, ltdr, lter
(define_insn "*cmp<mode>_ccs_0_ibm"
[(set (reg CC_REGNUM)
(compare (match_operand:FPR 0 "register_operand" "f")
@@ -792,6 +798,7 @@
[(set_attr "op_type" "<RRe>")
(set_attr "type" "fsimp<mode>")])
+; cxbr, cdbr, cebr, cxb, cdb, ceb
(define_insn "*cmp<mode>_ccs"
[(set (reg CC_REGNUM)
(compare (match_operand:FPR 0 "register_operand" "f,f")
@@ -803,6 +810,7 @@
[(set_attr "op_type" "RRE,RXE")
(set_attr "type" "fsimp<mode>")])
+; cxr, cdr, cer, cx, cd, ce
(define_insn "*cmp<mode>_ccs_ibm"
[(set (reg CC_REGNUM)
(compare (match_operand:FPR 0 "register_operand" "f,f")
@@ -2860,6 +2868,7 @@
; extendqi(si|di)2 instruction pattern(s).
;
+; lbr, lgbr, lb, lgb
(define_insn "*extendqi<mode>2_extimm"
[(set (match_operand:GPR 0 "register_operand" "=d,d")
(sign_extend:GPR (match_operand:QI 1 "nonimmediate_operand" "d,m")))]
@@ -2869,6 +2878,7 @@
l<g>b\t%0,%1"
[(set_attr "op_type" "RRE,RXY")])
+; lb, lgb
(define_insn "*extendqi<mode>2"
[(set (match_operand:GPR 0 "register_operand" "=d")
(sign_extend:GPR (match_operand:QI 1 "memory_operand" "m")))]
@@ -3020,6 +3030,7 @@
}
})
+; llhr, llcr, llghr, llgcr, llh, llc, llgh, llgc
(define_insn "*zero_extend<HQI:mode><GPR:mode>2_extimm"
[(set (match_operand:GPR 0 "register_operand" "=d,d")
(zero_extend:GPR (match_operand:HQI 1 "nonimmediate_operand" "d,m")))]
@@ -3029,6 +3040,7 @@
ll<g><hc>\t%0,%1"
[(set_attr "op_type" "RRE,RXY")])
+; llgh, llgc
(define_insn "*zero_extend<HQI:mode><GPR:mode>2"
[(set (match_operand:GPR 0 "register_operand" "=d")
(zero_extend:GPR (match_operand:HQI 1 "memory_operand" "m")))]
@@ -3136,6 +3148,7 @@
DONE;
})
+; cgxbr, cgdbr, cgebr, cfxbr, cfdbr, cfebr
(define_insn "fix_trunc<FPR:mode><GPR:mode>2_ieee"
[(set (match_operand:GPR 0 "register_operand" "=d")
(fix:GPR (match_operand:FPR 1 "register_operand" "f")))
@@ -3234,6 +3247,7 @@
; float(si|di)(tf|df|sf)2 instruction pattern(s).
;
+; cxgbr, cdgbr, cegbr
(define_insn "floatdi<mode>2"
[(set (match_operand:FPR 0 "register_operand" "=f")
(float:FPR (match_operand:DI 1 "register_operand" "d")))]
@@ -3242,6 +3256,7 @@
[(set_attr "op_type" "RRE")
(set_attr "type" "itof" )])
+; cxfbr, cdfbr, cefbr
(define_insn "floatsi<mode>2_ieee"
[(set (match_operand:FPR 0 "register_operand" "=f")
(float:FPR (match_operand:SI 1 "register_operand" "d")))]
@@ -3682,6 +3697,7 @@
; add(di|si)3 instruction pattern(s).
;
+; ar, ahi, alfi, slfi, a, ay, agr, aghi, algfi, slgfi, ag
(define_insn "*add<mode>3"
[(set (match_operand:GPR 0 "register_operand" "=d,d,d,d,d,d")
(plus:GPR (match_operand:GPR 1 "nonimmediate_operand" "%0,0,0,0,0,0")
@@ -3697,6 +3713,7 @@
a<y>\t%0,%2"
[(set_attr "op_type" "RR<E>,RI,RIL,RIL,RX<Y>,RXY")])
+; alr, alfi, slfi, al, aly, algr, algfi, slgfi, alg
(define_insn "*add<mode>3_carry1_cc"
[(set (reg CC_REGNUM)
(compare (plus:GPR (match_operand:GPR 1 "nonimmediate_operand" "%0,0,0,0,0")
@@ -3713,6 +3730,7 @@
al<y>\t%0,%2"
[(set_attr "op_type" "RR<E>,RIL,RIL,RX<Y>,RXY")])
+; alr, al, aly, algr, alg
(define_insn "*add<mode>3_carry1_cconly"
[(set (reg CC_REGNUM)
(compare (plus:GPR (match_operand:GPR 1 "nonimmediate_operand" "%0,0,0")
@@ -3726,6 +3744,7 @@
al<y>\t%0,%2"
[(set_attr "op_type" "RR<E>,RX<Y>,RXY")])
+; alr, alfi, slfi, al, aly, algr, algfi, slgfi, alg
(define_insn "*add<mode>3_carry2_cc"
[(set (reg CC_REGNUM)
(compare (plus:GPR (match_operand:GPR 1 "nonimmediate_operand" "%0,0,0,0,0")
@@ -3742,6 +3761,7 @@
al<y>\t%0,%2"
[(set_attr "op_type" "RR<E>,RIL,RIL,RX<Y>,RXY")])
+; alr, al, aly, algr, alg
(define_insn "*add<mode>3_carry2_cconly"
[(set (reg CC_REGNUM)
(compare (plus:GPR (match_operand:GPR 1 "nonimmediate_operand" "%0,0,0")
@@ -3755,6 +3775,7 @@
al<y>\t%0,%2"
[(set_attr "op_type" "RR<E>,RX<Y>,RXY")])
+; alr, alfi, slfi, al, aly, algr, algfi, slgfi, alg
(define_insn "*add<mode>3_cc"
[(set (reg CC_REGNUM)
(compare (plus:GPR (match_operand:GPR 1 "nonimmediate_operand" "%0,0,0,0,0")
@@ -3771,6 +3792,7 @@
al<y>\t%0,%2"
[(set_attr "op_type" "RR<E>,RIL,RIL,RX<Y>,RXY")])
+; alr, al, aly, algr, alg
(define_insn "*add<mode>3_cconly"
[(set (reg CC_REGNUM)
(compare (plus:GPR (match_operand:GPR 1 "nonimmediate_operand" "%0,0,0")
@@ -3784,6 +3806,7 @@
al<y>\t%0,%2"
[(set_attr "op_type" "RR<E>,RX<Y>,RXY")])
+; alr, al, aly, algr, alg
(define_insn "*add<mode>3_cconly2"
[(set (reg CC_REGNUM)
(compare (match_operand:GPR 1 "nonimmediate_operand" "%0,0,0")
@@ -3796,6 +3819,7 @@
al<y>\t%0,%2"
[(set_attr "op_type" "RR<E>,RX<Y>,RXY")])
+; ahi, afi, aghi, agfi
(define_insn "*add<mode>3_imm_cc"
[(set (reg CC_REGNUM)
(compare (plus:GPR (match_operand:GPR 1 "nonimmediate_operand" "0,0")
@@ -3825,6 +3849,7 @@
"TARGET_HARD_FLOAT"
"")
+; axbr, adbr, aebr, axb, adb, aeb
(define_insn "*add<mode>3"
[(set (match_operand:FPR 0 "register_operand" "=f,f")
(plus:FPR (match_operand:FPR 1 "nonimmediate_operand" "%0,0")
@@ -3837,6 +3862,7 @@
[(set_attr "op_type" "RRE,RXE")
(set_attr "type" "fsimp<mode>")])
+; axbr, adbr, aebr, axb, adb, aeb
(define_insn "*add<mode>3_cc"
[(set (reg CC_REGNUM)
(compare (plus:FPR (match_operand:FPR 1 "nonimmediate_operand" "%0,0")
@@ -3851,6 +3877,7 @@
[(set_attr "op_type" "RRE,RXE")
(set_attr "type" "fsimp<mode>")])
+; axbr, adbr, aebr, axb, adb, aeb
(define_insn "*add<mode>3_cconly"
[(set (reg CC_REGNUM)
(compare (plus:FPR (match_operand:FPR 1 "nonimmediate_operand" "%0,0")
@@ -3864,6 +3891,7 @@
[(set_attr "op_type" "RRE,RXE")
(set_attr "type" "fsimp<mode>")])
+; axr, adr, aer, ax, ad, ae
(define_insn "*add<mode>3_ibm"
[(set (match_operand:FPR 0 "register_operand" "=f,f")
(plus:FPR (match_operand:FPR 1 "nonimmediate_operand" "%0,0")
@@ -4053,6 +4081,7 @@
; sub(di|si)3 instruction pattern(s).
;
+; sr, s, sy, sgr, sg
(define_insn "*sub<mode>3"
[(set (match_operand:GPR 0 "register_operand" "=d,d,d")
(minus:GPR (match_operand:GPR 1 "register_operand" "0,0,0")
@@ -4065,6 +4094,7 @@
s<y>\t%0,%2"
[(set_attr "op_type" "RR<E>,RX<Y>,RXY")])
+; slr, sl, sly, slgr, slg
(define_insn "*sub<mode>3_borrow_cc"
[(set (reg CC_REGNUM)
(compare (minus:GPR (match_operand:GPR 1 "register_operand" "0,0,0")
@@ -4079,6 +4109,7 @@
sl<y>\t%0,%2"
[(set_attr "op_type" "RR<E>,RX<Y>,RXY")])
+; slr, sl, sly, slgr, slg
(define_insn "*sub<mode>3_borrow_cconly"
[(set (reg CC_REGNUM)
(compare (minus:GPR (match_operand:GPR 1 "register_operand" "0,0,0")
@@ -4092,6 +4123,7 @@
sl<y>\t%0,%2"
[(set_attr "op_type" "RR<E>,RX<Y>,RXY")])
+; slr, sl, sly, slgr, slg
(define_insn "*sub<mode>3_cc"
[(set (reg CC_REGNUM)
(compare (minus:GPR (match_operand:GPR 1 "register_operand" "0,0,0")
@@ -4106,6 +4138,7 @@
sl<y>\t%0,%2"
[(set_attr "op_type" "RR<E>,RX<Y>,RXY")])
+; slr, sl, sly, slgr, slg
(define_insn "*sub<mode>3_cc2"
[(set (reg CC_REGNUM)
(compare (match_operand:GPR 1 "register_operand" "0,0,0")
@@ -4119,6 +4152,7 @@
sl<y>\t%0,%2"
[(set_attr "op_type" "RR<E>,RX<Y>,RXY")])
+; slr, sl, sly, slgr, slg
(define_insn "*sub<mode>3_cconly"
[(set (reg CC_REGNUM)
(compare (minus:GPR (match_operand:GPR 1 "register_operand" "0,0,0")
@@ -4132,6 +4166,7 @@
sl<y>\t%0,%2"
[(set_attr "op_type" "RR<E>,RX<Y>,RXY")])
+; slr, sl, sly, slgr, slg
(define_insn "*sub<mode>3_cconly2"
[(set (reg CC_REGNUM)
(compare (match_operand:GPR 1 "register_operand" "0,0,0")
@@ -4157,6 +4192,7 @@
"TARGET_HARD_FLOAT"
"")
+; sxbr, sdbr, sebr, sxb, sdb, seb
(define_insn "*sub<mode>3"
[(set (match_operand:FPR 0 "register_operand" "=f,f")
(minus:FPR (match_operand:FPR 1 "register_operand" "0,0")
@@ -4169,6 +4205,7 @@
[(set_attr "op_type" "RRE,RXE")
(set_attr "type" "fsimp<mode>")])
+; sxbr, sdbr, sebr, sxb, sdb, seb
(define_insn "*sub<mode>3_cc"
[(set (reg CC_REGNUM)
(compare (minus:FPR (match_operand:FPR 1 "nonimmediate_operand" "0,0")
@@ -4183,6 +4220,7 @@
[(set_attr "op_type" "RRE,RXE")
(set_attr "type" "fsimp<mode>")])
+; sxbr, sdbr, sebr, sxb, sdb, seb
(define_insn "*sub<mode>3_cconly"
[(set (reg CC_REGNUM)
(compare (minus:FPR (match_operand:FPR 1 "nonimmediate_operand" "0,0")
@@ -4196,6 +4234,7 @@
[(set_attr "op_type" "RRE,RXE")
(set_attr "type" "fsimp<mode>")])
+; sxr, sdr, ser, sx, sd, se
(define_insn "*sub<mode>3_ibm"
[(set (match_operand:FPR 0 "register_operand" "=f,f")
(minus:FPR (match_operand:FPR 1 "register_operand" "0,0")
@@ -4217,6 +4256,7 @@
; add(di|si)cc instruction pattern(s).
;
+; alcr, alc, alcgr, alcg
(define_insn "*add<mode>3_alc_cc"
[(set (reg CC_REGNUM)
(compare
@@ -4232,6 +4272,7 @@
alc<g>\t%0,%2"
[(set_attr "op_type" "RRE,RXY")])
+; alcr, alc, alcgr, alcg
(define_insn "*add<mode>3_alc"
[(set (match_operand:GPR 0 "register_operand" "=d,d")
(plus:GPR (plus:GPR (match_operand:GPR 1 "nonimmediate_operand" "%0,0")
@@ -4244,6 +4285,7 @@
alc<g>\t%0,%2"
[(set_attr "op_type" "RRE,RXY")])
+; slbr, slb, slbgr, slbg
(define_insn "*sub<mode>3_slb_cc"
[(set (reg CC_REGNUM)
(compare
@@ -4259,6 +4301,7 @@
slb<g>\t%0,%2"
[(set_attr "op_type" "RRE,RXY")])
+; slbr, slb, slbgr, slbg
(define_insn "*sub<mode>3_slb"
[(set (match_operand:GPR 0 "register_operand" "=d,d")
(minus:GPR (minus:GPR (match_operand:GPR 1 "nonimmediate_operand" "0,0")
@@ -4457,6 +4500,7 @@
"TARGET_HARD_FLOAT"
"")
+; mxbr mdbr, meebr, mxb, mxb, meeb
(define_insn "*mul<mode>3"
[(set (match_operand:FPR 0 "register_operand" "=f,f")
(mult:FPR (match_operand:FPR 1 "nonimmediate_operand" "%0,0")
@@ -4468,6 +4512,7 @@
[(set_attr "op_type" "RRE,RXE")
(set_attr "type" "fmul<mode>")])
+; mxr, mdr, mer, mx, md, me
(define_insn "*mul<mode>3_ibm"
[(set (match_operand:FPR 0 "register_operand" "=f,f")
(mult:FPR (match_operand:FPR 1 "nonimmediate_operand" "%0,0")
@@ -4479,6 +4524,7 @@
[(set_attr "op_type" "<RRe>,<RXe>")
(set_attr "type" "fmul<mode>")])
+; maxbr, madbr, maebr, maxb, madb, maeb
(define_insn "*fmadd<mode>"
[(set (match_operand:DSF 0 "register_operand" "=f,f")
(plus:DSF (mult:DSF (match_operand:DSF 1 "register_operand" "%f,f")
@@ -4491,6 +4537,7 @@
[(set_attr "op_type" "RRE,RXE")
(set_attr "type" "fmul<mode>")])
+; msxbr, msdbr, msebr, msxb, msdb, mseb
(define_insn "*fmsub<mode>"
[(set (match_operand:DSF 0 "register_operand" "=f,f")
(minus:DSF (mult:DSF (match_operand:DSF 1 "register_operand" "f,f")
@@ -4950,6 +4997,7 @@
"TARGET_HARD_FLOAT"
"")
+; dxbr, ddbr, debr, dxb, ddb, deb
(define_insn "*div<mode>3"
[(set (match_operand:FPR 0 "register_operand" "=f,f")
(div:FPR (match_operand:FPR 1 "register_operand" "0,0")
@@ -4961,6 +5009,7 @@
[(set_attr "op_type" "RRE,RXE")
(set_attr "type" "fdiv<mode>")])
+; dxr, ddr, der, dx, dd, de
(define_insn "*div<mode>3_ibm"
[(set (match_operand:FPR 0 "register_operand" "=f,f")
(div:FPR (match_operand:FPR 1 "register_operand" "0,0")
@@ -5878,6 +5927,7 @@
"lcgfr\t%0,%1"
[(set_attr "op_type" "RRE")])
+; lcr, lcgr
(define_insn "*neg<mode>2_cc"
[(set (reg CC_REGNUM)
(compare (neg:GPR (match_operand:GPR 1 "register_operand" "d"))
@@ -5887,7 +5937,8 @@
"s390_match_ccmode (insn, CCAmode)"
"lc<g>r\t%0,%1"
[(set_attr "op_type" "RR<E>")])
-
+
+; lcr, lcgr
(define_insn "*neg<mode>2_cconly"
[(set (reg CC_REGNUM)
(compare (neg:GPR (match_operand:GPR 1 "register_operand" "d"))
@@ -5896,7 +5947,8 @@
"s390_match_ccmode (insn, CCAmode)"
"lc<g>r\t%0,%1"
[(set_attr "op_type" "RR<E>")])
-
+
+; lcr, lcgr
(define_insn "*neg<mode>2"
[(set (match_operand:GPR 0 "register_operand" "=d")
(neg:GPR (match_operand:GPR 1 "register_operand" "d")))
@@ -5945,6 +5997,7 @@
"TARGET_HARD_FLOAT"
"")
+; lcxbr, lcdbr, lcebr
(define_insn "*neg<mode>2_cc"
[(set (reg CC_REGNUM)
(compare (neg:FPR (match_operand:FPR 1 "register_operand" "f"))
@@ -5955,7 +6008,8 @@
"lc<xde>br\t%0,%1"
[(set_attr "op_type" "RRE")
(set_attr "type" "fsimp<mode>")])
-
+
+; lcxbr, lcdbr, lcebr
(define_insn "*neg<mode>2_cconly"
[(set (reg CC_REGNUM)
(compare (neg:FPR (match_operand:FPR 1 "register_operand" "f"))
@@ -5965,7 +6019,8 @@
"lc<xde>br\t%0,%1"
[(set_attr "op_type" "RRE")
(set_attr "type" "fsimp<mode>")])
-
+
+; lcxbr, lcdbr, lcebr
(define_insn "*neg<mode>2"
[(set (match_operand:FPR 0 "register_operand" "=f")
(neg:FPR (match_operand:FPR 1 "register_operand" "f")))
@@ -5975,6 +6030,7 @@
[(set_attr "op_type" "RRE")
(set_attr "type" "fsimp<mode>")])
+; lcxr, lcdr, lcer
(define_insn "*neg<mode>2_ibm"
[(set (match_operand:FPR 0 "register_operand" "=f")
(neg:FPR (match_operand:FPR 1 "register_operand" "f")))
@@ -6013,6 +6069,7 @@
"lpgfr\t%0,%1"
[(set_attr "op_type" "RRE")])
+; lpr, lpgr
(define_insn "*abs<mode>2_cc"
[(set (reg CC_REGNUM)
(compare (abs:GPR (match_operand:DI 1 "register_operand" "d"))
@@ -6022,7 +6079,8 @@
"s390_match_ccmode (insn, CCAmode)"
"lp<g>r\t%0,%1"
[(set_attr "op_type" "RR<E>")])
-
+
+; lpr, lpgr
(define_insn "*abs<mode>2_cconly"
[(set (reg CC_REGNUM)
(compare (abs:GPR (match_operand:GPR 1 "register_operand" "d"))
@@ -6031,7 +6089,8 @@
"s390_match_ccmode (insn, CCAmode)"
"lp<g>r\t%0,%1"
[(set_attr "op_type" "RR<E>")])
-
+
+; lpr, lpgr
(define_insn "abs<mode>2"
[(set (match_operand:GPR 0 "register_operand" "=d")
(abs:GPR (match_operand:GPR 1 "register_operand" "d")))
@@ -6052,6 +6111,7 @@
"TARGET_HARD_FLOAT"
"")
+; lpxbr, lpdbr, lpebr
(define_insn "*abs<mode>2_cc"
[(set (reg CC_REGNUM)
(compare (abs:FPR (match_operand:FPR 1 "register_operand" "f"))
@@ -6062,7 +6122,8 @@
"lp<xde>br\t%0,%1"
[(set_attr "op_type" "RRE")
(set_attr "type" "fsimp<mode>")])
-
+
+; lpxbr, lpdbr, lpebr
(define_insn "*abs<mode>2_cconly"
[(set (reg CC_REGNUM)
(compare (abs:FPR (match_operand:FPR 1 "register_operand" "f"))
@@ -6072,7 +6133,8 @@
"lp<xde>br\t%0,%1"
[(set_attr "op_type" "RRE")
(set_attr "type" "fsimp<mode>")])
-
+
+; lpxbr, lpdbr, lpebr
(define_insn "*abs<mode>2"
[(set (match_operand:FPR 0 "register_operand" "=f")
(abs:FPR (match_operand:FPR 1 "register_operand" "f")))
@@ -6082,6 +6144,7 @@
[(set_attr "op_type" "RRE")
(set_attr "type" "fsimp<mode>")])
+; lpxr, lpdr, lper
(define_insn "*abs<mode>2_ibm"
[(set (match_operand:FPR 0 "register_operand" "=f")
(abs:FPR (match_operand:FPR 1 "register_operand" "f")))
@@ -6120,6 +6183,7 @@
"lngfr\t%0,%1"
[(set_attr "op_type" "RRE")])
+; lnr, lngr
(define_insn "*negabs<mode>2_cc"
[(set (reg CC_REGNUM)
(compare (neg:GPR (abs:GPR (match_operand:GPR 1 "register_operand" "d")))
@@ -6129,7 +6193,8 @@
"s390_match_ccmode (insn, CCAmode)"
"ln<g>r\t%0,%1"
[(set_attr "op_type" "RR<E>")])
-
+
+; lnr, lngr
(define_insn "*negabs<mode>2_cconly"
[(set (reg CC_REGNUM)
(compare (neg:GPR (abs:GPR (match_operand:GPR 1 "register_operand" "d")))
@@ -6138,7 +6203,8 @@
"s390_match_ccmode (insn, CCAmode)"
"ln<g>r\t%0,%1"
[(set_attr "op_type" "RR<E>")])
-
+
+; lnr, lngr
(define_insn "*negabs<mode>2"
[(set (match_operand:GPR 0 "register_operand" "=d")
(neg:GPR (abs:GPR (match_operand:GPR 1 "register_operand" "d"))))
@@ -6151,6 +6217,7 @@
; Floating point
;
+; lnxbr, lndbr, lnebr
(define_insn "*negabs<mode>2_cc"
[(set (reg CC_REGNUM)
(compare (neg:FPR (abs:FPR (match_operand:FPR 1 "register_operand" "f")))
@@ -6161,7 +6228,8 @@
"ln<xde>br\t%0,%1"
[(set_attr "op_type" "RRE")
(set_attr "type" "fsimp<mode>")])
-
+
+; lnxbr, lndbr, lnebr
(define_insn "*negabs<mode>2_cconly"
[(set (reg CC_REGNUM)
(compare (neg:FPR (abs:FPR (match_operand:FPR 1 "register_operand" "f")))
@@ -6171,7 +6239,8 @@
"ln<xde>br\t%0,%1"
[(set_attr "op_type" "RRE")
(set_attr "type" "fsimp<mode>")])
-
+
+; lnxbr, lndbr, lnebr
(define_insn "*negabs<mode>2"
[(set (match_operand:FPR 0 "register_operand" "=f")
(neg:FPR (abs:FPR (match_operand:FPR 1 "register_operand" "f"))))
@@ -6189,6 +6258,7 @@
; sqrt(df|sf)2 instruction pattern(s).
;
+; sqxbr, sqdbr, sqebr, sqxb, sqdb, sqeb
(define_insn "sqrt<mode>2"
[(set (match_operand:FPR 0 "register_operand" "=f,f")
(sqrt:FPR (match_operand:FPR 1 "general_operand" "f,<Rf>")))]
@@ -6269,6 +6339,7 @@
; rotl(di|si)3 instruction pattern(s).
;
+; rll, rllg
(define_insn "rotl<mode>3"
[(set (match_operand:GPR 0 "register_operand" "=d")
(rotate:GPR (match_operand:GPR 1 "register_operand" "d")
@@ -6278,6 +6349,7 @@
[(set_attr "op_type" "RSE")
(set_attr "atype" "reg")])
+; rll, rllg
(define_insn "*rotl<mode>3_and"
[(set (match_operand:GPR 0 "register_operand" "=d")
(rotate:GPR (match_operand:GPR 1 "register_operand" "d")
@@ -6304,6 +6376,7 @@
""
"")
+; sldl, srdl
(define_insn "*<shift>di3_31"
[(set (match_operand:DI 0 "register_operand" "=d")
(SHIFT:DI (match_operand:DI 1 "register_operand" "0")
@@ -6313,6 +6386,7 @@
[(set_attr "op_type" "RS")
(set_attr "atype" "reg")])
+; sll, srl, sllg, srlg
(define_insn "*<shift><mode>3"
[(set (match_operand:GPR 0 "register_operand" "=d")
(SHIFT:GPR (match_operand:GPR 1 "register_operand" "<d0>")
@@ -6322,6 +6396,7 @@
[(set_attr "op_type" "RS<E>")
(set_attr "atype" "reg")])
+; sldl, srdl
(define_insn "*<shift>di3_31_and"
[(set (match_operand:DI 0 "register_operand" "=d")
(SHIFT:DI (match_operand:DI 1 "register_operand" "0")
@@ -6332,6 +6407,7 @@
[(set_attr "op_type" "RS")
(set_attr "atype" "reg")])
+; sll, srl, sllg, srlg
(define_insn "*<shift><mode>3_and"
[(set (match_operand:GPR 0 "register_operand" "=d")
(SHIFT:GPR (match_operand:GPR 1 "register_operand" "<d0>")
@@ -6388,6 +6464,7 @@
[(set_attr "op_type" "RS")
(set_attr "atype" "reg")])
+; sra, srag
(define_insn "*ashr<mode>3_cc"
[(set (reg CC_REGNUM)
(compare (ashiftrt:GPR (match_operand:GPR 1 "register_operand" "<d0>")
@@ -6400,6 +6477,7 @@
[(set_attr "op_type" "RS<E>")
(set_attr "atype" "reg")])
+; sra, srag
(define_insn "*ashr<mode>3_cconly"
[(set (reg CC_REGNUM)
(compare (ashiftrt:GPR (match_operand:GPR 1 "register_operand" "<d0>")
@@ -6411,6 +6489,7 @@
[(set_attr "op_type" "RS<E>")
(set_attr "atype" "reg")])
+; sra, srag
(define_insn "*ashr<mode>3"
[(set (match_operand:GPR 0 "register_operand" "=d")
(ashiftrt:GPR (match_operand:GPR 1 "register_operand" "<d0>")
@@ -6462,6 +6541,7 @@
[(set_attr "op_type" "RS")
(set_attr "atype" "reg")])
+; sra, srag
(define_insn "*ashr<mode>3_cc_and"
[(set (reg CC_REGNUM)
(compare (ashiftrt:GPR (match_operand:GPR 1 "register_operand" "<d0>")
@@ -6475,6 +6555,7 @@
[(set_attr "op_type" "RS<E>")
(set_attr "atype" "reg")])
+; sra, srag
(define_insn "*ashr<mode>3_cconly_and"
[(set (reg CC_REGNUM)
(compare (ashiftrt:GPR (match_operand:GPR 1 "register_operand" "<d0>")
@@ -6487,6 +6568,7 @@
[(set_attr "op_type" "RS<E>")
(set_attr "atype" "reg")])
+; sra, srag
(define_insn "*ashr<mode>3_and"
[(set (match_operand:GPR 0 "register_operand" "=d")
(ashiftrt:GPR (match_operand:GPR 1 "register_operand" "<d0>")
@@ -7376,6 +7458,7 @@
s390_compare_emitted = operands[4];
})
+; cds, cdsg
(define_insn "*sync_compare_and_swap<mode>"
[(set (match_operand:DP 0 "register_operand" "=r")
(match_operand:DP 1 "memory_operand" "+Q"))
@@ -7392,6 +7475,7 @@
[(set_attr "op_type" "RS<TE>")
(set_attr "type" "sem")])
+; cs, csg
(define_insn "*sync_compare_and_swap<mode>"
[(set (match_operand:GPR 0 "register_operand" "=r")
(match_operand:GPR 1 "memory_operand" "+Q"))
diff --git a/gcc/config/sh/embed-elf.h b/gcc/config/sh/embed-elf.h
index f8c0713ee65..4497cf34636 100644
--- a/gcc/config/sh/embed-elf.h
+++ b/gcc/config/sh/embed-elf.h
@@ -25,7 +25,14 @@ Boston, MA 02110-1301, USA. */
#undef TARGET_POSIX_IO
+/* While the speed-optimized implementations of udivsi3_i4i / sdivsi3_i4i
+ in libgcc are not available for SH2, the space-optimized ones in
+ libgcc-Os-4-200 are. Thus, when not optimizing for space, link
+ libgcc-Os-4-200 after libgcc, so that -mdiv=call-table works for -m2. */
#define LIBGCC_SPEC "%{!shared: \
%{m4-100*:-lic_invalidate_array_4-100} \
%{m4-200*:-lic_invalidate_array_4-200} \
- %{m4a*:-lic_invalidate_array_4a}} -lgcc"
+ %{m4a*:-lic_invalidate_array_4a}} \
+ %{Os: -lgcc-Os-4-200} \
+ -lgcc \
+ %{!Os: -lgcc-Os-4-200}"
diff --git a/gcc/config/sh/lib1funcs-Os-4-200.asm b/gcc/config/sh/lib1funcs-Os-4-200.asm
new file mode 100644
index 00000000000..e71ccd1de6e
--- /dev/null
+++ b/gcc/config/sh/lib1funcs-Os-4-200.asm
@@ -0,0 +1,325 @@
+/* Copyright (C) 2006 Free Software Foundation, Inc.
+
+This file is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 2, or (at your option) any
+later version.
+
+In addition to the permissions in the GNU General Public License, the
+Free Software Foundation gives you unlimited permission to link the
+compiled version of this file into combinations with other programs,
+and to distribute those combinations without any restriction coming
+from the use of this file. (The General Public License restrictions
+do apply in other respects; for example, they cover modification of
+the file, and distribution when not linked into a combine
+executable.)
+
+This file 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 Free Software Foundation, 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA. */
+
+/* Moderately Space-optimized libgcc routines for the Renesas SH /
+ STMicroelectronics ST40 CPUs.
+ Contributed by J"orn Rennecke joern.rennecke@st.com. */
+
+#include "lib1funcs.h"
+
+#ifdef L_udivsi3_i4i
+
+/* 88 bytes; sh4-200 cycle counts:
+ divisor >= 2G: 11 cycles
+ dividend < 2G: 48 cycles
+ dividend >= 2G: divisor != 1: 54 cycles
+ dividend >= 2G, divisor == 1: 22 cycles */
+#if defined (__SH_FPU_DOUBLE__) || defined (__SH4_SINGLE_ONLY__)
+!! args in r4 and r5, result in r0, clobber r1
+
+ .global GLOBAL(udivsi3_i4i)
+ FUNC(GLOBAL(udivsi3_i4i))
+GLOBAL(udivsi3_i4i):
+ mova L1,r0
+ cmp/pz r5
+ sts fpscr,r1
+ lds.l @r0+,fpscr
+ sts.l fpul,@-r15
+ bf LOCAL(huge_divisor)
+ mov.l r1,@-r15
+ lds r4,fpul
+ cmp/pz r4
+#ifdef FMOVD_WORKS
+ fmov.d dr0,@-r15
+ float fpul,dr0
+ fmov.d dr2,@-r15
+ bt LOCAL(dividend_adjusted)
+ mov #1,r1
+ fmov.d @r0,dr2
+ cmp/eq r1,r5
+ bt LOCAL(div_by_1)
+ fadd dr2,dr0
+LOCAL(dividend_adjusted):
+ lds r5,fpul
+ float fpul,dr2
+ fdiv dr2,dr0
+LOCAL(div_by_1):
+ fmov.d @r15+,dr2
+ ftrc dr0,fpul
+ fmov.d @r15+,dr0
+#else /* !FMOVD_WORKS */
+ fmov.s DR01,@-r15
+ mov #1,r1
+ fmov.s DR00,@-r15
+ float fpul,dr0
+ fmov.s DR21,@-r15
+ bt/s LOCAL(dividend_adjusted)
+ fmov.s DR20,@-r15
+ cmp/eq r1,r5
+ bt LOCAL(div_by_1)
+ fmov.s @r0+,DR20
+ fmov.s @r0,DR21
+ fadd dr2,dr0
+LOCAL(dividend_adjusted):
+ lds r5,fpul
+ float fpul,dr2
+ fdiv dr2,dr0
+LOCAL(div_by_1):
+ fmov.s @r15+,DR20
+ fmov.s @r15+,DR21
+ ftrc dr0,fpul
+ fmov.s @r15+,DR00
+ fmov.s @r15+,DR01
+#endif /* !FMOVD_WORKS */
+ lds.l @r15+,fpscr
+ sts fpul,r0
+ rts
+ lds.l @r15+,fpul
+
+#ifdef FMOVD_WORKS
+ .p2align 3 ! make double below 8 byte aligned.
+#endif
+LOCAL(huge_divisor):
+ lds r1,fpscr
+ add #4,r15
+ cmp/hs r5,r4
+ rts
+ movt r0
+
+ .p2align 2
+L1:
+#ifndef FMOVD_WORKS
+ .long 0x80000
+#else
+ .long 0x180000
+#endif
+ .double 4294967296
+
+ ENDFUNC(GLOBAL(udivsi3_i4i))
+#elif !defined (__sh1__) /* !__SH_FPU_DOUBLE__ */
+
+#if 0
+/* With 36 bytes, the following would probably be the most compact
+ implementation, but with 139 cycles on an sh4-200, it is extremely slow. */
+GLOBAL(udivsi3_i4i):
+ mov.l r2,@-r15
+ mov #0,r1
+ div0u
+ mov r1,r2
+ mov.l r3,@-r15
+ mov r1,r3
+ sett
+ mov r4,r0
+LOCAL(loop):
+ rotcr r2
+ ;
+ bt/s LOCAL(end)
+ cmp/gt r2,r3
+ rotcl r0
+ bra LOCAL(loop)
+ div1 r5,r1
+LOCAL(end):
+ rotcl r0
+ mov.l @r15+,r3
+ rts
+ mov.l @r15+,r2
+#endif /* 0 */
+
+/* Size: 186 bytes jointly for udivsi3_i4i and sdivsi3_i4i
+ sh4-200 run times:
+ udiv small divisor: 55 cycles
+ udiv large divisor: 52 cycles
+ sdiv small divisor, positive result: 59 cycles
+ sdiv large divisor, positive result: 56 cycles
+ sdiv small divisor, negative result: 65 cycles (*)
+ sdiv large divisor, negative result: 62 cycles (*)
+ (*): r2 is restored in the rts delay slot and has a lingering latency
+ of two more cycles. */
+ .balign 4
+ .global GLOBAL(udivsi3_i4i)
+ FUNC(GLOBAL(udivsi3_i4i))
+ FUNC(GLOBAL(sdivsi3_i4i))
+GLOBAL(udivsi3_i4i):
+ sts pr,r1
+ mov.l r4,@-r15
+ extu.w r5,r0
+ cmp/eq r5,r0
+ swap.w r4,r0
+ shlr16 r4
+ bf/s LOCAL(large_divisor)
+ div0u
+ mov.l r5,@-r15
+ shll16 r5
+LOCAL(sdiv_small_divisor):
+ div1 r5,r4
+ bsr LOCAL(div6)
+ div1 r5,r4
+ div1 r5,r4
+ bsr LOCAL(div6)
+ div1 r5,r4
+ xtrct r4,r0
+ xtrct r0,r4
+ bsr LOCAL(div7)
+ swap.w r4,r4
+ div1 r5,r4
+ bsr LOCAL(div7)
+ div1 r5,r4
+ xtrct r4,r0
+ mov.l @r15+,r5
+ swap.w r0,r0
+ mov.l @r15+,r4
+ jmp @r1
+ rotcl r0
+LOCAL(div7):
+ div1 r5,r4
+LOCAL(div6):
+ div1 r5,r4; div1 r5,r4; div1 r5,r4
+ div1 r5,r4; div1 r5,r4; rts; div1 r5,r4
+
+LOCAL(divx3):
+ rotcl r0
+ div1 r5,r4
+ rotcl r0
+ div1 r5,r4
+ rotcl r0
+ rts
+ div1 r5,r4
+
+LOCAL(large_divisor):
+ mov.l r5,@-r15
+LOCAL(sdiv_large_divisor):
+ xor r4,r0
+ .rept 4
+ rotcl r0
+ bsr LOCAL(divx3)
+ div1 r5,r4
+ .endr
+ mov.l @r15+,r5
+ mov.l @r15+,r4
+ jmp @r1
+ rotcl r0
+ ENDFUNC(GLOBAL(udivsi3_i4i))
+
+ .global GLOBAL(sdivsi3_i4i)
+GLOBAL(sdivsi3_i4i):
+ mov.l r4,@-r15
+ cmp/pz r5
+ mov.l r5,@-r15
+ bt/s LOCAL(pos_divisor)
+ cmp/pz r4
+ neg r5,r5
+ extu.w r5,r0
+ bt/s LOCAL(neg_result)
+ cmp/eq r5,r0
+ neg r4,r4
+LOCAL(pos_result):
+ swap.w r4,r0
+ bra LOCAL(sdiv_check_divisor)
+ sts pr,r1
+LOCAL(pos_divisor):
+ extu.w r5,r0
+ bt/s LOCAL(pos_result)
+ cmp/eq r5,r0
+ neg r4,r4
+LOCAL(neg_result):
+ mova LOCAL(negate_result),r0
+ ;
+ mov r0,r1
+ swap.w r4,r0
+ lds r2,macl
+ sts pr,r2
+LOCAL(sdiv_check_divisor):
+ shlr16 r4
+ bf/s LOCAL(sdiv_large_divisor)
+ div0u
+ bra LOCAL(sdiv_small_divisor)
+ shll16 r5
+ .balign 4
+LOCAL(negate_result):
+ neg r0,r0
+ jmp @r2
+ sts macl,r2
+ ENDFUNC(GLOBAL(sdivsi3_i4i))
+#endif /* !__SH_FPU_DOUBLE__ */
+#endif /* L_udivsi3_i4i */
+
+#ifdef L_sdivsi3_i4i
+#if defined (__SH_FPU_DOUBLE__) || defined (__SH4_SINGLE_ONLY__)
+/* 48 bytes, 45 cycles on sh4-200 */
+!! args in r4 and r5, result in r0, clobber r1
+
+ .global GLOBAL(sdivsi3_i4i)
+ FUNC(GLOBAL(sdivsi3_i4i))
+GLOBAL(sdivsi3_i4i):
+ sts.l fpscr,@-r15
+ sts fpul,r1
+ mova L1,r0
+ lds.l @r0+,fpscr
+ lds r4,fpul
+#ifdef FMOVD_WORKS
+ fmov.d dr0,@-r15
+ float fpul,dr0
+ lds r5,fpul
+ fmov.d dr2,@-r15
+#else
+ fmov.s DR01,@-r15
+ fmov.s DR00,@-r15
+ float fpul,dr0
+ lds r5,fpul
+ fmov.s DR21,@-r15
+ fmov.s DR20,@-r15
+#endif
+ float fpul,dr2
+ fdiv dr2,dr0
+#ifdef FMOVD_WORKS
+ fmov.d @r15+,dr2
+#else
+ fmov.s @r15+,DR20
+ fmov.s @r15+,DR21
+#endif
+ ftrc dr0,fpul
+#ifdef FMOVD_WORKS
+ fmov.d @r15+,dr0
+#else
+ fmov.s @r15+,DR00
+ fmov.s @r15+,DR01
+#endif
+ lds.l @r15+,fpscr
+ sts fpul,r0
+ rts
+ lds r1,fpul
+
+ .p2align 2
+L1:
+#ifndef FMOVD_WORKS
+ .long 0x80000
+#else
+ .long 0x180000
+#endif
+
+ ENDFUNC(GLOBAL(sdivsi3_i4i))
+#endif /* __SH_FPU_DOUBLE__ */
+#endif /* L_sdivsi3_i4i */
diff --git a/gcc/config/sh/lib1funcs.asm b/gcc/config/sh/lib1funcs.asm
index 07292812abc..a815c3619e9 100644
--- a/gcc/config/sh/lib1funcs.asm
+++ b/gcc/config/sh/lib1funcs.asm
@@ -38,31 +38,7 @@ Boston, MA 02110-1301, USA. */
ELF local label prefixes by J"orn Rennecke
amylaar@cygnus.com */
-#ifdef __ELF__
-#define LOCAL(X) .L_##X
-#define FUNC(X) .type X,@function
-#define HIDDEN_FUNC(X) FUNC(X); .hidden X
-#define HIDDEN_ALIAS(X,Y) ALIAS (X,Y); .hidden GLOBAL(X)
-#define ENDFUNC0(X) .Lfe_##X: .size X,.Lfe_##X-X
-#define ENDFUNC(X) ENDFUNC0(X)
-#else
-#define LOCAL(X) L_##X
-#define FUNC(X)
-#define HIDDEN_FUNC(X)
-#define HIDDEN_ALIAS(X,Y) ALIAS (X,Y)
-#define ENDFUNC(X)
-#endif
-
-#define CONCAT(A,B) A##B
-#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)
-
-#ifdef __SH2A__
-#undef FMOVD_WORKS
-#define FMOVD_WORKS
-#endif
+#include "lib1funcs.h"
#if ! __SH5__
#ifdef L_ashiftrt
@@ -1375,13 +1351,8 @@ GLOBAL(udivsi3_i4):
#ifdef FMOVD_WORKS
fmov.d @r0+,dr4
#else
-#ifdef __LITTLE_ENDIAN__
- fmov.s @r0+,fr5
- fmov.s @r0,fr4
-#else
- fmov.s @r0+,fr4
- fmov.s @r0,fr5
-#endif
+ fmov.s @r0+,DR40
+ fmov.s @r0,DR41
#endif
float fpul,dr0
xor r1,r5
@@ -1444,13 +1415,8 @@ GLOBAL(udivsi3_i4):
#ifdef FMOVD_WORKS
fmov.d @r0+,dr4
#else
-#ifdef __LITTLE_ENDIAN__
- fmov.s @r0+,fr5
- fmov.s @r0,fr4
-#else
- fmov.s @r0+,fr4
- fmov.s @r0,fr5
-#endif
+ fmov.s @r0+,DR40
+ fmov.s @r0,DR41
#endif
float fpul,dr0
xor r1,r5
diff --git a/gcc/config/sh/lib1funcs.h b/gcc/config/sh/lib1funcs.h
new file mode 100644
index 00000000000..566f3a5fc96
--- /dev/null
+++ b/gcc/config/sh/lib1funcs.h
@@ -0,0 +1,69 @@
+/* Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+ 2004, 2005, 2006
+ Free Software Foundation, Inc.
+
+This file is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 2, or (at your option) any
+later version.
+
+In addition to the permissions in the GNU General Public License, the
+Free Software Foundation gives you unlimited permission to link the
+compiled version of this file into combinations with other programs,
+and to distribute those combinations without any restriction coming
+from the use of this file. (The General Public License restrictions
+do apply in other respects; for example, they cover modification of
+the file, and distribution when not linked into a combine
+executable.)
+
+This file 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 Free Software Foundation, 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA. */
+
+#ifdef __ELF__
+#define LOCAL(X) .L_##X
+#define FUNC(X) .type X,@function
+#define HIDDEN_FUNC(X) FUNC(X); .hidden X
+#define HIDDEN_ALIAS(X,Y) ALIAS (X,Y); .hidden GLOBAL(X)
+#define ENDFUNC0(X) .Lfe_##X: .size X,.Lfe_##X-X
+#define ENDFUNC(X) ENDFUNC0(X)
+#else
+#define LOCAL(X) L_##X
+#define FUNC(X)
+#define HIDDEN_FUNC(X)
+#define HIDDEN_ALIAS(X,Y) ALIAS (X,Y)
+#define ENDFUNC(X)
+#endif
+
+#define CONCAT(A,B) A##B
+#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)
+
+#ifdef __SH2A__
+#undef FMOVD_WORKS
+#define FMOVD_WORKS
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define DR00 fr1
+#define DR01 fr0
+#define DR20 fr3
+#define DR21 fr2
+#define DR40 fr5
+#define DR41 fr4
+#else /* !__LITTLE_ENDIAN__ */
+#define DR00 fr0
+#define DR01 fr1
+#define DR20 fr2
+#define DR21 fr3
+#define DR40 fr4
+#define DR41 fr5
+#endif /* !__LITTLE_ENDIAN__ */
diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h
index c61c357ec36..272d9e57eb6 100644
--- a/gcc/config/sh/sh.h
+++ b/gcc/config/sh/sh.h
@@ -631,7 +631,7 @@ do { \
|| (TARGET_HARD_SH4 && TARGET_SH2E) \
|| (TARGET_SHCOMPACT && TARGET_FPU_ANY))) \
sh_div_strategy = SH_DIV_CALL_FP; \
- else if (! strcmp (sh_div_str, "call-table") && TARGET_SH3) \
+ else if (! strcmp (sh_div_str, "call-table") && TARGET_SH2) \
sh_div_strategy = SH_DIV_CALL_TABLE; \
else \
/* Pick one that makes most sense for the target in general. \
@@ -651,6 +651,8 @@ do { \
sh_div_strategy = SH_DIV_CALL_FP; \
/* SH1 .. SH3 cores often go into small-footprint systems, so \
default to the smallest implementation available. */ \
+ else if (TARGET_SH2) /* ??? EXPERIMENTAL */ \
+ sh_div_strategy = SH_DIV_CALL_TABLE; \
else \
sh_div_strategy = SH_DIV_CALL_DIV1; \
} \
diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md
index 0c9ab44d385..73f64ce704e 100644
--- a/gcc/config/sh/sh.md
+++ b/gcc/config/sh/sh.md
@@ -1094,6 +1094,8 @@
"(HARD_REGNO_NREGS (REGNO (operands[0]), GET_MODE (operands[2]))
<= HARD_REGNO_NREGS (REGNO (operands[0]), GET_MODE (operands[0])))
&& peep2_reg_dead_p (3, operands[0]) && peep2_reg_dead_p (3, operands[2])
+ && ! FIND_REG_INC_NOTE (peep2_next_insn (2), operands[0])
+ && ! FIND_REG_INC_NOTE (peep2_next_insn (2), operands[2])
&& ! reg_overlap_mentioned_p (operands[0], operands[3])
&& ! reg_overlap_mentioned_p (operands[2], operands[0])
&& ! reg_overlap_mentioned_p (operands[0], operands[1])
diff --git a/gcc/config/sh/symbian.c b/gcc/config/sh/symbian.c
index 8568f32f72d..4836d9b4e64 100644
--- a/gcc/config/sh/symbian.c
+++ b/gcc/config/sh/symbian.c
@@ -233,7 +233,7 @@ sh_symbian_mark_dllexport (tree decl)
unit which has included the header in order to ensure argument
correctness. */
oldname += strlen (DLL_IMPORT_PREFIX);
- DECL_NON_ADDR_CONST_P (decl) = 0;
+ DECL_DLLIMPORT_P (decl) = 0;
}
else if (sh_symbian_dllexport_name_p (oldname))
return; /* Already done. */
@@ -309,7 +309,7 @@ sh_symbian_encode_section_info (tree decl, rtx rtl, int first)
/* It might be that DECL has already been marked as dllimport, but a
subsequent definition nullified that. The attribute is gone but
DECL_RTL still has (DLL_IMPORT_PREFIX) prefixed. We need to remove
- that. Ditto for the DECL_NON_ADDR_CONST_P flag. */
+ that. Ditto for the DECL_DLLIMPORT_P flag. */
else if ( (TREE_CODE (decl) == FUNCTION_DECL
|| TREE_CODE (decl) == VAR_DECL)
&& DECL_RTL (decl) != NULL_RTX
@@ -330,7 +330,7 @@ sh_symbian_encode_section_info (tree decl, rtx rtl, int first)
XEXP (DECL_RTL (decl), 0) = newrtl;
- DECL_NON_ADDR_CONST_P (decl) = 0;
+ DECL_DLLIMPORT_P (decl) = 0;
}
}
diff --git a/gcc/config/sh/t-elf b/gcc/config/sh/t-elf
index 9d9454a7221..333efb54e09 100644
--- a/gcc/config/sh/t-elf
+++ b/gcc/config/sh/t-elf
@@ -1,5 +1,5 @@
EXTRA_MULTILIB_PARTS= crt1.o crti.o crtn.o \
- crtbegin.o crtend.o crtbeginS.o crtendS.o $(IC_EXTRA_PARTS)
+ crtbegin.o crtend.o crtbeginS.o crtendS.o $(IC_EXTRA_PARTS) $(OPT_EXTRA_PARTS)
# Compile crtbeginS.o and crtendS.o with pic.
CRTSTUFF_T_CFLAGS_S = -fPIC
diff --git a/gcc/config/sh/t-sh b/gcc/config/sh/t-sh
index 1efe67009e2..c81cc3fd020 100644
--- a/gcc/config/sh/t-sh
+++ b/gcc/config/sh/t-sh
@@ -76,7 +76,8 @@ gt-sh.h : s-gtype ; @true
IC_EXTRA_PARTS= libic_invalidate_array_4-100.a libic_invalidate_array_4-200.a \
libic_invalidate_array_4a.a
-EXTRA_MULTILIB_PARTS= $(IC_EXTRA_PARTS)
+OPT_EXTRA_PARTS= libgcc-Os-4-200.a
+EXTRA_MULTILIB_PARTS= $(IC_EXTRA_PARTS) $(OPT_EXTRA_PARTS)
$(T)ic_invalidate_array_4-100.o: $(srcdir)/config/sh/lib1funcs.asm $(GCC_PASSES)
$(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -c -o $(T)ic_invalidate_array_4-100.o -DL_ic_invalidate_array -DWAYS=1 -DWAY_SIZE=0x2000 -x assembler-with-cpp $(srcdir)/config/sh/lib1funcs.asm
@@ -93,6 +94,13 @@ $(T)ic_invalidate_array_4a.o: $(srcdir)/config/sh/lib1funcs.asm $(GCC_PASSES)
$(T)libic_invalidate_array_4a.a: $(T)ic_invalidate_array_4a.o $(GCC_PASSES)
$(AR_CREATE_FOR_TARGET) $(T)libic_invalidate_array_4a.a $(T)ic_invalidate_array_4a.o
+$(T)sdivsi3_i4i-Os-4-200.o: $(srcdir)/config/sh/lib1funcs-Os-4-200.asm $(GCC_PASSES)
+ $(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -c -o $@ -DL_sdivsi3_i4i -x assembler-with-cpp $<
+$(T)udivsi3_i4i-Os-4-200.o: $(srcdir)/config/sh/lib1funcs-Os-4-200.asm $(GCC_PASSES)
+ $(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -c -o $@ -DL_udivsi3_i4i -x assembler-with-cpp $<
+$(T)libgcc-Os-4-200.a: $(T)sdivsi3_i4i-Os-4-200.o $(T)udivsi3_i4i-Os-4-200.o $(GCC_PASSES)
+ $(AR_CREATE_FOR_TARGET) $@ $(T)sdivsi3_i4i-Os-4-200.o $(T)udivsi3_i4i-Os-4-200.o
+
# Local Variables:
# mode: Makefile
# End:
diff --git a/gcc/config/sh/t-superh b/gcc/config/sh/t-superh
index 875f7529f24..429cec999e8 100644
--- a/gcc/config/sh/t-superh
+++ b/gcc/config/sh/t-superh
@@ -1,6 +1,6 @@
EXTRA_MULTILIB_PARTS= crt1.o crti.o crtn.o \
crtbegin.o crtend.o crtbeginS.o crtendS.o \
- crt1-mmu.o gcrt1-mmu.o gcrt1.o $(IC_EXTRA_PARTS)
+ crt1-mmu.o gcrt1-mmu.o gcrt1.o $(IC_EXTRA_PARTS) $(OPT_EXTRA_PARTS)
# Compile crt1-mmu.o as crt1.o with -DMMU_SUPPORT
$(T)crt1-mmu.o: $(srcdir)/config/sh/crt1.asm $(GCC_PASSES)
diff --git a/gcc/config/sh/t-symbian b/gcc/config/sh/t-symbian
index 494029fabfa..1d15d59c059 100644
--- a/gcc/config/sh/t-symbian
+++ b/gcc/config/sh/t-symbian
@@ -1,3 +1,7 @@
+sh-c.o: $(srcdir)/config/sh/sh-c.c \
+ $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(TM_H) $(TM_P_H) coretypes.h
+ $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(srcdir)/config/sh/sh-c.c
+
LIB1ASMSRC = sh/lib1funcs.asm
LIB1ASMFUNCS = _ashiftrt _ashiftrt_n _ashiftlt _lshiftrt _movstr \
_movstr_i4 _mulsi3 _sdivsi3 _sdivsi3_i4 _udivsi3 _udivsi3_i4 _set_fpscr \
diff --git a/gcc/config/soft-fp/README b/gcc/config/soft-fp/README
new file mode 100644
index 00000000000..870025cc53a
--- /dev/null
+++ b/gcc/config/soft-fp/README
@@ -0,0 +1,4 @@
+Except for t-softfp, the files in this directory are part of the GNU C
+Library, not part of GCC. As described at
+<http://gcc.gnu.org/codingconventions.html>, changes should be made to
+the GNU C Library and the changed files then imported into GCC.
diff --git a/gcc/config/soft-fp/adddf3.c b/gcc/config/soft-fp/adddf3.c
new file mode 100644
index 00000000000..24c03db0a64
--- /dev/null
+++ b/gcc/config/soft-fp/adddf3.c
@@ -0,0 +1,49 @@
+/* Software floating-point emulation.
+ Return a + b
+ Copyright (C) 1997,1999, 2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "double.h"
+
+DFtype __adddf3(DFtype a, DFtype b)
+{
+ FP_DECL_EX;
+ FP_DECL_D(A); FP_DECL_D(B); FP_DECL_D(R);
+ DFtype r;
+
+ FP_INIT_ROUNDMODE;
+ FP_UNPACK_SEMIRAW_D(A, a);
+ FP_UNPACK_SEMIRAW_D(B, b);
+ FP_ADD_D(R, A, B);
+ FP_PACK_SEMIRAW_D(r, R);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/addsf3.c b/gcc/config/soft-fp/addsf3.c
new file mode 100644
index 00000000000..b86991ee562
--- /dev/null
+++ b/gcc/config/soft-fp/addsf3.c
@@ -0,0 +1,50 @@
+/* Software floating-point emulation.
+ Return a + b
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "single.h"
+
+SFtype __addsf3(SFtype a, SFtype b)
+{
+ FP_DECL_EX;
+ FP_DECL_S(A); FP_DECL_S(B); FP_DECL_S(R);
+ SFtype r;
+
+ FP_INIT_ROUNDMODE;
+ FP_UNPACK_SEMIRAW_S(A, a);
+ FP_UNPACK_SEMIRAW_S(B, b);
+ FP_ADD_S(R, A, B);
+ FP_PACK_SEMIRAW_S(r, R);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
+
diff --git a/gcc/config/soft-fp/addtf3.c b/gcc/config/soft-fp/addtf3.c
new file mode 100644
index 00000000000..49b67f0ba96
--- /dev/null
+++ b/gcc/config/soft-fp/addtf3.c
@@ -0,0 +1,49 @@
+/* Software floating-point emulation.
+ Return a + b
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "quad.h"
+
+TFtype __addtf3(TFtype a, TFtype b)
+{
+ FP_DECL_EX;
+ FP_DECL_Q(A); FP_DECL_Q(B); FP_DECL_Q(R);
+ TFtype r;
+
+ FP_INIT_ROUNDMODE;
+ FP_UNPACK_SEMIRAW_Q(A, a);
+ FP_UNPACK_SEMIRAW_Q(B, b);
+ FP_ADD_Q(R, A, B);
+ FP_PACK_SEMIRAW_Q(r, R);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/divdf3.c b/gcc/config/soft-fp/divdf3.c
new file mode 100644
index 00000000000..c3bb0d247cb
--- /dev/null
+++ b/gcc/config/soft-fp/divdf3.c
@@ -0,0 +1,49 @@
+/* Software floating-point emulation.
+ Return a / b
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "double.h"
+
+DFtype __divdf3(DFtype a, DFtype b)
+{
+ FP_DECL_EX;
+ FP_DECL_D(A); FP_DECL_D(B); FP_DECL_D(R);
+ DFtype r;
+
+ FP_INIT_ROUNDMODE;
+ FP_UNPACK_D(A, a);
+ FP_UNPACK_D(B, b);
+ FP_DIV_D(R, A, B);
+ FP_PACK_D(r, R);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/divsf3.c b/gcc/config/soft-fp/divsf3.c
new file mode 100644
index 00000000000..176bb3c2cb3
--- /dev/null
+++ b/gcc/config/soft-fp/divsf3.c
@@ -0,0 +1,49 @@
+/* Software floating-point emulation.
+ Return a / b
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "single.h"
+
+SFtype __divsf3(SFtype a, SFtype b)
+{
+ FP_DECL_EX;
+ FP_DECL_S(A); FP_DECL_S(B); FP_DECL_S(R);
+ SFtype r;
+
+ FP_INIT_ROUNDMODE;
+ FP_UNPACK_S(A, a);
+ FP_UNPACK_S(B, b);
+ FP_DIV_S(R, A, B);
+ FP_PACK_S(r, R);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/divtf3.c b/gcc/config/soft-fp/divtf3.c
new file mode 100644
index 00000000000..916fbfe9748
--- /dev/null
+++ b/gcc/config/soft-fp/divtf3.c
@@ -0,0 +1,49 @@
+/* Software floating-point emulation.
+ Return a / b
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "quad.h"
+
+TFtype __divtf3(TFtype a, TFtype b)
+{
+ FP_DECL_EX;
+ FP_DECL_Q(A); FP_DECL_Q(B); FP_DECL_Q(R);
+ TFtype r;
+
+ FP_INIT_ROUNDMODE;
+ FP_UNPACK_Q(A, a);
+ FP_UNPACK_Q(B, b);
+ FP_DIV_Q(R, A, B);
+ FP_PACK_Q(r, R);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/double.h b/gcc/config/soft-fp/double.h
new file mode 100644
index 00000000000..c8f4420af85
--- /dev/null
+++ b/gcc/config/soft-fp/double.h
@@ -0,0 +1,264 @@
+/* Software floating-point emulation.
+ Definitions for IEEE Double Precision
+ Copyright (C) 1997,1998,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com),
+ Jakub Jelinek (jj@ultra.linux.cz),
+ David S. Miller (davem@redhat.com) and
+ Peter Maydell (pmaydell@chiark.greenend.org.uk).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#if _FP_W_TYPE_SIZE < 32
+#error "Here's a nickel kid. Go buy yourself a real computer."
+#endif
+
+#if _FP_W_TYPE_SIZE < 64
+#define _FP_FRACTBITS_D (2 * _FP_W_TYPE_SIZE)
+#else
+#define _FP_FRACTBITS_D _FP_W_TYPE_SIZE
+#endif
+
+#define _FP_FRACBITS_D 53
+#define _FP_FRACXBITS_D (_FP_FRACTBITS_D - _FP_FRACBITS_D)
+#define _FP_WFRACBITS_D (_FP_WORKBITS + _FP_FRACBITS_D)
+#define _FP_WFRACXBITS_D (_FP_FRACTBITS_D - _FP_WFRACBITS_D)
+#define _FP_EXPBITS_D 11
+#define _FP_EXPBIAS_D 1023
+#define _FP_EXPMAX_D 2047
+
+#define _FP_QNANBIT_D \
+ ((_FP_W_TYPE)1 << (_FP_FRACBITS_D-2) % _FP_W_TYPE_SIZE)
+#define _FP_QNANBIT_SH_D \
+ ((_FP_W_TYPE)1 << (_FP_FRACBITS_D-2+_FP_WORKBITS) % _FP_W_TYPE_SIZE)
+#define _FP_IMPLBIT_D \
+ ((_FP_W_TYPE)1 << (_FP_FRACBITS_D-1) % _FP_W_TYPE_SIZE)
+#define _FP_IMPLBIT_SH_D \
+ ((_FP_W_TYPE)1 << (_FP_FRACBITS_D-1+_FP_WORKBITS) % _FP_W_TYPE_SIZE)
+#define _FP_OVERFLOW_D \
+ ((_FP_W_TYPE)1 << _FP_WFRACBITS_D % _FP_W_TYPE_SIZE)
+
+typedef float DFtype __attribute__((mode(DF)));
+
+#if _FP_W_TYPE_SIZE < 64
+
+union _FP_UNION_D
+{
+ DFtype flt;
+ struct {
+#if __BYTE_ORDER == __BIG_ENDIAN
+ unsigned sign : 1;
+ unsigned exp : _FP_EXPBITS_D;
+ unsigned frac1 : _FP_FRACBITS_D - (_FP_IMPLBIT_D != 0) - _FP_W_TYPE_SIZE;
+ unsigned frac0 : _FP_W_TYPE_SIZE;
+#else
+ unsigned frac0 : _FP_W_TYPE_SIZE;
+ unsigned frac1 : _FP_FRACBITS_D - (_FP_IMPLBIT_D != 0) - _FP_W_TYPE_SIZE;
+ unsigned exp : _FP_EXPBITS_D;
+ unsigned sign : 1;
+#endif
+ } bits __attribute__((packed));
+};
+
+#define FP_DECL_D(X) _FP_DECL(2,X)
+#define FP_UNPACK_RAW_D(X,val) _FP_UNPACK_RAW_2(D,X,val)
+#define FP_UNPACK_RAW_DP(X,val) _FP_UNPACK_RAW_2_P(D,X,val)
+#define FP_PACK_RAW_D(val,X) _FP_PACK_RAW_2(D,val,X)
+#define FP_PACK_RAW_DP(val,X) \
+ do { \
+ if (!FP_INHIBIT_RESULTS) \
+ _FP_PACK_RAW_2_P(D,val,X); \
+ } while (0)
+
+#define FP_UNPACK_D(X,val) \
+ do { \
+ _FP_UNPACK_RAW_2(D,X,val); \
+ _FP_UNPACK_CANONICAL(D,2,X); \
+ } while (0)
+
+#define FP_UNPACK_DP(X,val) \
+ do { \
+ _FP_UNPACK_RAW_2_P(D,X,val); \
+ _FP_UNPACK_CANONICAL(D,2,X); \
+ } while (0)
+
+#define FP_UNPACK_SEMIRAW_D(X,val) \
+ do { \
+ _FP_UNPACK_RAW_2(D,X,val); \
+ _FP_UNPACK_SEMIRAW(D,2,X); \
+ } while (0)
+
+#define FP_UNPACK_SEMIRAW_DP(X,val) \
+ do { \
+ _FP_UNPACK_RAW_2_P(D,X,val); \
+ _FP_UNPACK_SEMIRAW(D,2,X); \
+ } while (0)
+
+#define FP_PACK_D(val,X) \
+ do { \
+ _FP_PACK_CANONICAL(D,2,X); \
+ _FP_PACK_RAW_2(D,val,X); \
+ } while (0)
+
+#define FP_PACK_DP(val,X) \
+ do { \
+ _FP_PACK_CANONICAL(D,2,X); \
+ if (!FP_INHIBIT_RESULTS) \
+ _FP_PACK_RAW_2_P(D,val,X); \
+ } while (0)
+
+#define FP_PACK_SEMIRAW_D(val,X) \
+ do { \
+ _FP_PACK_SEMIRAW(D,2,X); \
+ _FP_PACK_RAW_2(D,val,X); \
+ } while (0)
+
+#define FP_PACK_SEMIRAW_DP(val,X) \
+ do { \
+ _FP_PACK_SEMIRAW(D,2,X); \
+ if (!FP_INHIBIT_RESULTS) \
+ _FP_PACK_RAW_2_P(D,val,X); \
+ } while (0)
+
+#define FP_ISSIGNAN_D(X) _FP_ISSIGNAN(D,2,X)
+#define FP_NEG_D(R,X) _FP_NEG(D,2,R,X)
+#define FP_ADD_D(R,X,Y) _FP_ADD(D,2,R,X,Y)
+#define FP_SUB_D(R,X,Y) _FP_SUB(D,2,R,X,Y)
+#define FP_MUL_D(R,X,Y) _FP_MUL(D,2,R,X,Y)
+#define FP_DIV_D(R,X,Y) _FP_DIV(D,2,R,X,Y)
+#define FP_SQRT_D(R,X) _FP_SQRT(D,2,R,X)
+#define _FP_SQRT_MEAT_D(R,S,T,X,Q) _FP_SQRT_MEAT_2(R,S,T,X,Q)
+
+#define FP_CMP_D(r,X,Y,un) _FP_CMP(D,2,r,X,Y,un)
+#define FP_CMP_EQ_D(r,X,Y) _FP_CMP_EQ(D,2,r,X,Y)
+#define FP_CMP_UNORD_D(r,X,Y) _FP_CMP_UNORD(D,2,r,X,Y)
+
+#define FP_TO_INT_D(r,X,rsz,rsg) _FP_TO_INT(D,2,r,X,rsz,rsg)
+#define FP_FROM_INT_D(X,r,rs,rt) _FP_FROM_INT(D,2,X,r,rs,rt)
+
+#define _FP_FRAC_HIGH_D(X) _FP_FRAC_HIGH_2(X)
+#define _FP_FRAC_HIGH_RAW_D(X) _FP_FRAC_HIGH_2(X)
+
+#else
+
+union _FP_UNION_D
+{
+ DFtype flt;
+ struct {
+#if __BYTE_ORDER == __BIG_ENDIAN
+ unsigned sign : 1;
+ unsigned exp : _FP_EXPBITS_D;
+ unsigned long frac : _FP_FRACBITS_D - (_FP_IMPLBIT_D != 0);
+#else
+ unsigned long frac : _FP_FRACBITS_D - (_FP_IMPLBIT_D != 0);
+ unsigned exp : _FP_EXPBITS_D;
+ unsigned sign : 1;
+#endif
+ } bits __attribute__((packed));
+};
+
+#define FP_DECL_D(X) _FP_DECL(1,X)
+#define FP_UNPACK_RAW_D(X,val) _FP_UNPACK_RAW_1(D,X,val)
+#define FP_UNPACK_RAW_DP(X,val) _FP_UNPACK_RAW_1_P(D,X,val)
+#define FP_PACK_RAW_D(val,X) _FP_PACK_RAW_1(D,val,X)
+#define FP_PACK_RAW_DP(val,X) \
+ do { \
+ if (!FP_INHIBIT_RESULTS) \
+ _FP_PACK_RAW_1_P(D,val,X); \
+ } while (0)
+
+#define FP_UNPACK_D(X,val) \
+ do { \
+ _FP_UNPACK_RAW_1(D,X,val); \
+ _FP_UNPACK_CANONICAL(D,1,X); \
+ } while (0)
+
+#define FP_UNPACK_DP(X,val) \
+ do { \
+ _FP_UNPACK_RAW_1_P(D,X,val); \
+ _FP_UNPACK_CANONICAL(D,1,X); \
+ } while (0)
+
+#define FP_UNPACK_SEMIRAW_D(X,val) \
+ do { \
+ _FP_UNPACK_RAW_2(1,X,val); \
+ _FP_UNPACK_SEMIRAW(D,1,X); \
+ } while (0)
+
+#define FP_UNPACK_SEMIRAW_DP(X,val) \
+ do { \
+ _FP_UNPACK_RAW_2_P(1,X,val); \
+ _FP_UNPACK_SEMIRAW(D,1,X); \
+ } while (0)
+
+#define FP_PACK_D(val,X) \
+ do { \
+ _FP_PACK_CANONICAL(D,1,X); \
+ _FP_PACK_RAW_1(D,val,X); \
+ } while (0)
+
+#define FP_PACK_DP(val,X) \
+ do { \
+ _FP_PACK_CANONICAL(D,1,X); \
+ if (!FP_INHIBIT_RESULTS) \
+ _FP_PACK_RAW_1_P(D,val,X); \
+ } while (0)
+
+#define FP_PACK_SEMIRAW_D(val,X) \
+ do { \
+ _FP_PACK_SEMIRAW(D,1,X); \
+ _FP_PACK_RAW_1(D,val,X); \
+ } while (0)
+
+#define FP_PACK_SEMIRAW_DP(val,X) \
+ do { \
+ _FP_PACK_SEMIRAW(D,1,X); \
+ if (!FP_INHIBIT_RESULTS) \
+ _FP_PACK_RAW_1_P(D,val,X); \
+ } while (0)
+
+#define FP_ISSIGNAN_D(X) _FP_ISSIGNAN(D,1,X)
+#define FP_NEG_D(R,X) _FP_NEG(D,1,R,X)
+#define FP_ADD_D(R,X,Y) _FP_ADD(D,1,R,X,Y)
+#define FP_SUB_D(R,X,Y) _FP_SUB(D,1,R,X,Y)
+#define FP_MUL_D(R,X,Y) _FP_MUL(D,1,R,X,Y)
+#define FP_DIV_D(R,X,Y) _FP_DIV(D,1,R,X,Y)
+#define FP_SQRT_D(R,X) _FP_SQRT(D,1,R,X)
+#define _FP_SQRT_MEAT_D(R,S,T,X,Q) _FP_SQRT_MEAT_1(R,S,T,X,Q)
+
+/* The implementation of _FP_MUL_D and _FP_DIV_D should be chosen by
+ the target machine. */
+
+#define FP_CMP_D(r,X,Y,un) _FP_CMP(D,1,r,X,Y,un)
+#define FP_CMP_EQ_D(r,X,Y) _FP_CMP_EQ(D,1,r,X,Y)
+#define FP_CMP_UNORD_D(r,X,Y) _FP_CMP_UNORD(D,1,r,X,Y)
+
+#define FP_TO_INT_D(r,X,rsz,rsg) _FP_TO_INT(D,1,r,X,rsz,rsg)
+#define FP_FROM_INT_D(X,r,rs,rt) _FP_FROM_INT(D,1,X,r,rs,rt)
+
+#define _FP_FRAC_HIGH_D(X) _FP_FRAC_HIGH_1(X)
+#define _FP_FRAC_HIGH_RAW_D(X) _FP_FRAC_HIGH_1(X)
+
+#endif /* W_TYPE_SIZE < 64 */
diff --git a/gcc/config/soft-fp/eqdf2.c b/gcc/config/soft-fp/eqdf2.c
new file mode 100644
index 00000000000..efa769e986d
--- /dev/null
+++ b/gcc/config/soft-fp/eqdf2.c
@@ -0,0 +1,51 @@
+/* Software floating-point emulation.
+ Return 0 iff a == b, 1 otherwise
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "double.h"
+
+int __eqdf2(DFtype a, DFtype b)
+{
+ FP_DECL_EX;
+ FP_DECL_D(A); FP_DECL_D(B);
+ int r;
+
+ FP_UNPACK_RAW_D(A, a);
+ FP_UNPACK_RAW_D(B, b);
+ FP_CMP_EQ_D(r, A, B);
+ if (r && (FP_ISSIGNAN_D(A) || FP_ISSIGNAN_D(B)))
+ FP_SET_EXCEPTION(FP_EX_INVALID);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
+
+strong_alias(__eqdf2, __nedf2);
diff --git a/gcc/config/soft-fp/eqsf2.c b/gcc/config/soft-fp/eqsf2.c
new file mode 100644
index 00000000000..7e01c01d2f4
--- /dev/null
+++ b/gcc/config/soft-fp/eqsf2.c
@@ -0,0 +1,51 @@
+/* Software floating-point emulation.
+ Return 0 iff a == b, 1 otherwise
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "single.h"
+
+int __eqsf2(SFtype a, SFtype b)
+{
+ FP_DECL_EX;
+ FP_DECL_S(A); FP_DECL_S(B);
+ int r;
+
+ FP_UNPACK_RAW_S(A, a);
+ FP_UNPACK_RAW_S(B, b);
+ FP_CMP_EQ_S(r, A, B);
+ if (r && (FP_ISSIGNAN_S(A) || FP_ISSIGNAN_S(B)))
+ FP_SET_EXCEPTION(FP_EX_INVALID);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
+
+strong_alias(__eqsf2, __nesf2);
diff --git a/gcc/config/soft-fp/eqtf2.c b/gcc/config/soft-fp/eqtf2.c
new file mode 100644
index 00000000000..fd6ffd1ebef
--- /dev/null
+++ b/gcc/config/soft-fp/eqtf2.c
@@ -0,0 +1,51 @@
+/* Software floating-point emulation.
+ Return 0 iff a == b, 1 otherwise
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "quad.h"
+
+int __eqtf2(TFtype a, TFtype b)
+{
+ FP_DECL_EX;
+ FP_DECL_Q(A); FP_DECL_Q(B);
+ int r;
+
+ FP_UNPACK_RAW_Q(A, a);
+ FP_UNPACK_RAW_Q(B, b);
+ FP_CMP_EQ_Q(r, A, B);
+ if (r && (FP_ISSIGNAN_Q(A) || FP_ISSIGNAN_Q(B)))
+ FP_SET_EXCEPTION(FP_EX_INVALID);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
+
+strong_alias(__eqtf2, __netf2);
diff --git a/gcc/config/soft-fp/extenddftf2.c b/gcc/config/soft-fp/extenddftf2.c
new file mode 100644
index 00000000000..4101639a947
--- /dev/null
+++ b/gcc/config/soft-fp/extenddftf2.c
@@ -0,0 +1,54 @@
+/* Software floating-point emulation.
+ Return a converted to IEEE quad
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "double.h"
+#include "quad.h"
+
+TFtype __extenddftf2(DFtype a)
+{
+ FP_DECL_EX;
+ FP_DECL_D(A);
+ FP_DECL_Q(R);
+ TFtype r;
+
+ FP_INIT_ROUNDMODE;
+ FP_UNPACK_RAW_D(A, a);
+#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+ FP_EXTEND(Q,D,4,2,R,A);
+#else
+ FP_EXTEND(Q,D,2,1,R,A);
+#endif
+ FP_PACK_RAW_Q(r, R);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/extended.h b/gcc/config/soft-fp/extended.h
new file mode 100644
index 00000000000..bbf39429e7f
--- /dev/null
+++ b/gcc/config/soft-fp/extended.h
@@ -0,0 +1,453 @@
+/* Software floating-point emulation.
+ Definitions for IEEE Extended Precision.
+ Copyright (C) 1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#if _FP_W_TYPE_SIZE < 32
+#error "Here's a nickel, kid. Go buy yourself a real computer."
+#endif
+
+#if _FP_W_TYPE_SIZE < 64
+#define _FP_FRACTBITS_E (4*_FP_W_TYPE_SIZE)
+#else
+#define _FP_FRACTBITS_E (2*_FP_W_TYPE_SIZE)
+#endif
+
+#define _FP_FRACBITS_E 64
+#define _FP_FRACXBITS_E (_FP_FRACTBITS_E - _FP_FRACBITS_E)
+#define _FP_WFRACBITS_E (_FP_WORKBITS + _FP_FRACBITS_E)
+#define _FP_WFRACXBITS_E (_FP_FRACTBITS_E - _FP_WFRACBITS_E)
+#define _FP_EXPBITS_E 15
+#define _FP_EXPBIAS_E 16383
+#define _FP_EXPMAX_E 32767
+
+#define _FP_QNANBIT_E \
+ ((_FP_W_TYPE)1 << (_FP_FRACBITS_E-2) % _FP_W_TYPE_SIZE)
+#define _FP_QNANBIT_SH_E \
+ ((_FP_W_TYPE)1 << (_FP_FRACBITS_E-2+_FP_WORKBITS) % _FP_W_TYPE_SIZE)
+#define _FP_IMPLBIT_E \
+ ((_FP_W_TYPE)1 << (_FP_FRACBITS_E-1) % _FP_W_TYPE_SIZE)
+#define _FP_IMPLBIT_SH_E \
+ ((_FP_W_TYPE)1 << (_FP_FRACBITS_E-1+_FP_WORKBITS) % _FP_W_TYPE_SIZE)
+#define _FP_OVERFLOW_E \
+ ((_FP_W_TYPE)1 << (_FP_WFRACBITS_E % _FP_W_TYPE_SIZE))
+
+typedef float XFtype __attribute__((mode(XF)));
+
+#if _FP_W_TYPE_SIZE < 64
+
+union _FP_UNION_E
+{
+ XFtype flt;
+ struct
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN
+ unsigned long pad1 : _FP_W_TYPE_SIZE;
+ unsigned long pad2 : (_FP_W_TYPE_SIZE - 1 - _FP_EXPBITS_E);
+ unsigned long sign : 1;
+ unsigned long exp : _FP_EXPBITS_E;
+ unsigned long frac1 : _FP_W_TYPE_SIZE;
+ unsigned long frac0 : _FP_W_TYPE_SIZE;
+#else
+ unsigned long frac0 : _FP_W_TYPE_SIZE;
+ unsigned long frac1 : _FP_W_TYPE_SIZE;
+ unsigned exp : _FP_EXPBITS_E;
+ unsigned sign : 1;
+#endif /* not bigendian */
+ } bits __attribute__((packed));
+};
+
+
+#define FP_DECL_E(X) _FP_DECL(4,X)
+
+#define FP_UNPACK_RAW_E(X, val) \
+ do { \
+ union _FP_UNION_E _flo; _flo.flt = (val); \
+ \
+ X##_f[2] = 0; X##_f[3] = 0; \
+ X##_f[0] = _flo.bits.frac0; \
+ X##_f[1] = _flo.bits.frac1; \
+ X##_e = _flo.bits.exp; \
+ X##_s = _flo.bits.sign; \
+ if (!X##_e && (X##_f[1] || X##_f[0]) \
+ && !(X##_f[1] & _FP_IMPLBIT_E)) \
+ { \
+ X##_e++; \
+ FP_SET_EXCEPTION(FP_EX_DENORM); \
+ } \
+ } while (0)
+
+#define FP_UNPACK_RAW_EP(X, val) \
+ do { \
+ union _FP_UNION_E *_flo = \
+ (union _FP_UNION_E *)(val); \
+ \
+ X##_f[2] = 0; X##_f[3] = 0; \
+ X##_f[0] = _flo->bits.frac0; \
+ X##_f[1] = _flo->bits.frac1; \
+ X##_e = _flo->bits.exp; \
+ X##_s = _flo->bits.sign; \
+ if (!X##_e && (X##_f[1] || X##_f[0]) \
+ && !(X##_f[1] & _FP_IMPLBIT_E)) \
+ { \
+ X##_e++; \
+ FP_SET_EXCEPTION(FP_EX_DENORM); \
+ } \
+ } while (0)
+
+#define FP_PACK_RAW_E(val, X) \
+ do { \
+ union _FP_UNION_E _flo; \
+ \
+ if (X##_e) X##_f[1] |= _FP_IMPLBIT_E; \
+ else X##_f[1] &= ~(_FP_IMPLBIT_E); \
+ _flo.bits.frac0 = X##_f[0]; \
+ _flo.bits.frac1 = X##_f[1]; \
+ _flo.bits.exp = X##_e; \
+ _flo.bits.sign = X##_s; \
+ \
+ (val) = _flo.flt; \
+ } while (0)
+
+#define FP_PACK_RAW_EP(val, X) \
+ do { \
+ if (!FP_INHIBIT_RESULTS) \
+ { \
+ union _FP_UNION_E *_flo = \
+ (union _FP_UNION_E *)(val); \
+ \
+ if (X##_e) X##_f[1] |= _FP_IMPLBIT_E; \
+ else X##_f[1] &= ~(_FP_IMPLBIT_E); \
+ _flo->bits.frac0 = X##_f[0]; \
+ _flo->bits.frac1 = X##_f[1]; \
+ _flo->bits.exp = X##_e; \
+ _flo->bits.sign = X##_s; \
+ } \
+ } while (0)
+
+#define FP_UNPACK_E(X,val) \
+ do { \
+ FP_UNPACK_RAW_E(X,val); \
+ _FP_UNPACK_CANONICAL(E,4,X); \
+ } while (0)
+
+#define FP_UNPACK_EP(X,val) \
+ do { \
+ FP_UNPACK_RAW_EP(X,val); \
+ _FP_UNPACK_CANONICAL(E,4,X); \
+ } while (0)
+
+#define FP_UNPACK_SEMIRAW_E(X,val) \
+ do { \
+ _FP_UNPACK_RAW_E(X,val); \
+ _FP_UNPACK_SEMIRAW(E,4,X); \
+ } while (0)
+
+#define FP_UNPACK_SEMIRAW_EP(X,val) \
+ do { \
+ _FP_UNPACK_RAW_EP(X,val); \
+ _FP_UNPACK_SEMIRAW(E,4,X); \
+ } while (0)
+
+#define FP_PACK_E(val,X) \
+ do { \
+ _FP_PACK_CANONICAL(E,4,X); \
+ FP_PACK_RAW_E(val,X); \
+ } while (0)
+
+#define FP_PACK_EP(val,X) \
+ do { \
+ _FP_PACK_CANONICAL(E,4,X); \
+ FP_PACK_RAW_EP(val,X); \
+ } while (0)
+
+#define FP_PACK_SEMIRAW_E(val,X) \
+ do { \
+ _FP_PACK_SEMIRAW(E,4,X); \
+ _FP_PACK_RAW_E(val,X); \
+ } while (0)
+
+#define FP_PACK_SEMIRAW_EP(val,X) \
+ do { \
+ _FP_PACK_SEMIRAW(E,4,X); \
+ _FP_PACK_RAW_EP(val,X); \
+ } while (0)
+
+#define FP_ISSIGNAN_E(X) _FP_ISSIGNAN(E,4,X)
+#define FP_NEG_E(R,X) _FP_NEG(E,4,R,X)
+#define FP_ADD_E(R,X,Y) _FP_ADD(E,4,R,X,Y)
+#define FP_SUB_E(R,X,Y) _FP_SUB(E,4,R,X,Y)
+#define FP_MUL_E(R,X,Y) _FP_MUL(E,4,R,X,Y)
+#define FP_DIV_E(R,X,Y) _FP_DIV(E,4,R,X,Y)
+#define FP_SQRT_E(R,X) _FP_SQRT(E,4,R,X)
+
+/*
+ * Square root algorithms:
+ * We have just one right now, maybe Newton approximation
+ * should be added for those machines where division is fast.
+ * This has special _E version because standard _4 square
+ * root would not work (it has to start normally with the
+ * second word and not the first), but as we have to do it
+ * anyway, we optimize it by doing most of the calculations
+ * in two UWtype registers instead of four.
+ */
+
+#define _FP_SQRT_MEAT_E(R, S, T, X, q) \
+ do { \
+ q = (_FP_W_TYPE)1 << (_FP_W_TYPE_SIZE - 1); \
+ _FP_FRAC_SRL_4(X, (_FP_WORKBITS)); \
+ while (q) \
+ { \
+ T##_f[1] = S##_f[1] + q; \
+ if (T##_f[1] <= X##_f[1]) \
+ { \
+ S##_f[1] = T##_f[1] + q; \
+ X##_f[1] -= T##_f[1]; \
+ R##_f[1] += q; \
+ } \
+ _FP_FRAC_SLL_2(X, 1); \
+ q >>= 1; \
+ } \
+ q = (_FP_W_TYPE)1 << (_FP_W_TYPE_SIZE - 1); \
+ while (q) \
+ { \
+ T##_f[0] = S##_f[0] + q; \
+ T##_f[1] = S##_f[1]; \
+ if (T##_f[1] < X##_f[1] || \
+ (T##_f[1] == X##_f[1] && \
+ T##_f[0] <= X##_f[0])) \
+ { \
+ S##_f[0] = T##_f[0] + q; \
+ S##_f[1] += (T##_f[0] > S##_f[0]); \
+ _FP_FRAC_DEC_2(X, T); \
+ R##_f[0] += q; \
+ } \
+ _FP_FRAC_SLL_2(X, 1); \
+ q >>= 1; \
+ } \
+ _FP_FRAC_SLL_4(R, (_FP_WORKBITS)); \
+ if (X##_f[0] | X##_f[1]) \
+ { \
+ if (S##_f[1] < X##_f[1] || \
+ (S##_f[1] == X##_f[1] && \
+ S##_f[0] < X##_f[0])) \
+ R##_f[0] |= _FP_WORK_ROUND; \
+ R##_f[0] |= _FP_WORK_STICKY; \
+ } \
+ } while (0)
+
+#define FP_CMP_E(r,X,Y,un) _FP_CMP(E,4,r,X,Y,un)
+#define FP_CMP_EQ_E(r,X,Y) _FP_CMP_EQ(E,4,r,X,Y)
+#define FP_CMP_UNORD_E(r,X,Y) _FP_CMP_UNORD(E,4,r,X,Y)
+
+#define FP_TO_INT_E(r,X,rsz,rsg) _FP_TO_INT(E,4,r,X,rsz,rsg)
+#define FP_FROM_INT_E(X,r,rs,rt) _FP_FROM_INT(E,4,X,r,rs,rt)
+
+#define _FP_FRAC_HIGH_E(X) (X##_f[2])
+#define _FP_FRAC_HIGH_RAW_E(X) (X##_f[1])
+
+#else /* not _FP_W_TYPE_SIZE < 64 */
+union _FP_UNION_E
+{
+ XFtype flt;
+ struct {
+#if __BYTE_ORDER == __BIG_ENDIAN
+ unsigned long pad : (_FP_W_TYPE_SIZE - 1 - _FP_EXPBITS_E);
+ unsigned sign : 1;
+ unsigned exp : _FP_EXPBITS_E;
+ unsigned long frac : _FP_W_TYPE_SIZE;
+#else
+ unsigned long frac : _FP_W_TYPE_SIZE;
+ unsigned exp : _FP_EXPBITS_E;
+ unsigned sign : 1;
+#endif
+ } bits;
+};
+
+#define FP_DECL_E(X) _FP_DECL(2,X)
+
+#define FP_UNPACK_RAW_E(X, val) \
+ do { \
+ union _FP_UNION_E _flo; _flo.flt = (val); \
+ \
+ X##_f0 = _flo.bits.frac; \
+ X##_f1 = 0; \
+ X##_e = _flo.bits.exp; \
+ X##_s = _flo.bits.sign; \
+ if (!X##_e && X##_f0 && !(X##_f0 & _FP_IMPLBIT_E)) \
+ { \
+ X##_e++; \
+ FP_SET_EXCEPTION(FP_EX_DENORM); \
+ } \
+ } while (0)
+
+#define FP_UNPACK_RAW_EP(X, val) \
+ do { \
+ union _FP_UNION_E *_flo = \
+ (union _FP_UNION_E *)(val); \
+ \
+ X##_f0 = _flo->bits.frac; \
+ X##_f1 = 0; \
+ X##_e = _flo->bits.exp; \
+ X##_s = _flo->bits.sign; \
+ if (!X##_e && X##_f0 && !(X##_f0 & _FP_IMPLBIT_E)) \
+ { \
+ X##_e++; \
+ FP_SET_EXCEPTION(FP_EX_DENORM); \
+ } \
+ } while (0)
+
+#define FP_PACK_RAW_E(val, X) \
+ do { \
+ union _FP_UNION_E _flo; \
+ \
+ if (X##_e) X##_f0 |= _FP_IMPLBIT_E; \
+ else X##_f0 &= ~(_FP_IMPLBIT_E); \
+ _flo.bits.frac = X##_f0; \
+ _flo.bits.exp = X##_e; \
+ _flo.bits.sign = X##_s; \
+ \
+ (val) = _flo.flt; \
+ } while (0)
+
+#define FP_PACK_RAW_EP(fs, val, X) \
+ do { \
+ if (!FP_INHIBIT_RESULTS) \
+ { \
+ union _FP_UNION_E *_flo = \
+ (union _FP_UNION_E *)(val); \
+ \
+ if (X##_e) X##_f0 |= _FP_IMPLBIT_E; \
+ else X##_f0 &= ~(_FP_IMPLBIT_E); \
+ _flo->bits.frac = X##_f0; \
+ _flo->bits.exp = X##_e; \
+ _flo->bits.sign = X##_s; \
+ } \
+ } while (0)
+
+
+#define FP_UNPACK_E(X,val) \
+ do { \
+ FP_UNPACK_RAW_E(X,val); \
+ _FP_UNPACK_CANONICAL(E,2,X); \
+ } while (0)
+
+#define FP_UNPACK_EP(X,val) \
+ do { \
+ FP_UNPACK_RAW_EP(X,val); \
+ _FP_UNPACK_CANONICAL(E,2,X); \
+ } while (0)
+
+#define FP_UNPACK_SEMIRAW_E(X,val) \
+ do { \
+ _FP_UNPACK_RAW_E(X,val); \
+ _FP_UNPACK_SEMIRAW(E,2,X); \
+ } while (0)
+
+#define FP_UNPACK_SEMIRAW_EP(X,val) \
+ do { \
+ _FP_UNPACK_RAW_EP(X,val); \
+ _FP_UNPACK_SEMIRAW(E,2,X); \
+ } while (0)
+
+#define FP_PACK_E(val,X) \
+ do { \
+ _FP_PACK_CANONICAL(E,2,X); \
+ FP_PACK_RAW_E(val,X); \
+ } while (0)
+
+#define FP_PACK_EP(val,X) \
+ do { \
+ _FP_PACK_CANONICAL(E,2,X); \
+ FP_PACK_RAW_EP(val,X); \
+ } while (0)
+
+#define FP_PACK_SEMIRAW_E(val,X) \
+ do { \
+ _FP_PACK_SEMIRAW(E,2,X); \
+ _FP_PACK_RAW_E(val,X); \
+ } while (0)
+
+#define FP_PACK_SEMIRAW_EP(val,X) \
+ do { \
+ _FP_PACK_SEMIRAW(E,2,X); \
+ _FP_PACK_RAW_EP(val,X); \
+ } while (0)
+
+#define FP_ISSIGNAN_E(X) _FP_ISSIGNAN(E,2,X)
+#define FP_NEG_E(R,X) _FP_NEG(E,2,R,X)
+#define FP_ADD_E(R,X,Y) _FP_ADD(E,2,R,X,Y)
+#define FP_SUB_E(R,X,Y) _FP_SUB(E,2,R,X,Y)
+#define FP_MUL_E(R,X,Y) _FP_MUL(E,2,R,X,Y)
+#define FP_DIV_E(R,X,Y) _FP_DIV(E,2,R,X,Y)
+#define FP_SQRT_E(R,X) _FP_SQRT(E,2,R,X)
+
+/*
+ * Square root algorithms:
+ * We have just one right now, maybe Newton approximation
+ * should be added for those machines where division is fast.
+ * We optimize it by doing most of the calculations
+ * in one UWtype registers instead of two, although we don't
+ * have to.
+ */
+#define _FP_SQRT_MEAT_E(R, S, T, X, q) \
+ do { \
+ q = (_FP_W_TYPE)1 << (_FP_W_TYPE_SIZE - 1); \
+ _FP_FRAC_SRL_2(X, (_FP_WORKBITS)); \
+ while (q) \
+ { \
+ T##_f0 = S##_f0 + q; \
+ if (T##_f0 <= X##_f0) \
+ { \
+ S##_f0 = T##_f0 + q; \
+ X##_f0 -= T##_f0; \
+ R##_f0 += q; \
+ } \
+ _FP_FRAC_SLL_1(X, 1); \
+ q >>= 1; \
+ } \
+ _FP_FRAC_SLL_2(R, (_FP_WORKBITS)); \
+ if (X##_f0) \
+ { \
+ if (S##_f0 < X##_f0) \
+ R##_f0 |= _FP_WORK_ROUND; \
+ R##_f0 |= _FP_WORK_STICKY; \
+ } \
+ } while (0)
+
+#define FP_CMP_E(r,X,Y,un) _FP_CMP(E,2,r,X,Y,un)
+#define FP_CMP_EQ_E(r,X,Y) _FP_CMP_EQ(E,2,r,X,Y)
+#define FP_CMP_UNORD_E(r,X,Y) _FP_CMP_UNORD(E,2,r,X,Y)
+
+#define FP_TO_INT_E(r,X,rsz,rsg) _FP_TO_INT(E,2,r,X,rsz,rsg)
+#define FP_FROM_INT_E(X,r,rs,rt) _FP_FROM_INT(E,2,X,r,rs,rt)
+
+#define _FP_FRAC_HIGH_E(X) (X##_f1)
+#define _FP_FRAC_HIGH_RAW_E(X) (X##_f0)
+
+#endif /* not _FP_W_TYPE_SIZE < 64 */
diff --git a/gcc/config/soft-fp/extendsfdf2.c b/gcc/config/soft-fp/extendsfdf2.c
new file mode 100644
index 00000000000..fba22d5a197
--- /dev/null
+++ b/gcc/config/soft-fp/extendsfdf2.c
@@ -0,0 +1,54 @@
+/* Software floating-point emulation.
+ Return a converted to IEEE double
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "single.h"
+#include "double.h"
+
+DFtype __extendsfdf2(SFtype a)
+{
+ FP_DECL_EX;
+ FP_DECL_S(A);
+ FP_DECL_D(R);
+ DFtype r;
+
+ FP_INIT_ROUNDMODE;
+ FP_UNPACK_RAW_S(A, a);
+#if _FP_W_TYPE_SIZE < _FP_FRACBITS_D
+ FP_EXTEND(D,S,2,1,R,A);
+#else
+ FP_EXTEND(D,S,1,1,R,A);
+#endif
+ FP_PACK_RAW_D(r, R);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/extendsftf2.c b/gcc/config/soft-fp/extendsftf2.c
new file mode 100644
index 00000000000..c43cf1edee5
--- /dev/null
+++ b/gcc/config/soft-fp/extendsftf2.c
@@ -0,0 +1,54 @@
+/* Software floating-point emulation.
+ Return a converted to IEEE quad
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "single.h"
+#include "quad.h"
+
+TFtype __extendsftf2(SFtype a)
+{
+ FP_DECL_EX;
+ FP_DECL_S(A);
+ FP_DECL_Q(R);
+ TFtype r;
+
+ FP_INIT_ROUNDMODE;
+ FP_UNPACK_RAW_S(A, a);
+#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+ FP_EXTEND(Q,S,4,1,R,A);
+#else
+ FP_EXTEND(Q,S,2,1,R,A);
+#endif
+ FP_PACK_RAW_Q(r, R);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/fixdfdi.c b/gcc/config/soft-fp/fixdfdi.c
new file mode 100644
index 00000000000..fdfe35af519
--- /dev/null
+++ b/gcc/config/soft-fp/fixdfdi.c
@@ -0,0 +1,46 @@
+/* Software floating-point emulation.
+ Convert a to 64bit signed integer
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "double.h"
+
+DItype __fixdfdi(DFtype a)
+{
+ FP_DECL_EX;
+ FP_DECL_D(A);
+ UDItype r;
+
+ FP_UNPACK_RAW_D(A, a);
+ FP_TO_INT_D(r, A, DI_BITS, 1);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/fixdfsi.c b/gcc/config/soft-fp/fixdfsi.c
new file mode 100644
index 00000000000..a05f3e39a5f
--- /dev/null
+++ b/gcc/config/soft-fp/fixdfsi.c
@@ -0,0 +1,46 @@
+/* Software floating-point emulation.
+ Convert a to 32bit signed integer
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "double.h"
+
+SItype __fixdfsi(DFtype a)
+{
+ FP_DECL_EX;
+ FP_DECL_D(A);
+ USItype r;
+
+ FP_UNPACK_RAW_D(A, a);
+ FP_TO_INT_D(r, A, SI_BITS, 1);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/fixsfdi.c b/gcc/config/soft-fp/fixsfdi.c
new file mode 100644
index 00000000000..384d9bdd536
--- /dev/null
+++ b/gcc/config/soft-fp/fixsfdi.c
@@ -0,0 +1,46 @@
+/* Software floating-point emulation.
+ Convert a to 64bit signed integer
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "single.h"
+
+DItype __fixsfdi(SFtype a)
+{
+ FP_DECL_EX;
+ FP_DECL_S(A);
+ UDItype r;
+
+ FP_UNPACK_RAW_S(A, a);
+ FP_TO_INT_S(r, A, DI_BITS, 1);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/fixsfsi.c b/gcc/config/soft-fp/fixsfsi.c
new file mode 100644
index 00000000000..1d40ed05df7
--- /dev/null
+++ b/gcc/config/soft-fp/fixsfsi.c
@@ -0,0 +1,46 @@
+/* Software floating-point emulation.
+ Convert a to 32bit signed integer
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "single.h"
+
+SItype __fixsfsi(SFtype a)
+{
+ FP_DECL_EX;
+ FP_DECL_S(A);
+ USItype r;
+
+ FP_UNPACK_RAW_S(A, a);
+ FP_TO_INT_S(r, A, SI_BITS, 1);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/fixtfdi.c b/gcc/config/soft-fp/fixtfdi.c
new file mode 100644
index 00000000000..ea10ce2dd3b
--- /dev/null
+++ b/gcc/config/soft-fp/fixtfdi.c
@@ -0,0 +1,46 @@
+/* Software floating-point emulation.
+ Convert a to 64bit signed integer
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "quad.h"
+
+DItype __fixtfdi(TFtype a)
+{
+ FP_DECL_EX;
+ FP_DECL_Q(A);
+ UDItype r;
+
+ FP_UNPACK_RAW_Q(A, a);
+ FP_TO_INT_Q(r, A, DI_BITS, 1);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/fixtfsi.c b/gcc/config/soft-fp/fixtfsi.c
new file mode 100644
index 00000000000..eb71038bc35
--- /dev/null
+++ b/gcc/config/soft-fp/fixtfsi.c
@@ -0,0 +1,46 @@
+/* Software floating-point emulation.
+ Convert a to 32bit signed integer
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "quad.h"
+
+SItype __fixtfsi(TFtype a)
+{
+ FP_DECL_EX;
+ FP_DECL_Q(A);
+ USItype r;
+
+ FP_UNPACK_RAW_Q(A, a);
+ FP_TO_INT_Q(r, A, SI_BITS, 1);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/fixunsdfdi.c b/gcc/config/soft-fp/fixunsdfdi.c
new file mode 100644
index 00000000000..d85198f1853
--- /dev/null
+++ b/gcc/config/soft-fp/fixunsdfdi.c
@@ -0,0 +1,46 @@
+/* Software floating-point emulation.
+ Convert a to 64bit unsigned integer
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "double.h"
+
+UDItype __fixunsdfdi(DFtype a)
+{
+ FP_DECL_EX;
+ FP_DECL_D(A);
+ UDItype r;
+
+ FP_UNPACK_RAW_D(A, a);
+ FP_TO_INT_D(r, A, DI_BITS, 0);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/fixunsdfsi.c b/gcc/config/soft-fp/fixunsdfsi.c
new file mode 100644
index 00000000000..492ffdea680
--- /dev/null
+++ b/gcc/config/soft-fp/fixunsdfsi.c
@@ -0,0 +1,46 @@
+/* Software floating-point emulation.
+ Convert a to 32bit unsigned integer
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "double.h"
+
+USItype __fixunsdfsi(DFtype a)
+{
+ FP_DECL_EX;
+ FP_DECL_D(A);
+ USItype r;
+
+ FP_UNPACK_RAW_D(A, a);
+ FP_TO_INT_D(r, A, SI_BITS, 0);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/fixunssfdi.c b/gcc/config/soft-fp/fixunssfdi.c
new file mode 100644
index 00000000000..54841538372
--- /dev/null
+++ b/gcc/config/soft-fp/fixunssfdi.c
@@ -0,0 +1,46 @@
+/* Software floating-point emulation.
+ Convert a to 64bit unsigned integer
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "single.h"
+
+UDItype __fixunssfdi(SFtype a)
+{
+ FP_DECL_EX;
+ FP_DECL_S(A);
+ UDItype r;
+
+ FP_UNPACK_RAW_S(A, a);
+ FP_TO_INT_S(r, A, DI_BITS, 0);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/fixunssfsi.c b/gcc/config/soft-fp/fixunssfsi.c
new file mode 100644
index 00000000000..ac9d4b9654f
--- /dev/null
+++ b/gcc/config/soft-fp/fixunssfsi.c
@@ -0,0 +1,46 @@
+/* Software floating-point emulation.
+ Convert a to 32bit unsigned integer
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "single.h"
+
+USItype __fixunssfsi(SFtype a)
+{
+ FP_DECL_EX;
+ FP_DECL_S(A);
+ USItype r;
+
+ FP_UNPACK_RAW_S(A, a);
+ FP_TO_INT_S(r, A, SI_BITS, 0);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/fixunstfdi.c b/gcc/config/soft-fp/fixunstfdi.c
new file mode 100644
index 00000000000..86f1fc85629
--- /dev/null
+++ b/gcc/config/soft-fp/fixunstfdi.c
@@ -0,0 +1,46 @@
+/* Software floating-point emulation.
+ Convert a to 64bit unsigned integer
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "quad.h"
+
+UDItype __fixunstfdi(TFtype a)
+{
+ FP_DECL_EX;
+ FP_DECL_Q(A);
+ UDItype r;
+
+ FP_UNPACK_RAW_Q(A, a);
+ FP_TO_INT_Q(r, A, DI_BITS, 0);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/fixunstfsi.c b/gcc/config/soft-fp/fixunstfsi.c
new file mode 100644
index 00000000000..e0335da4790
--- /dev/null
+++ b/gcc/config/soft-fp/fixunstfsi.c
@@ -0,0 +1,46 @@
+/* Software floating-point emulation.
+ Convert a to 32bit unsigned integer
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "quad.h"
+
+USItype __fixunstfsi(TFtype a)
+{
+ FP_DECL_EX;
+ FP_DECL_Q(A);
+ USItype r;
+
+ FP_UNPACK_RAW_Q(A, a);
+ FP_TO_INT_Q(r, A, SI_BITS, 0);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/floatdidf.c b/gcc/config/soft-fp/floatdidf.c
new file mode 100644
index 00000000000..21e9fb1899c
--- /dev/null
+++ b/gcc/config/soft-fp/floatdidf.c
@@ -0,0 +1,46 @@
+/* Software floating-point emulation.
+ Convert a 64bit signed integer to IEEE double
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "double.h"
+
+DFtype __floatdidf(DItype i)
+{
+ FP_DECL_EX;
+ FP_DECL_D(A);
+ DFtype a;
+
+ FP_FROM_INT_D(A, i, DI_BITS, UDItype);
+ FP_PACK_RAW_D(a, A);
+ FP_HANDLE_EXCEPTIONS;
+
+ return a;
+}
diff --git a/gcc/config/soft-fp/floatdisf.c b/gcc/config/soft-fp/floatdisf.c
new file mode 100644
index 00000000000..ee57915c3b8
--- /dev/null
+++ b/gcc/config/soft-fp/floatdisf.c
@@ -0,0 +1,46 @@
+/* Software floating-point emulation.
+ Convert a 64bit signed integer to IEEE single
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "single.h"
+
+SFtype __floatdisf(DItype i)
+{
+ FP_DECL_EX;
+ FP_DECL_S(A);
+ SFtype a;
+
+ FP_FROM_INT_S(A, i, DI_BITS, UDItype);
+ FP_PACK_RAW_S(a, A);
+ FP_HANDLE_EXCEPTIONS;
+
+ return a;
+}
diff --git a/gcc/config/soft-fp/floatditf.c b/gcc/config/soft-fp/floatditf.c
new file mode 100644
index 00000000000..564800bc05a
--- /dev/null
+++ b/gcc/config/soft-fp/floatditf.c
@@ -0,0 +1,46 @@
+/* Software floating-point emulation.
+ Convert a 64bit signed integer to IEEE quad
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "quad.h"
+
+TFtype __floatditf(DItype i)
+{
+ FP_DECL_EX;
+ FP_DECL_Q(A);
+ TFtype a;
+
+ FP_FROM_INT_Q(A, i, DI_BITS, UDItype);
+ FP_PACK_RAW_Q(a, A);
+ FP_HANDLE_EXCEPTIONS;
+
+ return a;
+}
diff --git a/gcc/config/soft-fp/floatsidf.c b/gcc/config/soft-fp/floatsidf.c
new file mode 100644
index 00000000000..b6d5f8d1d2a
--- /dev/null
+++ b/gcc/config/soft-fp/floatsidf.c
@@ -0,0 +1,46 @@
+/* Software floating-point emulation.
+ Convert a 32bit signed integer to IEEE double
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "double.h"
+
+DFtype __floatsidf(SItype i)
+{
+ FP_DECL_EX;
+ FP_DECL_D(A);
+ DFtype a;
+
+ FP_FROM_INT_D(A, i, SI_BITS, USItype);
+ FP_PACK_RAW_D(a, A);
+ FP_HANDLE_EXCEPTIONS;
+
+ return a;
+}
diff --git a/gcc/config/soft-fp/floatsisf.c b/gcc/config/soft-fp/floatsisf.c
new file mode 100644
index 00000000000..76217fe3478
--- /dev/null
+++ b/gcc/config/soft-fp/floatsisf.c
@@ -0,0 +1,46 @@
+/* Software floating-point emulation.
+ Convert a 32bit signed integer to IEEE single
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "single.h"
+
+SFtype __floatsisf(SItype i)
+{
+ FP_DECL_EX;
+ FP_DECL_S(A);
+ SFtype a;
+
+ FP_FROM_INT_S(A, i, SI_BITS, USItype);
+ FP_PACK_RAW_S(a, A);
+ FP_HANDLE_EXCEPTIONS;
+
+ return a;
+}
diff --git a/gcc/config/soft-fp/floatsitf.c b/gcc/config/soft-fp/floatsitf.c
new file mode 100644
index 00000000000..8c3d9cc6193
--- /dev/null
+++ b/gcc/config/soft-fp/floatsitf.c
@@ -0,0 +1,46 @@
+/* Software floating-point emulation.
+ Convert a 32bit signed integer to IEEE quad
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "quad.h"
+
+TFtype __floatsitf(SItype i)
+{
+ FP_DECL_EX;
+ FP_DECL_Q(A);
+ TFtype a;
+
+ FP_FROM_INT_Q(A, i, SI_BITS, USItype);
+ FP_PACK_RAW_Q(a, A);
+ FP_HANDLE_EXCEPTIONS;
+
+ return a;
+}
diff --git a/gcc/config/soft-fp/floatundidf.c b/gcc/config/soft-fp/floatundidf.c
new file mode 100644
index 00000000000..2169a3f1988
--- /dev/null
+++ b/gcc/config/soft-fp/floatundidf.c
@@ -0,0 +1,47 @@
+/* Software floating-point emulation.
+ Convert a 64bit unsigned integer to IEEE double
+ Copyright (C) 1997,1999, 2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "double.h"
+
+double
+__floatundidf(UDItype i)
+{
+ FP_DECL_EX;
+ FP_DECL_D(A);
+ DFtype a;
+
+ FP_FROM_INT_D(A, i, DI_BITS, UDItype);
+ FP_PACK_RAW_D(a, A);
+ FP_HANDLE_EXCEPTIONS;
+
+ return a;
+}
diff --git a/gcc/config/soft-fp/floatundisf.c b/gcc/config/soft-fp/floatundisf.c
new file mode 100644
index 00000000000..5f08764dc50
--- /dev/null
+++ b/gcc/config/soft-fp/floatundisf.c
@@ -0,0 +1,47 @@
+/* Software floating-point emulation.
+ Convert a 64bit unsigned integer to IEEE single
+ Copyright (C) 1997,1999, 2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "single.h"
+
+float
+__floatundisf(UDItype i)
+{
+ FP_DECL_EX;
+ FP_DECL_S(A);
+ SFtype a;
+
+ FP_FROM_INT_S(A, i, DI_BITS, UDItype);
+ FP_PACK_RAW_S(a, A);
+ FP_HANDLE_EXCEPTIONS;
+
+ return a;
+}
diff --git a/gcc/config/soft-fp/floatunditf.c b/gcc/config/soft-fp/floatunditf.c
new file mode 100644
index 00000000000..ab357f051c3
--- /dev/null
+++ b/gcc/config/soft-fp/floatunditf.c
@@ -0,0 +1,47 @@
+/* Software floating-point emulation.
+ Convert a 64bit unsigned integer to IEEE quad
+ Copyright (C) 1997,1999, 2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "quad.h"
+
+TFtype
+__floatunditf(UDItype i)
+{
+ FP_DECL_EX;
+ FP_DECL_Q(A);
+ TFtype a;
+
+ FP_FROM_INT_Q(A, i, DI_BITS, UDItype);
+ FP_PACK_RAW_Q(a, A);
+ FP_HANDLE_EXCEPTIONS;
+
+ return a;
+}
diff --git a/gcc/config/soft-fp/floatunsidf.c b/gcc/config/soft-fp/floatunsidf.c
new file mode 100644
index 00000000000..97b488ab68a
--- /dev/null
+++ b/gcc/config/soft-fp/floatunsidf.c
@@ -0,0 +1,47 @@
+/* Software floating-point emulation.
+ Convert a 32bit unsigned integer to IEEE double
+ Copyright (C) 1997,1999, 2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "double.h"
+
+double
+__floatunsidf(USItype i)
+{
+ FP_DECL_EX;
+ FP_DECL_D(A);
+ DFtype a;
+
+ FP_FROM_INT_D(A, i, SI_BITS, USItype);
+ FP_PACK_RAW_D(a, A);
+ FP_HANDLE_EXCEPTIONS;
+
+ return a;
+}
diff --git a/gcc/config/soft-fp/floatunsisf.c b/gcc/config/soft-fp/floatunsisf.c
new file mode 100644
index 00000000000..2ec16ba7b7f
--- /dev/null
+++ b/gcc/config/soft-fp/floatunsisf.c
@@ -0,0 +1,47 @@
+/* Software floating-point emulation.
+ Convert a 32bit unsigned integer to IEEE single
+ Copyright (C) 1997,1999, 2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "single.h"
+
+float
+__floatunsisf(USItype i)
+{
+ FP_DECL_EX;
+ FP_DECL_S(A);
+ SFtype a;
+
+ FP_FROM_INT_S(A, i, SI_BITS, USItype);
+ FP_PACK_RAW_S(a, A);
+ FP_HANDLE_EXCEPTIONS;
+
+ return a;
+}
diff --git a/gcc/config/soft-fp/floatunsitf.c b/gcc/config/soft-fp/floatunsitf.c
new file mode 100644
index 00000000000..c993716e54a
--- /dev/null
+++ b/gcc/config/soft-fp/floatunsitf.c
@@ -0,0 +1,47 @@
+/* Software floating-point emulation.
+ Convert a 32bit unsigned integer to IEEE quad
+ Copyright (C) 1997,1999, 2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "quad.h"
+
+TFtype
+__floatunsitf(USItype i)
+{
+ FP_DECL_EX;
+ FP_DECL_Q(A);
+ TFtype a;
+
+ FP_FROM_INT_Q(A, i, SI_BITS, USItype);
+ FP_PACK_RAW_Q(a, A);
+ FP_HANDLE_EXCEPTIONS;
+
+ return a;
+}
diff --git a/gcc/config/soft-fp/gedf2.c b/gcc/config/soft-fp/gedf2.c
new file mode 100644
index 00000000000..e0dc8620eee
--- /dev/null
+++ b/gcc/config/soft-fp/gedf2.c
@@ -0,0 +1,51 @@
+/* Software floating-point emulation.
+ Return 0 iff a == b, 1 iff a > b, -2 iff a ? b, -1 iff a < b
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "double.h"
+
+int __gedf2(DFtype a, DFtype b)
+{
+ FP_DECL_EX;
+ FP_DECL_D(A); FP_DECL_D(B);
+ int r;
+
+ FP_UNPACK_RAW_D(A, a);
+ FP_UNPACK_RAW_D(B, b);
+ FP_CMP_D(r, A, B, -2);
+ if (r == -2 && (FP_ISSIGNAN_D(A) || FP_ISSIGNAN_D(B)))
+ FP_SET_EXCEPTION(FP_EX_INVALID);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
+
+strong_alias(__gedf2, __gtdf2);
diff --git a/gcc/config/soft-fp/gesf2.c b/gcc/config/soft-fp/gesf2.c
new file mode 100644
index 00000000000..d1f3ba2f9f5
--- /dev/null
+++ b/gcc/config/soft-fp/gesf2.c
@@ -0,0 +1,51 @@
+/* Software floating-point emulation.
+ Return 0 iff a == b, 1 iff a > b, -2 iff a ? b, -1 iff a < b
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "single.h"
+
+int __gesf2(SFtype a, SFtype b)
+{
+ FP_DECL_EX;
+ FP_DECL_S(A); FP_DECL_S(B);
+ int r;
+
+ FP_UNPACK_RAW_S(A, a);
+ FP_UNPACK_RAW_S(B, b);
+ FP_CMP_S(r, A, B, -2);
+ if (r == -2 && (FP_ISSIGNAN_S(A) || FP_ISSIGNAN_S(B)))
+ FP_SET_EXCEPTION(FP_EX_INVALID);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
+
+strong_alias(__gesf2, __gtsf2);
diff --git a/gcc/config/soft-fp/getf2.c b/gcc/config/soft-fp/getf2.c
new file mode 100644
index 00000000000..82ff283d0d9
--- /dev/null
+++ b/gcc/config/soft-fp/getf2.c
@@ -0,0 +1,51 @@
+/* Software floating-point emulation.
+ Return 0 iff a == b, 1 iff a > b, -2 iff a ? b, -1 iff a < b
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "quad.h"
+
+int __getf2(TFtype a, TFtype b)
+{
+ FP_DECL_EX;
+ FP_DECL_Q(A); FP_DECL_Q(B);
+ int r;
+
+ FP_UNPACK_RAW_Q(A, a);
+ FP_UNPACK_RAW_Q(B, b);
+ FP_CMP_Q(r, A, B, -2);
+ if (r == -2 && (FP_ISSIGNAN_Q(A) || FP_ISSIGNAN_Q(B)))
+ FP_SET_EXCEPTION(FP_EX_INVALID);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
+
+strong_alias(__getf2, __gttf2);
diff --git a/gcc/config/soft-fp/ledf2.c b/gcc/config/soft-fp/ledf2.c
new file mode 100644
index 00000000000..528a9819cef
--- /dev/null
+++ b/gcc/config/soft-fp/ledf2.c
@@ -0,0 +1,51 @@
+/* Software floating-point emulation.
+ Return 0 iff a == b, 1 iff a > b, 2 iff a ? b, -1 iff a < b
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "double.h"
+
+int __ledf2(DFtype a, DFtype b)
+{
+ FP_DECL_EX;
+ FP_DECL_D(A); FP_DECL_D(B);
+ int r;
+
+ FP_UNPACK_RAW_D(A, a);
+ FP_UNPACK_RAW_D(B, b);
+ FP_CMP_D(r, A, B, 2);
+ if (r == 2 && (FP_ISSIGNAN_D(A) || FP_ISSIGNAN_D(B)))
+ FP_SET_EXCEPTION(FP_EX_INVALID);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
+
+strong_alias(__ledf2, __ltdf2);
diff --git a/gcc/config/soft-fp/lesf2.c b/gcc/config/soft-fp/lesf2.c
new file mode 100644
index 00000000000..c564bd9539e
--- /dev/null
+++ b/gcc/config/soft-fp/lesf2.c
@@ -0,0 +1,51 @@
+/* Software floating-point emulation.
+ Return 0 iff a == b, 1 iff a > b, 2 iff a ? b, -1 iff a < b
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "single.h"
+
+int __lesf2(SFtype a, SFtype b)
+{
+ FP_DECL_EX;
+ FP_DECL_S(A); FP_DECL_S(B);
+ int r;
+
+ FP_UNPACK_RAW_S(A, a);
+ FP_UNPACK_RAW_S(B, b);
+ FP_CMP_S(r, A, B, 2);
+ if (r == 2 && (FP_ISSIGNAN_S(A) || FP_ISSIGNAN_S(B)))
+ FP_SET_EXCEPTION(FP_EX_INVALID);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
+
+strong_alias(__lesf2, __ltsf2);
diff --git a/gcc/config/soft-fp/letf2.c b/gcc/config/soft-fp/letf2.c
new file mode 100644
index 00000000000..35e03aaacfe
--- /dev/null
+++ b/gcc/config/soft-fp/letf2.c
@@ -0,0 +1,51 @@
+/* Software floating-point emulation.
+ Return 0 iff a == b, 1 iff a > b, 2 iff a ? b, -1 iff a < b
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "quad.h"
+
+int __letf2(TFtype a, TFtype b)
+{
+ FP_DECL_EX;
+ FP_DECL_Q(A); FP_DECL_Q(B);
+ int r;
+
+ FP_UNPACK_RAW_Q(A, a);
+ FP_UNPACK_RAW_Q(B, b);
+ FP_CMP_Q(r, A, B, 2);
+ if (r == 2 && (FP_ISSIGNAN_Q(A) || FP_ISSIGNAN_Q(B)))
+ FP_SET_EXCEPTION(FP_EX_INVALID);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
+
+strong_alias(__letf2, __lttf2);
diff --git a/gcc/config/soft-fp/muldf3.c b/gcc/config/soft-fp/muldf3.c
new file mode 100644
index 00000000000..7eb2015ae56
--- /dev/null
+++ b/gcc/config/soft-fp/muldf3.c
@@ -0,0 +1,49 @@
+/* Software floating-point emulation.
+ Return a * b
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "double.h"
+
+DFtype __muldf3(DFtype a, DFtype b)
+{
+ FP_DECL_EX;
+ FP_DECL_D(A); FP_DECL_D(B); FP_DECL_D(R);
+ DFtype r;
+
+ FP_INIT_ROUNDMODE;
+ FP_UNPACK_D(A, a);
+ FP_UNPACK_D(B, b);
+ FP_MUL_D(R, A, B);
+ FP_PACK_D(r, R);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/mulsf3.c b/gcc/config/soft-fp/mulsf3.c
new file mode 100644
index 00000000000..5df44068720
--- /dev/null
+++ b/gcc/config/soft-fp/mulsf3.c
@@ -0,0 +1,49 @@
+/* Software floating-point emulation.
+ Return a * b
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "single.h"
+
+SFtype __mulsf3(SFtype a, SFtype b)
+{
+ FP_DECL_EX;
+ FP_DECL_S(A); FP_DECL_S(B); FP_DECL_S(R);
+ SFtype r;
+
+ FP_INIT_ROUNDMODE;
+ FP_UNPACK_S(A, a);
+ FP_UNPACK_S(B, b);
+ FP_MUL_S(R, A, B);
+ FP_PACK_S(r, R);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/multf3.c b/gcc/config/soft-fp/multf3.c
new file mode 100644
index 00000000000..0abab6ddc3b
--- /dev/null
+++ b/gcc/config/soft-fp/multf3.c
@@ -0,0 +1,49 @@
+/* Software floating-point emulation.
+ Return a * b
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "quad.h"
+
+TFtype __multf3(TFtype a, TFtype b)
+{
+ FP_DECL_EX;
+ FP_DECL_Q(A); FP_DECL_Q(B); FP_DECL_Q(R);
+ TFtype r;
+
+ FP_INIT_ROUNDMODE;
+ FP_UNPACK_Q(A, a);
+ FP_UNPACK_Q(B, b);
+ FP_MUL_Q(R, A, B);
+ FP_PACK_Q(r, R);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/negdf2.c b/gcc/config/soft-fp/negdf2.c
new file mode 100644
index 00000000000..54869e9a68d
--- /dev/null
+++ b/gcc/config/soft-fp/negdf2.c
@@ -0,0 +1,48 @@
+/* Software floating-point emulation.
+ Return -a
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "double.h"
+
+DFtype __negdf2(DFtype a)
+{
+ FP_DECL_EX;
+ FP_DECL_D(A); FP_DECL_D(R);
+ DFtype r;
+
+ FP_UNPACK_D(A, a);
+ FP_NEG_D(R, A);
+ FP_PACK_D(r, R);
+ FP_CLEAR_EXCEPTIONS;
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/negsf2.c b/gcc/config/soft-fp/negsf2.c
new file mode 100644
index 00000000000..bf5db7a452c
--- /dev/null
+++ b/gcc/config/soft-fp/negsf2.c
@@ -0,0 +1,48 @@
+/* Software floating-point emulation.
+ Return -a
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "single.h"
+
+SFtype __negsf2(SFtype a)
+{
+ FP_DECL_EX;
+ FP_DECL_S(A); FP_DECL_S(R);
+ SFtype r;
+
+ FP_UNPACK_S(A, a);
+ FP_NEG_S(R, A);
+ FP_PACK_S(r, R);
+ FP_CLEAR_EXCEPTIONS;
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/negtf2.c b/gcc/config/soft-fp/negtf2.c
new file mode 100644
index 00000000000..5524c82df1c
--- /dev/null
+++ b/gcc/config/soft-fp/negtf2.c
@@ -0,0 +1,48 @@
+/* Software floating-point emulation.
+ Return -a
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "quad.h"
+
+TFtype __negtf2(TFtype a)
+{
+ FP_DECL_EX;
+ FP_DECL_Q(A); FP_DECL_Q(R);
+ TFtype r;
+
+ FP_UNPACK_Q(A, a);
+ FP_NEG_Q(R, A);
+ FP_PACK_Q(r, R);
+ FP_CLEAR_EXCEPTIONS;
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/op-1.h b/gcc/config/soft-fp/op-1.h
new file mode 100644
index 00000000000..35cd0ba7bb1
--- /dev/null
+++ b/gcc/config/soft-fp/op-1.h
@@ -0,0 +1,302 @@
+/* Software floating-point emulation.
+ Basic one-word fraction declaration and manipulation.
+ Copyright (C) 1997,1998,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com),
+ Jakub Jelinek (jj@ultra.linux.cz),
+ David S. Miller (davem@redhat.com) and
+ Peter Maydell (pmaydell@chiark.greenend.org.uk).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#define _FP_FRAC_DECL_1(X) _FP_W_TYPE X##_f
+#define _FP_FRAC_COPY_1(D,S) (D##_f = S##_f)
+#define _FP_FRAC_SET_1(X,I) (X##_f = I)
+#define _FP_FRAC_HIGH_1(X) (X##_f)
+#define _FP_FRAC_LOW_1(X) (X##_f)
+#define _FP_FRAC_WORD_1(X,w) (X##_f)
+
+#define _FP_FRAC_ADDI_1(X,I) (X##_f += I)
+#define _FP_FRAC_SLL_1(X,N) \
+ do { \
+ if (__builtin_constant_p(N) && (N) == 1) \
+ X##_f += X##_f; \
+ else \
+ X##_f <<= (N); \
+ } while (0)
+#define _FP_FRAC_SRL_1(X,N) (X##_f >>= N)
+
+/* Right shift with sticky-lsb. */
+#define _FP_FRAC_SRST_1(X,S,N,sz) __FP_FRAC_SRST_1(X##_f, S, N, sz)
+#define _FP_FRAC_SRS_1(X,N,sz) __FP_FRAC_SRS_1(X##_f, N, sz)
+
+#define __FP_FRAC_SRST_1(X,S,N,sz) \
+do { \
+ S = (__builtin_constant_p(N) && (N) == 1 \
+ ? X & 1 : (X << (_FP_W_TYPE_SIZE - (N))) != 0); \
+ X = X >> (N); \
+} while (0)
+
+#define __FP_FRAC_SRS_1(X,N,sz) \
+ (X = (X >> (N) | (__builtin_constant_p(N) && (N) == 1 \
+ ? X & 1 : (X << (_FP_W_TYPE_SIZE - (N))) != 0)))
+
+#define _FP_FRAC_ADD_1(R,X,Y) (R##_f = X##_f + Y##_f)
+#define _FP_FRAC_SUB_1(R,X,Y) (R##_f = X##_f - Y##_f)
+#define _FP_FRAC_DEC_1(X,Y) (X##_f -= Y##_f)
+#define _FP_FRAC_CLZ_1(z, X) __FP_CLZ(z, X##_f)
+
+/* Predicates */
+#define _FP_FRAC_NEGP_1(X) ((_FP_WS_TYPE)X##_f < 0)
+#define _FP_FRAC_ZEROP_1(X) (X##_f == 0)
+#define _FP_FRAC_OVERP_1(fs,X) (X##_f & _FP_OVERFLOW_##fs)
+#define _FP_FRAC_CLEAR_OVERP_1(fs,X) (X##_f &= ~_FP_OVERFLOW_##fs)
+#define _FP_FRAC_EQ_1(X, Y) (X##_f == Y##_f)
+#define _FP_FRAC_GE_1(X, Y) (X##_f >= Y##_f)
+#define _FP_FRAC_GT_1(X, Y) (X##_f > Y##_f)
+
+#define _FP_ZEROFRAC_1 0
+#define _FP_MINFRAC_1 1
+#define _FP_MAXFRAC_1 (~(_FP_WS_TYPE)0)
+
+/*
+ * Unpack the raw bits of a native fp value. Do not classify or
+ * normalize the data.
+ */
+
+#define _FP_UNPACK_RAW_1(fs, X, val) \
+ do { \
+ union _FP_UNION_##fs _flo; _flo.flt = (val); \
+ \
+ X##_f = _flo.bits.frac; \
+ X##_e = _flo.bits.exp; \
+ X##_s = _flo.bits.sign; \
+ } while (0)
+
+#define _FP_UNPACK_RAW_1_P(fs, X, val) \
+ do { \
+ union _FP_UNION_##fs *_flo = \
+ (union _FP_UNION_##fs *)(val); \
+ \
+ X##_f = _flo->bits.frac; \
+ X##_e = _flo->bits.exp; \
+ X##_s = _flo->bits.sign; \
+ } while (0)
+
+/*
+ * Repack the raw bits of a native fp value.
+ */
+
+#define _FP_PACK_RAW_1(fs, val, X) \
+ do { \
+ union _FP_UNION_##fs _flo; \
+ \
+ _flo.bits.frac = X##_f; \
+ _flo.bits.exp = X##_e; \
+ _flo.bits.sign = X##_s; \
+ \
+ (val) = _flo.flt; \
+ } while (0)
+
+#define _FP_PACK_RAW_1_P(fs, val, X) \
+ do { \
+ union _FP_UNION_##fs *_flo = \
+ (union _FP_UNION_##fs *)(val); \
+ \
+ _flo->bits.frac = X##_f; \
+ _flo->bits.exp = X##_e; \
+ _flo->bits.sign = X##_s; \
+ } while (0)
+
+
+/*
+ * Multiplication algorithms:
+ */
+
+/* Basic. Assuming the host word size is >= 2*FRACBITS, we can do the
+ multiplication immediately. */
+
+#define _FP_MUL_MEAT_1_imm(wfracbits, R, X, Y) \
+ do { \
+ R##_f = X##_f * Y##_f; \
+ /* Normalize since we know where the msb of the multiplicands \
+ were (bit B), we know that the msb of the of the product is \
+ at either 2B or 2B-1. */ \
+ _FP_FRAC_SRS_1(R, wfracbits-1, 2*wfracbits); \
+ } while (0)
+
+/* Given a 1W * 1W => 2W primitive, do the extended multiplication. */
+
+#define _FP_MUL_MEAT_1_wide(wfracbits, R, X, Y, doit) \
+ do { \
+ _FP_W_TYPE _Z_f0, _Z_f1; \
+ doit(_Z_f1, _Z_f0, X##_f, Y##_f); \
+ /* Normalize since we know where the msb of the multiplicands \
+ were (bit B), we know that the msb of the of the product is \
+ at either 2B or 2B-1. */ \
+ _FP_FRAC_SRS_2(_Z, wfracbits-1, 2*wfracbits); \
+ R##_f = _Z_f0; \
+ } while (0)
+
+/* Finally, a simple widening multiply algorithm. What fun! */
+
+#define _FP_MUL_MEAT_1_hard(wfracbits, R, X, Y) \
+ do { \
+ _FP_W_TYPE _xh, _xl, _yh, _yl, _z_f0, _z_f1, _a_f0, _a_f1; \
+ \
+ /* split the words in half */ \
+ _xh = X##_f >> (_FP_W_TYPE_SIZE/2); \
+ _xl = X##_f & (((_FP_W_TYPE)1 << (_FP_W_TYPE_SIZE/2)) - 1); \
+ _yh = Y##_f >> (_FP_W_TYPE_SIZE/2); \
+ _yl = Y##_f & (((_FP_W_TYPE)1 << (_FP_W_TYPE_SIZE/2)) - 1); \
+ \
+ /* multiply the pieces */ \
+ _z_f0 = _xl * _yl; \
+ _a_f0 = _xh * _yl; \
+ _a_f1 = _xl * _yh; \
+ _z_f1 = _xh * _yh; \
+ \
+ /* reassemble into two full words */ \
+ if ((_a_f0 += _a_f1) < _a_f1) \
+ _z_f1 += (_FP_W_TYPE)1 << (_FP_W_TYPE_SIZE/2); \
+ _a_f1 = _a_f0 >> (_FP_W_TYPE_SIZE/2); \
+ _a_f0 = _a_f0 << (_FP_W_TYPE_SIZE/2); \
+ _FP_FRAC_ADD_2(_z, _z, _a); \
+ \
+ /* normalize */ \
+ _FP_FRAC_SRS_2(_z, wfracbits - 1, 2*wfracbits); \
+ R##_f = _z_f0; \
+ } while (0)
+
+
+/*
+ * Division algorithms:
+ */
+
+/* Basic. Assuming the host word size is >= 2*FRACBITS, we can do the
+ division immediately. Give this macro either _FP_DIV_HELP_imm for
+ C primitives or _FP_DIV_HELP_ldiv for the ISO function. Which you
+ choose will depend on what the compiler does with divrem4. */
+
+#define _FP_DIV_MEAT_1_imm(fs, R, X, Y, doit) \
+ do { \
+ _FP_W_TYPE _q, _r; \
+ X##_f <<= (X##_f < Y##_f \
+ ? R##_e--, _FP_WFRACBITS_##fs \
+ : _FP_WFRACBITS_##fs - 1); \
+ doit(_q, _r, X##_f, Y##_f); \
+ R##_f = _q | (_r != 0); \
+ } while (0)
+
+/* GCC's longlong.h defines a 2W / 1W => (1W,1W) primitive udiv_qrnnd
+ that may be useful in this situation. This first is for a primitive
+ that requires normalization, the second for one that does not. Look
+ for UDIV_NEEDS_NORMALIZATION to tell which your machine needs. */
+
+#define _FP_DIV_MEAT_1_udiv_norm(fs, R, X, Y) \
+ do { \
+ _FP_W_TYPE _nh, _nl, _q, _r, _y; \
+ \
+ /* Normalize Y -- i.e. make the most significant bit set. */ \
+ _y = Y##_f << _FP_WFRACXBITS_##fs; \
+ \
+ /* Shift X op correspondingly high, that is, up one full word. */ \
+ if (X##_f < Y##_f) \
+ { \
+ R##_e--; \
+ _nl = 0; \
+ _nh = X##_f; \
+ } \
+ else \
+ { \
+ _nl = X##_f << (_FP_W_TYPE_SIZE - 1); \
+ _nh = X##_f >> 1; \
+ } \
+ \
+ udiv_qrnnd(_q, _r, _nh, _nl, _y); \
+ R##_f = _q | (_r != 0); \
+ } while (0)
+
+#define _FP_DIV_MEAT_1_udiv(fs, R, X, Y) \
+ do { \
+ _FP_W_TYPE _nh, _nl, _q, _r; \
+ if (X##_f < Y##_f) \
+ { \
+ R##_e--; \
+ _nl = X##_f << _FP_WFRACBITS_##fs; \
+ _nh = X##_f >> _FP_WFRACXBITS_##fs; \
+ } \
+ else \
+ { \
+ _nl = X##_f << (_FP_WFRACBITS_##fs - 1); \
+ _nh = X##_f >> (_FP_WFRACXBITS_##fs + 1); \
+ } \
+ udiv_qrnnd(_q, _r, _nh, _nl, Y##_f); \
+ R##_f = _q | (_r != 0); \
+ } while (0)
+
+
+/*
+ * Square root algorithms:
+ * We have just one right now, maybe Newton approximation
+ * should be added for those machines where division is fast.
+ */
+
+#define _FP_SQRT_MEAT_1(R, S, T, X, q) \
+ do { \
+ while (q != _FP_WORK_ROUND) \
+ { \
+ T##_f = S##_f + q; \
+ if (T##_f <= X##_f) \
+ { \
+ S##_f = T##_f + q; \
+ X##_f -= T##_f; \
+ R##_f += q; \
+ } \
+ _FP_FRAC_SLL_1(X, 1); \
+ q >>= 1; \
+ } \
+ if (X##_f) \
+ { \
+ if (S##_f < X##_f) \
+ R##_f |= _FP_WORK_ROUND; \
+ R##_f |= _FP_WORK_STICKY; \
+ } \
+ } while (0)
+
+/*
+ * Assembly/disassembly for converting to/from integral types.
+ * No shifting or overflow handled here.
+ */
+
+#define _FP_FRAC_ASSEMBLE_1(r, X, rsize) (r = X##_f)
+#define _FP_FRAC_DISASSEMBLE_1(X, r, rsize) (X##_f = r)
+
+
+/*
+ * Convert FP values between word sizes
+ */
+
+#define _FP_FRAC_COPY_1_1(D, S) (D##_f = S##_f)
diff --git a/gcc/config/soft-fp/op-2.h b/gcc/config/soft-fp/op-2.h
new file mode 100644
index 00000000000..5c9bce4c179
--- /dev/null
+++ b/gcc/config/soft-fp/op-2.h
@@ -0,0 +1,615 @@
+/* Software floating-point emulation.
+ Basic two-word fraction declaration and manipulation.
+ Copyright (C) 1997,1998,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com),
+ Jakub Jelinek (jj@ultra.linux.cz),
+ David S. Miller (davem@redhat.com) and
+ Peter Maydell (pmaydell@chiark.greenend.org.uk).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#define _FP_FRAC_DECL_2(X) _FP_W_TYPE X##_f0, X##_f1
+#define _FP_FRAC_COPY_2(D,S) (D##_f0 = S##_f0, D##_f1 = S##_f1)
+#define _FP_FRAC_SET_2(X,I) __FP_FRAC_SET_2(X, I)
+#define _FP_FRAC_HIGH_2(X) (X##_f1)
+#define _FP_FRAC_LOW_2(X) (X##_f0)
+#define _FP_FRAC_WORD_2(X,w) (X##_f##w)
+
+#define _FP_FRAC_SLL_2(X,N) \
+(void)(((N) < _FP_W_TYPE_SIZE) \
+ ? ({ \
+ if (__builtin_constant_p(N) && (N) == 1) \
+ { \
+ X##_f1 = X##_f1 + X##_f1 + (((_FP_WS_TYPE)(X##_f0)) < 0); \
+ X##_f0 += X##_f0; \
+ } \
+ else \
+ { \
+ X##_f1 = X##_f1 << (N) | X##_f0 >> (_FP_W_TYPE_SIZE - (N)); \
+ X##_f0 <<= (N); \
+ } \
+ 0; \
+ }) \
+ : ({ \
+ X##_f1 = X##_f0 << ((N) - _FP_W_TYPE_SIZE); \
+ X##_f0 = 0; \
+ }))
+
+
+#define _FP_FRAC_SRL_2(X,N) \
+(void)(((N) < _FP_W_TYPE_SIZE) \
+ ? ({ \
+ X##_f0 = X##_f0 >> (N) | X##_f1 << (_FP_W_TYPE_SIZE - (N)); \
+ X##_f1 >>= (N); \
+ }) \
+ : ({ \
+ X##_f0 = X##_f1 >> ((N) - _FP_W_TYPE_SIZE); \
+ X##_f1 = 0; \
+ }))
+
+/* Right shift with sticky-lsb. */
+#define _FP_FRAC_SRST_2(X,S, N,sz) \
+(void)(((N) < _FP_W_TYPE_SIZE) \
+ ? ({ \
+ S = (__builtin_constant_p(N) && (N) == 1 \
+ ? X##_f0 & 1 \
+ : (X##_f0 << (_FP_W_TYPE_SIZE - (N))) != 0); \
+ X##_f0 = (X##_f1 << (_FP_W_TYPE_SIZE - (N)) | X##_f0 >> (N)); \
+ X##_f1 >>= (N); \
+ }) \
+ : ({ \
+ S = ((((N) == _FP_W_TYPE_SIZE \
+ ? 0 \
+ : (X##_f1 << (2*_FP_W_TYPE_SIZE - (N)))) \
+ | X##_f0) != 0); \
+ X##_f0 = (X##_f1 >> ((N) - _FP_W_TYPE_SIZE)); \
+ X##_f1 = 0; \
+ }))
+
+#define _FP_FRAC_SRS_2(X,N,sz) \
+(void)(((N) < _FP_W_TYPE_SIZE) \
+ ? ({ \
+ X##_f0 = (X##_f1 << (_FP_W_TYPE_SIZE - (N)) | X##_f0 >> (N) | \
+ (__builtin_constant_p(N) && (N) == 1 \
+ ? X##_f0 & 1 \
+ : (X##_f0 << (_FP_W_TYPE_SIZE - (N))) != 0)); \
+ X##_f1 >>= (N); \
+ }) \
+ : ({ \
+ X##_f0 = (X##_f1 >> ((N) - _FP_W_TYPE_SIZE) | \
+ ((((N) == _FP_W_TYPE_SIZE \
+ ? 0 \
+ : (X##_f1 << (2*_FP_W_TYPE_SIZE - (N)))) \
+ | X##_f0) != 0)); \
+ X##_f1 = 0; \
+ }))
+
+#define _FP_FRAC_ADDI_2(X,I) \
+ __FP_FRAC_ADDI_2(X##_f1, X##_f0, I)
+
+#define _FP_FRAC_ADD_2(R,X,Y) \
+ __FP_FRAC_ADD_2(R##_f1, R##_f0, X##_f1, X##_f0, Y##_f1, Y##_f0)
+
+#define _FP_FRAC_SUB_2(R,X,Y) \
+ __FP_FRAC_SUB_2(R##_f1, R##_f0, X##_f1, X##_f0, Y##_f1, Y##_f0)
+
+#define _FP_FRAC_DEC_2(X,Y) \
+ __FP_FRAC_DEC_2(X##_f1, X##_f0, Y##_f1, Y##_f0)
+
+#define _FP_FRAC_CLZ_2(R,X) \
+ do { \
+ if (X##_f1) \
+ __FP_CLZ(R,X##_f1); \
+ else \
+ { \
+ __FP_CLZ(R,X##_f0); \
+ R += _FP_W_TYPE_SIZE; \
+ } \
+ } while(0)
+
+/* Predicates */
+#define _FP_FRAC_NEGP_2(X) ((_FP_WS_TYPE)X##_f1 < 0)
+#define _FP_FRAC_ZEROP_2(X) ((X##_f1 | X##_f0) == 0)
+#define _FP_FRAC_OVERP_2(fs,X) (_FP_FRAC_HIGH_##fs(X) & _FP_OVERFLOW_##fs)
+#define _FP_FRAC_CLEAR_OVERP_2(fs,X) (_FP_FRAC_HIGH_##fs(X) &= ~_FP_OVERFLOW_##fs)
+#define _FP_FRAC_EQ_2(X, Y) (X##_f1 == Y##_f1 && X##_f0 == Y##_f0)
+#define _FP_FRAC_GT_2(X, Y) \
+ (X##_f1 > Y##_f1 || (X##_f1 == Y##_f1 && X##_f0 > Y##_f0))
+#define _FP_FRAC_GE_2(X, Y) \
+ (X##_f1 > Y##_f1 || (X##_f1 == Y##_f1 && X##_f0 >= Y##_f0))
+
+#define _FP_ZEROFRAC_2 0, 0
+#define _FP_MINFRAC_2 0, 1
+#define _FP_MAXFRAC_2 (~(_FP_WS_TYPE)0), (~(_FP_WS_TYPE)0)
+
+/*
+ * Internals
+ */
+
+#define __FP_FRAC_SET_2(X,I1,I0) (X##_f0 = I0, X##_f1 = I1)
+
+#define __FP_CLZ_2(R, xh, xl) \
+ do { \
+ if (xh) \
+ __FP_CLZ(R,xh); \
+ else \
+ { \
+ __FP_CLZ(R,xl); \
+ R += _FP_W_TYPE_SIZE; \
+ } \
+ } while(0)
+
+#if 0
+
+#ifndef __FP_FRAC_ADDI_2
+#define __FP_FRAC_ADDI_2(xh, xl, i) \
+ (xh += ((xl += i) < i))
+#endif
+#ifndef __FP_FRAC_ADD_2
+#define __FP_FRAC_ADD_2(rh, rl, xh, xl, yh, yl) \
+ (rh = xh + yh + ((rl = xl + yl) < xl))
+#endif
+#ifndef __FP_FRAC_SUB_2
+#define __FP_FRAC_SUB_2(rh, rl, xh, xl, yh, yl) \
+ (rh = xh - yh - ((rl = xl - yl) > xl))
+#endif
+#ifndef __FP_FRAC_DEC_2
+#define __FP_FRAC_DEC_2(xh, xl, yh, yl) \
+ do { \
+ UWtype _t = xl; \
+ xh -= yh + ((xl -= yl) > _t); \
+ } while (0)
+#endif
+
+#else
+
+#undef __FP_FRAC_ADDI_2
+#define __FP_FRAC_ADDI_2(xh, xl, i) add_ssaaaa(xh, xl, xh, xl, 0, i)
+#undef __FP_FRAC_ADD_2
+#define __FP_FRAC_ADD_2 add_ssaaaa
+#undef __FP_FRAC_SUB_2
+#define __FP_FRAC_SUB_2 sub_ddmmss
+#undef __FP_FRAC_DEC_2
+#define __FP_FRAC_DEC_2(xh, xl, yh, yl) sub_ddmmss(xh, xl, xh, xl, yh, yl)
+
+#endif
+
+/*
+ * Unpack the raw bits of a native fp value. Do not classify or
+ * normalize the data.
+ */
+
+#define _FP_UNPACK_RAW_2(fs, X, val) \
+ do { \
+ union _FP_UNION_##fs _flo; _flo.flt = (val); \
+ \
+ X##_f0 = _flo.bits.frac0; \
+ X##_f1 = _flo.bits.frac1; \
+ X##_e = _flo.bits.exp; \
+ X##_s = _flo.bits.sign; \
+ } while (0)
+
+#define _FP_UNPACK_RAW_2_P(fs, X, val) \
+ do { \
+ union _FP_UNION_##fs *_flo = \
+ (union _FP_UNION_##fs *)(val); \
+ \
+ X##_f0 = _flo->bits.frac0; \
+ X##_f1 = _flo->bits.frac1; \
+ X##_e = _flo->bits.exp; \
+ X##_s = _flo->bits.sign; \
+ } while (0)
+
+
+/*
+ * Repack the raw bits of a native fp value.
+ */
+
+#define _FP_PACK_RAW_2(fs, val, X) \
+ do { \
+ union _FP_UNION_##fs _flo; \
+ \
+ _flo.bits.frac0 = X##_f0; \
+ _flo.bits.frac1 = X##_f1; \
+ _flo.bits.exp = X##_e; \
+ _flo.bits.sign = X##_s; \
+ \
+ (val) = _flo.flt; \
+ } while (0)
+
+#define _FP_PACK_RAW_2_P(fs, val, X) \
+ do { \
+ union _FP_UNION_##fs *_flo = \
+ (union _FP_UNION_##fs *)(val); \
+ \
+ _flo->bits.frac0 = X##_f0; \
+ _flo->bits.frac1 = X##_f1; \
+ _flo->bits.exp = X##_e; \
+ _flo->bits.sign = X##_s; \
+ } while (0)
+
+
+/*
+ * Multiplication algorithms:
+ */
+
+/* Given a 1W * 1W => 2W primitive, do the extended multiplication. */
+
+#define _FP_MUL_MEAT_2_wide(wfracbits, R, X, Y, doit) \
+ do { \
+ _FP_FRAC_DECL_4(_z); _FP_FRAC_DECL_2(_b); _FP_FRAC_DECL_2(_c); \
+ \
+ doit(_FP_FRAC_WORD_4(_z,1), _FP_FRAC_WORD_4(_z,0), X##_f0, Y##_f0); \
+ doit(_b_f1, _b_f0, X##_f0, Y##_f1); \
+ doit(_c_f1, _c_f0, X##_f1, Y##_f0); \
+ doit(_FP_FRAC_WORD_4(_z,3), _FP_FRAC_WORD_4(_z,2), X##_f1, Y##_f1); \
+ \
+ __FP_FRAC_ADD_3(_FP_FRAC_WORD_4(_z,3),_FP_FRAC_WORD_4(_z,2), \
+ _FP_FRAC_WORD_4(_z,1), 0, _b_f1, _b_f0, \
+ _FP_FRAC_WORD_4(_z,3),_FP_FRAC_WORD_4(_z,2), \
+ _FP_FRAC_WORD_4(_z,1)); \
+ __FP_FRAC_ADD_3(_FP_FRAC_WORD_4(_z,3),_FP_FRAC_WORD_4(_z,2), \
+ _FP_FRAC_WORD_4(_z,1), 0, _c_f1, _c_f0, \
+ _FP_FRAC_WORD_4(_z,3),_FP_FRAC_WORD_4(_z,2), \
+ _FP_FRAC_WORD_4(_z,1)); \
+ \
+ /* Normalize since we know where the msb of the multiplicands \
+ were (bit B), we know that the msb of the of the product is \
+ at either 2B or 2B-1. */ \
+ _FP_FRAC_SRS_4(_z, wfracbits-1, 2*wfracbits); \
+ R##_f0 = _FP_FRAC_WORD_4(_z,0); \
+ R##_f1 = _FP_FRAC_WORD_4(_z,1); \
+ } while (0)
+
+/* Given a 1W * 1W => 2W primitive, do the extended multiplication.
+ Do only 3 multiplications instead of four. This one is for machines
+ where multiplication is much more expensive than subtraction. */
+
+#define _FP_MUL_MEAT_2_wide_3mul(wfracbits, R, X, Y, doit) \
+ do { \
+ _FP_FRAC_DECL_4(_z); _FP_FRAC_DECL_2(_b); _FP_FRAC_DECL_2(_c); \
+ _FP_W_TYPE _d; \
+ int _c1, _c2; \
+ \
+ _b_f0 = X##_f0 + X##_f1; \
+ _c1 = _b_f0 < X##_f0; \
+ _b_f1 = Y##_f0 + Y##_f1; \
+ _c2 = _b_f1 < Y##_f0; \
+ doit(_d, _FP_FRAC_WORD_4(_z,0), X##_f0, Y##_f0); \
+ doit(_FP_FRAC_WORD_4(_z,2), _FP_FRAC_WORD_4(_z,1), _b_f0, _b_f1); \
+ doit(_c_f1, _c_f0, X##_f1, Y##_f1); \
+ \
+ _b_f0 &= -_c2; \
+ _b_f1 &= -_c1; \
+ __FP_FRAC_ADD_3(_FP_FRAC_WORD_4(_z,3),_FP_FRAC_WORD_4(_z,2), \
+ _FP_FRAC_WORD_4(_z,1), (_c1 & _c2), 0, _d, \
+ 0, _FP_FRAC_WORD_4(_z,2), _FP_FRAC_WORD_4(_z,1)); \
+ __FP_FRAC_ADDI_2(_FP_FRAC_WORD_4(_z,3),_FP_FRAC_WORD_4(_z,2), \
+ _b_f0); \
+ __FP_FRAC_ADDI_2(_FP_FRAC_WORD_4(_z,3),_FP_FRAC_WORD_4(_z,2), \
+ _b_f1); \
+ __FP_FRAC_DEC_3(_FP_FRAC_WORD_4(_z,3),_FP_FRAC_WORD_4(_z,2), \
+ _FP_FRAC_WORD_4(_z,1), \
+ 0, _d, _FP_FRAC_WORD_4(_z,0)); \
+ __FP_FRAC_DEC_3(_FP_FRAC_WORD_4(_z,3),_FP_FRAC_WORD_4(_z,2), \
+ _FP_FRAC_WORD_4(_z,1), 0, _c_f1, _c_f0); \
+ __FP_FRAC_ADD_2(_FP_FRAC_WORD_4(_z,3), _FP_FRAC_WORD_4(_z,2), \
+ _c_f1, _c_f0, \
+ _FP_FRAC_WORD_4(_z,3), _FP_FRAC_WORD_4(_z,2)); \
+ \
+ /* Normalize since we know where the msb of the multiplicands \
+ were (bit B), we know that the msb of the of the product is \
+ at either 2B or 2B-1. */ \
+ _FP_FRAC_SRS_4(_z, wfracbits-1, 2*wfracbits); \
+ R##_f0 = _FP_FRAC_WORD_4(_z,0); \
+ R##_f1 = _FP_FRAC_WORD_4(_z,1); \
+ } while (0)
+
+#define _FP_MUL_MEAT_2_gmp(wfracbits, R, X, Y) \
+ do { \
+ _FP_FRAC_DECL_4(_z); \
+ _FP_W_TYPE _x[2], _y[2]; \
+ _x[0] = X##_f0; _x[1] = X##_f1; \
+ _y[0] = Y##_f0; _y[1] = Y##_f1; \
+ \
+ mpn_mul_n(_z_f, _x, _y, 2); \
+ \
+ /* Normalize since we know where the msb of the multiplicands \
+ were (bit B), we know that the msb of the of the product is \
+ at either 2B or 2B-1. */ \
+ _FP_FRAC_SRS_4(_z, wfracbits-1, 2*wfracbits); \
+ R##_f0 = _z_f[0]; \
+ R##_f1 = _z_f[1]; \
+ } while (0)
+
+/* Do at most 120x120=240 bits multiplication using double floating
+ point multiplication. This is useful if floating point
+ multiplication has much bigger throughput than integer multiply.
+ It is supposed to work for _FP_W_TYPE_SIZE 64 and wfracbits
+ between 106 and 120 only.
+ Caller guarantees that X and Y has (1LLL << (wfracbits - 1)) set.
+ SETFETZ is a macro which will disable all FPU exceptions and set rounding
+ towards zero, RESETFE should optionally reset it back. */
+
+#define _FP_MUL_MEAT_2_120_240_double(wfracbits, R, X, Y, setfetz, resetfe) \
+ do { \
+ static const double _const[] = { \
+ /* 2^-24 */ 5.9604644775390625e-08, \
+ /* 2^-48 */ 3.5527136788005009e-15, \
+ /* 2^-72 */ 2.1175823681357508e-22, \
+ /* 2^-96 */ 1.2621774483536189e-29, \
+ /* 2^28 */ 2.68435456e+08, \
+ /* 2^4 */ 1.600000e+01, \
+ /* 2^-20 */ 9.5367431640625e-07, \
+ /* 2^-44 */ 5.6843418860808015e-14, \
+ /* 2^-68 */ 3.3881317890172014e-21, \
+ /* 2^-92 */ 2.0194839173657902e-28, \
+ /* 2^-116 */ 1.2037062152420224e-35}; \
+ double _a240, _b240, _c240, _d240, _e240, _f240, \
+ _g240, _h240, _i240, _j240, _k240; \
+ union { double d; UDItype i; } _l240, _m240, _n240, _o240, \
+ _p240, _q240, _r240, _s240; \
+ UDItype _t240, _u240, _v240, _w240, _x240, _y240 = 0; \
+ \
+ if (wfracbits < 106 || wfracbits > 120) \
+ abort(); \
+ \
+ setfetz; \
+ \
+ _e240 = (double)(long)(X##_f0 & 0xffffff); \
+ _j240 = (double)(long)(Y##_f0 & 0xffffff); \
+ _d240 = (double)(long)((X##_f0 >> 24) & 0xffffff); \
+ _i240 = (double)(long)((Y##_f0 >> 24) & 0xffffff); \
+ _c240 = (double)(long)(((X##_f1 << 16) & 0xffffff) | (X##_f0 >> 48)); \
+ _h240 = (double)(long)(((Y##_f1 << 16) & 0xffffff) | (Y##_f0 >> 48)); \
+ _b240 = (double)(long)((X##_f1 >> 8) & 0xffffff); \
+ _g240 = (double)(long)((Y##_f1 >> 8) & 0xffffff); \
+ _a240 = (double)(long)(X##_f1 >> 32); \
+ _f240 = (double)(long)(Y##_f1 >> 32); \
+ _e240 *= _const[3]; \
+ _j240 *= _const[3]; \
+ _d240 *= _const[2]; \
+ _i240 *= _const[2]; \
+ _c240 *= _const[1]; \
+ _h240 *= _const[1]; \
+ _b240 *= _const[0]; \
+ _g240 *= _const[0]; \
+ _s240.d = _e240*_j240;\
+ _r240.d = _d240*_j240 + _e240*_i240;\
+ _q240.d = _c240*_j240 + _d240*_i240 + _e240*_h240;\
+ _p240.d = _b240*_j240 + _c240*_i240 + _d240*_h240 + _e240*_g240;\
+ _o240.d = _a240*_j240 + _b240*_i240 + _c240*_h240 + _d240*_g240 + _e240*_f240;\
+ _n240.d = _a240*_i240 + _b240*_h240 + _c240*_g240 + _d240*_f240; \
+ _m240.d = _a240*_h240 + _b240*_g240 + _c240*_f240; \
+ _l240.d = _a240*_g240 + _b240*_f240; \
+ _k240 = _a240*_f240; \
+ _r240.d += _s240.d; \
+ _q240.d += _r240.d; \
+ _p240.d += _q240.d; \
+ _o240.d += _p240.d; \
+ _n240.d += _o240.d; \
+ _m240.d += _n240.d; \
+ _l240.d += _m240.d; \
+ _k240 += _l240.d; \
+ _s240.d -= ((_const[10]+_s240.d)-_const[10]); \
+ _r240.d -= ((_const[9]+_r240.d)-_const[9]); \
+ _q240.d -= ((_const[8]+_q240.d)-_const[8]); \
+ _p240.d -= ((_const[7]+_p240.d)-_const[7]); \
+ _o240.d += _const[7]; \
+ _n240.d += _const[6]; \
+ _m240.d += _const[5]; \
+ _l240.d += _const[4]; \
+ if (_s240.d != 0.0) _y240 = 1; \
+ if (_r240.d != 0.0) _y240 = 1; \
+ if (_q240.d != 0.0) _y240 = 1; \
+ if (_p240.d != 0.0) _y240 = 1; \
+ _t240 = (DItype)_k240; \
+ _u240 = _l240.i; \
+ _v240 = _m240.i; \
+ _w240 = _n240.i; \
+ _x240 = _o240.i; \
+ R##_f1 = (_t240 << (128 - (wfracbits - 1))) \
+ | ((_u240 & 0xffffff) >> ((wfracbits - 1) - 104)); \
+ R##_f0 = ((_u240 & 0xffffff) << (168 - (wfracbits - 1))) \
+ | ((_v240 & 0xffffff) << (144 - (wfracbits - 1))) \
+ | ((_w240 & 0xffffff) << (120 - (wfracbits - 1))) \
+ | ((_x240 & 0xffffff) >> ((wfracbits - 1) - 96)) \
+ | _y240; \
+ resetfe; \
+ } while (0)
+
+/*
+ * Division algorithms:
+ */
+
+#define _FP_DIV_MEAT_2_udiv(fs, R, X, Y) \
+ do { \
+ _FP_W_TYPE _n_f2, _n_f1, _n_f0, _r_f1, _r_f0, _m_f1, _m_f0; \
+ if (_FP_FRAC_GT_2(X, Y)) \
+ { \
+ _n_f2 = X##_f1 >> 1; \
+ _n_f1 = X##_f1 << (_FP_W_TYPE_SIZE - 1) | X##_f0 >> 1; \
+ _n_f0 = X##_f0 << (_FP_W_TYPE_SIZE - 1); \
+ } \
+ else \
+ { \
+ R##_e--; \
+ _n_f2 = X##_f1; \
+ _n_f1 = X##_f0; \
+ _n_f0 = 0; \
+ } \
+ \
+ /* Normalize, i.e. make the most significant bit of the \
+ denominator set. */ \
+ _FP_FRAC_SLL_2(Y, _FP_WFRACXBITS_##fs); \
+ \
+ udiv_qrnnd(R##_f1, _r_f1, _n_f2, _n_f1, Y##_f1); \
+ umul_ppmm(_m_f1, _m_f0, R##_f1, Y##_f0); \
+ _r_f0 = _n_f0; \
+ if (_FP_FRAC_GT_2(_m, _r)) \
+ { \
+ R##_f1--; \
+ _FP_FRAC_ADD_2(_r, Y, _r); \
+ if (_FP_FRAC_GE_2(_r, Y) && _FP_FRAC_GT_2(_m, _r)) \
+ { \
+ R##_f1--; \
+ _FP_FRAC_ADD_2(_r, Y, _r); \
+ } \
+ } \
+ _FP_FRAC_DEC_2(_r, _m); \
+ \
+ if (_r_f1 == Y##_f1) \
+ { \
+ /* This is a special case, not an optimization \
+ (_r/Y##_f1 would not fit into UWtype). \
+ As _r is guaranteed to be < Y, R##_f0 can be either \
+ (UWtype)-1 or (UWtype)-2. But as we know what kind \
+ of bits it is (sticky, guard, round), we don't care. \
+ We also don't care what the reminder is, because the \
+ guard bit will be set anyway. -jj */ \
+ R##_f0 = -1; \
+ } \
+ else \
+ { \
+ udiv_qrnnd(R##_f0, _r_f1, _r_f1, _r_f0, Y##_f1); \
+ umul_ppmm(_m_f1, _m_f0, R##_f0, Y##_f0); \
+ _r_f0 = 0; \
+ if (_FP_FRAC_GT_2(_m, _r)) \
+ { \
+ R##_f0--; \
+ _FP_FRAC_ADD_2(_r, Y, _r); \
+ if (_FP_FRAC_GE_2(_r, Y) && _FP_FRAC_GT_2(_m, _r)) \
+ { \
+ R##_f0--; \
+ _FP_FRAC_ADD_2(_r, Y, _r); \
+ } \
+ } \
+ if (!_FP_FRAC_EQ_2(_r, _m)) \
+ R##_f0 |= _FP_WORK_STICKY; \
+ } \
+ } while (0)
+
+
+#define _FP_DIV_MEAT_2_gmp(fs, R, X, Y) \
+ do { \
+ _FP_W_TYPE _x[4], _y[2], _z[4]; \
+ _y[0] = Y##_f0; _y[1] = Y##_f1; \
+ _x[0] = _x[3] = 0; \
+ if (_FP_FRAC_GT_2(X, Y)) \
+ { \
+ R##_e++; \
+ _x[1] = (X##_f0 << (_FP_WFRACBITS_##fs-1 - _FP_W_TYPE_SIZE) | \
+ X##_f1 >> (_FP_W_TYPE_SIZE - \
+ (_FP_WFRACBITS_##fs-1 - _FP_W_TYPE_SIZE))); \
+ _x[2] = X##_f1 << (_FP_WFRACBITS_##fs-1 - _FP_W_TYPE_SIZE); \
+ } \
+ else \
+ { \
+ _x[1] = (X##_f0 << (_FP_WFRACBITS_##fs - _FP_W_TYPE_SIZE) | \
+ X##_f1 >> (_FP_W_TYPE_SIZE - \
+ (_FP_WFRACBITS_##fs - _FP_W_TYPE_SIZE))); \
+ _x[2] = X##_f1 << (_FP_WFRACBITS_##fs - _FP_W_TYPE_SIZE); \
+ } \
+ \
+ (void) mpn_divrem (_z, 0, _x, 4, _y, 2); \
+ R##_f1 = _z[1]; \
+ R##_f0 = _z[0] | ((_x[0] | _x[1]) != 0); \
+ } while (0)
+
+
+/*
+ * Square root algorithms:
+ * We have just one right now, maybe Newton approximation
+ * should be added for those machines where division is fast.
+ */
+
+#define _FP_SQRT_MEAT_2(R, S, T, X, q) \
+ do { \
+ while (q) \
+ { \
+ T##_f1 = S##_f1 + q; \
+ if (T##_f1 <= X##_f1) \
+ { \
+ S##_f1 = T##_f1 + q; \
+ X##_f1 -= T##_f1; \
+ R##_f1 += q; \
+ } \
+ _FP_FRAC_SLL_2(X, 1); \
+ q >>= 1; \
+ } \
+ q = (_FP_W_TYPE)1 << (_FP_W_TYPE_SIZE - 1); \
+ while (q != _FP_WORK_ROUND) \
+ { \
+ T##_f0 = S##_f0 + q; \
+ T##_f1 = S##_f1; \
+ if (T##_f1 < X##_f1 || \
+ (T##_f1 == X##_f1 && T##_f0 <= X##_f0)) \
+ { \
+ S##_f0 = T##_f0 + q; \
+ S##_f1 += (T##_f0 > S##_f0); \
+ _FP_FRAC_DEC_2(X, T); \
+ R##_f0 += q; \
+ } \
+ _FP_FRAC_SLL_2(X, 1); \
+ q >>= 1; \
+ } \
+ if (X##_f0 | X##_f1) \
+ { \
+ if (S##_f1 < X##_f1 || \
+ (S##_f1 == X##_f1 && S##_f0 < X##_f0)) \
+ R##_f0 |= _FP_WORK_ROUND; \
+ R##_f0 |= _FP_WORK_STICKY; \
+ } \
+ } while (0)
+
+
+/*
+ * Assembly/disassembly for converting to/from integral types.
+ * No shifting or overflow handled here.
+ */
+
+#define _FP_FRAC_ASSEMBLE_2(r, X, rsize) \
+(void)((rsize <= _FP_W_TYPE_SIZE) \
+ ? ({ r = X##_f0; }) \
+ : ({ \
+ r = X##_f1; \
+ r <<= _FP_W_TYPE_SIZE; \
+ r += X##_f0; \
+ }))
+
+#define _FP_FRAC_DISASSEMBLE_2(X, r, rsize) \
+ do { \
+ X##_f0 = r; \
+ X##_f1 = (rsize <= _FP_W_TYPE_SIZE ? 0 : r >> _FP_W_TYPE_SIZE); \
+ } while (0)
+
+/*
+ * Convert FP values between word sizes
+ */
+
+#define _FP_FRAC_COPY_1_2(D, S) (D##_f = S##_f0)
+
+#define _FP_FRAC_COPY_2_1(D, S) ((D##_f0 = S##_f), (D##_f1 = 0))
diff --git a/gcc/config/soft-fp/op-4.h b/gcc/config/soft-fp/op-4.h
new file mode 100644
index 00000000000..34f5098e8c2
--- /dev/null
+++ b/gcc/config/soft-fp/op-4.h
@@ -0,0 +1,686 @@
+/* Software floating-point emulation.
+ Basic four-word fraction declaration and manipulation.
+ Copyright (C) 1997,1998,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com),
+ Jakub Jelinek (jj@ultra.linux.cz),
+ David S. Miller (davem@redhat.com) and
+ Peter Maydell (pmaydell@chiark.greenend.org.uk).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#define _FP_FRAC_DECL_4(X) _FP_W_TYPE X##_f[4]
+#define _FP_FRAC_COPY_4(D,S) \
+ (D##_f[0] = S##_f[0], D##_f[1] = S##_f[1], \
+ D##_f[2] = S##_f[2], D##_f[3] = S##_f[3])
+#define _FP_FRAC_SET_4(X,I) __FP_FRAC_SET_4(X, I)
+#define _FP_FRAC_HIGH_4(X) (X##_f[3])
+#define _FP_FRAC_LOW_4(X) (X##_f[0])
+#define _FP_FRAC_WORD_4(X,w) (X##_f[w])
+
+#define _FP_FRAC_SLL_4(X,N) \
+ do { \
+ _FP_I_TYPE _up, _down, _skip, _i; \
+ _skip = (N) / _FP_W_TYPE_SIZE; \
+ _up = (N) % _FP_W_TYPE_SIZE; \
+ _down = _FP_W_TYPE_SIZE - _up; \
+ if (!_up) \
+ for (_i = 3; _i >= _skip; --_i) \
+ X##_f[_i] = X##_f[_i-_skip]; \
+ else \
+ { \
+ for (_i = 3; _i > _skip; --_i) \
+ X##_f[_i] = X##_f[_i-_skip] << _up \
+ | X##_f[_i-_skip-1] >> _down; \
+ X##_f[_i--] = X##_f[0] << _up; \
+ } \
+ for (; _i >= 0; --_i) \
+ X##_f[_i] = 0; \
+ } while (0)
+
+/* This one was broken too */
+#define _FP_FRAC_SRL_4(X,N) \
+ do { \
+ _FP_I_TYPE _up, _down, _skip, _i; \
+ _skip = (N) / _FP_W_TYPE_SIZE; \
+ _down = (N) % _FP_W_TYPE_SIZE; \
+ _up = _FP_W_TYPE_SIZE - _down; \
+ if (!_down) \
+ for (_i = 0; _i <= 3-_skip; ++_i) \
+ X##_f[_i] = X##_f[_i+_skip]; \
+ else \
+ { \
+ for (_i = 0; _i < 3-_skip; ++_i) \
+ X##_f[_i] = X##_f[_i+_skip] >> _down \
+ | X##_f[_i+_skip+1] << _up; \
+ X##_f[_i++] = X##_f[3] >> _down; \
+ } \
+ for (; _i < 4; ++_i) \
+ X##_f[_i] = 0; \
+ } while (0)
+
+
+/* Right shift with sticky-lsb.
+ * What this actually means is that we do a standard right-shift,
+ * but that if any of the bits that fall off the right hand side
+ * were one then we always set the LSbit.
+ */
+#define _FP_FRAC_SRST_4(X,S,N,size) \
+ do { \
+ _FP_I_TYPE _up, _down, _skip, _i; \
+ _FP_W_TYPE _s; \
+ _skip = (N) / _FP_W_TYPE_SIZE; \
+ _down = (N) % _FP_W_TYPE_SIZE; \
+ _up = _FP_W_TYPE_SIZE - _down; \
+ for (_s = _i = 0; _i < _skip; ++_i) \
+ _s |= X##_f[_i]; \
+ if (!_down) \
+ for (_i = 0; _i <= 3-_skip; ++_i) \
+ X##_f[_i] = X##_f[_i+_skip]; \
+ else \
+ { \
+ _s |= X##_f[_i] << _up; \
+ for (_i = 0; _i < 3-_skip; ++_i) \
+ X##_f[_i] = X##_f[_i+_skip] >> _down \
+ | X##_f[_i+_skip+1] << _up; \
+ X##_f[_i++] = X##_f[3] >> _down; \
+ } \
+ for (; _i < 4; ++_i) \
+ X##_f[_i] = 0; \
+ S = (_s != 0); \
+ } while (0)
+
+#define _FP_FRAC_SRS_4(X,N,size) \
+ do { \
+ int _sticky; \
+ _FP_FRAC_SRST_4(X, _sticky, N, size); \
+ X##_f[0] |= _sticky; \
+ } while (0)
+
+#define _FP_FRAC_ADD_4(R,X,Y) \
+ __FP_FRAC_ADD_4(R##_f[3], R##_f[2], R##_f[1], R##_f[0], \
+ X##_f[3], X##_f[2], X##_f[1], X##_f[0], \
+ Y##_f[3], Y##_f[2], Y##_f[1], Y##_f[0])
+
+#define _FP_FRAC_SUB_4(R,X,Y) \
+ __FP_FRAC_SUB_4(R##_f[3], R##_f[2], R##_f[1], R##_f[0], \
+ X##_f[3], X##_f[2], X##_f[1], X##_f[0], \
+ Y##_f[3], Y##_f[2], Y##_f[1], Y##_f[0])
+
+#define _FP_FRAC_DEC_4(X,Y) \
+ __FP_FRAC_DEC_4(X##_f[3], X##_f[2], X##_f[1], X##_f[0], \
+ Y##_f[3], Y##_f[2], Y##_f[1], Y##_f[0])
+
+#define _FP_FRAC_ADDI_4(X,I) \
+ __FP_FRAC_ADDI_4(X##_f[3], X##_f[2], X##_f[1], X##_f[0], I)
+
+#define _FP_ZEROFRAC_4 0,0,0,0
+#define _FP_MINFRAC_4 0,0,0,1
+#define _FP_MAXFRAC_4 (~(_FP_WS_TYPE)0), (~(_FP_WS_TYPE)0), (~(_FP_WS_TYPE)0), (~(_FP_WS_TYPE)0)
+
+#define _FP_FRAC_ZEROP_4(X) ((X##_f[0] | X##_f[1] | X##_f[2] | X##_f[3]) == 0)
+#define _FP_FRAC_NEGP_4(X) ((_FP_WS_TYPE)X##_f[3] < 0)
+#define _FP_FRAC_OVERP_4(fs,X) (_FP_FRAC_HIGH_##fs(X) & _FP_OVERFLOW_##fs)
+#define _FP_FRAC_CLEAR_OVERP_4(fs,X) (_FP_FRAC_HIGH_##fs(X) &= ~_FP_OVERFLOW_##fs)
+
+#define _FP_FRAC_EQ_4(X,Y) \
+ (X##_f[0] == Y##_f[0] && X##_f[1] == Y##_f[1] \
+ && X##_f[2] == Y##_f[2] && X##_f[3] == Y##_f[3])
+
+#define _FP_FRAC_GT_4(X,Y) \
+ (X##_f[3] > Y##_f[3] || \
+ (X##_f[3] == Y##_f[3] && (X##_f[2] > Y##_f[2] || \
+ (X##_f[2] == Y##_f[2] && (X##_f[1] > Y##_f[1] || \
+ (X##_f[1] == Y##_f[1] && X##_f[0] > Y##_f[0]) \
+ )) \
+ )) \
+ )
+
+#define _FP_FRAC_GE_4(X,Y) \
+ (X##_f[3] > Y##_f[3] || \
+ (X##_f[3] == Y##_f[3] && (X##_f[2] > Y##_f[2] || \
+ (X##_f[2] == Y##_f[2] && (X##_f[1] > Y##_f[1] || \
+ (X##_f[1] == Y##_f[1] && X##_f[0] >= Y##_f[0]) \
+ )) \
+ )) \
+ )
+
+
+#define _FP_FRAC_CLZ_4(R,X) \
+ do { \
+ if (X##_f[3]) \
+ { \
+ __FP_CLZ(R,X##_f[3]); \
+ } \
+ else if (X##_f[2]) \
+ { \
+ __FP_CLZ(R,X##_f[2]); \
+ R += _FP_W_TYPE_SIZE; \
+ } \
+ else if (X##_f[1]) \
+ { \
+ __FP_CLZ(R,X##_f[1]); \
+ R += _FP_W_TYPE_SIZE*2; \
+ } \
+ else \
+ { \
+ __FP_CLZ(R,X##_f[0]); \
+ R += _FP_W_TYPE_SIZE*3; \
+ } \
+ } while(0)
+
+
+#define _FP_UNPACK_RAW_4(fs, X, val) \
+ do { \
+ union _FP_UNION_##fs _flo; _flo.flt = (val); \
+ X##_f[0] = _flo.bits.frac0; \
+ X##_f[1] = _flo.bits.frac1; \
+ X##_f[2] = _flo.bits.frac2; \
+ X##_f[3] = _flo.bits.frac3; \
+ X##_e = _flo.bits.exp; \
+ X##_s = _flo.bits.sign; \
+ } while (0)
+
+#define _FP_UNPACK_RAW_4_P(fs, X, val) \
+ do { \
+ union _FP_UNION_##fs *_flo = \
+ (union _FP_UNION_##fs *)(val); \
+ \
+ X##_f[0] = _flo->bits.frac0; \
+ X##_f[1] = _flo->bits.frac1; \
+ X##_f[2] = _flo->bits.frac2; \
+ X##_f[3] = _flo->bits.frac3; \
+ X##_e = _flo->bits.exp; \
+ X##_s = _flo->bits.sign; \
+ } while (0)
+
+#define _FP_PACK_RAW_4(fs, val, X) \
+ do { \
+ union _FP_UNION_##fs _flo; \
+ _flo.bits.frac0 = X##_f[0]; \
+ _flo.bits.frac1 = X##_f[1]; \
+ _flo.bits.frac2 = X##_f[2]; \
+ _flo.bits.frac3 = X##_f[3]; \
+ _flo.bits.exp = X##_e; \
+ _flo.bits.sign = X##_s; \
+ (val) = _flo.flt; \
+ } while (0)
+
+#define _FP_PACK_RAW_4_P(fs, val, X) \
+ do { \
+ union _FP_UNION_##fs *_flo = \
+ (union _FP_UNION_##fs *)(val); \
+ \
+ _flo->bits.frac0 = X##_f[0]; \
+ _flo->bits.frac1 = X##_f[1]; \
+ _flo->bits.frac2 = X##_f[2]; \
+ _flo->bits.frac3 = X##_f[3]; \
+ _flo->bits.exp = X##_e; \
+ _flo->bits.sign = X##_s; \
+ } while (0)
+
+/*
+ * Multiplication algorithms:
+ */
+
+/* Given a 1W * 1W => 2W primitive, do the extended multiplication. */
+
+#define _FP_MUL_MEAT_4_wide(wfracbits, R, X, Y, doit) \
+ do { \
+ _FP_FRAC_DECL_8(_z); _FP_FRAC_DECL_2(_b); _FP_FRAC_DECL_2(_c); \
+ _FP_FRAC_DECL_2(_d); _FP_FRAC_DECL_2(_e); _FP_FRAC_DECL_2(_f); \
+ \
+ doit(_FP_FRAC_WORD_8(_z,1), _FP_FRAC_WORD_8(_z,0), X##_f[0], Y##_f[0]); \
+ doit(_b_f1, _b_f0, X##_f[0], Y##_f[1]); \
+ doit(_c_f1, _c_f0, X##_f[1], Y##_f[0]); \
+ doit(_d_f1, _d_f0, X##_f[1], Y##_f[1]); \
+ doit(_e_f1, _e_f0, X##_f[0], Y##_f[2]); \
+ doit(_f_f1, _f_f0, X##_f[2], Y##_f[0]); \
+ __FP_FRAC_ADD_3(_FP_FRAC_WORD_8(_z,3),_FP_FRAC_WORD_8(_z,2), \
+ _FP_FRAC_WORD_8(_z,1), 0,_b_f1,_b_f0, \
+ 0,0,_FP_FRAC_WORD_8(_z,1)); \
+ __FP_FRAC_ADD_3(_FP_FRAC_WORD_8(_z,3),_FP_FRAC_WORD_8(_z,2), \
+ _FP_FRAC_WORD_8(_z,1), 0,_c_f1,_c_f0, \
+ _FP_FRAC_WORD_8(_z,3),_FP_FRAC_WORD_8(_z,2), \
+ _FP_FRAC_WORD_8(_z,1)); \
+ __FP_FRAC_ADD_3(_FP_FRAC_WORD_8(_z,4),_FP_FRAC_WORD_8(_z,3), \
+ _FP_FRAC_WORD_8(_z,2), 0,_d_f1,_d_f0, \
+ 0,_FP_FRAC_WORD_8(_z,3),_FP_FRAC_WORD_8(_z,2)); \
+ __FP_FRAC_ADD_3(_FP_FRAC_WORD_8(_z,4),_FP_FRAC_WORD_8(_z,3), \
+ _FP_FRAC_WORD_8(_z,2), 0,_e_f1,_e_f0, \
+ _FP_FRAC_WORD_8(_z,4),_FP_FRAC_WORD_8(_z,3), \
+ _FP_FRAC_WORD_8(_z,2)); \
+ __FP_FRAC_ADD_3(_FP_FRAC_WORD_8(_z,4),_FP_FRAC_WORD_8(_z,3), \
+ _FP_FRAC_WORD_8(_z,2), 0,_f_f1,_f_f0, \
+ _FP_FRAC_WORD_8(_z,4),_FP_FRAC_WORD_8(_z,3), \
+ _FP_FRAC_WORD_8(_z,2)); \
+ doit(_b_f1, _b_f0, X##_f[0], Y##_f[3]); \
+ doit(_c_f1, _c_f0, X##_f[3], Y##_f[0]); \
+ doit(_d_f1, _d_f0, X##_f[1], Y##_f[2]); \
+ doit(_e_f1, _e_f0, X##_f[2], Y##_f[1]); \
+ __FP_FRAC_ADD_3(_FP_FRAC_WORD_8(_z,5),_FP_FRAC_WORD_8(_z,4), \
+ _FP_FRAC_WORD_8(_z,3), 0,_b_f1,_b_f0, \
+ 0,_FP_FRAC_WORD_8(_z,4),_FP_FRAC_WORD_8(_z,3)); \
+ __FP_FRAC_ADD_3(_FP_FRAC_WORD_8(_z,5),_FP_FRAC_WORD_8(_z,4), \
+ _FP_FRAC_WORD_8(_z,3), 0,_c_f1,_c_f0, \
+ _FP_FRAC_WORD_8(_z,5),_FP_FRAC_WORD_8(_z,4), \
+ _FP_FRAC_WORD_8(_z,3)); \
+ __FP_FRAC_ADD_3(_FP_FRAC_WORD_8(_z,5),_FP_FRAC_WORD_8(_z,4), \
+ _FP_FRAC_WORD_8(_z,3), 0,_d_f1,_d_f0, \
+ _FP_FRAC_WORD_8(_z,5),_FP_FRAC_WORD_8(_z,4), \
+ _FP_FRAC_WORD_8(_z,3)); \
+ __FP_FRAC_ADD_3(_FP_FRAC_WORD_8(_z,5),_FP_FRAC_WORD_8(_z,4), \
+ _FP_FRAC_WORD_8(_z,3), 0,_e_f1,_e_f0, \
+ _FP_FRAC_WORD_8(_z,5),_FP_FRAC_WORD_8(_z,4), \
+ _FP_FRAC_WORD_8(_z,3)); \
+ doit(_b_f1, _b_f0, X##_f[2], Y##_f[2]); \
+ doit(_c_f1, _c_f0, X##_f[1], Y##_f[3]); \
+ doit(_d_f1, _d_f0, X##_f[3], Y##_f[1]); \
+ doit(_e_f1, _e_f0, X##_f[2], Y##_f[3]); \
+ doit(_f_f1, _f_f0, X##_f[3], Y##_f[2]); \
+ __FP_FRAC_ADD_3(_FP_FRAC_WORD_8(_z,6),_FP_FRAC_WORD_8(_z,5), \
+ _FP_FRAC_WORD_8(_z,4), 0,_b_f1,_b_f0, \
+ 0,_FP_FRAC_WORD_8(_z,5),_FP_FRAC_WORD_8(_z,4)); \
+ __FP_FRAC_ADD_3(_FP_FRAC_WORD_8(_z,6),_FP_FRAC_WORD_8(_z,5), \
+ _FP_FRAC_WORD_8(_z,4), 0,_c_f1,_c_f0, \
+ _FP_FRAC_WORD_8(_z,6),_FP_FRAC_WORD_8(_z,5), \
+ _FP_FRAC_WORD_8(_z,4)); \
+ __FP_FRAC_ADD_3(_FP_FRAC_WORD_8(_z,6),_FP_FRAC_WORD_8(_z,5), \
+ _FP_FRAC_WORD_8(_z,4), 0,_d_f1,_d_f0, \
+ _FP_FRAC_WORD_8(_z,6),_FP_FRAC_WORD_8(_z,5), \
+ _FP_FRAC_WORD_8(_z,4)); \
+ __FP_FRAC_ADD_3(_FP_FRAC_WORD_8(_z,7),_FP_FRAC_WORD_8(_z,6), \
+ _FP_FRAC_WORD_8(_z,5), 0,_e_f1,_e_f0, \
+ 0,_FP_FRAC_WORD_8(_z,6),_FP_FRAC_WORD_8(_z,5)); \
+ __FP_FRAC_ADD_3(_FP_FRAC_WORD_8(_z,7),_FP_FRAC_WORD_8(_z,6), \
+ _FP_FRAC_WORD_8(_z,5), 0,_f_f1,_f_f0, \
+ _FP_FRAC_WORD_8(_z,7),_FP_FRAC_WORD_8(_z,6), \
+ _FP_FRAC_WORD_8(_z,5)); \
+ doit(_b_f1, _b_f0, X##_f[3], Y##_f[3]); \
+ __FP_FRAC_ADD_2(_FP_FRAC_WORD_8(_z,7),_FP_FRAC_WORD_8(_z,6), \
+ _b_f1,_b_f0, \
+ _FP_FRAC_WORD_8(_z,7),_FP_FRAC_WORD_8(_z,6)); \
+ \
+ /* Normalize since we know where the msb of the multiplicands \
+ were (bit B), we know that the msb of the of the product is \
+ at either 2B or 2B-1. */ \
+ _FP_FRAC_SRS_8(_z, wfracbits-1, 2*wfracbits); \
+ __FP_FRAC_SET_4(R, _FP_FRAC_WORD_8(_z,3), _FP_FRAC_WORD_8(_z,2), \
+ _FP_FRAC_WORD_8(_z,1), _FP_FRAC_WORD_8(_z,0)); \
+ } while (0)
+
+#define _FP_MUL_MEAT_4_gmp(wfracbits, R, X, Y) \
+ do { \
+ _FP_FRAC_DECL_8(_z); \
+ \
+ mpn_mul_n(_z_f, _x_f, _y_f, 4); \
+ \
+ /* Normalize since we know where the msb of the multiplicands \
+ were (bit B), we know that the msb of the of the product is \
+ at either 2B or 2B-1. */ \
+ _FP_FRAC_SRS_8(_z, wfracbits-1, 2*wfracbits); \
+ __FP_FRAC_SET_4(R, _FP_FRAC_WORD_8(_z,3), _FP_FRAC_WORD_8(_z,2), \
+ _FP_FRAC_WORD_8(_z,1), _FP_FRAC_WORD_8(_z,0)); \
+ } while (0)
+
+/*
+ * Helper utility for _FP_DIV_MEAT_4_udiv:
+ * pppp = m * nnn
+ */
+#define umul_ppppmnnn(p3,p2,p1,p0,m,n2,n1,n0) \
+ do { \
+ UWtype _t; \
+ umul_ppmm(p1,p0,m,n0); \
+ umul_ppmm(p2,_t,m,n1); \
+ __FP_FRAC_ADDI_2(p2,p1,_t); \
+ umul_ppmm(p3,_t,m,n2); \
+ __FP_FRAC_ADDI_2(p3,p2,_t); \
+ } while (0)
+
+/*
+ * Division algorithms:
+ */
+
+#define _FP_DIV_MEAT_4_udiv(fs, R, X, Y) \
+ do { \
+ int _i; \
+ _FP_FRAC_DECL_4(_n); _FP_FRAC_DECL_4(_m); \
+ _FP_FRAC_SET_4(_n, _FP_ZEROFRAC_4); \
+ if (_FP_FRAC_GT_4(X, Y)) \
+ { \
+ _n_f[3] = X##_f[0] << (_FP_W_TYPE_SIZE - 1); \
+ _FP_FRAC_SRL_4(X, 1); \
+ } \
+ else \
+ R##_e--; \
+ \
+ /* Normalize, i.e. make the most significant bit of the \
+ denominator set. */ \
+ _FP_FRAC_SLL_4(Y, _FP_WFRACXBITS_##fs); \
+ \
+ for (_i = 3; ; _i--) \
+ { \
+ if (X##_f[3] == Y##_f[3]) \
+ { \
+ /* This is a special case, not an optimization \
+ (X##_f[3]/Y##_f[3] would not fit into UWtype). \
+ As X## is guaranteed to be < Y, R##_f[_i] can be either \
+ (UWtype)-1 or (UWtype)-2. */ \
+ R##_f[_i] = -1; \
+ if (!_i) \
+ break; \
+ __FP_FRAC_SUB_4(X##_f[3], X##_f[2], X##_f[1], X##_f[0], \
+ Y##_f[2], Y##_f[1], Y##_f[0], 0, \
+ X##_f[2], X##_f[1], X##_f[0], _n_f[_i]); \
+ _FP_FRAC_SUB_4(X, Y, X); \
+ if (X##_f[3] > Y##_f[3]) \
+ { \
+ R##_f[_i] = -2; \
+ _FP_FRAC_ADD_4(X, Y, X); \
+ } \
+ } \
+ else \
+ { \
+ udiv_qrnnd(R##_f[_i], X##_f[3], X##_f[3], X##_f[2], Y##_f[3]); \
+ umul_ppppmnnn(_m_f[3], _m_f[2], _m_f[1], _m_f[0], \
+ R##_f[_i], Y##_f[2], Y##_f[1], Y##_f[0]); \
+ X##_f[2] = X##_f[1]; \
+ X##_f[1] = X##_f[0]; \
+ X##_f[0] = _n_f[_i]; \
+ if (_FP_FRAC_GT_4(_m, X)) \
+ { \
+ R##_f[_i]--; \
+ _FP_FRAC_ADD_4(X, Y, X); \
+ if (_FP_FRAC_GE_4(X, Y) && _FP_FRAC_GT_4(_m, X)) \
+ { \
+ R##_f[_i]--; \
+ _FP_FRAC_ADD_4(X, Y, X); \
+ } \
+ } \
+ _FP_FRAC_DEC_4(X, _m); \
+ if (!_i) \
+ { \
+ if (!_FP_FRAC_EQ_4(X, _m)) \
+ R##_f[0] |= _FP_WORK_STICKY; \
+ break; \
+ } \
+ } \
+ } \
+ } while (0)
+
+
+/*
+ * Square root algorithms:
+ * We have just one right now, maybe Newton approximation
+ * should be added for those machines where division is fast.
+ */
+
+#define _FP_SQRT_MEAT_4(R, S, T, X, q) \
+ do { \
+ while (q) \
+ { \
+ T##_f[3] = S##_f[3] + q; \
+ if (T##_f[3] <= X##_f[3]) \
+ { \
+ S##_f[3] = T##_f[3] + q; \
+ X##_f[3] -= T##_f[3]; \
+ R##_f[3] += q; \
+ } \
+ _FP_FRAC_SLL_4(X, 1); \
+ q >>= 1; \
+ } \
+ q = (_FP_W_TYPE)1 << (_FP_W_TYPE_SIZE - 1); \
+ while (q) \
+ { \
+ T##_f[2] = S##_f[2] + q; \
+ T##_f[3] = S##_f[3]; \
+ if (T##_f[3] < X##_f[3] || \
+ (T##_f[3] == X##_f[3] && T##_f[2] <= X##_f[2])) \
+ { \
+ S##_f[2] = T##_f[2] + q; \
+ S##_f[3] += (T##_f[2] > S##_f[2]); \
+ __FP_FRAC_DEC_2(X##_f[3], X##_f[2], \
+ T##_f[3], T##_f[2]); \
+ R##_f[2] += q; \
+ } \
+ _FP_FRAC_SLL_4(X, 1); \
+ q >>= 1; \
+ } \
+ q = (_FP_W_TYPE)1 << (_FP_W_TYPE_SIZE - 1); \
+ while (q) \
+ { \
+ T##_f[1] = S##_f[1] + q; \
+ T##_f[2] = S##_f[2]; \
+ T##_f[3] = S##_f[3]; \
+ if (T##_f[3] < X##_f[3] || \
+ (T##_f[3] == X##_f[3] && (T##_f[2] < X##_f[2] || \
+ (T##_f[2] == X##_f[2] && T##_f[1] <= X##_f[1])))) \
+ { \
+ S##_f[1] = T##_f[1] + q; \
+ S##_f[2] += (T##_f[1] > S##_f[1]); \
+ S##_f[3] += (T##_f[2] > S##_f[2]); \
+ __FP_FRAC_DEC_3(X##_f[3], X##_f[2], X##_f[1], \
+ T##_f[3], T##_f[2], T##_f[1]); \
+ R##_f[1] += q; \
+ } \
+ _FP_FRAC_SLL_4(X, 1); \
+ q >>= 1; \
+ } \
+ q = (_FP_W_TYPE)1 << (_FP_W_TYPE_SIZE - 1); \
+ while (q != _FP_WORK_ROUND) \
+ { \
+ T##_f[0] = S##_f[0] + q; \
+ T##_f[1] = S##_f[1]; \
+ T##_f[2] = S##_f[2]; \
+ T##_f[3] = S##_f[3]; \
+ if (_FP_FRAC_GE_4(X,T)) \
+ { \
+ S##_f[0] = T##_f[0] + q; \
+ S##_f[1] += (T##_f[0] > S##_f[0]); \
+ S##_f[2] += (T##_f[1] > S##_f[1]); \
+ S##_f[3] += (T##_f[2] > S##_f[2]); \
+ _FP_FRAC_DEC_4(X, T); \
+ R##_f[0] += q; \
+ } \
+ _FP_FRAC_SLL_4(X, 1); \
+ q >>= 1; \
+ } \
+ if (!_FP_FRAC_ZEROP_4(X)) \
+ { \
+ if (_FP_FRAC_GT_4(X,S)) \
+ R##_f[0] |= _FP_WORK_ROUND; \
+ R##_f[0] |= _FP_WORK_STICKY; \
+ } \
+ } while (0)
+
+
+/*
+ * Internals
+ */
+
+#define __FP_FRAC_SET_4(X,I3,I2,I1,I0) \
+ (X##_f[3] = I3, X##_f[2] = I2, X##_f[1] = I1, X##_f[0] = I0)
+
+#ifndef __FP_FRAC_ADD_3
+#define __FP_FRAC_ADD_3(r2,r1,r0,x2,x1,x0,y2,y1,y0) \
+ do { \
+ _FP_W_TYPE _c1, _c2; \
+ r0 = x0 + y0; \
+ _c1 = r0 < x0; \
+ r1 = x1 + y1; \
+ _c2 = r1 < x1; \
+ r1 += _c1; \
+ _c2 |= r1 < _c1; \
+ r2 = x2 + y2 + _c2; \
+ } while (0)
+#endif
+
+#ifndef __FP_FRAC_ADD_4
+#define __FP_FRAC_ADD_4(r3,r2,r1,r0,x3,x2,x1,x0,y3,y2,y1,y0) \
+ do { \
+ _FP_W_TYPE _c1, _c2, _c3; \
+ r0 = x0 + y0; \
+ _c1 = r0 < x0; \
+ r1 = x1 + y1; \
+ _c2 = r1 < x1; \
+ r1 += _c1; \
+ _c2 |= r1 < _c1; \
+ r2 = x2 + y2; \
+ _c3 = r2 < x2; \
+ r2 += _c2; \
+ _c3 |= r2 < _c2; \
+ r3 = x3 + y3 + _c3; \
+ } while (0)
+#endif
+
+#ifndef __FP_FRAC_SUB_3
+#define __FP_FRAC_SUB_3(r2,r1,r0,x2,x1,x0,y2,y1,y0) \
+ do { \
+ _FP_W_TYPE _c1, _c2; \
+ r0 = x0 - y0; \
+ _c1 = r0 > x0; \
+ r1 = x1 - y1; \
+ _c2 = r1 > x1; \
+ r1 -= _c1; \
+ _c2 |= r1 > _c1; \
+ r2 = x2 - y2 - _c2; \
+ } while (0)
+#endif
+
+#ifndef __FP_FRAC_SUB_4
+#define __FP_FRAC_SUB_4(r3,r2,r1,r0,x3,x2,x1,x0,y3,y2,y1,y0) \
+ do { \
+ _FP_W_TYPE _c1, _c2, _c3; \
+ r0 = x0 - y0; \
+ _c1 = r0 > x0; \
+ r1 = x1 - y1; \
+ _c2 = r1 > x1; \
+ r1 -= _c1; \
+ _c2 |= r1 > _c1; \
+ r2 = x2 - y2; \
+ _c3 = r2 > x2; \
+ r2 -= _c2; \
+ _c3 |= r2 > _c2; \
+ r3 = x3 - y3 - _c3; \
+ } while (0)
+#endif
+
+#ifndef __FP_FRAC_DEC_3
+#define __FP_FRAC_DEC_3(x2,x1,x0,y2,y1,y0) \
+ do { \
+ UWtype _t0, _t1, _t2; \
+ _t0 = x0, _t1 = x1, _t2 = x2; \
+ __FP_FRAC_SUB_3 (x2, x1, x0, _t2, _t1, _t0, y2, y1, y0); \
+ } while (0)
+#endif
+
+#ifndef __FP_FRAC_DEC_4
+#define __FP_FRAC_DEC_4(x3,x2,x1,x0,y3,y2,y1,y0) \
+ do { \
+ UWtype _t0, _t1, _t2, _t3; \
+ _t0 = x0, _t1 = x1, _t2 = x2, _t3 = x3; \
+ __FP_FRAC_SUB_4 (x3,x2,x1,x0,_t3,_t2,_t1,_t0, y3,y2,y1,y0); \
+ } while (0)
+#endif
+
+#ifndef __FP_FRAC_ADDI_4
+#define __FP_FRAC_ADDI_4(x3,x2,x1,x0,i) \
+ do { \
+ UWtype _t; \
+ _t = ((x0 += i) < i); \
+ x1 += _t; _t = (x1 < _t); \
+ x2 += _t; _t = (x2 < _t); \
+ x3 += _t; \
+ } while (0)
+#endif
+
+/* Convert FP values between word sizes. This appears to be more
+ * complicated than I'd have expected it to be, so these might be
+ * wrong... These macros are in any case somewhat bogus because they
+ * use information about what various FRAC_n variables look like
+ * internally [eg, that 2 word vars are X_f0 and x_f1]. But so do
+ * the ones in op-2.h and op-1.h.
+ */
+#define _FP_FRAC_COPY_1_4(D, S) (D##_f = S##_f[0])
+
+#define _FP_FRAC_COPY_2_4(D, S) \
+do { \
+ D##_f0 = S##_f[0]; \
+ D##_f1 = S##_f[1]; \
+} while (0)
+
+/* Assembly/disassembly for converting to/from integral types.
+ * No shifting or overflow handled here.
+ */
+/* Put the FP value X into r, which is an integer of size rsize. */
+#define _FP_FRAC_ASSEMBLE_4(r, X, rsize) \
+ do { \
+ if (rsize <= _FP_W_TYPE_SIZE) \
+ r = X##_f[0]; \
+ else if (rsize <= 2*_FP_W_TYPE_SIZE) \
+ { \
+ r = X##_f[1]; \
+ r <<= _FP_W_TYPE_SIZE; \
+ r += X##_f[0]; \
+ } \
+ else \
+ { \
+ /* I'm feeling lazy so we deal with int == 3words (implausible)*/ \
+ /* and int == 4words as a single case. */ \
+ r = X##_f[3]; \
+ r <<= _FP_W_TYPE_SIZE; \
+ r += X##_f[2]; \
+ r <<= _FP_W_TYPE_SIZE; \
+ r += X##_f[1]; \
+ r <<= _FP_W_TYPE_SIZE; \
+ r += X##_f[0]; \
+ } \
+ } while (0)
+
+/* "No disassemble Number Five!" */
+/* move an integer of size rsize into X's fractional part. We rely on
+ * the _f[] array consisting of words of size _FP_W_TYPE_SIZE to avoid
+ * having to mask the values we store into it.
+ */
+#define _FP_FRAC_DISASSEMBLE_4(X, r, rsize) \
+ do { \
+ X##_f[0] = r; \
+ X##_f[1] = (rsize <= _FP_W_TYPE_SIZE ? 0 : r >> _FP_W_TYPE_SIZE); \
+ X##_f[2] = (rsize <= 2*_FP_W_TYPE_SIZE ? 0 : r >> 2*_FP_W_TYPE_SIZE); \
+ X##_f[3] = (rsize <= 3*_FP_W_TYPE_SIZE ? 0 : r >> 3*_FP_W_TYPE_SIZE); \
+ } while (0);
+
+#define _FP_FRAC_COPY_4_1(D, S) \
+do { \
+ D##_f[0] = S##_f; \
+ D##_f[1] = D##_f[2] = D##_f[3] = 0; \
+} while (0)
+
+#define _FP_FRAC_COPY_4_2(D, S) \
+do { \
+ D##_f[0] = S##_f0; \
+ D##_f[1] = S##_f1; \
+ D##_f[2] = D##_f[3] = 0; \
+} while (0)
diff --git a/gcc/config/soft-fp/op-8.h b/gcc/config/soft-fp/op-8.h
new file mode 100644
index 00000000000..e0612a5e62f
--- /dev/null
+++ b/gcc/config/soft-fp/op-8.h
@@ -0,0 +1,111 @@
+/* Software floating-point emulation.
+ Basic eight-word fraction declaration and manipulation.
+ Copyright (C) 1997,1998,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com),
+ Jakub Jelinek (jj@ultra.linux.cz) and
+ Peter Maydell (pmaydell@chiark.greenend.org.uk).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+/* We need just a few things from here for op-4, if we ever need some
+ other macros, they can be added. */
+#define _FP_FRAC_DECL_8(X) _FP_W_TYPE X##_f[8]
+#define _FP_FRAC_HIGH_8(X) (X##_f[7])
+#define _FP_FRAC_LOW_8(X) (X##_f[0])
+#define _FP_FRAC_WORD_8(X,w) (X##_f[w])
+
+#define _FP_FRAC_SLL_8(X,N) \
+ do { \
+ _FP_I_TYPE _up, _down, _skip, _i; \
+ _skip = (N) / _FP_W_TYPE_SIZE; \
+ _up = (N) % _FP_W_TYPE_SIZE; \
+ _down = _FP_W_TYPE_SIZE - _up; \
+ if (!_up) \
+ for (_i = 7; _i >= _skip; --_i) \
+ X##_f[_i] = X##_f[_i-_skip]; \
+ else \
+ { \
+ for (_i = 7; _i > _skip; --_i) \
+ X##_f[_i] = X##_f[_i-_skip] << _up \
+ | X##_f[_i-_skip-1] >> _down; \
+ X##_f[_i--] = X##_f[0] << _up; \
+ } \
+ for (; _i >= 0; --_i) \
+ X##_f[_i] = 0; \
+ } while (0)
+
+#define _FP_FRAC_SRL_8(X,N) \
+ do { \
+ _FP_I_TYPE _up, _down, _skip, _i; \
+ _skip = (N) / _FP_W_TYPE_SIZE; \
+ _down = (N) % _FP_W_TYPE_SIZE; \
+ _up = _FP_W_TYPE_SIZE - _down; \
+ if (!_down) \
+ for (_i = 0; _i <= 7-_skip; ++_i) \
+ X##_f[_i] = X##_f[_i+_skip]; \
+ else \
+ { \
+ for (_i = 0; _i < 7-_skip; ++_i) \
+ X##_f[_i] = X##_f[_i+_skip] >> _down \
+ | X##_f[_i+_skip+1] << _up; \
+ X##_f[_i++] = X##_f[7] >> _down; \
+ } \
+ for (; _i < 8; ++_i) \
+ X##_f[_i] = 0; \
+ } while (0)
+
+
+/* Right shift with sticky-lsb.
+ * What this actually means is that we do a standard right-shift,
+ * but that if any of the bits that fall off the right hand side
+ * were one then we always set the LSbit.
+ */
+#define _FP_FRAC_SRS_8(X,N,size) \
+ do { \
+ _FP_I_TYPE _up, _down, _skip, _i; \
+ _FP_W_TYPE _s; \
+ _skip = (N) / _FP_W_TYPE_SIZE; \
+ _down = (N) % _FP_W_TYPE_SIZE; \
+ _up = _FP_W_TYPE_SIZE - _down; \
+ for (_s = _i = 0; _i < _skip; ++_i) \
+ _s |= X##_f[_i]; \
+ if (!_down) \
+ for (_i = 0; _i <= 7-_skip; ++_i) \
+ X##_f[_i] = X##_f[_i+_skip]; \
+ else \
+ { \
+ _s |= X##_f[_i] << _up; \
+ for (_i = 0; _i < 7-_skip; ++_i) \
+ X##_f[_i] = X##_f[_i+_skip] >> _down \
+ | X##_f[_i+_skip+1] << _up; \
+ X##_f[_i++] = X##_f[7] >> _down; \
+ } \
+ for (; _i < 8; ++_i) \
+ X##_f[_i] = 0; \
+ /* don't fix the LSB until the very end when we're sure f[0] is stable */ \
+ X##_f[0] |= (_s != 0); \
+ } while (0)
+
diff --git a/gcc/config/soft-fp/op-common.h b/gcc/config/soft-fp/op-common.h
new file mode 100644
index 00000000000..4ec7fade485
--- /dev/null
+++ b/gcc/config/soft-fp/op-common.h
@@ -0,0 +1,1330 @@
+/* Software floating-point emulation. Common operations.
+ Copyright (C) 1997,1998,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com),
+ Jakub Jelinek (jj@ultra.linux.cz),
+ David S. Miller (davem@redhat.com) and
+ Peter Maydell (pmaydell@chiark.greenend.org.uk).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#define _FP_DECL(wc, X) \
+ _FP_I_TYPE X##_c __attribute__((unused)), X##_s, X##_e; \
+ _FP_FRAC_DECL_##wc(X)
+
+/*
+ * Finish truely unpacking a native fp value by classifying the kind
+ * of fp value and normalizing both the exponent and the fraction.
+ */
+
+#define _FP_UNPACK_CANONICAL(fs, wc, X) \
+do { \
+ switch (X##_e) \
+ { \
+ default: \
+ _FP_FRAC_HIGH_RAW_##fs(X) |= _FP_IMPLBIT_##fs; \
+ _FP_FRAC_SLL_##wc(X, _FP_WORKBITS); \
+ X##_e -= _FP_EXPBIAS_##fs; \
+ X##_c = FP_CLS_NORMAL; \
+ break; \
+ \
+ case 0: \
+ if (_FP_FRAC_ZEROP_##wc(X)) \
+ X##_c = FP_CLS_ZERO; \
+ else \
+ { \
+ /* a denormalized number */ \
+ _FP_I_TYPE _shift; \
+ _FP_FRAC_CLZ_##wc(_shift, X); \
+ _shift -= _FP_FRACXBITS_##fs; \
+ _FP_FRAC_SLL_##wc(X, (_shift+_FP_WORKBITS)); \
+ X##_e -= _FP_EXPBIAS_##fs - 1 + _shift; \
+ X##_c = FP_CLS_NORMAL; \
+ FP_SET_EXCEPTION(FP_EX_DENORM); \
+ } \
+ break; \
+ \
+ case _FP_EXPMAX_##fs: \
+ if (_FP_FRAC_ZEROP_##wc(X)) \
+ X##_c = FP_CLS_INF; \
+ else \
+ { \
+ X##_c = FP_CLS_NAN; \
+ /* Check for signaling NaN */ \
+ if (!(_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs)) \
+ FP_SET_EXCEPTION(FP_EX_INVALID); \
+ } \
+ break; \
+ } \
+} while (0)
+
+/* Finish unpacking an fp value in semi-raw mode: the mantissa is
+ shifted by _FP_WORKBITS but the implicit MSB is not inserted and
+ other classification is not done. */
+#define _FP_UNPACK_SEMIRAW(fs, wc, X) _FP_FRAC_SLL_##wc(X, _FP_WORKBITS)
+
+/* A semi-raw value has overflowed to infinity. Adjust the mantissa
+ and exponent appropriately. */
+#define _FP_OVERFLOW_SEMIRAW(fs, wc, X) \
+do { \
+ if (FP_ROUNDMODE == FP_RND_NEAREST \
+ || (FP_ROUNDMODE == FP_RND_PINF && !X##_s) \
+ || (FP_ROUNDMODE == FP_RND_MINF && X##_s)) \
+ { \
+ X##_e = _FP_EXPMAX_##fs; \
+ _FP_FRAC_SET_##wc(X, _FP_ZEROFRAC_##wc); \
+ } \
+ else \
+ { \
+ X##_e = _FP_EXPMAX_##fs - 1; \
+ FP_SET_EXCEPTION(FP_EX_OVERFLOW); \
+ FP_SET_EXCEPTION(FP_EX_INEXACT); \
+ _FP_FRAC_SET_##wc(X, _FP_MAXFRAC_##wc); \
+ } \
+} while (0)
+
+/* Check for a semi-raw value being a signaling NaN and raise the
+ invalid exception if so. */
+#define _FP_CHECK_SIGNAN_SEMIRAW(fs, wc, X) \
+do { \
+ if (X##_e == _FP_EXPMAX_##fs \
+ && !_FP_FRAC_ZEROP_##wc(X) \
+ && !(_FP_FRAC_HIGH_##fs(X) & _FP_QNANBIT_SH_##fs)) \
+ FP_SET_EXCEPTION(FP_EX_INVALID); \
+} while (0)
+
+/* Choose a NaN result from an operation on two semi-raw NaN
+ values. */
+#define _FP_CHOOSENAN_SEMIRAW(fs, wc, R, X, Y, OP) \
+do { \
+ /* _FP_CHOOSENAN expects raw values, so shift as required. */ \
+ _FP_FRAC_SRL_##wc(X, _FP_WORKBITS); \
+ _FP_FRAC_SRL_##wc(Y, _FP_WORKBITS); \
+ _FP_CHOOSENAN(fs, wc, R, X, Y, OP); \
+ _FP_FRAC_SLL_##wc(R, _FP_WORKBITS); \
+} while (0)
+
+/* Test whether a biased exponent is normal (not zero or maximum). */
+#define _FP_EXP_NORMAL(fs, wc, X) (((X##_e + 1) & _FP_EXPMAX_##fs) > 1)
+
+/* Prepare to pack an fp value in semi-raw mode: the mantissa is
+ rounded and shifted right, with the rounding possibly increasing
+ the exponent (including changing a finite value to infinity). */
+#define _FP_PACK_SEMIRAW(fs, wc, X) \
+do { \
+ _FP_ROUND(wc, X); \
+ if (_FP_FRAC_HIGH_##fs(X) \
+ & (_FP_OVERFLOW_##fs >> 1)) \
+ { \
+ _FP_FRAC_HIGH_##fs(X) &= ~(_FP_OVERFLOW_##fs >> 1); \
+ X##_e++; \
+ if (X##_e == _FP_EXPMAX_##fs) \
+ _FP_OVERFLOW_SEMIRAW(fs, wc, X); \
+ } \
+ _FP_FRAC_SRL_##wc(X, _FP_WORKBITS); \
+ if (!_FP_EXP_NORMAL(fs, wc, X) && !_FP_FRAC_ZEROP_##wc(X)) \
+ { \
+ if (X##_e == 0) \
+ FP_SET_EXCEPTION(FP_EX_UNDERFLOW); \
+ else \
+ { \
+ if (!_FP_KEEPNANFRACP) \
+ { \
+ _FP_FRAC_SET_##wc(X, _FP_NANFRAC_##fs); \
+ X##_s = _FP_NANSIGN_##fs; \
+ } \
+ else \
+ _FP_FRAC_HIGH_RAW_##fs(X) |= _FP_QNANBIT_##fs; \
+ } \
+ } \
+} while (0)
+
+/*
+ * Before packing the bits back into the native fp result, take care
+ * of such mundane things as rounding and overflow. Also, for some
+ * kinds of fp values, the original parts may not have been fully
+ * extracted -- but that is ok, we can regenerate them now.
+ */
+
+#define _FP_PACK_CANONICAL(fs, wc, X) \
+do { \
+ switch (X##_c) \
+ { \
+ case FP_CLS_NORMAL: \
+ X##_e += _FP_EXPBIAS_##fs; \
+ if (X##_e > 0) \
+ { \
+ _FP_ROUND(wc, X); \
+ if (_FP_FRAC_OVERP_##wc(fs, X)) \
+ { \
+ _FP_FRAC_CLEAR_OVERP_##wc(fs, X); \
+ X##_e++; \
+ } \
+ _FP_FRAC_SRL_##wc(X, _FP_WORKBITS); \
+ if (X##_e >= _FP_EXPMAX_##fs) \
+ { \
+ /* overflow */ \
+ switch (FP_ROUNDMODE) \
+ { \
+ case FP_RND_NEAREST: \
+ X##_c = FP_CLS_INF; \
+ break; \
+ case FP_RND_PINF: \
+ if (!X##_s) X##_c = FP_CLS_INF; \
+ break; \
+ case FP_RND_MINF: \
+ if (X##_s) X##_c = FP_CLS_INF; \
+ break; \
+ } \
+ if (X##_c == FP_CLS_INF) \
+ { \
+ /* Overflow to infinity */ \
+ X##_e = _FP_EXPMAX_##fs; \
+ _FP_FRAC_SET_##wc(X, _FP_ZEROFRAC_##wc); \
+ } \
+ else \
+ { \
+ /* Overflow to maximum normal */ \
+ X##_e = _FP_EXPMAX_##fs - 1; \
+ _FP_FRAC_SET_##wc(X, _FP_MAXFRAC_##wc); \
+ } \
+ FP_SET_EXCEPTION(FP_EX_OVERFLOW); \
+ FP_SET_EXCEPTION(FP_EX_INEXACT); \
+ } \
+ } \
+ else \
+ { \
+ /* we've got a denormalized number */ \
+ X##_e = -X##_e + 1; \
+ if (X##_e <= _FP_WFRACBITS_##fs) \
+ { \
+ _FP_FRAC_SRS_##wc(X, X##_e, _FP_WFRACBITS_##fs); \
+ _FP_ROUND(wc, X); \
+ if (_FP_FRAC_HIGH_##fs(X) \
+ & (_FP_OVERFLOW_##fs >> 1)) \
+ { \
+ X##_e = 1; \
+ _FP_FRAC_SET_##wc(X, _FP_ZEROFRAC_##wc); \
+ } \
+ else \
+ { \
+ X##_e = 0; \
+ _FP_FRAC_SRL_##wc(X, _FP_WORKBITS); \
+ FP_SET_EXCEPTION(FP_EX_UNDERFLOW); \
+ } \
+ } \
+ else \
+ { \
+ /* underflow to zero */ \
+ X##_e = 0; \
+ if (!_FP_FRAC_ZEROP_##wc(X)) \
+ { \
+ _FP_FRAC_SET_##wc(X, _FP_MINFRAC_##wc); \
+ _FP_ROUND(wc, X); \
+ _FP_FRAC_LOW_##wc(X) >>= (_FP_WORKBITS); \
+ } \
+ FP_SET_EXCEPTION(FP_EX_UNDERFLOW); \
+ } \
+ } \
+ break; \
+ \
+ case FP_CLS_ZERO: \
+ X##_e = 0; \
+ _FP_FRAC_SET_##wc(X, _FP_ZEROFRAC_##wc); \
+ break; \
+ \
+ case FP_CLS_INF: \
+ X##_e = _FP_EXPMAX_##fs; \
+ _FP_FRAC_SET_##wc(X, _FP_ZEROFRAC_##wc); \
+ break; \
+ \
+ case FP_CLS_NAN: \
+ X##_e = _FP_EXPMAX_##fs; \
+ if (!_FP_KEEPNANFRACP) \
+ { \
+ _FP_FRAC_SET_##wc(X, _FP_NANFRAC_##fs); \
+ X##_s = _FP_NANSIGN_##fs; \
+ } \
+ else \
+ _FP_FRAC_HIGH_RAW_##fs(X) |= _FP_QNANBIT_##fs; \
+ break; \
+ } \
+} while (0)
+
+/* This one accepts raw argument and not cooked, returns
+ * 1 if X is a signaling NaN.
+ */
+#define _FP_ISSIGNAN(fs, wc, X) \
+({ \
+ int __ret = 0; \
+ if (X##_e == _FP_EXPMAX_##fs) \
+ { \
+ if (!_FP_FRAC_ZEROP_##wc(X) \
+ && !(_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs)) \
+ __ret = 1; \
+ } \
+ __ret; \
+})
+
+
+
+
+
+/* Addition on semi-raw values. */
+#define _FP_ADD_INTERNAL(fs, wc, R, X, Y, OP) \
+do { \
+ if (X##_s == Y##_s) \
+ { \
+ /* Addition. */ \
+ R##_s = X##_s; \
+ int ediff = X##_e - Y##_e; \
+ if (ediff > 0) \
+ { \
+ R##_e = X##_e; \
+ if (Y##_e == 0) \
+ { \
+ /* Y is zero or denormalized. */ \
+ if (_FP_FRAC_ZEROP_##wc(Y)) \
+ { \
+ _FP_CHECK_SIGNAN_SEMIRAW(fs, wc, X); \
+ _FP_FRAC_COPY_##wc(R, X); \
+ goto add_done; \
+ } \
+ else \
+ { \
+ FP_SET_EXCEPTION(FP_EX_DENORM); \
+ ediff--; \
+ if (ediff == 0) \
+ { \
+ _FP_FRAC_ADD_##wc(R, X, Y); \
+ goto add3; \
+ } \
+ if (X##_e == _FP_EXPMAX_##fs) \
+ { \
+ _FP_CHECK_SIGNAN_SEMIRAW(fs, wc, X); \
+ _FP_FRAC_COPY_##wc(R, X); \
+ goto add_done; \
+ } \
+ goto add1; \
+ } \
+ } \
+ else if (X##_e == _FP_EXPMAX_##fs) \
+ { \
+ /* X is NaN or Inf, Y is normal. */ \
+ _FP_CHECK_SIGNAN_SEMIRAW(fs, wc, X); \
+ _FP_FRAC_COPY_##wc(R, X); \
+ goto add_done; \
+ } \
+ \
+ /* Insert implicit MSB of Y. */ \
+ _FP_FRAC_HIGH_##fs(Y) |= _FP_IMPLBIT_SH_##fs; \
+ \
+ add1: \
+ /* Shift the mantissa of Y to the right EDIFF steps; \
+ remember to account later for the implicit MSB of X. */ \
+ if (ediff <= _FP_WFRACBITS_##fs) \
+ _FP_FRAC_SRS_##wc(Y, ediff, _FP_WFRACBITS_##fs); \
+ else if (!_FP_FRAC_ZEROP_##wc(Y)) \
+ _FP_FRAC_SET_##wc(Y, _FP_MINFRAC_##wc); \
+ _FP_FRAC_ADD_##wc(R, X, Y); \
+ } \
+ else if (ediff < 0) \
+ { \
+ ediff = -ediff; \
+ R##_e = Y##_e; \
+ if (X##_e == 0) \
+ { \
+ /* X is zero or denormalized. */ \
+ if (_FP_FRAC_ZEROP_##wc(X)) \
+ { \
+ _FP_CHECK_SIGNAN_SEMIRAW(fs, wc, Y); \
+ _FP_FRAC_COPY_##wc(R, Y); \
+ goto add_done; \
+ } \
+ else \
+ { \
+ FP_SET_EXCEPTION(FP_EX_DENORM); \
+ ediff--; \
+ if (ediff == 0) \
+ { \
+ _FP_FRAC_ADD_##wc(R, Y, X); \
+ goto add3; \
+ } \
+ if (Y##_e == _FP_EXPMAX_##fs) \
+ { \
+ _FP_CHECK_SIGNAN_SEMIRAW(fs, wc, Y); \
+ _FP_FRAC_COPY_##wc(R, Y); \
+ goto add_done; \
+ } \
+ goto add2; \
+ } \
+ } \
+ else if (Y##_e == _FP_EXPMAX_##fs) \
+ { \
+ /* Y is NaN or Inf, X is normal. */ \
+ _FP_CHECK_SIGNAN_SEMIRAW(fs, wc, Y); \
+ _FP_FRAC_COPY_##wc(R, Y); \
+ goto add_done; \
+ } \
+ \
+ /* Insert implicit MSB of X. */ \
+ _FP_FRAC_HIGH_##fs(X) |= _FP_IMPLBIT_SH_##fs; \
+ \
+ add2: \
+ /* Shift the mantissa of X to the right EDIFF steps; \
+ remember to account later for the implicit MSB of Y. */ \
+ if (ediff <= _FP_WFRACBITS_##fs) \
+ _FP_FRAC_SRS_##wc(X, ediff, _FP_WFRACBITS_##fs); \
+ else if (!_FP_FRAC_ZEROP_##wc(X)) \
+ _FP_FRAC_SET_##wc(X, _FP_MINFRAC_##wc); \
+ _FP_FRAC_ADD_##wc(R, Y, X); \
+ } \
+ else \
+ { \
+ /* ediff == 0. */ \
+ if (!_FP_EXP_NORMAL(fs, wc, X)) \
+ { \
+ if (X##_e == 0) \
+ { \
+ /* X and Y are zero or denormalized. */ \
+ R##_e = 0; \
+ if (_FP_FRAC_ZEROP_##wc(X)) \
+ { \
+ if (!_FP_FRAC_ZEROP_##wc(Y)) \
+ FP_SET_EXCEPTION(FP_EX_DENORM); \
+ _FP_FRAC_COPY_##wc(R, Y); \
+ goto add_done; \
+ } \
+ else if (_FP_FRAC_ZEROP_##wc(Y)) \
+ { \
+ FP_SET_EXCEPTION(FP_EX_DENORM); \
+ _FP_FRAC_COPY_##wc(R, X); \
+ goto add_done; \
+ } \
+ else \
+ { \
+ FP_SET_EXCEPTION(FP_EX_DENORM); \
+ _FP_FRAC_ADD_##wc(R, X, Y); \
+ if (_FP_FRAC_HIGH_##fs(R) & _FP_IMPLBIT_SH_##fs) \
+ { \
+ /* Normalized result. */ \
+ _FP_FRAC_HIGH_##fs(R) \
+ &= ~(_FP_W_TYPE)_FP_IMPLBIT_SH_##fs; \
+ R##_e = 1; \
+ } \
+ goto add_done; \
+ } \
+ } \
+ else \
+ { \
+ /* X and Y are NaN or Inf. */ \
+ _FP_CHECK_SIGNAN_SEMIRAW(fs, wc, X); \
+ _FP_CHECK_SIGNAN_SEMIRAW(fs, wc, Y); \
+ R##_e = _FP_EXPMAX_##fs; \
+ if (_FP_FRAC_ZEROP_##wc(X)) \
+ _FP_FRAC_COPY_##wc(R, Y); \
+ else if (_FP_FRAC_ZEROP_##wc(Y)) \
+ _FP_FRAC_COPY_##wc(R, X); \
+ else \
+ _FP_CHOOSENAN_SEMIRAW(fs, wc, R, X, Y, OP); \
+ goto add_done; \
+ } \
+ } \
+ /* The exponents of X and Y, both normal, are equal. The \
+ implicit MSBs will always add to increase the \
+ exponent. */ \
+ _FP_FRAC_ADD_##wc(R, X, Y); \
+ R##_e = X##_e + 1; \
+ _FP_FRAC_SRS_##wc(R, 1, _FP_WFRACBITS_##fs); \
+ if (R##_e == _FP_EXPMAX_##fs) \
+ /* Overflow to infinity (depending on rounding mode). */ \
+ _FP_OVERFLOW_SEMIRAW(fs, wc, R); \
+ goto add_done; \
+ } \
+ add3: \
+ if (_FP_FRAC_HIGH_##fs(R) & _FP_IMPLBIT_SH_##fs) \
+ { \
+ /* Overflow. */ \
+ _FP_FRAC_HIGH_##fs(R) &= ~(_FP_W_TYPE)_FP_IMPLBIT_SH_##fs; \
+ R##_e++; \
+ _FP_FRAC_SRS_##wc(R, 1, _FP_WFRACBITS_##fs); \
+ if (R##_e == _FP_EXPMAX_##fs) \
+ /* Overflow to infinity (depending on rounding mode). */ \
+ _FP_OVERFLOW_SEMIRAW(fs, wc, R); \
+ } \
+ add_done: ; \
+ } \
+ else \
+ { \
+ /* Subtraction. */ \
+ int ediff = X##_e - Y##_e; \
+ if (ediff > 0) \
+ { \
+ R##_e = X##_e; \
+ R##_s = X##_s; \
+ if (Y##_e == 0) \
+ { \
+ /* Y is zero or denormalized. */ \
+ if (_FP_FRAC_ZEROP_##wc(Y)) \
+ { \
+ _FP_CHECK_SIGNAN_SEMIRAW(fs, wc, X); \
+ _FP_FRAC_COPY_##wc(R, X); \
+ goto sub_done; \
+ } \
+ else \
+ { \
+ FP_SET_EXCEPTION(FP_EX_DENORM); \
+ ediff--; \
+ if (ediff == 0) \
+ { \
+ _FP_FRAC_SUB_##wc(R, X, Y); \
+ goto sub3; \
+ } \
+ if (X##_e == _FP_EXPMAX_##fs) \
+ { \
+ _FP_CHECK_SIGNAN_SEMIRAW(fs, wc, X); \
+ _FP_FRAC_COPY_##wc(R, X); \
+ goto sub_done; \
+ } \
+ goto sub1; \
+ } \
+ } \
+ else if (X##_e == _FP_EXPMAX_##fs) \
+ { \
+ /* X is NaN or Inf, Y is normal. */ \
+ _FP_CHECK_SIGNAN_SEMIRAW(fs, wc, X); \
+ _FP_FRAC_COPY_##wc(R, X); \
+ goto sub_done; \
+ } \
+ \
+ /* Insert implicit MSB of Y. */ \
+ _FP_FRAC_HIGH_##fs(Y) |= _FP_IMPLBIT_SH_##fs; \
+ \
+ sub1: \
+ /* Shift the mantissa of Y to the right EDIFF steps; \
+ remember to account later for the implicit MSB of X. */ \
+ if (ediff <= _FP_WFRACBITS_##fs) \
+ _FP_FRAC_SRS_##wc(Y, ediff, _FP_WFRACBITS_##fs); \
+ else if (!_FP_FRAC_ZEROP_##wc(Y)) \
+ _FP_FRAC_SET_##wc(Y, _FP_MINFRAC_##wc); \
+ _FP_FRAC_SUB_##wc(R, X, Y); \
+ } \
+ else if (ediff < 0) \
+ { \
+ ediff = -ediff; \
+ R##_e = Y##_e; \
+ R##_s = Y##_s; \
+ if (X##_e == 0) \
+ { \
+ /* X is zero or denormalized. */ \
+ if (_FP_FRAC_ZEROP_##wc(X)) \
+ { \
+ _FP_CHECK_SIGNAN_SEMIRAW(fs, wc, Y); \
+ _FP_FRAC_COPY_##wc(R, Y); \
+ goto sub_done; \
+ } \
+ else \
+ { \
+ FP_SET_EXCEPTION(FP_EX_DENORM); \
+ ediff--; \
+ if (ediff == 0) \
+ { \
+ _FP_FRAC_SUB_##wc(R, Y, X); \
+ goto sub3; \
+ } \
+ if (Y##_e == _FP_EXPMAX_##fs) \
+ { \
+ _FP_CHECK_SIGNAN_SEMIRAW(fs, wc, Y); \
+ _FP_FRAC_COPY_##wc(R, Y); \
+ goto sub_done; \
+ } \
+ goto sub2; \
+ } \
+ } \
+ else if (Y##_e == _FP_EXPMAX_##fs) \
+ { \
+ /* Y is NaN or Inf, X is normal. */ \
+ _FP_CHECK_SIGNAN_SEMIRAW(fs, wc, Y); \
+ _FP_FRAC_COPY_##wc(R, Y); \
+ goto sub_done; \
+ } \
+ \
+ /* Insert implicit MSB of X. */ \
+ _FP_FRAC_HIGH_##fs(X) |= _FP_IMPLBIT_SH_##fs; \
+ \
+ sub2: \
+ /* Shift the mantissa of X to the right EDIFF steps; \
+ remember to account later for the implicit MSB of Y. */ \
+ if (ediff <= _FP_WFRACBITS_##fs) \
+ _FP_FRAC_SRS_##wc(X, ediff, _FP_WFRACBITS_##fs); \
+ else if (!_FP_FRAC_ZEROP_##wc(X)) \
+ _FP_FRAC_SET_##wc(X, _FP_MINFRAC_##wc); \
+ _FP_FRAC_SUB_##wc(R, Y, X); \
+ } \
+ else \
+ { \
+ /* ediff == 0. */ \
+ if (!_FP_EXP_NORMAL(fs, wc, X)) \
+ { \
+ if (X##_e == 0) \
+ { \
+ /* X and Y are zero or denormalized. */ \
+ R##_e = 0; \
+ if (_FP_FRAC_ZEROP_##wc(X)) \
+ { \
+ _FP_FRAC_COPY_##wc(R, Y); \
+ if (_FP_FRAC_ZEROP_##wc(Y)) \
+ R##_s = (FP_ROUNDMODE == FP_RND_MINF); \
+ else \
+ { \
+ FP_SET_EXCEPTION(FP_EX_DENORM); \
+ R##_s = Y##_s; \
+ } \
+ goto sub_done; \
+ } \
+ else if (_FP_FRAC_ZEROP_##wc(Y)) \
+ { \
+ FP_SET_EXCEPTION(FP_EX_DENORM); \
+ _FP_FRAC_COPY_##wc(R, X); \
+ R##_s = X##_s; \
+ goto sub_done; \
+ } \
+ else \
+ { \
+ FP_SET_EXCEPTION(FP_EX_DENORM); \
+ _FP_FRAC_SUB_##wc(R, X, Y); \
+ R##_s = X##_s; \
+ if (_FP_FRAC_HIGH_##fs(R) & _FP_IMPLBIT_SH_##fs) \
+ { \
+ /* |X| < |Y|, negate result. */ \
+ _FP_FRAC_SUB_##wc(R, Y, X); \
+ R##_s = Y##_s; \
+ } \
+ else if (_FP_FRAC_ZEROP_##wc(R)) \
+ R##_s = (FP_ROUNDMODE == FP_RND_MINF); \
+ goto sub_done; \
+ } \
+ } \
+ else \
+ { \
+ /* X and Y are NaN or Inf, of opposite signs. */ \
+ _FP_CHECK_SIGNAN_SEMIRAW(fs, wc, X); \
+ _FP_CHECK_SIGNAN_SEMIRAW(fs, wc, Y); \
+ R##_e = _FP_EXPMAX_##fs; \
+ if (_FP_FRAC_ZEROP_##wc(X)) \
+ { \
+ if (_FP_FRAC_ZEROP_##wc(Y)) \
+ { \
+ /* Inf - Inf. */ \
+ R##_s = _FP_NANSIGN_##fs; \
+ _FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
+ _FP_FRAC_SLL_##wc(R, _FP_WORKBITS); \
+ FP_SET_EXCEPTION(FP_EX_INVALID); \
+ } \
+ else \
+ { \
+ /* Inf - NaN. */ \
+ R##_s = Y##_s; \
+ _FP_FRAC_COPY_##wc(R, Y); \
+ } \
+ } \
+ else \
+ { \
+ if (_FP_FRAC_ZEROP_##wc(Y)) \
+ { \
+ /* NaN - Inf. */ \
+ R##_s = X##_s; \
+ _FP_FRAC_COPY_##wc(R, X); \
+ } \
+ else \
+ { \
+ /* NaN - NaN. */ \
+ _FP_CHOOSENAN_SEMIRAW(fs, wc, R, X, Y, OP); \
+ } \
+ } \
+ goto sub_done; \
+ } \
+ } \
+ /* The exponents of X and Y, both normal, are equal. The \
+ implicit MSBs cancel. */ \
+ R##_e = X##_e; \
+ _FP_FRAC_SUB_##wc(R, X, Y); \
+ R##_s = X##_s; \
+ if (_FP_FRAC_HIGH_##fs(R) & _FP_IMPLBIT_SH_##fs) \
+ { \
+ /* |X| < |Y|, negate result. */ \
+ _FP_FRAC_SUB_##wc(R, Y, X); \
+ R##_s = Y##_s; \
+ } \
+ else if (_FP_FRAC_ZEROP_##wc(R)) \
+ { \
+ R##_e = 0; \
+ R##_s = (FP_ROUNDMODE == FP_RND_MINF); \
+ goto sub_done; \
+ } \
+ goto norm; \
+ } \
+ sub3: \
+ if (_FP_FRAC_HIGH_##fs(R) & _FP_IMPLBIT_SH_##fs) \
+ { \
+ int diff; \
+ /* Carry into most significant bit of larger one of X and Y, \
+ canceling it; renormalize. */ \
+ _FP_FRAC_HIGH_##fs(R) &= _FP_IMPLBIT_SH_##fs - 1; \
+ norm: \
+ _FP_FRAC_CLZ_##wc(diff, R); \
+ diff -= _FP_WFRACXBITS_##fs; \
+ _FP_FRAC_SLL_##wc(R, diff); \
+ if (R##_e <= diff) \
+ { \
+ /* R is denormalized. */ \
+ diff = diff - R##_e + 1; \
+ _FP_FRAC_SRS_##wc(R, diff, _FP_WFRACBITS_##fs); \
+ R##_e = 0; \
+ } \
+ else \
+ { \
+ R##_e -= diff; \
+ _FP_FRAC_HIGH_##fs(R) &= ~(_FP_W_TYPE)_FP_IMPLBIT_SH_##fs; \
+ } \
+ } \
+ sub_done: ; \
+ } \
+} while (0)
+
+#define _FP_ADD(fs, wc, R, X, Y) _FP_ADD_INTERNAL(fs, wc, R, X, Y, '+')
+#define _FP_SUB(fs, wc, R, X, Y) \
+ do { \
+ if (!(Y##_e == _FP_EXPMAX_##fs && !_FP_FRAC_ZEROP_##wc(Y))) Y##_s ^= 1; \
+ _FP_ADD_INTERNAL(fs, wc, R, X, Y, '-'); \
+ } while (0)
+
+
+/*
+ * Main negation routine. FIXME -- when we care about setting exception
+ * bits reliably, this will not do. We should examine all of the fp classes.
+ */
+
+#define _FP_NEG(fs, wc, R, X) \
+ do { \
+ _FP_FRAC_COPY_##wc(R, X); \
+ R##_c = X##_c; \
+ R##_e = X##_e; \
+ R##_s = 1 ^ X##_s; \
+ } while (0)
+
+
+/*
+ * Main multiplication routine. The input values should be cooked.
+ */
+
+#define _FP_MUL(fs, wc, R, X, Y) \
+do { \
+ R##_s = X##_s ^ Y##_s; \
+ switch (_FP_CLS_COMBINE(X##_c, Y##_c)) \
+ { \
+ case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_NORMAL): \
+ R##_c = FP_CLS_NORMAL; \
+ R##_e = X##_e + Y##_e + 1; \
+ \
+ _FP_MUL_MEAT_##fs(R,X,Y); \
+ \
+ if (_FP_FRAC_OVERP_##wc(fs, R)) \
+ _FP_FRAC_SRS_##wc(R, 1, _FP_WFRACBITS_##fs); \
+ else \
+ R##_e--; \
+ break; \
+ \
+ case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_NAN): \
+ _FP_CHOOSENAN(fs, wc, R, X, Y, '*'); \
+ break; \
+ \
+ case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_NORMAL): \
+ case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_INF): \
+ case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_ZERO): \
+ R##_s = X##_s; \
+ \
+ case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_INF): \
+ case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_NORMAL): \
+ case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_NORMAL): \
+ case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_ZERO): \
+ _FP_FRAC_COPY_##wc(R, X); \
+ R##_c = X##_c; \
+ break; \
+ \
+ case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_NAN): \
+ case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_NAN): \
+ case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_NAN): \
+ R##_s = Y##_s; \
+ \
+ case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_INF): \
+ case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_ZERO): \
+ _FP_FRAC_COPY_##wc(R, Y); \
+ R##_c = Y##_c; \
+ break; \
+ \
+ case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_ZERO): \
+ case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_INF): \
+ R##_s = _FP_NANSIGN_##fs; \
+ R##_c = FP_CLS_NAN; \
+ _FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
+ FP_SET_EXCEPTION(FP_EX_INVALID); \
+ break; \
+ \
+ default: \
+ abort(); \
+ } \
+} while (0)
+
+
+/*
+ * Main division routine. The input values should be cooked.
+ */
+
+#define _FP_DIV(fs, wc, R, X, Y) \
+do { \
+ R##_s = X##_s ^ Y##_s; \
+ switch (_FP_CLS_COMBINE(X##_c, Y##_c)) \
+ { \
+ case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_NORMAL): \
+ R##_c = FP_CLS_NORMAL; \
+ R##_e = X##_e - Y##_e; \
+ \
+ _FP_DIV_MEAT_##fs(R,X,Y); \
+ break; \
+ \
+ case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_NAN): \
+ _FP_CHOOSENAN(fs, wc, R, X, Y, '/'); \
+ break; \
+ \
+ case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_NORMAL): \
+ case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_INF): \
+ case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_ZERO): \
+ R##_s = X##_s; \
+ _FP_FRAC_COPY_##wc(R, X); \
+ R##_c = X##_c; \
+ break; \
+ \
+ case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_NAN): \
+ case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_NAN): \
+ case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_NAN): \
+ R##_s = Y##_s; \
+ _FP_FRAC_COPY_##wc(R, Y); \
+ R##_c = Y##_c; \
+ break; \
+ \
+ case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_INF): \
+ case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_INF): \
+ case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_NORMAL): \
+ R##_c = FP_CLS_ZERO; \
+ break; \
+ \
+ case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_ZERO): \
+ FP_SET_EXCEPTION(FP_EX_DIVZERO); \
+ case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_ZERO): \
+ case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_NORMAL): \
+ R##_c = FP_CLS_INF; \
+ break; \
+ \
+ case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_INF): \
+ case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_ZERO): \
+ R##_s = _FP_NANSIGN_##fs; \
+ R##_c = FP_CLS_NAN; \
+ _FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
+ FP_SET_EXCEPTION(FP_EX_INVALID); \
+ break; \
+ \
+ default: \
+ abort(); \
+ } \
+} while (0)
+
+
+/*
+ * Main differential comparison routine. The inputs should be raw not
+ * cooked. The return is -1,0,1 for normal values, 2 otherwise.
+ */
+
+#define _FP_CMP(fs, wc, ret, X, Y, un) \
+ do { \
+ /* NANs are unordered */ \
+ if ((X##_e == _FP_EXPMAX_##fs && !_FP_FRAC_ZEROP_##wc(X)) \
+ || (Y##_e == _FP_EXPMAX_##fs && !_FP_FRAC_ZEROP_##wc(Y))) \
+ { \
+ ret = un; \
+ } \
+ else \
+ { \
+ int __is_zero_x; \
+ int __is_zero_y; \
+ \
+ __is_zero_x = (!X##_e && _FP_FRAC_ZEROP_##wc(X)) ? 1 : 0; \
+ __is_zero_y = (!Y##_e && _FP_FRAC_ZEROP_##wc(Y)) ? 1 : 0; \
+ \
+ if (__is_zero_x && __is_zero_y) \
+ ret = 0; \
+ else if (__is_zero_x) \
+ ret = Y##_s ? 1 : -1; \
+ else if (__is_zero_y) \
+ ret = X##_s ? -1 : 1; \
+ else if (X##_s != Y##_s) \
+ ret = X##_s ? -1 : 1; \
+ else if (X##_e > Y##_e) \
+ ret = X##_s ? -1 : 1; \
+ else if (X##_e < Y##_e) \
+ ret = X##_s ? 1 : -1; \
+ else if (_FP_FRAC_GT_##wc(X, Y)) \
+ ret = X##_s ? -1 : 1; \
+ else if (_FP_FRAC_GT_##wc(Y, X)) \
+ ret = X##_s ? 1 : -1; \
+ else \
+ ret = 0; \
+ } \
+ } while (0)
+
+
+/* Simplification for strict equality. */
+
+#define _FP_CMP_EQ(fs, wc, ret, X, Y) \
+ do { \
+ /* NANs are unordered */ \
+ if ((X##_e == _FP_EXPMAX_##fs && !_FP_FRAC_ZEROP_##wc(X)) \
+ || (Y##_e == _FP_EXPMAX_##fs && !_FP_FRAC_ZEROP_##wc(Y))) \
+ { \
+ ret = 1; \
+ } \
+ else \
+ { \
+ ret = !(X##_e == Y##_e \
+ && _FP_FRAC_EQ_##wc(X, Y) \
+ && (X##_s == Y##_s || (!X##_e && _FP_FRAC_ZEROP_##wc(X)))); \
+ } \
+ } while (0)
+
+/* Version to test unordered. */
+
+#define _FP_CMP_UNORD(fs, wc, ret, X, Y) \
+ do { \
+ ret = ((X##_e == _FP_EXPMAX_##fs && !_FP_FRAC_ZEROP_##wc(X)) \
+ || (Y##_e == _FP_EXPMAX_##fs && !_FP_FRAC_ZEROP_##wc(Y))); \
+ } while (0)
+
+/*
+ * Main square root routine. The input value should be cooked.
+ */
+
+#define _FP_SQRT(fs, wc, R, X) \
+do { \
+ _FP_FRAC_DECL_##wc(T); _FP_FRAC_DECL_##wc(S); \
+ _FP_W_TYPE q; \
+ switch (X##_c) \
+ { \
+ case FP_CLS_NAN: \
+ _FP_FRAC_COPY_##wc(R, X); \
+ R##_s = X##_s; \
+ R##_c = FP_CLS_NAN; \
+ break; \
+ case FP_CLS_INF: \
+ if (X##_s) \
+ { \
+ R##_s = _FP_NANSIGN_##fs; \
+ R##_c = FP_CLS_NAN; /* NAN */ \
+ _FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
+ FP_SET_EXCEPTION(FP_EX_INVALID); \
+ } \
+ else \
+ { \
+ R##_s = 0; \
+ R##_c = FP_CLS_INF; /* sqrt(+inf) = +inf */ \
+ } \
+ break; \
+ case FP_CLS_ZERO: \
+ R##_s = X##_s; \
+ R##_c = FP_CLS_ZERO; /* sqrt(+-0) = +-0 */ \
+ break; \
+ case FP_CLS_NORMAL: \
+ R##_s = 0; \
+ if (X##_s) \
+ { \
+ R##_c = FP_CLS_NAN; /* sNAN */ \
+ R##_s = _FP_NANSIGN_##fs; \
+ _FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
+ FP_SET_EXCEPTION(FP_EX_INVALID); \
+ break; \
+ } \
+ R##_c = FP_CLS_NORMAL; \
+ if (X##_e & 1) \
+ _FP_FRAC_SLL_##wc(X, 1); \
+ R##_e = X##_e >> 1; \
+ _FP_FRAC_SET_##wc(S, _FP_ZEROFRAC_##wc); \
+ _FP_FRAC_SET_##wc(R, _FP_ZEROFRAC_##wc); \
+ q = _FP_OVERFLOW_##fs >> 1; \
+ _FP_SQRT_MEAT_##wc(R, S, T, X, q); \
+ } \
+ } while (0)
+
+/*
+ * Convert from FP to integer. Input is raw.
+ */
+
+/* RSIGNED can have following values:
+ * 0: the number is required to be 0..(2^rsize)-1, if not, NV is set plus
+ * the result is either 0 or (2^rsize)-1 depending on the sign in such
+ * case.
+ * 1: the number is required to be -(2^(rsize-1))..(2^(rsize-1))-1, if not,
+ * NV is set plus the result is either -(2^(rsize-1)) or (2^(rsize-1))-1
+ * depending on the sign in such case.
+ * -1: the number is required to be -(2^(rsize-1))..(2^rsize)-1, if not, NV is
+ * set plus the result is either -(2^(rsize-1)) or (2^(rsize-1))-1
+ * depending on the sign in such case.
+ */
+#define _FP_TO_INT(fs, wc, r, X, rsize, rsigned) \
+do { \
+ if (X##_e < _FP_EXPBIAS_##fs) \
+ { \
+ r = 0; \
+ if (X##_e == 0) \
+ { \
+ if (!_FP_FRAC_ZEROP_##wc(X)) \
+ { \
+ FP_SET_EXCEPTION(FP_EX_INEXACT); \
+ FP_SET_EXCEPTION(FP_EX_DENORM); \
+ } \
+ } \
+ else \
+ FP_SET_EXCEPTION(FP_EX_INEXACT); \
+ } \
+ else if (X##_e >= _FP_EXPBIAS_##fs + rsize - (rsigned > 0 || X##_s) \
+ || (!rsigned && X##_s)) \
+ { \
+ /* Overflow or converting to the most negative integer. */ \
+ if (rsigned) \
+ { \
+ r = 1; \
+ r <<= rsize - 1; \
+ r -= 1 - X##_s; \
+ } else { \
+ r = 0; \
+ if (X##_s) \
+ r = ~r; \
+ } \
+ \
+ if (rsigned && X##_s && X##_e == _FP_EXPBIAS_##fs + rsize - 1) \
+ { \
+ /* Possibly converting to most negative integer; check the \
+ mantissa. */ \
+ int inexact = 0; \
+ (void)((_FP_FRACBITS_##fs > rsize) \
+ ? ({ _FP_FRAC_SRST_##wc(X, inexact, \
+ _FP_FRACBITS_##fs - rsize, \
+ _FP_FRACBITS_##fs); 0; }) \
+ : 0); \
+ if (!_FP_FRAC_ZEROP_##wc(X)) \
+ FP_SET_EXCEPTION(FP_EX_INVALID); \
+ else if (inexact) \
+ FP_SET_EXCEPTION(FP_EX_INEXACT); \
+ } \
+ else \
+ FP_SET_EXCEPTION(FP_EX_INVALID); \
+ } \
+ else \
+ { \
+ _FP_FRAC_HIGH_RAW_##fs(X) |= _FP_IMPLBIT_##fs; \
+ if (X##_e >= _FP_EXPBIAS_##fs + _FP_FRACBITS_##fs - 1) \
+ { \
+ _FP_FRAC_ASSEMBLE_##wc(r, X, rsize); \
+ r <<= X##_e - _FP_EXPBIAS_##fs - _FP_FRACBITS_##fs + 1; \
+ } \
+ else \
+ { \
+ int inexact; \
+ _FP_FRAC_SRST_##wc(X, inexact, \
+ (_FP_FRACBITS_##fs + _FP_EXPBIAS_##fs - 1 \
+ - X##_e), \
+ _FP_FRACBITS_##fs); \
+ if (inexact) \
+ FP_SET_EXCEPTION(FP_EX_INEXACT); \
+ _FP_FRAC_ASSEMBLE_##wc(r, X, rsize); \
+ } \
+ if (rsigned && X##_s) \
+ r = -r; \
+ } \
+} while (0)
+
+/* Convert integer to fp. Output is raw. RTYPE is unsigned even if
+ input is signed. */
+#define _FP_FROM_INT(fs, wc, X, r, rsize, rtype) \
+ do { \
+ if (r) \
+ { \
+ rtype ur_; \
+ \
+ if ((X##_s = (r < 0))) \
+ r = -(rtype)r; \
+ \
+ ur_ = (rtype) r; \
+ (void)((rsize <= _FP_W_TYPE_SIZE) \
+ ? ({ \
+ int lz_; \
+ __FP_CLZ(lz_, (_FP_W_TYPE)ur_); \
+ X##_e = _FP_EXPBIAS_##fs + _FP_W_TYPE_SIZE - 1 - lz_; \
+ }) \
+ : ((rsize <= 2 * _FP_W_TYPE_SIZE) \
+ ? ({ \
+ int lz_; \
+ __FP_CLZ_2(lz_, (_FP_W_TYPE)(ur_ >> _FP_W_TYPE_SIZE), \
+ (_FP_W_TYPE)ur_); \
+ X##_e = (_FP_EXPBIAS_##fs + 2 * _FP_W_TYPE_SIZE - 1 \
+ - lz_); \
+ }) \
+ : (abort(), 0))); \
+ \
+ if (rsize - 1 + _FP_EXPBIAS_##fs >= _FP_EXPMAX_##fs \
+ && X##_e >= _FP_EXPMAX_##fs) \
+ { \
+ /* Exponent too big; overflow to infinity. (May also \
+ happen after rounding below.) */ \
+ _FP_OVERFLOW_SEMIRAW(fs, wc, X); \
+ goto pack_semiraw; \
+ } \
+ \
+ if (rsize <= _FP_FRACBITS_##fs \
+ || X##_e < _FP_EXPBIAS_##fs + _FP_FRACBITS_##fs) \
+ { \
+ /* Exactly representable; shift left. */ \
+ _FP_FRAC_DISASSEMBLE_##wc(X, ur_, rsize); \
+ _FP_FRAC_SLL_##wc(X, (_FP_EXPBIAS_##fs \
+ + _FP_FRACBITS_##fs - 1 - X##_e)); \
+ } \
+ else \
+ { \
+ /* More bits in integer than in floating type; need to \
+ round. */ \
+ if (_FP_EXPBIAS_##fs + _FP_WFRACBITS_##fs - 1 < X##_e) \
+ ur_ = ((ur_ >> (X##_e - _FP_EXPBIAS_##fs \
+ - _FP_WFRACBITS_##fs + 1)) \
+ | ((ur_ << (rsize - (X##_e - _FP_EXPBIAS_##fs \
+ - _FP_WFRACBITS_##fs + 1))) \
+ != 0)); \
+ _FP_FRAC_DISASSEMBLE_##wc(X, ur_, rsize); \
+ if ((_FP_EXPBIAS_##fs + _FP_WFRACBITS_##fs - 1 - X##_e) > 0) \
+ _FP_FRAC_SLL_##wc(X, (_FP_EXPBIAS_##fs \
+ + _FP_WFRACBITS_##fs - 1 - X##_e)); \
+ _FP_FRAC_HIGH_##fs(X) &= ~(_FP_W_TYPE)_FP_IMPLBIT_SH_##fs; \
+ pack_semiraw: \
+ _FP_PACK_SEMIRAW(fs, wc, X); \
+ } \
+ } \
+ else \
+ { \
+ X##_s = 0; \
+ X##_e = 0; \
+ _FP_FRAC_SET_##wc(X, _FP_ZEROFRAC_##wc); \
+ } \
+ } while (0)
+
+
+/* Extend from a narrower floating-point format to a wider one. Input
+ and output are raw. */
+#define FP_EXTEND(dfs,sfs,dwc,swc,D,S) \
+do { \
+ if (_FP_FRACBITS_##dfs < _FP_FRACBITS_##sfs \
+ || (_FP_EXPMAX_##dfs - _FP_EXPBIAS_##dfs \
+ < _FP_EXPMAX_##sfs - _FP_EXPBIAS_##sfs) \
+ || _FP_EXPBIAS_##dfs < _FP_EXPBIAS_##sfs + _FP_FRACBITS_##sfs - 1) \
+ abort(); \
+ D##_s = S##_s; \
+ _FP_FRAC_COPY_##dwc##_##swc(D, S); \
+ if (_FP_EXP_NORMAL(sfs, swc, S)) \
+ { \
+ D##_e = S##_e + _FP_EXPBIAS_##dfs - _FP_EXPBIAS_##sfs; \
+ _FP_FRAC_SLL_##dwc(D, (_FP_FRACBITS_##dfs - _FP_FRACBITS_##sfs)); \
+ } \
+ else \
+ { \
+ if (S##_e == 0) \
+ { \
+ if (_FP_FRAC_ZEROP_##swc(S)) \
+ D##_e = 0; \
+ else \
+ { \
+ int _lz; \
+ FP_SET_EXCEPTION(FP_EX_DENORM); \
+ _FP_FRAC_CLZ_##swc(_lz, S); \
+ _FP_FRAC_SLL_##dwc(D, \
+ _lz + _FP_FRACBITS_##dfs \
+ - _FP_FRACTBITS_##sfs); \
+ D##_e = (_FP_EXPBIAS_##dfs - _FP_EXPBIAS_##sfs + 1 \
+ + _FP_FRACXBITS_##sfs - _lz); \
+ } \
+ } \
+ else \
+ { \
+ D##_e = _FP_EXPMAX_##dfs; \
+ if (!_FP_FRAC_ZEROP_##swc(S)) \
+ { \
+ if (!(_FP_FRAC_HIGH_RAW_##sfs(S) & _FP_QNANBIT_##sfs)) \
+ FP_SET_EXCEPTION(FP_EX_INVALID); \
+ _FP_FRAC_SLL_##dwc(D, (_FP_FRACBITS_##dfs \
+ - _FP_FRACBITS_##sfs)); \
+ } \
+ } \
+ } \
+} while (0)
+
+/* Truncate from a wider floating-point format to a narrower one.
+ Input and output are semi-raw. */
+#define FP_TRUNC(dfs,sfs,dwc,swc,D,S) \
+do { \
+ if (_FP_FRACBITS_##sfs < _FP_FRACBITS_##dfs \
+ || _FP_EXPBIAS_##sfs < _FP_EXPBIAS_##dfs + _FP_FRACBITS_##dfs - 1) \
+ abort(); \
+ D##_s = S##_s; \
+ if (_FP_EXP_NORMAL(sfs, swc, S)) \
+ { \
+ D##_e = S##_e + _FP_EXPBIAS_##dfs - _FP_EXPBIAS_##sfs; \
+ if (D##_e >= _FP_EXPMAX_##dfs) \
+ _FP_OVERFLOW_SEMIRAW(dfs, dwc, D); \
+ else \
+ { \
+ if (D##_e <= 0) \
+ { \
+ if (D##_e <= 1 - _FP_FRACBITS_##dfs) \
+ _FP_FRAC_SET_##swc(S, _FP_ZEROFRAC_##swc); \
+ else \
+ { \
+ _FP_FRAC_HIGH_##sfs(S) |= _FP_IMPLBIT_SH_##sfs; \
+ _FP_FRAC_SRS_##swc(S, (_FP_WFRACBITS_##sfs \
+ - _FP_WFRACBITS_##dfs + 1 - D##_e), \
+ _FP_WFRACBITS_##sfs); \
+ } \
+ D##_e = 0; \
+ } \
+ else \
+ _FP_FRAC_SRS_##swc(S, (_FP_WFRACBITS_##sfs \
+ - _FP_WFRACBITS_##dfs), \
+ _FP_WFRACBITS_##sfs); \
+ _FP_FRAC_COPY_##dwc##_##swc(D, S); \
+ } \
+ } \
+ else \
+ { \
+ if (S##_e == 0) \
+ { \
+ D##_e = 0; \
+ _FP_FRAC_SET_##dwc(D, _FP_ZEROFRAC_##dwc); \
+ if (!_FP_FRAC_ZEROP_##swc(S)) \
+ { \
+ FP_SET_EXCEPTION(FP_EX_DENORM); \
+ FP_SET_EXCEPTION(FP_EX_INEXACT); \
+ } \
+ } \
+ else \
+ { \
+ D##_e = _FP_EXPMAX_##dfs; \
+ if (_FP_FRAC_ZEROP_##swc(S)) \
+ _FP_FRAC_SET_##dwc(D, _FP_ZEROFRAC_##dwc); \
+ else \
+ { \
+ _FP_CHECK_SIGNAN_SEMIRAW(sfs, swc, S); \
+ _FP_FRAC_SRL_##swc(S, (_FP_WFRACBITS_##sfs \
+ - _FP_WFRACBITS_##dfs)); \
+ _FP_FRAC_COPY_##dwc##_##swc(D, S); \
+ _FP_FRAC_HIGH_##dfs(D) |= _FP_QNANBIT_SH_##dfs; \
+ } \
+ } \
+ } \
+} while (0)
+
+/*
+ * Helper primitives.
+ */
+
+/* Count leading zeros in a word. */
+
+#ifndef __FP_CLZ
+/* GCC 3.4 and later provide the builtins for us. */
+#define __FP_CLZ(r, x) \
+ do { \
+ if (sizeof (_FP_W_TYPE) == sizeof (unsigned int)) \
+ r = __builtin_clz (x); \
+ else if (sizeof (_FP_W_TYPE) == sizeof (unsigned long)) \
+ r = __builtin_clzl (x); \
+ else if (sizeof (_FP_W_TYPE) == sizeof (unsigned long long)) \
+ r = __builtin_clzll (x); \
+ else \
+ abort (); \
+ } while (0)
+#endif /* ndef __FP_CLZ */
+
+#define _FP_DIV_HELP_imm(q, r, n, d) \
+ do { \
+ q = n / d, r = n % d; \
+ } while (0)
+
+
+/* A restoring bit-by-bit division primitive. */
+
+#define _FP_DIV_MEAT_N_loop(fs, wc, R, X, Y) \
+ do { \
+ int count = _FP_WFRACBITS_##fs; \
+ _FP_FRAC_DECL_##wc (u); \
+ _FP_FRAC_DECL_##wc (v); \
+ _FP_FRAC_COPY_##wc (u, X); \
+ _FP_FRAC_COPY_##wc (v, Y); \
+ _FP_FRAC_SET_##wc (R, _FP_ZEROFRAC_##wc); \
+ /* Normalize U and V. */ \
+ _FP_FRAC_SLL_##wc (u, _FP_WFRACXBITS_##fs); \
+ _FP_FRAC_SLL_##wc (v, _FP_WFRACXBITS_##fs); \
+ /* First round. Since the operands are normalized, either the \
+ first or second bit will be set in the fraction. Produce a \
+ normalized result by checking which and adjusting the loop \
+ count and exponent accordingly. */ \
+ if (_FP_FRAC_GE_1 (u, v)) \
+ { \
+ _FP_FRAC_SUB_##wc (u, u, v); \
+ _FP_FRAC_LOW_##wc (R) |= 1; \
+ count--; \
+ } \
+ else \
+ R##_e--; \
+ /* Subsequent rounds. */ \
+ do { \
+ int msb = (_FP_WS_TYPE) _FP_FRAC_HIGH_##wc (u) < 0; \
+ _FP_FRAC_SLL_##wc (u, 1); \
+ _FP_FRAC_SLL_##wc (R, 1); \
+ if (msb || _FP_FRAC_GE_1 (u, v)) \
+ { \
+ _FP_FRAC_SUB_##wc (u, u, v); \
+ _FP_FRAC_LOW_##wc (R) |= 1; \
+ } \
+ } while (--count > 0); \
+ /* If there's anything left in U, the result is inexact. */ \
+ _FP_FRAC_LOW_##wc (R) |= !_FP_FRAC_ZEROP_##wc (u); \
+ } while (0)
+
+#define _FP_DIV_MEAT_1_loop(fs, R, X, Y) _FP_DIV_MEAT_N_loop (fs, 1, R, X, Y)
+#define _FP_DIV_MEAT_2_loop(fs, R, X, Y) _FP_DIV_MEAT_N_loop (fs, 2, R, X, Y)
+#define _FP_DIV_MEAT_4_loop(fs, R, X, Y) _FP_DIV_MEAT_N_loop (fs, 4, R, X, Y)
diff --git a/gcc/config/soft-fp/quad.h b/gcc/config/soft-fp/quad.h
new file mode 100644
index 00000000000..d7840ff0662
--- /dev/null
+++ b/gcc/config/soft-fp/quad.h
@@ -0,0 +1,271 @@
+/* Software floating-point emulation.
+ Definitions for IEEE Quad Precision.
+ Copyright (C) 1997,1998,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com),
+ Jakub Jelinek (jj@ultra.linux.cz),
+ David S. Miller (davem@redhat.com) and
+ Peter Maydell (pmaydell@chiark.greenend.org.uk).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#if _FP_W_TYPE_SIZE < 32
+#error "Here's a nickel, kid. Go buy yourself a real computer."
+#endif
+
+#if _FP_W_TYPE_SIZE < 64
+#define _FP_FRACTBITS_Q (4*_FP_W_TYPE_SIZE)
+#else
+#define _FP_FRACTBITS_Q (2*_FP_W_TYPE_SIZE)
+#endif
+
+#define _FP_FRACBITS_Q 113
+#define _FP_FRACXBITS_Q (_FP_FRACTBITS_Q - _FP_FRACBITS_Q)
+#define _FP_WFRACBITS_Q (_FP_WORKBITS + _FP_FRACBITS_Q)
+#define _FP_WFRACXBITS_Q (_FP_FRACTBITS_Q - _FP_WFRACBITS_Q)
+#define _FP_EXPBITS_Q 15
+#define _FP_EXPBIAS_Q 16383
+#define _FP_EXPMAX_Q 32767
+
+#define _FP_QNANBIT_Q \
+ ((_FP_W_TYPE)1 << (_FP_FRACBITS_Q-2) % _FP_W_TYPE_SIZE)
+#define _FP_QNANBIT_SH_Q \
+ ((_FP_W_TYPE)1 << (_FP_FRACBITS_Q-2+_FP_WORKBITS) % _FP_W_TYPE_SIZE)
+#define _FP_IMPLBIT_Q \
+ ((_FP_W_TYPE)1 << (_FP_FRACBITS_Q-1) % _FP_W_TYPE_SIZE)
+#define _FP_IMPLBIT_SH_Q \
+ ((_FP_W_TYPE)1 << (_FP_FRACBITS_Q-1+_FP_WORKBITS) % _FP_W_TYPE_SIZE)
+#define _FP_OVERFLOW_Q \
+ ((_FP_W_TYPE)1 << (_FP_WFRACBITS_Q % _FP_W_TYPE_SIZE))
+
+typedef float TFtype __attribute__((mode(TF)));
+
+#if _FP_W_TYPE_SIZE < 64
+
+union _FP_UNION_Q
+{
+ TFtype flt;
+ struct
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN
+ unsigned sign : 1;
+ unsigned exp : _FP_EXPBITS_Q;
+ unsigned long frac3 : _FP_FRACBITS_Q - (_FP_IMPLBIT_Q != 0)-(_FP_W_TYPE_SIZE * 3);
+ unsigned long frac2 : _FP_W_TYPE_SIZE;
+ unsigned long frac1 : _FP_W_TYPE_SIZE;
+ unsigned long frac0 : _FP_W_TYPE_SIZE;
+#else
+ unsigned long frac0 : _FP_W_TYPE_SIZE;
+ unsigned long frac1 : _FP_W_TYPE_SIZE;
+ unsigned long frac2 : _FP_W_TYPE_SIZE;
+ unsigned long frac3 : _FP_FRACBITS_Q - (_FP_IMPLBIT_Q != 0)-(_FP_W_TYPE_SIZE * 3);
+ unsigned exp : _FP_EXPBITS_Q;
+ unsigned sign : 1;
+#endif /* not bigendian */
+ } bits __attribute__((packed));
+};
+
+
+#define FP_DECL_Q(X) _FP_DECL(4,X)
+#define FP_UNPACK_RAW_Q(X,val) _FP_UNPACK_RAW_4(Q,X,val)
+#define FP_UNPACK_RAW_QP(X,val) _FP_UNPACK_RAW_4_P(Q,X,val)
+#define FP_PACK_RAW_Q(val,X) _FP_PACK_RAW_4(Q,val,X)
+#define FP_PACK_RAW_QP(val,X) \
+ do { \
+ if (!FP_INHIBIT_RESULTS) \
+ _FP_PACK_RAW_4_P(Q,val,X); \
+ } while (0)
+
+#define FP_UNPACK_Q(X,val) \
+ do { \
+ _FP_UNPACK_RAW_4(Q,X,val); \
+ _FP_UNPACK_CANONICAL(Q,4,X); \
+ } while (0)
+
+#define FP_UNPACK_QP(X,val) \
+ do { \
+ _FP_UNPACK_RAW_4_P(Q,X,val); \
+ _FP_UNPACK_CANONICAL(Q,4,X); \
+ } while (0)
+
+#define FP_UNPACK_SEMIRAW_Q(X,val) \
+ do { \
+ _FP_UNPACK_RAW_4(Q,X,val); \
+ _FP_UNPACK_SEMIRAW(Q,4,X); \
+ } while (0)
+
+#define FP_UNPACK_SEMIRAW_QP(X,val) \
+ do { \
+ _FP_UNPACK_RAW_4_P(Q,X,val); \
+ _FP_UNPACK_SEMIRAW(Q,4,X); \
+ } while (0)
+
+#define FP_PACK_Q(val,X) \
+ do { \
+ _FP_PACK_CANONICAL(Q,4,X); \
+ _FP_PACK_RAW_4(Q,val,X); \
+ } while (0)
+
+#define FP_PACK_QP(val,X) \
+ do { \
+ _FP_PACK_CANONICAL(Q,4,X); \
+ if (!FP_INHIBIT_RESULTS) \
+ _FP_PACK_RAW_4_P(Q,val,X); \
+ } while (0)
+
+#define FP_PACK_SEMIRAW_Q(val,X) \
+ do { \
+ _FP_PACK_SEMIRAW(Q,4,X); \
+ _FP_PACK_RAW_4(Q,val,X); \
+ } while (0)
+
+#define FP_PACK_SEMIRAW_QP(val,X) \
+ do { \
+ _FP_PACK_SEMIRAW(Q,4,X); \
+ if (!FP_INHIBIT_RESULTS) \
+ _FP_PACK_RAW_4_P(Q,val,X); \
+ } while (0)
+
+#define FP_ISSIGNAN_Q(X) _FP_ISSIGNAN(Q,4,X)
+#define FP_NEG_Q(R,X) _FP_NEG(Q,4,R,X)
+#define FP_ADD_Q(R,X,Y) _FP_ADD(Q,4,R,X,Y)
+#define FP_SUB_Q(R,X,Y) _FP_SUB(Q,4,R,X,Y)
+#define FP_MUL_Q(R,X,Y) _FP_MUL(Q,4,R,X,Y)
+#define FP_DIV_Q(R,X,Y) _FP_DIV(Q,4,R,X,Y)
+#define FP_SQRT_Q(R,X) _FP_SQRT(Q,4,R,X)
+#define _FP_SQRT_MEAT_Q(R,S,T,X,Q) _FP_SQRT_MEAT_4(R,S,T,X,Q)
+
+#define FP_CMP_Q(r,X,Y,un) _FP_CMP(Q,4,r,X,Y,un)
+#define FP_CMP_EQ_Q(r,X,Y) _FP_CMP_EQ(Q,4,r,X,Y)
+#define FP_CMP_UNORD_Q(r,X,Y) _FP_CMP_UNORD(Q,4,r,X,Y)
+
+#define FP_TO_INT_Q(r,X,rsz,rsg) _FP_TO_INT(Q,4,r,X,rsz,rsg)
+#define FP_FROM_INT_Q(X,r,rs,rt) _FP_FROM_INT(Q,4,X,r,rs,rt)
+
+#define _FP_FRAC_HIGH_Q(X) _FP_FRAC_HIGH_4(X)
+#define _FP_FRAC_HIGH_RAW_Q(X) _FP_FRAC_HIGH_4(X)
+
+#else /* not _FP_W_TYPE_SIZE < 64 */
+union _FP_UNION_Q
+{
+ TFtype flt /* __attribute__((mode(TF))) */ ;
+ struct {
+ _FP_W_TYPE a, b;
+ } longs;
+ struct {
+#if __BYTE_ORDER == __BIG_ENDIAN
+ unsigned sign : 1;
+ unsigned exp : _FP_EXPBITS_Q;
+ unsigned long frac1 : _FP_FRACBITS_Q-(_FP_IMPLBIT_Q != 0)-_FP_W_TYPE_SIZE;
+ unsigned long frac0 : _FP_W_TYPE_SIZE;
+#else
+ unsigned long frac0 : _FP_W_TYPE_SIZE;
+ unsigned long frac1 : _FP_FRACBITS_Q-(_FP_IMPLBIT_Q != 0)-_FP_W_TYPE_SIZE;
+ unsigned exp : _FP_EXPBITS_Q;
+ unsigned sign : 1;
+#endif
+ } bits;
+};
+
+#define FP_DECL_Q(X) _FP_DECL(2,X)
+#define FP_UNPACK_RAW_Q(X,val) _FP_UNPACK_RAW_2(Q,X,val)
+#define FP_UNPACK_RAW_QP(X,val) _FP_UNPACK_RAW_2_P(Q,X,val)
+#define FP_PACK_RAW_Q(val,X) _FP_PACK_RAW_2(Q,val,X)
+#define FP_PACK_RAW_QP(val,X) \
+ do { \
+ if (!FP_INHIBIT_RESULTS) \
+ _FP_PACK_RAW_2_P(Q,val,X); \
+ } while (0)
+
+#define FP_UNPACK_Q(X,val) \
+ do { \
+ _FP_UNPACK_RAW_2(Q,X,val); \
+ _FP_UNPACK_CANONICAL(Q,2,X); \
+ } while (0)
+
+#define FP_UNPACK_QP(X,val) \
+ do { \
+ _FP_UNPACK_RAW_2_P(Q,X,val); \
+ _FP_UNPACK_CANONICAL(Q,2,X); \
+ } while (0)
+
+#define FP_UNPACK_SEMIRAW_Q(X,val) \
+ do { \
+ _FP_UNPACK_RAW_2(Q,X,val); \
+ _FP_UNPACK_SEMIRAW(Q,2,X); \
+ } while (0)
+
+#define FP_UNPACK_SEMIRAW_QP(X,val) \
+ do { \
+ _FP_UNPACK_RAW_2_P(Q,X,val); \
+ _FP_UNPACK_SEMIRAW(Q,2,X); \
+ } while (0)
+
+#define FP_PACK_Q(val,X) \
+ do { \
+ _FP_PACK_CANONICAL(Q,2,X); \
+ _FP_PACK_RAW_2(Q,val,X); \
+ } while (0)
+
+#define FP_PACK_QP(val,X) \
+ do { \
+ _FP_PACK_CANONICAL(Q,2,X); \
+ if (!FP_INHIBIT_RESULTS) \
+ _FP_PACK_RAW_2_P(Q,val,X); \
+ } while (0)
+
+#define FP_PACK_SEMIRAW_Q(val,X) \
+ do { \
+ _FP_PACK_SEMIRAW(Q,2,X); \
+ _FP_PACK_RAW_2(Q,val,X); \
+ } while (0)
+
+#define FP_PACK_SEMIRAW_QP(val,X) \
+ do { \
+ _FP_PACK_SEMIRAW(Q,2,X); \
+ if (!FP_INHIBIT_RESULTS) \
+ _FP_PACK_RAW_2_P(Q,val,X); \
+ } while (0)
+
+#define FP_ISSIGNAN_Q(X) _FP_ISSIGNAN(Q,2,X)
+#define FP_NEG_Q(R,X) _FP_NEG(Q,2,R,X)
+#define FP_ADD_Q(R,X,Y) _FP_ADD(Q,2,R,X,Y)
+#define FP_SUB_Q(R,X,Y) _FP_SUB(Q,2,R,X,Y)
+#define FP_MUL_Q(R,X,Y) _FP_MUL(Q,2,R,X,Y)
+#define FP_DIV_Q(R,X,Y) _FP_DIV(Q,2,R,X,Y)
+#define FP_SQRT_Q(R,X) _FP_SQRT(Q,2,R,X)
+#define _FP_SQRT_MEAT_Q(R,S,T,X,Q) _FP_SQRT_MEAT_2(R,S,T,X,Q)
+
+#define FP_CMP_Q(r,X,Y,un) _FP_CMP(Q,2,r,X,Y,un)
+#define FP_CMP_EQ_Q(r,X,Y) _FP_CMP_EQ(Q,2,r,X,Y)
+#define FP_CMP_UNORD_Q(r,X,Y) _FP_CMP_UNORD(Q,2,r,X,Y)
+
+#define FP_TO_INT_Q(r,X,rsz,rsg) _FP_TO_INT(Q,2,r,X,rsz,rsg)
+#define FP_FROM_INT_Q(X,r,rs,rt) _FP_FROM_INT(Q,2,X,r,rs,rt)
+
+#define _FP_FRAC_HIGH_Q(X) _FP_FRAC_HIGH_2(X)
+#define _FP_FRAC_HIGH_RAW_Q(X) _FP_FRAC_HIGH_2(X)
+
+#endif /* not _FP_W_TYPE_SIZE < 64 */
diff --git a/gcc/config/soft-fp/single.h b/gcc/config/soft-fp/single.h
new file mode 100644
index 00000000000..9c3734adf48
--- /dev/null
+++ b/gcc/config/soft-fp/single.h
@@ -0,0 +1,151 @@
+/* Software floating-point emulation.
+ Definitions for IEEE Single Precision.
+ Copyright (C) 1997,1998,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com),
+ Jakub Jelinek (jj@ultra.linux.cz),
+ David S. Miller (davem@redhat.com) and
+ Peter Maydell (pmaydell@chiark.greenend.org.uk).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#if _FP_W_TYPE_SIZE < 32
+#error "Here's a nickel kid. Go buy yourself a real computer."
+#endif
+
+#define _FP_FRACTBITS_S _FP_W_TYPE_SIZE
+
+#define _FP_FRACBITS_S 24
+#define _FP_FRACXBITS_S (_FP_FRACTBITS_S - _FP_FRACBITS_S)
+#define _FP_WFRACBITS_S (_FP_WORKBITS + _FP_FRACBITS_S)
+#define _FP_WFRACXBITS_S (_FP_FRACTBITS_S - _FP_WFRACBITS_S)
+#define _FP_EXPBITS_S 8
+#define _FP_EXPBIAS_S 127
+#define _FP_EXPMAX_S 255
+#define _FP_QNANBIT_S ((_FP_W_TYPE)1 << (_FP_FRACBITS_S-2))
+#define _FP_QNANBIT_SH_S ((_FP_W_TYPE)1 << (_FP_FRACBITS_S-2+_FP_WORKBITS))
+#define _FP_IMPLBIT_S ((_FP_W_TYPE)1 << (_FP_FRACBITS_S-1))
+#define _FP_IMPLBIT_SH_S ((_FP_W_TYPE)1 << (_FP_FRACBITS_S-1+_FP_WORKBITS))
+#define _FP_OVERFLOW_S ((_FP_W_TYPE)1 << (_FP_WFRACBITS_S))
+
+/* The implementation of _FP_MUL_MEAT_S and _FP_DIV_MEAT_S should be
+ chosen by the target machine. */
+
+typedef float SFtype __attribute__((mode(SF)));
+
+union _FP_UNION_S
+{
+ SFtype flt;
+ struct {
+#if __BYTE_ORDER == __BIG_ENDIAN
+ unsigned sign : 1;
+ unsigned exp : _FP_EXPBITS_S;
+ unsigned frac : _FP_FRACBITS_S - (_FP_IMPLBIT_S != 0);
+#else
+ unsigned frac : _FP_FRACBITS_S - (_FP_IMPLBIT_S != 0);
+ unsigned exp : _FP_EXPBITS_S;
+ unsigned sign : 1;
+#endif
+ } bits __attribute__((packed));
+};
+
+#define FP_DECL_S(X) _FP_DECL(1,X)
+#define FP_UNPACK_RAW_S(X,val) _FP_UNPACK_RAW_1(S,X,val)
+#define FP_UNPACK_RAW_SP(X,val) _FP_UNPACK_RAW_1_P(S,X,val)
+#define FP_PACK_RAW_S(val,X) _FP_PACK_RAW_1(S,val,X)
+#define FP_PACK_RAW_SP(val,X) \
+ do { \
+ if (!FP_INHIBIT_RESULTS) \
+ _FP_PACK_RAW_1_P(S,val,X); \
+ } while (0)
+
+#define FP_UNPACK_S(X,val) \
+ do { \
+ _FP_UNPACK_RAW_1(S,X,val); \
+ _FP_UNPACK_CANONICAL(S,1,X); \
+ } while (0)
+
+#define FP_UNPACK_SP(X,val) \
+ do { \
+ _FP_UNPACK_RAW_1_P(S,X,val); \
+ _FP_UNPACK_CANONICAL(S,1,X); \
+ } while (0)
+
+#define FP_UNPACK_SEMIRAW_S(X,val) \
+ do { \
+ _FP_UNPACK_RAW_1(S,X,val); \
+ _FP_UNPACK_SEMIRAW(S,1,X); \
+ } while (0)
+
+#define FP_UNPACK_SEMIRAW_SP(X,val) \
+ do { \
+ _FP_UNPACK_RAW_1_P(S,X,val); \
+ _FP_UNPACK_SEMIRAW(S,1,X); \
+ } while (0)
+
+#define FP_PACK_S(val,X) \
+ do { \
+ _FP_PACK_CANONICAL(S,1,X); \
+ _FP_PACK_RAW_1(S,val,X); \
+ } while (0)
+
+#define FP_PACK_SP(val,X) \
+ do { \
+ _FP_PACK_CANONICAL(S,1,X); \
+ if (!FP_INHIBIT_RESULTS) \
+ _FP_PACK_RAW_1_P(S,val,X); \
+ } while (0)
+
+#define FP_PACK_SEMIRAW_S(val,X) \
+ do { \
+ _FP_PACK_SEMIRAW(S,1,X); \
+ _FP_PACK_RAW_1(S,val,X); \
+ } while (0)
+
+#define FP_PACK_SEMIRAW_SP(val,X) \
+ do { \
+ _FP_PACK_SEMIRAW(S,1,X); \
+ if (!FP_INHIBIT_RESULTS) \
+ _FP_PACK_RAW_1_P(S,val,X); \
+ } while (0)
+
+#define FP_ISSIGNAN_S(X) _FP_ISSIGNAN(S,1,X)
+#define FP_NEG_S(R,X) _FP_NEG(S,1,R,X)
+#define FP_ADD_S(R,X,Y) _FP_ADD(S,1,R,X,Y)
+#define FP_SUB_S(R,X,Y) _FP_SUB(S,1,R,X,Y)
+#define FP_MUL_S(R,X,Y) _FP_MUL(S,1,R,X,Y)
+#define FP_DIV_S(R,X,Y) _FP_DIV(S,1,R,X,Y)
+#define FP_SQRT_S(R,X) _FP_SQRT(S,1,R,X)
+#define _FP_SQRT_MEAT_S(R,S,T,X,Q) _FP_SQRT_MEAT_1(R,S,T,X,Q)
+
+#define FP_CMP_S(r,X,Y,un) _FP_CMP(S,1,r,X,Y,un)
+#define FP_CMP_EQ_S(r,X,Y) _FP_CMP_EQ(S,1,r,X,Y)
+#define FP_CMP_UNORD_S(r,X,Y) _FP_CMP_UNORD(S,1,r,X,Y)
+
+#define FP_TO_INT_S(r,X,rsz,rsg) _FP_TO_INT(S,1,r,X,rsz,rsg)
+#define FP_FROM_INT_S(X,r,rs,rt) _FP_FROM_INT(S,1,X,r,rs,rt)
+
+#define _FP_FRAC_HIGH_S(X) _FP_FRAC_HIGH_1(X)
+#define _FP_FRAC_HIGH_RAW_S(X) _FP_FRAC_HIGH_1(X)
diff --git a/gcc/config/soft-fp/soft-fp.h b/gcc/config/soft-fp/soft-fp.h
new file mode 100644
index 00000000000..dbf080e7f48
--- /dev/null
+++ b/gcc/config/soft-fp/soft-fp.h
@@ -0,0 +1,209 @@
+/* Software floating-point emulation.
+ Copyright (C) 1997,1998,1999,2000,2002,2003,2005,2006
+ Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com),
+ Jakub Jelinek (jj@ultra.linux.cz),
+ David S. Miller (davem@redhat.com) and
+ Peter Maydell (pmaydell@chiark.greenend.org.uk).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef SOFT_FP_H
+#define SOFT_FP_H
+
+#ifdef _LIBC
+#include <sfp-machine.h>
+#else
+#include "sfp-machine.h"
+#endif
+
+/* Allow sfp-machine to have its own byte order definitions. */
+#ifndef __BYTE_ORDER
+#ifdef _LIBC
+#include <endian.h>
+#else
+#error "endianness not defined by sfp-machine.h"
+#endif
+#endif
+
+#define _FP_WORKBITS 3
+#define _FP_WORK_LSB ((_FP_W_TYPE)1 << 3)
+#define _FP_WORK_ROUND ((_FP_W_TYPE)1 << 2)
+#define _FP_WORK_GUARD ((_FP_W_TYPE)1 << 1)
+#define _FP_WORK_STICKY ((_FP_W_TYPE)1 << 0)
+
+#ifndef FP_RND_NEAREST
+# define FP_RND_NEAREST 0
+# define FP_RND_ZERO 1
+# define FP_RND_PINF 2
+# define FP_RND_MINF 3
+#endif
+#ifndef FP_ROUNDMODE
+# define FP_ROUNDMODE FP_RND_NEAREST
+#endif
+
+/* By default don't care about exceptions. */
+#ifndef FP_EX_INVALID
+#define FP_EX_INVALID 0
+#endif
+#ifndef FP_EX_OVERFLOW
+#define FP_EX_OVERFLOW 0
+#endif
+#ifndef FP_EX_UNDERFLOW
+#define FP_EX_UNDERFLOW 0
+#endif
+#ifndef FP_EX_DIVZERO
+#define FP_EX_DIVZERO 0
+#endif
+#ifndef FP_EX_INEXACT
+#define FP_EX_INEXACT 0
+#endif
+#ifndef FP_EX_DENORM
+#define FP_EX_DENORM 0
+#endif
+
+#ifdef _FP_DECL_EX
+#define FP_DECL_EX \
+ int _fex = 0; \
+ _FP_DECL_EX
+#else
+#define FP_DECL_EX int _fex = 0
+#endif
+
+#ifndef FP_INIT_ROUNDMODE
+#define FP_INIT_ROUNDMODE do {} while (0)
+#endif
+
+#ifndef FP_HANDLE_EXCEPTIONS
+#define FP_HANDLE_EXCEPTIONS do {} while (0)
+#endif
+
+#ifndef FP_INHIBIT_RESULTS
+/* By default we write the results always.
+ * sfp-machine may override this and e.g.
+ * check if some exceptions are unmasked
+ * and inhibit it in such a case.
+ */
+#define FP_INHIBIT_RESULTS 0
+#endif
+
+#define FP_SET_EXCEPTION(ex) \
+ _fex |= (ex)
+
+#define FP_UNSET_EXCEPTION(ex) \
+ _fex &= ~(ex)
+
+#define FP_CLEAR_EXCEPTIONS \
+ _fex = 0
+
+#define _FP_ROUND_NEAREST(wc, X) \
+do { \
+ if ((_FP_FRAC_LOW_##wc(X) & 15) != _FP_WORK_ROUND) \
+ _FP_FRAC_ADDI_##wc(X, _FP_WORK_ROUND); \
+} while (0)
+
+#define _FP_ROUND_ZERO(wc, X) (void)0
+
+#define _FP_ROUND_PINF(wc, X) \
+do { \
+ if (!X##_s && (_FP_FRAC_LOW_##wc(X) & 7)) \
+ _FP_FRAC_ADDI_##wc(X, _FP_WORK_LSB); \
+} while (0)
+
+#define _FP_ROUND_MINF(wc, X) \
+do { \
+ if (X##_s && (_FP_FRAC_LOW_##wc(X) & 7)) \
+ _FP_FRAC_ADDI_##wc(X, _FP_WORK_LSB); \
+} while (0)
+
+#define _FP_ROUND(wc, X) \
+do { \
+ if (_FP_FRAC_LOW_##wc(X) & 7) \
+ FP_SET_EXCEPTION(FP_EX_INEXACT); \
+ switch (FP_ROUNDMODE) \
+ { \
+ case FP_RND_NEAREST: \
+ _FP_ROUND_NEAREST(wc,X); \
+ break; \
+ case FP_RND_ZERO: \
+ _FP_ROUND_ZERO(wc,X); \
+ break; \
+ case FP_RND_PINF: \
+ _FP_ROUND_PINF(wc,X); \
+ break; \
+ case FP_RND_MINF: \
+ _FP_ROUND_MINF(wc,X); \
+ break; \
+ } \
+} while (0)
+
+#define FP_CLS_NORMAL 0
+#define FP_CLS_ZERO 1
+#define FP_CLS_INF 2
+#define FP_CLS_NAN 3
+
+#define _FP_CLS_COMBINE(x,y) (((x) << 2) | (y))
+
+#include "op-1.h"
+#include "op-2.h"
+#include "op-4.h"
+#include "op-8.h"
+#include "op-common.h"
+
+/* Sigh. Silly things longlong.h needs. */
+#define UWtype _FP_W_TYPE
+#define W_TYPE_SIZE _FP_W_TYPE_SIZE
+
+typedef int QItype __attribute__((mode(QI)));
+typedef int SItype __attribute__((mode(SI)));
+typedef int DItype __attribute__((mode(DI)));
+typedef unsigned int UQItype __attribute__((mode(QI)));
+typedef unsigned int USItype __attribute__((mode(SI)));
+typedef unsigned int UDItype __attribute__((mode(DI)));
+#if _FP_W_TYPE_SIZE == 32
+typedef unsigned int UHWtype __attribute__((mode(HI)));
+#elif _FP_W_TYPE_SIZE == 64
+typedef USItype UHWtype;
+#endif
+
+#define SI_BITS (__CHAR_BIT__ * (int)sizeof(SItype))
+#define DI_BITS (__CHAR_BIT__ * (int)sizeof(DItype))
+
+#ifndef umul_ppmm
+#ifdef _LIBC
+#include <stdlib/longlong.h>
+#else
+#include "longlong.h"
+#endif
+#endif
+
+#ifdef _LIBC
+#include <stdlib.h>
+#else
+extern void abort (void);
+#endif
+
+#endif
diff --git a/gcc/config/soft-fp/subdf3.c b/gcc/config/soft-fp/subdf3.c
new file mode 100644
index 00000000000..3978b52998d
--- /dev/null
+++ b/gcc/config/soft-fp/subdf3.c
@@ -0,0 +1,49 @@
+/* Software floating-point emulation.
+ Return a - b
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "double.h"
+
+DFtype __subdf3(DFtype a, DFtype b)
+{
+ FP_DECL_EX;
+ FP_DECL_D(A); FP_DECL_D(B); FP_DECL_D(R);
+ DFtype r;
+
+ FP_INIT_ROUNDMODE;
+ FP_UNPACK_SEMIRAW_D(A, a);
+ FP_UNPACK_SEMIRAW_D(B, b);
+ FP_SUB_D(R, A, B);
+ FP_PACK_SEMIRAW_D(r, R);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/subsf3.c b/gcc/config/soft-fp/subsf3.c
new file mode 100644
index 00000000000..f1cbdd1ff1f
--- /dev/null
+++ b/gcc/config/soft-fp/subsf3.c
@@ -0,0 +1,49 @@
+/* Software floating-point emulation.
+ Return a - b
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "single.h"
+
+SFtype __subsf3(SFtype a, SFtype b)
+{
+ FP_DECL_EX;
+ FP_DECL_S(A); FP_DECL_S(B); FP_DECL_S(R);
+ SFtype r;
+
+ FP_INIT_ROUNDMODE;
+ FP_UNPACK_SEMIRAW_S(A, a);
+ FP_UNPACK_SEMIRAW_S(B, b);
+ FP_SUB_S(R, A, B);
+ FP_PACK_SEMIRAW_S(r, R);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/subtf3.c b/gcc/config/soft-fp/subtf3.c
new file mode 100644
index 00000000000..7ba4c8c5ea0
--- /dev/null
+++ b/gcc/config/soft-fp/subtf3.c
@@ -0,0 +1,49 @@
+/* Software floating-point emulation.
+ Return a - b
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "quad.h"
+
+TFtype __subtf3(TFtype a, TFtype b)
+{
+ FP_DECL_EX;
+ FP_DECL_Q(A); FP_DECL_Q(B); FP_DECL_Q(R);
+ TFtype r;
+
+ FP_INIT_ROUNDMODE;
+ FP_UNPACK_SEMIRAW_Q(A, a);
+ FP_UNPACK_SEMIRAW_Q(B, b);
+ FP_SUB_Q(R, A, B);
+ FP_PACK_SEMIRAW_Q(r, R);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/t-softfp b/gcc/config/soft-fp/t-softfp
new file mode 100644
index 00000000000..4a3f91e15ee
--- /dev/null
+++ b/gcc/config/soft-fp/t-softfp
@@ -0,0 +1,108 @@
+# Copyright (C) 2006 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, 51 Franklin Street, Fifth Floor,
+# Boston MA 02110-1301, USA.
+
+# Targets using soft-fp should define the following variables:
+#
+# softfp_float_modes: a list of soft-float floating-point modes,
+# e.g. sf df
+# softfp_int_modes: a list of integer modes for which to define conversions,
+# e.g. si di
+# softfp_extensions: a list of extensions between floating-point modes,
+# e.g. sfdf
+# softfp_truncations: a list of truncations between floating-point modes,
+# e.g. dfsf
+# softfp_machine_header: the target sfp-machine.h file (relative to config/),
+# e.g. rs6000/sfp-machine.h
+#
+# Extensions and truncations should include those where only one mode
+# is a soft-float mode; for example, sftf where sf is hard-float and
+# tf is soft-float.
+#
+# If the libgcc2.c functions should not be replaced, also define:
+#
+# softfp_exclude_libgcc2 := y
+#
+# Avoiding replacing the libgcc2.c functions is a temporary measure
+# for targets with both hard-float and soft-float multilibs, since
+# these variables apply for all multilibs. With toplevel libgcc,
+# soft-fp can be used conditionally on the multilib instead.
+#
+# If the code should not be compiled at all for some multilibs, define:
+#
+# softfp_wrap_start: text to put at the start of wrapper source files,
+# output with echo
+# e.g. '#ifndef __powerpc64__'
+# softfp_wrap_end: text to put at the end of wrapper source files,
+# e.g. '#endif'
+#
+# This is another temporary measure.
+
+softfp_float_funcs = add$(m)3 div$(m)3 eq$(m)2 ge$(m)2 le$(m)2 mul$(m)3 \
+ neg$(m)2 sub$(m)3 unord$(m)2
+softfp_floatint_funcs = fix$(m)$(i) fixuns$(m)$(i) \
+ float$(i)$(m) floatun$(i)$(m)
+
+softfp_func_list := \
+ $(foreach m,$(softfp_float_modes), \
+ $(softfp_float_funcs) \
+ $(foreach i,$(softfp_int_modes), \
+ $(softfp_floatint_funcs))) \
+ $(foreach e,$(softfp_extensions),extend$(e)2) \
+ $(foreach t,$(softfp_truncations),trunc$(t)2)
+
+ifeq ($(softfp_exclude_libgcc2),y)
+# This list is taken from mklibgcc.in and doesn't presently allow for
+# 64-bit targets where si should become di and di should become ti.
+softfp_func_list := $(filter-out floatdidf floatdisf fixunsdfsi fixunssfsi \
+ fixunsdfdi fixdfdi fixunssfdi fixsfdi fixxfdi fixunsxfdi \
+ floatdixf fixunsxfsi fixtfdi fixunstfdi floatditf \
+ floatundidf floatundisf floatundixf floatunditf,$(softfp_func_list))
+endif
+
+ifeq ($(softfp_wrap_start),)
+softfp_file_list := \
+ $(addsuffix .c,$(addprefix $(srcdir)/config/soft-fp/,$(softfp_func_list)))
+else
+softfp_file_list := $(addsuffix .c,$(softfp_func_list))
+
+$(softfp_file_list):
+ echo $(softfp_wrap_start) > $@
+ echo '#include "config/soft-fp/$@"' >> $@
+ echo $(softfp_wrap_end) >> $@
+endif
+
+LIB2FUNCS_EXTRA += $(softfp_file_list)
+
+ifneq ($(softfp_exclude_libgcc2),y)
+# Functions in libgcc2.c are excluded for each soft-float mode (a
+# target may have both soft-float and hard-float modes), for the fixed
+# list of integer modes (si and di) for which libgcc2.c defines any
+# such functions. Depending on the target, the si and di symbols may
+# in fact define di and ti functions.
+
+LIB2FUNCS_EXCLUDE += \
+ $(addprefix _,$(foreach m,$(softfp_float_modes), \
+ $(foreach i,si di, \
+ $(softfp_floatint_funcs))))
+endif
+
+SFP_MACHINE := sfp-machine.h
+
+$(SFP_MACHINE): $(srcdir)/config/$(softfp_machine_header)
+ cp $(srcdir)/config/$(softfp_machine_header) $(SFP_MACHINE)
diff --git a/gcc/config/soft-fp/truncdfsf2.c b/gcc/config/soft-fp/truncdfsf2.c
new file mode 100644
index 00000000000..bd953912e98
--- /dev/null
+++ b/gcc/config/soft-fp/truncdfsf2.c
@@ -0,0 +1,54 @@
+/* Software floating-point emulation.
+ Truncate IEEE double into IEEE single
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "single.h"
+#include "double.h"
+
+SFtype __truncdfsf2(DFtype a)
+{
+ FP_DECL_EX;
+ FP_DECL_D(A);
+ FP_DECL_S(R);
+ SFtype r;
+
+ FP_INIT_ROUNDMODE;
+ FP_UNPACK_SEMIRAW_D(A, a);
+#if _FP_W_TYPE_SIZE < _FP_FRACBITS_D
+ FP_TRUNC(S,D,1,2,R,A);
+#else
+ FP_TRUNC(S,D,1,1,R,A);
+#endif
+ FP_PACK_SEMIRAW_S(r, R);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/trunctfdf2.c b/gcc/config/soft-fp/trunctfdf2.c
new file mode 100644
index 00000000000..c3827b08abe
--- /dev/null
+++ b/gcc/config/soft-fp/trunctfdf2.c
@@ -0,0 +1,54 @@
+/* Software floating-point emulation.
+ Truncate IEEE quad into IEEE double
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "double.h"
+#include "quad.h"
+
+DFtype __trunctfdf2(TFtype a)
+{
+ FP_DECL_EX;
+ FP_DECL_Q(A);
+ FP_DECL_D(R);
+ DFtype r;
+
+ FP_INIT_ROUNDMODE;
+ FP_UNPACK_SEMIRAW_Q(A, a);
+#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+ FP_TRUNC(D,Q,2,4,R,A);
+#else
+ FP_TRUNC(D,Q,1,2,R,A);
+#endif
+ FP_PACK_SEMIRAW_D(r, R);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/trunctfsf2.c b/gcc/config/soft-fp/trunctfsf2.c
new file mode 100644
index 00000000000..676c937e20a
--- /dev/null
+++ b/gcc/config/soft-fp/trunctfsf2.c
@@ -0,0 +1,54 @@
+/* Software floating-point emulation.
+ Truncate IEEE quad into IEEE single
+ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "single.h"
+#include "quad.h"
+
+SFtype __trunctfsf2(TFtype a)
+{
+ FP_DECL_EX;
+ FP_DECL_Q(A);
+ FP_DECL_S(R);
+ SFtype r;
+
+ FP_INIT_ROUNDMODE;
+ FP_UNPACK_SEMIRAW_Q(A, a);
+#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+ FP_TRUNC(S,Q,1,4,R,A);
+#else
+ FP_TRUNC(S,Q,1,2,R,A);
+#endif
+ FP_PACK_SEMIRAW_S(r, R);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/unorddf2.c b/gcc/config/soft-fp/unorddf2.c
new file mode 100644
index 00000000000..c83a5632759
--- /dev/null
+++ b/gcc/config/soft-fp/unorddf2.c
@@ -0,0 +1,45 @@
+/* Software floating-point emulation.
+ Return 1 iff a or b is a NaN, 0 otherwise.
+ Copyright (C) 2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Joseph Myers (joseph@codesourcery.com).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "double.h"
+
+int
+__unorddf2(DFtype a, DFtype b)
+{
+ FP_DECL_D(A); FP_DECL_D(B);
+ int r;
+
+ FP_UNPACK_RAW_D(A, a);
+ FP_UNPACK_RAW_D(B, b);
+ FP_CMP_UNORD_D(r, A, B);
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/unordsf2.c b/gcc/config/soft-fp/unordsf2.c
new file mode 100644
index 00000000000..8de75635660
--- /dev/null
+++ b/gcc/config/soft-fp/unordsf2.c
@@ -0,0 +1,46 @@
+/* Software floating-point emulation.
+ Return 1 iff a or b is a NaN, 0 otherwise.
+ Copyright (C) 2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Joseph Myers (joseph@codesourcery.com).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "single.h"
+
+int
+__unordsf2(SFtype a, SFtype b)
+{
+ FP_DECL_S(A);
+ FP_DECL_S(B);
+ int r;
+
+ FP_UNPACK_RAW_S(A, a);
+ FP_UNPACK_RAW_S(B, b);
+ FP_CMP_UNORD_S(r, A, B);
+
+ return r;
+}
diff --git a/gcc/config/soft-fp/unordtf2.c b/gcc/config/soft-fp/unordtf2.c
new file mode 100644
index 00000000000..134b1d09b8a
--- /dev/null
+++ b/gcc/config/soft-fp/unordtf2.c
@@ -0,0 +1,46 @@
+/* Software floating-point emulation.
+ Return 1 iff a or b is a NaN, 0 otherwise.
+ Copyright (C) 2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Joseph Myers (joseph@codesourcery.com).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser 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 Lesser 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.)
+
+ The GNU C 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "soft-fp.h"
+#include "quad.h"
+
+int
+__unordtf2(TFtype a, TFtype b)
+{
+ FP_DECL_Q(A);
+ FP_DECL_Q(B);
+ int r;
+
+ FP_UNPACK_RAW_Q(A, a);
+ FP_UNPACK_RAW_Q(B, b);
+ FP_CMP_UNORD_Q(r, A, B);
+
+ return r;
+}
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
index e880226412e..692e46e5584 100644
--- a/gcc/config/sparc/sparc.c
+++ b/gcc/config/sparc/sparc.c
@@ -4559,7 +4559,10 @@ function_arg_slotno (const struct sparc_args *cum, enum machine_mode mode,
gcc_assert (mode == BLKmode);
- if (TARGET_ARCH32 || !type || (TREE_CODE (type) == UNION_TYPE))
+ if (TARGET_ARCH32
+ || !type
+ || (TREE_CODE (type) != VECTOR_TYPE
+ && TREE_CODE (type) != RECORD_TYPE))
{
if (slotno >= SPARC_INT_ARG_MAX)
return -1;
@@ -5073,62 +5076,58 @@ function_arg (const struct sparc_args *cum, enum machine_mode mode,
: SPARC_OUTGOING_INT_ARG_FIRST);
int slotno, regno, padding;
enum mode_class mclass = GET_MODE_CLASS (mode);
- rtx reg;
slotno = function_arg_slotno (cum, mode, type, named, incoming_p,
&regno, &padding);
-
if (slotno == -1)
return 0;
- if (TARGET_ARCH32)
+ /* Vector types deserve special treatment because they are polymorphic wrt
+ their mode, depending upon whether VIS instructions are enabled. */
+ if (type && TREE_CODE (type) == VECTOR_TYPE)
{
- reg = gen_rtx_REG (mode, regno);
- return reg;
+ HOST_WIDE_INT size = int_size_in_bytes (type);
+ gcc_assert ((TARGET_ARCH32 && size <= 8)
+ || (TARGET_ARCH64 && size <= 16));
+
+ if (mode == BLKmode)
+ return function_arg_vector_value (size,
+ TYPE_MODE (TREE_TYPE (type)),
+ SPARC_FP_ARG_FIRST + 2*slotno);
+ else
+ mclass = MODE_FLOAT;
}
-
- if (type && TREE_CODE (type) == RECORD_TYPE)
- {
- /* Structures up to 16 bytes in size are passed in arg slots on the
- stack and are promoted to registers where possible. */
- gcc_assert (int_size_in_bytes (type) <= 16);
+ if (TARGET_ARCH32)
+ return gen_rtx_REG (mode, regno);
- return function_arg_record_value (type, mode, slotno, named, regbase);
- }
- else if (type && TREE_CODE (type) == UNION_TYPE)
+ /* Structures up to 16 bytes in size are passed in arg slots on the stack
+ and are promoted to registers if possible. */
+ if (type && TREE_CODE (type) == RECORD_TYPE)
{
HOST_WIDE_INT size = int_size_in_bytes (type);
-
gcc_assert (size <= 16);
- return function_arg_union_value (size, mode, slotno, regno);
+ return function_arg_record_value (type, mode, slotno, named, regbase);
}
- else if (type && TREE_CODE (type) == VECTOR_TYPE)
+
+ /* Unions up to 16 bytes in size are passed in integer registers. */
+ else if (type && TREE_CODE (type) == UNION_TYPE)
{
- /* Vector types deserve special treatment because they are
- polymorphic wrt their mode, depending upon whether VIS
- instructions are enabled. */
HOST_WIDE_INT size = int_size_in_bytes (type);
-
gcc_assert (size <= 16);
- if (mode == BLKmode)
- return function_arg_vector_value (size,
- TYPE_MODE (TREE_TYPE (type)),
- SPARC_FP_ARG_FIRST + 2*slotno);
- else
- mclass = MODE_FLOAT;
+ return function_arg_union_value (size, mode, slotno, regno);
}
/* v9 fp args in reg slots beyond the int reg slots get passed in regs
but also have the slot allocated for them.
If no prototype is in scope fp values in register slots get passed
in two places, either fp regs and int regs or fp regs and memory. */
- if ((mclass == MODE_FLOAT || mclass == MODE_COMPLEX_FLOAT)
- && SPARC_FP_REG_P (regno))
+ else if ((mclass == MODE_FLOAT || mclass == MODE_COMPLEX_FLOAT)
+ && SPARC_FP_REG_P (regno))
{
- reg = gen_rtx_REG (mode, regno);
+ rtx reg = gen_rtx_REG (mode, regno);
if (cum->prototype_p || cum->libcall_p)
{
/* "* 2" because fp reg numbers are recorded in 4 byte
@@ -5189,13 +5188,18 @@ function_arg (const struct sparc_args *cum, enum machine_mode mode,
}
}
}
- else
+
+ /* All other aggregate types are passed in an integer register in a mode
+ corresponding to the size of the type. */
+ else if (type && AGGREGATE_TYPE_P (type))
{
- /* Scalar or complex int. */
- reg = gen_rtx_REG (mode, regno);
+ HOST_WIDE_INT size = int_size_in_bytes (type);
+ gcc_assert (size <= 16);
+
+ mode = mode_for_size (size * BITS_PER_UNIT, MODE_INT, 0);
}
- return reg;
+ return gen_rtx_REG (mode, regno);
}
/* For an arg passed partly in registers and partly in memory,
@@ -5271,7 +5275,6 @@ sparc_pass_by_reference (CUMULATIVE_ARGS *cum ATTRIBUTE_UNUSED,
bool named ATTRIBUTE_UNUSED)
{
if (TARGET_ARCH32)
- {
/* Original SPARC 32-bit ABI says that structures and unions,
and quad-precision floats are passed by reference. For Pascal,
also pass arrays by reference. All other base types are passed
@@ -5286,19 +5289,17 @@ sparc_pass_by_reference (CUMULATIVE_ARGS *cum ATTRIBUTE_UNUSED,
integers are passed like floats of the same size, that is in
registers up to 8 bytes. Pass all vector floats by reference
like structure and unions. */
- return ((type && (AGGREGATE_TYPE_P (type) || VECTOR_FLOAT_TYPE_P (type)))
- || mode == SCmode
- /* Catch CDImode, TFmode, DCmode and TCmode. */
- || GET_MODE_SIZE (mode) > 8
- || (type
- && TREE_CODE (type) == VECTOR_TYPE
- && (unsigned HOST_WIDE_INT) int_size_in_bytes (type) > 8));
- }
+ return ((type && (AGGREGATE_TYPE_P (type) || VECTOR_FLOAT_TYPE_P (type)))
+ || mode == SCmode
+ /* Catch CDImode, TFmode, DCmode and TCmode. */
+ || GET_MODE_SIZE (mode) > 8
+ || (type
+ && TREE_CODE (type) == VECTOR_TYPE
+ && (unsigned HOST_WIDE_INT) int_size_in_bytes (type) > 8));
else
- {
/* Original SPARC 64-bit ABI says that structures and unions
smaller than 16 bytes are passed in registers, as well as
- all other base types. For Pascal, pass arrays by reference.
+ all other base types.
Extended ABI (as implemented by the Sun compiler) says that
complex floats are passed in registers up to 16 bytes. Pass
@@ -5309,13 +5310,11 @@ sparc_pass_by_reference (CUMULATIVE_ARGS *cum ATTRIBUTE_UNUSED,
integers are passed like floats of the same size, that is in
registers (up to 16 bytes). Pass all vector floats like structure
and unions. */
- return ((type && TREE_CODE (type) == ARRAY_TYPE)
- || (type
- && (AGGREGATE_TYPE_P (type) || TREE_CODE (type) == VECTOR_TYPE)
- && (unsigned HOST_WIDE_INT) int_size_in_bytes (type) > 16)
- /* Catch CTImode and TCmode. */
- || GET_MODE_SIZE (mode) > 16);
- }
+ return ((type
+ && (AGGREGATE_TYPE_P (type) || TREE_CODE (type) == VECTOR_TYPE)
+ && (unsigned HOST_WIDE_INT) int_size_in_bytes (type) > 16)
+ /* Catch CTImode and TCmode. */
+ || GET_MODE_SIZE (mode) > 16);
}
/* Handle the FUNCTION_ARG_ADVANCE macro.
@@ -5499,13 +5498,11 @@ function_value (tree type, enum machine_mode mode, int incoming_p)
enum mode_class mclass = GET_MODE_CLASS (mode);
int regno;
+ /* Vector types deserve special treatment because they are polymorphic wrt
+ their mode, depending upon whether VIS instructions are enabled. */
if (type && TREE_CODE (type) == VECTOR_TYPE)
{
- /* Vector types deserve special treatment because they are
- polymorphic wrt their mode, depending upon whether VIS
- instructions are enabled. */
HOST_WIDE_INT size = int_size_in_bytes (type);
-
gcc_assert ((TARGET_ARCH32 && size <= 8)
|| (TARGET_ARCH64 && size <= 32));
@@ -5516,34 +5513,41 @@ function_value (tree type, enum machine_mode mode, int incoming_p)
else
mclass = MODE_FLOAT;
}
- else if (type && TARGET_ARCH64)
+
+ if (TARGET_ARCH64 && type)
{
+ /* Structures up to 32 bytes in size are returned in registers. */
if (TREE_CODE (type) == RECORD_TYPE)
{
- /* Structures up to 32 bytes in size are passed in registers,
- promoted to fp registers where possible. */
-
- gcc_assert (int_size_in_bytes (type) <= 32);
+ HOST_WIDE_INT size = int_size_in_bytes (type);
+ gcc_assert (size <= 32);
return function_arg_record_value (type, mode, 0, 1, regbase);
}
+
+ /* Unions up to 32 bytes in size are returned in integer registers. */
else if (TREE_CODE (type) == UNION_TYPE)
{
HOST_WIDE_INT size = int_size_in_bytes (type);
-
gcc_assert (size <= 32);
return function_arg_union_value (size, mode, 0, regbase);
}
+
+ /* Objects that require it are returned in FP registers. */
+ else if (mclass == MODE_FLOAT || mclass == MODE_COMPLEX_FLOAT)
+ ;
+
+ /* All other aggregate types are returned in an integer register in a
+ mode corresponding to the size of the type. */
else if (AGGREGATE_TYPE_P (type))
{
/* All other aggregate types are passed in an integer register
in a mode corresponding to the size of the type. */
- HOST_WIDE_INT bytes = int_size_in_bytes (type);
-
- gcc_assert (bytes <= 32);
+ HOST_WIDE_INT size = int_size_in_bytes (type);
+ gcc_assert (size <= 32);
- mode = mode_for_size (bytes * BITS_PER_UNIT, MODE_INT, 0);
+ mode = mode_for_size (size * BITS_PER_UNIT, MODE_INT, 0);
/* ??? We probably should have made the same ABI change in
3.4.0 as the one we made for unions. The latter was
@@ -5555,17 +5559,17 @@ function_value (tree type, enum machine_mode mode, int incoming_p)
try to be unduly clever, and simply follow the ABI
for unions in that case. */
if (mode == BLKmode)
- return function_arg_union_value (bytes, mode, 0, regbase);
+ return function_arg_union_value (size, mode, 0, regbase);
else
mclass = MODE_INT;
}
- else if (mclass == MODE_INT
- && GET_MODE_SIZE (mode) < UNITS_PER_WORD)
+
+ /* This must match PROMOTE_FUNCTION_MODE. */
+ else if (mclass == MODE_INT && GET_MODE_SIZE (mode) < UNITS_PER_WORD)
mode = word_mode;
}
- if ((mclass == MODE_FLOAT || mclass == MODE_COMPLEX_FLOAT)
- && TARGET_FPU)
+ if ((mclass == MODE_FLOAT || mclass == MODE_COMPLEX_FLOAT) && TARGET_FPU)
regno = SPARC_FP_ARG_FIRST;
else
regno = regbase;
@@ -8483,16 +8487,24 @@ sparc_rtx_costs (rtx x, int code, int outer_code, int *total)
}
}
-/* Emit the sequence of insns SEQ while preserving the registers. */
+/* Emit the sequence of insns SEQ while preserving the registers REG and REG2.
+ This is achieved by means of a manual dynamic stack space allocation in
+ the current frame. We make the assumption that SEQ doesn't contain any
+ function calls, with the possible exception of calls to the PIC helper. */
static void
emit_and_preserve (rtx seq, rtx reg, rtx reg2)
{
- /* STACK_BOUNDARY guarantees that this is a 2-word slot. */
- rtx slot = gen_rtx_MEM (word_mode,
- plus_constant (stack_pointer_rtx, SPARC_STACK_BIAS));
+ /* We must preserve the lowest 16 words for the register save area. */
+ HOST_WIDE_INT offset = 16*UNITS_PER_WORD;
+ /* We really need only 2 words of fresh stack space. */
+ HOST_WIDE_INT size = SPARC_STACK_ALIGN (offset + 2*UNITS_PER_WORD);
+
+ rtx slot
+ = gen_rtx_MEM (word_mode, plus_constant (stack_pointer_rtx,
+ SPARC_STACK_BIAS + offset));
- emit_insn (gen_stack_pointer_dec (GEN_INT (STACK_BOUNDARY/BITS_PER_UNIT)));
+ emit_insn (gen_stack_pointer_dec (GEN_INT (size)));
emit_insn (gen_rtx_SET (VOIDmode, slot, reg));
if (reg2)
emit_insn (gen_rtx_SET (VOIDmode,
@@ -8504,7 +8516,7 @@ emit_and_preserve (rtx seq, rtx reg, rtx reg2)
reg2,
adjust_address (slot, word_mode, UNITS_PER_WORD)));
emit_insn (gen_rtx_SET (VOIDmode, reg, slot));
- emit_insn (gen_stack_pointer_inc (GEN_INT (STACK_BOUNDARY/BITS_PER_UNIT)));
+ emit_insn (gen_stack_pointer_inc (GEN_INT (size)));
}
/* Output the assembler code for a thunk function. THUNK_DECL is the
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index ea00b4b398b..fe48ced0532 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,171 @@
+2006-04-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR c++/19963
+ * class.c (layout_class_type): Skip fields with invalid types.
+
+2006-04-23 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/26912
+ * cp-tree.h (build_this_parm): Declare.
+ (grok_method_quals): Remove.
+ (build_memfn_type): Declare.
+ (build_artificial_parm): Declare.
+ (do_friend): Remove quals parameter.
+ * decl.c (build_this_parm): New function.
+ (grokfndecl): Use it. Do not pass quals to grokclassfn.
+ (grokdeclarator): Rename quals to memfn_quals. Avoid allocating
+ unnecessary TYPE_DECLs. Correct qualification of member function
+ types. Tidy.
+ * method.c (implicitly_declare_fn): Use build_this_parm.
+ * friend.c (do_friend): Remove quals parameter.
+ * decl2.c (grok_method_quals): Remove.
+ (build_memfn_type): New function.
+ (build_artificial_parm): Give it external linkage.
+ (grokclassfn): Remove quals parameter. Do not build "this"
+ PARM_DECL here.
+
+ PR c++/26534
+ * cp-tree.h (is_bitfield_expr_with_lowered_type): New function.
+ * typeck.c (is_bitfield_expr_with_lowered_type): New function.
+ (decay_conversion): Convert bitfield expressions to the correct
+ type.
+ (build_modify_expr): Remove spurious conversions.
+ * class.c (layout_class_type): Modify the type of bitfields to
+ indicate a limited range.
+ * call.c (standard_conversion): Adjust the type of bitfield
+ expressions used in an rvalue context.
+ (build_conditional_expr): Likewise.
+
+2006-04-22 Kazu Hirata <kazu@codesourcery.com>
+
+ * decl.c: Fix comment typos.
+
+2006-04-21 Eric Christopher <echristo@apple.com>
+
+ * decl.c: Fix typo in function name.
+
+2006-04-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR c++/26558
+ * parser.c (cp_parser_class_name): Check for invalid typenames.
+ Rearrange code.
+
+ PR c++/26739
+ * pt.c (tsubst_friend_function): Return early if
+ pushdecl_namespace_level fails.
+
+ PR c++/26036
+ * typeck.c (convert_arguments): Return error_mark_node instead of
+ error_mark_list.
+ * cp-tree.h (error_mark_list): Remove declaration.
+ * decl.c (error_mark_list): Remove definition.
+ (cxx_init_decl_processing): Do not initialize error_mark_list.
+
+ PR c++/10385
+ * rtti.c (build_dynamic_cast_1): Check for invalid conversions
+ before calling convert_to_reference.
+ * cvt.c (convert_to_reference): Assert that reftype is a
+ REFERENCE_TYPE.
+
+2006-04-19 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/27102
+ * class.c (currently_open_class): Tidy.
+ * decl.c (grokdeclarator): If we encounter an erroneous
+ declarator, assume that we have already issued an error message
+ and return. Return error_mark_node instead of NULL_TREE in more
+ places. Issue errors about function definitions that do not have
+ a function declarator. Check for complete types for all function
+ definitions.
+ * cp-tree.h (cp_error_declarator): Remove.
+ (currently_open_class): Change return type.
+ * parser.c (cp_parser_id_expression): Add optional_p parameter.
+ (cp_parser_parse_diagnose_invalid_type_name): Adjust calls.
+ (cp_parser_id_expression): Likewise.
+ (cp_parser_unqualified_id): If the name is optional, return
+ NULL_TREE.
+ (cp_parser_postfix_dot_deref_expression): Adjust calls.
+ (cp_parser_type_parameter): Likewise.
+ (cp_parser_unqualified_id): Likewise.
+ (cp_parser_direct_declarator): Likewise.
+ (cp_parser_declarator_id): Add optional_p parameter.
+ (cp_parser_function_definition_from_specifiers_and_declarator):
+ Assume that start_function indicates failure only if it has issued
+ an error.
+ (cp_parser_omp_var_list_no_open): Adjust calls.
+
+2006-04-17 Janis Johnson <janis187@us.ibm.com>
+
+ PR c++/26114, c++/26115
+ * typeck.c (cxx_mark_addressable): Restore check for extra_warnings.
+ * class.c (check_field_decls): Ditto.
+
+2006-04-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ * init.c (build_offset_ref): Remove superfluous temporary.
+
+2006-04-16 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/26365
+ * typeck.c (finish_class_member_access_expr): Robustify
+
+2006-04-15 Kazu Hirata <kazu@codesourcery.com>
+
+ * Make-lang.in (cp/pt.o): Depend on vecprim.h.
+ * pt.c: Include vecprim.h.
+ (inline_parm_levels): Change the type to VEC(int,heap) *.
+ (inline_parm_levels_used): Remove.
+ (maybe_begin_member_template_processing,
+ maybe_end_member_template_processing): Use VEC instead of
+ VARRAY.
+
+ * cp/call.c: Fix comment typos.
+
+2006-04-12 Mark Mitchell <mark@codesourcery.com>
+
+ * parser.c (cp_parser_init_declarator): Initialize local variables
+ aggressively.
+
+2006-04-12 Roger Sayle <roger@eyesopen.com>
+
+ * parser.c (cp_parser_init_declarator): Initialise
+ is_parenthesized_init to false to avoid compiler warning.
+
+2006-04-11 Mark Mitchell <mark@codesourcery.com>
+
+ * cp-tree.h (build_operator_new_call): Adjust prototype.
+ (build_new_method_call): Likewise.
+ (build_op_delete_call): Likewise.
+ * init.c (build_raw_new_expr): New function.
+ (build_new_1): Pass information as parameters, rather than
+ bundling it into a NEW_EXPR.
+ (build_new): Adjust accordingly.
+ (build_vec_delete_1): Adjust for changes to build_op_delete_call.
+ (build_delete): Likewise.
+ * decl.c (finish_destructor_body): Likewise.
+ * call.c (build_operator_new_call): Return the allocation function
+ used.
+ (build_op_delete_call): Take allocation function as parameter.
+ (build_special_member_call): Adjust call to build_new_method_call.
+ (build_new_method_call): Return function called.
+ * pt.c (tsubst_copy_and_build): Adjust call to
+ build_new_method_call.
+ * semantics.c (finish_call_expr): Likewise.
+ * parser.c (cp_parser_postfix_expression): Likewise.
+ * typeck2.c (cxx_incomplete_type_diagnostic): Refer to
+ "incomplete", not "undefined", types.
+
+ PR c++/26295
+ * decl.c (grokdeclarator): Remove namespace-handling code for
+ pointers-to-members.
+ * parser.c (cp_parser_ptr_operator): Check for qualified names
+ using namespaces.
+
+ PR c++/26122
+ * parser.c (cp_parser_init_declarator): Adjust logic for deciding
+ whether or not to look for a pure-specifier.
+ (cp_parser_member_declaration): Likewise.
+
2006-04-08 Kazu Hirata <kazu@codesourcery.com>
* decl2.c, pt.c, semantics.c: Fix comment typos.
@@ -37,7 +205,7 @@
PR c++/21581
* parser.c (cp_parser_declaration): Support attributes on
anonymous namespaces.
- * name-lookup.c (push_namespace_with_attribs): Anonymous
+ * name-lookup.c (push_namespace_with_attribs): Anonymous
namespaces default to hidden visibility.
2006-03-20 Jason Merrill <jason@redhat.com>
@@ -47,16 +215,16 @@
(start_preparsed_function): Likewise.
* cp-tree.h (CP_TYPE_CONTEXT, TYPE_NAMESPACE_SCOPE_P): New macros.
(TYPE_CLASS_SCOPE_P, TYPE_FUNCTION_SCOPE_P): New macros.
- * name-lookup.h (struct cp_binding_level): Add has_visibility
+ * name-lookup.h (struct cp_binding_level): Add has_visibility
bitfield.
* name-lookup.c: Include c-pragma.h.
(push_namespace_with_attribs): Split out from push_namespace.
Push visibility if appropriate. Set TREE_PUBLIC on namespaces.
(leave_scope): Pop visibility if appropriate.
* decl2.c (determine_visibility_from_class): Split out from...
- (determine_visibility): ...here. Handle function scope and
+ (determine_visibility): ...here. Handle function scope and
nested classes.
- (import_export_decl): Move visibility handling to
+ (import_export_decl): Move visibility handling to
determine_visibility_from_class.
* parser.c (cp_parser_declaration, cp_parser_namespace_name): Allow
attributes on namespace declarations.
@@ -643,7 +811,7 @@
2006-02-12 Jason Merrill <jason@redhat.com>
PR c++/24996
- * except.c (build_throw): Add a CLEANUP_POINT_EXPR inside the
+ * except.c (build_throw): Add a CLEANUP_POINT_EXPR inside the
TRY_CATCH_EXPR or MUST_NOT_THROW_EXPR.
2006-02-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
@@ -790,7 +958,7 @@
* Make-lang.in (cp-warn): Include CXX_COMPAT_WARN.
* repo.c (extract_string, afgets): Use cast when converting from
- void *.
+ void *.
2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
@@ -824,7 +992,7 @@
2006-01-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
* call.c (joust): Pass option code to warning. Use inform for
- explanation.
+ explanation.
* class.c (check_bases): Likewise.
(maybe_warn_about_overly_private_class): Likewise.
(check_field_decls): Likewise.
@@ -888,7 +1056,7 @@
(pfn_from_ptrmemfunc): Add prototype, make static.
2006-01-24 Dirk Mueller <dmueller@suse.de>
-
+
* typeck.c (build_binary_op): Use OPT_Wfloat_equal in warning().
2006-01-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
@@ -939,7 +1107,7 @@
PR c++/10891
* rtti.c (build_dynamic_cast): Reject dynamic_cast use if
- -fno-rtti.
+ -fno-rtti.
2006-01-21 Mark Mitchell <mark@codesourcery.com>
@@ -951,9 +1119,9 @@
PR c++/25856
* decl.c (begin_destructor_body): Robustify.
- PR c++/25858
+ PR c++/25858
* parser.c (cp_parser_direct_declarator): Robustify.
-
+
2006-01-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
* parser.c (cp_lexer_next_token_is_keyword): Simplify.
@@ -4711,7 +4879,7 @@
* pt.c (instantiate_class_template,
resolve_typename_type): Likewise.
-2005-01-03 Volker Reichelt <reichelt@igpm.rwth-aaachen.de>
+2005-01-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
PR c++/14136
* parser.c (cp_parser_unqualified_id): Do not issue error message
diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in
index 63b7507fd03..afc80fa888f 100644
--- a/gcc/cp/Make-lang.in
+++ b/gcc/cp/Make-lang.in
@@ -270,7 +270,7 @@ cp/except.o: cp/except.c $(CXX_TREE_H) $(TM_H) flags.h $(RTL_H) except.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 cp/cp-objcp-common.h \
- toplev.h $(RTL_H) except.h tree-inline.h pointer-set.h gt-cp-pt.h
+ toplev.h $(RTL_H) except.h tree-inline.h pointer-set.h gt-cp-pt.h vecprim.h
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 \
diff --git a/gcc/cp/call.c b/gcc/cp/call.c
index 0413a9885dd..6743f924c2d 100644
--- a/gcc/cp/call.c
+++ b/gcc/cp/call.c
@@ -623,7 +623,16 @@ standard_conversion (tree to, tree from, tree expr, bool c_cast_p,
conv = build_conv (ck_lvalue, from, conv);
}
else if (fromref || (expr && lvalue_p (expr)))
- conv = build_conv (ck_rvalue, from, conv);
+ {
+ if (expr)
+ {
+ tree bitfield_type;
+ bitfield_type = is_bitfield_expr_with_lowered_type (expr);
+ if (bitfield_type)
+ from = bitfield_type;
+ }
+ conv = build_conv (ck_rvalue, from, conv);
+ }
/* Allow conversion between `__complex__' data types. */
if (tcode == COMPLEX_TYPE && fcode == COMPLEX_TYPE)
@@ -2817,16 +2826,21 @@ build_new_function_call (tree fn, tree args, bool koenig_p)
required by the allocation, and is updated if that is changed here.
*COOKIE_SIZE is non-NULL if a cookie should be used. If this
function determines that no cookie should be used, after all,
- *COOKIE_SIZE is set to NULL_TREE. */
+ *COOKIE_SIZE is set to NULL_TREE. If FN is non-NULL, it will be
+ set, upon return, to the allocation function called. */
tree
-build_operator_new_call (tree fnname, tree args, tree *size, tree *cookie_size)
+build_operator_new_call (tree fnname, tree args,
+ tree *size, tree *cookie_size,
+ tree *fn)
{
tree fns;
struct z_candidate *candidates;
struct z_candidate *cand;
bool any_viable_p;
+ if (fn)
+ *fn = NULL_TREE;
args = tree_cons (NULL_TREE, *size, args);
args = resolve_args (args);
if (args == error_mark_node)
@@ -2904,6 +2918,10 @@ build_operator_new_call (tree fnname, tree args, tree *size, tree *cookie_size)
*cookie_size = NULL_TREE;
}
+ /* Tell our caller which function we decided to call. */
+ if (fn)
+ *fn = cand->fn;
+
/* Build the CALL_EXPR. */
return build_over_call (cand, LOOKUP_NORMAL);
}
@@ -3187,8 +3205,12 @@ build_conditional_expr (tree arg1, tree arg2, tree arg3)
array-to-pointer (_conv.array_), and function-to-pointer
(_conv.func_) standard conversions are performed on the second
and third operands. */
- arg2_type = TREE_TYPE (arg2);
- arg3_type = TREE_TYPE (arg3);
+ arg2_type = is_bitfield_expr_with_lowered_type (arg2);
+ if (!arg2_type)
+ arg2_type = TREE_TYPE (arg2);
+ arg3_type = is_bitfield_expr_with_lowered_type (arg3);
+ if (!arg3_type)
+ arg3_type = TREE_TYPE (arg3);
if (VOID_TYPE_P (arg2_type) || VOID_TYPE_P (arg3_type))
{
/* Do the conversions. We don't these for `void' type arguments
@@ -3930,11 +3952,14 @@ build_new_op (enum tree_code code, int flags, tree arg1, tree arg2, tree arg3,
SIZE is the size of the memory block to be deleted.
GLOBAL_P is true if the delete-expression should not consider
class-specific delete operators.
- PLACEMENT is the corresponding placement new call, or NULL_TREE. */
+ PLACEMENT is the corresponding placement new call, or NULL_TREE.
+ If PLACEMENT is non-NULL, then ALLOC_FN is the allocation function
+ called to perform the placement new. */
tree
build_op_delete_call (enum tree_code code, tree addr, tree size,
- bool global_p, tree placement)
+ bool global_p, tree placement,
+ tree alloc_fn)
{
tree fn = NULL_TREE;
tree fns, fnname, argtypes, args, type;
@@ -3970,18 +3995,12 @@ build_op_delete_call (enum tree_code code, tree addr, tree size,
if (placement)
{
- tree alloc_fn;
- tree call_expr;
-
- /* Find the allocation function that is being called. */
- call_expr = placement;
- /* Extract the function. */
- alloc_fn = get_callee_fndecl (call_expr);
+ /* Get the parameter types for the allocation function that is
+ being called. */
gcc_assert (alloc_fn != NULL_TREE);
- /* Then the second parm type. */
argtypes = TREE_CHAIN (TYPE_ARG_TYPES (TREE_TYPE (alloc_fn)));
/* Also the second argument. */
- args = TREE_CHAIN (TREE_OPERAND (call_expr, 1));
+ args = TREE_CHAIN (TREE_OPERAND (placement, 1));
}
else
{
@@ -5181,7 +5200,7 @@ build_special_member_call (tree instance, tree name, tree args,
return build_new_method_call (instance, fns, args,
TYPE_BINFO (BINFO_TYPE (binfo)),
- flags);
+ flags, /*fn=*/NULL);
}
/* Return the NAME, as a C string. The NAME indicates a function that
@@ -5229,11 +5248,13 @@ name_as_c_string (tree name, tree type, bool *free_p)
return pretty_name;
}
-/* Build a call to "INSTANCE.FN (ARGS)". */
+/* Build a call to "INSTANCE.FN (ARGS)". If FN_P is non-NULL, it will
+ be set, upon return, to the function called. */
tree
build_new_method_call (tree instance, tree fns, tree args,
- tree conversion_path, int flags)
+ tree conversion_path, int flags,
+ tree *fn_p)
{
struct z_candidate *candidates = 0, *cand;
tree explicit_targs = NULL_TREE;
@@ -5255,6 +5276,10 @@ build_new_method_call (tree instance, tree fns, tree args,
gcc_assert (instance != NULL_TREE);
+ /* We don't know what function we're going to call, yet. */
+ if (fn_p)
+ *fn_p = NULL_TREE;
+
if (error_operand_p (instance)
|| error_operand_p (fns)
|| args == error_mark_node)
@@ -5411,8 +5436,10 @@ build_new_method_call (tree instance, tree fns, tree args,
}
else
{
+ fn = cand->fn;
+
if (!(flags & LOOKUP_NONVIRTUAL)
- && DECL_PURE_VIRTUAL_P (cand->fn)
+ && DECL_PURE_VIRTUAL_P (fn)
&& instance == current_class_ref
&& (DECL_CONSTRUCTOR_P (current_function_decl)
|| DECL_DESTRUCTOR_P (current_function_decl)))
@@ -5421,27 +5448,29 @@ build_new_method_call (tree instance, tree fns, tree args,
warning (0, (DECL_CONSTRUCTOR_P (current_function_decl) ?
"abstract virtual %q#D called from constructor"
: "abstract virtual %q#D called from destructor"),
- cand->fn);
+ fn);
- if (TREE_CODE (TREE_TYPE (cand->fn)) == METHOD_TYPE
+ if (TREE_CODE (TREE_TYPE (fn)) == METHOD_TYPE
&& is_dummy_object (instance_ptr))
{
error ("cannot call member function %qD without object",
- cand->fn);
+ fn);
call = error_mark_node;
}
else
{
- if (DECL_VINDEX (cand->fn) && ! (flags & LOOKUP_NONVIRTUAL)
+ if (DECL_VINDEX (fn) && ! (flags & LOOKUP_NONVIRTUAL)
&& resolves_to_fixed_type_p (instance, 0))
flags |= LOOKUP_NONVIRTUAL;
-
+ /* Now we know what function is being called. */
+ if (fn_p)
+ *fn_p = fn;
+ /* Build the actual CALL_EXPR. */
call = build_over_call (cand, flags);
-
/* In an expression of the form `a->f()' where `f' turns
out to be a static member function, `a' is
none-the-less evaluated. */
- if (TREE_CODE (TREE_TYPE (cand->fn)) != METHOD_TYPE
+ if (TREE_CODE (TREE_TYPE (fn)) != METHOD_TYPE
&& !is_dummy_object (instance_ptr)
&& TREE_SIDE_EFFECTS (instance))
call = build2 (COMPOUND_EXPR, TREE_TYPE (call),
diff --git a/gcc/cp/class.c b/gcc/cp/class.c
index 3f48faeb4ec..a7536bb7ce9 100644
--- a/gcc/cp/class.c
+++ b/gcc/cp/class.c
@@ -2935,7 +2935,8 @@ check_field_decls (tree t, tree *access_decls,
members. */
TYPE_HAS_COMPLEX_ASSIGN_REF (t) = 1;
- if (! TYPE_HAS_CONSTRUCTOR (t) && CLASSTYPE_NON_AGGREGATE (t))
+ if (! TYPE_HAS_CONSTRUCTOR (t) && CLASSTYPE_NON_AGGREGATE (t)
+ && extra_warnings)
warning (OPT_Wextra, "non-static reference %q+#D in class without a constructor", x);
}
@@ -2981,7 +2982,8 @@ check_field_decls (tree t, tree *access_decls,
members. */
TYPE_HAS_COMPLEX_ASSIGN_REF (t) = 1;
- if (! TYPE_HAS_CONSTRUCTOR (t) && CLASSTYPE_NON_AGGREGATE (t))
+ if (! TYPE_HAS_CONSTRUCTOR (t) && CLASSTYPE_NON_AGGREGATE (t)
+ && extra_warnings)
warning (OPT_Wextra, "non-static const member %q+#D in class without a constructor", x);
}
/* A field that is pseudo-const makes the structure likewise. */
@@ -4605,6 +4607,8 @@ layout_class_type (tree t, tree *virtuals_p)
}
type = TREE_TYPE (field);
+ if (type == error_mark_node)
+ continue;
padding = NULL_TREE;
@@ -4725,6 +4729,29 @@ layout_class_type (tree t, tree *virtuals_p)
"classes to be placed at different locations in a "
"future version of GCC", field);
+ /* The middle end uses the type of expressions to determine the
+ possible range of expression values. In order to optimize
+ "x.i > 7" to "false" for a 2-bit bitfield "i", the middle end
+ must be made aware of the width of "i", via its type.
+
+ Because C++ does not have integer types of arbitrary width,
+ we must (for the purposes of the front end) convert from the
+ type assigned here to the declared type of the bitfield
+ whenever a bitfield expression is used as an rvalue.
+ Similarly, when assigning a value to a bitfield, the value
+ must be converted to the type given the bitfield here. */
+ if (DECL_C_BIT_FIELD (field))
+ {
+ tree ftype;
+ unsigned HOST_WIDE_INT width;
+ ftype = TREE_TYPE (field);
+ width = tree_low_cst (DECL_SIZE (field), /*unsignedp=*/1);
+ if (width != TYPE_PRECISION (ftype))
+ TREE_TYPE (field)
+ = c_build_bitfield_integer_type (width,
+ TYPE_UNSIGNED (ftype));
+ }
+
/* If we needed additional padding after this field, add it
now. */
if (padding)
@@ -5494,25 +5521,33 @@ pop_class_stack (void)
--current_class_stack[current_class_depth - 1].hidden;
}
-/* Returns 1 if current_class_type is either T or a nested type of T.
- We start looking from 1 because entry 0 is from global scope, and has
- no type. */
+/* Returns 1 if the class type currently being defined is either T or
+ a nested type of T. */
-int
+bool
currently_open_class (tree t)
{
int i;
- if (current_class_type && same_type_p (t, current_class_type))
- return 1;
- for (i = current_class_depth - 1; i > 0; --i)
+
+ /* We start looking from 1 because entry 0 is from global scope,
+ and has no type. */
+ for (i = current_class_depth; i > 0; --i)
{
- if (current_class_stack[i].hidden)
- break;
- if (current_class_stack[i].type
- && same_type_p (current_class_stack [i].type, t))
- return 1;
+ tree c;
+ if (i == current_class_depth)
+ c = current_class_type;
+ else
+ {
+ if (current_class_stack[i].hidden)
+ break;
+ c = current_class_stack[i].type;
+ }
+ if (!c)
+ continue;
+ if (same_type_p (c, t))
+ return true;
}
- return 0;
+ return false;
}
/* If either current_class_type or one of its enclosing classes are derived
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index 4b155735427..1e3c1b7807d 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -3184,10 +3184,6 @@ typedef enum base_kind {
binfo. */
} base_kind;
-/* in decl{2}.c */
-/* A node that is a list (length 1) of error_mark_nodes. */
-extern GTY(()) tree error_mark_list;
-
/* Node for "pointer to (virtual) function".
This may be distinct from ptr_type_node so gdb can distinguish them. */
#define vfunc_ptr_type_node vtable_entry_type
@@ -3691,9 +3687,6 @@ struct cp_declarator {
} u;
};
-/* An erroneous declarator. */
-extern cp_declarator *cp_error_declarator;
-
/* A parameter list indicating for a function with no parameters,
e.g "int f(void)". */
extern cp_parameter_declarator *no_parameters;
@@ -3710,11 +3703,13 @@ extern bool sufficient_parms_p (tree);
extern tree type_decays_to (tree);
extern tree build_user_type_conversion (tree, tree, int);
extern tree build_new_function_call (tree, tree, bool);
-extern tree build_operator_new_call (tree, tree, tree *, tree *);
-extern tree build_new_method_call (tree, tree, tree, tree, int);
+extern tree build_operator_new_call (tree, tree, tree *, tree *,
+ tree *);
+extern tree build_new_method_call (tree, tree, tree, tree, int,
+ tree *);
extern tree build_special_member_call (tree, tree, tree, tree, int);
extern tree build_new_op (enum tree_code, int, tree, tree, tree, bool *);
-extern tree build_op_delete_call (enum tree_code, tree, tree, bool, tree);
+extern tree build_op_delete_call (enum tree_code, tree, tree, bool, tree, tree);
extern bool can_convert (tree, tree);
extern bool can_convert_arg (tree, tree, tree, int);
extern bool can_convert_arg_bad (tree, tree, tree);
@@ -3748,7 +3743,7 @@ extern tree get_vtable_decl (tree, int);
extern void resort_type_method_vec (void *, void *,
gt_pointer_operator, void *);
extern bool add_method (tree, tree, tree);
-extern int currently_open_class (tree);
+extern bool currently_open_class (tree);
extern tree currently_open_derived_class (tree);
extern tree finish_struct (tree, tree);
extern void finish_struct_1 (tree);
@@ -3847,6 +3842,7 @@ 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 */
+extern tree build_this_parm (tree, cp_cv_quals);
extern int copy_fn_p (tree);
extern tree get_scope_of_declarator (const cp_declarator *);
extern void grok_special_member_properties (tree);
@@ -3904,12 +3900,11 @@ extern bool have_extern_spec;
/* in decl2.c */
extern bool check_java_method (tree);
-extern cp_cv_quals grok_method_quals (tree, tree, cp_cv_quals);
+extern tree build_memfn_type (tree, tree, cp_cv_quals);
extern void maybe_retrofit_in_chrg (tree);
extern void maybe_make_one_only (tree);
extern void grokclassfn (tree, tree,
- enum overload_flags,
- cp_cv_quals);
+ enum overload_flags);
extern tree grok_array_decl (tree, tree);
extern tree delete_sanity (tree, tree, bool, int);
extern tree check_classfn (tree, tree, tree);
@@ -3939,6 +3934,7 @@ extern tree cxx_callgraph_analyze_expr (tree *, int *, tree);
extern void mark_needed (tree);
extern bool decl_needed_p (tree);
extern void note_vague_linkage_fn (tree);
+extern tree build_artificial_parm (tree, tree);
/* in error.c */
extern void init_error (void);
@@ -3971,7 +3967,7 @@ extern tree cplus_expand_constant (tree);
extern int is_friend (tree, tree);
extern void make_friend_class (tree, tree, bool);
extern void add_friend (tree, tree, bool);
-extern tree do_friend (tree, tree, tree, tree, enum overload_flags, cp_cv_quals, bool);
+extern tree do_friend (tree, tree, tree, tree, enum overload_flags, bool);
/* in init.c */
extern tree expand_member_init (tree);
@@ -4356,6 +4352,7 @@ extern tree cxx_sizeof_or_alignof_expr (tree, enum tree_code);
extern tree cxx_sizeof_or_alignof_type (tree, enum tree_code, bool);
#define cxx_sizeof_nowarn(T) cxx_sizeof_or_alignof_type (T, SIZEOF_EXPR, false)
extern tree inline_conversion (tree);
+extern tree is_bitfield_expr_with_lowered_type (tree);
extern tree decay_conversion (tree);
extern tree default_conversion (tree);
extern tree build_class_member_access_expr (tree, tree, tree, bool);
diff --git a/gcc/cp/cvt.c b/gcc/cp/cvt.c
index c59c74c135c..902372ea191 100644
--- a/gcc/cp/cvt.c
+++ b/gcc/cp/cvt.c
@@ -460,6 +460,7 @@ convert_to_reference (tree reftype, tree expr, int convtype,
intype = TREE_TYPE (expr);
gcc_assert (TREE_CODE (intype) != REFERENCE_TYPE);
+ gcc_assert (TREE_CODE (reftype) == REFERENCE_TYPE);
intype = TYPE_MAIN_VARIANT (intype);
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index 45feb9f0c58..c7967c7709b 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -106,9 +106,6 @@ static void initialize_local_var (tree, tree);
static void expand_static_init (tree, tree);
static tree next_initializable_field (tree);
-/* Erroneous argument lists can use this *IFF* they do not modify it. */
-tree error_mark_list;
-
/* The following symbols are subsumed in the cp_global_trees array, and
listed here individually for documentation purposes.
@@ -3118,9 +3115,6 @@ cxx_init_decl_processing (void)
/* Initially, C. */
current_lang_name = lang_name_c;
- error_mark_list = build_tree_list (error_mark_node, error_mark_node);
- TREE_TYPE (error_mark_list) = error_mark_node;
-
/* Create the `std' namespace. */
push_namespace (std_identifier);
std_node = current_namespace;
@@ -5814,6 +5808,28 @@ check_class_member_definition_namespace (tree decl)
decl, DECL_CONTEXT (decl));
}
+/* Build a PARM_DECL for the "this" parameter. TYPE is the
+ METHOD_TYPE for a non-static member function; QUALS are the
+ cv-qualifiers that apply to the function. */
+
+tree
+build_this_parm (tree type, cp_cv_quals quals)
+{
+ tree this_type;
+ tree qual_type;
+ tree parm;
+ cp_cv_quals this_quals;
+
+ this_type = TREE_VALUE (TYPE_ARG_TYPES (type));
+ /* The `this' parameter is implicitly `const'; it cannot be
+ assigned to. */
+ this_quals = (quals & TYPE_QUAL_RESTRICT) | TYPE_QUAL_CONST;
+ qual_type = cp_build_qualified_type (this_type, this_quals);
+ parm = build_artificial_parm (this_identifier, qual_type);
+ cp_apply_type_quals_to_decl (this_quals, parm);
+ return parm;
+}
+
/* CTYPE is class type, or null if non-class.
TYPE is type this FUNCTION_DECL should have, either FUNCTION_TYPE
or METHOD_TYPE.
@@ -5860,6 +5876,13 @@ grokfndecl (tree ctype,
type = build_exception_variant (type, raises);
decl = build_lang_decl (FUNCTION_DECL, declarator, type);
+ if (TREE_CODE (type) == METHOD_TYPE)
+ {
+ tree parm;
+ parm = build_this_parm (type, quals);
+ TREE_CHAIN (parm) = parms;
+ parms = parm;
+ }
DECL_ARGUMENTS (decl) = parms;
/* Propagate volatile out from type to decl. */
if (TYPE_VOLATILE (type))
@@ -6063,7 +6086,7 @@ grokfndecl (tree ctype,
if (sfk == sfk_constructor)
DECL_CONSTRUCTOR_P (decl) = 1;
- grokclassfn (ctype, decl, flags, quals);
+ grokclassfn (ctype, decl, flags);
}
decl = check_explicit_specialization (orig_declarator, decl,
@@ -6771,12 +6794,11 @@ grokdeclarator (const cp_declarator *declarator,
{
tree type = NULL_TREE;
int longlong = 0;
- int type_quals;
int virtualp, explicitp, friendp, inlinep, staticp;
int explicit_int = 0;
int explicit_char = 0;
int defaulted_int = 0;
- tree dependant_name = NULL_TREE;
+ tree dependent_name = NULL_TREE;
tree typedef_decl = NULL_TREE;
const char *name = NULL;
@@ -6798,7 +6820,11 @@ grokdeclarator (const cp_declarator *declarator,
tree dname = NULL_TREE;
tree ctor_return_type = NULL_TREE;
enum overload_flags flags = NO_SPECIAL;
- cp_cv_quals quals = TYPE_UNQUALIFIED;
+ /* cv-qualifiers that apply to the declarator, for a declaration of
+ a member function. */
+ cp_cv_quals memfn_quals = TYPE_UNQUALIFIED;
+ /* cv-qualifiers that apply to the type specified by the DECLSPECS. */
+ int type_quals;
tree raises = NULL_TREE;
int template_count = 0;
tree returned_attrs = NULL_TREE;
@@ -6956,7 +6982,7 @@ grokdeclarator (const cp_declarator *declarator,
break;
case cdk_error:
- break;
+ return error_mark_node;
default:
gcc_unreachable ();
@@ -6966,11 +6992,15 @@ grokdeclarator (const cp_declarator *declarator,
break;
}
- /* A function definition's declarator must have the form of
- a function declarator. */
-
+ /* [dcl.fct.edf]
+
+ The declarator in a function-definition shall have the form
+ D1 ( parameter-declaration-clause) ... */
if (funcdef_flag && innermost_code != cdk_function)
- return NULL_TREE;
+ {
+ error ("function definition does not declare parameters");
+ return error_mark_node;
+ }
if (((dname && IDENTIFIER_OPNAME_P (dname)) || flags == TYPENAME_FLAG)
&& innermost_code != cdk_function
@@ -7252,9 +7282,9 @@ grokdeclarator (const cp_declarator *declarator,
}
friendp = !! declspecs->specs[(int)ds_friend];
- if (dependant_name && !friendp)
+ if (dependent_name && !friendp)
{
- error ("%<%T::%D%> is not a valid declarator", ctype, dependant_name);
+ error ("%<%T::%D%> is not a valid declarator", ctype, dependent_name);
return void_type_node;
}
@@ -7453,7 +7483,7 @@ grokdeclarator (const cp_declarator *declarator,
}
/* Pick up type qualifiers which should be applied to `this'. */
- quals = declarator->u.function.qualifiers;
+ memfn_quals = declarator->u.function.qualifiers;
/* Pick up the exception specifications. */
raises = declarator->u.function.exception_specification;
@@ -7475,53 +7505,44 @@ grokdeclarator (const cp_declarator *declarator,
is the same as the class name, and we are defining
a function, then it is a constructor/destructor, and
therefore returns a void type. */
-
- if (flags == DTOR_FLAG)
+
+ /* ISO C++ 12.4/2. A destructor may not be declared
+ const or volatile. A destructor may not be
+ static.
+
+ ISO C++ 12.1. A constructor may not be declared
+ const or volatile. A constructor may not be
+ virtual. A constructor may not be static. */
+ if (staticp == 2)
+ error ((flags == DTOR_FLAG)
+ ? "destructor cannot be static member function"
+ : "constructor cannot be static member function");
+ if (memfn_quals)
{
- /* ISO C++ 12.4/2. A destructor may not be
- declared const or volatile. A destructor may
- not be static. */
- if (staticp == 2)
- error ("destructor cannot be static member function");
- if (quals)
- {
- error ("destructors may not be cv-qualified");
- quals = TYPE_UNQUALIFIED;
- }
- if (decl_context == FIELD)
- {
- if (! member_function_or_else (ctype,
- current_class_type,
- flags))
- return void_type_node;
- }
+ error ((flags == DTOR_FLAG)
+ ? "destructors may not be cv-qualified"
+ : "constructors may not be cv-qualified");
+ memfn_quals = TYPE_UNQUALIFIED;
}
- else /* It's a constructor. */
+
+ if (decl_context == FIELD
+ && !member_function_or_else (ctype,
+ current_class_type,
+ flags))
+ return void_type_node;
+
+ if (flags != DTOR_FLAG)
{
+ /* It's a constructor. */
if (explicitp == 1)
explicitp = 2;
- /* ISO C++ 12.1. A constructor may not be
- declared const or volatile. A constructor may
- not be virtual. A constructor may not be
- static. */
- if (staticp == 2)
- error ("constructor cannot be static member function");
if (virtualp)
{
pedwarn ("constructors cannot be declared virtual");
virtualp = 0;
}
- if (quals)
- {
- error ("constructors may not be cv-qualified");
- quals = TYPE_UNQUALIFIED;
- }
if (decl_context == FIELD)
{
- if (! member_function_or_else (ctype,
- current_class_type,
- flags))
- return void_type_node;
TYPE_HAS_CONSTRUCTOR (ctype) = 1;
if (sfk != sfk_constructor)
return NULL_TREE;
@@ -7562,7 +7583,6 @@ grokdeclarator (const cp_declarator *declarator,
}
type = build_function_type (type, arg_types);
- type = cp_build_qualified_type (type, quals);
}
break;
@@ -7592,22 +7612,13 @@ grokdeclarator (const cp_declarator *declarator,
type_quals = TYPE_UNQUALIFIED;
if (declarator->kind == cdk_ptrmem
- && (TREE_CODE (type) == FUNCTION_TYPE
- || (quals && TREE_CODE (type) == METHOD_TYPE)))
+ && (TREE_CODE (type) == FUNCTION_TYPE || memfn_quals))
{
- 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);
- quals = TYPE_UNQUALIFIED;
+ memfn_quals |= cp_type_quals (type);
+ type = build_memfn_type (type,
+ declarator->u.pointer.class_type,
+ memfn_quals);
+ memfn_quals = TYPE_UNQUALIFIED;
}
if (declarator->kind == cdk_reference)
@@ -7619,15 +7630,9 @@ grokdeclarator (const cp_declarator *declarator,
type = build_ptrmemfunc_type (build_pointer_type (type));
else if (declarator->kind == cdk_ptrmem)
{
- /* We might have parsed a namespace as the class type. */
- if (TREE_CODE (declarator->u.pointer.class_type)
- == NAMESPACE_DECL)
- {
- error ("%qD is a namespace",
- declarator->u.pointer.class_type);
- type = build_pointer_type (type);
- }
- else if (declarator->u.pointer.class_type == error_mark_node)
+ gcc_assert (TREE_CODE (declarator->u.pointer.class_type)
+ != NAMESPACE_DECL);
+ if (declarator->u.pointer.class_type == error_mark_node)
/* We will already have complained. */
type = error_mark_node;
else
@@ -7717,6 +7722,20 @@ grokdeclarator (const cp_declarator *declarator,
pedwarn ("extra qualification %<%T::%> on member %qs",
ctype, name);
}
+ else if (/* If the qualifying type is already complete, then we
+ can skip the following checks. */
+ !COMPLETE_TYPE_P (ctype)
+ /* If a function is being defined, then the qualifying
+ type must be complete. The qualifying type may be
+ incomplete for a declaration only if the qualifying
+ type is one of the classes presently being defined,
+ or if it is a dependent type. */
+ && (funcdef_flag
+ || !(dependent_type_p (ctype)
+ || currently_open_class (ctype)))
+ /* Check that the qualifying type is complete. */
+ && !complete_type_or_else (ctype, NULL_TREE))
+ return error_mark_node;
else if (TREE_CODE (type) == FUNCTION_TYPE)
{
tree sname = declarator->u.id.unqualified_name;
@@ -7737,28 +7756,13 @@ grokdeclarator (const cp_declarator *declarator,
are always static functions. */
;
else
- type = build_method_type_directly (ctype,
- TREE_TYPE (type),
- TYPE_ARG_TYPES (type));
+ type = build_memfn_type (type, ctype, memfn_quals);
}
else if (declspecs->specs[(int)ds_typedef]
- || COMPLETE_TYPE_P (complete_type (ctype)))
+ && current_class_type)
{
- /* Have to move this code elsewhere in this function.
- this code is used for i.e., typedef int A::M; M *pm;
-
- It is? How? jason 10/2/94 */
-
- if (current_class_type)
- {
- error ("cannot declare member %<%T::%s%> within %qT",
- ctype, name, current_class_type);
- return void_type_node;
- }
- }
- else
- {
- cxx_incomplete_type_error (NULL_TREE, ctype);
+ error ("cannot declare member %<%T::%s%> within %qT",
+ ctype, name, current_class_type);
return error_mark_node;
}
}
@@ -7844,6 +7848,18 @@ grokdeclarator (const cp_declarator *declarator,
in typenames, fields or parameters. */
if (current_lang_name == lang_name_java)
TYPE_FOR_JAVA (type) = 1;
+
+ /* This declaration:
+
+ typedef void f(int) const;
+
+ declares a function type which is not a member of any
+ particular class, but which is cv-qualified; for
+ example "f S::*" declares a pointer to a const-qualified
+ member function of S. We record the cv-qualification in the
+ function type. */
+ if (memfn_quals && TREE_CODE (type) == FUNCTION_TYPE)
+ type = cp_build_qualified_type (type, memfn_quals);
if (decl_context == FIELD)
decl = build_lang_decl (TYPE_DECL, unqualified_id, type);
@@ -7905,26 +7921,17 @@ grokdeclarator (const cp_declarator *declarator,
type with external linkage have external linkage. */
}
- if (quals)
- {
- if (ctype == NULL_TREE)
- {
- 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);
- }
+ /* Any qualifiers on a function type typedef have already been
+ dealt with. */
+ if (memfn_quals && !ctype && TREE_CODE (type) == FUNCTION_TYPE)
+ memfn_quals = TYPE_UNQUALIFIED;
if (signed_p
|| (typedef_decl && C_TYPEDEF_EXPLICITLY_SIGNED (typedef_decl)))
C_TYPEDEF_EXPLICITLY_SIGNED (decl) = 1;
- bad_specifiers (decl, "type", virtualp, quals != TYPE_UNQUALIFIED,
+ bad_specifiers (decl, "type", virtualp,
+ memfn_quals != TYPE_UNQUALIFIED,
inlinep, friendp, raises != NULL_TREE);
return decl;
@@ -7972,7 +7979,7 @@ grokdeclarator (const cp_declarator *declarator,
/* The qualifiers on the function type become the qualifiers on
the non-static member function. */
- quals |= cp_type_quals (type);
+ memfn_quals |= cp_type_quals (type);
}
}
@@ -8029,7 +8036,7 @@ grokdeclarator (const cp_declarator *declarator,
type = void_type_node;
}
}
- else if (quals)
+ else if (memfn_quals)
{
if (ctype == NULL_TREE)
{
@@ -8039,11 +8046,7 @@ grokdeclarator (const cp_declarator *declarator,
ctype = TYPE_METHOD_BASETYPE (type);
}
if (ctype)
- {
- tree dummy = build_decl (TYPE_DECL, unqualified_id, type);
- grok_method_quals (ctype, dummy, quals);
- type = TREE_TYPE (dummy);
- }
+ type = build_memfn_type (type, ctype, memfn_quals);
}
return type;
@@ -8101,7 +8104,8 @@ grokdeclarator (const cp_declarator *declarator,
{
decl = cp_build_parm_decl (unqualified_id, type);
- bad_specifiers (decl, "parameter", virtualp, quals != TYPE_UNQUALIFIED,
+ bad_specifiers (decl, "parameter", virtualp,
+ memfn_quals != TYPE_UNQUALIFIED,
inlinep, friendp, raises != NULL_TREE);
}
else if (decl_context == FIELD)
@@ -8163,9 +8167,7 @@ grokdeclarator (const cp_declarator *declarator,
}
}
else if (staticp < 2)
- type = build_method_type_directly (ctype,
- TREE_TYPE (type),
- TYPE_ARG_TYPES (type));
+ type = build_memfn_type (type, ctype, memfn_quals);
}
/* Check that the name used for a destructor makes sense. */
@@ -8200,7 +8202,7 @@ grokdeclarator (const cp_declarator *declarator,
? unqualified_id : dname,
parms,
unqualified_id,
- virtualp, flags, quals, raises,
+ virtualp, flags, memfn_quals, raises,
friendp ? -1 : 0, friendp, publicp, inlinep,
sfk,
funcdef_flag, template_count, in_namespace, attrlist);
@@ -8248,7 +8250,7 @@ grokdeclarator (const cp_declarator *declarator,
? unqualified_id : dname,
parms,
unqualified_id,
- virtualp, flags, quals, raises,
+ virtualp, flags, memfn_quals, raises,
friendp ? -1 : 0, friendp, 1, 0, sfk,
funcdef_flag, template_count, in_namespace,
attrlist);
@@ -8305,7 +8307,8 @@ grokdeclarator (const cp_declarator *declarator,
}
decl = do_friend (ctype, unqualified_id, decl,
- *attrlist, flags, quals, funcdef_flag);
+ *attrlist, flags,
+ funcdef_flag);
return decl;
}
else
@@ -8384,7 +8387,8 @@ grokdeclarator (const cp_declarator *declarator,
}
}
- bad_specifiers (decl, "field", virtualp, quals != TYPE_UNQUALIFIED,
+ bad_specifiers (decl, "field", virtualp,
+ memfn_quals != TYPE_UNQUALIFIED,
inlinep, friendp, raises != NULL_TREE);
}
}
@@ -8445,7 +8449,7 @@ grokdeclarator (const cp_declarator *declarator,
|| storage_class != sc_static);
decl = grokfndecl (ctype, type, original_name, parms, unqualified_id,
- virtualp, flags, quals, raises,
+ virtualp, flags, memfn_quals, raises,
1, friendp,
publicp, inlinep, sfk, funcdef_flag,
template_count, in_namespace, attrlist);
@@ -8488,7 +8492,8 @@ grokdeclarator (const cp_declarator *declarator,
initialized,
(type_quals & TYPE_QUAL_CONST) != 0,
ctype ? ctype : in_namespace);
- bad_specifiers (decl, "variable", virtualp, quals != TYPE_UNQUALIFIED,
+ bad_specifiers (decl, "variable", virtualp,
+ memfn_quals != TYPE_UNQUALIFIED,
inlinep, friendp, raises != NULL_TREE);
if (ctype)
@@ -10801,9 +10806,11 @@ finish_destructor_body (void)
an implicit definition), non-placement operator delete shall
be looked up in the scope of the destructor's class and if
found shall be accessible and unambiguous. */
- exprstmt = build_op_delete_call
- (DELETE_EXPR, current_class_ptr, virtual_size,
- /*global_p=*/false, NULL_TREE);
+ exprstmt = build_op_delete_call(DELETE_EXPR, current_class_ptr,
+ virtual_size,
+ /*global_p=*/false,
+ /*placement=*/NULL_TREE,
+ /*alloc_fn=*/NULL_TREE);
if_stmt = begin_if_stmt ();
finish_if_stmt_cond (build2 (BIT_AND_EXPR, integer_type_node,
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index ed26db2fe34..fe5db71c653 100644
--- a/gcc/cp/decl2.c
+++ b/gcc/cp/decl2.c
@@ -103,33 +103,28 @@ tree static_ctors;
tree static_dtors;
-/* Incorporate `const' and `volatile' qualifiers for member functions.
- FUNCTION is a TYPE_DECL or a FUNCTION_DECL.
- QUALS is a list of qualifiers. Returns any explicit
- top-level qualifiers of the method's this pointer, anything other than
- TYPE_UNQUALIFIED will be an extension. */
-
-int
-grok_method_quals (tree ctype, tree function, cp_cv_quals quals)
+
+/* Return a member function type (a METHOD_TYPE), given FNTYPE (a
+ FUNCTION_TYPE), CTYPE (class type), and QUALS (the cv-qualifiers
+ that apply to the function). */
+
+tree
+build_memfn_type (tree fntype, tree ctype, cp_cv_quals quals)
{
- tree fntype = TREE_TYPE (function);
- tree raises = TYPE_RAISES_EXCEPTIONS (fntype);
- int type_quals = TYPE_UNQUALIFIED;
- int this_quals = TYPE_UNQUALIFIED;
+ tree raises;
+ int type_quals;
type_quals = quals & ~TYPE_QUAL_RESTRICT;
- this_quals = quals & TYPE_QUAL_RESTRICT;
-
ctype = cp_build_qualified_type (ctype, type_quals);
fntype = build_method_type_directly (ctype, TREE_TYPE (fntype),
(TREE_CODE (fntype) == METHOD_TYPE
? TREE_CHAIN (TYPE_ARG_TYPES (fntype))
: TYPE_ARG_TYPES (fntype)));
+ raises = TYPE_RAISES_EXCEPTIONS (fntype);
if (raises)
fntype = build_exception_variant (fntype, raises);
- TREE_TYPE (function) = fntype;
- return this_quals;
+ return fntype;
}
/* Build a PARM_DECL with NAME and TYPE, and set DECL_ARG_TYPE
@@ -149,7 +144,7 @@ cp_build_parm_decl (tree name, tree type)
/* Returns a PARM_DECL for a parameter of the indicated TYPE, with the
indicated NAME. */
-static tree
+tree
build_artificial_parm (tree name, tree type)
{
tree parm = cp_build_parm_decl (name, type);
@@ -257,11 +252,9 @@ maybe_retrofit_in_chrg (tree fn)
QUALS are the qualifiers for the this pointer. */
void
-grokclassfn (tree ctype, tree function, enum overload_flags flags,
- cp_cv_quals quals)
+grokclassfn (tree ctype, tree function, enum overload_flags flags)
{
tree fn_name = DECL_NAME (function);
- cp_cv_quals this_quals = TYPE_UNQUALIFIED;
/* Even within an `extern "C"' block, members get C++ linkage. See
[dcl.link] for details. */
@@ -274,28 +267,6 @@ grokclassfn (tree ctype, tree function, enum overload_flags flags,
DECL_NAME (function) = fn_name;
}
- if (quals)
- this_quals = grok_method_quals (ctype, function, quals);
-
- if (TREE_CODE (TREE_TYPE (function)) == METHOD_TYPE)
- {
- /* Must add the class instance variable up front. */
- /* Right now we just make this a pointer. But later
- we may wish to make it special. */
- tree type = TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (function)));
- tree qual_type;
- tree parm;
-
- /* The `this' parameter is implicitly `const'; it cannot be
- assigned to. */
- this_quals |= TYPE_QUAL_CONST;
- qual_type = cp_build_qualified_type (type, this_quals);
- parm = build_artificial_parm (this_identifier, qual_type);
- cp_apply_type_quals_to_decl (this_quals, parm);
- TREE_CHAIN (parm) = DECL_ARGUMENTS (function);
- DECL_ARGUMENTS (function) = parm;
- }
-
DECL_CONTEXT (function) = ctype;
if (flags == DTOR_FLAG)
diff --git a/gcc/cp/friend.c b/gcc/cp/friend.c
index 0ae9130b61a..ac73e5f4787 100644
--- a/gcc/cp/friend.c
+++ b/gcc/cp/friend.c
@@ -399,15 +399,11 @@ make_friend_class (tree type, tree friend_type, bool complain)
DECL is the FUNCTION_DECL that the friend is.
- FLAGS is just used for `grokclassfn'.
-
- QUALS say what special qualifies should apply to the object
- pointed to by `this'. */
+ FLAGS is just used for `grokclassfn'. */
tree
do_friend (tree ctype, tree declarator, tree decl,
tree attrlist, enum overload_flags flags,
- cp_cv_quals quals,
bool funcdef_flag)
{
/* Every decl that gets here is a friend of something. */
@@ -456,8 +452,7 @@ do_friend (tree ctype, tree declarator, tree decl,
if (flags == NO_SPECIAL && declarator == cname)
DECL_CONSTRUCTOR_P (decl) = 1;
- /* This will set up DECL_ARGUMENTS for us. */
- grokclassfn (ctype, decl, flags, quals);
+ grokclassfn (ctype, decl, flags);
if (friend_depth)
{
diff --git a/gcc/cp/init.c b/gcc/cp/init.c
index 194b29baea8..bc6df204573 100644
--- a/gcc/cp/init.c
+++ b/gcc/cp/init.c
@@ -52,7 +52,6 @@ static void expand_cleanup_for_base (tree, tree);
static tree get_temp_regvar (tree, tree);
static tree dfs_initialize_vtbl_ptrs (tree, void *);
static tree build_default_init (tree, tree);
-static tree build_new_1 (tree);
static tree build_dtor_call (tree, special_function_kind, int);
static tree build_field_list (tree, tree, int *);
static tree build_vtbl_address (tree);
@@ -1379,8 +1378,7 @@ build_offset_ref (tree type, tree member, bool address_p)
if (BASELINK_P (member))
{
/* Go from the TREE_BASELINK to the member function info. */
- tree fnfields = member;
- tree t = BASELINK_FUNCTIONS (fnfields);
+ tree t = BASELINK_FUNCTIONS (member);
if (TREE_CODE (t) != TEMPLATE_ID_EXPR && !really_overloaded_fn (t))
{
@@ -1406,10 +1404,7 @@ build_offset_ref (tree type, tree member, bool address_p)
member = t;
}
else
- {
- TREE_TYPE (fnfields) = unknown_type_node;
- member = fnfields;
- }
+ TREE_TYPE (member) = unknown_type_node;
}
else if (address_p && TREE_CODE (member) == FIELD_DECL)
/* We need additional test besides the one in
@@ -1560,127 +1555,38 @@ build_builtin_delete_call (tree addr)
return build_call (global_delete_fndecl, build_tree_list (NULL_TREE, addr));
}
-/* Generate a representation for a C++ "new" expression. PLACEMENT is
- a TREE_LIST of placement-new arguments (or NULL_TREE if none). If
- NELTS is NULL, TYPE is the type of the storage to be allocated. If
- NELTS is not NULL, then this is an array-new allocation; TYPE is
- the type of the elements in the array and NELTS is the number of
- elements in the array. INIT, if non-NULL, is the initializer for
- the new object. If USE_GLOBAL_NEW is true, then the user
- explicitly wrote "::new" rather than just "new". */
-
-tree
-build_new (tree placement, tree type, tree nelts, tree init,
- int use_global_new)
-{
- tree rval;
-
- if (type == error_mark_node)
- return error_mark_node;
-
- if (processing_template_decl)
- {
- rval = build_min (NEW_EXPR, build_pointer_type (type),
- placement, type, nelts, init);
- NEW_EXPR_USE_GLOBAL (rval) = use_global_new;
- TREE_SIDE_EFFECTS (rval) = 1;
- return rval;
- }
-
- if (nelts)
- {
- if (!build_expr_type_conversion (WANT_INT | WANT_ENUM, nelts, false))
- pedwarn ("size in array new must have integral type");
- nelts = save_expr (cp_convert (sizetype, nelts));
- if (nelts == integer_zero_node)
- warning (0, "zero size array reserves no space");
- }
-
- /* ``A reference cannot be created by the new operator. A reference
- is not an object (8.2.2, 8.4.3), so a pointer to it could not be
- returned by new.'' ARM 5.3.3 */
- if (TREE_CODE (type) == REFERENCE_TYPE)
- {
- error ("new cannot be applied to a reference type");
- type = TREE_TYPE (type);
- }
+/* Build and return a NEW_EXPR. If NELTS is non-NULL, TYPE[NELTS] is
+ the type of the object being allocated; otherwise, it's just TYPE.
+ INIT is the initializer, if any. USE_GLOBAL_NEW is true if the
+ user explicitly wrote "::operator new". PLACEMENT, if non-NULL, is
+ the TREE_LIST of arguments to be provided as arguments to a
+ placement new operator. This routine performs no semantic checks;
+ it just creates and returns a NEW_EXPR. */
- if (TREE_CODE (type) == FUNCTION_TYPE)
- {
- error ("new cannot be applied to a function type");
- return error_mark_node;
- }
-
- rval = build4 (NEW_EXPR, build_pointer_type (type), placement, type,
- nelts, init);
- NEW_EXPR_USE_GLOBAL (rval) = use_global_new;
- TREE_SIDE_EFFECTS (rval) = 1;
- rval = build_new_1 (rval);
- if (rval == error_mark_node)
- return error_mark_node;
-
- /* Wrap it in a NOP_EXPR so warn_if_unused_value doesn't complain. */
- rval = build1 (NOP_EXPR, TREE_TYPE (rval), rval);
- TREE_NO_WARNING (rval) = 1;
-
- return rval;
-}
-
-/* Given a Java class, return a decl for the corresponding java.lang.Class. */
-
-tree
-build_java_class_ref (tree type)
+static tree
+build_raw_new_expr (tree placement, tree type, tree nelts, tree init,
+ int use_global_new)
{
- tree name = NULL_TREE, class_decl;
- static tree CL_suffix = NULL_TREE;
- if (CL_suffix == NULL_TREE)
- CL_suffix = get_identifier("class$");
- if (jclass_node == NULL_TREE)
- {
- jclass_node = IDENTIFIER_GLOBAL_VALUE (get_identifier ("jclass"));
- if (jclass_node == NULL_TREE)
- fatal_error ("call to Java constructor, while %<jclass%> undefined");
-
- jclass_node = TREE_TYPE (jclass_node);
- }
-
- /* Mangle the class$ field. */
- {
- tree field;
- for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field))
- if (DECL_NAME (field) == CL_suffix)
- {
- mangle_decl (field);
- name = DECL_ASSEMBLER_NAME (field);
- break;
- }
- if (!field)
- internal_error ("can't find class$");
- }
-
- class_decl = IDENTIFIER_GLOBAL_VALUE (name);
- if (class_decl == NULL_TREE)
- {
- class_decl = build_decl (VAR_DECL, name, TREE_TYPE (jclass_node));
- TREE_STATIC (class_decl) = 1;
- DECL_EXTERNAL (class_decl) = 1;
- TREE_PUBLIC (class_decl) = 1;
- DECL_ARTIFICIAL (class_decl) = 1;
- DECL_IGNORED_P (class_decl) = 1;
- pushdecl_top_level (class_decl);
- make_decl_rtl (class_decl);
- }
- return class_decl;
+ tree new_expr;
+
+ new_expr = build4 (NEW_EXPR, build_pointer_type (type), placement, type,
+ nelts, init);
+ NEW_EXPR_USE_GLOBAL (new_expr) = use_global_new;
+ TREE_SIDE_EFFECTS (new_expr) = 1;
+
+ return new_expr;
}
-
-/* Called from cplus_expand_expr when expanding a NEW_EXPR. The return
- value is immediately handed to expand_expr. */
+/* Generate code for a new-expression, including calling the "operator
+ new" function, initializing the object, and, if an exception occurs
+ during construction, cleaning up. The arguments are as for
+ build_raw_new_expr. */
static tree
-build_new_1 (tree exp)
+build_new_1 (tree placement, tree type, tree nelts, tree init,
+ bool globally_qualified_p)
+
{
- tree placement, init;
tree size, rval;
/* True iff this is a call to "operator new[]" instead of just
"operator new". */
@@ -1700,14 +1606,9 @@ build_new_1 (tree exp)
/* The type of the new-expression. (This type is always a pointer
type.) */
tree pointer_type;
- /* The type pointed to by POINTER_TYPE. This type may be different
- 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 the FULL_TYPE. */
tree full_pointer_type;
tree outer_nelts = NULL_TREE;
- tree nelts = NULL_TREE;
tree alloc_call, alloc_expr;
/* The address returned by the call to "operator new". This node is
a VAR_DECL and is therefore reusable. */
@@ -1715,8 +1616,6 @@ build_new_1 (tree exp)
tree alloc_fn;
tree cookie_expr, init_expr;
int nothrow, check_new;
- /* Nonzero if the user wrote `::new' rather than just `new'. */
- int globally_qualified_p;
int use_java_new = 0;
/* If non-NULL, the number of extra bytes to allocate at the
beginning of the storage allocated for an array-new expression in
@@ -1736,12 +1635,6 @@ build_new_1 (tree exp)
tree data_addr;
tree init_preeval_expr = NULL_TREE;
- placement = TREE_OPERAND (exp, 0);
- type = TREE_OPERAND (exp, 1);
- nelts = TREE_OPERAND (exp, 2);
- init = TREE_OPERAND (exp, 3);
- globally_qualified_p = NEW_EXPR_USE_GLOBAL (exp);
-
if (nelts)
{
tree index;
@@ -1770,7 +1663,7 @@ build_new_1 (tree exp)
}
}
- if (!complete_type_or_else (type, exp))
+ if (!complete_type_or_else (type, NULL_TREE))
return error_mark_node;
/* If our base type is an array, then make sure we know how many elements
@@ -1815,30 +1708,31 @@ build_new_1 (tree exp)
}
}
+ alloc_fn = NULL_TREE;
+
/* Allocate the object. */
if (! placement && TYPE_FOR_JAVA (elt_type))
{
- tree class_addr, alloc_decl;
+ tree class_addr;
tree class_decl = build_java_class_ref (elt_type);
static const char alloc_name[] = "_Jv_AllocObject";
use_java_new = 1;
- alloc_decl = NULL;
if (!get_global_value_if_present (get_identifier (alloc_name),
- &alloc_decl))
+ &alloc_fn))
{
error ("call to Java constructor with %qs undefined", alloc_name);
return error_mark_node;
}
- else if (really_overloaded_fn (alloc_decl))
+ else if (really_overloaded_fn (alloc_fn))
{
- error ("%qD should never be overloaded", alloc_decl);
+ error ("%qD should never be overloaded", alloc_fn);
return error_mark_node;
}
- alloc_decl = OVL_CURRENT (alloc_decl);
+ alloc_fn = OVL_CURRENT (alloc_fn);
class_addr = build1 (ADDR_EXPR, jclass_node, class_decl);
alloc_call = (build_function_call
- (alloc_decl,
+ (alloc_fn,
build_tree_list (NULL_TREE, class_addr)));
}
else
@@ -1879,7 +1773,8 @@ build_new_1 (tree exp)
alloc_call = build_new_method_call (build_dummy_object (elt_type),
fns, args,
/*conversion_path=*/NULL_TREE,
- LOOKUP_NORMAL);
+ LOOKUP_NORMAL,
+ &alloc_fn);
}
else
{
@@ -1891,13 +1786,16 @@ build_new_1 (tree exp)
cookie_size = NULL_TREE;
alloc_call = build_operator_new_call (fnname, placement,
- &size, &cookie_size);
+ &size, &cookie_size,
+ &alloc_fn);
}
}
if (alloc_call == error_mark_node)
return error_mark_node;
+ gcc_assert (alloc_fn != NULL_TREE);
+
/* In the simple case, we can stop now. */
pointer_type = build_pointer_type (type);
if (!cookie_size && !is_initialized)
@@ -1913,8 +1811,6 @@ build_new_1 (tree exp)
/* Strip any COMPOUND_EXPRs from ALLOC_CALL. */
while (TREE_CODE (alloc_call) == COMPOUND_EXPR)
alloc_call = TREE_OPERAND (alloc_call, 1);
- alloc_fn = get_callee_fndecl (alloc_call);
- gcc_assert (alloc_fn != NULL_TREE);
/* Now, check to see if this function is actually a placement
allocation function. This can happen even when PLACEMENT is NULL
@@ -2079,7 +1975,9 @@ build_new_1 (tree exp)
cleanup = build_op_delete_call (dcode, alloc_node, size,
globally_qualified_p,
(placement_allocation_fn_p
- ? alloc_call : NULL_TREE));
+ ? alloc_call : NULL_TREE),
+ (placement_allocation_fn_p
+ ? alloc_fn : NULL_TREE));
if (!cleanup)
/* We're done. */;
@@ -2163,6 +2061,134 @@ build_new_1 (tree exp)
return rval;
}
+
+/* Generate a representation for a C++ "new" expression. PLACEMENT is
+ a TREE_LIST of placement-new arguments (or NULL_TREE if none). If
+ NELTS is NULL, TYPE is the type of the storage to be allocated. If
+ NELTS is not NULL, then this is an array-new allocation; TYPE is
+ the type of the elements in the array and NELTS is the number of
+ elements in the array. INIT, if non-NULL, is the initializer for
+ the new object, or void_zero_node to indicate an initializer of
+ "()". If USE_GLOBAL_NEW is true, then the user explicitly wrote
+ "::new" rather than just "new". */
+
+tree
+build_new (tree placement, tree type, tree nelts, tree init,
+ int use_global_new)
+{
+ tree rval;
+ tree orig_placement;
+ tree orig_nelts;
+ tree orig_init;
+
+ if (type == error_mark_node)
+ return error_mark_node;
+
+ orig_placement = placement;
+ orig_nelts = nelts;
+ orig_init = init;
+
+ if (processing_template_decl)
+ {
+ if (dependent_type_p (type)
+ || any_type_dependent_arguments_p (placement)
+ || (nelts && type_dependent_expression_p (nelts))
+ || (init != void_zero_node
+ && any_type_dependent_arguments_p (init)))
+ return build_raw_new_expr (placement, type, nelts, init,
+ use_global_new);
+ placement = build_non_dependent_args (placement);
+ if (nelts)
+ nelts = build_non_dependent_expr (nelts);
+ if (init != void_zero_node)
+ init = build_non_dependent_args (init);
+ }
+
+ if (nelts)
+ {
+ if (!build_expr_type_conversion (WANT_INT | WANT_ENUM, nelts, false))
+ pedwarn ("size in array new must have integral type");
+ nelts = save_expr (cp_convert (sizetype, nelts));
+ if (nelts == integer_zero_node)
+ warning (0, "zero size array reserves no space");
+ }
+
+ /* ``A reference cannot be created by the new operator. A reference
+ is not an object (8.2.2, 8.4.3), so a pointer to it could not be
+ returned by new.'' ARM 5.3.3 */
+ if (TREE_CODE (type) == REFERENCE_TYPE)
+ {
+ error ("new cannot be applied to a reference type");
+ type = TREE_TYPE (type);
+ }
+
+ if (TREE_CODE (type) == FUNCTION_TYPE)
+ {
+ error ("new cannot be applied to a function type");
+ return error_mark_node;
+ }
+
+ rval = build_new_1 (placement, type, nelts, init, use_global_new);
+ if (rval == error_mark_node)
+ return error_mark_node;
+
+ if (processing_template_decl)
+ return build_raw_new_expr (orig_placement, type, orig_nelts, orig_init,
+ use_global_new);
+
+ /* Wrap it in a NOP_EXPR so warn_if_unused_value doesn't complain. */
+ rval = build1 (NOP_EXPR, TREE_TYPE (rval), rval);
+ TREE_NO_WARNING (rval) = 1;
+
+ return rval;
+}
+
+/* Given a Java class, return a decl for the corresponding java.lang.Class. */
+
+tree
+build_java_class_ref (tree type)
+{
+ tree name = NULL_TREE, class_decl;
+ static tree CL_suffix = NULL_TREE;
+ if (CL_suffix == NULL_TREE)
+ CL_suffix = get_identifier("class$");
+ if (jclass_node == NULL_TREE)
+ {
+ jclass_node = IDENTIFIER_GLOBAL_VALUE (get_identifier ("jclass"));
+ if (jclass_node == NULL_TREE)
+ fatal_error ("call to Java constructor, while %<jclass%> undefined");
+
+ jclass_node = TREE_TYPE (jclass_node);
+ }
+
+ /* Mangle the class$ field. */
+ {
+ tree field;
+ for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field))
+ if (DECL_NAME (field) == CL_suffix)
+ {
+ mangle_decl (field);
+ name = DECL_ASSEMBLER_NAME (field);
+ break;
+ }
+ if (!field)
+ internal_error ("can't find class$");
+ }
+
+ class_decl = IDENTIFIER_GLOBAL_VALUE (name);
+ if (class_decl == NULL_TREE)
+ {
+ class_decl = build_decl (VAR_DECL, name, TREE_TYPE (jclass_node));
+ TREE_STATIC (class_decl) = 1;
+ DECL_EXTERNAL (class_decl) = 1;
+ TREE_PUBLIC (class_decl) = 1;
+ DECL_ARTIFICIAL (class_decl) = 1;
+ DECL_IGNORED_P (class_decl) = 1;
+ pushdecl_top_level (class_decl);
+ make_decl_rtl (class_decl);
+ }
+ return class_decl;
+}
static tree
build_vec_delete_1 (tree base, tree maxindex, tree type,
@@ -2257,7 +2283,8 @@ build_vec_delete_1 (tree base, tree maxindex, tree type,
deallocate_expr = build_op_delete_call (VEC_DELETE_EXPR,
base_tbd, virtual_size,
use_global_delete & 1,
- NULL_TREE);
+ /*placement=*/NULL_TREE,
+ /*alloc_fn=*/NULL_TREE);
}
body = loop;
@@ -2646,7 +2673,8 @@ build_dtor_call (tree exp, special_function_kind dtor_kind, int flags)
return build_new_method_call (exp, fn,
/*args=*/NULL_TREE,
/*conversion_path=*/NULL_TREE,
- flags);
+ flags,
+ /*fn_p=*/NULL);
}
/* Generate a call to a destructor. TYPE is the type to cast ADDR to.
@@ -2742,9 +2770,11 @@ build_delete (tree type, tree addr, special_function_kind auto_delete,
if (auto_delete != sfk_deleting_destructor)
return void_zero_node;
- return build_op_delete_call
- (DELETE_EXPR, addr, cxx_sizeof_nowarn (type), use_global_delete,
- NULL_TREE);
+ return build_op_delete_call (DELETE_EXPR, addr,
+ cxx_sizeof_nowarn (type),
+ use_global_delete,
+ /*placement=*/NULL_TREE,
+ /*alloc_fn=*/NULL_TREE);
}
else
{
@@ -2780,7 +2810,8 @@ build_delete (tree type, tree addr, special_function_kind auto_delete,
addr,
cxx_sizeof_nowarn (type),
/*global_p=*/false,
- NULL_TREE);
+ /*placement=*/NULL_TREE,
+ /*alloc_fn=*/NULL_TREE);
/* Call the complete object destructor. */
auto_delete = sfk_complete_destructor;
}
@@ -2790,7 +2821,9 @@ build_delete (tree type, tree addr, special_function_kind auto_delete,
/* Make sure we have access to the member op delete, even though
we'll actually be calling it from the destructor. */
build_op_delete_call (DELETE_EXPR, addr, cxx_sizeof_nowarn (type),
- /*global_p=*/false, NULL_TREE);
+ /*global_p=*/false,
+ /*placement=*/NULL_TREE,
+ /*alloc_fn=*/NULL_TREE);
}
expr = build_dtor_call (build_indirect_ref (addr, NULL),
diff --git a/gcc/cp/method.c b/gcc/cp/method.c
index d2bee99dc5e..68ec8ab4181 100644
--- a/gcc/cp/method.c
+++ b/gcc/cp/method.c
@@ -978,6 +978,7 @@ implicitly_declare_fn (special_function_kind kind, tree type, bool const_p)
tree fn_type;
tree raises = empty_except_spec;
tree rhs_parm_type = NULL_TREE;
+ tree this_parm;
tree name;
HOST_WIDE_INT saved_processing_template_decl;
@@ -1067,8 +1068,7 @@ implicitly_declare_fn (special_function_kind kind, tree type, bool const_p)
DECL_ASSIGNMENT_OPERATOR_P (fn) = 1;
SET_OVERLOADED_OPERATOR_CODE (fn, NOP_EXPR);
}
- /* Create the argument list. The call to "grokclassfn" will add the
- "this" parameter and any other implicit parameters. */
+ /* Create the explicit arguments. */
if (rhs_parm_type)
{
/* Note that this parameter is *not* marked DECL_ARTIFICIAL; we
@@ -1077,9 +1077,12 @@ implicitly_declare_fn (special_function_kind kind, tree type, bool const_p)
DECL_ARGUMENTS (fn) = cp_build_parm_decl (NULL_TREE, rhs_parm_type);
TREE_READONLY (DECL_ARGUMENTS (fn)) = 1;
}
+ /* Add the "this" parameter. */
+ this_parm = build_this_parm (fn_type, TYPE_UNQUALIFIED);
+ TREE_CHAIN (this_parm) = DECL_ARGUMENTS (fn);
+ DECL_ARGUMENTS (fn) = this_parm;
- grokclassfn (type, fn, kind == sfk_destructor ? DTOR_FLAG : NO_SPECIAL,
- TYPE_UNQUALIFIED);
+ grokclassfn (type, fn, kind == sfk_destructor ? DTOR_FLAG : NO_SPECIAL);
grok_special_member_properties (fn);
set_linkage_according_to_type (type, fn);
rest_of_decl_compilation (fn, toplevel_bindings_p (), at_eof);
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
index c5e6b1781e6..f673c16bacf 100644
--- a/gcc/cp/parser.c
+++ b/gcc/cp/parser.c
@@ -780,7 +780,8 @@ static cp_parameter_declarator *make_parameter_declarator
static cp_declarator *make_ptrmem_declarator
(cp_cv_quals, tree, cp_declarator *);
-cp_declarator *cp_error_declarator;
+/* An erroneous declarator. */
+static cp_declarator *cp_error_declarator;
/* The obstack on which declarators and related data structures are
allocated. */
@@ -1389,9 +1390,9 @@ static bool cp_parser_translation_unit
static tree cp_parser_primary_expression
(cp_parser *, bool, bool, bool, cp_id_kind *);
static tree cp_parser_id_expression
- (cp_parser *, bool, bool, bool *, bool);
+ (cp_parser *, bool, bool, bool *, bool, bool);
static tree cp_parser_unqualified_id
- (cp_parser *, bool, bool, bool);
+ (cp_parser *, bool, bool, bool, bool);
static tree cp_parser_nested_name_specifier_opt
(cp_parser *, bool, bool, bool, bool);
static tree cp_parser_nested_name_specifier
@@ -1536,7 +1537,7 @@ static enum tree_code cp_parser_ptr_operator
static cp_cv_quals cp_parser_cv_qualifier_seq_opt
(cp_parser *);
static tree cp_parser_declarator_id
- (cp_parser *);
+ (cp_parser *, bool);
static tree cp_parser_type_id
(cp_parser *);
static void cp_parser_type_specifier_seq
@@ -2142,7 +2143,8 @@ cp_parser_parse_and_diagnose_invalid_type_name (cp_parser *parser)
/*template_keyword_p=*/false,
/*check_dependency_p=*/true,
/*template_p=*/NULL,
- /*declarator_p=*/true);
+ /*declarator_p=*/true,
+ /*optional_p=*/false);
/* After the id-expression, there should be a plain identifier,
otherwise this is not a simple variable declaration. Also, if
the scope is dependent, we cannot do much. */
@@ -3021,7 +3023,8 @@ cp_parser_primary_expression (cp_parser *parser,
/*template_keyword_p=*/false,
/*check_dependency_p=*/true,
&template_p,
- /*declarator_p=*/false);
+ /*declarator_p=*/false,
+ /*optional_p=*/false);
if (id_expression == error_mark_node)
return error_mark_node;
token = cp_lexer_peek_token (parser->lexer);
@@ -3154,7 +3157,8 @@ cp_parser_id_expression (cp_parser *parser,
bool template_keyword_p,
bool check_dependency_p,
bool *template_p,
- bool declarator_p)
+ bool declarator_p,
+ bool optional_p)
{
bool global_scope_p;
bool nested_name_specifier_p;
@@ -3197,7 +3201,8 @@ cp_parser_id_expression (cp_parser *parser,
/* Process the final unqualified-id. */
unqualified_id = cp_parser_unqualified_id (parser, *template_p,
check_dependency_p,
- declarator_p);
+ declarator_p,
+ /*optional_p=*/false);
/* Restore the SAVED_SCOPE for our caller. */
parser->scope = saved_scope;
parser->object_scope = saved_object_scope;
@@ -3255,7 +3260,8 @@ cp_parser_id_expression (cp_parser *parser,
else
return cp_parser_unqualified_id (parser, template_keyword_p,
/*check_dependency_p=*/true,
- declarator_p);
+ declarator_p,
+ optional_p);
}
/* Parse an unqualified-id.
@@ -3284,7 +3290,8 @@ static tree
cp_parser_unqualified_id (cp_parser* parser,
bool template_keyword_p,
bool check_dependency_p,
- bool declarator_p)
+ bool declarator_p,
+ bool optional_p)
{
cp_token *token;
@@ -3505,6 +3512,8 @@ cp_parser_unqualified_id (cp_parser* parser,
/* Fall through. */
default:
+ if (optional_p)
+ return NULL_TREE;
cp_parser_error (parser, "expected unqualified-id");
return error_mark_node;
}
@@ -4262,7 +4271,8 @@ cp_parser_postfix_expression (cp_parser *parser, bool address_p, bool cast_p)
= (build_new_method_call
(instance, fn, args, NULL_TREE,
(idk == CP_ID_KIND_QUALIFIED
- ? LOOKUP_NONVIRTUAL : LOOKUP_NORMAL)));
+ ? LOOKUP_NONVIRTUAL : LOOKUP_NORMAL),
+ /*fn_p=*/NULL));
else
postfix_expression
= finish_call_expr (postfix_expression, args,
@@ -4500,7 +4510,8 @@ cp_parser_postfix_dot_deref_expression (cp_parser *parser,
cp_parser_optional_template_keyword (parser),
/*check_dependency_p=*/true,
&template_p,
- /*declarator_p=*/false));
+ /*declarator_p=*/false,
+ /*optional_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;
@@ -8622,7 +8633,8 @@ cp_parser_type_parameter (cp_parser* parser)
/*template_keyword_p=*/false,
/*check_dependency_p=*/true,
/*template_p=*/&is_template,
- /*declarator_p=*/false);
+ /*declarator_p=*/false,
+ /*optional_p=*/false);
if (TREE_CODE (default_argument) == TYPE_DECL)
/* If the id-expression was a template-id that refers to
a template-class, we already have the declaration here,
@@ -9176,7 +9188,8 @@ cp_parser_template_argument (cp_parser* parser)
/*template_keyword_p=*/false,
/*check_dependency_p=*/true,
&template_p,
- /*declarator_p=*/false);
+ /*declarator_p=*/false,
+ /*optional_p=*/false);
/* If the next token isn't a `,' or a `>', then this argument wasn't
really finished. */
if (!cp_parser_next_token_ends_template_argument_p (parser))
@@ -10623,7 +10636,8 @@ cp_parser_using_declaration (cp_parser* parser)
identifier = cp_parser_unqualified_id (parser,
/*template_keyword_p=*/false,
/*check_dependency_p=*/true,
- /*declarator_p=*/true);
+ /*declarator_p=*/true,
+ /*optional_p=*/false);
/* The function we call to handle a using-declaration is different
depending on what scope we are in. */
@@ -10887,7 +10901,11 @@ cp_parser_init_declarator (cp_parser* parser,
tree decl = NULL_TREE;
tree scope;
bool is_initialized;
- bool is_parenthesized_init;
+ /* Only valid if IS_INITIALIZED is true. In that case, CPP_EQ if
+ initialized with "= ..", CPP_OPEN_PAREN if initialized with
+ "(...)". */
+ enum cpp_ttype initialization_kind;
+ bool is_parenthesized_init = false;
bool is_non_constant_init;
int ctor_dtor_or_conv_p;
bool friend_p;
@@ -11001,16 +11019,24 @@ cp_parser_init_declarator (cp_parser* parser,
}
/* An `=' or an `(' indicates an initializer. */
- is_initialized = (token->type == CPP_EQ
- || token->type == CPP_OPEN_PAREN);
- /* If the init-declarator isn't initialized and isn't followed by a
- `,' or `;', it's not a valid init-declarator. */
- if (!is_initialized
- && token->type != CPP_COMMA
- && token->type != CPP_SEMICOLON)
+ if (token->type == CPP_EQ
+ || token->type == CPP_OPEN_PAREN)
{
- cp_parser_error (parser, "expected initializer");
- return error_mark_node;
+ is_initialized = true;
+ initialization_kind = token->type;
+ }
+ else
+ {
+ /* If the init-declarator isn't initialized and isn't followed by a
+ `,' or `;', it's not a valid init-declarator. */
+ if (token->type != CPP_COMMA
+ && token->type != CPP_SEMICOLON)
+ {
+ cp_parser_error (parser, "expected initializer");
+ return error_mark_node;
+ }
+ is_initialized = false;
+ initialization_kind = CPP_EOF;
}
/* Because start_decl has side-effects, we should only call it if we
@@ -11080,15 +11106,19 @@ cp_parser_init_declarator (cp_parser* parser,
}
/* Parse the initializer. */
+ initializer = NULL_TREE;
+ is_parenthesized_init = false;
+ is_non_constant_init = true;
if (is_initialized)
- initializer = cp_parser_initializer (parser,
- &is_parenthesized_init,
- &is_non_constant_init);
- else
{
- initializer = NULL_TREE;
- is_parenthesized_init = false;
- is_non_constant_init = true;
+ if (declarator->kind == cdk_function
+ && declarator->declarator->kind == cdk_id
+ && initialization_kind == CPP_EQ)
+ initializer = cp_parser_pure_specifier (parser);
+ else
+ initializer = cp_parser_initializer (parser,
+ &is_parenthesized_init,
+ &is_non_constant_init);
}
/* The old parser allows attributes to appear after a parenthesized
@@ -11498,25 +11528,31 @@ cp_parser_direct_declarator (cp_parser* parser,
tree qualifying_scope;
tree unqualified_name;
special_function_kind sfk;
+ bool abstract_ok;
/* Parse a declarator-id */
- if (dcl_kind == CP_PARSER_DECLARATOR_EITHER)
+ abstract_ok = (dcl_kind == CP_PARSER_DECLARATOR_EITHER);
+ if (abstract_ok)
cp_parser_parse_tentatively (parser);
- unqualified_name = cp_parser_declarator_id (parser);
+ unqualified_name
+ = cp_parser_declarator_id (parser, /*optional_p=*/abstract_ok);
qualifying_scope = parser->scope;
- if (dcl_kind == CP_PARSER_DECLARATOR_EITHER)
+ if (abstract_ok)
{
if (!cp_parser_parse_definitely (parser))
unqualified_name = error_mark_node;
- else if (qualifying_scope
- || (TREE_CODE (unqualified_name)
- != IDENTIFIER_NODE))
+ else if (unqualified_name
+ && (qualifying_scope
+ || (TREE_CODE (unqualified_name)
+ != IDENTIFIER_NODE)))
{
cp_parser_error (parser, "expected unqualified-id");
unqualified_name = error_mark_node;
}
}
+ if (!unqualified_name)
+ return NULL;
if (unqualified_name == error_mark_node)
{
declarator = cp_error_declarator;
@@ -11730,17 +11766,23 @@ cp_parser_ptr_operator (cp_parser* parser,
if (!cp_parser_error_occurred (parser)
&& cp_parser_require (parser, CPP_MULT, "`*'"))
{
- /* The type of which the member is a member is given by the
- current SCOPE. */
- *type = parser->scope;
- /* The next name will not be qualified. */
- parser->scope = NULL_TREE;
- parser->qualifying_scope = NULL_TREE;
- parser->object_scope = NULL_TREE;
/* Indicate that the `*' operator was used. */
code = INDIRECT_REF;
- /* Look for the optional cv-qualifier-seq. */
- *cv_quals = cp_parser_cv_qualifier_seq_opt (parser);
+
+ if (TREE_CODE (parser->scope) == NAMESPACE_DECL)
+ error ("%qD is a namespace", parser->scope);
+ else
+ {
+ /* The type of which the member is a member is given by the
+ current SCOPE. */
+ *type = parser->scope;
+ /* The next name will not be qualified. */
+ parser->scope = NULL_TREE;
+ parser->qualifying_scope = NULL_TREE;
+ parser->object_scope = NULL_TREE;
+ /* Look for the optional cv-qualifier-seq. */
+ *cv_quals = cp_parser_cv_qualifier_seq_opt (parser);
+ }
}
/* If that didn't work we don't have a ptr-operator. */
if (!cp_parser_parse_definitely (parser))
@@ -11830,7 +11872,7 @@ cp_parser_cv_qualifier_seq_opt (cp_parser* parser)
unqualified-id. */
static tree
-cp_parser_declarator_id (cp_parser* parser)
+cp_parser_declarator_id (cp_parser* parser, bool optional_p)
{
tree id;
/* The expression must be an id-expression. Assume that qualified
@@ -11851,8 +11893,9 @@ cp_parser_declarator_id (cp_parser* parser)
/*template_keyword_p=*/false,
/*check_dependency_p=*/false,
/*template_p=*/NULL,
- /*declarator_p=*/true);
- if (BASELINK_P (id))
+ /*declarator_p=*/true,
+ optional_p);
+ if (id && BASELINK_P (id))
id = BASELINK_FUNCTIONS (id);
return id;
}
@@ -12787,15 +12830,18 @@ cp_parser_class_name (cp_parser *parser,
standard does not seem to be definitive, but there is no other
valid interpretation of the following `::'. Therefore, those
names are considered class-names. */
- decl = TYPE_NAME (make_typename_type (scope, decl, tag_type, tf_error));
- else if (decl == error_mark_node
- || TREE_CODE (decl) != TYPE_DECL
- || TREE_TYPE (decl) == error_mark_node
- || !IS_AGGR_TYPE (TREE_TYPE (decl)))
{
- cp_parser_error (parser, "expected class-name");
- return error_mark_node;
+ decl = make_typename_type (scope, decl, tag_type, tf_error);
+ if (decl != error_mark_node)
+ decl = TYPE_NAME (decl);
}
+ else if (TREE_CODE (decl) != TYPE_DECL
+ || TREE_TYPE (decl) == error_mark_node
+ || !IS_AGGR_TYPE (TREE_TYPE (decl)))
+ decl = error_mark_node;
+
+ if (decl == error_mark_node)
+ cp_parser_error (parser, "expected class-name");
return decl;
}
@@ -13710,7 +13756,8 @@ cp_parser_member_declaration (cp_parser* parser)
for a pure-specifier; otherwise, we look for a
constant-initializer. When we call `grokfield', it will
perform more stringent semantics checks. */
- if (declarator->kind == cdk_function)
+ if (declarator->kind == cdk_function
+ && declarator->declarator->kind == cdk_id)
initializer = cp_parser_pure_specifier (parser);
else
/* Parse the initializer. */
@@ -15274,7 +15321,6 @@ cp_parser_function_definition_from_specifiers_and_declarator
if (!success_p)
{
/* Skip the entire function. */
- error ("invalid function declaration");
cp_parser_skip_to_end_of_block_or_statement (parser);
fn = error_mark_node;
}
@@ -17762,7 +17808,8 @@ cp_parser_omp_var_list_no_open (cp_parser *parser, enum omp_clause_code kind,
name = cp_parser_id_expression (parser, /*template_p=*/false,
/*check_dependency_p=*/true,
/*template_p=*/NULL,
- /*declarator_p=*/false);
+ /*declarator_p=*/false,
+ /*optional_p=*/false);
if (name == error_mark_node)
goto skip_comma;
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index adabe7698dc..fbe01dbfb41 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -45,6 +45,7 @@ Boston, MA 02110-1301, USA. */
#include "rtl.h"
#include "timevar.h"
#include "tree-iterator.h"
+#include "vecprim.h"
/* The type of functions taking a tree, and some additional data, and
returning an int. */
@@ -63,8 +64,7 @@ int processing_template_parmlist;
static int template_header_count;
static GTY(()) tree saved_trees;
-static GTY(()) varray_type inline_parm_levels;
-static size_t inline_parm_levels_used;
+static VEC(int,heap) *inline_parm_levels;
static GTY(()) tree current_tinst_level;
@@ -396,12 +396,7 @@ maybe_begin_member_template_processing (tree decl)
/* Remember how many levels of template parameters we pushed so that
we can pop them later. */
- if (!inline_parm_levels)
- VARRAY_INT_INIT (inline_parm_levels, 4, "inline_parm_levels");
- if (inline_parm_levels_used == inline_parm_levels->num_elements)
- VARRAY_GROW (inline_parm_levels, 2 * inline_parm_levels_used);
- VARRAY_INT (inline_parm_levels, inline_parm_levels_used) = levels;
- ++inline_parm_levels_used;
+ VEC_safe_push (int, heap, inline_parm_levels, levels);
}
/* Undo the effects of maybe_begin_member_template_processing. */
@@ -410,14 +405,13 @@ void
maybe_end_member_template_processing (void)
{
int i;
+ int last;
- if (!inline_parm_levels_used)
+ if (VEC_length (int, inline_parm_levels) == 0)
return;
- --inline_parm_levels_used;
- for (i = 0;
- i < VARRAY_INT (inline_parm_levels, inline_parm_levels_used);
- ++i)
+ last = VEC_pop (int, inline_parm_levels);
+ for (i = 0; i < last; ++i)
{
--processing_template_decl;
current_template_parms = TREE_CHAIN (current_template_parms);
@@ -5236,6 +5230,9 @@ tsubst_friend_function (tree decl, tree args)
old_decl = pushdecl_namespace_level (new_friend, /*is_friend=*/true);
pop_nested_namespace (ns);
+ if (old_decl == error_mark_node)
+ return error_mark_node;
+
if (old_decl != new_friend)
{
/* This new friend declaration matched an existing
@@ -8896,7 +8893,8 @@ tsubst_copy_and_build (tree t,
(TREE_OPERAND (function, 0),
TREE_OPERAND (function, 1),
call_args, NULL_TREE,
- qualified_p ? LOOKUP_NONVIRTUAL : LOOKUP_NORMAL));
+ qualified_p ? LOOKUP_NONVIRTUAL : LOOKUP_NORMAL,
+ /*fn_p=*/NULL));
}
return finish_call_expr (function, call_args,
/*disallow_virtual=*/qualified_p,
diff --git a/gcc/cp/rtti.c b/gcc/cp/rtti.c
index 0275ed9675d..5c6d38d8df5 100644
--- a/gcc/cp/rtti.c
+++ b/gcc/cp/rtti.c
@@ -513,10 +513,7 @@ build_dynamic_cast_1 (tree type, tree expr)
}
else
{
- /* Apply trivial conversion T -> T& for dereferenced ptrs. */
exprtype = build_reference_type (exprtype);
- expr = convert_to_reference (exprtype, expr, CONV_IMPLICIT,
- LOOKUP_NORMAL, NULL_TREE);
/* T is a reference type, v shall be an lvalue of a complete class
type, and the result is an lvalue of the type referred to by T. */
@@ -532,6 +529,9 @@ build_dynamic_cast_1 (tree type, tree expr)
goto fail;
}
+ /* Apply trivial conversion T -> T& for dereferenced ptrs. */
+ expr = convert_to_reference (exprtype, expr, CONV_IMPLICIT,
+ LOOKUP_NORMAL, NULL_TREE);
}
/* The dynamic_cast operator shall not cast away constness. */
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index 114f3d22145..23ab2d8a132 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -1844,7 +1844,8 @@ finish_call_expr (tree fn, tree args, bool disallow_virtual, bool koenig_p)
result = build_new_method_call (object, fn, args, NULL_TREE,
(disallow_virtual
- ? LOOKUP_NONVIRTUAL : 0));
+ ? LOOKUP_NONVIRTUAL : 0),
+ /*fn_p=*/NULL);
}
else if (is_overloaded_fn (fn))
{
diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c
index f68b4847715..7fc6cab7aea 100644
--- a/gcc/cp/typeck.c
+++ b/gcc/cp/typeck.c
@@ -1398,21 +1398,47 @@ invalid_nonstatic_memfn_p (tree expr)
return false;
}
+/* If EXP is a reference to a bitfield, and the type of EXP does not
+ match the declared type of the bitfield, return the declared type
+ of the bitfield. Otherwise, return NULL_TREE. */
+
+tree
+is_bitfield_expr_with_lowered_type (tree exp)
+{
+ tree field;
+
+ if (TREE_CODE (exp) == COND_EXPR)
+ {
+ if (!is_bitfield_expr_with_lowered_type (TREE_OPERAND (exp, 1)))
+ return NULL_TREE;
+ return is_bitfield_expr_with_lowered_type (TREE_OPERAND (exp, 2));
+ }
+ if (TREE_CODE (exp) != COMPONENT_REF)
+ return NULL_TREE;
+ field = TREE_OPERAND (exp, 1);
+ if (TREE_CODE (field) != FIELD_DECL || !DECL_C_BIT_FIELD (field))
+ return NULL_TREE;
+ if (same_type_ignoring_top_level_qualifiers_p
+ (TREE_TYPE (exp), DECL_BIT_FIELD_TYPE (field)))
+ return NULL_TREE;
+ return DECL_BIT_FIELD_TYPE (field);
+}
+
/* Perform the conversions in [expr] that apply when an lvalue appears
in an rvalue context: the lvalue-to-rvalue, array-to-pointer, and
function-to-pointer conversions.
- In addition manifest constants are replaced by their values. */
+ In addition, manifest constants are replaced by their values, and
+ bitfield references are converted to their declared types. */
tree
decay_conversion (tree exp)
{
tree type;
+ tree bitfield_type;
enum tree_code code;
type = TREE_TYPE (exp);
- code = TREE_CODE (type);
-
if (type == error_mark_node)
return error_mark_node;
@@ -1422,11 +1448,15 @@ decay_conversion (tree exp)
return error_mark_node;
}
+ bitfield_type = is_bitfield_expr_with_lowered_type (exp);
+ if (bitfield_type)
+ exp = build_nop (bitfield_type, exp);
+
exp = decl_constant_value (exp);
/* build_c_cast puts on a NOP_EXPR to make the result not an lvalue.
Leave such NOP_EXPRs, since RHS is being used in non-lvalue context. */
-
+ code = TREE_CODE (type);
if (code == VOID_TYPE)
{
error ("void value not ignored as it ought to be");
@@ -2046,16 +2076,11 @@ finish_class_member_access_expr (tree object, tree name, bool template_p)
if (TREE_CODE (name) == SCOPE_REF)
{
- /* A qualified name. The qualifying class or namespace `S' has
- already been looked up; it is either a TYPE or a
- NAMESPACE_DECL. The member name is either an IDENTIFIER_NODE
- or a BIT_NOT_EXPR. */
+ /* A qualified name. The qualifying class or namespace `S'
+ has already been looked up; it is either a TYPE or a
+ NAMESPACE_DECL. */
scope = TREE_OPERAND (name, 0);
name = TREE_OPERAND (name, 1);
- gcc_assert (CLASS_TYPE_P (scope)
- || TREE_CODE (scope) == NAMESPACE_DECL);
- gcc_assert (TREE_CODE (name) == IDENTIFIER_NODE
- || TREE_CODE (name) == BIT_NOT_EXPR);
/* If SCOPE is a namespace, then the qualified name does not
name a member of OBJECT_TYPE. */
@@ -2066,6 +2091,10 @@ finish_class_member_access_expr (tree object, tree name, bool template_p)
return error_mark_node;
}
+ gcc_assert (CLASS_TYPE_P (scope));
+ gcc_assert (TREE_CODE (name) == IDENTIFIER_NODE
+ || TREE_CODE (name) == BIT_NOT_EXPR);
+
/* Find the base of OBJECT_TYPE corresponding to SCOPE. */
access_path = lookup_base (object_type, scope, ba_check, NULL);
if (access_path == error_mark_node)
@@ -2788,7 +2817,7 @@ convert_arguments (tree typelist, tree values, tree fndecl, int flags)
}
else
error ("too few arguments to function");
- return error_mark_list;
+ return error_mark_node;
}
}
@@ -4497,7 +4526,7 @@ cxx_mark_addressable (tree exp)
("address of explicit register variable %qD requested", x);
return false;
}
- else
+ else if (extra_warnings)
warning
(OPT_Wextra, "address requested for %qD, which is declared %<register%>", x);
}
@@ -5501,11 +5530,9 @@ build_modify_expr (tree lhs, enum tree_code modifycode, tree rhs)
cond = build_conditional_expr
(TREE_OPERAND (lhs, 0),
- build_modify_expr (cp_convert (TREE_TYPE (lhs),
- TREE_OPERAND (lhs, 1)),
+ build_modify_expr (TREE_OPERAND (lhs, 1),
modifycode, rhs),
- build_modify_expr (cp_convert (TREE_TYPE (lhs),
- TREE_OPERAND (lhs, 2)),
+ build_modify_expr (TREE_OPERAND (lhs, 2),
modifycode, rhs));
if (cond == error_mark_node)
diff --git a/gcc/cp/typeck2.c b/gcc/cp/typeck2.c
index 49c58f8e51e..8227a54cd66 100644
--- a/gcc/cp/typeck2.c
+++ b/gcc/cp/typeck2.c
@@ -377,7 +377,7 @@ cxx_incomplete_type_diagnostic (tree value, tree type, int diag_type)
case UNION_TYPE:
case ENUMERAL_TYPE:
if (!decl)
- p_msg ("invalid use of undefined type %q#T", type);
+ p_msg ("invalid use of incomplete type %q#T", type);
if (!TYPE_TEMPLATE_INFO (type))
p_msg ("forward declaration of %q+#T", type);
else
diff --git a/gcc/df-core.c b/gcc/df-core.c
index 963a9000e2e..45771f15aed 100644
--- a/gcc/df-core.c
+++ b/gcc/df-core.c
@@ -83,7 +83,7 @@ convenience functions named DF_*_ADD_PROBLEM.
Problems can be dependent on other problems. For instance, solving
-def-use or use-def chains is dependant on solving reaching
+def-use or use-def chains is dependent on solving reaching
definitions. As long as these dependencies are listed in the problem
definition, the order of adding the problems is not material.
Otherwise, the problems will be solved in the order of calls to
diff --git a/gcc/df-problems.c b/gcc/df-problems.c
index 2ece411a033..c68c5185151 100644
--- a/gcc/df-problems.c
+++ b/gcc/df-problems.c
@@ -48,6 +48,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
#if 0
#define REG_DEAD_DEBUGGING
#endif
+#include "vecprim.h"
#define DF_SPARSE_THRESHOLD 32
@@ -2355,9 +2356,6 @@ df_urec_mark_reg_change (rtx reg, rtx setter, void *data)
/* Classes of registers which could be early clobbered in the current
insn. */
-DEF_VEC_I(int);
-DEF_VEC_ALLOC_I(int,heap);
-
static VEC(int,heap) *earlyclobber_regclass;
/* This function finds and stores register classes that could be early
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index ec9f7ad32f1..f859f56d22b 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -3664,15 +3664,14 @@ GCC you first have to install a pre-built compiler, see the
The Solaris 2 @command{/bin/sh} will often fail to configure
@file{libstdc++-v3}, @file{boehm-gc} or @file{libjava}. We therefore
-recommend to use the following sequence of commands to bootstrap and
-install GCC:
+recommend using the following initial sequence of commands
@smallexample
% CONFIG_SHELL=/bin/ksh
% export CONFIG_SHELL
@end smallexample
-and then proceed as described in @uref{build.html,,the build instructions}.
+and proceed as described in @uref{configure.html,,the configure instructions}.
In addition we strongly recommend specifying an absolute path to invoke
@var{srcdir}/configure.
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 7f561d2c753..5dcf70b9747 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -2682,8 +2682,9 @@ if a variable may be clobbered by a @code{setjmp} call.
These warnings are possible only in optimizing compilation,
because they require data flow information that is computed only
-when optimizing. If you don't specify @option{-O}, you simply won't
-get these warnings.
+when optimizing. If you do not specify @option{-O}, you will not get
+these warnings. Instead, GCC will issue a warning about @option{-Wuninitialized}
+requiring @option{-O}.
If you want to warn about code which uses the uninitialized value of the
variable in its own initializer, use the @option{-Winit-self} option.
@@ -6191,6 +6192,12 @@ feedback is available and may be set to higher values than
@option{reorder-block-duplicate} since information about the hot spots is more
accurate.
+@item max-sched-ready-insns
+The maximum number of instructions ready to be issued the scheduler should
+consider at any given time during the first scheduling pass. Increasing
+values mean more thorough searches, making the compilation time increase
+with probably little benefit. The default value is 100.
+
@item max-sched-region-blocks
The maximum number of blocks in a region to be considered for
interblock scheduling. The default value is 10.
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index 9ee6a835e85..aceebf6d860 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -6559,7 +6559,7 @@ based on a variable or function decl, a section name, and whether or not the
declaration's initializer may contain runtime relocations. @var{decl} may be
null, in which case read-write data should be assumed.
-The default version if this function handles choosing code vs data,
+The default version of this function handles choosing code vs data,
read-only vs read-write data, and @code{flag_pic}. You should only
need to override this if your target has special flags that might be
set via @code{__attribute__}.
@@ -9143,6 +9143,34 @@ If this is the case, making @code{TRULY_NOOP_TRUNCATION} return 0 in
such cases may improve things.
@end defmac
+@deftypefn {Target Hook} int TARGET_MODE_REP_EXTENDED (enum machine_mode @var{mode}, enum machine_mode @var{rep_mode})
+The representation of an integral mode can be such that the values
+are always extended to a wider integral mode. Return
+@code{SIGN_EXTEND} if values of @var{mode} are represented in
+sign-extended form to @var{rep_mode}. Return @code{UNKNOWN}
+otherwise. (Currently, none of the targets use zero-extended
+representation this way so unlike @code{LOAD_EXTEND_OP},
+@code{TARGET_MODE_REP_EXTENDED} is expected to return either
+@code{SIGN_EXTEND} or @code{UNKNOWN}. Also no target extends
+@var{mode} to @var{mode_rep} so that @var{mode_rep} is not the next
+widest integral mode and currently we take advantage of this fact.)
+
+Similarly to @code{LOAD_EXTEND_OP} you may return a non-@code{UNKNOWN}
+value even if the extension is not performed on certain hard registers
+as long as for the @code{REGNO_REG_CLASS} of these hard registers
+@code{CANNOT_CHANGE_MODE_CLASS} returns nonzero.
+
+Note that @code{TARGET_MODE_REP_EXTENDED} and @code{LOAD_EXTEND_OP}
+describe two related properties. If you define
+@code{TARGET_MODE_REP_EXTENDED (mode, word_mode)} you probably also want
+to define @code{LOAD_EXTEND_OP (mode)} to return the same type of
+extension.
+
+In order to enforce the representation of @code{mode},
+@code{TRULY_NOOP_TRUNCATION} should return false when truncating to
+@code{mode}.
+@end deftypefn
+
@defmac STORE_FLAG_VALUE
A C expression describing the value returned by a comparison operator
with an integral mode and stored by a store-flag instruction
diff --git a/gcc/dominance.c b/gcc/dominance.c
index b0f82256735..2f1714b216e 100644
--- a/gcc/dominance.c
+++ b/gcc/dominance.c
@@ -43,6 +43,7 @@
#include "basic-block.h"
#include "toplev.h"
#include "et-forest.h"
+#include "timevar.h"
/* Whether the dominators and the postdominators are available. */
enum dom_state dom_computed[2];
@@ -617,6 +618,7 @@ calculate_dominance_info (enum cdi_direction dir)
if (dom_computed[dir] == DOM_OK)
return;
+ timevar_push (TV_DOMINANCE);
if (!dom_info_available_p (dir))
{
gcc_assert (!n_bbs_in_dom_tree[dir]);
@@ -644,6 +646,8 @@ calculate_dominance_info (enum cdi_direction dir)
}
compute_dom_fast_query (dir);
+
+ timevar_pop (TV_DOMINANCE);
}
/* Free dominance information for direction DIR. */
diff --git a/gcc/double-int.h b/gcc/double-int.h
index c6113f336a6..f37bcb2f299 100644
--- a/gcc/double-int.h
+++ b/gcc/double-int.h
@@ -44,7 +44,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
??? The components of double_int differ in signedness mostly for
historical reasons (they replace an older structure used to represent
- numbers with precision wigher than HOST_WIDE_INT). It might be less
+ numbers with precision higher than HOST_WIDE_INT). It might be less
confusing to have them both signed or both unsigned. */
typedef struct
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index e400eb3d048..6c01596e140 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -2218,7 +2218,12 @@ output_call_frame_info (int for_eh)
if (for_eh)
switch_to_eh_frame_section ();
else
- switch_to_section (debug_frame_section);
+ {
+ if (!debug_frame_section)
+ debug_frame_section = get_section (DEBUG_FRAME_SECTION,
+ SECTION_DEBUG, NULL);
+ switch_to_section (debug_frame_section);
+ }
ASM_GENERATE_INTERNAL_LABEL (section_start_label, FRAME_BEGIN_LABEL, for_eh);
ASM_OUTPUT_LABEL (asm_out_file, section_start_label);
@@ -3676,18 +3681,22 @@ dw_separate_line_info_entry;
typedef struct dw_attr_struct GTY(())
{
enum dwarf_attribute dw_attr;
- dw_attr_ref dw_attr_next;
dw_val_node dw_attr_val;
}
dw_attr_node;
-/* The Debugging Information Entry (DIE) structure */
+DEF_VEC_O(dw_attr_node);
+DEF_VEC_ALLOC_O(dw_attr_node,gc);
+
+/* The Debugging Information Entry (DIE) structure. DIEs form a tree.
+ The children of each node form a circular list linked by
+ die_sib. die_child points to the node *before* the "first" child node. */
typedef struct die_struct GTY(())
{
enum dwarf_tag die_tag;
char *die_symbol;
- dw_attr_ref die_attr;
+ VEC(dw_attr_node,gc) * die_attr;
dw_die_ref die_parent;
dw_die_ref die_child;
dw_die_ref die_sib;
@@ -3695,10 +3704,21 @@ typedef struct die_struct GTY(())
dw_offset die_offset;
unsigned long die_abbrev;
int die_mark;
+ /* Die is used and must not be pruned as unused. */
+ int die_perennial_p;
unsigned int decl_id;
}
die_node;
+/* Evaluate 'expr' while 'c' is set to each child of DIE in order. */
+#define FOR_EACH_CHILD(die, c, expr) do { \
+ c = die->die_child; \
+ if (c) do { \
+ c = c->die_sib; \
+ expr; \
+ } while (c != die->die_child); \
+} while (0)
+
/* The pubname structure */
typedef struct pubname_struct GTY(())
@@ -4018,8 +4038,6 @@ static bool is_fortran (void);
static bool is_ada (void);
static void remove_AT (dw_die_ref, enum dwarf_attribute);
static void remove_child_TAG (dw_die_ref, enum dwarf_tag);
-static inline void free_die (dw_die_ref);
-static void remove_children (dw_die_ref);
static void add_child_die (dw_die_ref, dw_die_ref);
static dw_die_ref new_die (enum dwarf_tag, dw_die_ref, tree);
static dw_die_ref lookup_type_die (tree);
@@ -4035,8 +4053,6 @@ static void add_var_loc_to_decl (tree, struct var_loc_node *);
static void print_spaces (FILE *);
static void print_die (dw_die_ref, FILE *);
static void print_dwarf_line_table (FILE *);
-static void reverse_die_lists (dw_die_ref);
-static void reverse_all_dies (dw_die_ref);
static dw_die_ref push_new_compile_unit (dw_die_ref, dw_die_ref);
static dw_die_ref pop_compile_unit (dw_die_ref);
static void loc_checksum (dw_loc_descr_ref, struct md5_ctx *);
@@ -4831,17 +4847,18 @@ decl_class_context (tree decl)
return context;
}
-/* Add an attribute/value pair to a DIE. We build the lists up in reverse
- addition order, and correct that in reverse_all_dies. */
+/* Add an attribute/value pair to a DIE. */
static inline void
add_dwarf_attr (dw_die_ref die, dw_attr_ref attr)
{
- if (die != NULL && attr != NULL)
- {
- attr->dw_attr_next = die->die_attr;
- die->die_attr = attr;
- }
+ /* Maybe this should be an assert? */
+ if (die == NULL)
+ return;
+
+ if (die->die_attr == NULL)
+ die->die_attr = VEC_alloc (dw_attr_node, gc, 1);
+ VEC_safe_push (dw_attr_node, gc, die->die_attr, attr);
}
static inline enum dw_val_class
@@ -4855,13 +4872,12 @@ AT_class (dw_attr_ref a)
static inline void
add_AT_flag (dw_die_ref die, enum dwarf_attribute attr_kind, unsigned int flag)
{
- dw_attr_ref attr = ggc_alloc (sizeof (dw_attr_node));
+ dw_attr_node attr;
- attr->dw_attr_next = NULL;
- attr->dw_attr = attr_kind;
- attr->dw_attr_val.val_class = dw_val_class_flag;
- attr->dw_attr_val.v.val_flag = flag;
- add_dwarf_attr (die, attr);
+ attr.dw_attr = attr_kind;
+ attr.dw_attr_val.val_class = dw_val_class_flag;
+ attr.dw_attr_val.v.val_flag = flag;
+ add_dwarf_attr (die, &attr);
}
static inline unsigned
@@ -4876,13 +4892,12 @@ AT_flag (dw_attr_ref a)
static inline void
add_AT_int (dw_die_ref die, enum dwarf_attribute attr_kind, HOST_WIDE_INT int_val)
{
- dw_attr_ref attr = ggc_alloc (sizeof (dw_attr_node));
+ dw_attr_node attr;
- attr->dw_attr_next = NULL;
- attr->dw_attr = attr_kind;
- attr->dw_attr_val.val_class = dw_val_class_const;
- attr->dw_attr_val.v.val_int = int_val;
- add_dwarf_attr (die, attr);
+ attr.dw_attr = attr_kind;
+ attr.dw_attr_val.val_class = dw_val_class_const;
+ attr.dw_attr_val.v.val_int = int_val;
+ add_dwarf_attr (die, &attr);
}
static inline HOST_WIDE_INT
@@ -4898,13 +4913,12 @@ static inline void
add_AT_unsigned (dw_die_ref die, enum dwarf_attribute attr_kind,
unsigned HOST_WIDE_INT unsigned_val)
{
- dw_attr_ref attr = ggc_alloc (sizeof (dw_attr_node));
+ dw_attr_node attr;
- attr->dw_attr_next = NULL;
- attr->dw_attr = attr_kind;
- attr->dw_attr_val.val_class = dw_val_class_unsigned_const;
- attr->dw_attr_val.v.val_unsigned = unsigned_val;
- add_dwarf_attr (die, attr);
+ attr.dw_attr = attr_kind;
+ attr.dw_attr_val.val_class = dw_val_class_unsigned_const;
+ attr.dw_attr_val.v.val_unsigned = unsigned_val;
+ add_dwarf_attr (die, &attr);
}
static inline unsigned HOST_WIDE_INT
@@ -4920,14 +4934,13 @@ static inline void
add_AT_long_long (dw_die_ref die, enum dwarf_attribute attr_kind,
long unsigned int val_hi, long unsigned int val_low)
{
- dw_attr_ref attr = ggc_alloc (sizeof (dw_attr_node));
+ dw_attr_node attr;
- attr->dw_attr_next = NULL;
- attr->dw_attr = attr_kind;
- attr->dw_attr_val.val_class = dw_val_class_long_long;
- attr->dw_attr_val.v.val_long_long.hi = val_hi;
- attr->dw_attr_val.v.val_long_long.low = val_low;
- add_dwarf_attr (die, attr);
+ attr.dw_attr = attr_kind;
+ attr.dw_attr_val.val_class = dw_val_class_long_long;
+ attr.dw_attr_val.v.val_long_long.hi = val_hi;
+ attr.dw_attr_val.v.val_long_long.low = val_low;
+ add_dwarf_attr (die, &attr);
}
/* Add a floating point attribute value to a DIE and return it. */
@@ -4936,15 +4949,14 @@ static inline void
add_AT_vec (dw_die_ref die, enum dwarf_attribute attr_kind,
unsigned int length, unsigned int elt_size, unsigned char *array)
{
- dw_attr_ref attr = ggc_alloc (sizeof (dw_attr_node));
+ dw_attr_node attr;
- attr->dw_attr_next = NULL;
- attr->dw_attr = attr_kind;
- attr->dw_attr_val.val_class = dw_val_class_vec;
- attr->dw_attr_val.v.val_vec.length = length;
- attr->dw_attr_val.v.val_vec.elt_size = elt_size;
- attr->dw_attr_val.v.val_vec.array = array;
- add_dwarf_attr (die, attr);
+ attr.dw_attr = attr_kind;
+ attr.dw_attr_val.val_class = dw_val_class_vec;
+ attr.dw_attr_val.v.val_vec.length = length;
+ attr.dw_attr_val.v.val_vec.elt_size = elt_size;
+ attr.dw_attr_val.v.val_vec.array = array;
+ add_dwarf_attr (die, &attr);
}
/* Hash and equality functions for debug_str_hash. */
@@ -4967,7 +4979,7 @@ debug_str_eq (const void *x1, const void *x2)
static inline void
add_AT_string (dw_die_ref die, enum dwarf_attribute attr_kind, const char *str)
{
- dw_attr_ref attr = ggc_alloc (sizeof (dw_attr_node));
+ dw_attr_node attr;
struct indirect_string_node *node;
void **slot;
@@ -4983,11 +4995,10 @@ add_AT_string (dw_die_ref die, enum dwarf_attribute attr_kind, const char *str)
node->str = ggc_strdup (str);
node->refcount++;
- attr->dw_attr_next = NULL;
- attr->dw_attr = attr_kind;
- attr->dw_attr_val.val_class = dw_val_class_str;
- attr->dw_attr_val.v.val_str = node;
- add_dwarf_attr (die, attr);
+ attr.dw_attr = attr_kind;
+ attr.dw_attr_val.val_class = dw_val_class_str;
+ attr.dw_attr_val.v.val_str = node;
+ add_dwarf_attr (die, &attr);
}
static inline const char *
@@ -5039,14 +5050,13 @@ AT_string_form (dw_attr_ref a)
static inline void
add_AT_die_ref (dw_die_ref die, enum dwarf_attribute attr_kind, dw_die_ref targ_die)
{
- dw_attr_ref attr = ggc_alloc (sizeof (dw_attr_node));
+ dw_attr_node attr;
- attr->dw_attr_next = NULL;
- attr->dw_attr = attr_kind;
- attr->dw_attr_val.val_class = dw_val_class_die_ref;
- attr->dw_attr_val.v.val_die_ref.die = targ_die;
- attr->dw_attr_val.v.val_die_ref.external = 0;
- add_dwarf_attr (die, attr);
+ attr.dw_attr = attr_kind;
+ attr.dw_attr_val.val_class = dw_val_class_die_ref;
+ attr.dw_attr_val.v.val_die_ref.die = targ_die;
+ attr.dw_attr_val.v.val_die_ref.external = 0;
+ add_dwarf_attr (die, &attr);
}
/* Add an AT_specification attribute to a DIE, and also make the back
@@ -5088,13 +5098,12 @@ set_AT_ref_external (dw_attr_ref a, int i)
static inline void
add_AT_fde_ref (dw_die_ref die, enum dwarf_attribute attr_kind, unsigned int targ_fde)
{
- dw_attr_ref attr = ggc_alloc (sizeof (dw_attr_node));
+ dw_attr_node attr;
- attr->dw_attr_next = NULL;
- attr->dw_attr = attr_kind;
- attr->dw_attr_val.val_class = dw_val_class_fde_ref;
- attr->dw_attr_val.v.val_fde_index = targ_fde;
- add_dwarf_attr (die, attr);
+ attr.dw_attr = attr_kind;
+ attr.dw_attr_val.val_class = dw_val_class_fde_ref;
+ attr.dw_attr_val.v.val_fde_index = targ_fde;
+ add_dwarf_attr (die, &attr);
}
/* Add a location description attribute value to a DIE. */
@@ -5102,13 +5111,12 @@ add_AT_fde_ref (dw_die_ref die, enum dwarf_attribute attr_kind, unsigned int tar
static inline void
add_AT_loc (dw_die_ref die, enum dwarf_attribute attr_kind, dw_loc_descr_ref loc)
{
- dw_attr_ref attr = ggc_alloc (sizeof (dw_attr_node));
+ dw_attr_node attr;
- attr->dw_attr_next = NULL;
- attr->dw_attr = attr_kind;
- attr->dw_attr_val.val_class = dw_val_class_loc;
- attr->dw_attr_val.v.val_loc = loc;
- add_dwarf_attr (die, attr);
+ attr.dw_attr = attr_kind;
+ attr.dw_attr_val.val_class = dw_val_class_loc;
+ attr.dw_attr_val.v.val_loc = loc;
+ add_dwarf_attr (die, &attr);
}
static inline dw_loc_descr_ref
@@ -5121,13 +5129,12 @@ AT_loc (dw_attr_ref a)
static inline void
add_AT_loc_list (dw_die_ref die, enum dwarf_attribute attr_kind, dw_loc_list_ref loc_list)
{
- dw_attr_ref attr = ggc_alloc (sizeof (dw_attr_node));
+ dw_attr_node attr;
- attr->dw_attr_next = NULL;
- attr->dw_attr = attr_kind;
- attr->dw_attr_val.val_class = dw_val_class_loc_list;
- attr->dw_attr_val.v.val_loc_list = loc_list;
- add_dwarf_attr (die, attr);
+ attr.dw_attr = attr_kind;
+ attr.dw_attr_val.val_class = dw_val_class_loc_list;
+ attr.dw_attr_val.v.val_loc_list = loc_list;
+ add_dwarf_attr (die, &attr);
have_location_lists = true;
}
@@ -5143,13 +5150,12 @@ AT_loc_list (dw_attr_ref a)
static inline void
add_AT_addr (dw_die_ref die, enum dwarf_attribute attr_kind, rtx addr)
{
- dw_attr_ref attr = ggc_alloc (sizeof (dw_attr_node));
+ dw_attr_node attr;
- attr->dw_attr_next = NULL;
- attr->dw_attr = attr_kind;
- attr->dw_attr_val.val_class = dw_val_class_addr;
- attr->dw_attr_val.v.val_addr = addr;
- add_dwarf_attr (die, attr);
+ attr.dw_attr = attr_kind;
+ attr.dw_attr_val.val_class = dw_val_class_addr;
+ attr.dw_attr_val.v.val_addr = addr;
+ add_dwarf_attr (die, &attr);
}
static inline rtx
@@ -5164,13 +5170,12 @@ AT_addr (dw_attr_ref a)
static inline void
add_AT_lbl_id (dw_die_ref die, enum dwarf_attribute attr_kind, const char *lbl_id)
{
- dw_attr_ref attr = ggc_alloc (sizeof (dw_attr_node));
+ dw_attr_node attr;
- attr->dw_attr_next = NULL;
- attr->dw_attr = attr_kind;
- attr->dw_attr_val.val_class = dw_val_class_lbl_id;
- attr->dw_attr_val.v.val_lbl_id = xstrdup (lbl_id);
- add_dwarf_attr (die, attr);
+ attr.dw_attr = attr_kind;
+ attr.dw_attr_val.val_class = dw_val_class_lbl_id;
+ attr.dw_attr_val.v.val_lbl_id = xstrdup (lbl_id);
+ add_dwarf_attr (die, &attr);
}
/* Add a section offset attribute value to a DIE, an offset into the
@@ -5180,13 +5185,12 @@ static inline void
add_AT_lineptr (dw_die_ref die, enum dwarf_attribute attr_kind,
const char *label)
{
- dw_attr_ref attr = ggc_alloc (sizeof (dw_attr_node));
+ dw_attr_node attr;
- attr->dw_attr_next = NULL;
- attr->dw_attr = attr_kind;
- attr->dw_attr_val.val_class = dw_val_class_lineptr;
- attr->dw_attr_val.v.val_lbl_id = xstrdup (label);
- add_dwarf_attr (die, attr);
+ attr.dw_attr = attr_kind;
+ attr.dw_attr_val.val_class = dw_val_class_lineptr;
+ attr.dw_attr_val.v.val_lbl_id = xstrdup (label);
+ add_dwarf_attr (die, &attr);
}
/* Add a section offset attribute value to a DIE, an offset into the
@@ -5196,13 +5200,12 @@ static inline void
add_AT_macptr (dw_die_ref die, enum dwarf_attribute attr_kind,
const char *label)
{
- dw_attr_ref attr = ggc_alloc (sizeof (dw_attr_node));
+ dw_attr_node attr;
- attr->dw_attr_next = NULL;
- attr->dw_attr = attr_kind;
- attr->dw_attr_val.val_class = dw_val_class_macptr;
- attr->dw_attr_val.v.val_lbl_id = xstrdup (label);
- add_dwarf_attr (die, attr);
+ attr.dw_attr = attr_kind;
+ attr.dw_attr_val.val_class = dw_val_class_macptr;
+ attr.dw_attr_val.v.val_lbl_id = xstrdup (label);
+ add_dwarf_attr (die, &attr);
}
/* Add an offset attribute value to a DIE. */
@@ -5211,13 +5214,12 @@ static inline void
add_AT_offset (dw_die_ref die, enum dwarf_attribute attr_kind,
unsigned HOST_WIDE_INT offset)
{
- dw_attr_ref attr = ggc_alloc (sizeof (dw_attr_node));
+ dw_attr_node attr;
- attr->dw_attr_next = NULL;
- attr->dw_attr = attr_kind;
- attr->dw_attr_val.val_class = dw_val_class_offset;
- attr->dw_attr_val.v.val_offset = offset;
- add_dwarf_attr (die, attr);
+ attr.dw_attr = attr_kind;
+ attr.dw_attr_val.val_class = dw_val_class_offset;
+ attr.dw_attr_val.v.val_offset = offset;
+ add_dwarf_attr (die, &attr);
}
/* Add an range_list attribute value to a DIE. */
@@ -5226,13 +5228,12 @@ static void
add_AT_range_list (dw_die_ref die, enum dwarf_attribute attr_kind,
long unsigned int offset)
{
- dw_attr_ref attr = ggc_alloc (sizeof (dw_attr_node));
+ dw_attr_node attr;
- attr->dw_attr_next = NULL;
- attr->dw_attr = attr_kind;
- attr->dw_attr_val.val_class = dw_val_class_range_list;
- attr->dw_attr_val.v.val_offset = offset;
- add_dwarf_attr (die, attr);
+ attr.dw_attr = attr_kind;
+ attr.dw_attr_val.val_class = dw_val_class_range_list;
+ attr.dw_attr_val.v.val_offset = offset;
+ add_dwarf_attr (die, &attr);
}
static inline const char *
@@ -5250,20 +5251,21 @@ static dw_attr_ref
get_AT (dw_die_ref die, enum dwarf_attribute attr_kind)
{
dw_attr_ref a;
+ unsigned ix;
dw_die_ref spec = NULL;
- if (die != NULL)
- {
- for (a = die->die_attr; a != NULL; a = a->dw_attr_next)
- if (a->dw_attr == attr_kind)
- return a;
- else if (a->dw_attr == DW_AT_specification
- || a->dw_attr == DW_AT_abstract_origin)
- spec = AT_ref (a);
+ if (! die)
+ return NULL;
- if (spec)
- return get_AT (spec, attr_kind);
- }
+ for (ix = 0; VEC_iterate (dw_attr_node, die->die_attr, ix, a); ix++)
+ if (a->dw_attr == attr_kind)
+ return a;
+ else if (a->dw_attr == DW_AT_specification
+ || a->dw_attr == DW_AT_abstract_origin)
+ spec = AT_ref (a);
+
+ if (spec)
+ return get_AT (spec, attr_kind);
return NULL;
}
@@ -5387,127 +5389,102 @@ is_ada (void)
return lang == DW_LANG_Ada95 || lang == DW_LANG_Ada83;
}
-/* Free up the memory used by A. */
-
-static inline void free_AT (dw_attr_ref);
-static inline void
-free_AT (dw_attr_ref a)
-{
- if (AT_class (a) == dw_val_class_str)
- if (a->dw_attr_val.v.val_str->refcount)
- a->dw_attr_val.v.val_str->refcount--;
-}
-
/* Remove the specified attribute if present. */
static void
remove_AT (dw_die_ref die, enum dwarf_attribute attr_kind)
{
- dw_attr_ref *p;
- dw_attr_ref removed = NULL;
+ dw_attr_ref a;
+ unsigned ix;
- if (die != NULL)
- {
- for (p = &(die->die_attr); *p; p = &((*p)->dw_attr_next))
- if ((*p)->dw_attr == attr_kind)
- {
- removed = *p;
- *p = (*p)->dw_attr_next;
- break;
- }
+ if (! die)
+ return;
- if (removed != 0)
- free_AT (removed);
- }
+ for (ix = 0; VEC_iterate (dw_attr_node, die->die_attr, ix, a); ix++)
+ if (a->dw_attr == attr_kind)
+ {
+ if (AT_class (a) == dw_val_class_str)
+ if (a->dw_attr_val.v.val_str->refcount)
+ a->dw_attr_val.v.val_str->refcount--;
+
+ /* VEC_ordered_remove should help reduce the number of abbrevs
+ that are needed. */
+ VEC_ordered_remove (dw_attr_node, die->die_attr, ix);
+ return;
+ }
}
-/* Remove child die whose die_tag is specified tag. */
+/* Remove CHILD from its parent. PREV must have the property that
+ PREV->DIE_SIB == CHILD. Does not alter CHILD. */
static void
-remove_child_TAG (dw_die_ref die, enum dwarf_tag tag)
+remove_child_with_prev (dw_die_ref child, dw_die_ref prev)
{
- dw_die_ref current, prev, next;
- current = die->die_child;
- prev = NULL;
- while (current != NULL)
+ gcc_assert (child->die_parent == prev->die_parent);
+ gcc_assert (prev->die_sib == child);
+ if (prev == child)
{
- if (current->die_tag == tag)
- {
- next = current->die_sib;
- if (prev == NULL)
- die->die_child = next;
- else
- prev->die_sib = next;
- free_die (current);
- current = next;
- }
- else
- {
- prev = current;
- current = current->die_sib;
- }
+ gcc_assert (child->die_parent->die_child == child);
+ prev = NULL;
}
+ else
+ prev->die_sib = child->die_sib;
+ if (child->die_parent->die_child == child)
+ child->die_parent->die_child = prev;
}
-/* Free up the memory used by DIE. */
-
-static inline void
-free_die (dw_die_ref die)
-{
- remove_children (die);
-}
-
-/* Discard the children of this DIE. */
+/* Remove child DIE whose die_tag is TAG. Do nothing if no child
+ matches TAG. */
static void
-remove_children (dw_die_ref die)
+remove_child_TAG (dw_die_ref die, enum dwarf_tag tag)
{
- dw_die_ref child_die = die->die_child;
-
- die->die_child = NULL;
-
- while (child_die != NULL)
- {
- dw_die_ref tmp_die = child_die;
- dw_attr_ref a;
-
- child_die = child_die->die_sib;
-
- for (a = tmp_die->die_attr; a != NULL;)
- {
- dw_attr_ref tmp_a = a;
-
- a = a->dw_attr_next;
- free_AT (tmp_a);
- }
-
- free_die (tmp_die);
- }
+ dw_die_ref c;
+
+ c = die->die_child;
+ if (c) do {
+ dw_die_ref prev = c;
+ c = c->die_sib;
+ while (c->die_tag == tag)
+ {
+ remove_child_with_prev (c, prev);
+ /* Might have removed every child. */
+ if (c == c->die_sib)
+ return;
+ c = c->die_sib;
+ }
+ } while (c != die->die_child);
}
-/* Add a child DIE below its parent. We build the lists up in reverse
- addition order, and correct that in reverse_all_dies. */
+/* Add a CHILD_DIE as the last child of DIE. */
-static inline void
+static void
add_child_die (dw_die_ref die, dw_die_ref child_die)
{
- if (die != NULL && child_die != NULL)
- {
- gcc_assert (die != child_die);
+ /* FIXME this should probably be an assert. */
+ if (! die || ! child_die)
+ return;
+ gcc_assert (die != child_die);
- child_die->die_parent = die;
- child_die->die_sib = die->die_child;
- die->die_child = child_die;
+ child_die->die_parent = die;
+ if (die->die_child)
+ {
+ child_die->die_sib = die->die_child->die_sib;
+ die->die_child->die_sib = child_die;
}
+ else
+ child_die->die_sib = child_die;
+ die->die_child = child_die;
}
/* Move CHILD, which must be a child of PARENT or the DIE for which PARENT
- is the specification, to the front of PARENT's list of children. */
+ is the specification, to the end of PARENT's list of children.
+ This is done by removing and re-adding it. */
static void
splice_child_die (dw_die_ref parent, dw_die_ref child)
{
- dw_die_ref *p;
+ dw_die_ref p;
/* We want the declaration DIE from inside the class, not the
specification DIE at toplevel. */
@@ -5522,17 +5499,15 @@ splice_child_die (dw_die_ref parent, dw_die_ref child)
gcc_assert (child->die_parent == parent
|| (child->die_parent
== get_AT_ref (parent, DW_AT_specification)));
-
- for (p = &(child->die_parent->die_child); *p; p = &((*p)->die_sib))
- if (*p == child)
+
+ for (p = child->die_parent->die_child; ; p = p->die_sib)
+ if (p->die_sib == child)
{
- *p = child->die_sib;
+ remove_child_with_prev (child, p);
break;
}
- child->die_parent = parent;
- child->die_sib = parent->die_child;
- parent->die_child = child;
+ add_child_die (parent, child);
}
/* Return a pointer to a newly created DIE node. */
@@ -5698,6 +5673,7 @@ print_die (dw_die_ref die, FILE *outfile)
{
dw_attr_ref a;
dw_die_ref c;
+ unsigned ix;
print_spaces (outfile);
fprintf (outfile, "DIE %4lu: %s\n",
@@ -5706,7 +5682,7 @@ print_die (dw_die_ref die, FILE *outfile)
fprintf (outfile, " abbrev id: %lu", die->die_abbrev);
fprintf (outfile, " offset: %lu\n", die->die_offset);
- for (a = die->die_attr; a != NULL; a = a->dw_attr_next)
+ for (ix = 0; VEC_iterate (dw_attr_node, die->die_attr, ix, a); ix++)
{
print_spaces (outfile);
fprintf (outfile, " %s: ", dwarf_attr_name (a->dw_attr));
@@ -5778,9 +5754,7 @@ print_die (dw_die_ref die, FILE *outfile)
if (die->die_child != NULL)
{
print_indent += 4;
- for (c = die->die_child; c != NULL; c = c->die_sib)
- print_die (c, outfile);
-
+ FOR_EACH_CHILD (die, c, print_die (c, outfile));
print_indent -= 4;
}
if (print_indent == 0)
@@ -5830,52 +5804,6 @@ debug_dwarf (void)
print_dwarf_line_table (stderr);
}
-/* We build up the lists of children and attributes by pushing new ones
- onto the beginning of the list. Reverse the lists for DIE so that
- they are in order of addition. */
-
-static void
-reverse_die_lists (dw_die_ref die)
-{
- dw_die_ref c, cp, cn;
- dw_attr_ref a, ap, an;
-
- for (a = die->die_attr, ap = 0; a; a = an)
- {
- an = a->dw_attr_next;
- a->dw_attr_next = ap;
- ap = a;
- }
-
- die->die_attr = ap;
-
- for (c = die->die_child, cp = 0; c; c = cn)
- {
- cn = c->die_sib;
- c->die_sib = cp;
- cp = c;
- }
-
- die->die_child = cp;
-}
-
-/* reverse_die_lists only reverses the single die you pass it. Since we used to
- reverse all dies in add_sibling_attributes, which runs through all the dies,
- it would reverse all the dies. Now, however, since we don't call
- reverse_die_lists in add_sibling_attributes, we need a routine to
- recursively reverse all the dies. This is that routine. */
-
-static void
-reverse_all_dies (dw_die_ref die)
-{
- dw_die_ref c;
-
- reverse_die_lists (die);
-
- for (c = die->die_child; c; c = c->die_sib)
- reverse_all_dies (c);
-}
-
/* Start a new compilation unit DIE for an include file. OLD_UNIT is the CU
for the enclosing include file, if any. BINCL_DIE is the DW_TAG_GNU_BINCL
DIE that marks the start of the DIEs for this include file. */
@@ -5989,6 +5917,7 @@ die_checksum (dw_die_ref die, struct md5_ctx *ctx, int *mark)
{
dw_die_ref c;
dw_attr_ref a;
+ unsigned ix;
/* To avoid infinite recursion. */
if (die->die_mark)
@@ -6000,11 +5929,10 @@ die_checksum (dw_die_ref die, struct md5_ctx *ctx, int *mark)
CHECKSUM (die->die_tag);
- for (a = die->die_attr; a; a = a->dw_attr_next)
+ for (ix = 0; VEC_iterate (dw_attr_node, die->die_attr, ix, a); ix++)
attr_checksum (a, ctx, mark);
- for (c = die->die_child; c; c = c->die_sib)
- die_checksum (c, ctx, mark);
+ FOR_EACH_CHILD (die, c, die_checksum (c, ctx, mark));
}
#undef CHECKSUM
@@ -6108,7 +6036,8 @@ static int
same_die_p (dw_die_ref die1, dw_die_ref die2, int *mark)
{
dw_die_ref c1, c2;
- dw_attr_ref a1, a2;
+ dw_attr_ref a1;
+ unsigned ix;
/* To avoid infinite recursion. */
if (die1->die_mark)
@@ -6118,21 +6047,36 @@ same_die_p (dw_die_ref die1, dw_die_ref die2, int *mark)
if (die1->die_tag != die2->die_tag)
return 0;
- for (a1 = die1->die_attr, a2 = die2->die_attr;
- a1 && a2;
- a1 = a1->dw_attr_next, a2 = a2->dw_attr_next)
- if (!same_attr_p (a1, a2, mark))
- return 0;
- if (a1 || a2)
+ if (VEC_length (dw_attr_node, die1->die_attr)
+ != VEC_length (dw_attr_node, die2->die_attr))
return 0;
-
- for (c1 = die1->die_child, c2 = die2->die_child;
- c1 && c2;
- c1 = c1->die_sib, c2 = c2->die_sib)
- if (!same_die_p (c1, c2, mark))
+
+ for (ix = 0; VEC_iterate (dw_attr_node, die1->die_attr, ix, a1); ix++)
+ if (!same_attr_p (a1, VEC_index (dw_attr_node, die2->die_attr, ix), mark))
return 0;
- if (c1 || c2)
- return 0;
+
+ c1 = die1->die_child;
+ c2 = die2->die_child;
+ if (! c1)
+ {
+ if (c2)
+ return 0;
+ }
+ else
+ for (;;)
+ {
+ if (!same_die_p (c1, c2, mark))
+ return 0;
+ c1 = c1->die_sib;
+ c2 = c2->die_sib;
+ if (c1 == die1->die_child)
+ {
+ if (c2 == die2->die_child)
+ break;
+ else
+ return 0;
+ }
+ }
return 1;
}
@@ -6263,7 +6207,8 @@ is_symbol_die (dw_die_ref c)
{
return (is_type_die (c)
|| (get_AT (c, DW_AT_declaration)
- && !get_AT (c, DW_AT_specification)));
+ && !get_AT (c, DW_AT_specification))
+ || c->die_tag == DW_TAG_namespace);
}
static char *
@@ -6296,8 +6241,7 @@ assign_symbol_names (dw_die_ref die)
die->die_symbol = gen_internal_sym ("LDIE");
}
- for (c = die->die_child; c != NULL; c = c->die_sib)
- assign_symbol_names (c);
+ FOR_EACH_CHILD (die, c, assign_symbol_names (c));
}
struct cu_hash_table_entry
@@ -6395,41 +6339,34 @@ record_comdat_symbol_number (dw_die_ref cu, htab_t htable, unsigned int sym_num)
static void
break_out_includes (dw_die_ref die)
{
- dw_die_ref *ptr;
+ dw_die_ref c;
dw_die_ref unit = NULL;
limbo_die_node *node, **pnode;
htab_t cu_hash_table;
- for (ptr = &(die->die_child); *ptr;)
- {
- dw_die_ref c = *ptr;
-
- if (c->die_tag == DW_TAG_GNU_BINCL || c->die_tag == DW_TAG_GNU_EINCL
- || (unit && is_comdat_die (c)))
- {
- /* This DIE is for a secondary CU; remove it from the main one. */
- *ptr = c->die_sib;
-
- if (c->die_tag == DW_TAG_GNU_BINCL)
- {
- unit = push_new_compile_unit (unit, c);
- free_die (c);
- }
- else if (c->die_tag == DW_TAG_GNU_EINCL)
- {
- unit = pop_compile_unit (unit);
- free_die (c);
- }
- else
- add_child_die (unit, c);
- }
- else
- {
- /* Leave this DIE in the main CU. */
- ptr = &(c->die_sib);
- continue;
- }
- }
+ c = die->die_child;
+ if (c) do {
+ dw_die_ref prev = c;
+ c = c->die_sib;
+ while (c->die_tag == DW_TAG_GNU_BINCL || c->die_tag == DW_TAG_GNU_EINCL
+ || (unit && is_comdat_die (c)))
+ {
+ dw_die_ref next = c->die_sib;
+
+ /* This DIE is for a secondary CU; remove it from the main one. */
+ remove_child_with_prev (c, prev);
+
+ if (c->die_tag == DW_TAG_GNU_BINCL)
+ unit = push_new_compile_unit (unit, c);
+ else if (c->die_tag == DW_TAG_GNU_EINCL)
+ unit = pop_compile_unit (unit);
+ else
+ add_child_die (unit, c);
+ c = next;
+ if (c == die->die_child)
+ break;
+ }
+ } while (c != die->die_child);
#if 0
/* We can only use this in debugging, since the frontend doesn't check
@@ -6470,13 +6407,13 @@ add_sibling_attributes (dw_die_ref die)
{
dw_die_ref c;
- if (die->die_tag != DW_TAG_compile_unit
- && die->die_sib && die->die_child != NULL)
- /* Add the sibling link to the front of the attribute list. */
+ if (! die->die_child)
+ return;
+
+ if (die->die_parent && die != die->die_parent->die_child)
add_AT_die_ref (die, DW_AT_sibling, die->die_sib);
- for (c = die->die_child; c != NULL; c = c->die_sib)
- add_sibling_attributes (c);
+ FOR_EACH_CHILD (die, c, add_sibling_attributes (c));
}
/* Output all location lists for the DIE and its children. */
@@ -6485,15 +6422,14 @@ static void
output_location_lists (dw_die_ref die)
{
dw_die_ref c;
- dw_attr_ref d_attr;
-
- for (d_attr = die->die_attr; d_attr; d_attr = d_attr->dw_attr_next)
- if (AT_class (d_attr) == dw_val_class_loc_list)
- output_loc_list (AT_loc_list (d_attr));
+ dw_attr_ref a;
+ unsigned ix;
- for (c = die->die_child; c != NULL; c = c->die_sib)
- output_location_lists (c);
+ for (ix = 0; VEC_iterate (dw_attr_node, die->die_attr, ix, a); ix++)
+ if (AT_class (a) == dw_val_class_loc_list)
+ output_loc_list (AT_loc_list (a));
+ FOR_EACH_CHILD (die, c, output_location_lists (c));
}
/* The format of each DIE (and its attribute value pairs) is encoded in an
@@ -6507,44 +6443,48 @@ build_abbrev_table (dw_die_ref die)
unsigned long abbrev_id;
unsigned int n_alloc;
dw_die_ref c;
- dw_attr_ref d_attr, a_attr;
+ dw_attr_ref a;
+ unsigned ix;
/* Scan the DIE references, and mark as external any that refer to
DIEs from other CUs (i.e. those which are not marked). */
- for (d_attr = die->die_attr; d_attr; d_attr = d_attr->dw_attr_next)
- if (AT_class (d_attr) == dw_val_class_die_ref
- && AT_ref (d_attr)->die_mark == 0)
+ for (ix = 0; VEC_iterate (dw_attr_node, die->die_attr, ix, a); ix++)
+ if (AT_class (a) == dw_val_class_die_ref
+ && AT_ref (a)->die_mark == 0)
{
- gcc_assert (AT_ref (d_attr)->die_symbol);
+ gcc_assert (AT_ref (a)->die_symbol);
- set_AT_ref_external (d_attr, 1);
+ set_AT_ref_external (a, 1);
}
for (abbrev_id = 1; abbrev_id < abbrev_die_table_in_use; ++abbrev_id)
{
dw_die_ref abbrev = abbrev_die_table[abbrev_id];
-
- if (abbrev->die_tag == die->die_tag)
+ dw_attr_ref die_a, abbrev_a;
+ unsigned ix;
+ bool ok = true;
+
+ if (abbrev->die_tag != die->die_tag)
+ continue;
+ if ((abbrev->die_child != NULL) != (die->die_child != NULL))
+ continue;
+
+ if (VEC_length (dw_attr_node, abbrev->die_attr)
+ != VEC_length (dw_attr_node, die->die_attr))
+ continue;
+
+ for (ix = 0; VEC_iterate (dw_attr_node, die->die_attr, ix, die_a); ix++)
{
- if ((abbrev->die_child != NULL) == (die->die_child != NULL))
+ abbrev_a = VEC_index (dw_attr_node, abbrev->die_attr, ix);
+ if ((abbrev_a->dw_attr != die_a->dw_attr)
+ || (value_format (abbrev_a) != value_format (die_a)))
{
- a_attr = abbrev->die_attr;
- d_attr = die->die_attr;
-
- while (a_attr != NULL && d_attr != NULL)
- {
- if ((a_attr->dw_attr != d_attr->dw_attr)
- || (value_format (a_attr) != value_format (d_attr)))
- break;
-
- a_attr = a_attr->dw_attr_next;
- d_attr = d_attr->dw_attr_next;
- }
-
- if (a_attr == NULL && d_attr == NULL)
- break;
+ ok = false;
+ break;
}
}
+ if (ok)
+ break;
}
if (abbrev_id >= abbrev_die_table_in_use)
@@ -6565,8 +6505,7 @@ build_abbrev_table (dw_die_ref die)
}
die->die_abbrev = abbrev_id;
- for (c = die->die_child; c != NULL; c = c->die_sib)
- build_abbrev_table (c);
+ FOR_EACH_CHILD (die, c, build_abbrev_table (c));
}
/* Return the power-of-two number of bytes necessary to represent VALUE. */
@@ -6595,9 +6534,10 @@ size_of_die (dw_die_ref die)
{
unsigned long size = 0;
dw_attr_ref a;
+ unsigned ix;
size += size_of_uleb128 (die->die_abbrev);
- for (a = die->die_attr; a != NULL; a = a->dw_attr_next)
+ for (ix = 0; VEC_iterate (dw_attr_node, die->die_attr, ix, a); ix++)
{
switch (AT_class (a))
{
@@ -6681,8 +6621,7 @@ calc_die_sizes (dw_die_ref die)
die->die_offset = next_die_offset;
next_die_offset += size_of_die (die);
- for (c = die->die_child; c != NULL; c = c->die_sib)
- calc_die_sizes (c);
+ FOR_EACH_CHILD (die, c, calc_die_sizes (c));
if (die->die_child != NULL)
/* Count the null byte used to terminate sibling lists. */
@@ -6702,8 +6641,7 @@ mark_dies (dw_die_ref die)
gcc_assert (!die->die_mark);
die->die_mark = 1;
- for (c = die->die_child; c; c = c->die_sib)
- mark_dies (c);
+ FOR_EACH_CHILD (die, c, mark_dies (c));
}
/* Clear the marks for a die and its children. */
@@ -6716,8 +6654,7 @@ unmark_dies (dw_die_ref die)
gcc_assert (die->die_mark);
die->die_mark = 0;
- for (c = die->die_child; c; c = c->die_sib)
- unmark_dies (c);
+ FOR_EACH_CHILD (die, c, unmark_dies (c));
}
/* Clear the marks for a die, its children and referred dies. */
@@ -6727,15 +6664,15 @@ unmark_all_dies (dw_die_ref die)
{
dw_die_ref c;
dw_attr_ref a;
+ unsigned ix;
if (!die->die_mark)
return;
die->die_mark = 0;
- for (c = die->die_child; c; c = c->die_sib)
- unmark_all_dies (c);
+ FOR_EACH_CHILD (die, c, unmark_all_dies (c));
- for (a = die->die_attr; a; a = a->dw_attr_next)
+ for (ix = 0; VEC_iterate (dw_attr_node, die->die_attr, ix, a); ix++)
if (AT_class (a) == dw_val_class_die_ref)
unmark_all_dies (AT_ref (a));
}
@@ -6869,11 +6806,11 @@ output_abbrev_section (void)
{
unsigned long abbrev_id;
- dw_attr_ref a_attr;
-
for (abbrev_id = 1; abbrev_id < abbrev_die_table_in_use; ++abbrev_id)
{
dw_die_ref abbrev = abbrev_die_table[abbrev_id];
+ unsigned ix;
+ dw_attr_ref a_attr;
dw2_asm_output_data_uleb128 (abbrev_id, "(abbrev code)");
dw2_asm_output_data_uleb128 (abbrev->die_tag, "(TAG: %s)",
@@ -6884,8 +6821,8 @@ output_abbrev_section (void)
else
dw2_asm_output_data (1, DW_children_no, "DW_children_no");
- for (a_attr = abbrev->die_attr; a_attr != NULL;
- a_attr = a_attr->dw_attr_next)
+ for (ix = 0; VEC_iterate (dw_attr_node, abbrev->die_attr, ix, a_attr);
+ ix++)
{
dw2_asm_output_data_uleb128 (a_attr->dw_attr, "(%s)",
dwarf_attr_name (a_attr->dw_attr));
@@ -7029,6 +6966,7 @@ output_die (dw_die_ref die)
dw_attr_ref a;
dw_die_ref c;
unsigned long size;
+ unsigned ix;
/* If someone in another CU might refer to us, set up a symbol for
them to point to. */
@@ -7038,7 +6976,7 @@ output_die (dw_die_ref die)
dw2_asm_output_data_uleb128 (die->die_abbrev, "(DIE (0x%lx) %s)",
die->die_offset, dwarf_tag_name (die->die_tag));
- for (a = die->die_attr; a != NULL; a = a->dw_attr_next)
+ for (ix = 0; VEC_iterate (dw_attr_node, die->die_attr, ix, a); ix++)
{
const char *name = dwarf_attr_name (a->dw_attr);
@@ -7204,8 +7142,7 @@ output_die (dw_die_ref die)
}
}
- for (c = die->die_child; c != NULL; c = c->die_sib)
- output_die (c);
+ FOR_EACH_CHILD (die, c, output_die (c));
/* Add null byte to terminate sibling list. */
if (die->die_child != NULL)
@@ -11531,6 +11468,32 @@ dwarf2out_abstract_function (tree decl)
current_function_decl = save_fn;
}
+/* Helper function of premark_used_types() which gets called through
+ htab_traverse_resize().
+
+ Marks the DIE of a given type in *SLOT as perennial, so it never gets
+ marked as unused by prune_unused_types. */
+static int
+premark_used_types_helper (void **slot, void *data ATTRIBUTE_UNUSED)
+{
+ tree type;
+ dw_die_ref die;
+
+ type = *slot;
+ die = lookup_type_die (type);
+ if (die != NULL)
+ die->die_perennial_p = 1;
+ return 1;
+}
+
+/* Mark all members of used_types_hash as perennial. */
+static void
+premark_used_types (void)
+{
+ if (cfun && cfun->used_types_hash)
+ htab_traverse (cfun->used_types_hash, premark_used_types_helper, NULL);
+}
+
/* Generate a DIE to represent a declared function (either file-scope or
block-local). */
@@ -11546,6 +11509,8 @@ gen_subprogram_die (tree decl, dw_die_ref context_die)
int declaration = (current_function_decl != decl
|| class_or_namespace_scope_p (context_die));
+ premark_used_types();
+
/* It is possible to have both DECL_ABSTRACT and DECLARATION be true if we
started to generate the abstract instance of an inline, decided to output
its containing class, and proceeded to emit the declaration of the inline
@@ -13874,9 +13839,10 @@ static void
prune_unmark_dies (dw_die_ref die)
{
dw_die_ref c;
- die->die_mark = 0;
- for (c = die->die_child; c; c = c->die_sib)
- prune_unmark_dies (c);
+
+ if (die->die_mark)
+ die->die_mark = 0;
+ FOR_EACH_CHILD (die, c, prune_unmark_dies (c));
}
@@ -13887,8 +13853,9 @@ static void
prune_unused_types_walk_attribs (dw_die_ref die)
{
dw_attr_ref a;
+ unsigned ix;
- for (a = die->die_attr; a != NULL; a = a->dw_attr_next)
+ for (ix = 0; VEC_iterate (dw_attr_node, die->die_attr, ix, a); ix++)
{
if (a->dw_attr_val.val_class == dw_val_class_die_ref)
{
@@ -13902,6 +13869,10 @@ prune_unused_types_walk_attribs (dw_die_ref die)
a->dw_attr_val.v.val_unsigned =
maybe_emit_file (a->dw_attr_val.v.val_unsigned);
}
+ /* Set the string's refcount to 0 so that prune_unused_types_mark
+ accounts properly for it. */
+ if (AT_class (a) == dw_val_class_str)
+ a->dw_attr_val.v.val_str->refcount = 0;
}
}
@@ -13939,16 +13910,12 @@ prune_unused_types_mark (dw_die_ref die, int dokids)
Remember that we've walked the kids. */
die->die_mark = 2;
- /* Walk them. */
- for (c = die->die_child; c; c = c->die_sib)
- {
- /* If this is an array type, we need to make sure our
- kids get marked, even if they're types. */
- if (die->die_tag == DW_TAG_array_type)
- prune_unused_types_mark (c, 1);
- else
- prune_unused_types_walk (c);
- }
+ /* If this is an array type, we need to make sure our
+ kids get marked, even if they're types. */
+ if (die->die_tag == DW_TAG_array_type)
+ FOR_EACH_CHILD (die, c, prune_unused_types_mark (c, 1));
+ else
+ FOR_EACH_CHILD (die, c, prune_unused_types_walk (c));
}
}
@@ -13984,6 +13951,9 @@ prune_unused_types_walk (dw_die_ref die)
case DW_TAG_subrange_type:
case DW_TAG_ptr_to_member_type:
case DW_TAG_file_type:
+ if (die->die_perennial_p)
+ break;
+
/* It's a type node --- don't mark it. */
return;
@@ -13998,38 +13968,73 @@ prune_unused_types_walk (dw_die_ref die)
prune_unused_types_walk_attribs (die);
/* Mark children. */
- for (c = die->die_child; c; c = c->die_sib)
- prune_unused_types_walk (c);
+ FOR_EACH_CHILD (die, c, prune_unused_types_walk (c));
}
+/* Increment the string counts on strings referred to from DIE's
+ attributes. */
+
+static void
+prune_unused_types_update_strings (dw_die_ref die)
+{
+ dw_attr_ref a;
+ unsigned ix;
+
+ for (ix = 0; VEC_iterate (dw_attr_node, die->die_attr, ix, a); ix++)
+ if (AT_class (a) == dw_val_class_str)
+ {
+ struct indirect_string_node *s = a->dw_attr_val.v.val_str;
+ s->refcount++;
+ /* Avoid unnecessarily putting strings that are used less than
+ twice in the hash table. */
+ if (s->refcount
+ == ((DEBUG_STR_SECTION_FLAGS & SECTION_MERGE) ? 1 : 2))
+ {
+ void ** slot;
+ slot = htab_find_slot_with_hash (debug_str_hash, s->str,
+ htab_hash_string (s->str),
+ INSERT);
+ gcc_assert (*slot == NULL);
+ *slot = s;
+ }
+ }
+}
/* Remove from the tree DIE any dies that aren't marked. */
static void
prune_unused_types_prune (dw_die_ref die)
{
- dw_die_ref c, p, n;
+ dw_die_ref c;
gcc_assert (die->die_mark);
- p = NULL;
- for (c = die->die_child; c; c = n)
- {
- n = c->die_sib;
- if (c->die_mark)
- {
- prune_unused_types_prune (c);
- p = c;
- }
- else
+ if (! die->die_child)
+ return;
+
+ c = die->die_child;
+ do {
+ dw_die_ref prev = c;
+ for (c = c->die_sib; ! c->die_mark; c = c->die_sib)
+ if (c == die->die_child)
{
- if (p)
- p->die_sib = n;
+ /* No marked children between 'prev' and the end of the list. */
+ if (prev == c)
+ /* No marked children at all. */
+ die->die_child = NULL;
else
- die->die_child = n;
- free_die (c);
+ {
+ prev->die_sib = c->die_sib;
+ die->die_child = prev;
+ }
+ return;
}
- }
+
+ if (c != prev->die_sib)
+ prev->die_sib = c;
+ prune_unused_types_update_strings (c);
+ prune_unused_types_prune (c);
+ } while (c != die->die_child);
}
@@ -14058,7 +14063,9 @@ prune_unused_types (void)
for (i = 0; i < arange_table_in_use; i++)
prune_unused_types_mark (arange_table[i], 1);
- /* Get rid of nodes that aren't marked. */
+ /* Get rid of nodes that aren't marked; and update the string counts. */
+ if (debug_str_hash)
+ htab_empty (debug_str_hash);
prune_unused_types_prune (comp_unit_die);
for (node = limbo_die_list; node; node = node->next)
prune_unused_types_prune (node->die);
@@ -14155,10 +14162,6 @@ dwarf2out_finish (const char *filename)
emit full debugging info for them. */
retry_incomplete_types ();
- /* We need to reverse all the dies before break_out_includes, or
- we'll see the end of an include file before the beginning. */
- reverse_all_dies (comp_unit_die);
-
if (flag_eliminate_unused_debug_types)
prune_unused_types ();
diff --git a/gcc/except.c b/gcc/except.c
index 3feda0f7e51..57e71bdfb44 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -1078,6 +1078,48 @@ eh_region_outer_p (struct function *ifun, int region_a, int region_b)
return false;
}
+
+/* Return region number of region that is outer to both if REGION_A and
+ REGION_B in IFUN. */
+
+int
+eh_region_outermost (struct function *ifun, int region_a, int region_b)
+{
+ struct eh_region *rp_a, *rp_b;
+ sbitmap b_outer;
+
+ gcc_assert (ifun->eh->last_region_number > 0);
+ gcc_assert (ifun->eh->region_tree);
+
+ rp_a = VEC_index (eh_region, ifun->eh->region_array, region_a);
+ rp_b = VEC_index (eh_region, ifun->eh->region_array, region_b);
+ gcc_assert (rp_a != NULL);
+ gcc_assert (rp_b != NULL);
+
+ b_outer = sbitmap_alloc (ifun->eh->last_region_number + 1);
+ sbitmap_zero (b_outer);
+
+ do
+ {
+ SET_BIT (b_outer, rp_b->region_number);
+ rp_b = rp_b->outer;
+ }
+ while (rp_b);
+
+ do
+ {
+ if (TEST_BIT (b_outer, rp_a->region_number))
+ {
+ sbitmap_free (b_outer);
+ return rp_a->region_number;
+ }
+ rp_a = rp_a->outer;
+ }
+ while (rp_a);
+
+ sbitmap_free (b_outer);
+ return -1;
+}
static int
t2r_eq (const void *pentry, const void *pdata)
diff --git a/gcc/except.h b/gcc/except.h
index 5b28296c8b4..1f96477f2e0 100644
--- a/gcc/except.h
+++ b/gcc/except.h
@@ -108,6 +108,7 @@ extern void expand_resx_expr (tree);
extern void verify_eh_tree (struct function *);
extern void dump_eh_tree (FILE *, struct function *);
extern bool eh_region_outer_p (struct function *, int, int);
+extern int eh_region_outermost (struct function *, int, int);
/* tree-eh.c */
extern void add_stmt_to_eh_region_fn (struct function *, tree, int);
diff --git a/gcc/expr.c b/gcc/expr.c
index 904d4fcb30f..f59cc426a17 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -1940,11 +1940,11 @@ emit_group_store (rtx orig_dst, rtx src, tree type ATTRIBUTE_UNUSED, int ssize)
if (start < finish)
{
inner = GET_MODE (tmps[start]);
- bytepos = subreg_lowpart_offset (outer, inner);
+ bytepos = subreg_lowpart_offset (inner, outer);
if (INTVAL (XEXP (XVECEXP (src, 0, start), 1)) == bytepos)
{
temp = simplify_gen_subreg (outer, tmps[start],
- inner, bytepos);
+ inner, 0);
if (temp)
{
emit_move_insn (dst, temp);
@@ -1959,11 +1959,11 @@ emit_group_store (rtx orig_dst, rtx src, tree type ATTRIBUTE_UNUSED, int ssize)
&& start < finish - 1)
{
inner = GET_MODE (tmps[finish - 1]);
- bytepos = subreg_lowpart_offset (outer, inner);
+ bytepos = subreg_lowpart_offset (inner, outer);
if (INTVAL (XEXP (XVECEXP (src, 0, finish - 1), 1)) == bytepos)
{
temp = simplify_gen_subreg (outer, tmps[finish - 1],
- inner, bytepos);
+ inner, 0);
if (temp)
{
emit_move_insn (dst, temp);
@@ -3346,7 +3346,11 @@ compress_float_constant (rtx x, rtx y)
}
else
continue;
-
+
+ /* For CSE's benefit, force the compressed constant pool entry
+ into a new pseudo. This constant may be used in different modes,
+ and if not, combine will put things back together for us. */
+ trunc_y = force_reg (srcmode, trunc_y);
emit_unop_insn (ic, x, trunc_y, UNKNOWN);
last_insn = get_last_insn ();
@@ -3984,13 +3988,16 @@ expand_assignment (tree to, tree from)
rtx result;
/* Don't crash if the lhs of the assignment was erroneous. */
-
if (TREE_CODE (to) == ERROR_MARK)
{
result = expand_normal (from);
return;
}
+ /* Optimize away no-op moves without side-effects. */
+ if (operand_equal_p (to, from, 0))
+ return;
+
/* Assignment of a structure component needs special treatment
if the structure component's rtx is not simply a MEM.
Assignment of an array element at a constant index, and assignment of
@@ -5325,7 +5332,7 @@ store_constructor (tree exp, rtx target, int cleared, HOST_WIDE_INT size)
}
/* Inform later passes that the old value is dead. */
- if (!cleared && REG_P (target))
+ if (!cleared && !vector && REG_P (target))
emit_move_insn (target, CONST0_RTX (GET_MODE (target)));
/* Store each element of the constructor into the corresponding
@@ -7717,7 +7724,7 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode,
else if (!MEM_P (op0))
{
/* If the operand is not a MEM, force it into memory. Since we
- are going to be be changing the mode of the MEM, don't call
+ are going to be changing the mode of the MEM, don't call
force_const_mem for constants because we don't allow pool
constants to change mode. */
tree inner_type = TREE_TYPE (TREE_OPERAND (exp, 0));
diff --git a/gcc/flow.c b/gcc/flow.c
index d4a90b33b28..9417e434792 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -180,7 +180,7 @@ int max_regno;
/* Indexed by n, giving various register information */
-varray_type reg_n_info;
+VEC(reg_info_p,heap) *reg_n_info;
/* Regset of regs live when calls to `setjmp'-like functions happen. */
/* ??? Does this exist only for the setjmp-clobbered warning message? */
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index d8f7efc62e5..567168276e1 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -134,6 +134,9 @@ static bool reorder_operands_p (tree, tree);
static tree fold_negate_const (tree, tree);
static tree fold_not_const (tree, tree);
static tree fold_relational_const (enum tree_code, tree, tree, tree);
+static int native_encode_expr (tree, unsigned char *, int);
+static tree native_interpret_expr (tree, unsigned char *, int);
+
/* We know that A1 + B1 = SUM1, using 2's complement arithmetic and ignoring
overflow. Suppose A, B and SUM have the same respective signs as A1, B1,
@@ -4155,7 +4158,8 @@ range_predecessor (tree val)
{
tree type = TREE_TYPE (val);
- if (INTEGRAL_TYPE_P (type) && val == TYPE_MIN_VALUE (type))
+ if (INTEGRAL_TYPE_P (type)
+ && operand_equal_p (val, TYPE_MIN_VALUE (type), 0))
return 0;
else
return range_binop (MINUS_EXPR, NULL_TREE, val, 0, integer_one_node, 0);
@@ -4168,7 +4172,8 @@ range_successor (tree val)
{
tree type = TREE_TYPE (val);
- if (INTEGRAL_TYPE_P (type) && val == TYPE_MAX_VALUE (type))
+ if (INTEGRAL_TYPE_P (type)
+ && operand_equal_p (val, TYPE_MAX_VALUE (type), 0))
return 0;
else
return range_binop (PLUS_EXPR, NULL_TREE, val, 0, integer_one_node, 0);
@@ -6756,6 +6761,398 @@ fold_plusminus_mult_expr (enum tree_code code, tree type, tree arg0, tree arg1)
return NULL_TREE;
}
+/* Subroutine of native_encode_expr. Encode the INTEGER_CST
+ specified by EXPR into the buffer PTR of length LEN bytes.
+ Return the number of bytes placed in the buffer, or zero
+ upon failure. */
+
+static int
+native_encode_int (tree expr, unsigned char *ptr, int len)
+{
+ tree type = TREE_TYPE (expr);
+ int total_bytes = GET_MODE_SIZE (TYPE_MODE (type));
+ int byte, offset, word, words;
+ unsigned char value;
+
+ if (total_bytes > len)
+ return 0;
+ words = total_bytes / UNITS_PER_WORD;
+
+ for (byte = 0; byte < total_bytes; byte++)
+ {
+ int bitpos = byte * BITS_PER_UNIT;
+ if (bitpos < HOST_BITS_PER_WIDE_INT)
+ value = (unsigned char) (TREE_INT_CST_LOW (expr) >> bitpos);
+ else
+ value = (unsigned char) (TREE_INT_CST_HIGH (expr)
+ >> (bitpos - HOST_BITS_PER_WIDE_INT));
+
+ if (total_bytes > UNITS_PER_WORD)
+ {
+ word = byte / UNITS_PER_WORD;
+ if (WORDS_BIG_ENDIAN)
+ word = (words - 1) - word;
+ offset = word * UNITS_PER_WORD;
+ if (BYTES_BIG_ENDIAN)
+ offset += (UNITS_PER_WORD - 1) - (byte % UNITS_PER_WORD);
+ else
+ offset += byte % UNITS_PER_WORD;
+ }
+ else
+ offset = BYTES_BIG_ENDIAN ? (total_bytes - 1) - byte : byte;
+ ptr[offset] = value;
+ }
+ return total_bytes;
+}
+
+
+/* Subroutine of native_encode_expr. Encode the REAL_CST
+ specified by EXPR into the buffer PTR of length LEN bytes.
+ Return the number of bytes placed in the buffer, or zero
+ upon failure. */
+
+static int
+native_encode_real (tree expr, unsigned char *ptr, int len)
+{
+ tree type = TREE_TYPE (expr);
+ int total_bytes = GET_MODE_SIZE (TYPE_MODE (type));
+ int byte, offset, word, words;
+ unsigned char value;
+
+ /* There are always 32 bits in each long, no matter the size of
+ the hosts long. We handle floating point representations with
+ up to 192 bits. */
+ long tmp[6];
+
+ if (total_bytes > len)
+ return 0;
+ words = total_bytes / UNITS_PER_WORD;
+
+ real_to_target (tmp, TREE_REAL_CST_PTR (expr), TYPE_MODE (type));
+
+ for (byte = 0; byte < total_bytes; byte++)
+ {
+ int bitpos = byte * BITS_PER_UNIT;
+ value = (unsigned char) (tmp[bitpos / 32] >> (bitpos & 31));
+
+ if (total_bytes > UNITS_PER_WORD)
+ {
+ word = byte / UNITS_PER_WORD;
+ if (FLOAT_WORDS_BIG_ENDIAN)
+ word = (words - 1) - word;
+ offset = word * UNITS_PER_WORD;
+ if (BYTES_BIG_ENDIAN)
+ offset += (UNITS_PER_WORD - 1) - (byte % UNITS_PER_WORD);
+ else
+ offset += byte % UNITS_PER_WORD;
+ }
+ else
+ offset = BYTES_BIG_ENDIAN ? (total_bytes - 1) - byte : byte;
+ ptr[offset] = value;
+ }
+ return total_bytes;
+}
+
+/* Subroutine of native_encode_expr. Encode the COMPLEX_CST
+ specified by EXPR into the buffer PTR of length LEN bytes.
+ Return the number of bytes placed in the buffer, or zero
+ upon failure. */
+
+static int
+native_encode_complex (tree expr, unsigned char *ptr, int len)
+{
+ int rsize, isize;
+ tree part;
+
+ part = TREE_REALPART (expr);
+ rsize = native_encode_expr (part, ptr, len);
+ if (rsize == 0)
+ return 0;
+ part = TREE_IMAGPART (expr);
+ isize = native_encode_expr (part, ptr+rsize, len-rsize);
+ if (isize != rsize)
+ return 0;
+ return rsize + isize;
+}
+
+
+/* Subroutine of native_encode_expr. Encode the VECTOR_CST
+ specified by EXPR into the buffer PTR of length LEN bytes.
+ Return the number of bytes placed in the buffer, or zero
+ upon failure. */
+
+static int
+native_encode_vector (tree expr, unsigned char *ptr, int len)
+{
+ int i, size, offset, count;
+ tree elem, elements;
+
+ size = 0;
+ offset = 0;
+ elements = TREE_VECTOR_CST_ELTS (expr);
+ count = TYPE_VECTOR_SUBPARTS (TREE_TYPE (expr));
+ for (i = 0; i < count; i++)
+ {
+ if (elements)
+ {
+ elem = TREE_VALUE (elements);
+ elements = TREE_CHAIN (elements);
+ }
+ else
+ elem = NULL_TREE;
+
+ if (elem)
+ {
+ size = native_encode_expr (elem, ptr+offset, len-offset);
+ if (size == 0)
+ return 0;
+ }
+ else if (size != 0)
+ {
+ if (offset + size > len)
+ return 0;
+ memset (ptr+offset, 0, size);
+ }
+ else
+ return 0;
+ offset += size;
+ }
+ return offset;
+}
+
+
+/* Subroutine of fold_view_convert_expr. Encode the INTEGER_CST,
+ REAL_CST, COMPLEX_CST or VECTOR_CST specified by EXPR into the
+ buffer PTR of length LEN bytes. Return the number of bytes
+ placed in the buffer, or zero upon failure. */
+
+static int
+native_encode_expr (tree expr, unsigned char *ptr, int len)
+{
+ switch (TREE_CODE (expr))
+ {
+ case INTEGER_CST:
+ return native_encode_int (expr, ptr, len);
+
+ case REAL_CST:
+ return native_encode_real (expr, ptr, len);
+
+ case COMPLEX_CST:
+ return native_encode_complex (expr, ptr, len);
+
+ case VECTOR_CST:
+ return native_encode_vector (expr, ptr, len);
+
+ default:
+ return 0;
+ }
+}
+
+
+/* Subroutine of native_interpret_expr. Interpret the contents of
+ the buffer PTR of length LEN as an INTEGER_CST of type TYPE.
+ If the buffer cannot be interpreted, return NULL_TREE. */
+
+static tree
+native_interpret_int (tree type, unsigned char *ptr, int len)
+{
+ int total_bytes = GET_MODE_SIZE (TYPE_MODE (type));
+ int byte, offset, word, words;
+ unsigned char value;
+ unsigned int HOST_WIDE_INT lo = 0;
+ HOST_WIDE_INT hi = 0;
+
+ if (total_bytes > len)
+ return NULL_TREE;
+ if (total_bytes * BITS_PER_UNIT > 2 * HOST_BITS_PER_WIDE_INT)
+ return NULL_TREE;
+ words = total_bytes / UNITS_PER_WORD;
+
+ for (byte = 0; byte < total_bytes; byte++)
+ {
+ int bitpos = byte * BITS_PER_UNIT;
+ if (total_bytes > UNITS_PER_WORD)
+ {
+ word = byte / UNITS_PER_WORD;
+ if (WORDS_BIG_ENDIAN)
+ word = (words - 1) - word;
+ offset = word * UNITS_PER_WORD;
+ if (BYTES_BIG_ENDIAN)
+ offset += (UNITS_PER_WORD - 1) - (byte % UNITS_PER_WORD);
+ else
+ offset += byte % UNITS_PER_WORD;
+ }
+ else
+ offset = BYTES_BIG_ENDIAN ? (total_bytes - 1) - byte : byte;
+ value = ptr[offset];
+
+ if (bitpos < HOST_BITS_PER_WIDE_INT)
+ lo |= (unsigned HOST_WIDE_INT) value << bitpos;
+ else
+ hi |= (unsigned HOST_WIDE_INT) value
+ << (bitpos - HOST_BITS_PER_WIDE_INT);
+ }
+
+ return force_fit_type (build_int_cst_wide (type, lo, hi),
+ 0, false, false);
+}
+
+
+/* Subroutine of native_interpret_expr. Interpret the contents of
+ the buffer PTR of length LEN as a REAL_CST of type TYPE.
+ If the buffer cannot be interpreted, return NULL_TREE. */
+
+static tree
+native_interpret_real (tree type, unsigned char *ptr, int len)
+{
+ enum machine_mode mode = TYPE_MODE (type);
+ int total_bytes = GET_MODE_SIZE (mode);
+ int byte, offset, word, words;
+ unsigned char value;
+ /* There are always 32 bits in each long, no matter the size of
+ the hosts long. We handle floating point representations with
+ up to 192 bits. */
+ REAL_VALUE_TYPE r;
+ long tmp[6];
+
+ total_bytes = GET_MODE_SIZE (TYPE_MODE (type));
+ if (total_bytes > len || total_bytes > 24)
+ return NULL_TREE;
+ words = total_bytes / UNITS_PER_WORD;
+
+ memset (tmp, 0, sizeof (tmp));
+ for (byte = 0; byte < total_bytes; byte++)
+ {
+ int bitpos = byte * BITS_PER_UNIT;
+ if (total_bytes > UNITS_PER_WORD)
+ {
+ word = byte / UNITS_PER_WORD;
+ if (FLOAT_WORDS_BIG_ENDIAN)
+ word = (words - 1) - word;
+ offset = word * UNITS_PER_WORD;
+ if (BYTES_BIG_ENDIAN)
+ offset += (UNITS_PER_WORD - 1) - (byte % UNITS_PER_WORD);
+ else
+ offset += byte % UNITS_PER_WORD;
+ }
+ else
+ offset = BYTES_BIG_ENDIAN ? (total_bytes - 1) - byte : byte;
+ value = ptr[offset];
+
+ tmp[bitpos / 32] |= (unsigned long)value << (bitpos & 31);
+ }
+
+ real_from_target (&r, tmp, mode);
+ return build_real (type, r);
+}
+
+
+/* Subroutine of native_interpret_expr. Interpret the contents of
+ the buffer PTR of length LEN as a COMPLEX_CST of type TYPE.
+ If the buffer cannot be interpreted, return NULL_TREE. */
+
+static tree
+native_interpret_complex (tree type, unsigned char *ptr, int len)
+{
+ tree etype, rpart, ipart;
+ int size;
+
+ etype = TREE_TYPE (type);
+ size = GET_MODE_SIZE (TYPE_MODE (etype));
+ if (size * 2 > len)
+ return NULL_TREE;
+ rpart = native_interpret_expr (etype, ptr, size);
+ if (!rpart)
+ return NULL_TREE;
+ ipart = native_interpret_expr (etype, ptr+size, size);
+ if (!ipart)
+ return NULL_TREE;
+ return build_complex (type, rpart, ipart);
+}
+
+
+/* Subroutine of native_interpret_expr. Interpret the contents of
+ the buffer PTR of length LEN as a VECTOR_CST of type TYPE.
+ If the buffer cannot be interpreted, return NULL_TREE. */
+
+static tree
+native_interpret_vector (tree type, unsigned char *ptr, int len)
+{
+ tree etype, elem, elements;
+ int i, size, count;
+
+ etype = TREE_TYPE (type);
+ size = GET_MODE_SIZE (TYPE_MODE (etype));
+ count = TYPE_VECTOR_SUBPARTS (type);
+ if (size * count > len)
+ return NULL_TREE;
+
+ elements = NULL_TREE;
+ for (i = count - 1; i >= 0; i--)
+ {
+ elem = native_interpret_expr (etype, ptr+(i*size), size);
+ if (!elem)
+ return NULL_TREE;
+ elements = tree_cons (NULL_TREE, elem, elements);
+ }
+ return build_vector (type, elements);
+}
+
+
+/* Subroutine of fold_view_convert_expr. Interpret the contents of
+ the buffer PTR of length LEN as a constant of type TYPE. For
+ INTEGRAL_TYPE_P we return an INTEGER_CST, for SCALAR_FLOAT_TYPE_P
+ we return a REAL_CST, etc... If the buffer cannot be interpreted,
+ return NULL_TREE. */
+
+static tree
+native_interpret_expr (tree type, unsigned char *ptr, int len)
+{
+ switch (TREE_CODE (type))
+ {
+ case INTEGER_TYPE:
+ case ENUMERAL_TYPE:
+ case BOOLEAN_TYPE:
+ return native_interpret_int (type, ptr, len);
+
+ case REAL_TYPE:
+ return native_interpret_real (type, ptr, len);
+
+ case COMPLEX_TYPE:
+ return native_interpret_complex (type, ptr, len);
+
+ case VECTOR_TYPE:
+ return native_interpret_vector (type, ptr, len);
+
+ default:
+ return NULL_TREE;
+ }
+}
+
+
+/* Fold a VIEW_CONVERT_EXPR of a constant expression EXPR to type
+ TYPE at compile-time. If we're unable to perform the conversion
+ return NULL_TREE. */
+
+static tree
+fold_view_convert_expr (tree type, tree expr)
+{
+ /* We support up to 512-bit values (for V8DFmode). */
+ unsigned char buffer[64];
+ int len;
+
+ /* Check that the host and target are sane. */
+ if (CHAR_BIT != 8 || BITS_PER_UNIT != 8)
+ return NULL_TREE;
+
+ len = native_encode_expr (expr, buffer, sizeof (buffer));
+ if (len == 0)
+ return NULL_TREE;
+
+ return native_interpret_expr (type, buffer, len);
+}
+
+
/* Fold a unary expression of code CODE and type TYPE with operand
OP0. Return the folded expression if folding is successful.
Otherwise, return NULL_TREE. */
@@ -7095,8 +7492,8 @@ fold_unary (enum tree_code code, tree type, tree op0)
case VIEW_CONVERT_EXPR:
if (TREE_CODE (op0) == VIEW_CONVERT_EXPR)
- return build1 (VIEW_CONVERT_EXPR, type, TREE_OPERAND (op0, 0));
- return NULL_TREE;
+ return fold_build1 (VIEW_CONVERT_EXPR, type, TREE_OPERAND (op0, 0));
+ return fold_view_convert_expr (type, op0);
case NEGATE_EXPR:
if (negate_expr_p (arg0))
@@ -9205,8 +9602,27 @@ fold_binary (enum tree_code code, tree type, tree op0, tree op1)
return NULL_TREE;
case TRUNC_DIV_EXPR:
- case ROUND_DIV_EXPR:
case FLOOR_DIV_EXPR:
+ /* Simplify A / (B << N) where A and B are positive and B is
+ a power of 2, to A >> (N + log2(B)). */
+ if (TREE_CODE (arg1) == LSHIFT_EXPR
+ && (TYPE_UNSIGNED (type) || tree_expr_nonnegative_p (arg0)))
+ {
+ tree sval = TREE_OPERAND (arg1, 0);
+ if (integer_pow2p (sval) && tree_int_cst_sgn (sval) > 0)
+ {
+ tree sh_cnt = TREE_OPERAND (arg1, 1);
+ unsigned long pow2 = exact_log2 (TREE_INT_CST_LOW (sval));
+
+ sh_cnt = fold_build2 (PLUS_EXPR, TREE_TYPE (sh_cnt),
+ sh_cnt, build_int_cst (NULL_TREE, pow2));
+ return fold_build2 (RSHIFT_EXPR, type,
+ fold_convert (type, arg0), sh_cnt);
+ }
+ }
+ /* Fall thru */
+
+ case ROUND_DIV_EXPR:
case CEIL_DIV_EXPR:
case EXACT_DIV_EXPR:
if (integer_onep (arg1))
@@ -9276,31 +9692,24 @@ fold_binary (enum tree_code code, tree type, tree op0, tree op1)
return omit_one_operand (type, integer_zero_node, arg0);
/* Optimize TRUNC_MOD_EXPR by a power of two into a BIT_AND_EXPR,
- i.e. "X % C" into "X & C2", if X and C are positive. */
+ i.e. "X % C" into "X & (C - 1)", if X and C are positive. */
if ((code == TRUNC_MOD_EXPR || code == FLOOR_MOD_EXPR)
- && (TYPE_UNSIGNED (type) || tree_expr_nonnegative_p (arg0))
- && integer_pow2p (arg1) && tree_int_cst_sgn (arg1) >= 0)
+ && (TYPE_UNSIGNED (type) || tree_expr_nonnegative_p (arg0)))
{
- unsigned HOST_WIDE_INT high, low;
- tree mask;
- int l;
+ tree c = arg1;
+ /* Also optimize A % (C << N) where C is a power of 2,
+ to A & ((C << N) - 1). */
+ if (TREE_CODE (arg1) == LSHIFT_EXPR)
+ c = TREE_OPERAND (arg1, 0);
- l = tree_log2 (arg1);
- if (l >= HOST_BITS_PER_WIDE_INT)
- {
- high = ((unsigned HOST_WIDE_INT) 1
- << (l - HOST_BITS_PER_WIDE_INT)) - 1;
- low = -1;
- }
- else
+ if (integer_pow2p (c) && tree_int_cst_sgn (c) > 0)
{
- high = 0;
- low = ((unsigned HOST_WIDE_INT) 1 << l) - 1;
+ tree mask = fold_build2 (MINUS_EXPR, TREE_TYPE (arg1),
+ arg1, integer_one_node);
+ return fold_build2 (BIT_AND_EXPR, type,
+ fold_convert (type, arg0),
+ fold_convert (type, mask));
}
-
- mask = build_int_cst_wide (type, low, high);
- return fold_build2 (BIT_AND_EXPR, type,
- fold_convert (type, arg0), mask);
}
/* X % -C is the same as X % C. */
@@ -10678,7 +11087,9 @@ fold_ternary (enum tree_code code, tree type, tree op0, tree op1, tree op2)
if (integer_zerop (op2)
&& truth_value_p (TREE_CODE (arg0))
&& truth_value_p (TREE_CODE (arg1)))
- return fold_build2 (TRUTH_ANDIF_EXPR, type, arg0, arg1);
+ return fold_build2 (TRUTH_ANDIF_EXPR, type,
+ fold_convert (type, arg0),
+ arg1);
/* Convert A ? B : 1 into !A || B if A and B are truth values. */
if (integer_onep (op2)
@@ -10688,7 +11099,9 @@ fold_ternary (enum tree_code code, tree type, tree op0, tree op1, tree op2)
/* Only perform transformation if ARG0 is easily inverted. */
tem = invert_truthvalue (arg0);
if (TREE_CODE (tem) != TRUTH_NOT_EXPR)
- return fold_build2 (TRUTH_ORIF_EXPR, type, tem, arg1);
+ return fold_build2 (TRUTH_ORIF_EXPR, type,
+ fold_convert (type, tem),
+ arg1);
}
/* Convert A ? 0 : B into !A && B if A and B are truth values. */
@@ -10699,14 +11112,18 @@ fold_ternary (enum tree_code code, tree type, tree op0, tree op1, tree op2)
/* Only perform transformation if ARG0 is easily inverted. */
tem = invert_truthvalue (arg0);
if (TREE_CODE (tem) != TRUTH_NOT_EXPR)
- return fold_build2 (TRUTH_ANDIF_EXPR, type, tem, op2);
+ return fold_build2 (TRUTH_ANDIF_EXPR, type,
+ fold_convert (type, tem),
+ op2);
}
/* Convert A ? 1 : B into A || B if A and B are truth values. */
if (integer_onep (arg1)
&& truth_value_p (TREE_CODE (arg0))
&& truth_value_p (TREE_CODE (op2)))
- return fold_build2 (TRUTH_ORIF_EXPR, type, arg0, op2);
+ return fold_build2 (TRUTH_ORIF_EXPR, type,
+ fold_convert (type, arg0),
+ op2);
return NULL_TREE;
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index c236ff17daf..b64b6c792be 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,93 @@
+2006-04-23 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/25099
+ * resolve.c (resolve_call): Check conformity of elemental
+ subroutine actual arguments.
+
+2006-04-22 Jakub Jelinek <jakub@redhat.com>
+
+ PR fortran/26769
+ * iresolve.c (gfc_resolve_reshape): Use reshape_r16 for real(16).
+ (gfc_resolve_transpose): Use transpose_r16 for real(16).
+
+2006-04-21 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/27122
+ * resolve.c (resolve_function): Remove general restriction on auto
+ character length function interfaces.
+ (gfc_resolve_uops): Check restrictions on defined operator
+ procedures.
+ (resolve_types): Call the check for defined operators.
+
+ PR fortran/27113
+ * trans-array.c (gfc_trans_array_constructor_subarray): Remove
+ redundant gfc_todo_error.
+ (get_array_ctor_var_strlen): Remove typo in enum.
+
+2006-04-18 Bernhard Fischer <aldot@gcc.gnu.org>
+
+ * parse.c (next_free): Use consistent error string between
+ free-form and fixed-form for illegal statement label of zero.
+ (next_fixed): Use consistent warning string between free-form
+ and fixed-form for statement labels for empty statements.
+
+2006-04-18 Steve Ellcey <sje@cup.hp.com>
+
+ * trans-io.c (gfc_build_io_library_fndecls): Align pad.
+
+2006-04-16 Thomas Koenig <Thomas.Koenig@online.de>
+
+ PR fortran/26017
+ * trans-array.c(gfc_array_init_size): Introduce or_expr
+ which is true if the size along any dimension
+ is negative. Create a temporary variable with base
+ name size. If or_expr is true, set the temporary to 0,
+ to the normal size otherwise.
+
+2006-04-16 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/26822
+ * intrinsic.c (add_functions): Mark LOGICAL as elemental.
+
+ PR fortran/26787
+ * expr.c (gfc_check_assign): Extend scope of error to include
+ assignments to a procedure in the main program or, from a
+ module or internal procedure that is not that represented by
+ the lhs symbol. Use VARIABLE rather than l-value in message.
+
+ PR fortran/27096
+ * trans-array.c (gfc_trans_deferred_array): If the backend_decl
+ is not a descriptor, dereference and then test and use the type.
+
+ PR fortran/25597
+ * trans-decl.c (gfc_trans_deferred_vars): Check if an array
+ result, is also automatic character length. If so, process
+ the character length.
+
+ PR fortran/18803
+ PR fortran/25669
+ PR fortran/26834
+ * trans_intrinsic.c (gfc_walk_intrinsic_bound): Set
+ data.info.dimen for bound intrinsics.
+ * trans_array.c (gfc_conv_ss_startstride): Pick out LBOUND and
+ UBOUND intrinsics and supply their shape information to the ss
+ and the loop.
+
+ PR fortran/27124
+ * trans_expr.c (gfc_trans_function_call): Add a new block, post,
+ in to which all the argument post blocks are put. Add this block
+ to se->pre after a byref call or to se->post, otherwise.
+
+2006-04-14 Roger Sayle <roger@eyesopen.com>
+
+ * trans-io.c (set_string): Use fold_build2 and build_int_cst instead
+ of build2 and convert to construct "x < 0" rather than "x <= -1".
+
+2006-04-13 Richard Henderson <rth@redhat.com>
+
+ * trans-openmp.c (gfc_trans_omp_sections): Adjust for changed
+ number of operands to OMP_SECTIONS.
+
2006-04-08 Kazu Hirata <kazu@codesourcery.com>
* gfortran.texi: Fix typos. Follow spelling conventions.
diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c
index dfbbed24563..5ecc829f1cb 100644
--- a/gcc/fortran/expr.c
+++ b/gcc/fortran/expr.c
@@ -1863,13 +1863,49 @@ gfc_check_assign (gfc_expr * lvalue, gfc_expr * rvalue, int conform)
return FAILURE;
}
- if (sym->attr.flavor == FL_PROCEDURE && sym->attr.use_assoc)
+/* 12.5.2.2, Note 12.26: The result variable is very similar to any other
+ variable local to a function subprogram. Its existence begins when
+ execution of the function is initiated and ends when execution of the
+ function is terminated.....
+ Therefore, the left hand side is no longer a varaiable, when it is:*/
+ if (sym->attr.flavor == FL_PROCEDURE
+ && sym->attr.proc != PROC_ST_FUNCTION
+ && !sym->attr.external)
{
- gfc_error ("'%s' in the assignment at %L cannot be an l-value "
- "since it is a procedure", sym->name, &lvalue->where);
- return FAILURE;
- }
+ bool bad_proc;
+ bad_proc = false;
+
+ /* (i) Use associated; */
+ if (sym->attr.use_assoc)
+ bad_proc = true;
+
+ /* (ii) The assignement is in the main program; or */
+ if (gfc_current_ns->proc_name->attr.is_main_program)
+ bad_proc = true;
+
+ /* (iii) A module or internal procedure.... */
+ if ((gfc_current_ns->proc_name->attr.proc == PROC_INTERNAL
+ || gfc_current_ns->proc_name->attr.proc == PROC_MODULE)
+ && gfc_current_ns->parent
+ && (!(gfc_current_ns->parent->proc_name->attr.function
+ || gfc_current_ns->parent->proc_name->attr.subroutine)
+ || gfc_current_ns->parent->proc_name->attr.is_main_program))
+ {
+ /* .... that is not a function.... */
+ if (!gfc_current_ns->proc_name->attr.function)
+ bad_proc = true;
+
+ /* .... or is not an entry and has a different name. */
+ if (!sym->attr.entry && sym->name != gfc_current_ns->proc_name->name)
+ bad_proc = true;
+ }
+ if (bad_proc)
+ {
+ gfc_error ("'%s' at %L is not a VALUE", sym->name, &lvalue->where);
+ return FAILURE;
+ }
+ }
if (rvalue->rank != 0 && lvalue->rank != rvalue->rank)
{
diff --git a/gcc/fortran/intrinsic.c b/gcc/fortran/intrinsic.c
index 707fe5b456a..78289227d7d 100644
--- a/gcc/fortran/intrinsic.c
+++ b/gcc/fortran/intrinsic.c
@@ -1670,7 +1670,7 @@ add_functions (void)
make_generic ("log10", GFC_ISYM_LOG10, GFC_STD_F77);
- add_sym_2 ("logical", 0, 1, BT_LOGICAL, dl, GFC_STD_F95,
+ add_sym_2 ("logical", 1, 1, BT_LOGICAL, dl, GFC_STD_F95,
gfc_check_logical, gfc_simplify_logical, gfc_resolve_logical,
l, BT_LOGICAL, dl, REQUIRED, kind, BT_INTEGER, di, OPTIONAL);
diff --git a/gcc/fortran/iresolve.c b/gcc/fortran/iresolve.c
index d07864ee36e..ecb1448df12 100644
--- a/gcc/fortran/iresolve.c
+++ b/gcc/fortran/iresolve.c
@@ -1,6 +1,6 @@
/* Intrinsic function resolution.
- Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation,
- Inc.
+ Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006
+ Free Software Foundation, Inc.
Contributed by Andy Vaught & Katherine Holcomb
This file is part of GCC.
@@ -1520,7 +1520,7 @@ gfc_resolve_reshape (gfc_expr * f, gfc_expr * source, gfc_expr * shape,
f->value.function.name =
gfc_get_string (PREFIX("reshape_%c%d"),
gfc_type_letter (BT_COMPLEX), source->ts.kind);
- else if (source->ts.type == BT_REAL && kind == 10)
+ else if (source->ts.type == BT_REAL && (kind == 10 || kind == 16))
f->value.function.name =
gfc_get_string (PREFIX("reshape_%c%d"),
gfc_type_letter (BT_REAL), source->ts.kind);
@@ -1994,9 +1994,10 @@ gfc_resolve_transpose (gfc_expr * f, gfc_expr * matrix)
break;
case BT_REAL:
- /* There is no kind=10 integer type. We need to
+ /* There is no kind=10 integer type and on 32-bit targets
+ there is usually no kind=16 integer type. We need to
call the real version. */
- if (kind == 10)
+ if (kind == 10 || kind == 16)
{
f->value.function.name =
gfc_get_string (PREFIX("transpose_r%d"), kind);
diff --git a/gcc/fortran/parse.c b/gcc/fortran/parse.c
index b120bbb77ef..5fb9ce12457 100644
--- a/gcc/fortran/parse.c
+++ b/gcc/fortran/parse.c
@@ -428,9 +428,9 @@ next_free (void)
if (cnt > 5)
gfc_error_now ("Too many digits in statement label at %C");
-
+
if (c == 0)
- gfc_error_now ("Statement label at %C is zero");
+ gfc_error_now ("Zero is not a valid statement label at %C");
do
c = gfc_next_char ();
@@ -600,7 +600,7 @@ next_fixed (void)
blank_line:
if (digit_flag)
- gfc_warning ("Statement label in blank line will be ignored at %C");
+ gfc_warning ("Ignoring statement label in empty statement at %C");
gfc_advance_line ();
return ST_NONE;
}
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index bde11a5c595..1e57adda605 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -952,9 +952,17 @@ resolve_generic_f0 (gfc_expr * expr, gfc_symbol * sym)
{
expr->value.function.name = s->name;
expr->value.function.esym = s;
- expr->ts = s->ts;
+
+ if (s->ts.type != BT_UNKNOWN)
+ expr->ts = s->ts;
+ else if (s->result != NULL && s->result->ts.type != BT_UNKNOWN)
+ expr->ts = s->result->ts;
+
if (s->as != NULL)
expr->rank = s->as->rank;
+ else if (s->result != NULL && s->result->as != NULL)
+ expr->rank = s->result->as->rank;
+
return MATCH_YES;
}
@@ -1229,28 +1237,16 @@ resolve_function (gfc_expr * expr)
need_full_assumed_size--;
if (sym && sym->ts.type == BT_CHARACTER
- && sym->ts.cl && sym->ts.cl->length == NULL)
+ && sym->ts.cl
+ && sym->ts.cl->length == NULL
+ && !sym->attr.dummy
+ && !sym->attr.contained)
{
- if (sym->attr.if_source == IFSRC_IFBODY)
- {
- /* This follows from a slightly odd requirement at 5.1.1.5 in the
- standard that allows assumed character length functions to be
- declared in interfaces but not used. Picking up the symbol here,
- rather than resolve_symbol, accomplishes that. */
- gfc_error ("Function '%s' can be declared in an interface to "
- "return CHARACTER(*) but cannot be used at %L",
- sym->name, &expr->where);
- return FAILURE;
- }
-
/* Internal procedures are taken care of in resolve_contained_fntype. */
- if (!sym->attr.dummy && !sym->attr.contained)
- {
- gfc_error ("Function '%s' is declared CHARACTER(*) and cannot "
- "be used at %L since it is not a dummy argument",
- sym->name, &expr->where);
- return FAILURE;
- }
+ gfc_error ("Function '%s' is declared CHARACTER(*) and cannot "
+ "be used at %L since it is not a dummy argument",
+ sym->name, &expr->where);
+ return FAILURE;
}
/* See if function is already resolved. */
@@ -1661,18 +1657,33 @@ resolve_call (gfc_code * c)
gfc_internal_error ("resolve_subroutine(): bad function type");
}
+ /* Some checks of elemental subroutines. */
if (c->ext.actual != NULL
&& c->symtree->n.sym->attr.elemental)
{
gfc_actual_arglist * a;
- /* Being elemental, the last upper bound of an assumed size array
- argument must be present. */
+ gfc_expr * e;
+ e = NULL;
+
for (a = c->ext.actual; a; a = a->next)
{
- if (a->expr != NULL
- && a->expr->rank > 0
- && resolve_assumed_size_actual (a->expr))
+ if (a->expr == NULL || a->expr->rank == 0)
+ continue;
+
+ /* The last upper bound of an assumed size array argument must
+ be present. */
+ if (resolve_assumed_size_actual (a->expr))
return FAILURE;
+
+ /* Array actual arguments must conform. */
+ if (e != NULL)
+ {
+ if (gfc_check_conformance ("elemental subroutine", a->expr, e)
+ == FAILURE)
+ return FAILURE;
+ }
+ else
+ e = a->expr;
}
}
@@ -6097,6 +6108,68 @@ resolve_fntype (gfc_namespace * ns)
}
}
+/* 12.3.2.1.1 Defined operators. */
+
+static void
+gfc_resolve_uops(gfc_symtree *symtree)
+{
+ gfc_interface *itr;
+ gfc_symbol *sym;
+ gfc_formal_arglist *formal;
+
+ if (symtree == NULL)
+ return;
+
+ gfc_resolve_uops (symtree->left);
+ gfc_resolve_uops (symtree->right);
+
+ for (itr = symtree->n.uop->operator; itr; itr = itr->next)
+ {
+ sym = itr->sym;
+ if (!sym->attr.function)
+ gfc_error("User operator procedure '%s' at %L must be a FUNCTION",
+ sym->name, &sym->declared_at);
+
+ if (sym->ts.type == BT_CHARACTER
+ && !(sym->ts.cl && sym->ts.cl->length)
+ && !(sym->result && sym->result->ts.cl && sym->result->ts.cl->length))
+ gfc_error("User operator procedure '%s' at %L cannot be assumed character "
+ "length", sym->name, &sym->declared_at);
+
+ formal = sym->formal;
+ if (!formal || !formal->sym)
+ {
+ gfc_error("User operator procedure '%s' at %L must have at least "
+ "one argument", sym->name, &sym->declared_at);
+ continue;
+ }
+
+ if (formal->sym->attr.intent != INTENT_IN)
+ gfc_error ("First argument of operator interface at %L must be "
+ "INTENT(IN)", &sym->declared_at);
+
+ if (formal->sym->attr.optional)
+ gfc_error ("First argument of operator interface at %L cannot be "
+ "optional", &sym->declared_at);
+
+ formal = formal->next;
+ if (!formal || !formal->sym)
+ continue;
+
+ if (formal->sym->attr.intent != INTENT_IN)
+ gfc_error ("Second argument of operator interface at %L must be "
+ "INTENT(IN)", &sym->declared_at);
+
+ if (formal->sym->attr.optional)
+ gfc_error ("Second argument of operator interface at %L cannot be "
+ "optional", &sym->declared_at);
+
+ if (formal->next)
+ gfc_error ("Operator interface at %L must have, at most, two "
+ "arguments", &sym->declared_at);
+ }
+}
+
/* Examine all of the expressions associated with a program unit,
assign types to all intermediate expressions, make sure that all
@@ -6156,6 +6229,9 @@ resolve_types (gfc_namespace * ns)
/* Warn about unused labels. */
if (gfc_option.warn_unused_labels)
warn_unused_label (ns->st_labels);
+
+ gfc_resolve_uops (ns->uop_root);
+
}
diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c
index 4bdc784f11c..fcd2223d96b 100644
--- a/gcc/fortran/trans-array.c
+++ b/gcc/fortran/trans-array.c
@@ -1035,9 +1035,6 @@ gfc_trans_array_constructor_subarray (stmtblock_t * pblock,
gfc_copy_loopinfo_to_se (&se, &loop);
se.ss = ss;
- if (expr->ts.type == BT_CHARACTER)
- gfc_todo_error ("character arrays in constructors");
-
gfc_trans_array_ctor_element (&body, desc, *poffset, &se, expr);
gcc_assert (se.ss == gfc_ss_terminator);
@@ -1311,7 +1308,7 @@ get_array_ctor_var_strlen (gfc_expr * expr, tree * len)
/* Array references don't change the string length. */
break;
- case COMPONENT_REF:
+ case REF_COMPONENT:
/* Use the length of the component. */
ts = &ref->u.c.component->ts;
break;
@@ -2393,6 +2390,18 @@ gfc_conv_ss_startstride (gfc_loopinfo * loop)
loop->dimen = ss->data.info.dimen;
break;
+ /* As usual, lbound and ubound are exceptions!. */
+ case GFC_SS_INTRINSIC:
+ switch (ss->expr->value.function.isym->generic_id)
+ {
+ case GFC_ISYM_LBOUND:
+ case GFC_ISYM_UBOUND:
+ loop->dimen = ss->data.info.dimen;
+
+ default:
+ break;
+ }
+
default:
break;
}
@@ -2418,6 +2427,17 @@ gfc_conv_ss_startstride (gfc_loopinfo * loop)
gfc_conv_section_startstride (loop, ss, n);
break;
+ case GFC_SS_INTRINSIC:
+ switch (ss->expr->value.function.isym->generic_id)
+ {
+ /* Fall through to supply start and stride. */
+ case GFC_ISYM_LBOUND:
+ case GFC_ISYM_UBOUND:
+ break;
+ default:
+ continue;
+ }
+
case GFC_SS_CONSTRUCTOR:
case GFC_SS_FUNCTION:
for (n = 0; n < ss->data.info.dimen; n++)
@@ -2916,6 +2936,13 @@ gfc_array_init_size (tree descriptor, int rank, tree * poffset,
tree size;
tree offset;
tree stride;
+ tree cond;
+ tree or_expr;
+ tree thencase;
+ tree elsecase;
+ tree var;
+ stmtblock_t thenblock;
+ stmtblock_t elseblock;
gfc_expr *ubound;
gfc_se se;
int n;
@@ -2929,6 +2956,8 @@ gfc_array_init_size (tree descriptor, int rank, tree * poffset,
tmp = gfc_conv_descriptor_dtype (descriptor);
gfc_add_modify_expr (pblock, tmp, gfc_get_dtype (TREE_TYPE (descriptor)));
+ or_expr = NULL_TREE;
+
for (n = 0; n < rank; n++)
{
/* We have 3 possibilities for determining the size of the array:
@@ -2982,6 +3011,14 @@ gfc_array_init_size (tree descriptor, int rank, tree * poffset,
/* Calculate the size of this dimension. */
size = fold_build2 (PLUS_EXPR, gfc_array_index_type, se.expr, size);
+ /* Check wether the size for this dimension is negative. */
+ cond = fold_build2 (LE_EXPR, boolean_type_node, size,
+ gfc_index_zero_node);
+ if (n == 0)
+ or_expr = cond;
+ else
+ or_expr = fold_build2 (TRUTH_OR_EXPR, boolean_type_node, or_expr, cond);
+
/* Multiply the stride by the number of elements in this dimension. */
stride = fold_build2 (MULT_EXPR, gfc_array_index_type, stride, size);
stride = gfc_evaluate_now (stride, pblock);
@@ -2998,8 +3035,20 @@ gfc_array_init_size (tree descriptor, int rank, tree * poffset,
*poffset = offset;
}
- size = gfc_evaluate_now (size, pblock);
- return size;
+ var = gfc_create_var (TREE_TYPE (size), "size");
+ gfc_start_block (&thenblock);
+ gfc_add_modify_expr (&thenblock, var, gfc_index_zero_node);
+ thencase = gfc_finish_block (&thenblock);
+
+ gfc_start_block (&elseblock);
+ gfc_add_modify_expr (&elseblock, var, size);
+ elsecase = gfc_finish_block (&elseblock);
+
+ tmp = gfc_evaluate_now (or_expr, pblock);
+ tmp = build3_v (COND_EXPR, tmp, thencase, elsecase);
+ gfc_add_expr_to_block (pblock, tmp);
+
+ return var;
}
@@ -4391,7 +4440,14 @@ gfc_trans_deferred_array (gfc_symbol * sym, tree body)
/* Get the descriptor type. */
type = TREE_TYPE (sym->backend_decl);
- gcc_assert (GFC_DESCRIPTOR_TYPE_P (type));
+ if (!GFC_DESCRIPTOR_TYPE_P (type))
+ {
+ /* If the backend_decl is not a descriptor, we must have a pointer
+ to one. */
+ descriptor = build_fold_indirect_ref (sym->backend_decl);
+ type = TREE_TYPE (descriptor);
+ gcc_assert (GFC_DESCRIPTOR_TYPE_P (type));
+ }
/* NULLIFY the data pointer. */
gfc_conv_descriptor_data_set (&fnblock, descriptor, null_pointer_node);
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c
index 2a9c0dbc32f..4efe4bdb95d 100644
--- a/gcc/fortran/trans-decl.c
+++ b/gcc/fortran/trans-decl.c
@@ -2536,6 +2536,12 @@ gfc_trans_deferred_vars (gfc_symbol * proc_sym, tree fnbody)
{
tree result = TREE_VALUE (current_fake_result_decl);
fnbody = gfc_trans_dummy_array_bias (proc_sym, result, fnbody);
+
+ /* An automatic character length, pointer array result. */
+ if (proc_sym->ts.type == BT_CHARACTER
+ && TREE_CODE (proc_sym->ts.cl->backend_decl) == VAR_DECL)
+ fnbody = gfc_trans_dummy_character (proc_sym, proc_sym->ts.cl,
+ fnbody);
}
else if (proc_sym->ts.type == BT_CHARACTER)
{
diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c
index 81e0a7c5d21..4eceab6876e 100644
--- a/gcc/fortran/trans-expr.c
+++ b/gcc/fortran/trans-expr.c
@@ -1832,6 +1832,7 @@ gfc_conv_function_call (gfc_se * se, gfc_symbol * sym,
gfc_charlen cl;
gfc_expr *e;
gfc_symbol *fsym;
+ stmtblock_t post;
arglist = NULL_TREE;
retargs = NULL_TREE;
@@ -1861,6 +1862,7 @@ gfc_conv_function_call (gfc_se * se, gfc_symbol * sym,
else
info = NULL;
+ gfc_init_block (&post);
gfc_init_interface_mapping (&mapping);
need_interface_mapping = ((sym->ts.type == BT_CHARACTER
&& sym->ts.cl->length
@@ -1970,7 +1972,7 @@ gfc_conv_function_call (gfc_se * se, gfc_symbol * sym,
gfc_add_interface_mapping (&mapping, fsym, &parmse);
gfc_add_block_to_block (&se->pre, &parmse.pre);
- gfc_add_block_to_block (&se->post, &parmse.post);
+ gfc_add_block_to_block (&post, &parmse.post);
/* Character strings are passed as two parameters, a length and a
pointer. */
@@ -2177,6 +2179,12 @@ gfc_conv_function_call (gfc_se * se, gfc_symbol * sym,
}
}
+ /* Follow the function call with the argument post block. */
+ if (byref)
+ gfc_add_block_to_block (&se->pre, &post);
+ else
+ gfc_add_block_to_block (&se->post, &post);
+
return has_alternate_specifier;
}
diff --git a/gcc/fortran/trans-intrinsic.c b/gcc/fortran/trans-intrinsic.c
index b69ffefc8a0..1abc79aa69b 100644
--- a/gcc/fortran/trans-intrinsic.c
+++ b/gcc/fortran/trans-intrinsic.c
@@ -3710,6 +3710,7 @@ gfc_walk_intrinsic_bound (gfc_ss * ss, gfc_expr * expr)
newss->type = GFC_SS_INTRINSIC;
newss->expr = expr;
newss->next = ss;
+ newss->data.info.dimen = 1;
return newss;
}
diff --git a/gcc/fortran/trans-io.c b/gcc/fortran/trans-io.c
index db1a4813be1..b4c83f49f86 100644
--- a/gcc/fortran/trans-io.c
+++ b/gcc/fortran/trans-io.c
@@ -227,6 +227,14 @@ gfc_build_io_library_fndecls (void)
pad_size += 32 * TREE_INT_CST_LOW (TYPE_SIZE_UNIT (integer_type_node));
pad_idx = build_index_type (build_int_cst (NULL_TREE, pad_size));
types[IOPARM_type_pad] = build_array_type (char_type_node, pad_idx);
+
+ /* pad actually contains pointers and integers so it needs to have an
+ alignment that is at least as large as the needed alignment for those
+ types. See the st_parameter_dt structure in libgfortran/io/io.h for
+ what really goes into this space. */
+ TYPE_ALIGN (types[IOPARM_type_pad]) = MAX (TYPE_ALIGN (pchar_type_node),
+ TYPE_ALIGN (gfc_get_int_type (gfc_max_integer_kind)));
+
gfc_c_int_type_node = gfc_get_int_type (gfc_c_int_kind);
for (ptype = IOPARM_ptype_common; ptype < IOPARM_ptype_num; ptype++)
@@ -532,8 +540,8 @@ set_string (stmtblock_t * block, stmtblock_t * postblock, tree var,
msg =
gfc_build_cstring_const ("Assigned label is not a format label");
tmp = GFC_DECL_STRING_LEN (se.expr);
- tmp = build2 (LE_EXPR, boolean_type_node,
- tmp, convert (TREE_TYPE (tmp), integer_minus_one_node));
+ tmp = fold_build2 (LT_EXPR, boolean_type_node,
+ tmp, build_int_cst (TREE_TYPE (tmp), 0));
gfc_trans_runtime_check (tmp, msg, &se.pre);
gfc_add_modify_expr (&se.pre, io,
fold_convert (TREE_TYPE (io), GFC_DECL_ASSIGN_ADDR (se.expr)));
diff --git a/gcc/fortran/trans-openmp.c b/gcc/fortran/trans-openmp.c
index 56d88296935..bd57836713a 100644
--- a/gcc/fortran/trans-openmp.c
+++ b/gcc/fortran/trans-openmp.c
@@ -1161,7 +1161,7 @@ gfc_trans_omp_sections (gfc_code *code, gfc_omp_clauses *clauses)
}
stmt = gfc_finish_block (&body);
- stmt = build3_v (OMP_SECTIONS, stmt, omp_clauses, NULL);
+ stmt = build2_v (OMP_SECTIONS, stmt, omp_clauses);
gfc_add_expr_to_block (&block, stmt);
return gfc_finish_block (&block);
diff --git a/gcc/function.c b/gcc/function.c
index 14a0f53104f..69dbd841688 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -65,6 +65,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
#include "predict.h"
#include "df.h"
#include "timevar.h"
+#include "vecprim.h"
#ifndef LOCAL_ALIGNMENT
#define LOCAL_ALIGNMENT(TYPE, ALIGNMENT) ALIGNMENT
@@ -129,9 +130,6 @@ struct machine_function * (*init_machine_status) (void);
/* The currently compiled function. */
struct function *cfun = 0;
-DEF_VEC_I(int);
-DEF_VEC_ALLOC_I(int,heap);
-
/* These arrays record the INSN_UIDs of the prologue and epilogue insns. */
static VEC(int,heap) *prologue;
static VEC(int,heap) *epilogue;
@@ -554,14 +552,18 @@ insert_slot_to_list (struct temp_slot *temp, struct temp_slot **list)
static struct temp_slot **
temp_slots_at_level (int level)
{
+ if (level >= (int) VEC_length (temp_slot_p, used_temp_slots))
+ {
+ size_t old_length = VEC_length (temp_slot_p, used_temp_slots);
+ temp_slot_p *p;
- if (!used_temp_slots)
- VARRAY_GENERIC_PTR_INIT (used_temp_slots, 3, "used_temp_slots");
-
- while (level >= (int) VARRAY_ACTIVE_SIZE (used_temp_slots))
- VARRAY_PUSH_GENERIC_PTR (used_temp_slots, NULL);
+ VEC_safe_grow (temp_slot_p, gc, used_temp_slots, level + 1);
+ p = VEC_address (temp_slot_p, used_temp_slots);
+ memset (&p[old_length], 0,
+ sizeof (temp_slot_p) * (level + 1 - old_length));
+ }
- return (struct temp_slot **) &VARRAY_GENERIC_PTR (used_temp_slots, level);
+ return &(VEC_address (temp_slot_p, used_temp_slots)[level]);
}
/* Returns the maximal temporary slot level. */
@@ -572,7 +574,7 @@ max_slot_level (void)
if (!used_temp_slots)
return -1;
- return VARRAY_ACTIVE_SIZE (used_temp_slots) - 1;
+ return VEC_length (temp_slot_p, used_temp_slots) - 1;
}
/* Moves temporary slot TEMP to LEVEL. */
@@ -5569,8 +5571,8 @@ reposition_prologue_and_epilogue_notes (void)
void
reset_block_changes (void)
{
- VARRAY_TREE_INIT (cfun->ib_boundaries_block, 100, "ib_boundaries_block");
- VARRAY_PUSH_TREE (cfun->ib_boundaries_block, NULL_TREE);
+ cfun->ib_boundaries_block = VEC_alloc (tree, gc, 100);
+ VEC_quick_push (tree, cfun->ib_boundaries_block, NULL_TREE);
}
/* Record the boundary for BLOCK. */
@@ -5586,13 +5588,12 @@ record_block_change (tree block)
if(!cfun->ib_boundaries_block)
return;
- last_block = VARRAY_TOP_TREE (cfun->ib_boundaries_block);
- VARRAY_POP (cfun->ib_boundaries_block);
+ last_block = VEC_pop (tree, cfun->ib_boundaries_block);
n = get_max_uid ();
- for (i = VARRAY_ACTIVE_SIZE (cfun->ib_boundaries_block); i < n; i++)
- VARRAY_PUSH_TREE (cfun->ib_boundaries_block, last_block);
+ for (i = VEC_length (tree, cfun->ib_boundaries_block); i < n; i++)
+ VEC_safe_push (tree, gc, cfun->ib_boundaries_block, last_block);
- VARRAY_PUSH_TREE (cfun->ib_boundaries_block, block);
+ VEC_safe_push (tree, gc, cfun->ib_boundaries_block, block);
}
/* Finishes record of boundaries. */
@@ -5607,17 +5608,17 @@ check_block_change (rtx insn, tree *block)
{
unsigned uid = INSN_UID (insn);
- if (uid >= VARRAY_ACTIVE_SIZE (cfun->ib_boundaries_block))
+ if (uid >= VEC_length (tree, cfun->ib_boundaries_block))
return;
- *block = VARRAY_TREE (cfun->ib_boundaries_block, uid);
+ *block = VEC_index (tree, cfun->ib_boundaries_block, uid);
}
/* Releases the ib_boundaries_block records. */
void
free_block_changes (void)
{
- cfun->ib_boundaries_block = NULL;
+ VEC_free (tree, gc, cfun->ib_boundaries_block);
}
/* Returns the name of the current function. */
@@ -5638,6 +5639,23 @@ rest_of_handle_check_leaf_regs (void)
return 0;
}
+/* Insert a type into the used types hash table. */
+void
+used_types_insert (tree t, struct function *func)
+{
+ if (t != NULL && func != NULL)
+ {
+ void **slot;
+
+ if (func->used_types_hash == NULL)
+ func->used_types_hash = htab_create_ggc (37, htab_hash_pointer,
+ htab_eq_pointer, NULL);
+ slot = htab_find_slot (func->used_types_hash, t, INSERT);
+ if (*slot == NULL)
+ *slot = t;
+ }
+}
+
struct tree_opt_pass pass_leaf_regs =
{
NULL, /* name */
diff --git a/gcc/function.h b/gcc/function.h
index ad0ecc3f521..fd0d65cf5c0 100644
--- a/gcc/function.h
+++ b/gcc/function.h
@@ -22,6 +22,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
#ifndef GCC_FUNCTION_H
#define GCC_FUNCTION_H
#include "tree.h"
+#include "hashtab.h"
struct var_refs_queue GTY(())
{
@@ -157,6 +158,12 @@ struct expr_status GTY(())
#define forced_labels (cfun->expr->x_forced_labels)
#define stack_pointer_delta (cfun->expr->x_stack_pointer_delta)
+struct temp_slot;
+typedef struct temp_slot *temp_slot_p;
+
+DEF_VEC_P(temp_slot_p);
+DEF_VEC_ALLOC_P(temp_slot_p,gc);
+
/* This structure can save all the important global and static variables
describing the status of the current function. */
@@ -264,7 +271,7 @@ struct function GTY(())
rtx x_parm_birth_insn;
/* List of all used temporaries allocated, by level. */
- struct varray_head_tag * GTY((param_is (struct temp_slot))) x_used_temp_slots;
+ VEC(temp_slot_p,gc) *x_used_temp_slots;
/* List of available temp slots. */
struct temp_slot *x_avail_temp_slots;
@@ -311,6 +318,9 @@ struct function GTY(())
/* Language-specific code can use this to store whatever it likes. */
struct language_function * language;
+ /* Used types hash table. */
+ htab_t GTY ((param_is (union tree_node))) used_types_hash;
+
/* For reorg. */
/* If some insns can be deferred to the delay slots of the epilogue, the
@@ -341,7 +351,7 @@ struct function GTY(())
location_t function_end_locus;
/* Array mapping insn uids to blocks. */
- struct varray_head_tag *ib_boundaries_block;
+ VEC(tree,gc) *ib_boundaries_block;
/* The variables unexpanded so far. */
tree unexpanded_var_list;
@@ -569,4 +579,6 @@ extern bool pass_by_reference (CUMULATIVE_ARGS *, enum machine_mode,
extern bool reference_callee_copied (CUMULATIVE_ARGS *, enum machine_mode,
tree, bool);
+extern void used_types_insert (tree, struct function *);
+
#endif /* GCC_FUNCTION_H */
diff --git a/gcc/gcc.c b/gcc/gcc.c
index c606773f42e..f23b5f3e97c 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -704,8 +704,8 @@ proper position among the other output files. */
%{!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) %{fopenmp:%:include(libgomp.spec)%(link_gomp)}\
- %(link_libgcc) %o %(mflib)\
+ %{static:} %{L*} %(mfwrap) %(link_libgcc) %o\
+ %{fopenmp:%:include(libgomp.spec)%(link_gomp)} %(mflib)\
%{fprofile-arcs|fprofile-generate|coverage:-lgcov}\
%{!nostdlib:%{!nodefaultlibs:%(link_gcc_math) %(link_ssp) %(link_gcc_c_sequence)}}\
%{!A:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} }}}}}}"
diff --git a/gcc/gcse.c b/gcc/gcse.c
index 2506a64502c..aed2c87596f 100644
--- a/gcc/gcse.c
+++ b/gcc/gcse.c
@@ -2642,7 +2642,7 @@ find_used_regs (rtx *xptr, void *data ATTRIBUTE_UNUSED)
static int
try_replace_reg (rtx from, rtx to, rtx insn)
{
- rtx note = find_reg_note (insn, REG_EQUAL, NULL);
+ rtx note = find_reg_equal_equiv_note (insn);
rtx src = 0;
int success = 0;
rtx set = single_set (insn);
@@ -2660,9 +2660,9 @@ try_replace_reg (rtx from, rtx to, rtx insn)
validate_change (insn, &SET_SRC (set), src, 0);
}
- /* If there is already a NOTE, update the expression in it with our
- replacement. */
- if (note != 0)
+ /* If there is already a REG_EQUAL note, update the expression in it
+ with our replacement. */
+ if (note != 0 && REG_NOTE_KIND (note) == REG_EQUAL)
XEXP (note, 0) = simplify_replace_rtx (XEXP (note, 0), from, to);
if (!success && set && reg_mentioned_p (from, SET_SRC (set)))
@@ -2689,7 +2689,7 @@ try_replace_reg (rtx from, rtx to, rtx insn)
We don't allow that. Remove that note. This code ought
not to happen, because previous code ought to synthesize
reg-reg move, but be on the safe side. */
- if (note && REG_P (XEXP (note, 0)))
+ if (note && REG_NOTE_KIND (note) == REG_EQUAL && REG_P (XEXP (note, 0)))
remove_note (insn, note);
return success;
diff --git a/gcc/genextract.c b/gcc/genextract.c
index 06ed44ac447..591a697deef 100644
--- a/gcc/genextract.c
+++ b/gcc/genextract.c
@@ -29,6 +29,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
#include "errors.h"
#include "gensupport.h"
#include "vec.h"
+#include "vecprim.h"
/* This structure contains all the information needed to describe one
set of extractions methods. Each method may be used by more than
@@ -69,11 +70,7 @@ static struct code_ptr *peepholes;
/* This structure is used by gen_insn and walk_rtx to accumulate the
data that will be used to produce an extractions structure. */
-DEF_VEC_I(int);
-DEF_VEC_I(char);
DEF_VEC_P(locstr);
-DEF_VEC_ALLOC_I(int,heap);
-DEF_VEC_ALLOC_I(char,heap);
DEF_VEC_ALLOC_P(locstr,heap);
struct accum_extract
diff --git a/gcc/gimple-low.c b/gcc/gimple-low.c
index 6de2b8f1855..ff6b8b27f30 100644
--- a/gcc/gimple-low.c
+++ b/gcc/gimple-low.c
@@ -159,14 +159,10 @@ lower_stmt_body (tree expr, struct lower_data *data)
static void
lower_omp_directive (tree_stmt_iterator *tsi, struct lower_data *data)
{
- tree clause, stmt;
+ tree stmt;
stmt = tsi_stmt (*tsi);
- clause = (TREE_CODE (stmt) >= OMP_PARALLEL && TREE_CODE (stmt) <= OMP_SINGLE)
- ? OMP_CLAUSES (stmt)
- : NULL_TREE;
-
lower_stmt_body (OMP_BODY (stmt), data);
tsi_link_before (tsi, stmt, TSI_SAME_STMT);
tsi_link_before (tsi, OMP_BODY (stmt), TSI_SAME_STMT);
@@ -216,10 +212,6 @@ lower_stmt (tree_stmt_iterator *tsi, struct lower_data *data)
case GOTO_EXPR:
case LABEL_EXPR:
case SWITCH_EXPR:
- case OMP_RETURN_EXPR:
- break;
-
- case OMP_PARALLEL:
case OMP_FOR:
case OMP_SECTIONS:
case OMP_SECTION:
@@ -227,6 +219,11 @@ lower_stmt (tree_stmt_iterator *tsi, struct lower_data *data)
case OMP_MASTER:
case OMP_ORDERED:
case OMP_CRITICAL:
+ case OMP_RETURN:
+ case OMP_CONTINUE:
+ break;
+
+ case OMP_PARALLEL:
lower_omp_directive (tsi, data);
return;
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index b9cd33f6090..3ee21d865af 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -5587,7 +5587,8 @@ gimplify_expr (tree *expr_p, tree *pre_p, tree *post_p,
ret = gimplify_omp_atomic (expr_p, pre_p);
break;
- case OMP_RETURN_EXPR:
+ case OMP_RETURN:
+ case OMP_CONTINUE:
ret = GS_ALL_DONE;
break;
diff --git a/gcc/global.c b/gcc/global.c
index ba26ebbfbaf..508577df410 100644
--- a/gcc/global.c
+++ b/gcc/global.c
@@ -39,6 +39,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
#include "tree-pass.h"
#include "timevar.h"
#include "df.h"
+#include "vecprim.h"
/* This pass of the compiler performs global register allocation.
It assigns hard register numbers to all the pseudo registers
diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c
index 009a331228a..772edf9fe50 100644
--- a/gcc/haifa-sched.c
+++ b/gcc/haifa-sched.c
@@ -1654,9 +1654,22 @@ queue_to_ready (struct ready_list *ready)
fprintf (sched_dump, ";;\t\tQ-->Ready: insn %s: ",
(*current_sched_info->print_insn) (insn, 0));
- ready_add (ready, insn, false);
- if (sched_verbose >= 2)
- fprintf (sched_dump, "moving to ready without stalls\n");
+ /* If the ready list is full, delay the insn for 1 cycle.
+ See the comment in schedule_block for the rationale. */
+ if (!reload_completed
+ && ready->n_ready > MAX_SCHED_READY_INSNS
+ && !SCHED_GROUP_P (insn))
+ {
+ if (sched_verbose >= 2)
+ fprintf (sched_dump, "requeued because ready full\n");
+ queue_insn (insn, 1);
+ }
+ else
+ {
+ ready_add (ready, insn, false);
+ if (sched_verbose >= 2)
+ fprintf (sched_dump, "moving to ready without stalls\n");
+ }
}
free_INSN_LIST_list (&insn_queue[q_ptr]);
@@ -2291,6 +2304,31 @@ schedule_block (struct df *df, basic_block *target_bb, int rgn_n_insns1)
in try_ready () (which is called through init_ready_list ()). */
(*current_sched_info->init_ready_list) ();
+ /* The algorithm is O(n^2) in the number of ready insns at any given
+ time in the worst case. Before reload we are more likely to have
+ big lists so truncate them to a reasonable size. */
+ if (!reload_completed && ready.n_ready > MAX_SCHED_READY_INSNS)
+ {
+ ready_sort (&ready);
+
+ /* Find first free-standing insn past MAX_SCHED_READY_INSNS. */
+ for (i = MAX_SCHED_READY_INSNS; i < ready.n_ready; i++)
+ if (!SCHED_GROUP_P (ready_element (&ready, i)))
+ break;
+
+ if (sched_verbose >= 2)
+ {
+ fprintf (sched_dump,
+ ";;\t\tReady list on entry: %d insns\n", ready.n_ready);
+ fprintf (sched_dump,
+ ";;\t\t before reload => truncated to %d insns\n", i);
+ }
+
+ /* Delay all insns past it for 1 cycle. */
+ while (i < ready.n_ready)
+ queue_insn (ready_remove (&ready, i), 1);
+ }
+
/* Now we can restore basic block notes and maintain precise cfg. */
restore_bb_notes (*target_bb);
diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c
index 4449d0397a1..d849d213deb 100644
--- a/gcc/ifcvt.c
+++ b/gcc/ifcvt.c
@@ -701,47 +701,76 @@ noce_emit_move_insn (rtx x, rtx y)
end_sequence();
if (recog_memoized (insn) <= 0)
- switch (GET_RTX_CLASS (GET_CODE (y)))
- {
- case RTX_UNARY:
- ot = code_to_optab[GET_CODE (y)];
- if (ot)
- {
- start_sequence ();
- target = expand_unop (GET_MODE (y), ot, XEXP (y, 0), x, 0);
- if (target != NULL_RTX)
- {
- if (target != x)
- emit_move_insn (x, target);
- seq = get_insns ();
- }
- end_sequence ();
- }
- break;
-
- case RTX_BIN_ARITH:
- case RTX_COMM_ARITH:
- ot = code_to_optab[GET_CODE (y)];
- if (ot)
- {
- start_sequence ();
- target = expand_binop (GET_MODE (y), ot,
- XEXP (y, 0), XEXP (y, 1),
- x, 0, OPTAB_DIRECT);
- if (target != NULL_RTX)
- {
- if (target != x)
- emit_move_insn (x, target);
- seq = get_insns ();
- }
- end_sequence ();
- }
- break;
+ {
+ if (GET_CODE (x) == ZERO_EXTRACT)
+ {
+ rtx op = XEXP (x, 0);
+ unsigned HOST_WIDE_INT size = INTVAL (XEXP (x, 1));
+ unsigned HOST_WIDE_INT start = INTVAL (XEXP (x, 2));
+
+ /* store_bit_field expects START to be relative to
+ BYTES_BIG_ENDIAN and adjusts this value for machines with
+ BITS_BIG_ENDIAN != BYTES_BIG_ENDIAN. In order to be able to
+ invoke store_bit_field again it is necessary to have the START
+ value from the first call. */
+ if (BITS_BIG_ENDIAN != BYTES_BIG_ENDIAN)
+ {
+ if (MEM_P (op))
+ start = BITS_PER_UNIT - start - size;
+ else
+ {
+ gcc_assert (REG_P (op));
+ start = BITS_PER_WORD - start - size;
+ }
+ }
- default:
- break;
- }
+ gcc_assert (start < (MEM_P (op) ? BITS_PER_UNIT : BITS_PER_WORD));
+ store_bit_field (op, size, start, GET_MODE (x), y);
+ return;
+ }
+ switch (GET_RTX_CLASS (GET_CODE (y)))
+ {
+ case RTX_UNARY:
+ ot = code_to_optab[GET_CODE (y)];
+ if (ot)
+ {
+ start_sequence ();
+ target = expand_unop (GET_MODE (y), ot, XEXP (y, 0), x, 0);
+ if (target != NULL_RTX)
+ {
+ if (target != x)
+ emit_move_insn (x, target);
+ seq = get_insns ();
+ }
+ end_sequence ();
+ }
+ break;
+
+ case RTX_BIN_ARITH:
+ case RTX_COMM_ARITH:
+ ot = code_to_optab[GET_CODE (y)];
+ if (ot)
+ {
+ start_sequence ();
+ target = expand_binop (GET_MODE (y), ot,
+ XEXP (y, 0), XEXP (y, 1),
+ x, 0, OPTAB_DIRECT);
+ if (target != NULL_RTX)
+ {
+ if (target != x)
+ emit_move_insn (x, target);
+ seq = get_insns ();
+ }
+ end_sequence ();
+ }
+ break;
+
+ default:
+ break;
+ }
+ }
+
emit_insn (seq);
return;
}
@@ -2230,6 +2259,12 @@ noce_process_if_block (struct df *df, bitmap modified, struct ce_if_block * ce_i
{
if (no_new_pseudos || GET_MODE (x) == BLKmode)
return FALSE;
+
+ if (GET_MODE (x) == ZERO_EXTRACT
+ && (GET_CODE (XEXP (x, 1)) != CONST_INT
+ || GET_CODE (XEXP (x, 2)) != CONST_INT))
+ return FALSE;
+
x = gen_reg_rtx (GET_MODE (GET_CODE (x) == STRICT_LOW_PART
? XEXP (x, 0) : x));
}
diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c
index 898d95e8212..3837bfdc97a 100644
--- a/gcc/ipa-cp.c
+++ b/gcc/ipa-cp.c
@@ -1005,7 +1005,8 @@ ipcp_insert_stage (void)
struct cgraph_node *node, *node1 = NULL;
int i, const_param;
union parameter_info *cvalue;
- varray_type redirect_callers, replace_trees;
+ VEC(cgraph_edge_p,heap) *redirect_callers;
+ varray_type replace_trees;
struct cgraph_edge *cs;
int node_callers, count;
tree parm_tree;
@@ -1045,15 +1046,14 @@ ipcp_insert_stage (void)
node_callers = 0;
for (cs = node->callers; cs != NULL; cs = cs->next_caller)
node_callers++;
- VARRAY_GENERIC_PTR_INIT (redirect_callers, node_callers,
- "redirect_callers");
+ redirect_callers = VEC_alloc (cgraph_edge_p, heap, node_callers);
for (cs = node->callers; cs != NULL; cs = cs->next_caller)
- VARRAY_PUSH_GENERIC_PTR (redirect_callers, cs);
+ VEC_quick_push (cgraph_edge_p, redirect_callers, cs);
/* Redirecting all the callers of the node to the
new versioned node. */
node1 =
cgraph_function_versioning (node, redirect_callers, replace_trees);
- VARRAY_CLEAR (redirect_callers);
+ VEC_free (cgraph_edge_p, heap, redirect_callers);
VARRAY_CLEAR (replace_trees);
if (node1 == NULL)
continue;
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index fe19f2c8e51..2ce57c0fdc1 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,23 @@
+2006-04-21 Andrew Haley <aph@redhat.com>
+
+ * lang.c (java_init): Handle flag_indirect_classes.
+ * jvgenmain.c: Use "class$$" instead of "class$".
+ * mangle.c (java_mangle_decl): Accept RECORD_TYPEs sw well as
+ DECLs.
+ (mangle_class_field): Special case "class$$" as well as "class$".
+ * constants.c (build_ref_from_constant_pool): If
+ flag_indirect_classes, generate a ref into the heap.
+ * decl.c (constants_field_decl_node,
+ constants_data_field_decl_node): New.
+ * class.c (build_static_class_ref): New.
+ (build_classdollar_field): Factor out from build_class_ref().
+ (make_field_value): Handle static fields in heap.
+ (make_class_data): Make sure we get a static ref to class.
+ Make class initializer const if flag_indirect_classes.
+ (register_class): Build a class_ref for initialization if
+ flag_indirect_classes.
+ (emit_indirect_register_classes): New.
+
2006-04-08 Kazu Hirata <kazu@codesourcery.com>
* expr.c, gjavah.c: Fix comment typos.
diff --git a/gcc/java/class.c b/gcc/java/class.c
index a6074518f59..fe52e67d4ac 100644
--- a/gcc/java/class.c
+++ b/gcc/java/class.c
@@ -953,6 +953,71 @@ build_indirect_class_ref (tree type)
return convert (promote_type (class_ptr_type), cl);
}
+static tree
+build_static_class_ref (tree type)
+{
+ tree decl_name, decl, ref;
+
+ if (TYPE_SIZE (type) == error_mark_node)
+ return null_pointer_node;
+ decl_name = identifier_subst (DECL_NAME (TYPE_NAME (type)),
+ "", '/', '/', ".class$$");
+ decl = IDENTIFIER_GLOBAL_VALUE (decl_name);
+ if (decl == NULL_TREE)
+ {
+ decl = build_decl (VAR_DECL, decl_name, class_type_node);
+ TREE_STATIC (decl) = 1;
+ if (! flag_indirect_classes)
+ TREE_PUBLIC (decl) = 1;
+ DECL_IGNORED_P (decl) = 1;
+ DECL_ARTIFICIAL (decl) = 1;
+ if (is_compiled_class (type) == 1)
+ DECL_EXTERNAL (decl) = 1;
+ MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC (decl);
+ DECL_CLASS_FIELD_P (decl) = 1;
+ DECL_CONTEXT (decl) = type;
+
+ /* ??? We want to preserve the DECL_CONTEXT we set just above,
+ that that means not calling pushdecl_top_level. */
+ IDENTIFIER_GLOBAL_VALUE (decl_name) = decl;
+ }
+
+ ref = build1 (ADDR_EXPR, class_ptr_type, decl);
+ return ref;
+}
+
+static tree
+build_classdollar_field (tree type)
+{
+ tree decl_name = identifier_subst (DECL_NAME (TYPE_NAME (type)),
+ "", '/', '/', ".class$");
+ tree decl = IDENTIFIER_GLOBAL_VALUE (decl_name);
+
+ if (decl == NULL_TREE)
+ {
+ decl
+ = build_decl (VAR_DECL, decl_name,
+ (build_type_variant
+ (build_pointer_type
+ (build_type_variant (class_type_node,
+ /* const */ 1, 0)),
+ /* const */ 1, 0)));
+ TREE_STATIC (decl) = 1;
+ TREE_INVARIANT (decl) = 1;
+ TREE_CONSTANT (decl) = 1;
+ TREE_READONLY (decl) = 1;
+ TREE_PUBLIC (decl) = 1;
+ DECL_IGNORED_P (decl) = 1;
+ DECL_ARTIFICIAL (decl) = 1;
+ MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC (decl);
+ IDENTIFIER_GLOBAL_VALUE (decl_name) = decl;
+ DECL_CLASS_FIELD_P (decl) = 1;
+ DECL_CONTEXT (decl) = type;
+ }
+
+ return decl;
+}
+
/* Build a reference to the class TYPE.
Also handles primitive types and array types. */
@@ -962,7 +1027,7 @@ build_class_ref (tree type)
int is_compiled = is_compiled_class (type);
if (is_compiled)
{
- tree ref, decl_name, decl;
+ tree ref, decl;
if (TREE_CODE (type) == POINTER_TYPE)
type = TREE_TYPE (type);
@@ -971,34 +1036,15 @@ build_class_ref (tree type)
&& TREE_CODE (type) == RECORD_TYPE)
return build_indirect_class_ref (type);
+ if (type == output_class && flag_indirect_classes)
+ return build_classdollar_field (type);
+
if (TREE_CODE (type) == RECORD_TYPE)
- {
- if (TYPE_SIZE (type) == error_mark_node)
- return null_pointer_node;
- decl_name = identifier_subst (DECL_NAME (TYPE_NAME (type)),
- "", '/', '/', ".class");
- decl = IDENTIFIER_GLOBAL_VALUE (decl_name);
- if (decl == NULL_TREE)
- {
- decl = build_decl (VAR_DECL, decl_name, class_type_node);
- TREE_STATIC (decl) = 1;
- TREE_PUBLIC (decl) = 1;
- DECL_IGNORED_P (decl) = 1;
- DECL_ARTIFICIAL (decl) = 1;
- if (is_compiled == 1)
- DECL_EXTERNAL (decl) = 1;
- MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC (decl);
- DECL_CLASS_FIELD_P (decl) = 1;
- DECL_CONTEXT (decl) = type;
-
- /* ??? We want to preserve the DECL_CONTEXT we set just above,
- that that means not calling pushdecl_top_level. */
- IDENTIFIER_GLOBAL_VALUE (decl_name) = decl;
- }
- }
+ return build_static_class_ref (type);
else
{
const char *name;
+ tree decl_name;
char buffer[25];
if (flag_emit_class_files)
{
@@ -1296,16 +1342,22 @@ make_field_value (tree fdecl)
PUSH_FIELD_VALUE (finit, "accflags", build_int_cst (NULL_TREE, flags));
PUSH_FIELD_VALUE (finit, "bsize", TYPE_SIZE_UNIT (TREE_TYPE (fdecl)));
- PUSH_FIELD_VALUE
- (finit, "info",
- build_constructor_from_list (field_info_union_node,
- build_tree_list
- ((FIELD_STATIC (fdecl)
- ? TREE_CHAIN (TYPE_FIELDS (field_info_union_node))
- : TYPE_FIELDS (field_info_union_node)),
- (FIELD_STATIC (fdecl)
- ? build_address_of (fdecl)
- : byte_position (fdecl)))));
+ {
+ tree field_address = integer_zero_node;
+ if (! flag_indirect_classes && FIELD_STATIC (fdecl))
+ field_address = build_address_of (fdecl);
+
+ PUSH_FIELD_VALUE
+ (finit, "info",
+ build_constructor_from_list (field_info_union_node,
+ build_tree_list
+ ((FIELD_STATIC (fdecl)
+ ? TREE_CHAIN (TYPE_FIELDS (field_info_union_node))
+ : TYPE_FIELDS (field_info_union_node)),
+ (FIELD_STATIC (fdecl)
+ ? field_address
+ : byte_position (fdecl)))));
+ }
FINISH_RECORD_CONSTRUCTOR (finit);
return finit;
@@ -1599,7 +1651,7 @@ make_class_data (tree type)
tree dtable_start_offset = build_int_cst (NULL_TREE,
2 * POINTER_SIZE / BITS_PER_UNIT);
- this_class_addr = build_class_ref (type);
+ this_class_addr = build_static_class_ref (type);
decl = TREE_OPERAND (this_class_addr, 0);
if (supers_all_compiled (type) && ! CLASS_INTERFACE (type_decl)
@@ -1613,7 +1665,8 @@ make_class_data (tree type)
DECL_ARTIFICIAL (dtable_decl) = 1;
DECL_IGNORED_P (dtable_decl) = 1;
TREE_PUBLIC (dtable_decl) = 1;
- rest_of_decl_compilation (dtable_decl, 1, 0);
+ if (! flag_indirect_classes)
+ rest_of_decl_compilation (dtable_decl, 1, 0);
if (type == class_type_node)
class_dtable_decl = dtable_decl;
}
@@ -1958,8 +2011,21 @@ make_class_data (tree type)
if (flag_hash_synchronization && POINTER_SIZE < 64)
DECL_ALIGN (decl) = 64;
+ if (flag_indirect_classes)
+ {
+ TREE_READONLY (decl) = 1;
+ TREE_CONSTANT (DECL_INITIAL (decl)) = 1;
+ }
+
rest_of_decl_compilation (decl, 1, 0);
+ {
+ tree classdollar_field = build_classdollar_field (type);
+ if (!flag_indirect_classes)
+ DECL_INITIAL (classdollar_field) = build_static_class_ref (type);
+ rest_of_decl_compilation (classdollar_field, 1, 0);
+ }
+
TYPE_OTABLE_DECL (type) = NULL_TREE;
TYPE_ATABLE_DECL (type) = NULL_TREE;
TYPE_CTABLE_DECL (type) = NULL_TREE;
@@ -2465,10 +2531,65 @@ register_class (void)
if (!registered_class)
registered_class = VEC_alloc (tree, gc, 8);
- node = TREE_OPERAND (build_class_ref (current_class), 0);
+ if (flag_indirect_classes)
+ node = current_class;
+ else
+ node = TREE_OPERAND (build_class_ref (current_class), 0);
VEC_safe_push (tree, gc, registered_class, node);
}
+/* Emit a function that calls _Jv_NewClassFromInitializer for every
+ class. */
+
+static void
+emit_indirect_register_classes (tree *list_p)
+{
+ tree klass, t, register_class_fn;
+ int i;
+
+ tree init = NULL_TREE;
+ int size = VEC_length (tree, registered_class) * 2 + 1;
+ tree class_array_type
+ = build_prim_array_type (ptr_type_node, size);
+ tree cdecl = build_decl (VAR_DECL, get_identifier ("_Jv_CLS"),
+ class_array_type);
+ tree reg_class_list;
+ for (i = 0; VEC_iterate (tree, registered_class, i, klass); ++i)
+ {
+ init = tree_cons (NULL_TREE,
+ fold_convert (ptr_type_node,
+ build_static_class_ref (klass)), init);
+ init = tree_cons
+ (NULL_TREE,
+ fold_convert (ptr_type_node,
+ build_address_of (build_classdollar_field (klass))),
+ init);
+ }
+ init = tree_cons (NULL_TREE, integer_zero_node, init);
+ DECL_INITIAL (cdecl) = build_constructor_from_list (class_array_type,
+ nreverse (init));
+ TREE_CONSTANT (DECL_INITIAL (cdecl)) = 1;
+ TREE_STATIC (cdecl) = 1;
+ DECL_ARTIFICIAL (cdecl) = 1;
+ DECL_IGNORED_P (cdecl) = 1;
+ TREE_READONLY (cdecl) = 1;
+ TREE_CONSTANT (cdecl) = 1;
+ rest_of_decl_compilation (cdecl, 1, 0);
+ reg_class_list = fold_convert (ptr_type_node, build_address_of (cdecl));
+
+ t = build_function_type_list (void_type_node,
+ build_pointer_type (ptr_type_node), NULL);
+ t = build_decl (FUNCTION_DECL,
+ get_identifier ("_Jv_RegisterNewClasses"), t);
+ TREE_PUBLIC (t) = 1;
+ DECL_EXTERNAL (t) = 1;
+ register_class_fn = t;
+ t = tree_cons (NULL, reg_class_list, NULL);
+ t = build_function_call_expr (register_class_fn, t);
+ append_to_statement_list (t, list_p);
+}
+
+
/* Emit something to register classes at start-up time.
The preferred mechanism is through the .jcr section, which contain
@@ -2485,6 +2606,12 @@ emit_register_classes (tree *list_p)
if (registered_class == NULL)
return;
+ if (flag_indirect_classes)
+ {
+ emit_indirect_register_classes (list_p);
+ return;
+ }
+
/* TARGET_USE_JCR_SECTION defaults to 1 if SUPPORTS_WEAK and
TARGET_ASM_NAMED_SECTION, else 0. Some targets meet those conditions
but lack suitable crtbegin/end objects or linker support. These
diff --git a/gcc/java/constants.c b/gcc/java/constants.c
index 5d2f6785356..2f4c0530035 100644
--- a/gcc/java/constants.c
+++ b/gcc/java/constants.c
@@ -458,8 +458,29 @@ build_ref_from_constant_pool (int index)
{
tree d = build_constant_data_ref ();
tree i = build_int_cst (NULL_TREE, index);
- return build4 (ARRAY_REF, TREE_TYPE (TREE_TYPE (d)), d, i,
+ if (flag_indirect_classes)
+ {
+ tree decl = build_class_ref (output_class);
+ tree klass = build1 (INDIRECT_REF, TREE_TYPE (TREE_TYPE (decl)),
+ decl);
+ tree constants = build3 (COMPONENT_REF,
+ TREE_TYPE (constants_field_decl_node), klass,
+ constants_field_decl_node,
+ NULL_TREE);
+ tree data = build3 (COMPONENT_REF,
+ TREE_TYPE (constants_data_field_decl_node),
+ constants,
+ constants_data_field_decl_node,
+ NULL_TREE);
+ data = fold_convert (build_pointer_type (TREE_TYPE (d)), data);
+ d = build1 (INDIRECT_REF, TREE_TYPE (d), data);
+ /* FIXME: These should be cached. */
+ TREE_INVARIANT (d) = 1;
+ }
+ d = build4 (ARRAY_REF, TREE_TYPE (TREE_TYPE (d)), d, i,
NULL_TREE, NULL_TREE);
+ TREE_INVARIANT (d) = 1;
+ return d;
}
/* Build an initializer for the constants field of the current constant pool.
diff --git a/gcc/java/decl.c b/gcc/java/decl.c
index 06da90bff73..a16c49b7c4b 100644
--- a/gcc/java/decl.c
+++ b/gcc/java/decl.c
@@ -123,6 +123,12 @@ static GTY(()) tree pending_local_decls;
/* The decl for "_Jv_ResolvePoolEntry". */
tree soft_resolvepoolentry_node;
+/* The decl for the .constants field of an instance of Class. */
+tree constants_field_decl_node;
+
+/* The decl for the .data field of an instance of Class. */
+tree constants_data_field_decl_node;
+
#if defined(DEBUG_JAVA_BINDING_LEVELS)
int binding_depth = 0;
int is_class_level = 0;
@@ -883,6 +889,7 @@ java_init_decl_processing (void)
PUSH_FIELD (constants_type_node, field, "size", unsigned_int_type_node);
PUSH_FIELD (constants_type_node, field, "tags", ptr_type_node);
PUSH_FIELD (constants_type_node, field, "data", ptr_type_node);
+ constants_data_field_decl_node = field;
FINISH_RECORD (constants_type_node);
build_decl (TYPE_DECL, get_identifier ("constants"), constants_type_node);
@@ -924,6 +931,7 @@ java_init_decl_processing (void)
PUSH_FIELD (class_type_node, field, "accflags", access_flags_type_node);
PUSH_FIELD (class_type_node, field, "superclass", class_ptr_type);
PUSH_FIELD (class_type_node, field, "constants", constants_type_node);
+ constants_field_decl_node = field;
PUSH_FIELD (class_type_node, field, "methods", method_ptr_type_node);
PUSH_FIELD (class_type_node, field, "method_count", short_type_node);
PUSH_FIELD (class_type_node, field, "vtable_method_count", short_type_node);
diff --git a/gcc/java/java-tree.h b/gcc/java/java-tree.h
index 18e1ce6006f..03a7ea2c142 100644
--- a/gcc/java/java-tree.h
+++ b/gcc/java/java-tree.h
@@ -208,6 +208,9 @@ extern int flag_check_references;
initialization optimization should be performed. */
extern int flag_optimize_sci;
+/* Generate instances of Class at runtime. */
+extern int flag_indirect_classes;
+
/* When nonzero, use offset tables for virtual method calls
in order to improve binary compatibility. */
extern int flag_indirect_dispatch;
@@ -270,6 +273,12 @@ extern GTY(()) tree java_lang_cloneable_identifier_node;
extern GTY(()) tree java_io_serializable_identifier_node;
extern GTY(()) tree gcj_abi_version;
+/* The decl for the .constants field of an instance of Class. */
+extern GTY(()) tree constants_field_decl_node;
+
+/* The decl for the .data field of an instance of Class. */
+extern GTY(()) tree constants_data_field_decl_node;
+
enum java_tree_index
{
JTI_PROMOTED_BYTE_TYPE_NODE,
diff --git a/gcc/java/jvgenmain.c b/gcc/java/jvgenmain.c
index f3402798e55..e0cddc0d4d5 100644
--- a/gcc/java/jvgenmain.c
+++ b/gcc/java/jvgenmain.c
@@ -127,11 +127,11 @@ main (int argc, char **argv)
}
fprintf (stream, " 0\n};\n\n");
- fprintf (stream, "extern int %s;\n", mangled_classname);
fprintf (stream, "int main (int argc, const char **argv)\n");
fprintf (stream, "{\n");
fprintf (stream, " _Jv_Compiler_Properties = props;\n");
- fprintf (stream, " JvRunMain (&%s, argc, argv);\n", mangled_classname);
+ fprintf (stream, " extern void *%s;\n", mangled_classname);
+ fprintf (stream, " JvRunMain (%s, argc, argv);\n", mangled_classname);
fprintf (stream, "}\n");
if (stream != stdout && fclose (stream) != 0)
{
@@ -153,16 +153,16 @@ do_mangle_classname (const char *string)
for (ptr = string; *ptr; ptr++ )
{
- if (ptr[0] == '.')
+ if (*ptr == '.')
{
- append_gpp_mangled_name (&ptr [-count], count);
+ append_gpp_mangled_name (ptr - count, count);
count = 0;
}
else
count++;
}
append_gpp_mangled_name (&ptr [-count], count);
- obstack_grow (mangle_obstack, "6class$E", 8);
+ obstack_grow (mangle_obstack, "7class$$E", strlen ("7class$$E"));
obstack_1grow (mangle_obstack, '\0');
return obstack_finish (mangle_obstack);
}
diff --git a/gcc/java/lang.c b/gcc/java/lang.c
index 58f23e9e0e5..6344c3c8707 100644
--- a/gcc/java/lang.c
+++ b/gcc/java/lang.c
@@ -368,6 +368,9 @@ java_init (void)
if (flag_indirect_dispatch)
always_initialize_class_p = true;
+ if (!flag_indirect_dispatch)
+ flag_indirect_classes = false;
+
/* Force minimum function alignment if g++ uses the least significant
bit of function pointers to store the virtual bit. This is required
to keep vtables compatible. */
diff --git a/gcc/java/lang.opt b/gcc/java/lang.opt
index 6ffb0aadbd1..80b920260f6 100644
--- a/gcc/java/lang.opt
+++ b/gcc/java/lang.opt
@@ -146,6 +146,10 @@ fhash-synchronization
Java Var(flag_hash_synchronization)
Assume the runtime uses a hash table to map an object to its synchronization structure
+findirect-classes
+Java Var(flag_indirect_classes) Init(1)
+Generate instances of Class at runtime
+
findirect-dispatch
Java Var(flag_indirect_dispatch)
Use offset tables for virtual method calls
diff --git a/gcc/java/mangle.c b/gcc/java/mangle.c
index a99bfe5b56c..0fe5220b5b2 100644
--- a/gcc/java/mangle.c
+++ b/gcc/java/mangle.c
@@ -79,6 +79,9 @@ static GTY(()) tree atms;
void
java_mangle_decl (tree decl)
{
+ if (TREE_CODE (decl) == RECORD_TYPE)
+ mangle_type (decl);
+
/* A copy of the check from the beginning of lhd_set_decl_assembler_name.
Only FUNCTION_DECLs and VAR_DECLs for variables with static storage
duration need a real DECL_ASSEMBLER_NAME. */
@@ -99,7 +102,7 @@ java_mangle_decl (tree decl)
{
if (DECL_CLASS_FIELD_P (decl))
{
- mangle_class_field (DECL_CONTEXT (decl));
+ mangle_class_field (decl);
break;
}
else if (DECL_VTABLE_P (decl))
@@ -130,10 +133,14 @@ java_mangle_decl (tree decl)
/* Beginning of the helper functions */
static void
-mangle_class_field (tree type)
+mangle_class_field (tree decl)
{
+ tree type = DECL_CONTEXT (decl);
mangle_record_type (type, /* for_pointer = */ 0);
- MANGLE_RAW_STRING ("6class$");
+ if (TREE_CODE (TREE_TYPE (decl)) == RECORD_TYPE)
+ MANGLE_RAW_STRING ("6class$");
+ else
+ MANGLE_RAW_STRING ("7class$$");
obstack_1grow (mangle_obstack, 'E');
}
@@ -229,7 +236,7 @@ mangle_member_name (tree name)
append_gpp_mangled_name (IDENTIFIER_POINTER (name),
IDENTIFIER_LENGTH (name));
- /* If NAME happens to be a C++ keyword, add `$'. */
+ /* If NAME happens to be a C++ keyword, add `$'. */
if (cxx_keyword_p (IDENTIFIER_POINTER (name), IDENTIFIER_LENGTH (name)))
obstack_1grow (mangle_obstack, '$');
}
diff --git a/gcc/jump.c b/gcc/jump.c
index b60c2840720..b0873941620 100644
--- a/gcc/jump.c
+++ b/gcc/jump.c
@@ -21,7 +21,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA. */
/* This is the pathetic reminder of old fame of the jump-optimization pass
- of the compiler. Now it contains basically set of utility function to
+ of the compiler. Now it contains basically a set of utility functions to
operate with jumps.
Each CODE_LABEL has a count of the times it is used
diff --git a/gcc/lambda-code.c b/gcc/lambda-code.c
index 8c8b1e5f342..bf00c053d95 100644
--- a/gcc/lambda-code.c
+++ b/gcc/lambda-code.c
@@ -41,6 +41,7 @@
#include "tree-scalar-evolution.h"
#include "vec.h"
#include "lambda.h"
+#include "vecprim.h"
/* This loop nest code generation is based on non-singular matrix
math.
@@ -114,9 +115,6 @@
Fourier-Motzkin elimination is used to compute the bounds of the base space
of the lattice. */
-DEF_VEC_I(int);
-DEF_VEC_ALLOC_I(int,heap);
-
static bool perfect_nestify (struct loops *,
struct loop *, VEC(tree,heap) *,
VEC(tree,heap) *, VEC(int,heap) *,
diff --git a/gcc/local-alloc.c b/gcc/local-alloc.c
index 0add9b3b1f5..b6df0fc4433 100644
--- a/gcc/local-alloc.c
+++ b/gcc/local-alloc.c
@@ -2510,8 +2510,10 @@ rest_of_handle_local_alloc (void)
allocate_reg_info (max_regno, FALSE, TRUE);
/* And the reg_equiv_memory_loc array. */
- VARRAY_GROW (reg_equiv_memory_loc_varray, max_regno);
- reg_equiv_memory_loc = &VARRAY_RTX (reg_equiv_memory_loc_varray, 0);
+ VEC_safe_grow (rtx, gc, reg_equiv_memory_loc_vec, max_regno);
+ memset (VEC_address (rtx, reg_equiv_memory_loc_vec), 0,
+ sizeof (rtx) * max_regno);
+ reg_equiv_memory_loc = VEC_address (rtx, reg_equiv_memory_loc_vec);
allocate_initial_values (reg_equiv_memory_loc);
diff --git a/gcc/mips-tfile.c b/gcc/mips-tfile.c
index 3d998f4e571..7530ac7c64e 100644
--- a/gcc/mips-tfile.c
+++ b/gcc/mips-tfile.c
@@ -4363,7 +4363,7 @@ copy_object (void)
/* Read in each of the sections if they exist in the object file.
- We read things in in the order the mips assembler creates the
+ We read things in the order the mips assembler creates the
sections, so in theory no extra seeks are done.
For simplicity sake, round each read up to a page boundary,
diff --git a/gcc/mklibgcc.in b/gcc/mklibgcc.in
index 8ec9e4037b1..bf320d9e553 100644
--- a/gcc/mklibgcc.in
+++ b/gcc/mklibgcc.in
@@ -11,6 +11,7 @@
# objext
# LIB1ASMFUNCS
# LIB2FUNCS_ST
+# LIB2FUNCS_EXCLUDE
# LIBGCOV
# LIB2ADD
# LIB2ADD_ST
@@ -158,8 +159,9 @@ else
fi
# Remove any objects from lib2funcs and LIB2_DIVMOD_FUNCS that are
-# defined as optimized assembly code in LIB1ASMFUNCS.
-for name in $LIB1ASMFUNCS; do
+# defined as optimized assembly code in LIB1ASMFUNCS or as C code
+# in LIB2FUNCS_EXCLUDE.
+for name in $LIB1ASMFUNCS $LIB2FUNCS_EXCLUDE; do
lib2funcs=`echo $lib2funcs | sed -e 's/^'$name' //' \
-e 's/ '$name' / /' \
-e 's/ '$name'$//'`
diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index 41b4093e692..bcc3650c26a 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -54,40 +54,6 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
scanned for parallel regions which are then moved to a new
function, to be invoked by the thread library. */
-/* Parallel region information. Every parallel and workshare
- directive is enclosed between two markers, the OMP_* directive
- and a corresponding OMP_RETURN_EXPR statement. */
-
-struct omp_region GTY(())
-{
- /* The enclosing region. */
- struct omp_region *outer;
-
- /* First child region. */
- struct omp_region *inner;
-
- /* Next peer region. */
- struct omp_region *next;
-
- /* Entry point to this region. */
- tree entry;
-
- /* Exit label from this region. */
- tree exit;
-
- /* Region number. */
- int num;
-
- /* True if this is a combined parallel+workshare region. */
- bool is_combined_parallel;
-
- /* If this is a combined parallel+workshare region, this is a list
- of additional arguments needed by the combined parallel+workshare
- library call. */
- tree ws_args;
-};
-
-
/* Context structure. Used to store information about each parallel
directive in the code. */
@@ -142,8 +108,7 @@ struct omp_for_data
static splay_tree all_contexts;
static int parallel_nesting_level;
-static splay_tree omp_regions;
-static struct omp_region *root_omp_region;
+struct omp_region *root_omp_region;
static void scan_omp (tree *, omp_context *);
static void lower_omp (tree *, omp_context *);
@@ -402,24 +367,25 @@ determine_parallel_type (struct omp_region *region)
return;
/* We only support parallel+for and parallel+sections. */
- if (TREE_CODE (region->entry) != OMP_PARALLEL
- || (TREE_CODE (region->inner->entry) != OMP_FOR
- && TREE_CODE (region->inner->entry) != OMP_SECTIONS))
+ if (region->type != OMP_PARALLEL
+ || (region->inner->type != OMP_FOR
+ && region->inner->type != OMP_SECTIONS))
return;
/* Check for perfect nesting PAR_ENTRY_BB -> WS_ENTRY_BB and
WS_EXIT_BB -> PAR_EXIT_BB. */
- par_entry_bb = bb_for_stmt (region->entry);
- par_exit_bb = bb_for_stmt (region->exit);
-
- ws_entry_bb = bb_for_stmt (region->inner->entry);
- ws_exit_bb = bb_for_stmt (region->inner->exit);
+ par_entry_bb = region->entry;
+ par_exit_bb = region->exit;
+ ws_entry_bb = region->inner->entry;
+ ws_exit_bb = region->inner->exit;
if (single_succ (par_entry_bb) == ws_entry_bb
&& single_succ (ws_exit_bb) == par_exit_bb
&& workshare_safe_to_combine_p (par_entry_bb, ws_entry_bb))
{
- if (TREE_CODE (region->inner->entry) == OMP_FOR)
+ tree ws_stmt = last_stmt (region->inner->entry);
+
+ if (region->inner->type == OMP_FOR)
{
/* If this is a combined parallel loop, we need to determine
whether or not to use the combined library calls. There
@@ -430,7 +396,7 @@ determine_parallel_type (struct omp_region *region)
parallel loop call would still need extra synchronization
to implement ordered semantics, so there would not be any
gain in using the combined call. */
- tree clauses = OMP_FOR_CLAUSES (region->inner->entry);
+ tree clauses = OMP_FOR_CLAUSES (ws_stmt);
tree c = find_omp_clause (clauses, OMP_CLAUSE_SCHEDULE);
if (c == NULL
|| OMP_CLAUSE_SCHEDULE_KIND (c) == OMP_CLAUSE_SCHEDULE_STATIC
@@ -444,7 +410,7 @@ determine_parallel_type (struct omp_region *region)
region->is_combined_parallel = true;
region->inner->is_combined_parallel = true;
- region->ws_args = get_ws_args_for (region->inner->entry);
+ region->ws_args = get_ws_args_for (ws_stmt);
}
}
@@ -735,14 +701,6 @@ omp_copy_decl (tree var, copy_body_data *cb)
/* Return the parallel region associated with STMT. */
-static inline struct omp_region *
-lookup_omp_region (tree stmt)
-{
- splay_tree_node n = splay_tree_lookup (omp_regions, (splay_tree_key) stmt);
- return n ? (struct omp_region *) n->value : NULL;
-}
-
-
/* Debugging dumps for parallel regions. */
void dump_omp_region (FILE *, struct omp_region *, int);
void debug_omp_region (struct omp_region *);
@@ -753,23 +711,26 @@ void debug_all_omp_regions (void);
void
dump_omp_region (FILE *file, struct omp_region *region, int indent)
{
- fprintf (file, "%*s", indent, "");
- print_generic_stmt (file, region->entry, TDF_SLIM);
+ fprintf (file, "%*sbb %d: %s\n", indent, "", region->entry->index,
+ tree_code_name[region->type]);
if (region->inner)
dump_omp_region (file, region->inner, indent + 4);
- fprintf (file, "%*s", indent, "");
+ if (region->cont)
+ {
+ fprintf (file, "%*sbb %d: OMP_CONTINUE", indent, "",
+ region->cont->index);
+ }
+
if (region->exit)
- print_generic_stmt (file, region->exit, 0);
+ fprintf (file, "%*sbb: %d: OMP_RETURN", indent, "",
+ region->exit->index);
else
- fprintf (file, "[no exit marker]\n");
+ fprintf (file, "%*s[no exit marker]\n", indent, "");
if (region->next)
- {
- fprintf (file, "\n");
- dump_omp_region (file, region->next, indent);
- }
+ dump_omp_region (file, region->next, indent);
}
void
@@ -787,15 +748,14 @@ debug_all_omp_regions (void)
/* Create a new parallel region starting at STMT inside region PARENT. */
-static struct omp_region *
-new_omp_region (tree stmt, struct omp_region *parent)
+struct omp_region *
+new_omp_region (basic_block bb, enum tree_code type, struct omp_region *parent)
{
- struct omp_region *region = ggc_alloc_cleared (sizeof (*region));
- static int num = 0;
+ struct omp_region *region = xcalloc (1, sizeof (*region));
region->outer = parent;
- region->entry = stmt;
- region->num = num++;
+ region->entry = bb;
+ region->type = type;
if (parent)
{
@@ -804,24 +764,45 @@ new_omp_region (tree stmt, struct omp_region *parent)
region->next = parent->inner;
parent->inner = region;
}
- else if (omp_regions)
+ else
{
/* This is a toplevel region. Add it to the list of toplevel
regions in ROOT_OMP_REGION. */
region->next = root_omp_region;
root_omp_region = region;
}
- else
+
+ return region;
+}
+
+/* Release the memory associated with the region tree rooted at REGION. */
+
+static void
+free_omp_region_1 (struct omp_region *region)
+{
+ struct omp_region *i, *n;
+
+ for (i = region->inner; i ; i = n)
{
- /* Create a new root region with the first region we find. */
- root_omp_region = region;
- omp_regions = splay_tree_new (splay_tree_compare_pointers, 0, 0);
+ n = i->next;
+ free_omp_region_1 (i);
}
- splay_tree_insert (omp_regions, (splay_tree_key) stmt,
- (splay_tree_value) region);
+ free (region);
+}
- return region;
+/* Release the memory for the entire omp region tree. */
+
+void
+free_omp_regions (void)
+{
+ struct omp_region *r, *n;
+ for (r = root_omp_region; r ; r = n)
+ {
+ n = r->next;
+ free_omp_region_1 (r);
+ }
+ root_omp_region = NULL;
}
@@ -2033,13 +2014,14 @@ lower_send_shared_vars (tree *ilist, tree *olist, omp_context *ctx)
the workshare construct. */
static void
-expand_parallel_call (struct omp_region *region, basic_block bb, tree ws_args)
+expand_parallel_call (struct omp_region *region, basic_block bb,
+ tree entry_stmt, tree ws_args)
{
tree t, args, val, cond, c, list, clauses;
block_stmt_iterator si;
int start_ix;
- clauses = OMP_PARALLEL_CLAUSES (region->entry);
+ clauses = OMP_PARALLEL_CLAUSES (entry_stmt);
push_gimplify_context ();
/* Determine what flavor of GOMP_parallel_start we will be
@@ -2047,18 +2029,23 @@ expand_parallel_call (struct omp_region *region, basic_block bb, tree ws_args)
start_ix = BUILT_IN_GOMP_PARALLEL_START;
if (is_combined_parallel (region))
{
- tree stmt = region->inner->entry;
-
- if (TREE_CODE (stmt) == OMP_FOR)
+ switch (region->inner->type)
{
- struct omp_for_data fd;
- extract_omp_for_data (stmt, &fd);
- start_ix = BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START + fd.sched_kind;
+ case OMP_FOR:
+ {
+ tree stmt = last_stmt (region->inner->entry);
+ struct omp_for_data fd;
+ extract_omp_for_data (stmt, &fd);
+ start_ix = BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START
+ + fd.sched_kind;
+ }
+ break;
+ case OMP_SECTIONS:
+ start_ix = BUILT_IN_GOMP_PARALLEL_SECTIONS_START;
+ break;
+ default:
+ gcc_unreachable ();
}
- else if (TREE_CODE (stmt) == OMP_SECTIONS)
- start_ix = BUILT_IN_GOMP_PARALLEL_SECTIONS_START;
- else
- gcc_unreachable ();
}
/* By default, the value of NUM_THREADS is zero (selected at run time)
@@ -2142,13 +2129,13 @@ expand_parallel_call (struct omp_region *region, basic_block bb, tree ws_args)
list = NULL_TREE;
args = tree_cons (NULL, val, NULL);
- t = OMP_PARALLEL_DATA_ARG (region->entry);
+ t = OMP_PARALLEL_DATA_ARG (entry_stmt);
if (t == NULL)
t = null_pointer_node;
else
t = build_fold_addr_expr (t);
args = tree_cons (NULL, t, args);
- t = build_fold_addr_expr (OMP_PARALLEL_FN (region->entry));
+ t = build_fold_addr_expr (OMP_PARALLEL_FN (entry_stmt));
args = tree_cons (NULL, t, args);
if (ws_args)
@@ -2158,13 +2145,13 @@ expand_parallel_call (struct omp_region *region, basic_block bb, tree ws_args)
t = build_function_call_expr (t, args);
gimplify_and_add (t, &list);
- t = OMP_PARALLEL_DATA_ARG (region->entry);
+ t = OMP_PARALLEL_DATA_ARG (entry_stmt);
if (t == NULL)
t = null_pointer_node;
else
t = build_fold_addr_expr (t);
args = tree_cons (NULL, t, NULL);
- t = build_function_call_expr (OMP_PARALLEL_FN (region->entry), args);
+ t = build_function_call_expr (OMP_PARALLEL_FN (entry_stmt), args);
gimplify_and_add (t, &list);
t = built_in_decls[BUILT_IN_GOMP_PARALLEL_END];
@@ -2239,27 +2226,51 @@ remove_exit_barrier (struct omp_region *region)
{
block_stmt_iterator si;
basic_block exit_bb;
+ edge_iterator ei;
+ edge e;
tree t;
- gcc_assert (TREE_CODE (region->entry) == OMP_PARALLEL);
-
- exit_bb = bb_for_stmt (region->exit);
+ exit_bb = region->exit;
- /* The barrier should be immediately before OMP_RETURN_EXPR.
- Otherwise, we cannot remove it. */
+ /* The last insn in the block will be the parallel's OMP_RETURN. The
+ workshare's OMP_RETURN will be in a preceding block. The kinds of
+ statements that can appear in between are extremely limited -- no
+ memory operations at all. Here, we allow nothing at all, so the
+ only thing we allow to precede this OMP_RETURN is a label. */
si = bsi_last (exit_bb);
- t = bsi_stmt (si);
- gcc_assert (TREE_CODE (t) == OMP_RETURN_EXPR);
+ gcc_assert (TREE_CODE (bsi_stmt (si)) == OMP_RETURN);
bsi_prev (&si);
- if (bsi_end_p (si))
+ if (!bsi_end_p (si) && TREE_CODE (bsi_stmt (si)) != LABEL_EXPR)
return;
- t = bsi_stmt (si);
- if (TREE_CODE (t) == CALL_EXPR
- && get_callee_fndecl (t) == built_in_decls[BUILT_IN_GOMP_BARRIER])
- bsi_remove (&si, true);
+ FOR_EACH_EDGE (e, ei, exit_bb->preds)
+ {
+ si = bsi_last (e->src);
+ if (bsi_end_p (si))
+ continue;
+ t = bsi_stmt (si);
+ if (TREE_CODE (t) == OMP_RETURN)
+ OMP_RETURN_NOWAIT (t) = 1;
+ }
}
+static void
+remove_exit_barriers (struct omp_region *region)
+{
+ if (region->type == OMP_PARALLEL)
+ remove_exit_barrier (region);
+
+ if (region->inner)
+ {
+ region = region->inner;
+ remove_exit_barriers (region);
+ while (region->next)
+ {
+ region = region->next;
+ remove_exit_barriers (region);
+ }
+ }
+}
/* Expand the OpenMP parallel directive starting at REGION. */
@@ -2270,29 +2281,23 @@ expand_omp_parallel (struct omp_region *region)
struct function *child_cfun, *saved_cfun;
tree child_fn, block, t, ws_args;
block_stmt_iterator si;
+ tree entry_stmt;
edge e;
- child_fn = OMP_PARALLEL_FN (region->entry);
+ entry_stmt = last_stmt (region->entry);
+ child_fn = OMP_PARALLEL_FN (entry_stmt);
child_cfun = DECL_STRUCT_FUNCTION (child_fn);
saved_cfun = cfun;
- entry_bb = bb_for_stmt (region->entry);
- exit_bb = bb_for_stmt (region->exit);
+ entry_bb = region->entry;
+ exit_bb = region->exit;
if (is_combined_parallel (region))
- {
- ws_args = region->ws_args;
-
- /* For combined parallel+workshare calls, barriers at the end of
- the function are not necessary and can be removed. Since the
- caller will have a barrier of its own, the workshare barrier is
- superfluous. */
- remove_exit_barrier (region);
- }
+ ws_args = region->ws_args;
else
ws_args = NULL_TREE;
- if (DECL_STRUCT_FUNCTION (OMP_PARALLEL_FN (region->entry))->cfg)
+ if (child_cfun->cfg)
{
/* Due to inlining, it may happen that we have already outlined
the region, in which case all we need to do is make the
@@ -2304,7 +2309,7 @@ expand_omp_parallel (struct omp_region *region)
exit_succ_e = single_succ_edge (exit_bb);
si = bsi_last (entry_bb);
- gcc_assert (!bsi_end_p (si) && TREE_CODE (bsi_stmt (si)) == OMP_PARALLEL);
+ gcc_assert (TREE_CODE (bsi_stmt (si)) == OMP_PARALLEL);
bsi_remove (&si, true);
new_bb = entry_bb;
@@ -2325,7 +2330,7 @@ expand_omp_parallel (struct omp_region *region)
a function call that has been inlined, the original PARM_DECL
.OMP_DATA_I may have been converted into a different local
variable. In which case, we need to keep the assignment. */
- if (OMP_PARALLEL_DATA_ARG (region->entry))
+ if (OMP_PARALLEL_DATA_ARG (entry_stmt))
{
basic_block entry_succ_bb = single_succ (entry_bb);
block_stmt_iterator si = bsi_start (entry_succ_bb);
@@ -2337,7 +2342,7 @@ expand_omp_parallel (struct omp_region *region)
gcc_assert (TREE_CODE (stmt) == MODIFY_EXPR
&& TREE_CODE (TREE_OPERAND (stmt, 1)) == ADDR_EXPR
&& TREE_OPERAND (TREE_OPERAND (stmt, 1), 0)
- == OMP_PARALLEL_DATA_ARG (region->entry));
+ == OMP_PARALLEL_DATA_ARG (entry_stmt));
if (TREE_OPERAND (stmt, 0) == DECL_ARGUMENTS (child_fn))
bsi_remove (&si, true);
@@ -2377,15 +2382,14 @@ expand_omp_parallel (struct omp_region *region)
/* Convert OMP_RETURN into a RETURN_EXPR. */
si = bsi_last (exit_bb);
- gcc_assert (!bsi_end_p (si)
- && TREE_CODE (bsi_stmt (si)) == OMP_RETURN_EXPR);
+ gcc_assert (!bsi_end_p (si) && TREE_CODE (bsi_stmt (si)) == OMP_RETURN);
t = build1 (RETURN_EXPR, void_type_node, NULL);
bsi_insert_after (&si, t, TSI_SAME_STMT);
bsi_remove (&si, true);
}
/* Emit a library call to launch the children threads. */
- expand_parallel_call (region, new_bb, ws_args);
+ expand_parallel_call (region, new_bb, entry_stmt, ws_args);
}
@@ -2412,7 +2416,7 @@ expand_omp_parallel (struct omp_region *region)
If this is a combined omp parallel loop, instead of the call to
GOMP_loop_foo_start, we emit 'goto L3'. */
-static basic_block
+static void
expand_omp_for_generic (struct omp_region *region,
struct omp_for_data *fd,
enum built_in_function start_fn,
@@ -2421,8 +2425,7 @@ expand_omp_for_generic (struct omp_region *region,
tree l0, l1, l2, l3;
tree type, istart0, iend0, iend;
tree t, args, list;
- basic_block entry_bb, exit_bb, l0_bb, l1_bb, l2_bb;
- edge exit_edge;
+ basic_block entry_bb, cont_bb, exit_bb, l0_bb, l1_bb, l2_bb, l3_bb;
block_stmt_iterator si;
bool in_combined_parallel = is_combined_parallel (region);
@@ -2430,28 +2433,30 @@ expand_omp_for_generic (struct omp_region *region,
istart0 = create_tmp_var (long_integer_type_node, ".istart0");
iend0 = create_tmp_var (long_integer_type_node, ".iend0");
+ iend = create_tmp_var (type, NULL);
TREE_ADDRESSABLE (istart0) = 1;
TREE_ADDRESSABLE (iend0) = 1;
- l0 = create_artificial_label ();
- l1 = create_artificial_label ();
- l2 = create_artificial_label ();
- l3 = create_artificial_label ();
- iend = create_tmp_var (type, NULL);
-
- entry_bb = bb_for_stmt (region->entry);
+ entry_bb = region->entry;
+ l0_bb = create_empty_bb (entry_bb);
l1_bb = single_succ (entry_bb);
- exit_bb = bb_for_stmt (region->exit);
+ cont_bb = region->cont;
+ l2_bb = create_empty_bb (cont_bb);
+ l3_bb = single_succ (cont_bb);
+ exit_bb = region->exit;
- si = bsi_last (entry_bb);
- gcc_assert (bsi_stmt (si) && TREE_CODE (bsi_stmt (si)) == OMP_FOR);
- bsi_remove (&si, true);
- list = alloc_stmt_list ();
+ l0 = tree_block_label (l0_bb);
+ l1 = tree_block_label (l1_bb);
+ l2 = tree_block_label (l2_bb);
+ l3 = tree_block_label (l3_bb);
+ si = bsi_last (entry_bb);
+ gcc_assert (TREE_CODE (bsi_stmt (si)) == OMP_FOR);
if (!in_combined_parallel)
{
/* If this is not a combined parallel loop, emit a call to
GOMP_loop_foo_start in ENTRY_BB. */
+ list = alloc_stmt_list ();
t = build_fold_addr_expr (iend0);
args = tree_cons (NULL, t, NULL);
t = build_fold_addr_expr (istart0);
@@ -2472,15 +2477,12 @@ expand_omp_for_generic (struct omp_region *region,
t = build3 (COND_EXPR, void_type_node, t, build_and_jump (&l0),
build_and_jump (&l3));
append_to_statement_list (t, &list);
- si = bsi_last (entry_bb);
- bsi_insert_after (&si, list, BSI_CONTINUE_LINKING);
+ bsi_insert_after (&si, list, BSI_SAME_STMT);
}
+ bsi_remove (&si, true);
/* Iteration setup for sequential loop goes in L0_BB. */
list = alloc_stmt_list ();
- t = build1 (LABEL_EXPR, void_type_node, l0);
- gimplify_and_add (t, &list);
-
t = fold_convert (type, istart0);
t = build2 (MODIFY_EXPR, void_type_node, fd->v, t);
gimplify_and_add (t, &list);
@@ -2489,16 +2491,9 @@ expand_omp_for_generic (struct omp_region *region,
t = build2 (MODIFY_EXPR, void_type_node, iend, t);
gimplify_and_add (t, &list);
- l0_bb = create_empty_bb (entry_bb);
si = bsi_start (l0_bb);
bsi_insert_after (&si, list, BSI_CONTINUE_LINKING);
- /* Loop body goes in L1_BB. */
- list = alloc_stmt_list ();
- si = bsi_start (l1_bb);
- bsi_insert_before (&si, build1 (LABEL_EXPR, void_type_node, l1),
- BSI_CONTINUE_LINKING);
-
/* Code to control the increment and predicate for the sequential
loop goes in the first half of EXIT_BB (we split EXIT_BB so
that we can inherit all the edges going out of the loop
@@ -2515,20 +2510,13 @@ expand_omp_for_generic (struct omp_region *region,
build_and_jump (&l2));
append_to_statement_list (t, &list);
- si = bsi_last (exit_bb);
- t = bsi_stmt (si);
- gcc_assert (t && TREE_CODE (t) == OMP_RETURN_EXPR);
+ si = bsi_last (cont_bb);
+ bsi_insert_after (&si, list, BSI_SAME_STMT);
+ gcc_assert (TREE_CODE (bsi_stmt (si)) == OMP_CONTINUE);
bsi_remove (&si, true);
- exit_edge = split_block (exit_bb, t);
- exit_edge->flags = EDGE_FALSE_VALUE;
-
- si = bsi_last (exit_bb);
- bsi_insert_after (&si, list, BSI_CONTINUE_LINKING);
/* Emit code to get the next parallel iteration in L2_BB. */
list = alloc_stmt_list ();
- t = build1 (LABEL_EXPR, void_type_node, l2);
- gimplify_and_add (t, &list);
t = build_fold_addr_expr (iend0);
args = tree_cons (NULL, t, NULL);
@@ -2540,15 +2528,18 @@ expand_omp_for_generic (struct omp_region *region,
build_and_jump (&l3));
append_to_statement_list (t, &list);
- l2_bb = exit_edge->dest;
si = bsi_start (l2_bb);
bsi_insert_after (&si, list, BSI_CONTINUE_LINKING);
- /* Insert exit label on EXIT_EDGE. */
- exit_edge = single_succ_edge (l2_bb);
- t = build1 (LABEL_EXPR, void_type_node, l3);
- bsi_insert_on_edge_immediate (exit_edge, t);
- exit_edge->flags = EDGE_FALSE_VALUE;
+ /* Add the loop cleanup function. */
+ si = bsi_last (exit_bb);
+ if (OMP_RETURN_NOWAIT (bsi_stmt (si)))
+ t = built_in_decls[BUILT_IN_GOMP_LOOP_END_NOWAIT];
+ else
+ t = built_in_decls[BUILT_IN_GOMP_LOOP_END];
+ t = build_function_call_expr (t, NULL);
+ bsi_insert_after (&si, t, BSI_SAME_STMT);
+ bsi_remove (&si, true);
/* Connect the new blocks. */
remove_edge (single_succ_edge (entry_bb));
@@ -2557,14 +2548,17 @@ expand_omp_for_generic (struct omp_region *region,
else
{
make_edge (entry_bb, l0_bb, EDGE_TRUE_VALUE);
- make_edge (entry_bb, exit_edge->dest, EDGE_FALSE_VALUE);
+ make_edge (entry_bb, l3_bb, EDGE_FALSE_VALUE);
}
make_edge (l0_bb, l1_bb, EDGE_FALLTHRU);
- make_edge (exit_bb, l1_bb, EDGE_TRUE_VALUE);
- make_edge (l2_bb, l0_bb, EDGE_TRUE_VALUE);
- return exit_edge->dest;
+ remove_edge (single_succ_edge (cont_bb));
+ make_edge (cont_bb, l1_bb, EDGE_TRUE_VALUE);
+ make_edge (cont_bb, l2_bb, EDGE_FALSE_VALUE);
+
+ make_edge (l2_bb, l0_bb, EDGE_TRUE_VALUE);
+ make_edge (l2_bb, l3_bb, EDGE_FALSE_VALUE);
}
@@ -2596,29 +2590,33 @@ expand_omp_for_generic (struct omp_region *region,
L2:
*/
-static basic_block
+static void
expand_omp_for_static_nochunk (struct omp_region *region,
struct omp_for_data *fd)
{
tree l0, l1, l2, n, q, s0, e0, e, t, nthreads, threadid;
tree type, utype, list;
- basic_block entry_bb, exit_bb, seq_start_bb, body_bb, new_exit_bb;
+ basic_block entry_bb, exit_bb, seq_start_bb, body_bb, cont_bb;
+ basic_block fin_bb;
block_stmt_iterator si;
- edge exit_edge;
- l0 = create_artificial_label ();
- l1 = create_artificial_label ();
- l2 = create_artificial_label ();
-
type = TREE_TYPE (fd->v);
utype = lang_hooks.types.unsigned_type (type);
- entry_bb = bb_for_stmt (region->entry);
+ entry_bb = region->entry;
+ seq_start_bb = create_empty_bb (entry_bb);
body_bb = single_succ (entry_bb);
- exit_bb = bb_for_stmt (region->exit);
+ cont_bb = region->cont;
+ fin_bb = single_succ (cont_bb);
+ exit_bb = region->exit;
+
+ l0 = tree_block_label (seq_start_bb);
+ l1 = tree_block_label (body_bb);
+ l2 = tree_block_label (fin_bb);
/* Iteration space partitioning goes in ENTRY_BB. */
list = alloc_stmt_list ();
+
t = built_in_decls[BUILT_IN_OMP_GET_NUM_THREADS];
t = build_function_call_expr (t, NULL);
t = fold_convert (utype, t);
@@ -2673,17 +2671,13 @@ expand_omp_for_static_nochunk (struct omp_region *region,
append_to_statement_list (t, &list);
si = bsi_last (entry_bb);
- gcc_assert (bsi_stmt (si) && TREE_CODE (bsi_stmt (si)) == OMP_FOR);
+ gcc_assert (TREE_CODE (bsi_stmt (si)) == OMP_FOR);
+ bsi_insert_after (&si, list, BSI_SAME_STMT);
bsi_remove (&si, true);
- si = bsi_last (entry_bb);
- bsi_insert_after (&si, list, BSI_CONTINUE_LINKING);
/* Setup code for sequential iteration goes in SEQ_START_BB. */
list = alloc_stmt_list ();
- t = build1 (LABEL_EXPR, void_type_node, l0);
- gimplify_and_add (t, &list);
-
t = fold_convert (type, s0);
t = build2 (MULT_EXPR, type, t, fd->step);
t = build2 (PLUS_EXPR, type, t, fd->n1);
@@ -2695,24 +2689,10 @@ expand_omp_for_static_nochunk (struct omp_region *region,
t = build2 (PLUS_EXPR, type, t, fd->n1);
e = get_formal_tmp_var (t, &list);
- seq_start_bb = create_empty_bb (entry_bb);
si = bsi_start (seq_start_bb);
bsi_insert_after (&si, list, BSI_CONTINUE_LINKING);
- /* Original body goes in BODY_BB. */
- si = bsi_start (body_bb);
- t = build1 (LABEL_EXPR, void_type_node, l1);
- bsi_insert_before (&si, t, BSI_CONTINUE_LINKING);
-
- /* Split EXIT_BB at the OMP_RETURN. The code controlling the
- sequential loop goes in the original EXIT_BB. The exit out of
- the parallel loop goes in the new block (NEW_EXIT_BB). */
- si = bsi_last (exit_bb);
- t = bsi_stmt (si);
- bsi_remove (&si, true);
- gcc_assert (t && TREE_CODE (t) == OMP_RETURN_EXPR);
- exit_edge = split_block (exit_bb, t);
- new_exit_bb = exit_edge->dest;
+ /* The code controlling the sequential loop replaces the OMP_CONTINUE. */
list = alloc_stmt_list ();
t = build2 (PLUS_EXPR, type, fd->v, fd->step);
@@ -2725,26 +2705,30 @@ expand_omp_for_static_nochunk (struct omp_region *region,
build_and_jump (&l2));
append_to_statement_list (t, &list);
- si = bsi_last (exit_bb);
- bsi_insert_after (&si, list, BSI_CONTINUE_LINKING);
+ si = bsi_last (cont_bb);
+ gcc_assert (TREE_CODE (bsi_stmt (si)) == OMP_CONTINUE);
+ bsi_insert_after (&si, list, BSI_SAME_STMT);
+ bsi_remove (&si, true);
- /* Add the exit label to NEW_EXIT_BB. */
- si = bsi_start (new_exit_bb);
- t = build1 (LABEL_EXPR, void_type_node, l2);
- bsi_insert_after (&si, t, BSI_CONTINUE_LINKING);
- single_succ_edge (new_exit_bb)->flags = EDGE_FALLTHRU;
+ /* Replace the OMP_RETURN with a barrier, or nothing. */
+ si = bsi_last (exit_bb);
+ if (!OMP_RETURN_NOWAIT (bsi_stmt (si)))
+ {
+ list = alloc_stmt_list ();
+ build_omp_barrier (&list);
+ bsi_insert_after (&si, list, BSI_SAME_STMT);
+ }
+ bsi_remove (&si, true);
/* Connect all the blocks. */
make_edge (seq_start_bb, body_bb, EDGE_FALLTHRU);
remove_edge (single_succ_edge (entry_bb));
- make_edge (entry_bb, new_exit_bb, EDGE_TRUE_VALUE);
+ make_edge (entry_bb, fin_bb, EDGE_TRUE_VALUE);
make_edge (entry_bb, seq_start_bb, EDGE_FALSE_VALUE);
- make_edge (exit_bb, body_bb, EDGE_TRUE_VALUE);
- find_edge (exit_bb, new_exit_bb)->flags = EDGE_FALSE_VALUE;
-
- return new_exit_bb;
+ make_edge (cont_bb, body_bb, EDGE_TRUE_VALUE);
+ find_edge (cont_bb, fin_bb)->flags = EDGE_FALSE_VALUE;
}
@@ -2779,31 +2763,34 @@ expand_omp_for_static_nochunk (struct omp_region *region,
L4:
*/
-static basic_block
+static void
expand_omp_for_static_chunk (struct omp_region *region, struct omp_for_data *fd)
{
tree l0, l1, l2, l3, l4, n, s0, e0, e, t;
tree trip, nthreads, threadid;
tree type, utype;
basic_block entry_bb, exit_bb, body_bb, seq_start_bb, iter_part_bb;
- basic_block trip_update_bb, new_exit_bb;
- edge exit_edge;
+ basic_block trip_update_bb, cont_bb, fin_bb;
tree list;
block_stmt_iterator si;
- l0 = create_artificial_label ();
- l1 = create_artificial_label ();
- l2 = create_artificial_label ();
- l3 = create_artificial_label ();
- l4 = create_artificial_label ();
-
type = TREE_TYPE (fd->v);
utype = lang_hooks.types.unsigned_type (type);
- entry_bb = bb_for_stmt (region->entry);
+ entry_bb = region->entry;
+ iter_part_bb = create_empty_bb (entry_bb);
+ seq_start_bb = create_empty_bb (iter_part_bb);
body_bb = single_succ (entry_bb);
+ cont_bb = region->cont;
+ trip_update_bb = create_empty_bb (cont_bb);
+ fin_bb = single_succ (cont_bb);
+ exit_bb = region->exit;
- exit_bb = bb_for_stmt (region->exit);
+ l0 = tree_block_label (iter_part_bb);
+ l1 = tree_block_label (seq_start_bb);
+ l2 = tree_block_label (body_bb);
+ l3 = tree_block_label (trip_update_bb);
+ l4 = tree_block_label (fin_bb);
/* Trip and adjustment setup goes in ENTRY_BB. */
list = alloc_stmt_list ();
@@ -2849,17 +2836,13 @@ expand_omp_for_static_chunk (struct omp_region *region, struct omp_for_data *fd)
trip = get_initialized_tmp_var (t, &list, NULL);
si = bsi_last (entry_bb);
- gcc_assert (bsi_stmt (si) && TREE_CODE (bsi_stmt (si)) == OMP_FOR);
+ gcc_assert (TREE_CODE (bsi_stmt (si)) == OMP_FOR);
+ bsi_insert_after (&si, list, BSI_SAME_STMT);
bsi_remove (&si, true);
- si = bsi_last (entry_bb);
- bsi_insert_after (&si, list, BSI_CONTINUE_LINKING);
/* Iteration space partitioning goes in ITER_PART_BB. */
list = alloc_stmt_list ();
- t = build1 (LABEL_EXPR, void_type_node, l0);
- gimplify_and_add (t, &list);
-
t = build2 (MULT_EXPR, utype, trip, nthreads);
t = build2 (PLUS_EXPR, utype, t, threadid);
t = build2 (MULT_EXPR, utype, t, fd->chunk_size);
@@ -2874,16 +2857,12 @@ expand_omp_for_static_chunk (struct omp_region *region, struct omp_for_data *fd)
build_and_jump (&l1), build_and_jump (&l4));
append_to_statement_list (t, &list);
- iter_part_bb = create_empty_bb (entry_bb);
si = bsi_start (iter_part_bb);
bsi_insert_after (&si, list, BSI_CONTINUE_LINKING);
/* Setup code for sequential iteration goes in SEQ_START_BB. */
list = alloc_stmt_list ();
- t = build1 (LABEL_EXPR, void_type_node, l1);
- gimplify_and_add (t, &list);
-
t = fold_convert (type, s0);
t = build2 (MULT_EXPR, type, t, fd->step);
t = build2 (PLUS_EXPR, type, t, fd->n1);
@@ -2895,18 +2874,11 @@ expand_omp_for_static_chunk (struct omp_region *region, struct omp_for_data *fd)
t = build2 (PLUS_EXPR, type, t, fd->n1);
e = get_formal_tmp_var (t, &list);
- seq_start_bb = create_empty_bb (iter_part_bb);
si = bsi_start (seq_start_bb);
bsi_insert_after (&si, list, BSI_CONTINUE_LINKING);
- /* Main loop body goes in BODY_BB. */
- si = bsi_start (body_bb);
- t = build1 (LABEL_EXPR, void_type_node, l2);
- bsi_insert_before (&si, t, BSI_CONTINUE_LINKING);
-
- /* Split EXIT_BB. The code controlling the sequential loop goes in
- the first half. The trip update code goes into the second half
- (TRIP_UPDATE_BB). */
+ /* The code controlling the sequential loop goes in CONT_BB,
+ replacing the OMP_CONTINUE. */
list = alloc_stmt_list ();
t = build2 (PLUS_EXPR, type, fd->v, fd->step);
@@ -2919,21 +2891,14 @@ expand_omp_for_static_chunk (struct omp_region *region, struct omp_for_data *fd)
build_and_jump (&l2), build_and_jump (&l3));
append_to_statement_list (t, &list);
- si = bsi_last (exit_bb);
- t = bsi_stmt (si);
- gcc_assert (t && TREE_CODE (t) == OMP_RETURN_EXPR);
+ si = bsi_last (cont_bb);
+ gcc_assert (TREE_CODE (bsi_stmt (si)) == OMP_CONTINUE);
+ bsi_insert_after (&si, list, BSI_SAME_STMT);
bsi_remove (&si, true);
- exit_edge = split_block (exit_bb, t);
- si = bsi_last (exit_bb);
- bsi_insert_after (&si, list, BSI_CONTINUE_LINKING);
/* Trip update code goes into TRIP_UPDATE_BB. */
- trip_update_bb = exit_edge->dest;
list = alloc_stmt_list ();
- t = build1 (LABEL_EXPR, void_type_node, l3);
- gimplify_and_add (t, &list);
-
t = build_int_cst (utype, 1);
t = build2 (PLUS_EXPR, utype, trip, t);
t = build2 (MODIFY_EXPR, void_type_node, trip, t);
@@ -2941,30 +2906,31 @@ expand_omp_for_static_chunk (struct omp_region *region, struct omp_for_data *fd)
si = bsi_start (trip_update_bb);
bsi_insert_after (&si, list, BSI_CONTINUE_LINKING);
- exit_edge = single_succ_edge (trip_update_bb);
- exit_edge->flags = EDGE_FALLTHRU;
- new_exit_bb = exit_edge->dest;
- /* Insert exit label on EXIT_EDGE. */
- t = build1 (LABEL_EXPR, void_type_node, l4);
- bsi_insert_on_edge_immediate (exit_edge, t);
+ /* Replace the OMP_RETURN with a barrier, or nothing. */
+ si = bsi_last (exit_bb);
+ if (!OMP_RETURN_NOWAIT (bsi_stmt (si)))
+ {
+ list = alloc_stmt_list ();
+ build_omp_barrier (&list);
+ bsi_insert_after (&si, list, BSI_SAME_STMT);
+ }
+ bsi_remove (&si, true);
/* Connect the new blocks. */
remove_edge (single_succ_edge (entry_bb));
make_edge (entry_bb, iter_part_bb, EDGE_FALLTHRU);
make_edge (iter_part_bb, seq_start_bb, EDGE_TRUE_VALUE);
- make_edge (iter_part_bb, new_exit_bb, EDGE_FALSE_VALUE);
- remove_edge (exit_edge);
+ make_edge (iter_part_bb, fin_bb, EDGE_FALSE_VALUE);
make_edge (seq_start_bb, body_bb, EDGE_FALLTHRU);
- make_edge (exit_bb, body_bb, EDGE_TRUE_VALUE);
- find_edge (exit_bb, trip_update_bb)->flags = EDGE_FALSE_VALUE;
+ remove_edge (single_succ_edge (cont_bb));
+ make_edge (cont_bb, body_bb, EDGE_TRUE_VALUE);
+ make_edge (cont_bb, trip_update_bb, EDGE_FALSE_VALUE);
make_edge (trip_update_bb, iter_part_bb, EDGE_FALLTHRU);
-
- return new_exit_bb;
}
@@ -2974,25 +2940,24 @@ static void
expand_omp_for (struct omp_region *region)
{
struct omp_for_data fd;
- basic_block last_bb = NULL;
push_gimplify_context ();
- extract_omp_for_data (region->entry, &fd);
+ extract_omp_for_data (last_stmt (region->entry), &fd);
if (fd.sched_kind == OMP_CLAUSE_SCHEDULE_STATIC && !fd.have_ordered)
{
if (fd.chunk_size == NULL)
- last_bb = expand_omp_for_static_nochunk (region, &fd);
+ expand_omp_for_static_nochunk (region, &fd);
else
- last_bb = expand_omp_for_static_chunk (region, &fd);
+ expand_omp_for_static_chunk (region, &fd);
}
else
{
int fn_index = fd.sched_kind + fd.have_ordered * 4;
int start_ix = BUILT_IN_GOMP_LOOP_STATIC_START + fn_index;
int next_ix = BUILT_IN_GOMP_LOOP_STATIC_NEXT + fn_index;
- last_bb = expand_omp_for_generic (region, &fd, start_ix, next_ix);
+ expand_omp_for_generic (region, &fd, start_ix, next_ix);
}
pop_gimplify_context (NULL);
@@ -3029,19 +2994,23 @@ expand_omp_for (struct omp_region *region)
static void
expand_omp_sections (struct omp_region *region)
{
- tree label_vec, l0, l1, l2, t, u, v;
+ tree label_vec, l0, l1, l2, t, u, v, sections_stmt;
unsigned i, len;
- basic_block entry_bb, exit_bb, l0_bb, l1_bb, default_bb;
- edge e, entry_edge, exit_edge;
- edge_iterator ei;
+ basic_block entry_bb, exit_bb, l0_bb, l1_bb, l2_bb, default_bb;
block_stmt_iterator si;
+ struct omp_region *inner;
+ edge e;
- entry_bb = bb_for_stmt (region->entry);
- exit_bb = bb_for_stmt (region->exit);
+ entry_bb = region->entry;
+ l0_bb = create_empty_bb (entry_bb);
+ l1_bb = region->cont;
+ l2_bb = single_succ (l1_bb);
+ default_bb = create_empty_bb (l1_bb->prev_bb);
+ exit_bb = region->exit;
- l0 = create_artificial_label ();
- l1 = create_artificial_label ();
- l2 = create_artificial_label ();
+ l0 = tree_block_label (l0_bb);
+ l1 = tree_block_label (l1_bb);
+ l2 = tree_block_label (l2_bb);
v = create_tmp_var (unsigned_type_node, ".section");
@@ -3051,15 +3020,11 @@ expand_omp_sections (struct omp_region *region)
len = EDGE_COUNT (entry_bb->succs);
label_vec = make_tree_vec (len + 2);
- /* Split ENTRY_BB. The call to GOMP_sections_start goes in the
- first half. The second half contains the switch(). */
+ /* The call to GOMP_sections_start goes in ENTRY_BB, replacing the
+ OMP_SECTIONS statement. */
si = bsi_last (entry_bb);
- t = bsi_stmt (si);
- gcc_assert (t && TREE_CODE (t) == OMP_SECTIONS);
- bsi_remove (&si, true);
- entry_edge = split_block (entry_bb, t);
- l0_bb = entry_edge->dest;
-
+ sections_stmt = bsi_stmt (si);
+ gcc_assert (TREE_CODE (sections_stmt) == OMP_SECTIONS);
if (!is_combined_parallel (region))
{
/* If we are not inside a combined parallel+sections region,
@@ -3069,15 +3034,12 @@ expand_omp_sections (struct omp_region *region)
u = built_in_decls[BUILT_IN_GOMP_SECTIONS_START];
t = build_function_call_expr (u, t);
t = build2 (MODIFY_EXPR, void_type_node, v, t);
- si = bsi_last (entry_bb);
- bsi_insert_after (&si, t, BSI_CONTINUE_LINKING);
+ bsi_insert_after (&si, t, BSI_SAME_STMT);
}
+ bsi_remove (&si, true);
/* The switch() statement replacing OMP_SECTIONS goes in L0_BB. */
- si = bsi_last (l0_bb);
-
- t = build1 (LABEL_EXPR, void_type_node, l0);
- bsi_insert_after (&si, t, BSI_CONTINUE_LINKING);
+ si = bsi_start (l0_bb);
t = build3 (SWITCH_EXPR, void_type_node, v, NULL, label_vec);
bsi_insert_after (&si, t, BSI_CONTINUE_LINKING);
@@ -3085,119 +3047,145 @@ expand_omp_sections (struct omp_region *region)
t = build3 (CASE_LABEL_EXPR, void_type_node,
build_int_cst (unsigned_type_node, 0), NULL, l2);
TREE_VEC_ELT (label_vec, 0) = t;
+ make_edge (l0_bb, l2_bb, 0);
/* Convert each OMP_SECTION into a CASE_LABEL_EXPR. */
- i = 1;
- FOR_EACH_EDGE (e, ei, l0_bb->succs)
+ for (inner = region->inner, i = 1; inner; inner = inner->next, ++i)
{
basic_block s_entry_bb, s_exit_bb;
- e->flags = 0;
- s_entry_bb = e->dest;
- si = bsi_last (s_entry_bb);
- t = bsi_stmt (si);
- gcc_assert (t && TREE_CODE (t) == OMP_SECTION);
- s_exit_bb = bb_for_stmt (lookup_omp_region (t)->exit);
- bsi_remove (&si, true);
+ s_entry_bb = inner->entry;
+ s_exit_bb = inner->exit;
- t = create_artificial_label ();
+ t = tree_block_label (s_entry_bb);
u = build_int_cst (unsigned_type_node, i);
u = build3 (CASE_LABEL_EXPR, void_type_node, u, NULL, t);
TREE_VEC_ELT (label_vec, i) = u;
- t = build1 (LABEL_EXPR, void_type_node, t);
+
si = bsi_last (s_entry_bb);
- bsi_insert_after (&si, t, BSI_CONTINUE_LINKING);
- i++;
- single_succ_edge (s_entry_bb)->flags = EDGE_FALLTHRU;
+ gcc_assert (TREE_CODE (bsi_stmt (si)) == OMP_SECTION);
+ gcc_assert (i < len || OMP_SECTION_LAST (bsi_stmt (si)));
+ bsi_remove (&si, true);
si = bsi_last (s_exit_bb);
- t = bsi_stmt (si);
- gcc_assert (t && TREE_CODE (t) == OMP_RETURN_EXPR);
+ gcc_assert (TREE_CODE (bsi_stmt (si)) == OMP_RETURN);
bsi_remove (&si, true);
+
+ e = single_pred_edge (s_entry_bb);
+ e->flags = 0;
+ redirect_edge_pred (e, l0_bb);
+
+ single_succ_edge (s_entry_bb)->flags = EDGE_FALLTHRU;
single_succ_edge (s_exit_bb)->flags = EDGE_FALLTHRU;
}
/* Error handling code goes in DEFAULT_BB. */
- default_bb = create_empty_bb (entry_bb);
- si = bsi_start (default_bb);
- t = create_artificial_label ();
+ t = tree_block_label (default_bb);
u = build3 (CASE_LABEL_EXPR, void_type_node, NULL, NULL, t);
TREE_VEC_ELT (label_vec, len + 1) = u;
- t = build1 (LABEL_EXPR, void_type_node, t);
- bsi_insert_after (&si, t, BSI_CONTINUE_LINKING);
+ make_edge (l0_bb, default_bb, 0);
+ si = bsi_start (default_bb);
t = built_in_decls[BUILT_IN_TRAP];
t = build_function_call_expr (t, NULL);
bsi_insert_after (&si, t, BSI_CONTINUE_LINKING);
- make_edge (l0_bb, default_bb, 0);
-
/* Code to get the next section goes in L1_BB. */
- si = bsi_last (exit_bb);
- t = bsi_stmt (si);
- gcc_assert (t && TREE_CODE (t) == OMP_RETURN_EXPR);
- bsi_remove (&si, true);
- exit_edge = split_block (exit_bb, t);
- l1_bb = exit_edge->src;
- exit_bb = exit_edge->dest;
- si = bsi_start (l1_bb);
- t = build1 (LABEL_EXPR, void_type_node, l1);
- bsi_insert_after (&si, t, BSI_CONTINUE_LINKING);
+ si = bsi_last (l1_bb);
+ gcc_assert (TREE_CODE (bsi_stmt (si)) == OMP_CONTINUE);
t = built_in_decls[BUILT_IN_GOMP_SECTIONS_NEXT];
t = build_function_call_expr (t, NULL);
t = build2 (MODIFY_EXPR, void_type_node, v, t);
- bsi_insert_after (&si, t, BSI_CONTINUE_LINKING);
-
- remove_edge (single_succ_edge (l1_bb));
- make_edge (l1_bb, l0_bb, EDGE_FALLTHRU);
+ bsi_insert_after (&si, t, BSI_SAME_STMT);
+ bsi_remove (&si, true);
- /* Exit label in EXIT_BB. */
+ /* Cleanup function replaces OMP_RETURN in EXIT_BB. */
si = bsi_last (exit_bb);
- t = build1 (LABEL_EXPR, void_type_node, l2);
- bsi_insert_after (&si, t, BSI_CONTINUE_LINKING);
-
- make_edge (l0_bb, exit_bb, 0);
- single_succ_edge (exit_bb)->flags = EDGE_FALLTHRU;
+ if (OMP_RETURN_NOWAIT (bsi_stmt (si)))
+ t = built_in_decls[BUILT_IN_GOMP_SECTIONS_END_NOWAIT];
+ else
+ t = built_in_decls[BUILT_IN_GOMP_SECTIONS_END];
+ t = build_function_call_expr (t, NULL);
+ bsi_insert_after (&si, t, BSI_SAME_STMT);
+ bsi_remove (&si, true);
+ /* Connect the new blocks. */
if (is_combined_parallel (region))
{
/* If this was a combined parallel+sections region, we did not
emit a GOMP_sections_start in the entry block, so we just
need to jump to L1_BB to get the next section. */
- remove_edge (single_succ_edge (entry_bb));
make_edge (entry_bb, l1_bb, EDGE_FALLTHRU);
}
+ else
+ make_edge (entry_bb, l0_bb, EDGE_FALLTHRU);
+
+ e = single_succ_edge (l1_bb);
+ redirect_edge_succ (e, l0_bb);
+ e->flags = EDGE_FALLTHRU;
}
-/* Generic expansion for OpenMP synchronization directives: single,
- master, ordered and critical. All we need to do here is remove the
- entry and exit markers for REGION. */
+/* Expand code for an OpenMP single directive. We've already expanded
+ much of the code, here we simply place the GOMP_barrier call. */
+
+static void
+expand_omp_single (struct omp_region *region)
+{
+ basic_block entry_bb, exit_bb;
+ block_stmt_iterator si;
+ bool need_barrier = false;
+
+ entry_bb = region->entry;
+ exit_bb = region->exit;
+
+ si = bsi_last (entry_bb);
+ /* The terminal barrier at the end of a GOMP_single_copy sequence cannot
+ be removed. We need to ensure that the thread that entered the single
+ does not exit before the data is copied out by the other threads. */
+ if (find_omp_clause (OMP_SINGLE_CLAUSES (bsi_stmt (si)),
+ OMP_CLAUSE_COPYPRIVATE))
+ need_barrier = true;
+ gcc_assert (TREE_CODE (bsi_stmt (si)) == OMP_SINGLE);
+ bsi_remove (&si, true);
+ single_succ_edge (entry_bb)->flags = EDGE_FALLTHRU;
+
+ si = bsi_last (exit_bb);
+ if (!OMP_RETURN_NOWAIT (bsi_stmt (si)) || need_barrier)
+ {
+ tree t = alloc_stmt_list ();
+ build_omp_barrier (&t);
+ bsi_insert_after (&si, t, BSI_SAME_STMT);
+ }
+ bsi_remove (&si, true);
+ single_succ_edge (exit_bb)->flags = EDGE_FALLTHRU;
+}
+
+
+/* Generic expansion for OpenMP synchronization directives: master,
+ ordered and critical. All we need to do here is remove the entry
+ and exit markers for REGION. */
static void
expand_omp_synch (struct omp_region *region)
{
basic_block entry_bb, exit_bb;
block_stmt_iterator si;
- tree t;
- entry_bb = bb_for_stmt (region->entry);
- exit_bb = bb_for_stmt (region->exit);
+ entry_bb = region->entry;
+ exit_bb = region->exit;
si = bsi_last (entry_bb);
- t = bsi_stmt (si);
- gcc_assert (t
- && (TREE_CODE (t) == OMP_SINGLE
- || TREE_CODE (t) == OMP_MASTER
- || TREE_CODE (t) == OMP_ORDERED
- || TREE_CODE (t) == OMP_CRITICAL));
+ gcc_assert (TREE_CODE (bsi_stmt (si)) == OMP_SINGLE
+ || TREE_CODE (bsi_stmt (si)) == OMP_MASTER
+ || TREE_CODE (bsi_stmt (si)) == OMP_ORDERED
+ || TREE_CODE (bsi_stmt (si)) == OMP_CRITICAL);
bsi_remove (&si, true);
single_succ_edge (entry_bb)->flags = EDGE_FALLTHRU;
si = bsi_last (exit_bb);
- t = bsi_stmt (si);
- gcc_assert (t && TREE_CODE (t) == OMP_RETURN_EXPR);
+ gcc_assert (TREE_CODE (bsi_stmt (si)) == OMP_RETURN);
bsi_remove (&si, true);
single_succ_edge (exit_bb)->flags = EDGE_FALLTHRU;
}
@@ -3214,47 +3202,41 @@ expand_omp (struct omp_region *region)
{
while (region)
{
- enum tree_code code = TREE_CODE (region->entry);
-
if (region->inner)
expand_omp (region->inner);
- switch (code)
+ switch (region->type)
{
- case OMP_PARALLEL:
- expand_omp_parallel (region);
- break;
+ case OMP_PARALLEL:
+ expand_omp_parallel (region);
+ break;
- case OMP_FOR:
- expand_omp_for (region);
- break;
+ case OMP_FOR:
+ expand_omp_for (region);
+ break;
- case OMP_SECTIONS:
- expand_omp_sections (region);
- break;
+ case OMP_SECTIONS:
+ expand_omp_sections (region);
+ break;
- case OMP_SECTION:
- /* Individual omp sections are handled together with their
- parent OMP_SECTIONS region. */
- break;
+ case OMP_SECTION:
+ /* Individual omp sections are handled together with their
+ parent OMP_SECTIONS region. */
+ break;
- case OMP_SINGLE:
- case OMP_MASTER:
- case OMP_ORDERED:
- case OMP_CRITICAL:
- expand_omp_synch (region);
- break;
+ case OMP_SINGLE:
+ expand_omp_single (region);
+ break;
- default:
- gcc_unreachable ();
- }
+ case OMP_MASTER:
+ case OMP_ORDERED:
+ case OMP_CRITICAL:
+ expand_omp_synch (region);
+ break;
- /* Expansion adds and removes basic block, edges, creates
- and exposes unreachable regions that need to be cleaned up
- before proceeding. */
- free_dominance_info (CDI_DOMINATORS);
- free_dominance_info (CDI_POST_DOMINATORS);
- cleanup_tree_cfg ();
+ default:
+ gcc_unreachable ();
+ }
region = region->next;
}
@@ -3275,41 +3257,38 @@ build_omp_regions_1 (basic_block bb, struct omp_region *parent)
if (!bsi_end_p (si) && OMP_DIRECTIVE_P (bsi_stmt (si)))
{
struct omp_region *region;
+ enum tree_code code;
stmt = bsi_stmt (si);
+ code = TREE_CODE (stmt);
- if (TREE_CODE (stmt) == OMP_RETURN_EXPR)
+ if (code == OMP_RETURN)
{
/* STMT is the return point out of region PARENT. Mark it
as the exit point and make PARENT the immediately
enclosing region. */
gcc_assert (parent);
region = parent;
- region->exit = stmt;
+ region->exit = bb;
parent = parent->outer;
/* If REGION is a parallel region, determine whether it is
a combined parallel+workshare region. */
- if (TREE_CODE (region->entry) == OMP_PARALLEL)
+ if (region->type == OMP_PARALLEL)
determine_parallel_type (region);
}
+ else if (code == OMP_CONTINUE)
+ {
+ gcc_assert (parent);
+ parent->cont = bb;
+ }
else
{
/* Otherwise, this directive becomes the parent for a new
region. */
- region = new_omp_region (stmt, parent);
+ region = new_omp_region (bb, code, parent);
parent = region;
}
-
- gcc_assert (region);
- if (omp_regions == NULL)
- {
- omp_regions = splay_tree_new (splay_tree_compare_pointers, 0, 0);
- root_omp_region = region;
- }
-
- splay_tree_insert (omp_regions, (splay_tree_key) stmt,
- (splay_tree_value) region);
}
for (son = first_dom_son (CDI_DOMINATORS, bb);
@@ -3325,7 +3304,7 @@ build_omp_regions_1 (basic_block bb, struct omp_region *parent)
static void
build_omp_regions (void)
{
- gcc_assert (omp_regions == NULL && root_omp_region == NULL);
+ gcc_assert (root_omp_region == NULL);
calculate_dominance_info (CDI_DOMINATORS);
build_omp_regions_1 (ENTRY_BLOCK_PTR, NULL);
}
@@ -3338,20 +3317,26 @@ execute_expand_omp (void)
{
build_omp_regions ();
- if (root_omp_region)
- {
- if (dump_file)
- {
- fprintf (dump_file, "\nOMP region tree\n\n");
- dump_omp_region (dump_file, root_omp_region, 0);
- fprintf (dump_file, "\n");
- }
+ if (!root_omp_region)
+ return 0;
- expand_omp (root_omp_region);
- splay_tree_delete (omp_regions);
- root_omp_region = NULL;
- omp_regions = NULL;
+ if (dump_file)
+ {
+ fprintf (dump_file, "\nOMP region tree\n\n");
+ dump_omp_region (dump_file, root_omp_region, 0);
+ fprintf (dump_file, "\n");
}
+
+ remove_exit_barriers (root_omp_region);
+
+ expand_omp (root_omp_region);
+
+ free_dominance_info (CDI_DOMINATORS);
+ free_dominance_info (CDI_POST_DOMINATORS);
+ cleanup_tree_cfg ();
+
+ free_omp_regions ();
+
return 0;
}
@@ -3386,14 +3371,12 @@ static void
lower_omp_sections (tree *stmt_p, omp_context *ctx)
{
tree new_stmt, stmt, body, bind, block, ilist, olist, new_body;
- tree dlist, region_exit;
+ tree t, dlist;
tree_stmt_iterator tsi;
unsigned i, len;
stmt = *stmt_p;
- gcc_assert (OMP_SECTIONS_SECTIONS (stmt) == NULL_TREE);
-
push_gimplify_context ();
dlist = NULL;
@@ -3404,41 +3387,34 @@ lower_omp_sections (tree *stmt_p, omp_context *ctx)
for (len = 0; !tsi_end_p (tsi); len++, tsi_next (&tsi))
continue;
- /* There are two markers per section and one end marker for the
- whole construct. */
- OMP_SECTIONS_SECTIONS (stmt) = make_tree_vec (2 * len + 1);
-
tsi = tsi_start (OMP_SECTIONS_BODY (stmt));
body = alloc_stmt_list ();
for (i = 0; i < len; i++, tsi_next (&tsi))
{
omp_context *sctx;
- tree sec_start, sec_end, sec_body;
+ tree sec_start, sec_end;
sec_start = tsi_stmt (tsi);
- sec_body = alloc_stmt_list ();
sctx = maybe_lookup_ctx (sec_start);
gcc_assert (sctx);
+ append_to_statement_list (sec_start, &body);
+
lower_omp (&OMP_SECTION_BODY (sec_start), sctx);
- append_to_statement_list (OMP_SECTION_BODY (sec_start), &sec_body);
+ append_to_statement_list (OMP_SECTION_BODY (sec_start), &body);
+ OMP_SECTION_BODY (sec_start) = NULL;
if (i == len - 1)
{
tree l = alloc_stmt_list ();
lower_lastprivate_clauses (OMP_SECTIONS_CLAUSES (stmt), NULL,
&l, ctx);
- append_to_statement_list (l, &sec_body);
+ append_to_statement_list (l, &body);
+ OMP_SECTION_LAST (sec_start) = 1;
}
- sec_end = make_node (OMP_RETURN_EXPR);
-
- OMP_SECTION_BODY (sec_start) = sec_body;
- append_to_statement_list (sec_start, &body);
+ sec_end = make_node (OMP_RETURN);
append_to_statement_list (sec_end, &body);
-
- TREE_VEC_ELT (OMP_SECTIONS_SECTIONS (stmt), i * 2) = sec_start;
- TREE_VEC_ELT (OMP_SECTIONS_SECTIONS (stmt), i * 2 + 1) = sec_end;
}
block = make_node (BLOCK);
@@ -3448,31 +3424,30 @@ lower_omp_sections (tree *stmt_p, omp_context *ctx)
olist = NULL_TREE;
lower_reduction_clauses (OMP_SECTIONS_CLAUSES (stmt), &olist, ctx);
- /* Unless there's a nowait clause, add a barrier afterward. */
- if (!find_omp_clause (OMP_SECTIONS_CLAUSES (stmt), OMP_CLAUSE_NOWAIT))
- build_omp_barrier (&olist);
-
pop_gimplify_context (NULL_TREE);
record_vars_into (ctx->block_vars, ctx->cb.dst_fn);
new_stmt = build3 (BIND_EXPR, void_type_node, NULL, NULL, NULL);
TREE_SIDE_EFFECTS (new_stmt) = 1;
- OMP_SECTIONS_BODY (stmt) = body;
-
- region_exit = make_node (OMP_RETURN_EXPR);
new_body = alloc_stmt_list ();
append_to_statement_list (ilist, &new_body);
append_to_statement_list (stmt, &new_body);
- /* ??? The OMP_RETURN doesn't logically belong here, but in
- expand_omp_sections we expect this marker to be where the
- individual sections join after completing the loop. */
- append_to_statement_list (region_exit, &new_body);
+ append_to_statement_list (bind, &new_body);
+
+ t = make_node (OMP_CONTINUE);
+ append_to_statement_list (t, &new_body);
+
append_to_statement_list (olist, &new_body);
append_to_statement_list (dlist, &new_body);
- BIND_EXPR_BODY (new_stmt) = new_body;
- TREE_VEC_ELT (OMP_SECTIONS_SECTIONS (stmt), 2 * len) = region_exit;
+ t = make_node (OMP_RETURN);
+ OMP_RETURN_NOWAIT (t) = !!find_omp_clause (OMP_SECTIONS_CLAUSES (stmt),
+ OMP_CLAUSE_NOWAIT);
+ append_to_statement_list (t, &new_body);
+
+ BIND_EXPR_BODY (new_stmt) = new_body;
+ OMP_SECTIONS_BODY (stmt) = NULL;
*stmt_p = new_stmt;
}
@@ -3499,9 +3474,6 @@ lower_omp_single_simple (tree single_stmt, tree *pre_p)
t = build3 (COND_EXPR, void_type_node, t,
OMP_SINGLE_BODY (single_stmt), NULL);
gimplify_and_add (t, pre_p);
-
- if (!find_omp_clause (OMP_SINGLE_CLAUSES (single_stmt), OMP_CLAUSE_NOWAIT))
- build_omp_barrier (pre_p);
}
@@ -3585,8 +3557,6 @@ lower_omp_single_copy (tree single_stmt, tree *pre_p, omp_context *ctx)
t = build1 (LABEL_EXPR, void_type_node, l2);
gimplify_and_add (t, pre_p);
-
- build_omp_barrier (pre_p);
}
@@ -3600,29 +3570,34 @@ lower_omp_single (tree *stmt_p, omp_context *ctx)
push_gimplify_context ();
block = make_node (BLOCK);
- bind = build3 (BIND_EXPR, void_type_node, NULL, NULL, block);
+ *stmt_p = bind = build3 (BIND_EXPR, void_type_node, NULL, NULL, block);
TREE_SIDE_EFFECTS (bind) = 1;
lower_rec_input_clauses (OMP_SINGLE_CLAUSES (single_stmt),
&BIND_EXPR_BODY (bind), &dlist, ctx);
lower_omp (&OMP_SINGLE_BODY (single_stmt), ctx);
+ maybe_catch_exception (&OMP_SINGLE_BODY (single_stmt));
+
+ append_to_statement_list (single_stmt, &BIND_EXPR_BODY (bind));
if (ctx->record_type)
lower_omp_single_copy (single_stmt, &BIND_EXPR_BODY (bind), ctx);
else
lower_omp_single_simple (single_stmt, &BIND_EXPR_BODY (bind));
+ OMP_SINGLE_BODY (single_stmt) = NULL;
+
append_to_statement_list (dlist, &BIND_EXPR_BODY (bind));
- maybe_catch_exception (&BIND_EXPR_BODY (bind));
- t = make_node (OMP_RETURN_EXPR);
+
+ t = make_node (OMP_RETURN);
+ OMP_RETURN_NOWAIT (t) = !!find_omp_clause (OMP_SINGLE_CLAUSES (single_stmt),
+ OMP_CLAUSE_NOWAIT);
append_to_statement_list (t, &BIND_EXPR_BODY (bind));
+
pop_gimplify_context (bind);
BIND_EXPR_VARS (bind) = chainon (BIND_EXPR_VARS (bind), ctx->block_vars);
BLOCK_VARS (block) = BIND_EXPR_VARS (bind);
-
- OMP_SINGLE_BODY (single_stmt) = alloc_stmt_list ();
- append_to_statement_list (bind, &OMP_SINGLE_BODY (single_stmt));
}
@@ -3636,9 +3611,11 @@ lower_omp_master (tree *stmt_p, omp_context *ctx)
push_gimplify_context ();
block = make_node (BLOCK);
- bind = build3 (BIND_EXPR, void_type_node, NULL, NULL, block);
+ *stmt_p = bind = build3 (BIND_EXPR, void_type_node, NULL, NULL, block);
TREE_SIDE_EFFECTS (bind) = 1;
+ append_to_statement_list (stmt, &BIND_EXPR_BODY (bind));
+
x = built_in_decls[BUILT_IN_OMP_GET_THREAD_NUM];
x = build_function_call_expr (x, NULL);
x = build2 (EQ_EXPR, boolean_type_node, x, integer_zero_node);
@@ -3646,20 +3623,21 @@ lower_omp_master (tree *stmt_p, omp_context *ctx)
gimplify_and_add (x, &BIND_EXPR_BODY (bind));
lower_omp (&OMP_MASTER_BODY (stmt), ctx);
+ maybe_catch_exception (&OMP_MASTER_BODY (stmt));
append_to_statement_list (OMP_MASTER_BODY (stmt), &BIND_EXPR_BODY (bind));
+ OMP_MASTER_BODY (stmt) = NULL;
x = build1 (LABEL_EXPR, void_type_node, lab);
gimplify_and_add (x, &BIND_EXPR_BODY (bind));
- maybe_catch_exception (&BIND_EXPR_BODY (bind));
- x = make_node (OMP_RETURN_EXPR);
+
+ x = make_node (OMP_RETURN);
+ OMP_RETURN_NOWAIT (x) = 1;
append_to_statement_list (x, &BIND_EXPR_BODY (bind));
+
pop_gimplify_context (bind);
BIND_EXPR_VARS (bind) = chainon (BIND_EXPR_VARS (bind), ctx->block_vars);
BLOCK_VARS (block) = BIND_EXPR_VARS (bind);
-
- OMP_MASTER_BODY (stmt) = alloc_stmt_list ();
- append_to_statement_list (bind, &OMP_MASTER_BODY (stmt));
}
@@ -3673,29 +3651,32 @@ lower_omp_ordered (tree *stmt_p, omp_context *ctx)
push_gimplify_context ();
block = make_node (BLOCK);
- bind = build3 (BIND_EXPR, void_type_node, NULL, NULL, block);
+ *stmt_p = bind = build3 (BIND_EXPR, void_type_node, NULL, NULL, block);
TREE_SIDE_EFFECTS (bind) = 1;
+ append_to_statement_list (stmt, &BIND_EXPR_BODY (bind));
+
x = built_in_decls[BUILT_IN_GOMP_ORDERED_START];
x = build_function_call_expr (x, NULL);
gimplify_and_add (x, &BIND_EXPR_BODY (bind));
lower_omp (&OMP_ORDERED_BODY (stmt), ctx);
+ maybe_catch_exception (&OMP_ORDERED_BODY (stmt));
append_to_statement_list (OMP_ORDERED_BODY (stmt), &BIND_EXPR_BODY (bind));
+ OMP_ORDERED_BODY (stmt) = NULL;
x = built_in_decls[BUILT_IN_GOMP_ORDERED_END];
x = build_function_call_expr (x, NULL);
gimplify_and_add (x, &BIND_EXPR_BODY (bind));
- maybe_catch_exception (&BIND_EXPR_BODY (bind));
- x = make_node (OMP_RETURN_EXPR);
+
+ x = make_node (OMP_RETURN);
+ OMP_RETURN_NOWAIT (x) = 1;
append_to_statement_list (x, &BIND_EXPR_BODY (bind));
+
pop_gimplify_context (bind);
BIND_EXPR_VARS (bind) = chainon (BIND_EXPR_VARS (bind), ctx->block_vars);
BLOCK_VARS (block) = BIND_EXPR_VARS (bind);
-
- OMP_ORDERED_BODY (stmt) = alloc_stmt_list ();
- append_to_statement_list (bind, &OMP_ORDERED_BODY (stmt));
}
@@ -3766,25 +3747,27 @@ lower_omp_critical (tree *stmt_p, omp_context *ctx)
push_gimplify_context ();
block = make_node (BLOCK);
- bind = build3 (BIND_EXPR, void_type_node, NULL, NULL, block);
+ *stmt_p = bind = build3 (BIND_EXPR, void_type_node, NULL, NULL, block);
TREE_SIDE_EFFECTS (bind) = 1;
+ append_to_statement_list (stmt, &BIND_EXPR_BODY (bind));
+
gimplify_and_add (lock, &BIND_EXPR_BODY (bind));
lower_omp (&OMP_CRITICAL_BODY (stmt), ctx);
maybe_catch_exception (&OMP_CRITICAL_BODY (stmt));
append_to_statement_list (OMP_CRITICAL_BODY (stmt), &BIND_EXPR_BODY (bind));
+ OMP_CRITICAL_BODY (stmt) = NULL;
gimplify_and_add (unlock, &BIND_EXPR_BODY (bind));
- t = make_node (OMP_RETURN_EXPR);
+
+ t = make_node (OMP_RETURN);
+ OMP_RETURN_NOWAIT (t) = 1;
append_to_statement_list (t, &BIND_EXPR_BODY (bind));
pop_gimplify_context (bind);
BIND_EXPR_VARS (bind) = chainon (BIND_EXPR_VARS (bind), ctx->block_vars);
BLOCK_VARS (block) = BIND_EXPR_VARS (bind);
-
- OMP_CRITICAL_BODY (stmt) = alloc_stmt_list ();
- append_to_statement_list (bind, &OMP_CRITICAL_BODY (stmt));
}
@@ -3871,30 +3854,28 @@ lower_omp_for (tree *stmt_p, omp_context *ctx)
/* Once lowered, extract the bounds and clauses. */
extract_omp_for_data (stmt, &fd);
- /* Region exit marker goes at the end of the loop body. */
- t = make_node (OMP_RETURN_EXPR);
- append_to_statement_list (t, &OMP_FOR_BODY (stmt));
- maybe_catch_exception (&OMP_FOR_BODY (stmt));
append_to_statement_list (stmt, body_p);
+ maybe_catch_exception (&OMP_FOR_BODY (stmt));
+ append_to_statement_list (OMP_FOR_BODY (stmt), body_p);
+
+ t = make_node (OMP_CONTINUE);
+ append_to_statement_list (t, body_p);
+
/* After the loop, add exit clauses. */
lower_omp_for_lastprivate (&fd, &dlist, ctx);
lower_reduction_clauses (OMP_FOR_CLAUSES (stmt), body_p, ctx);
append_to_statement_list (dlist, body_p);
- /* Add a barrier unless the user specified NOWAIT. Note that if
- this is a combined parallel+loop construct, the barrier will be
- optimized away during expansion (see expand_omp_for). */
- if (!fd.have_nowait)
- {
- tree stmt = alloc_stmt_list ();
- build_omp_barrier (&stmt);
- append_to_statement_list (stmt, body_p);
- }
+ /* Region exit marker goes at the end of the loop body. */
+ t = make_node (OMP_RETURN);
+ OMP_RETURN_NOWAIT (t) = fd.have_nowait;
+ append_to_statement_list (t, body_p);
pop_gimplify_context (NULL_TREE);
record_vars_into (ctx->block_vars, ctx->cb.dst_fn);
+ OMP_FOR_BODY (stmt) = NULL_TREE;
OMP_FOR_PRE_BODY (stmt) = NULL_TREE;
*stmt_p = new_stmt;
}
@@ -3959,7 +3940,7 @@ lower_omp_parallel (tree *stmt_p, omp_context *ctx)
append_to_statement_list (par_ilist, &new_body);
append_to_statement_list (par_body, &new_body);
append_to_statement_list (par_olist, &new_body);
- t = make_node (OMP_RETURN_EXPR);
+ t = make_node (OMP_RETURN);
append_to_statement_list (t, &new_body);
OMP_PARALLEL_BODY (stmt) = new_body;
@@ -4155,8 +4136,8 @@ struct tree_opt_pass pass_lower_omp =
};
/* The following is a utility to diagnose OpenMP structured block violations.
- It's part of the "omplower" pass, as that's invoked too late. It should
- be invoked by the respective front ends after gimplification. */
+ It is not part of the "omplower" pass, as that's invoked too late. It
+ should be invoked by the respective front ends after gimplification. */
static splay_tree all_labels;
diff --git a/gcc/params.def b/gcc/params.def
index 69241e77814..84f16e294af 100644
--- a/gcc/params.def
+++ b/gcc/params.def
@@ -582,6 +582,12 @@ DEFPARAM (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE,
"max-fields-for-field-sensitive",
"Maximum number of fields in a structure before pointer analysis treats the structure as a single variable",
100, 0, 0)
+
+DEFPARAM(PARAM_MAX_SCHED_READY_INSNS,
+ "max-sched-ready-insns",
+ "The maximum number of instructions ready to be issued to be considered by the scheduler during the first scheduling pass",
+ 100, 0, 0)
+
/*
Local variables:
mode:c
diff --git a/gcc/params.h b/gcc/params.h
index aafafe17ff3..32c9c8c63fa 100644
--- a/gcc/params.h
+++ b/gcc/params.h
@@ -149,4 +149,6 @@ typedef enum compiler_param
PARAM_VALUE (PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO)
#define MAX_FIELDS_FOR_FIELD_SENSITIVE \
((size_t) PARAM_VALUE (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE))
+#define MAX_SCHED_READY_INSNS \
+ PARAM_VALUE (PARAM_MAX_SCHED_READY_INSNS)
#endif /* ! GCC_PARAMS_H */
diff --git a/gcc/po/ChangeLog b/gcc/po/ChangeLog
index 6ee7c2411d3..8cc954b61a6 100644
--- a/gcc/po/ChangeLog
+++ b/gcc/po/ChangeLog
@@ -1,3 +1,8 @@
+2006-04-21 Joseph S. Myers <joseph@codesourcery.com>
+
+ * de.po, es.po, sv.po: Update.
+ * zh_TW.po: New.
+
2006-03-31 Joseph S. Myers <joseph@codesourcery.com>
* sv.po: Update.
diff --git a/gcc/po/de.po b/gcc/po/de.po
index d20f9da3e7e..91ba95cdd67 100644
--- a/gcc/po/de.po
+++ b/gcc/po/de.po
@@ -6,10 +6,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: gcc 4.1-b20051125\n"
+"Project-Id-Version: gcc 4.1.0\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
"POT-Creation-Date: 2006-02-28 00:11-0800\n"
-"PO-Revision-Date: 2006-02-21 14:55+0100\n"
+"PO-Revision-Date: 2006-03-12 12:00+0100\n"
"Last-Translator: Roland Stigge <stigge@antcom.de>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
@@ -640,7 +640,7 @@ msgstr ""
"Bitte senden Sie einen vollständigen Fehlerbericht auf Englisch ein;\n"
"bearbeiten Sie die Quellen zunächst mit einem Präprozessor, wenn es\n"
"dienlich ist.\n"
-"Fehler in der deutschen Ãœbersetzung sind an de@li.org zu melden.\n"
+"Fehler in der deutschen Ãœbersetzung sind an translation-team-de@lists.sourceforge.net zu melden.\n"
"\n"
"Gehen Sie gemäß den Hinweisen in %s vor.\n"
@@ -830,7 +830,7 @@ msgstr ""
"Interner Fehler: %s (Programm %s)\n"
"Bitte senden Sie einen vollständigen Fehlerbericht\n"
"auf Englisch ein; Fehler in der deutschen Ãœbersetzung\n"
-"sind an de@li.org zu melden.\n"
+"sind an translation-team-de@lists.sourceforge.net zu melden.\n"
"Gehen Sie gemäß den Hinweisen in %s vor."
#: gcc.c:2905
@@ -1182,7 +1182,7 @@ msgstr "schlechte Argumente für Spezifikationsfunktion"
#: gcc.c:5671
#, c-format
msgid "braced spec '%s' is invalid at '%c'"
-msgstr "geschweift geklammertes »%s« ist bei »%c« ungültig"
+msgstr "geschweift geklammerte Spezifikation »%s« ist bei »%c« ungültig"
#: gcc.c:5759
#, c-format
@@ -1212,8 +1212,8 @@ msgid ""
msgstr ""
"\n"
"Zum Einsenden von Fehlerberichten (auf Englisch) lesen Sie bitte die\n"
-"folgenden Hinweise; Fehler in der deutschen Ãœbersetzung sind an de@li.org\n"
-"zu melden:\n"
+"folgenden Hinweise; Fehler in der deutschen Ãœbersetzung sind an\n"
+"translation-team-de@lists.sourceforge.net zu melden:\n"
#: gcc.c:6381
#, c-format
@@ -1386,7 +1386,7 @@ msgstr ""
"\n"
"Zum Einsenden von Fehlerberichten (auf Englisch) lesen Sie bitte die Hinweise in:\n"
"%s.\n"
-"Fehler in der deutschen Ãœbersetzung sind an de@li.org zu melden.\n"
+"Fehler in der deutschen Ãœbersetzung sind an translation-team-de@lists.sourceforge.net zu melden.\n"
#: gcov.c:413
#, c-format
@@ -1629,7 +1629,7 @@ msgstr "--param max-inline-insns-auto: Limit erreicht"
#: ipa-inline.c:340 ipa-inline.c:766
msgid "recursive inlining"
-msgstr "rekursives inline"
+msgstr "rekursives Inlining"
#: ipa-inline.c:779
msgid "call is unlikely"
@@ -2062,7 +2062,7 @@ msgstr "Zeit in %s: %ld.%06ld (%ld%%)\n"
#: tlink.c:384
#, c-format
msgid "collect: reading %s\n"
-msgstr "sammeln: %s lesen\n"
+msgstr "sammeln: %s wird gelesen\n"
#: tlink.c:478
#, c-format
@@ -2077,7 +2077,7 @@ msgstr ".rpo-Datei wird umbenannt"
#: tlink.c:534
#, c-format
msgid "collect: recompiling %s\n"
-msgstr "sammeln: %s neu kompilieren\n"
+msgstr "sammeln: %s wird neu kompiliert\n"
#: tlink.c:714
#, c-format
@@ -2484,9 +2484,8 @@ msgid "Maximum number of statements allowed in a block that needs to be duplicat
msgstr "Höchstzahl der in einem Block erlaubten Anweisungen, die für Sprungbehandlung vervielfältigt werden müssen"
#: params.def:561
-#, fuzzy
msgid "Maximum number of fields in a structure before pointer analysis treats the structure as a single variable"
-msgstr "Die Höchstzahl der Felder in einer Strukturvariable ohne direkte Strukturzugriffe, die GCC versuchen wird, gesondert zu zählen"
+msgstr "Die Höchstzahl der Felder in einer Struktur, bevor Zeigeranalyse sie als einzelne Variable behandelt"
#: config/alpha/alpha.c:5084
#, c-format
@@ -3129,11 +3128,11 @@ msgstr "ungültiges Register in Kopierbefehl"
#: config/m68hc11/m68hc11.c:3447
msgid "invalid operand in the instruction"
-msgstr "ungültiger Operand in Befehl"
+msgstr "ungültiger Operand im Befehl"
#: config/m68hc11/m68hc11.c:3744
msgid "invalid register in the instruction"
-msgstr "ungültiges Register in Befehl"
+msgstr "ungültiges Register im Befehl"
#: config/m68hc11/m68hc11.c:3777
msgid "operand 1 must be a hard register"
@@ -3235,9 +3234,8 @@ msgid "MMIX Internal: This is not a constant:"
msgstr "MMIX-intern: Dies ist keine Konstante:"
#: config/mt/mt.c:298
-#, fuzzy
msgid "mt_final_prescan_insn, invalid insn #1"
-msgstr "ms1_final_prescan_insn, ungültiger Befehl #1"
+msgstr "mt_final_prescan_insn, ungültiger Befehl #1"
#: config/mt/mt.c:369
msgid "PRINT_OPERAND_ADDRESS, 2 regs"
@@ -3338,7 +3336,7 @@ msgstr "UNKNOWN in print_operand !?"
#: config/sh/sh.c:746
#, c-format
msgid "invalid operand to %%R"
-msgstr "Ungültiger Operand für %%R"
+msgstr "ungültiger Operand für %%R"
#: config/sh/sh.c:773
#, c-format
@@ -3355,7 +3353,7 @@ msgstr "erzeugt und mit anderen ABIs verwendet"
#: config/sh/sh.c:7683
msgid "created and used with different endianness"
-msgstr "erzeugt und mit anderer Endianness verwendet"
+msgstr "erzeugt und mit anderer Bytereihenfolge verwendet"
#: config/sparc/sparc.c:6626 config/sparc/sparc.c:6632
#, c-format
@@ -3462,7 +3460,7 @@ msgstr "ungültiger %%x-Wert"
#: config/xtensa/xtensa.c:1705
#, c-format
msgid "invalid %%d value"
-msgstr "ungültiger %%x-Wert"
+msgstr "ungültiger %%d-Wert"
#: config/xtensa/xtensa.c:1726 config/xtensa/xtensa.c:1736
#, c-format
@@ -3813,7 +3811,7 @@ msgstr "Argument »%s« des intrinsischen »%s« bei %L darf nicht vorhanden sei
#: fortran/check.c:792 fortran/check.c:1444 fortran/check.c:1452
#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be numeric or LOGICAL"
-msgstr "Argument »%s« des intrinsischen »%s« bei %L muss numerisch oder LOGICAL"
+msgstr "Argument »%s« des intrinsischen »%s« bei %L muss numerisch oder LOGICAL sein"
#: fortran/check.c:1046
#, no-c-format
@@ -3923,7 +3921,7 @@ msgstr "Erweiterung: Reinitialisierung von »%s« bei %L"
#: fortran/decl.c:208
#, no-c-format
msgid "Host associated variable '%s' may not be in the DATA statement at %C."
-msgstr "Mit Host verbundene Variable »%s« darf nicht in DATA-Anweisung bei %C stehen"
+msgstr "Mit Host verbundene Variable »%s« darf nicht in DATA-Anweisung bei %C stehen."
#: fortran/decl.c:215
#, no-c-format
@@ -3956,14 +3954,14 @@ msgid "Syntax error in character length specification at %C"
msgstr "Syntaxfehler in Zeichenlängenangabe bei %C"
#: fortran/decl.c:623
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Procedure '%s' at %C is already defined at %L"
-msgstr "Globaler Name »%s« bei %L wird bereits als ein %s bei %L verwendet"
+msgstr "Prozedur »%s« bei %C wurde bereits bei %L definiert"
#: fortran/decl.c:633
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Procedure '%s' at %C has an explicit interface and must not have attributes declared at %L"
-msgstr "Prozedur »%s« mit einer impliziten Schnittstelle bei %L aufgerufen"
+msgstr "Prozedur »%s« bei %C hat eine explizite Schnittstelle und darf bei %L keine Attribute deklariert haben"
#: fortran/decl.c:805
#, no-c-format
@@ -4018,7 +4016,7 @@ msgstr "Aufzählung kann kein Feld bei %C sein"
#: fortran/decl.c:1115 fortran/decl.c:3374
#, no-c-format
msgid "Duplicate array spec for Cray pointee at %C."
-msgstr "Doppelte Feldspezifikation für Cray-Adresse bei %C."
+msgstr "Doppelte Feldspezifikation für Cray-Zeigerende bei %C."
#: fortran/decl.c:1167
#, no-c-format
@@ -4036,9 +4034,9 @@ msgid "Initialization at %C isn't for a pointer variable"
msgstr "Initialisierung bei %C ist nicht für eine Zeigervariable"
#: fortran/decl.c:1207
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Pointer initialization requires a NULL() at %C"
-msgstr "Zeigerinitialisierung benötigt NULL bei %C"
+msgstr "Zeigerinitialisierung erfordert NULL() bei %C"
#: fortran/decl.c:1214
#, no-c-format
@@ -4066,14 +4064,14 @@ msgid "ENUMERATOR %L not initialized with integer expression"
msgstr "ENUMERATOR %L nicht mit Ganzzahlausdruck initialisiert"
#: fortran/decl.c:1324 fortran/decl.c:1333
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Old-style type declaration %s*%d not supported at %C"
-msgstr "Die Art %d im alten Stil wird für Typ %s bei %C nicht unterstützt"
+msgstr "Deklaration %s*%d im alten Stil wird bei %C nicht unterstützt"
#: fortran/decl.c:1338
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Nonstandard type declaration %s*%d at %C"
-msgstr "Syntaxfehler in Daten-Deklaration bei %C"
+msgstr "Nicht-Standard Typ-Deklaration %s*%d bei %C"
#: fortran/decl.c:1372
#, no-c-format
@@ -4116,9 +4114,9 @@ msgid "BYTE type used at %C is not available on the target machine"
msgstr "Bei %C verwendeter BYTE-Typ ist auf der Zielmaschine nicht verfügbar"
#: fortran/decl.c:1647
-#, fuzzy, no-c-format
+#, no-c-format
msgid "DOUBLE COMPLEX at %C does not conform to the Fortran 95 standard"
-msgstr "Mit dem Standard ISO Fortran 95 übereinstimmen"
+msgstr "DOUBLE COMPLEX bei %C stimmt nicht mit dem Fortran-95-Standard überein"
#: fortran/decl.c:1670
#, no-c-format
@@ -4711,9 +4709,9 @@ msgid "NOT "
msgstr "NICHT "
#: fortran/dump-parse-tree.c:482
-#, fuzzy, c-format
+#, c-format
msgid "parens"
-msgstr "öffne %s"
+msgstr "Klammern"
#: fortran/dump-parse-tree.c:504
#, c-format
@@ -5161,7 +5159,7 @@ msgstr " FÃœLL="
#: fortran/dump-parse-tree.c:1156 fortran/dump-parse-tree.c:1362
#, c-format
msgid " CONVERT="
-msgstr ""
+msgstr " KONVERT="
#: fortran/dump-parse-tree.c:1160 fortran/dump-parse-tree.c:1189
#: fortran/dump-parse-tree.c:1226 fortran/dump-parse-tree.c:1367
@@ -5460,7 +5458,7 @@ msgstr "In Ausdruck bei %L werden numerische Operanden benötigt"
#: fortran/expr.c:1423
#, no-c-format
msgid "The F95 does not permit the assumed character length variable '%s' in constant expression at %L."
-msgstr ""
+msgstr "Der F95 erlaubt nicht die Variable »%s« mit vermuteter Zeichenlänge im konstanten Ausdruck bei %L."
#: fortran/expr.c:1476
#, no-c-format
@@ -5470,12 +5468,12 @@ msgstr "Funktion »%s« in Initialisierungs-Ausdruck bei %L muss eine intrinsisc
#: fortran/expr.c:1498
#, no-c-format
msgid "Parameter '%s' at %L has not been declared or is a variable, which does not reduce to a constant expression"
-msgstr ""
+msgstr "Parameter »%s« bei %L wurde nicht deklariert oder ist eine Variable, die nicht zu konstantem Ausdruck reduziert"
#: fortran/expr.c:1583
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Initialization expression didn't reduce %C"
-msgstr "Initialisierungsausdruck bei %C erwartet"
+msgstr "Initialisierungsausdruck reduzierte nicht %C"
#: fortran/expr.c:1627
#, no-c-format
@@ -5528,9 +5526,9 @@ msgid "Incompatible ranks in %s at %L"
msgstr "Unverträgliche Ränge in %s bei %L"
#: fortran/expr.c:1828
-#, fuzzy, no-c-format
+#, no-c-format
msgid "different shape for %s at %L on dimension %d (%d/%d)"
-msgstr "%s bei %L hat andere Form für Dimension %d (%d/%d)"
+msgstr "andere Form für %s bei %L für Dimension %d (%d/%d)"
#: fortran/expr.c:1861
#, no-c-format
@@ -5540,7 +5538,7 @@ msgstr "Zu INTENT(IN)-Variable »%s« bei %L kann nicht zugewiesen werden"
#: fortran/expr.c:1868
#, no-c-format
msgid "'%s' in the assignment at %L cannot be an l-value since it is a procedure"
-msgstr ""
+msgstr "»%s« in der Zuweisung bei %L kann kein L-Wert sein, da es eine Prozedur ist"
#: fortran/expr.c:1876
#, no-c-format
@@ -5584,7 +5582,7 @@ msgstr "Zeiger-Zuweisungziel ist kein POINTER bei %L"
#: fortran/expr.c:1962
#, no-c-format
msgid "'%s' in the pointer assignment at %L cannot be an l-value since it is a procedure"
-msgstr ""
+msgstr "»%s« in Zeigerzuweisung bei %L kann kein L-Wert sein, da es eine Prozedur ist"
#: fortran/expr.c:1971
#, no-c-format
@@ -5599,7 +5597,7 @@ msgstr "Falsches Zeigerobjekt in PURE-Prozedur bei %L"
#: fortran/expr.c:1992
#, no-c-format
msgid "Different types in pointer assignment at %L"
-msgstr "Verschiedene Typen in Zeiger-Zuweisung bei %L"
+msgstr "Verschiedene Typen in Zeigerzuweisung bei %L"
#: fortran/expr.c:1999
#, no-c-format
@@ -5607,14 +5605,14 @@ msgid "Different kind type parameters in pointer assignment at %L"
msgstr "Parameter verschiedener Typen in Zeigerzuweisung bei %L"
#: fortran/expr.c:2006
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Different ranks in pointer assignment at %L"
-msgstr "Verschiedene Typen in Zeiger-Zuweisung bei %L"
+msgstr "Verschiedene Ränge in Zeigerzuweisung bei %L"
#: fortran/expr.c:2020
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Different character lengths in pointer assignment at %L"
-msgstr "Verschiedene Typen in Zeiger-Zuweisung bei %L"
+msgstr "Verschiedene Zeichenlängen in Zeigerzuweisung bei %L"
#: fortran/expr.c:2028
#, no-c-format
@@ -5634,7 +5632,7 @@ msgstr "Zeigerzuweisung mit Vektorindex für rhs bei %L"
#: fortran/expr.c:2059
#, no-c-format
msgid "The upper bound in the last dimension of the assumed_size array on the rhs of the pointer assignment at %L must be set"
-msgstr ""
+msgstr "Die obere Schranke in der letzten Dimension des Feldes mit vermuteter Größe bei rhs der Zeigerzuweisung bei %L muss gesetzt sein"
#: fortran/gfortranspec.c:232
#, c-format
@@ -5803,7 +5801,7 @@ msgstr "Effektives Argument für »%s« muss ein Zeiger bei %L sein"
#: fortran/interface.c:1284
#, no-c-format
msgid "Actual argument at %L must be definable to match dummy INTENT = OUT/INOUT"
-msgstr ""
+msgstr "Das effektive Argument bei %L muss definierbar sein, zu (Schein) INTENT = OUT/INOUT zu passen"
#: fortran/interface.c:1305
#, no-c-format
@@ -5853,7 +5851,7 @@ msgstr "Zu viele Argumente in Aufruf von »%s« bei %L"
#: fortran/intrinsic.c:2734
#, no-c-format
msgid "Can't find keyword named '%s' in call to '%s' at %L"
-msgstr "Schlüsselwort »%s« in Aufruf von »%s bei %L kann nicht gefunden werden«"
+msgstr "Schlüsselwort »%s« in Aufruf von »%s« bei %L kann nicht gefunden werden"
#: fortran/intrinsic.c:2741
#, no-c-format
@@ -5972,9 +5970,9 @@ msgid "%s in format string at %C"
msgstr "%s in Formatzeichenkette bei %C"
#: fortran/io.c:832
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Format statement in module main block at %C."
-msgstr "Falsche Anweisungsmarke bei %C wird ignoriert"
+msgstr "Formatanweisung im Hauptblock des Modules bei %C."
#: fortran/io.c:838
#, no-c-format
@@ -6049,17 +6047,17 @@ msgstr "Fortran 2003: IOMSG-Markierung bei %L"
#: fortran/io.c:1076
#, no-c-format
msgid "Fortran 95 requires default INTEGER in IOSTAT tag at %L"
-msgstr ""
+msgstr "Fortran 95 erfordert Standard INTEGER in IOSTAT-Marke bei %L"
#: fortran/io.c:1084
#, no-c-format
msgid "Fortran 95 requires default INTEGER in SIZE tag at %L"
-msgstr ""
+msgstr "Fortran 95 erfordert Standard INTEGER in SIZE-Marke bei %L"
#: fortran/io.c:1092
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Extension: CONVERT tag at %L"
-msgstr "Erweiterung: BYTE-Typ bei %C"
+msgstr "Erweiterung: CONVERT-Marke bei %L"
#: fortran/io.c:1261
#, no-c-format
@@ -6109,7 +6107,7 @@ msgstr "Symbol »%s« bei %C muss ein NAMELIST-Gruppenname sein"
#: fortran/io.c:1771
#, no-c-format
msgid "END tag at %C not allowed in output statement"
-msgstr "END-Tag bei %C nicht erlaubt in Ausgabe-Anweisung"
+msgstr "END-Tag bei %C in Ausgabe-Anweisung nicht erlaubt"
#: fortran/io.c:1831
#, no-c-format
@@ -6122,24 +6120,24 @@ msgid "Internal unit with vector subscript at %L"
msgstr "Interne Einheit mit Vektor-Index bei %L"
#: fortran/io.c:1848
-#, fuzzy, no-c-format
+#, no-c-format
msgid "External IO UNIT cannot be an array at %L"
-msgstr "Aufzählung kann kein Feld bei %C sein"
+msgstr "Externe IO UNIT kann kein Feld bei %L sein"
#: fortran/io.c:1858
-#, fuzzy, no-c-format
+#, no-c-format
msgid "ERR tag label %d at %L not defined"
-msgstr "FORMAT-Marke %d bei %L nicht definiert"
+msgstr "ERR-Marke %d bei %L nicht definiert"
#: fortran/io.c:1870
-#, fuzzy, no-c-format
+#, no-c-format
msgid "END tag label %d at %L not defined"
-msgstr "FORMAT-Marke %d bei %L nicht definiert"
+msgstr "END-Marke %d bei %L nicht definiert"
#: fortran/io.c:1882
-#, fuzzy, no-c-format
+#, no-c-format
msgid "EOR tag label %d at %L not defined"
-msgstr "FORMAT-Marke %d bei %L nicht definiert"
+msgstr "EOR-Marke %d bei %L nicht definiert"
#: fortran/io.c:1892
#, no-c-format
@@ -6228,14 +6226,14 @@ msgid "Integer too large at %C"
msgstr "Ganzzahl bei %C zu groß"
#: fortran/match.c:239 fortran/parse.c:329
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Too many digits in statement label at %C"
-msgstr "Falsche Anweisungsmarke bei %C wird ignoriert"
+msgstr "Zu viele Ziffern in Anweisungsmarke bei %C"
#: fortran/match.c:245 fortran/parse.c:332
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Statement label at %C is zero"
-msgstr "Anweisungsmarke bei %C ist außerhalb des Wertebereiches"
+msgstr "Anweisungsmarke bei %C ist Null"
#: fortran/match.c:278
#, no-c-format
@@ -6348,9 +6346,9 @@ msgid "%s statement at %C is not within loop '%s'"
msgstr "Anweisung %s bei %C nicht innerhalb der Schleife »%s«"
#: fortran/match.c:1435
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Too many digits in STOP code at %C"
-msgstr "Zu viele Argumente in Aufruf von »%s« bei %L"
+msgstr "Zu viele Ziffern in STOP-Code bei %C"
#: fortran/match.c:1488
#, no-c-format
@@ -6428,9 +6426,9 @@ msgid "Syntax error in common block name at %C"
msgstr "Syntaxfehler im allgemeinen Blocknamen bei %C"
#: fortran/match.c:2271
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Symbol '%s' at %C is already an external symbol that is not COMMON"
-msgstr "Symbol »%s« bei %C ist bereits in einem COMMON-Block"
+msgstr "Symbol »%s« bei %C ist bereits ein externes Symbol, das nicht COMMON ist"
#: fortran/match.c:2318
#, no-c-format
@@ -6473,19 +6471,19 @@ msgid "Namelist group name '%s' at %C already has a basic type of %s"
msgstr "Gruppenname »%s« der Namensliste bei %C hat bereits einen Basistypen von »%s«"
#: fortran/match.c:2528
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Namelist group name '%s' at %C already is USE associated and cannot be respecified."
-msgstr "Gruppenname »%s« der Namensliste bei %C hat bereits einen Basistypen von »%s«"
+msgstr "Gruppenname »%s« der Namensliste bei %C ist bereits USE-verbunden und kann nicht respezifiziert werden."
#: fortran/match.c:2555
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Assumed size array '%s' in namelist '%s'at %C is not allowed."
-msgstr "Leerer Feldkonstruktor bei %C ist nicht erlaubt"
+msgstr "Feld »%s« mit vermuteter Größe in Namensliste »%s« bei %C ist nicht erlaubt."
#: fortran/match.c:2561
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Assumed shape array '%s' in namelist '%s' at %C is an extension."
-msgstr "PRINT-Namensliste bei %C ist eine Erweiterung"
+msgstr "Feld »%s« mit vermuteter Form in Namensliste »%s« bei %C ist eine Erweiterung."
#: fortran/match.c:2689
#, no-c-format
@@ -6500,7 +6498,7 @@ msgstr "Feldreferenz in EQUIVALENCE bei %C kann kein Feldabschnitt sein"
#: fortran/match.c:2727
#, no-c-format
msgid "EQUIVALENCE at %C requires two or more objects"
-msgstr ""
+msgstr "EQUIVALENCE bei %C erfordert zwei oder mehr Objekte"
#: fortran/match.c:2741
#, no-c-format
@@ -7065,22 +7063,22 @@ msgstr "Ungültige Hollerithkonstante: Ganzzahlart bei %L sollte Standard sein"
#: fortran/primary.c:357
#, no-c-format
msgid "Extension: Hexadecimal constant at %C uses non-standard syntax."
-msgstr "Erweiterung: Hexadezimalkonstante beii %C verwendet Nicht-Standard-Syntax."
+msgstr "Erweiterung: Hexadezimalkonstante bei %C verwendet Nicht-Standard-Syntax."
#: fortran/primary.c:367
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Empty set of digits in BOZ constant at %C"
-msgstr "Leere Ziffernmenge in Oktalkonstante bei %C"
+msgstr "Leere Ziffernmenge in BOZ-Konstante bei %C"
#: fortran/primary.c:373
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Illegal character in BOZ constant at %C"
-msgstr "Unzulässiges Zeichen in Oktalkonstante bei %C"
+msgstr "Unzulässiges Zeichen in BOZ-Konstante bei %C"
#: fortran/primary.c:395
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Extension: BOZ constant at %C uses non-standard postfix syntax."
-msgstr "Erweiterung: Hexadezimalkonstante beii %C verwendet Nicht-Standard-Syntax."
+msgstr "Erweiterung: BOZ-Konstante bei %C verwendet Nicht-Standard-Postfix-Syntax."
#: fortran/primary.c:421
#, no-c-format
@@ -7145,7 +7143,7 @@ msgstr "PARAMETER-Symbol in komplexer Konstante bei %C erwartet"
#: fortran/primary.c:1079
#, no-c-format
msgid "Numeric PARAMETER required in complex constant at %C"
-msgstr "Numerischer PARAMETER in komplexer Konstante bei %C erfordert"
+msgstr "Numerischer PARAMETER in komplexer Konstante bei %C erforderlich"
#: fortran/primary.c:1085
#, no-c-format
@@ -7275,7 +7273,7 @@ msgstr "Argument »%s« der elementaren Prozedur bei %L kann kein POINTER-Attrib
#: fortran/resolve.c:211
#, no-c-format
msgid "Argument '%s' of statement function at %L must be scalar"
-msgstr "Argument »%s« der Anweisungs-Funktions bei %L muss skalar sein"
+msgstr "Argument »%s« der Anweisungs-Funktion bei %L muss skalar sein"
#: fortran/resolve.c:222
#, no-c-format
@@ -7288,9 +7286,9 @@ msgid "Contained function '%s' at %L has no IMPLICIT type"
msgstr "Enthaltene Funktion »%s bei %L hat keinen IMPLICIT-Typ«"
#: fortran/resolve.c:293
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Character-valued internal function '%s' at %L must not be assumed length"
-msgstr "Zeichenwertige Anweisungsfunktion »%s« bei %L muss konstante Länge haben"
+msgstr "Interne zeichenwertige Funktion »%s« bei %L darf keine vermutete Länge haben"
#: fortran/resolve.c:436
#, no-c-format
@@ -7325,12 +7323,12 @@ msgstr "ENTRY-Ergebnis %s kann nicht vom Typ %s in FUNCTION %s bei %L sein"
#: fortran/resolve.c:590
#, no-c-format
msgid "The element in the derived type constructor at %L, for pointer component '%s', is %s but should be %s"
-msgstr ""
+msgstr "Das Element in Konstruktor abgeleiteten Typs bei %L für Zeigerkomponente »%s« ist %s, sollte aber %s sein"
#: fortran/resolve.c:716
#, no-c-format
msgid "The upper bound in the last dimension must appear in the reference to the assumed size array '%s' at %L."
-msgstr ""
+msgstr "Die obere Schranke in der letzten Dimension muss in der Referenz auf das Feld »%s« vermuteter Größe bei %L auftreten."
#: fortran/resolve.c:781 fortran/resolve.c:3615 fortran/resolve.c:4281
#, no-c-format
@@ -7343,14 +7341,14 @@ msgid "Statement function '%s' at %L is not allowed as an actual argument"
msgstr "Anweisungsfunktion »%s« bei %L ist nicht als effektives Argument erlaubt"
#: fortran/resolve.c:815
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Internal procedure '%s' is not allowed as an actual argument at %L"
-msgstr "Anweisungsfunktion »%s« bei %L ist nicht als effektives Argument erlaubt"
+msgstr "Interne Prozedur »%s« ist nicht als effektives Argument bei %L erlaubt"
#: fortran/resolve.c:821
-#, fuzzy, no-c-format
+#, no-c-format
msgid "ELEMENTAL non-INTRINSIC procedure '%s' is not allowed as an actual argument at %L"
-msgstr "Anweisungsfunktion »%s« bei %L ist nicht als effektives Argument erlaubt"
+msgstr "Elementare nicht-intrinsische Prozedur »%s« ist nicht als effektives Argument bei %L erlaubt"
#: fortran/resolve.c:845
#, no-c-format
@@ -7389,12 +7387,12 @@ msgstr "Funktion »%s« bei %L hat IMPLICIT-Typ"
#: fortran/resolve.c:1211
#, no-c-format
msgid "Function '%s' can be declared in an interface to return CHARACTER(*) but cannot be used at %L"
-msgstr ""
+msgstr "Funktion »%s« kann in einer Schnittstelle deklariert werden, CHARACTER(*) zurückzugeben, kann aber nicht bei %L verwendet werden"
#: fortran/resolve.c:1220
#, no-c-format
msgid "Function '%s' is declared CHARACTER(*) and cannot be used at %L since it is not a dummy argument"
-msgstr ""
+msgstr "Funktion »%s« ist als CHARACTER(*) deklariert und kann nicht bei %L verwendet werden, da es kein Scheinargument ist"
#: fortran/resolve.c:1329
#, no-c-format
@@ -7439,7 +7437,7 @@ msgstr "Spezifisches Unterprogramm »%s« bei %L kann nicht aufgelöst werden"
#: fortran/resolve.c:1573
#, no-c-format
msgid "'%s' at %L has a type, which is not consistent with the CALL at %L"
-msgstr ""
+msgstr "»%s« bei %L hat einen Typen, der nicht zum CALL bei %L passt"
#: fortran/resolve.c:1656
#, no-c-format
@@ -7608,7 +7606,7 @@ msgstr "%s bei %L muss INTEGER sein"
#: fortran/resolve.c:2681
#, no-c-format
msgid "Obsolete: REAL DO loop iterator at %L"
-msgstr "Obsolete: REAL DO Schleifeniterator bei %L"
+msgstr "Veraltet: REAL DO Schleifeniterator bei %L"
#: fortran/resolve.c:2690
#, no-c-format
@@ -7621,29 +7619,29 @@ msgid "Step expression in DO loop at %L cannot be zero"
msgstr "Schrittausdruck in DO-Schleife bei %L kann nicht Null sein"
#: fortran/resolve.c:2749
-#, fuzzy, no-c-format
+#, no-c-format
msgid "FORALL index-name at %L must be a scalar INTEGER"
-msgstr "FORALL-Endausdruck bei %L muss INTEGER sein"
+msgstr "FORALL-Indexname bei %L muss skalarer INTEGER sein"
#: fortran/resolve.c:2754
-#, fuzzy, no-c-format
+#, no-c-format
msgid "FORALL start expression at %L must be a scalar INTEGER"
-msgstr "FORALL-Anfangsausdruck bei %L muss INTEGER sein"
+msgstr "FORALL-Anfangsausdruck bei %L muss skalarer INTEGER sein"
#: fortran/resolve.c:2761
-#, fuzzy, no-c-format
+#, no-c-format
msgid "FORALL end expression at %L must be a scalar INTEGER"
-msgstr "FORALL-Endausdruck bei %L muss INTEGER sein"
+msgstr "FORALL-Endausdruck bei %L muss skalarer INTEGER sein"
#: fortran/resolve.c:2769
-#, fuzzy, no-c-format
+#, no-c-format
msgid "FORALL stride expression at %L must be a scalar %s"
-msgstr "FORALL-Schrittausdruck bei %L muss INTEGER sein"
+msgstr "FORALL-Schrittausdruck bei %L muss skalares %s sein"
#: fortran/resolve.c:2774
-#, fuzzy, no-c-format
+#, no-c-format
msgid "FORALL stride expression at %L cannot be zero"
-msgstr "FORALL-Schrittausdruck bei %L muss INTEGER sein"
+msgstr "FORALL-Schrittausdruck bei %L kann nicht Null sein"
#: fortran/resolve.c:2872
#, no-c-format
@@ -7757,7 +7755,7 @@ msgstr "Marke bei %L ist nicht im gleichen Block wie GOTO-Anweisung bei %L"
#: fortran/resolve.c:3680
#, no-c-format
msgid "Obsolete: GOTO at %L jumps to END of construct at %L"
-msgstr "Veraltet: GOTO bei %L springt zum END des Konstrukts bei %L"
+msgstr "Veraltet: GOTO bei %L springt zum ENDe des Konstrukts bei %L"
#: fortran/resolve.c:3754
#, no-c-format
@@ -7827,10 +7825,10 @@ msgstr "Variable »%s« wurde keine Zielmarke bei %L zugewiesen"
#: fortran/resolve.c:4235
#, no-c-format
msgid "Alternate RETURN statement at %L requires an INTEGER return specifier"
-msgstr "Alternative RETURN-Anweisung bei %L erfordert einen INTEGER als Rückgabe"
+msgstr "Alternative RETURN-Anweisung bei %L erfordert einen INTEGER-Spezifizierer als Rückgabe"
#: fortran/resolve.c:4247
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Subroutine '%s' called instead of assignment at %L must be PURE"
msgstr "Das anstelle einer Zuweisung aufgerufene Unterprogramm »%s« bei %L muss PURE sein"
@@ -7900,9 +7898,9 @@ msgid "Array '%s' at %L cannot have a deferred shape"
msgstr "Feld »%s« bei %L kann keine aufgeschobene Form haben"
#: fortran/resolve.c:4579
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The module or main program array '%s' at %L must have constant shape"
-msgstr "Zuordnungsfähiges Feld »%s« bei %L muss aufgeschobene Form haben"
+msgstr "Das Feld »%s« im Modul oder Hauptprogramm bei %L muss konstante Form haben"
#: fortran/resolve.c:4592
#, no-c-format
@@ -7912,7 +7910,7 @@ msgstr "Entität mit vermuteter Zeichenlänge bei %L muss ein Scheinargument ode
#: fortran/resolve.c:4605
#, no-c-format
msgid "'%s' at %L must have constant character length in this context"
-msgstr ""
+msgstr "»%s« bei %L muss in diesem Zusammenhang konstante Zeichenlänge haben"
#: fortran/resolve.c:4636
#, no-c-format
@@ -7945,9 +7943,9 @@ msgid "Automatic array '%s' at %L cannot have an initializer"
msgstr "Automatisches Feld »%s« bei %L kann keine Initialisierung haben"
#: fortran/resolve.c:4671
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Object '%s' at %L must have the SAVE attribute %s"
-msgstr "Komponente bei %C muss ein POINTER-Attribut haben"
+msgstr "Objekt »%s« bei %L muss das SAVE-Attribut %s haben"
#: fortran/resolve.c:4704
#, no-c-format
@@ -7955,7 +7953,7 @@ msgid "Character-valued statement function '%s' at %L must have constant length"
msgstr "Zeichenwertige Anweisungsfunktion »%s« bei %L muss konstante Länge haben"
#: fortran/resolve.c:4723
-#, fuzzy, no-c-format
+#, no-c-format
msgid "'%s' is of a PRIVATE type and cannot be a dummy argument of '%s', which is PUBLIC at %L"
msgstr "»%s« hat PRIVATE-Typ und kann kein Scheinargument von »%s« sein, das PUBLIC bei %L ist"
@@ -7965,34 +7963,34 @@ msgid "External object '%s' at %L may not have an initializer"
msgstr "Externes Objekt »%s« bei %L darf keine Initialisierung haben"
#: fortran/resolve.c:4757
-#, fuzzy, no-c-format
+#, no-c-format
msgid "CHARACTER(*) function '%s' at %L cannot be array-valued"
-msgstr "Spezifikationsfunktion »%s« bei %L kann keine interne Funktion sein"
+msgstr "CHARACTER(*)-Funktion »%s« bei %L kann nicht Feld-wertig sein"
#: fortran/resolve.c:4761
-#, fuzzy, no-c-format
+#, no-c-format
msgid "CHARACTER(*) function '%s' at %L cannot be pointer-valued"
-msgstr "Spezifikationsfunktion »%s« bei %L kann keine interne Funktion sein"
+msgstr "CHARACTER(*)-Funktion »%s« bei %L kann nicht Zeiger-wertig sein"
#: fortran/resolve.c:4765
-#, fuzzy, no-c-format
+#, no-c-format
msgid "CHARACTER(*) function '%s' at %L cannot be pure"
-msgstr "Spezifikationsfunktion »%s« bei %L kann nicht RECURSIVE sein"
+msgstr "CHARACTER(*)-Funktion »%s« bei %L kann nicht pure sein"
#: fortran/resolve.c:4769
#, no-c-format
msgid "CHARACTER(*) function '%s' at %L cannot be recursive"
-msgstr ""
+msgstr "CHARACTER(*)-Funktion »%s« bei %L kann nicht rekursiv sein"
#: fortran/resolve.c:4778
#, no-c-format
msgid "CHARACTER(*) function '%s' at %L is obsolescent in fortran 95"
-msgstr ""
+msgstr "CHARACTER(*)-Funktion »%s« bei %L in Fortran 95 veraltet"
#: fortran/resolve.c:4803
#, no-c-format
msgid "Character length of component '%s' needs to be a constant specification expression at %L."
-msgstr ""
+msgstr "Zeichenlänge der Komponente »%s« muss ein konstanter Spezifikationsausdruck bei %L sein."
#: fortran/resolve.c:4818
#, no-c-format
@@ -8002,7 +8000,7 @@ msgstr "Die Komponente »%s« ist ein PRIVATE-Typ und kann nicht Komponente von
#: fortran/resolve.c:4836
#, no-c-format
msgid "Component '%s' of '%s' at %L must have constant array bounds."
-msgstr ""
+msgstr "Komponente »%s« von »%s« bei %L muss konstante Feldgrenzen haben."
#: fortran/resolve.c:4860
#, no-c-format
@@ -8057,7 +8055,7 @@ msgstr "Intrinsische Funktion %L existiert nicht"
#: fortran/resolve.c:5166
#, no-c-format
msgid "BLOCK DATA element '%s' at %L must be in COMMON"
-msgstr ""
+msgstr "BLOCK DATA Element »%s« bei %L muss in COMMON sein"
#: fortran/resolve.c:5210
#, no-c-format
@@ -8097,254 +8095,254 @@ msgstr "Variable »%s« abgeleiteten Typs bei %L mit Zeigerkomponenten kann kein
#: fortran/resolve.c:5614
#, no-c-format
msgid "Derived type variable '%s' at %L with default initializer cannot be an EQUIVALENCE object"
-msgstr ""
+msgstr "Variable »%s« abgeleiteten Typs bei %L mit Standardinitialisierung kann kein EQUIVALENCE-Objekt sein."
#: fortran/resolve.c:5715
#, no-c-format
msgid "Syntax error in EQUIVALENCE statement at %L"
-msgstr ""
+msgstr "Syntaxfehler in EQUIVALENCE-Anweisung bei %L"
#: fortran/resolve.c:5732
#, no-c-format
msgid "Initialized objects '%s' and '%s' cannot both be in the EQUIVALENCE statement at %L"
-msgstr ""
+msgstr "Initialisierte Objekte »%s« und »%s« können nicht beide in EQUIVALENCE-Anweisung bei %L sein"
#: fortran/resolve.c:5746
#, no-c-format
msgid "Common block member '%s' at %L cannot be an EQUIVALENCE object in the pure procedure '%s'"
-msgstr ""
+msgstr "Allgemeines Blockelement »%s« bei %L kann kein EQUIVALENCE-Objekt in PURE-Prozedur »%s« sein"
#: fortran/resolve.c:5755
#, no-c-format
msgid "Named constant '%s' at %L cannot be an EQUIVALENCE object"
-msgstr ""
+msgstr "Benannte Konstante »%s« bei %L kann kein EQUIVALENCE-Objekt sein"
#: fortran/resolve.c:5834
#, no-c-format
msgid "Array '%s' at %L with non-constant bounds cannot be an EQUIVALENCE object"
-msgstr ""
+msgstr "Feld »%s« bei %L mit nicht-konstanten Grenzen kann kein EQUIVALENCE-Objekt sein"
#: fortran/resolve.c:5845
#, no-c-format
msgid "Structure component '%s' at %L cannot be an EQUIVALENCE object"
-msgstr ""
+msgstr "Strukturkomponente »%s« bei %L kann kein EQUIVALENCE-Objekt sein"
#: fortran/resolve.c:5856
#, no-c-format
msgid "Substring at %L has length zero"
-msgstr ""
+msgstr "Teilzeichenkette bei %L hat Länge Null"
#: fortran/resolve.c:5899
-#, fuzzy, no-c-format
+#, no-c-format
msgid "PUBLIC function '%s' at %L cannot be of PRIVATE type '%s'"
-msgstr "Funktion »%s« bei %L hat IMPLICIT-Typ"
+msgstr "PUBLIC-Funktion »%s« bei %L kann nicht PRIVATE-Typen »%s« haben"
#: fortran/resolve.c:5911
#, no-c-format
msgid "ENTRY '%s' at %L has no IMPLICIT type"
-msgstr ""
+msgstr "ENTRY »%s« bei %L hat keinen IMPLICIT-Typ"
#: fortran/resolve.c:5947
#, no-c-format
msgid "Contained procedure '%s' at %L of a PURE procedure must also be PURE"
-msgstr ""
+msgstr "Enthaltene Prozedur »%s« bei %L einer PURE-Prozedur muss auch PURE sein"
#: fortran/scanner.c:967
#, no-c-format
msgid "%s:%d: file %s left but not entered"
-msgstr ""
+msgstr "%s:%d: Datei %s verlassen, aber nicht betreten"
#: fortran/scanner.c:994
-#, fuzzy, no-c-format
+#, no-c-format
msgid "%s:%d: Illegal preprocessor directive"
-msgstr "%s in Präprozessordirektive"
+msgstr "%s:%d: Ungültige Präprozessordirektive"
#: fortran/scanner.c:1069
#, no-c-format
msgid "File '%s' is being included recursively"
-msgstr ""
+msgstr "Datei »%s« wird rekursiv eingebunden"
#: fortran/scanner.c:1084
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Can't open file '%s'"
-msgstr "Ausgabedatei »%s« kann nicht geöffnet werden"
+msgstr "Datei »%s« kann nicht geöffnet werden"
#: fortran/scanner.c:1093
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Can't open included file '%s'"
-msgstr "Eingabedatei »%s« kann nicht geöffnet werden"
+msgstr "Eingebundene Datei »%s« kann nicht geöffnet werden"
#: fortran/scanner.c:1195
-#, fuzzy, c-format
+#, c-format
msgid "%s:%3d %s\n"
-msgstr "%s: %s"
+msgstr "%s:%3d %s\n"
#: fortran/simplify.c:101
#, no-c-format
msgid "Result of %s overflows its kind at %L"
-msgstr ""
+msgstr "Ergebnis von %s überschreitet seine Art bei %L"
#: fortran/simplify.c:120
#, no-c-format
msgid "KIND parameter of %s at %L must be an initialization expression"
-msgstr ""
+msgstr "KIND-Parameter von %s bei %L muss ein Initialisierungsausdruck sein"
#: fortran/simplify.c:130
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid KIND parameter of %s at %L"
-msgstr "ungültiger Parameter %qs"
+msgstr "Ungültiger KIND-Parameter von %s bei %L"
#: fortran/simplify.c:227
#, no-c-format
msgid "Extended ASCII not implemented: argument of ACHAR at %L must be between 0 and 127"
-msgstr ""
+msgstr "Erweitertes ASCII nicht implementiert: Argument von ACHAR bei %L muss zwischen 0 und 127 sein"
#: fortran/simplify.c:254
#, no-c-format
msgid "Argument of ACOS at %L must be between -1 and 1"
-msgstr ""
+msgstr "Argument von ACOS bei %L muss zwischen -1 und 1 liegen"
#: fortran/simplify.c:276
#, no-c-format
msgid "Argument of ACOSH at %L must not be less than 1"
-msgstr ""
+msgstr "Argument von ACOSH bei %L darf nicht kleiner als 1 sein"
#: fortran/simplify.c:503
#, no-c-format
msgid "Argument of ASIN at %L must be between -1 and 1"
-msgstr ""
+msgstr "Argument von ASIN bei %L muss zwischen -1 und 1 liegen"
#: fortran/simplify.c:559
#, no-c-format
msgid "Argument of ATANH at %L must be inside the range -1 to 1"
-msgstr ""
+msgstr "Argument von ATANH bei %L muss im Bereich -1 bis 1 liegen"
#: fortran/simplify.c:585
#, no-c-format
msgid "If first argument of ATAN2 %L is zero, then the second argument must not be zero"
-msgstr ""
+msgstr "Wenn das erste Argument von ATAN2 %L Null ist, dann darf das zweite Argument nicht Null sein"
#: fortran/simplify.c:667
#, no-c-format
msgid "Bad character in CHAR function at %L"
-msgstr ""
+msgstr "Ungültiges Zeichen in CHAR-Funktion bei %L"
#: fortran/simplify.c:1195
#, no-c-format
msgid "Argument of IACHAR at %L must be of length one"
-msgstr ""
+msgstr "Argument von IACHAR bei %L muss Länge Eins haben"
#: fortran/simplify.c:1235
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid second argument of IBCLR at %L"
-msgstr "falsches Typ-Argument von %qs"
+msgstr "Ungültiges zweites Argument von IBCLR bei %L"
#: fortran/simplify.c:1243
#, no-c-format
msgid "Second argument of IBCLR exceeds bit size at %L"
-msgstr ""
+msgstr "Zweites Argument von IBCLR überschreitet Bit-Größe bei %L"
#: fortran/simplify.c:1270
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid second argument of IBITS at %L"
-msgstr "falsches Typ-Argument von %qs"
+msgstr "Ungültiges zweites Argument von IBITS bei %L"
#: fortran/simplify.c:1276
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid third argument of IBITS at %L"
-msgstr "falsches Typ-Argument von %qs"
+msgstr "Ungültiges drittes Argument von IBITS bei %L"
#: fortran/simplify.c:1287
#, no-c-format
msgid "Sum of second and third arguments of IBITS exceeds bit size at %L"
-msgstr ""
+msgstr "Summe des zweiten und dritten Arguments von IBITS überschreitet Bit-Größe bei %L"
#: fortran/simplify.c:1335
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid second argument of IBSET at %L"
-msgstr "falsches Typ-Argument von %qs"
+msgstr "Ungültiges zweites Argument von IBSET bei %L"
#: fortran/simplify.c:1343
#, no-c-format
msgid "Second argument of IBSET exceeds bit size at %L"
-msgstr ""
+msgstr "Zweites Argument von IBSET überschreitet Bit-Größe bei %L"
#: fortran/simplify.c:1369
#, no-c-format
msgid "Argument of ICHAR at %L must be of length one"
-msgstr ""
+msgstr "Argument von ICHAR bei %L muss Länge Eins haben"
#: fortran/simplify.c:1377
#, no-c-format
msgid "Argument of ICHAR at %L out of range of this processor"
-msgstr ""
+msgstr "Argument von ICHAR bei %L außerhalb des Wertebereiches dieses Prozessors"
#: fortran/simplify.c:1585
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Argument of INT at %L is not a valid type"
-msgstr "Argument von »asm« ist keine konstante Zeichenkette"
+msgstr "Argument von INT bei %L ist kein gültiger Typ"
#: fortran/simplify.c:1662
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid second argument of ISHFT at %L"
-msgstr "falsches Typ-Argument von %qs"
+msgstr "Ungültiges zweites Argument von ISHFT bei %L"
#: fortran/simplify.c:1678
#, no-c-format
msgid "Magnitude of second argument of ISHFT exceeds bit size at %L"
-msgstr ""
+msgstr "Größe des zweiten Arguments von ISHFT überschreitet Bit-Größe bei %L"
#: fortran/simplify.c:1742
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid second argument of ISHFTC at %L"
-msgstr "falsches Typ-Argument von %qs"
+msgstr "Ungültiges zweites Argument von ISHFTC bei %L"
#: fortran/simplify.c:1752
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid third argument of ISHFTC at %L"
-msgstr "falsches Typ-Argument von %qs"
+msgstr "Ungültiges drittes Argument von ISHFTC bei %L"
#: fortran/simplify.c:1767
#, no-c-format
msgid "Magnitude of second argument of ISHFTC exceeds third argument at %L"
-msgstr ""
+msgstr "Größe des zweiten Arguments von ISHFTC überschreitet drittes Argument bei %L"
#: fortran/simplify.c:1837
#, no-c-format
msgid "Argument of KIND at %L is a DERIVED type"
-msgstr ""
+msgstr "Argument von KIND bei %L ist ein abgeleiteter Typ"
#: fortran/simplify.c:1908
-#, fuzzy, no-c-format
+#, no-c-format
msgid "DIM argument at %L is out of bounds"
-msgstr "Akkumulatorzahl außerhalb der Grenzen"
+msgstr "DIM-Argument bei %L ist außerhalb der Grenzen"
#: fortran/simplify.c:2038
#, no-c-format
msgid "Argument of LOG at %L cannot be less than or equal to zero"
-msgstr ""
+msgstr "Argument von LOG bei %L kann nicht kleiner oder gleich Null sein"
#: fortran/simplify.c:2051
#, no-c-format
msgid "Complex argument of LOG at %L cannot be zero"
-msgstr ""
+msgstr "Komplexes Argument von LOG bei %L kann nicht Null sein"
#: fortran/simplify.c:2095
#, no-c-format
msgid "Argument of LOG10 at %L cannot be less than or equal to zero"
-msgstr ""
+msgstr "Argument von LOG10 bei %L kann nicht kleiner oder gleich Null sein"
#. Result is processor-dependent.
#: fortran/simplify.c:2272
#, no-c-format
msgid "Second argument MOD at %L is zero"
-msgstr ""
+msgstr "Zweites Argument von MOD bei %L ist Null"
#. Result is processor-dependent.
#: fortran/simplify.c:2283
#, no-c-format
msgid "Second argument of MOD at %L is zero"
-msgstr ""
+msgstr "Zweites Argument von MOD bei %L ist Null"
#. Result is processor-dependent. This processor just opts
#. to not handle it at all.
@@ -8352,279 +8350,279 @@ msgstr ""
#: fortran/simplify.c:2331 fortran/simplify.c:2343
#, no-c-format
msgid "Second argument of MODULO at %L is zero"
-msgstr ""
+msgstr "Zweites Argument von MODULO bei %L ist Null"
#: fortran/simplify.c:2400
#, no-c-format
msgid "Second argument of NEAREST at %L may not be zero"
-msgstr ""
+msgstr "Zweites Argument von NEAREST bei %L darf nicht Null sein"
#: fortran/simplify.c:2708
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid second argument of REPEAT at %L"
-msgstr "falsches Typ-Argument von %qs"
+msgstr "Ungültiges zweites Argument von REPEAT bei %L"
#: fortran/simplify.c:2782
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Integer too large in shape specification at %L"
-msgstr "nach vorheriger Spezifikation in %q#D"
+msgstr "Ganzzahl zu groß in Form-Spezifikation bei %L"
#: fortran/simplify.c:2792
#, no-c-format
msgid "Too many dimensions in shape specification for RESHAPE at %L"
-msgstr ""
+msgstr "Zu viele Dimensionen in Form-Spezifikation für RESHAPE bei %L"
#: fortran/simplify.c:2800
#, no-c-format
msgid "Shape specification at %L cannot be negative"
-msgstr ""
+msgstr "Form-Spezifikation bei %L kann nicht negativ sein"
#: fortran/simplify.c:2810
#, no-c-format
msgid "Shape specification at %L cannot be the null array"
-msgstr ""
+msgstr "Form-Spezifikation bei %L kann nicht das Null-Feld sein"
#: fortran/simplify.c:2834
#, no-c-format
msgid "ORDER parameter of RESHAPE at %L is not the same size as SHAPE parameter"
-msgstr ""
+msgstr "ORDER-Parameter von RESHAPE bei %L hat nicht die gleiche Größe wie SHAPE-Parameter"
#: fortran/simplify.c:2841
#, no-c-format
msgid "Error in ORDER parameter of RESHAPE at %L"
-msgstr ""
+msgstr "Fehler in ORDER-Parameter von RESHAPE bei %L"
#: fortran/simplify.c:2851
#, no-c-format
msgid "ORDER parameter of RESHAPE at %L is out of range"
-msgstr ""
+msgstr "ORDER-Parameter von RESHAPE bei %L ist außerhalb des Wertebereiches"
#: fortran/simplify.c:2860
#, no-c-format
msgid "Invalid permutation in ORDER parameter at %L"
-msgstr ""
+msgstr "Ungültige Permutation in ORDER-Parameter bei %L"
#: fortran/simplify.c:2917
#, no-c-format
msgid "PAD parameter required for short SOURCE parameter at %L"
-msgstr ""
+msgstr "PAD-Parameter erforderlich für kurzen SOURCE-Parameter bei %L"
#: fortran/simplify.c:3051
#, no-c-format
msgid "Result of SCALE overflows its kind at %L"
-msgstr ""
+msgstr "Ergebnis von SCALE überschreitet seine Art bei %L"
#: fortran/simplify.c:3632
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Argument of SQRT at %L has a negative value"
-msgstr "Funktionsaufruf hat zusammengesetzten Wert"
+msgstr "Argument von SQRT bei %L hat negativen Wert"
#: fortran/symbol.c:111
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Duplicate IMPLICIT NONE statement at %C"
-msgstr "Nicht unterstützte VXT-Anweisung bei %0"
+msgstr "Doppelte IMPLICIT NONE-Anweisung bei %C"
#: fortran/symbol.c:151
#, no-c-format
msgid "Letter '%c' already set in IMPLICIT statement at %C"
-msgstr ""
+msgstr "Buchstabe »%c« bereits gesetzt in IMPLICIT-Anweisung bei %C"
#: fortran/symbol.c:173
#, no-c-format
msgid "Cannot specify IMPLICIT at %C after IMPLICIT NONE"
-msgstr ""
+msgstr "IMPLICIT bei %C kann nicht hinter IMPLICIT NONE angegeben werden"
#: fortran/symbol.c:184
#, no-c-format
msgid "Letter %c already has an IMPLICIT type at %C"
-msgstr ""
+msgstr "Buchstabe %c hat bereits einen IMPLICIT-Typ bei %C"
#: fortran/symbol.c:232
#, no-c-format
msgid "Symbol '%s' at %L has no IMPLICIT type"
-msgstr ""
+msgstr "Symbol »%s« bei %L hat keinen IMPLICIT-Typ"
#: fortran/symbol.c:304
-#, fuzzy, no-c-format
+#, no-c-format
msgid "%s attribute not allowed in BLOCK DATA program unit at %L"
-msgstr "Anweisung bei %0 ungültig in BLOCK DATA - Programmeinheit bei %1"
+msgstr "Attribut %s ungültig in BLOCK DATA - Programmeinheit bei %L"
#: fortran/symbol.c:506 fortran/symbol.c:997
-#, fuzzy, no-c-format
+#, no-c-format
msgid "%s attribute conflicts with %s attribute at %L"
-msgstr "Attribut %qs bezieht sich nur auf Variablen"
+msgstr "Attribut %s steht mit Attribut %s bei %L in Konflikt"
#: fortran/symbol.c:509
#, no-c-format
msgid "%s attribute conflicts with %s attribute in '%s' at %L"
-msgstr ""
+msgstr "Attribut %s steht mit Attribut %s in »%s« bei %L in Konflikt"
#: fortran/symbol.c:551
#, no-c-format
msgid "Cannot change attributes of USE-associated symbol at %L"
-msgstr ""
+msgstr "Attribute des USE-verbundenen Symbols bei %L können nicht verändert werden"
#: fortran/symbol.c:554
#, no-c-format
msgid "Cannot change attributes of USE-associated symbol %s at %L"
-msgstr ""
+msgstr "Attribute des USE-verbundenen Symbols %s bei %L können nicht verändert werden"
#: fortran/symbol.c:576
#, no-c-format
msgid "Cannot change attributes of symbol at %L after it has been used"
-msgstr ""
+msgstr "Attribute des Symbols bei %L können nicht verändert werden nachdem es verwendet wurde"
#: fortran/symbol.c:592
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Duplicate %s attribute specified at %L"
-msgstr "mehrere Funktionstypattribute angegeben"
+msgstr "Attribut %s doppelt angegeben bei %L"
#: fortran/symbol.c:733
#, no-c-format
msgid "Cray Pointee at %L appears in multiple pointer() statements."
-msgstr ""
+msgstr "Cray-Zeigerende bei %L tritt in mehreren pointer()-Anweisungen auf."
#: fortran/symbol.c:765
-#, fuzzy, no-c-format
+#, no-c-format
msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
-msgstr "SAVE-Anweisung oder Attribut bei %1 kann nicht zusammen mit SAVE-Anweisung oder -Attribut bei %0 angegeben werden"
+msgstr "SAVE-Attribut bei %L kann nicht in einer PURE-Prozedur angegeben werden"
#: fortran/symbol.c:773
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Duplicate SAVE attribute specified at %L"
-msgstr "mehrere Funktionstypattribute angegeben"
+msgstr "SAVE-Attribut doppelt angegeben bei %L"
#: fortran/symbol.c:1027
#, no-c-format
msgid "%s procedure at %L is already declared as %s procedure"
-msgstr ""
+msgstr "Prozedur %s bei %L ist bereits als Prozedur %s deklariert"
#: fortran/symbol.c:1062
#, no-c-format
msgid "INTENT (%s) conflicts with INTENT(%s) at %L"
-msgstr ""
+msgstr "INTENT(%s) steht mit INTENT(%s) bei %L in Konflikt"
#: fortran/symbol.c:1085
#, no-c-format
msgid "ACCESS specification at %L was already specified"
-msgstr ""
+msgstr "ACCESS-Spezifikation bei %L wurde bereits spezifiziert"
#: fortran/symbol.c:1105
#, no-c-format
msgid "Symbol '%s' at %L already has an explicit interface"
-msgstr ""
+msgstr "Symbol »%s« bei %L hat bereits eine explizite Schnittstelle"
#: fortran/symbol.c:1133
#, no-c-format
msgid "Symbol '%s' at %L already has basic type of %s"
-msgstr ""
+msgstr "Symbol »%s« bei %L hat bereits grundlegenden Typen %s"
#: fortran/symbol.c:1145
#, no-c-format
msgid "Symbol '%s' at %L cannot have a type"
-msgstr ""
+msgstr "Symbol »%s« bei %L kann keinen Typen haben"
#: fortran/symbol.c:1283
#, no-c-format
msgid "Component '%s' at %C already declared at %L"
-msgstr ""
+msgstr "Komponente »%s« bei %C bereits bei %L deklariert"
#: fortran/symbol.c:1361
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Symbol '%s' at %C is ambiguous"
-msgstr "Verwendung von %qD ist mehrdeutig"
+msgstr "Symbol»%s« bei %C ist mehrdeutig"
#: fortran/symbol.c:1393
#, no-c-format
msgid "Derived type '%s' at %C is being used before it is defined"
-msgstr ""
+msgstr "Abgeleiteter Typ »%s« bei %C wird benutzt bevor er definiert wird"
#: fortran/symbol.c:1421
-#, fuzzy, no-c-format
+#, no-c-format
msgid "'%s' at %C is not a member of the '%s' structure"
-msgstr "%qD ist kein Element vom Typ %qT"
+msgstr "»%s« bei %C ist kein Element der Struktur »%s«"
#: fortran/symbol.c:1427
#, no-c-format
msgid "Component '%s' at %C is a PRIVATE component of '%s'"
-msgstr ""
+msgstr "Komponente »%s« bei %C ist eine PRIVATE-Komponente von »%s«"
#: fortran/symbol.c:1571
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Duplicate statement label %d at %L and %L"
-msgstr "Doppelte case-Marke: %<default%>"
+msgstr "Doppelte Anweisungsmarke %d bei %L und %L"
#: fortran/symbol.c:1581
#, no-c-format
msgid "Label %d at %C already referenced as branch target"
-msgstr ""
+msgstr "Marke %d bei %C bereits als Sprungziel referenziert"
#: fortran/symbol.c:1590
#, no-c-format
msgid "Label %d at %C already referenced as a format label"
-msgstr ""
+msgstr "Marke %d bei %C bereits als eine Formatmarke referenziert"
#: fortran/symbol.c:1632
#, no-c-format
msgid "Label %d at %C previously used as a FORMAT label"
-msgstr ""
+msgstr "Marke %d bei %C vorher als FORMAT-Marke verwendet"
#: fortran/symbol.c:1640
#, no-c-format
msgid "Label %d at %C previously used as branch target"
-msgstr ""
+msgstr "Marke %d bei %C vorher als Sprungziel verwendet"
#: fortran/symbol.c:1893
#, no-c-format
msgid "Name '%s' at %C is an ambiguous reference to '%s' from module '%s'"
-msgstr ""
+msgstr "Name »%s« bei %C ist eine mehrdeutige Referenz auf »%s« vom Modul »%s«"
#: fortran/symbol.c:1896
#, no-c-format
msgid "Name '%s' at %C is an ambiguous reference to '%s' from current program unit"
-msgstr ""
+msgstr "Name »%s« bei %C ist eine mehrdeutige Referenz auf »%s« von aktueller Programmeinheit"
#. Symbol is from another namespace.
#: fortran/symbol.c:2033
#, no-c-format
msgid "Symbol '%s' at %C has already been host associated"
-msgstr ""
+msgstr "Symbol »%s« bei %C wurde bereits mit Host verbunden"
#: fortran/trans-common.c:331
#, no-c-format
msgid "Named COMMON block '%s' at %L shall be of the same size"
-msgstr ""
+msgstr "Benannter COMMON-Block »%s« bei %L sollte die gleiche Größe haben"
#: fortran/trans-common.c:629
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Bad array reference at %L"
-msgstr "Nullelement bei %0 für Feldreferenz bei %1"
+msgstr "Ungültige Feldreferenz bei %L"
#: fortran/trans-common.c:637
#, no-c-format
msgid "Illegal reference type at %L as EQUIVALENCE object"
-msgstr ""
+msgstr "Ungültiger Referenztyp bei %L als EQUIVALENCE-Objekt"
#: fortran/trans-common.c:677
#, no-c-format
msgid "Inconsistent equivalence rules involving '%s' at %L and '%s' at %L"
-msgstr ""
+msgstr "Inkonsistente Äquivalenzregeln mit »%s« bei %L und »%s« bei %L"
#. Aligning this field would misalign a previous field.
#: fortran/trans-common.c:799
#, no-c-format
msgid "The equivalence set for variable '%s' declared at %L violates alignment requirents"
-msgstr ""
+msgstr "Die Äquivalenzmenge für bei %2$L deklarierte Variable »%1$s« verletzt Ausrichtungsanforderungen"
#: fortran/trans-common.c:864
#, no-c-format
msgid "Equivalence for '%s' does not match ordering of COMMON '%s' at %L"
-msgstr ""
+msgstr "Äquivalenz für »%s« passt nicht zur Anordnung von COMMON »%s« bei %L"
#: fortran/trans-common.c:879
#, no-c-format
msgid "The equivalence set for '%s' cause an invalid extension to COMMON '%s' at %L"
-msgstr ""
+msgstr "Die Äquivalenzmenge für »%s« bewirkt eine ungültige Erweiterung für COMMON »%s« bei %L"
#. The required offset conflicts with previous alignment
#. requirements. Insert padding immediately before this
@@ -8632,71 +8630,69 @@ msgstr ""
#: fortran/trans-common.c:890
#, no-c-format
msgid "Padding of %d bytes required before '%s' in COMMON '%s' at %L"
-msgstr ""
+msgstr "Auffüllen mit %d Bytes vor »%s« in COMMON »%s« bei %L erforderlich"
#: fortran/trans-common.c:916
#, no-c-format
msgid "COMMON '%s' at %L requires %d bytes of padding at start"
-msgstr ""
+msgstr "COMMON »%s« bei %L erfordert Auffüllen mit »%d« Bytes am Anfang"
#: fortran/trans-const.c:158
msgid "Array bound mismatch"
-msgstr ""
+msgstr "Feldgrenzenkonflikt"
#: fortran/trans-const.c:161
-#, fuzzy
msgid "Array reference out of bounds"
-msgstr "Referenz auf »void« wird gebildet"
+msgstr "Feldreferenz außerhalb des Wertebereichs"
#: fortran/trans-const.c:164
-#, fuzzy
msgid "Incorrect function return value"
-msgstr "%<noreturn%>-Funktion gibt nicht-void-Wert zurück"
+msgstr "Falscher Funktions-Rückgabewert"
#: fortran/trans-decl.c:438
-#, fuzzy, no-c-format
+#, no-c-format
msgid "storage size not known"
-msgstr "Speichergröße von %qD ist unbekannt"
+msgstr "Speichergröße unbekannt"
#: fortran/trans-decl.c:445
-#, fuzzy, no-c-format
+#, no-c-format
msgid "storage size not constant"
-msgstr "Speichergröße von %qD ist nicht konstant"
+msgstr "Speichergröße nicht konstant"
#: fortran/trans-io.c:533
msgid "Assigned label is not a format label"
-msgstr ""
+msgstr "Zugewiesene Marke ist keine Formatmarke"
#: fortran/trans-io.c:974
#, no-c-format
msgid "INQUIRE statement at %L cannot contain both FILE and UNIT specifiers."
-msgstr ""
+msgstr "INQUIRE-Anweisung bei %L kann nicht gleichzeitig FILE- und UNIT-Spezifizierer enthalten"
#: fortran/trans-stmt.c:163
msgid "Assigned label is not a target label"
-msgstr ""
+msgstr "Zugewiesene Marke ist keine Zielmarke"
#. Check the label list.
#: fortran/trans-stmt.c:179
msgid "Assigned label is not in the list"
-msgstr ""
+msgstr "Zugewiesene Marke ist nicht in der Liste"
#: fortran/trans-stmt.c:319
-#, fuzzy, no-c-format
+#, no-c-format
msgid "An alternate return at %L without a * dummy argument"
-msgstr "Alternativer Rückgabespezifizierer bei %0 ungültig innerhalb Hauptprogrammeinheit"
+msgstr "Alternative Rückkehr bei %L ohne ein *-Scheinargument"
#. FIXME: i18n bug here. Order of prints should not be
#. fixed.
#: java/gjavah.c:916
#, c-format
msgid "ignored method '"
-msgstr "ignorierte Methode '"
+msgstr "als virtuell markierte Methode '"
#: java/gjavah.c:918
#, c-format
msgid "' marked virtual\n"
-msgstr "' als virtuell markiert\n"
+msgstr "' ignoriert\n"
#: java/gjavah.c:2356
#, c-format
@@ -8867,7 +8863,8 @@ msgid ""
msgstr ""
"Zum Einsenden von Fehlerberichten (auf Englisch) siehe:\n"
"%s.\n"
-"Fehler in der deutschen Ãœbersetzung sind an de@li.org zu melden.\n"
+"Fehler in der deutschen Ãœbersetzung sind an\n"
+"translation-team-de@lists.sourceforge.net zu melden.\n"
#: java/gjavah.c:2581
#, c-format
@@ -9080,14 +9077,12 @@ msgid "the m210 does not have little endian support"
msgstr "der m210 hat keine Little-Endian-Unterstützung"
#: config/lynx.h:71
-#, fuzzy
msgid "cannot use mthreads and mlegacy-threads together"
-msgstr "mthreads und mlegacy-threads können nicht zusammen verwendet werden."
+msgstr "mthreads und mlegacy-threads können nicht zusammen verwendet werden"
#: config/lynx.h:96
-#, fuzzy
msgid "cannot use mshared and static together"
-msgstr "mshared und static können nicht zusammen verwendet werden."
+msgstr "mshared und static können nicht zusammen verwendet werden"
#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22
#: config/sparc/sol2-bi.h:169 config/sparc/sol2-bi.h:174
@@ -9111,9 +9106,8 @@ msgid "shared and mdll are not compatible"
msgstr "shared und mdll sind unverträglich"
#: config/vax/netbsd-elf.h:42
-#, fuzzy
msgid "the -shared option is not currently supported for VAX ELF"
-msgstr "Die Option -shared wird derzeit nicht für VAX ELF unterstützt."
+msgstr "Die Option -shared wird derzeit nicht für VAX ELF unterstützt"
#: config/vax/vax.h:50 config/vax/vax.h:51
msgid "profiling not supported with -mg\n"
@@ -9164,9 +9158,8 @@ msgid "-E or -x required when input is from standard input"
msgstr "-E oder -x benötigt, wenn die Eingabe von der Standardeingabe kommt"
#: config/s390/tpf.h:125
-#, fuzzy
msgid "static is not supported on TPF-OS"
-msgstr "Kellergrenzen nicht für dieses Ziel unterstützt"
+msgstr "static wird auf TPF-OS nicht unterstützt"
#: config/sh/sh.h:460
msgid "SH2a does not support little-endian"
@@ -9179,9 +9172,8 @@ msgid "may not use both -m32 and -m64"
msgstr "-m32 und -m64 können nicht zusammen angegeben werden"
#: config/vxworks.h:66
-#, fuzzy
msgid "-Xbind-now and -Xbind-lazy are incompatible"
-msgstr "-membedded-pic und -mabicalls sind unverträglich"
+msgstr "-Xbind-now und -Xbind-lazy sind unverträglich"
#: config/i386/nwld.h:35
msgid "Static linking is not supported.\n"
@@ -9232,9 +9224,8 @@ msgid "-private_bundle not allowed with -dynamiclib"
msgstr "-private_bundle ist mit -dynamiclib nicht erlaubt"
#: java/lang.opt:66
-#, fuzzy
msgid "Warn if a deprecated compiler feature, class, method, or field is used"
-msgstr "Bei veralteten Compiler-Merkmalen warnen"
+msgstr "Warnen, wenn veraltetes Compiler-Merkmal, Klasse, Methode oder Feld verwendet wird"
#: java/lang.opt:70
msgid "Warn if deprecated empty statements are found"
@@ -9249,18 +9240,16 @@ msgid "Warn if modifiers are specified when not necessary"
msgstr "Bei unnötig angegebenen Modifizierern warnen"
#: java/lang.opt:82
-#, fuzzy
msgid "Deprecated; use --classpath instead"
-msgstr "--CLASSPATH\tVeraltet; stattdessen --classpath verwenden"
+msgstr "Veraltet; stattdessen --classpath verwenden"
#: java/lang.opt:86
msgid "Permit the use of the assert keyword"
msgstr "Die Verwendung des Schlüsselworts »assert« erlauben"
#: java/lang.opt:108
-#, fuzzy
msgid "Replace system path"
-msgstr "--bootclasspath=<Pfad>\tSystempfad ersetzen"
+msgstr "Systempfad ersetzen"
#: java/lang.opt:112
msgid "Generate checks for references to NULL"
@@ -9268,7 +9257,7 @@ msgstr "Prüfungen auf Referenzen auf NULL erzeugen"
#: java/lang.opt:116
msgid "Set class path"
-msgstr ""
+msgstr "Klassenpfad setzen"
#: java/lang.opt:123
msgid "Output a class file"
@@ -9279,14 +9268,12 @@ msgid "Alias for -femit-class-file"
msgstr "Alias für -femit-class-file"
#: java/lang.opt:131
-#, fuzzy
msgid "Choose input encoding (defaults from your locale)"
-msgstr "--encoding=<Kodierung>\tEingabekodierung auswählen (Standard: aktuelle locale)"
+msgstr "Eingabekodierung auswählen (Standard: aktuelle Locale)"
#: java/lang.opt:135
-#, fuzzy
msgid "Set the extension directory path"
-msgstr "--extdirs=<Pfad>\tDen Pfad für das Erweiterungsverzeichnis setzen"
+msgstr "Den Pfad für das Erweiterungsverzeichnis setzen"
#: java/lang.opt:139
msgid "Input file is a file with a list of filenames to compile"
@@ -9326,20 +9313,19 @@ msgstr "Eine Bibiotheksroutine aufrufen, um Ganzahldivision durchzuführen"
#: java/lang.opt:181
msgid "Generated should be loaded by bootstrap loader"
-msgstr ""
+msgstr "Generiertes sollte vom Bootstrap-Loader geladen werden"
#: ada/lang.opt:74
msgid "Specify options to GNAT"
-msgstr ""
+msgstr "Optionen für GNAT angeben"
#: fortran/lang.opt:30
msgid "Add a directory for INCLUDE and MODULE searching"
-msgstr ""
+msgstr "Ein Verzeichnis für INCLUDE- und MODULE-Suche hinzufügen"
#: fortran/lang.opt:34
-#, fuzzy
msgid "Put MODULE files in 'directory'"
-msgstr "-J<Verzeichnis>\tMODULE-Dateien in »Verzeichnis« ablegen"
+msgstr "MODULE-Dateien in »Verzeichnis« ablegen"
#: fortran/lang.opt:42
msgid "Warn about possible aliasing of dummy arguments"
@@ -9363,7 +9349,7 @@ msgstr "Bei Verwendung von Nicht-Standard-Intrinsics warnen"
#: fortran/lang.opt:62
msgid "Warn about \"suspicious\" constructs"
-msgstr "Bei \"verdächtigen\" Konstrukten warnen"
+msgstr "Bei »verdächtigen« Konstrukten warnen"
#: fortran/lang.opt:66
msgid "Warn about underflow of numerical constant expressions"
@@ -9375,11 +9361,11 @@ msgstr "Warnen, wenn eine Marke ungenutzt bleibt"
#: fortran/lang.opt:74
msgid "Do not treat local variables and COMMON blocks as if they were named in SAVE statements"
-msgstr ""
+msgstr "Lokale Variablen und COMMON-Blöcke behandeln, als ob sie in SAVE-Anweisungen benannt worden wären"
#: fortran/lang.opt:78
msgid "Specify that backslash in string introduces an escape character"
-msgstr ""
+msgstr "Angeben, dass Bachslashes in Zeichenketten ein Fluchtzeichen einführen"
#: fortran/lang.opt:82
msgid "Set the default double precision kind to an 8 byte wide type"
@@ -9395,23 +9381,21 @@ msgstr "Standard-Realzahlart auf einen 8 Bytes breiten Typen setzen"
#: fortran/lang.opt:94
msgid "Ignore 'D' in column one in fixed form"
-msgstr ""
+msgstr "»D« in Spalte eins in statischer Form ignorieren"
#: fortran/lang.opt:98
msgid "Treat lines with 'D' in column one as comments"
-msgstr ""
+msgstr "Zeilen mit »D« in Spalte eins als Kommentar behandeln"
#: fortran/lang.opt:102
msgid "Allow dollar signs in entity names"
msgstr "Dollarzeichen in Entity-Namen erlauben"
#: fortran/lang.opt:106
-#, fuzzy
msgid "Display the code tree after parsing"
-msgstr "Compiler-Version anzeigen"
+msgstr "Codebaum nach Analyse anzeigen"
#: fortran/lang.opt:110
-#, fuzzy
msgid "Use f2c calling convention"
msgstr "f2c-Aufrufkonvention verwenden"
@@ -9428,9 +9412,8 @@ msgid "Append underscores to externally visible names"
msgstr "Unterstriche an extern sichtbare Namen anhängen"
#: fortran/lang.opt:126
-#, fuzzy
msgid "Use the Cray Pointer extension"
-msgstr "Cygwin-Schnittstelle verwenden"
+msgstr "Die Cray-Zeiger-Erweiterung verwenden"
#: fortran/lang.opt:130
msgid "Append a second underscore if the name already contains an underscore"
@@ -9445,29 +9428,24 @@ msgid "Allow arbitrary character line width in fixed mode"
msgstr "Im festen Modus beliebig lange Zeilen erlauben"
#: fortran/lang.opt:142
-#, fuzzy
msgid "Use n as character line width in fixed mode"
-msgstr "Im festen Modus beliebig lange Zeilen erlauben"
+msgstr "N als Zeilenbreite im festen Modus verwenden"
#: fortran/lang.opt:146
-#, fuzzy
msgid "Allow arbitrary character line width in free mode"
-msgstr "Im festen Modus beliebig lange Zeilen erlauben"
+msgstr "Im freien Modus beliebig lange Zeilen erlauben"
#: fortran/lang.opt:150
-#, fuzzy
msgid "Use n as character line width in free mode"
-msgstr "Im festen Modus beliebig lange Zeilen erlauben"
+msgstr "N als Zeilenbreite im freien Modus verwenden"
#: fortran/lang.opt:154
-#, fuzzy
msgid "Maximum identifier length"
-msgstr "-fmax-identifier-length=<n>\tMaximale Bezeichnerlänge."
+msgstr "Maximale Bezeichnerlänge"
#: fortran/lang.opt:158
-#, fuzzy
msgid "Size in bytes of the largest array that will be put on the stack"
-msgstr "-fmax-stack-var-size=<n>\tGröße des größten Feldes, das auf dem Stack abgelegt wird, in Bytes"
+msgstr "Größe des größten Feldes, das auf dem Stack abgelegt wird, in Bytes"
#: fortran/lang.opt:162
msgid "Set default accessibility of module entities to PRIVATE"
@@ -9486,69 +9464,60 @@ msgid "Copy array sections into a contiguous block on procedure entry"
msgstr "Feldabschnitte bei Prozedureintritt in einen zusammenhängenden Block kopieren"
#: fortran/lang.opt:178
-#, fuzzy
msgid "Treat the input file as preprocessed"
msgstr "Die Eingabedatei als bereits vorverarbeitet behandeln"
#: fortran/lang.opt:182
-#, fuzzy
msgid "Set the kind for a real with the 'q' exponent to 'n'"
-msgstr "-qkind=<n>\tDie Art für eine Realzahl mit Exponent q auf n setzen"
+msgstr "Die Art für eine Realzahl mit Exponent »q« auf »n« setzen"
#: fortran/lang.opt:186
-#, fuzzy
msgid "Stop on following floating point exceptions"
-msgstr "Fließkommadivision nicht »inline« generieren"
+msgstr "Bei folgenden Fließkommaausnahmen anhalten"
#: fortran/lang.opt:190
-#, fuzzy
msgid "Conform to the ISO Fortran 95 standard"
msgstr "Mit dem Standard ISO Fortran 95 übereinstimmen"
#: fortran/lang.opt:194
-#, fuzzy
msgid "Conform to the ISO Fortran 2003 standard"
msgstr "Mit dem Standard ISO Fortran 2003 übereinstimmen"
#: fortran/lang.opt:198
-#, fuzzy
msgid "Conform nothing in particular"
-msgstr "Mit nichts besonderem übereinstimmen."
+msgstr "Mit nichts besonderem übereinstimmen"
#: fortran/lang.opt:202
msgid "Accept extensions to support legacy code"
-msgstr ""
+msgstr "Erweiterungen akzeptieren, um alten Code zu unterstützen"
#: fortran/lang.opt:206 c.opt:661
msgid "Use the narrowest integer type possible for enumeration types"
msgstr "Den schmalstmöglichen Ganzzahltyp für Aufzählungstypen verwenden"
#: fortran/lang.opt:210
-#, fuzzy
msgid "Use little-endian format for unformatted files"
-msgstr "»little-endian« Bytereihenfolge für Daten verwenden"
+msgstr "Little-Endian-Format für unformatierte Dateien verwenden"
#: fortran/lang.opt:214
-#, fuzzy
msgid "Use big-endian format for unformatted files"
-msgstr "Big-Endian Byte-Reihenfolge verwenden"
+msgstr "Big-Endian-Format für unformatierte Dateien verwenden"
#: fortran/lang.opt:218
msgid "Use native format for unformatted files"
-msgstr ""
+msgstr "Das eigene Format für unformatierte Dateien verwenden"
#: fortran/lang.opt:222
msgid "Swap endianness for unformatted files"
-msgstr ""
+msgstr "Bytereihenfolge für unformatierte Dateien wechseln"
#: treelang/lang.opt:30
msgid "Trace lexical analysis"
-msgstr ""
+msgstr "Lexikalische Analyse verfolgen"
#: treelang/lang.opt:34
-#, fuzzy
msgid "Trace the parsing process"
-msgstr "Auf AM33-Prozessor abzielen"
+msgstr "Parsing-Prozess verfolgen"
#: config/alpha/alpha.opt:24 config/i386/i386.opt:186
msgid "Do not use hardware fp"
@@ -9596,7 +9565,7 @@ msgstr "Code für die Video-ISA-Erweiterung erzeugen"
#: config/alpha/alpha.opt:71
msgid "Emit code for the fp move and sqrt ISA extension"
-msgstr "Code für die FP-Move und SQRT-ISA-Erweiterung erzeugen"
+msgstr "Code für die FP-Move- und SQRT-ISA-Erweiterung erzeugen"
#: config/alpha/alpha.opt:75
msgid "Emit code for the counting ISA extension"
@@ -9619,13 +9588,12 @@ msgid "Emit direct branches to local functions"
msgstr "Direkte Zweige in lokalen Funktionen erzeugen"
#: config/alpha/alpha.opt:95
-#, fuzzy
msgid "Emit indirect branches to local functions"
msgstr "Direkte Zweige in lokalen Funktionen erzeugen"
#: config/alpha/alpha.opt:99
msgid "Emit rdval instead of rduniq for thread pointer"
-msgstr "rdval statt rduniq für Zhread-Zeiger erzeugen"
+msgstr "rdval statt rduniq für Thread-Zeiger erzeugen"
#: config/alpha/alpha.opt:103 config/s390/s390.opt:56
#: config/sparc/long-double-switch.opt:24
@@ -9667,89 +9635,80 @@ msgid "Specify bit size of immediate TLS offsets"
msgstr "Bit-Breite des unmittelbaren TLS-Versatzes angeben"
#: config/frv/frv.opt:24
-#, fuzzy
msgid "Use 4 media accumulators"
-msgstr "Multiplizier-Zwischenspeicher verwenden"
+msgstr "4 Media-Register verwenden"
#: config/frv/frv.opt:28
-#, fuzzy
msgid "Use 8 media accumulators"
-msgstr "Multiplizier-Zwischenspeicher verwenden"
+msgstr "8 Media-Register verwenden"
#: config/frv/frv.opt:32
-#, fuzzy
msgid "Enable label alignment optimizations"
-msgstr "Binder-Optimierungen einschalten"
+msgstr "Markenausrichtungs-Optimierungen einschalten"
#: config/frv/frv.opt:36
-#, fuzzy
msgid "Dynamically allocate cc registers"
-msgstr "Nicht das BK-Register belegen"
+msgstr "CC-Register dynamisch belegen"
#: config/frv/frv.opt:43
msgid "Set the cost of branches"
-msgstr ""
+msgstr "Sprungkosten setzen"
#: config/frv/frv.opt:47
msgid "Enable conditional execution other than moves/scc"
-msgstr ""
+msgstr "Bedingte Ausführung statt Kopieren/scc einschalten"
#: config/frv/frv.opt:51
-#, fuzzy
msgid "Change the maximum length of conditionally-executed sequences"
-msgstr "Größte Länge des betrachteten Pfades in cse"
+msgstr "Größte Länge der bedingt ausgeführten Sequenzen ändern"
#: config/frv/frv.opt:55
msgid "Change the number of temporary registers that are available to conditionally-executed sequences"
-msgstr ""
+msgstr "Anzahl der temporären Register ändern, die für bedingt ausgeführte Sequenzen zur Verfügung stehen"
#: config/frv/frv.opt:59
-#, fuzzy
msgid "Enable conditional moves"
-msgstr "Verwendung bedingter Kopierbefehle einschalten"
+msgstr "Bedingte Kopierbefehle einschalten"
#: config/frv/frv.opt:63
-#, fuzzy
msgid "Set the target CPU type"
-msgstr "Namen der Ziel-CPU angeben"
+msgstr "Ziel-CPU-Typ angeben"
#: config/frv/frv.opt:85
-#, fuzzy
msgid "Use fp double instructions"
-msgstr "AltiVec-Befehle verwenden"
+msgstr "Fließkomma-double-Befehle verwenden"
#: config/frv/frv.opt:89
msgid "Change the ABI to allow double word insns"
-msgstr ""
+msgstr "ABI ändern, um Doubleword-Befehle zuzulassen"
#: config/frv/frv.opt:93
-#, fuzzy
msgid "Enable Function Descriptor PIC mode"
-msgstr "Funktionsprofilierung einschalten"
+msgstr "Funktionsdeskriptor-PIC-Modus einschalten"
#: config/frv/frv.opt:97
msgid "Just use icc0/fcc0"
-msgstr ""
+msgstr "Einfach icc0/fcc0 verwenden"
#: config/frv/frv.opt:101
msgid "Only use 32 FPRs"
-msgstr ""
+msgstr "Nur 32 FPRs verwenden"
#: config/frv/frv.opt:105
msgid "Use 64 FPRs"
-msgstr ""
+msgstr "64 FPRs verwenden"
#: config/frv/frv.opt:109
msgid "Only use 32 GPRs"
-msgstr ""
+msgstr "Nur 32 GPR verwenden"
#: config/frv/frv.opt:113
msgid "Use 64 GPRs"
-msgstr ""
+msgstr "64 GPRs verwenden"
#: config/frv/frv.opt:117
msgid "Enable use of GPREL for read-only data in FDPIC"
-msgstr ""
+msgstr "Verwendung von GPREL für Nur-Lese-Daten in FDPIC einschalten"
#: config/frv/frv.opt:121 config/rs6000/rs6000.opt:93
#: config/pdp11/pdp11.opt:72
@@ -9757,64 +9716,56 @@ msgid "Use hardware floating point"
msgstr "Hardware-Fließkomma verwenden"
#: config/frv/frv.opt:125
-#, fuzzy
msgid "Enable inlining of PLT in function calls"
-msgstr "Wächter in Funktionsaufruf fehlt"
+msgstr "Inlining von PLT in Funktionsaufrufen einschalten"
#: config/frv/frv.opt:129
-#, fuzzy
msgid "Enable PIC support for building libraries"
-msgstr "Unterstützung für große Objekte einschalten"
+msgstr "PIC-Unterstützung beim Bauen von Bibliotheken einschalten"
#: config/frv/frv.opt:133
msgid "Follow the EABI linkage requirements"
-msgstr ""
+msgstr "Den EABI Bindeanforderungen folgen"
#: config/frv/frv.opt:137
-#, fuzzy
msgid "Disallow direct calls to global functions"
-msgstr "Direkte Zweige in lokalen Funktionen erzeugen"
+msgstr "Direkte Aufrufe von globalen Funktionen verbieten"
#: config/frv/frv.opt:141
-#, fuzzy
msgid "Use media instructions"
-msgstr "Bit-Feld-Befehle verwenden"
+msgstr "Media-Befehle verwenden"
#: config/frv/frv.opt:145
-#, fuzzy
msgid "Use multiply add/subtract instructions"
-msgstr "Fließkommabefehl zum Multiplizieren-Akkumulieren verwenden"
+msgstr "Befehle zum Multiplizieren-Addieren/Subtrahieren verwenden"
#: config/frv/frv.opt:149
-#, fuzzy
msgid "Enable optimizing &&/|| in conditional execution"
-msgstr "Optimierung des Initialisierungscodes statischer Klassen einschalten"
+msgstr "Optimierung von &&/|| in bedingter Ausführung einschalten"
#: config/frv/frv.opt:153
-#, fuzzy
msgid "Enable nested conditional execution optimizations"
-msgstr "Beherrscher-Optimierungen einschalten"
+msgstr "Optimierungen für geschachtelte bedingte Ausführung einschalten"
#: config/frv/frv.opt:158
msgid "Do not mark ABI switches in e_flags"
-msgstr ""
+msgstr "ABI-Schalter nicht in e_flags markieren"
#: config/frv/frv.opt:162
msgid "Remove redundant membars"
-msgstr ""
+msgstr "Redundante Membars entfernen"
#: config/frv/frv.opt:166
-#, fuzzy
msgid "Pack VLIW instructions"
-msgstr "MIPS-3D-Befehle verwenden"
+msgstr "VLIW-Befehle packen"
#: config/frv/frv.opt:170
msgid "Enable setting GPRs to the result of comparisons"
-msgstr ""
+msgstr "Setzen von GPRs auf das Ergebnis von Vergleichen einschalten"
#: config/frv/frv.opt:174
msgid "Change the amount of scheduler lookahead"
-msgstr ""
+msgstr "Betrag der Vorausplanung ändern"
#: config/frv/frv.opt:178 config/pa/pa.opt:105
msgid "Use software floating point"
@@ -9822,24 +9773,23 @@ msgstr "Software-Fließkomma verwenden"
#: config/frv/frv.opt:182
msgid "Assume a large TLS segment"
-msgstr ""
+msgstr "Ein großes TLS-Segment vermuten"
#: config/frv/frv.opt:186
-#, fuzzy
msgid "Do not assume a large TLS segment"
-msgstr "Stapelausrichtung nicht optimieren"
+msgstr "Kein großes TLS-Segment vermuten"
#: config/frv/frv.opt:191
msgid "Cause gas to print tomcat statistics"
-msgstr ""
+msgstr "Gas veranlassen, Tomcat-Statistiken auszugeben"
#: config/frv/frv.opt:196
msgid "Link with the library-pic libraries"
-msgstr ""
+msgstr "Mit Library-PIC-Bibliotheken linken"
#: config/frv/frv.opt:200
msgid "Allow branches to be packed with other instructions"
-msgstr ""
+msgstr "Erlauben, Sprünge mit anderen Befehlen zu packen"
#: config/mn10300/mn10300.opt:24
msgid "Target the AM33 processor"
@@ -9855,21 +9805,19 @@ msgstr "Hardware-Multiplikationsfehler umgehen"
#: config/mn10300/mn10300.opt:37
msgid "Enable linker relaxations"
-msgstr "Binderlockerung einschalten"
+msgstr "Binderlockerungen einschalten"
#: config/mn10300/mn10300.opt:41
msgid "Return pointers in both a0 and d0"
-msgstr ""
+msgstr "Zeiger sowohl in a0 als auch in d0 zurück geben"
#: config/s390/tpf.opt:24
-#, fuzzy
msgid "Enable TPF-OS tracing code"
-msgstr "tpf-OS-tracing-Code einschalten"
+msgstr "TPF-OS-tracing-Code einschalten"
#: config/s390/tpf.opt:28
-#, fuzzy
msgid "Specify main object for TPF-OS"
-msgstr "Höchstzahl der Iterationen für RPTS angeben"
+msgstr "Hauptobjekt für TPF-OS angeben"
#: config/s390/s390.opt:24
msgid "31 bit ABI"
@@ -9920,9 +9868,8 @@ msgid "Set the max. number of bytes which has to be left to stack size before a
msgstr "Höchstanzahl der Bytes angeben, die noch im Stack übrig sind, bevor ein Trap-Befehl ausgelöst wird"
#: config/s390/s390.opt:80
-#, fuzzy
msgid "Emit extra code in the function prologue in order to trap if the stack size exceeds the given limit"
-msgstr "Zusätzlichen Code im Funktionsprolog ausgeben, um ein Überschreiten der Stackgröße um das gegebene Limit abzufangen (trap)"
+msgstr "Zusätzlichen Code im Funktionsprolog ausgeben, um ein Überschreiten des angegebenen Limits für die Stackgröße abzufangen (trap)"
#: config/s390/s390.opt:84 config/ia64/ia64.opt:97 config/sparc/sparc.opt:96
#: config/i386/i386.opt:222 config/rs6000/rs6000.opt:203
@@ -9946,14 +9893,12 @@ msgid "z/Architecture"
msgstr "z/Architektur"
#: config/ia64/ilp32.opt:3
-#, fuzzy
msgid "Generate ILP32 code"
-msgstr "32-Bit-Code erzeugen"
+msgstr "ILP32-Code erzeugen"
#: config/ia64/ilp32.opt:7
-#, fuzzy
msgid "Generate LP64 code"
-msgstr "64-Bit-Code erzeugen"
+msgstr "ILP64-Code erzeugen"
#: config/ia64/ia64.opt:3
msgid "Generate big endian code"
@@ -10041,49 +9986,41 @@ msgstr "Bereich der zu fixierenden Register angeben"
#: config/m32c/m32c.opt:25 config/mt/mt.opt:28
msgid "Use simulator runtime"
-msgstr ""
+msgstr "Simulator-runtime verwenden"
#: config/m32c/m32c.opt:29
-#, fuzzy
msgid "Compile code for R8C variants"
-msgstr "Für 32-Bit-Zeiger kompilieren"
+msgstr "Code für R8C-Varianten kompilieren"
#: config/m32c/m32c.opt:33
-#, fuzzy
msgid "Compile code for M16C variants"
-msgstr "Für 64-Bit-Zeiger kompilieren"
+msgstr "Code für M16C-Varianten kompilieren"
#: config/m32c/m32c.opt:37
-#, fuzzy
msgid "Compile code for M32CM variants"
-msgstr "Für 32-Bit-Zeiger kompilieren"
+msgstr "Code für M32CM-Varianten kompilieren"
#: config/m32c/m32c.opt:41
-#, fuzzy
msgid "Compile code for M32C variants"
-msgstr "Für 32-Bit-Zeiger kompilieren"
+msgstr "Code für M32C-Varianten kompilieren"
#: config/m32c/m32c.opt:45
msgid "Number of memreg bytes (default: 16, range: 0..16)"
-msgstr ""
+msgstr "Anzahl der Memreg-Bytes (Standard: 16, Bereich: 0..16)"
#: config/sparc/little-endian.opt:24
-#, fuzzy
msgid "Generate code for little-endian"
-msgstr "Code für »little endian« erzeugen"
+msgstr "Code für »little-endian« erzeugen"
#: config/sparc/little-endian.opt:28
-#, fuzzy
msgid "Generate code for big-endian"
-msgstr "Code für »big endian« erzeugen"
+msgstr "Code für »big-endian« erzeugen"
#: config/sparc/sparc.opt:24 config/sparc/sparc.opt:28
-#, fuzzy
msgid "Use hardware FP"
msgstr "Hardware-FP verwenden"
#: config/sparc/sparc.opt:32
-#, fuzzy
msgid "Do not use hardware FP"
msgstr "Hardware-FP nicht verwenden"
@@ -10100,7 +10037,6 @@ msgid "Use ABI reserved registers"
msgstr "ABI-reservierte Register verwenden"
#: config/sparc/sparc.opt:48
-#, fuzzy
msgid "Use hardware quad FP instructions"
msgstr "Hardware-Vierfach-Fließkommabefehle verwenden"
@@ -10109,14 +10045,12 @@ msgid "Do not use hardware quad fp instructions"
msgstr "Hardware-Vierfach-Fließkommabefehle nicht verwenden"
#: config/sparc/sparc.opt:56
-#, fuzzy
msgid "Compile for V8+ ABI"
-msgstr "Für v8plus-ABI-übersetzen"
+msgstr "Für V8+-ABI-übersetzen"
#: config/sparc/sparc.opt:60
-#, fuzzy
msgid "Use UltraSPARC Visual Instruction Set extensions"
-msgstr "Visuellen Befehlssatz verwenden"
+msgstr "Visuelle Befehlssatzerweiterungen für UltraSPARC verwenden"
#: config/sparc/sparc.opt:64
msgid "Pointers are 64-bit"
@@ -10148,27 +10082,23 @@ msgstr "Ende-Aufruf-Befehle in Assembler und Binder optimieren"
#: config/sparc/sparc.opt:92 config/rs6000/rs6000.opt:199
msgid "Use features of and schedule code for given CPU"
-msgstr "Eigenschaften und Programmplanung für gegebene CPU verwenden"
+msgstr "Eigenschaften der gegebenen CPU verwenden und entsprechend Code planen"
#: config/sparc/sparc.opt:100
-#, fuzzy
msgid "Use given SPARC-V9 code model"
-msgstr "Gegebenes SPARC-Code-Modell verwenden"
+msgstr "Gegebenes SPARC-V9-Codemodell verwenden"
#: config/m32r/m32r.opt:24
-#, fuzzy
msgid "Compile for the m32rx"
-msgstr "Für 68HC12 übersetzen"
+msgstr "Für m32rx übersetzen"
#: config/m32r/m32r.opt:28
-#, fuzzy
msgid "Compile for the m32r2"
-msgstr "Für 68HC12 übersetzen"
+msgstr "Für m32r2 übersetzen"
#: config/m32r/m32r.opt:32
-#, fuzzy
msgid "Compile for the m32r"
-msgstr "Für 68HC12 übersetzen"
+msgstr "Für m32r übersetzen"
#: config/m32r/m32r.opt:36
msgid "Align all loops to 32 byte boundary"
@@ -10180,7 +10110,7 @@ msgstr "Zweige gegenüber bedingter Ausführung bevorzugen"
#: config/m32r/m32r.opt:44
msgid "Give branches their default cost"
-msgstr ""
+msgstr "Sprüngen ihre Standardkosten zuweisen"
#: config/m32r/m32r.opt:48
msgid "Display compile time statistics"
@@ -10188,20 +10118,19 @@ msgstr "Ãœbersetzungszeitstatistik anzeigen"
#: config/m32r/m32r.opt:52
msgid "Specify cache flush function"
-msgstr "Funktion zum Entleeren des Zwischenspeichers angeben"
+msgstr "Funktion zum Entleeren des Cache angeben"
#: config/m32r/m32r.opt:56
msgid "Specify cache flush trap number"
-msgstr "Abfangfunktionsnummer zum Entleeren des Zwischenspeichers angeben"
+msgstr "Abfangfunktionsnummer zum Entleeren des Cache angeben"
#: config/m32r/m32r.opt:60
msgid "Only issue one instruction per cycle"
msgstr "Nur einen Befehl pro Durchgang ausgeben"
#: config/m32r/m32r.opt:64
-#, fuzzy
msgid "Allow two instructions to be issued per cycle"
-msgstr "Nur einen Befehl pro Durchgang ausgeben"
+msgstr "Zwei Befehle pro Durchgang erlauben"
#: config/m32r/m32r.opt:68
msgid "Code size: small, medium or large"
@@ -10209,11 +10138,11 @@ msgstr "Code-Größe: klein, mittel, groß"
#: config/m32r/m32r.opt:72
msgid "Don't call any cache flush functions"
-msgstr "Keine Funktionen zum Entleeren des Zwischenspeichers aufrufen"
+msgstr "Keine Funktionen zum Entleeren des Cache aufrufen"
#: config/m32r/m32r.opt:76
msgid "Don't call any cache flush trap"
-msgstr "Keine Abfangfunktion zum Entleeren des Zwischenspeichers aufrufen"
+msgstr "Keine Abfangfunktion zum Entleeren des Cache aufrufen"
#: config/m32r/m32r.opt:83
msgid "Small data area: none, sdata, use"
@@ -10280,9 +10209,8 @@ msgid "Generate code for a 68851"
msgstr "Code für einen 68851 erzeugen"
#: config/m68k/m68k.opt:85
-#, fuzzy
msgid "Generate code that uses 68881 floating-point instructions"
-msgstr "Paarweise-single Hardware-Fließkommabefehle verwenden"
+msgstr "Code erzeugen, der 68881-Fließkommabefehle verwendet"
#: config/m68k/m68k.opt:89
msgid "Align variables on a 32-bit boundary"
@@ -10334,7 +10262,7 @@ msgstr "Typ »int« als 16 Bit breit ansehen"
#: config/m68k/m68k.opt:145
msgid "Generate code with library calls for floating point"
-msgstr "Code mit Funktionsaufrufen für Fließkommaarithmetik erzeugen"
+msgstr "Code mit Bibliotheksaufrufen für Fließkommaarithmetik erzeugen"
#: config/m68k/m68k.opt:149
msgid "Do not use unaligned memory references"
@@ -10346,7 +10274,7 @@ msgstr "IEEE-Arithmetik für Fließkommavergleiche verwenden"
#: config/i386/djgpp.opt:26
msgid "Ignored (obsolete)"
-msgstr ""
+msgstr "Ignoriert (veraltet)"
#: config/i386/i386.opt:24
msgid "sizeof(long double) is 16"
@@ -10370,7 +10298,7 @@ msgstr "sizeof(long double) ist 12"
#: config/i386/i386.opt:56
msgid "Reserve space for outgoing arguments in the function prologue"
-msgstr ""
+msgstr "Platz für Ausgabeargumente in Funktionsprolog reservieren"
#: config/i386/i386.opt:60
msgid "Align some doubles on dword boundary"
@@ -10402,7 +10330,7 @@ msgstr "Verzweigungen sind so teuer wie hier angegeben (1-5, beliebige Einheit)"
#: config/i386/i386.opt:92
msgid "Data greater than given threshold will go into .ldata section in x86-64 medium model"
-msgstr ""
+msgstr "Daten größer als angegebener Schwellwert werden in .ldata-Abschnitt im x86-64 Medium-Modell gehen"
#: config/i386/i386.opt:96
msgid "Use given x86-64 code model"
@@ -10442,7 +10370,7 @@ msgstr "Versuch, den Stapel zu dieser Zweierpotenz auszurichten"
#: config/i386/i386.opt:170
msgid "Use push instructions to save outgoing arguments"
-msgstr "push-Befehle verwenden, um ausgehende Argumente zu sichern"
+msgstr "Push-Befehle verwenden, um ausgehende Argumente zu sichern"
#: config/i386/i386.opt:174
msgid "Use red-zone in the x86-64 code"
@@ -10470,7 +10398,7 @@ msgstr "Eingebaute MMX-, SSE-, SSE2- und SSE3-Funktionen und Codeerzeugung unter
#: config/i386/i386.opt:202
msgid "Use SSE register passing conventions for SF and DF mode"
-msgstr ""
+msgstr "SSE-Register-Übergabekonventionen für SF- und DF-Modus verwenden"
#: config/i386/i386.opt:206
msgid "Uninitialized locals in .bss"
@@ -10574,19 +10502,16 @@ msgid "Use PowerPC Graphics group optional instructions"
msgstr "Optionale Befehle der PowerPC-Grafik-Gruppe verwenden"
#: config/rs6000/rs6000.opt:57
-#, fuzzy
msgid "Use PowerPC V2.01 single field mfcr instruction"
-msgstr "Einzelfeld-mfcr-Befehl erzeugen"
+msgstr "PowerPC V2.01 Einzelfeld-mfcr-Befehl verwenden"
#: config/rs6000/rs6000.opt:61
-#, fuzzy
msgid "Use PowerPC V2.02 popcntb instruction"
-msgstr "PowerPC-Befehlssatz verwenden"
+msgstr "PowerPC V2.02 popcntb-Befehl verwenden"
#: config/rs6000/rs6000.opt:65
-#, fuzzy
msgid "Use PowerPC V2.02 floating point rounding instructions"
-msgstr "Optionale Befehle der PowerPC-Grafik-Gruppe verwenden"
+msgstr "PowerPC V2.02 Fließkomma-Rundungsbefehle verwenden"
#: config/rs6000/rs6000.opt:69
msgid "Use AltiVec instructions"
@@ -10629,9 +10554,8 @@ msgid "Generate fused multiply/add instructions"
msgstr "Verschmolzene Multiplizier-/Addier-Befehle erzeugen"
#: config/rs6000/rs6000.opt:113
-#, fuzzy
msgid "Schedule the start and end of the procedure"
-msgstr "Anfang und Ende der Prozedur nicht planen"
+msgstr "Anfang und Ende der Prozedur planen"
#: config/rs6000/rs6000.opt:120
msgid "Return all structures in memory (AIX default)"
@@ -10642,9 +10566,8 @@ msgid "Return small structures in registers (SVR4 default)"
msgstr "Kleine Strukturen über Register zurückgeben (SVR4-Standard)"
#: config/rs6000/rs6000.opt:132
-#, fuzzy
msgid "Generate software floating point divide for better throughput"
-msgstr "Eingebettete Fließkommadivision erzeugen, auf Durchsatz optimieren"
+msgstr "Software-Fließkommadivision für besseren Durchsatz erzeugen"
#: config/rs6000/rs6000.opt:136
msgid "Do not place floating point constants in TOC"
@@ -10664,38 +10587,35 @@ msgstr "Symbol+Offset-Konstanten ins TOC legen"
#: config/rs6000/rs6000.opt:159
msgid "Use only one TOC entry per procedure"
-msgstr ""
+msgstr "Nur einen TOC-Eintrag pro Prozedur verwenden"
#: config/rs6000/rs6000.opt:163
msgid "Put everything in the regular TOC"
msgstr "Alles in reguläres TOC legen"
#: config/rs6000/rs6000.opt:167
-#, fuzzy
msgid "Generate VRSAVE instructions when generating AltiVec code"
-msgstr "yes/no angeben; je nachdem, ob VRSAVE-Befehle für AltiVec erzeugt werden sollen"
+msgstr "Beim Erzeugen von AltiVec-Code VRSAVE-Befehle erzeugen"
#: config/rs6000/rs6000.opt:171
msgid "Deprecated option. Use -mvrsave/-mno-vrsave instead"
-msgstr ""
+msgstr "Veraltete Option. Stattdessen -mvrsave/-mno-vrsave verwenden"
#: config/rs6000/rs6000.opt:175
-#, fuzzy
msgid "Generate isel instructions"
-msgstr "Verschmolzene Multiplizier-/Addier-Befehle erzeugen"
+msgstr "isel-Befehle erzeugen"
#: config/rs6000/rs6000.opt:179
msgid "Deprecated option. Use -misel/-mno-isel instead"
-msgstr ""
+msgstr "Veraltete Option. Stattdessen -misel/-mno-isel verwenden"
#: config/rs6000/rs6000.opt:183
-#, fuzzy
msgid "Generate SPE SIMD instructions on E500"
-msgstr "Zeichenkettenbefehle für Blockkopieroperationen erzeugen"
+msgstr "SPE SIMD Befehle auf E500 erzeugen"
#: config/rs6000/rs6000.opt:187
msgid "Deprecated option. Use -mspe/-mno-spe instead"
-msgstr ""
+msgstr "Veraltete Option. Stattdessen -mspe/-mno-spe verwenden"
#: config/rs6000/rs6000.opt:191
msgid "Enable debug output"
@@ -10719,7 +10639,7 @@ msgstr "Vor der Verwendung des veralteten AltiVec-Typen »vector long ...« warn
#: config/rs6000/rs6000.opt:219
msgid "Select GPR floating point method"
-msgstr ""
+msgstr "GPR-Fließkommamethode auswählen"
#: config/rs6000/rs6000.opt:223
msgid "Specify size of long double (64 or 128 bits)"
@@ -10735,7 +10655,7 @@ msgstr "Angeben, welches Schema zum Einfügen von nops nach der Planung angewend
#: config/rs6000/rs6000.opt:235
msgid "Specify alignment of structure fields default/natural"
-msgstr "Ausrichtung der Strukturfelder default/natural angeben"
+msgstr "Ausrichtung der Strukturfelder als Standard/natürlich angeben"
#: config/rs6000/rs6000.opt:239
msgid "Specify scheduling priority for dispatch slot restricted insns"
@@ -10785,16 +10705,15 @@ msgstr "noch keine Beschreibung"
#: config/rs6000/sysv4.opt:79
msgid "Assume all variable arg functions are prototyped"
-msgstr ""
+msgstr "Annehmen, dass alle Funktionen mit variablen Argumenten Prototypen haben"
#: config/rs6000/sysv4.opt:88
msgid "Use EABI"
msgstr "EABI verwenden"
#: config/rs6000/sysv4.opt:92
-#, fuzzy
msgid "Allow bit-fields to cross word boundaries"
-msgstr "Nicht zulassen, dass Bitfelder Wortgrenzen überschneiden"
+msgstr "Zulassen, dass Bitfelder Wortgrenzen überschneiden"
#: config/rs6000/sysv4.opt:96
msgid "Use alternate register names"
@@ -10825,37 +10744,33 @@ msgid "Use the WindISS simulator"
msgstr "WindISS-Simulator verwenden"
#: config/rs6000/sysv4.opt:145
-#, fuzzy
msgid "Generate code to use a non-exec PLT and GOT"
-msgstr "Code für den Boehm GC erzeugen"
+msgstr "Code erzeugen, der nicht ausführbares PLT und GOT enthält"
#: config/rs6000/sysv4.opt:149
-#, fuzzy
msgid "Generate code for old exec BSS PLT"
-msgstr "Code für DLL erzeugen"
+msgstr "Code für altes ausführbares BSS PLT erzeugen"
#: config/mt/mt.opt:24
msgid "Use byte loads and stores when generating code."
-msgstr ""
+msgstr "Laden und Speichern von Bytes beim Erzeugen von Code verwenden."
#: config/mt/mt.opt:32
msgid "Do not include crt0.o in the startup files"
-msgstr ""
+msgstr "Nicht crt0.o in Startdateien einfügen"
#: config/mt/mt.opt:36 config/mt/mt.opt:40 config/mt/mt.opt:44
#: config/mt/mt.opt:48 config/mt/mt.opt:52
-#, fuzzy
msgid "Internal debug switch"
-msgstr "unbekannter Schalter -mdebug-%s"
+msgstr "Interner Debug-Schalter"
#: config/mt/mt.opt:56 config/iq2000/iq2000.opt:24
msgid "Specify CPU for code generation purposes"
msgstr "CPU für Codeerzeugungszwecke angeben"
#: config/mcore/mcore.opt:24
-#, fuzzy
msgid "Generate code for the M*Core M210"
-msgstr "Code für M*Core M340 erzeugen"
+msgstr "Code für M*Core M210 erzeugen"
#: config/mcore/mcore.opt:28
msgid "Generate code for the M*Core M340"
@@ -10874,7 +10789,6 @@ msgid "Set maximum alignment to 8"
msgstr "Höchste Ausrichtung auf 8 setzen"
#: config/mcore/mcore.opt:44
-#, fuzzy
msgid "Generate big-endian code"
msgstr "Big-Endian-Code erzeugen"
@@ -10883,275 +10797,236 @@ msgid "Emit call graph information"
msgstr "Informationen zum Aufrufgraph ausgeben"
#: config/mcore/mcore.opt:52
-#, fuzzy
msgid "Use the divide instruction"
-msgstr "Divisionsbefehl nicht verwenden"
+msgstr "Divisionsbefehl verwenden"
#: config/mcore/mcore.opt:56
msgid "Inline constants if it can be done in 2 insns or less"
msgstr "Konstanten einbetten, wenn es mit 2 Befehlen oder weniger geht"
#: config/mcore/mcore.opt:60
-#, fuzzy
msgid "Generate little-endian code"
msgstr "Little-Endian-Code erzeugen"
#: config/mcore/mcore.opt:68
-#, fuzzy
msgid "Use arbitrary sized immediates in bit operations"
-msgstr "Keine Direktwerte beliebiger Größen in Bit-Operationen zulassen"
+msgstr "Direktwerte beliebiger Größen in Bit-Operationen zulassen"
#: config/mcore/mcore.opt:72
msgid "Prefer word accesses over byte accesses"
msgstr "Wortzugriffe bevorzugen (statt Bytezugriffen)"
#: config/mcore/mcore.opt:76
-#, fuzzy
msgid "Set the maximum amount for a single stack increment operation"
-msgstr "Größter Betrag für einzelne Stapelvergrößerungsoperation"
+msgstr "Größten Betrag für einzelne Stapelvergrößerungsoperation setzen"
#: config/mcore/mcore.opt:80
-#, fuzzy
msgid "Always treat bitfields as int-sized"
msgstr "Bit-Feld immer mit int-Größe behandeln"
#: config/arc/arc.opt:33
msgid "Prepend the name of the cpu to all public symbol names"
-msgstr ""
+msgstr "Namen der CPU allen öffentlichen Symbolnamen voranstellen"
#: config/arc/arc.opt:43
-#, fuzzy
msgid "Compile code for ARC variant CPU"
-msgstr "Code für die gegebene CPU planen"
+msgstr "Code für ARC-Varianten-CPU planen"
#: config/arc/arc.opt:47
msgid "Put functions in SECTION"
-msgstr ""
+msgstr "Funktionen in SECTION legen"
#: config/arc/arc.opt:51
msgid "Put data in SECTION"
-msgstr ""
+msgstr "Daten in SECTION legen"
#: config/arc/arc.opt:55
msgid "Put read-only data in SECTION"
-msgstr ""
+msgstr "Nur-Lese-Daten in SECTION legen"
#: config/sh/sh.opt:45
-#, fuzzy
msgid "Generate SH1 code"
-msgstr "SB-Code erzeugen"
+msgstr "SH1-Code erzeugen"
#: config/sh/sh.opt:49
-#, fuzzy
msgid "Generate SH2 code"
-msgstr "SB-Code erzeugen"
+msgstr "SH2-Code erzeugen"
#: config/sh/sh.opt:53
-#, fuzzy
msgid "Generate SH2a code"
-msgstr "SB-Code erzeugen"
+msgstr "SH2a-Code erzeugen"
#: config/sh/sh.opt:57
-#, fuzzy
msgid "Generate SH2a FPU-less code"
-msgstr "SA-Code erzeugen"
+msgstr "FPU-freien SH2a-Code erzeugen"
#: config/sh/sh.opt:61
-#, fuzzy
msgid "Generate default single-precision SH2a code"
-msgstr "Little-Endian-Code erzeugen"
+msgstr "Standard SH2a-Code mit einfacher Genauigkeit erzeugen"
#: config/sh/sh.opt:65
-#, fuzzy
msgid "Generate only single-precision SH2a code"
-msgstr "Little-Endian-Code erzeugen"
+msgstr "SH2a-Code nur mit einfacher Genauigkeit erzeugen"
#: config/sh/sh.opt:69
-#, fuzzy
msgid "Generate SH2e code"
-msgstr "SB-Code erzeugen"
+msgstr "SH2e-Code erzeugen"
#: config/sh/sh.opt:73
-#, fuzzy
msgid "Generate SH3 code"
-msgstr "SB-Code erzeugen"
+msgstr "SH3-Code erzeugen"
#: config/sh/sh.opt:77
-#, fuzzy
msgid "Generate SH3e code"
-msgstr "SB-Code erzeugen"
+msgstr "SH3e-Code erzeugen"
#: config/sh/sh.opt:81
-#, fuzzy
msgid "Generate SH4 code"
-msgstr "SB-Code erzeugen"
+msgstr "SH4-Code erzeugen"
#: config/sh/sh.opt:85
-#, fuzzy
msgid "Generate SH4 FPU-less code"
-msgstr "SA-Code erzeugen"
+msgstr "FPU-freien SH4-Code erzeugen"
#: config/sh/sh.opt:89
-#, fuzzy
msgid "Generate default single-precision SH4 code"
-msgstr "Little-Endian-Code erzeugen"
+msgstr "Standard SH4-Code mit einfacher Genauigkeit erzeugen"
#: config/sh/sh.opt:93
-#, fuzzy
msgid "Generate only single-precision SH4 code"
-msgstr "Little-Endian-Code erzeugen"
+msgstr "SH4-Code nur mit einfacher Genauigkeit erzeugen"
#: config/sh/sh.opt:97
-#, fuzzy
msgid "Generate SH4a code"
-msgstr "SB-Code erzeugen"
+msgstr "SH4a-Code erzeugen"
#: config/sh/sh.opt:101
-#, fuzzy
msgid "Generate SH4a FPU-less code"
-msgstr "SA-Code erzeugen"
+msgstr "FPU-freien SH4a-Code erzeugen"
#: config/sh/sh.opt:105
-#, fuzzy
msgid "Generate default single-precision SH4a code"
-msgstr "Little-Endian-Code erzeugen"
+msgstr "Standard SH4a-Code mit einfacher Genauigkeit erzeugen"
#: config/sh/sh.opt:109
-#, fuzzy
msgid "Generate only single-precision SH4a code"
-msgstr "Little-Endian-Code erzeugen"
+msgstr "SH4a-Code nur mit einfacher Genauigkeit erzeugen"
#: config/sh/sh.opt:113
-#, fuzzy
msgid "Generate SH4al-dsp code"
-msgstr "SA-Code erzeugen"
+msgstr "SH4al-dsp-Code erzeugen"
#: config/sh/sh.opt:117
-#, fuzzy
msgid "Generate 32-bit SHmedia code"
-msgstr "32-Bit-Code erzeugen"
+msgstr "32-Bit SHmedia-Code erzeugen"
#: config/sh/sh.opt:121
-#, fuzzy
msgid "Generate 32-bit FPU-less SHmedia code"
-msgstr "Little-Endian-Code erzeugen"
+msgstr "FPU-freien 32-Bit SHmedia-Code erzeugen"
#: config/sh/sh.opt:125
-#, fuzzy
msgid "Generate 64-bit SHmedia code"
-msgstr "64-Bit-Code erzeugen"
+msgstr "64-Bit SHmedia-Code erzeugen"
#: config/sh/sh.opt:129
-#, fuzzy
msgid "Generate 64-bit FPU-less SHmedia code"
-msgstr "Little-Endian-Code erzeugen"
+msgstr "FPU-freien 64-Bit SHmedia-Code erzeugen"
#: config/sh/sh.opt:133
-#, fuzzy
msgid "Generate SHcompact code"
-msgstr "SA-Code erzeugen"
+msgstr "SHcompact-Code erzeugen"
#: config/sh/sh.opt:137
-#, fuzzy
msgid "Generate FPU-less SHcompact code"
-msgstr "PC-relativen Code erzeugen"
+msgstr "FPU-freien SHcompact-Code erzeugen"
#: config/sh/sh.opt:141
msgid "Throttle unrolling to avoid thrashing target registers unless the unroll benefit outweighs this"
-msgstr ""
+msgstr "Unrolling drosseln, um die Zerstörung der Zielregister zu vermeiden, es sei denn, das Unrolling überwiegt dies"
#: config/sh/sh.opt:145
-#, fuzzy
msgid "Generate code in big endian mode"
-msgstr "Code für »big endian« erzeugen"
+msgstr "Code im »Big Endian«-Modus erzeugen"
#: config/sh/sh.opt:149
-#, fuzzy
msgid "Generate 32-bit offsets in switch tables"
-msgstr "4-Byte-Einträge in switch-Tabellen verwenden"
+msgstr "32-Bit-Versatz in switch-Tabellen erzeugen"
#: config/sh/sh.opt:153
msgid "Enable SH5 cut2 workaround"
-msgstr ""
+msgstr "SH5-cut2-Workaround einschalten"
#: config/sh/sh.opt:157
-#, fuzzy
msgid "Align doubles at 64-bit boundaries"
-msgstr "Variablen auf 16-Bit-Grenzen ausrichten"
+msgstr "Doubles auf 64-Bit-Grenzen ausrichten"
#: config/sh/sh.opt:161
msgid "Division strategy, one of: call, call2, fp, inv, inv:minlat, inv20u, inv20l, inv:call, inv:call2, inv:fp"
-msgstr ""
+msgstr "Divisionsstrategie, eine von: call, call2, fp, inv, inv:minlat, inv20u, inv20l, inv:call, inv:call2, inv:fp"
#: config/sh/sh.opt:165
-#, fuzzy
msgid "Specify name for 32 bit signed division function"
-msgstr "Anderen Namen für bss-Abschnitt angeben"
+msgstr "Namen für vorzeichenbehaftete 32-Bit Divisionsfunktion angeben"
#: config/sh/sh.opt:172
msgid "Cost to assume for gettr insn"
-msgstr ""
+msgstr "Für gettr Befehl anzunehmende Kosten"
#: config/sh/sh.opt:176 config/sh/sh.opt:222
msgid "Follow Renesas (formerly Hitachi) / SuperH calling conventions"
-msgstr ""
+msgstr "Renesas(vormals Hitachi)/SuperH-Aufrufkonventionen folgen"
#: config/sh/sh.opt:180
msgid "Increase the IEEE compliance for floating-point code"
-msgstr ""
+msgstr "IEEE-Befolgung für Fließkommacode erhöhen"
#: config/sh/sh.opt:184
msgid "Enable the use of the indexed addressing mode for SHmedia32/SHcompact"
-msgstr ""
+msgstr "Verwendung des indizierten Addressierungsmodus für SHmedia32/SHcompact einschalten"
#: config/sh/sh.opt:188
-#, fuzzy
msgid "Assume symbols might be invalid"
-msgstr "Annehmen, dass alle Symbole 32-Bit-Werte haben"
+msgstr "Annehmen, dass Symbole ungültig seien können"
#: config/sh/sh.opt:192
msgid "Annotate assembler instructions with estimated addresses"
-msgstr ""
+msgstr "Assemblerbefehle mit geschätzten Adressen kommentieren"
#: config/sh/sh.opt:196
-#, fuzzy
msgid "Generate code in little endian mode"
-msgstr "Code für »little endian« erzeugen"
+msgstr "Code im »Little Endian«-Modus erzeugen"
#: config/sh/sh.opt:200
-#, fuzzy
msgid "Mark MAC register as call-clobbered"
-msgstr "PIC-Register %qs wird in %<asm%> zerstört"
+msgstr "MAC-Register als Aufruf-zerstört markieren"
#: config/sh/sh.opt:206
msgid "Make structs a multiple of 4 bytes (warning: ABI altered)"
-msgstr ""
+msgstr "Structs Vielfache von 4 Bytes machen (Warnung: ABI geändert)"
#: config/sh/sh.opt:210
msgid "Emit function-calls using global offset table when generating PIC"
-msgstr ""
+msgstr "Bei PIC-Erzeugung Funktionsaufrufe ausgeben, die die globale Offsettabelle verwenden"
#: config/sh/sh.opt:214
-#, fuzzy
msgid "Assume pt* instructions won't trap"
-msgstr "Annehmen, dass Fließkommaoperationen abgefangen werden können (»trap«)"
+msgstr "Annehmen, dass pt*-Befehle nicht abgefangen werden (»trap«)"
#: config/sh/sh.opt:218
msgid "Shorten address references during linking"
-msgstr ""
+msgstr "Beim Binden Adressreferenzen verkürzen"
#: config/sh/sh.opt:226
-#, fuzzy
msgid "Deprecated. Use -Os instead"
-msgstr "--CLASSPATH\tVeraltet; stattdessen --classpath verwenden"
+msgstr "Veraltet; stattdessen -Os verwenden"
#: config/sh/sh.opt:230
msgid "Cost to assume for a multiply insn"
-msgstr ""
+msgstr "Für einen Multiplikationsbefehl anzunehmende Kosten"
#: config/sh/sh.opt:234
msgid "Generate library function call to invalidate instruction cache entries after fixing trampoline"
-msgstr ""
+msgstr "Bibliotheksfunktionsaufruf zum Außerkraftsetzen der Befehlscacheeinträge nach Trampolinfixierung erzeugen"
#: config/arm/arm.opt:24
msgid "Specify an ABI"
@@ -11226,9 +11101,8 @@ msgid "Store function names in object code"
msgstr "Funktionsnamen im Objektcode speichern"
#: config/arm/arm.opt:115
-#, fuzzy
msgid "Permit scheduling of a function's prologue sequence"
-msgstr "Stubs für Funktionsprologe verwenden"
+msgstr "Planung einer Funktionsprologsequenz erlauben"
#: config/arm/arm.opt:119
msgid "Do not load the PIC register in function prologues"
@@ -11251,9 +11125,8 @@ msgid "Support calls between Thumb and ARM instruction sets"
msgstr "Aufrufe zwischen Thumb- und ARM-Befehlssätzen unterstützen"
#: config/arm/arm.opt:139
-#, fuzzy
msgid "Specify how to access the thread pointer"
-msgstr "Namen der Ziel-Architektur angeben"
+msgstr "Angeben, wie auf Threadzeiger zugegriffen wird"
#: config/arm/arm.opt:143
msgid "Thumb: Generate (non-leaf) stack frames even if not needed"
@@ -11264,9 +11137,8 @@ msgid "Thumb: Generate (leaf) stack frames even if not needed"
msgstr "Thumb: Blatt-Stapelrahmen erzeugen, auch wenn nicht erforderlich"
#: config/arm/arm.opt:151
-#, fuzzy
msgid "Tune code for the given processor"
-msgstr "Für v850-Prozessor übersetzen"
+msgstr "Code auf angegebenen Prozessor abstimmen"
#: config/arm/arm.opt:155
msgid "Assume big endian bytes, little endian words"
@@ -11289,33 +11161,30 @@ msgid "Generate code for an 11/45"
msgstr "Code für 11/45 erzeugen"
#: config/pdp11/pdp11.opt:36
-#, fuzzy
msgid "Use 16-bit abs patterns"
-msgstr "64-Bit-Fließkomma-Register verwenden"
+msgstr "16-Bit-abs-Muster verwenden"
#: config/pdp11/pdp11.opt:40
-#, fuzzy
msgid "Return floating-point results in ac0 (fr0 in Unix assembler syntax)"
-msgstr "Fließkommaergebnisse über ac0 zurückgeben"
+msgstr "Fließkommaergebnisse über ac0 zurückgeben (fr0 in Unix-Assemblersyntax)"
#: config/pdp11/pdp11.opt:44
msgid "Do not use inline patterns for copying memory"
-msgstr ""
+msgstr "Keine Inline-Muster beim Speicherkopieren verwenden"
#: config/pdp11/pdp11.opt:48
msgid "Use inline patterns for copying memory"
-msgstr ""
+msgstr "Inline-Muster beim Speicherkopieren verwenden"
#: config/pdp11/pdp11.opt:52
msgid "Do not pretend that branches are expensive"
-msgstr ""
+msgstr "Nicht vorgeben, dass Sprünge teuer sind"
#: config/pdp11/pdp11.opt:56
msgid "Pretend that branches are expensive"
-msgstr ""
+msgstr "Vorgeben, dass Sprünge teuer sind"
#: config/pdp11/pdp11.opt:60
-#, fuzzy
msgid "Use the DEC assembler syntax"
msgstr "DEC-Assemblersyntax verwenden"
@@ -11344,24 +11213,20 @@ msgid "Use UNIX assembler syntax"
msgstr "UNIX-Assemblersyntax verwenden"
#: config/avr/avr.opt:24
-#, fuzzy
msgid "Use subroutines for function prologues and epilogues"
-msgstr "Für Prolog/Epilog Unterprogramme verwenden"
+msgstr "Für Funktionsprologe und -epiloge Unterprogramme verwenden"
#: config/avr/avr.opt:28
-#, fuzzy
msgid "Select the target MCU"
-msgstr "Namen der Ziel-CPU angeben"
+msgstr "Die Ziel-MCU auswählen"
#: config/avr/avr.opt:35
-#, fuzzy
msgid "Use STACK as the initial value of the stack pointer"
-msgstr "Nur die unteren 8 Bit des Stapelzeigers verändern"
+msgstr "STACK als Anfangswert des Stapelzeigers verwenden"
#: config/avr/avr.opt:39
-#, fuzzy
msgid "Use an 8-bit 'int' type"
-msgstr "64-Bit-»int«-Typ verwenden"
+msgstr "8-Bit-»int«-Typ verwenden"
#: config/avr/avr.opt:43
msgid "Change the stack pointer without disabling interrupts"
@@ -11384,18 +11249,16 @@ msgid "Change only the low 8 bits of the stack pointer"
msgstr "Nur die unteren 8 Bit des Stapelzeigers verändern"
#: config/crx/crx.opt:24
-#, fuzzy
msgid "Support multiply accumulate instructions"
-msgstr "Fließkommabefehl zum Multiplizieren-Akkumulieren verwenden"
+msgstr "Mehrere Akkumulierbefehle unterstützen"
#: config/crx/crx.opt:28
-#, fuzzy
msgid "Do not use push to store function arguments"
-msgstr "Keine push-Befehle verwenden, um ausgehende Argumente zu sichern"
+msgstr "Keine push-Befehle verwenden, um Funktionsargumente zu speichern"
#: config/crx/crx.opt:32
msgid "Restrict doloop to the given nesting level"
-msgstr ""
+msgstr "doloop auf angegebene Verschachtelungstiefe beschränken"
#: config/c4x/c4x.opt:24
msgid "Generate code for C30 CPU"
@@ -11434,9 +11297,8 @@ msgid "Use the BK register as a general purpose register"
msgstr "Das BK-Register als Mehrzweckregister verwenden"
#: config/c4x/c4x.opt:60
-#, fuzzy
msgid "Generate code for CPU"
-msgstr "Code für C44-CPU erzeugen"
+msgstr "Code für CPU erzeugen"
#: config/c4x/c4x.opt:64
msgid "Enable use of DB instruction"
@@ -11503,9 +11365,8 @@ msgid "Enable use of RTPS instruction"
msgstr "Verwendung des RTPS-Befehls einschalten"
#: config/c4x/c4x.opt:132
-#, fuzzy
msgid "Set the maximum number of iterations for RPTS to N"
-msgstr "Höchstzahl der Iterationen für RPTS angeben"
+msgstr "Höchstzahl der Iterationen für RPTS auf N setzen"
#: config/c4x/c4x.opt:136
msgid "Small memory model"
@@ -11521,11 +11382,8 @@ msgstr "cpp-Defines für Server-IO erzeugen"
#: config/pa/pa-hpux.opt:28 config/pa/pa-hpux1010.opt:24
#: config/pa/pa-hpux1111.opt:24
-#, fuzzy
msgid "Specify UNIX standard for predefines and linking"
-msgstr ""
-"UNIX-Standard für Predefines und Bindung angeben.\n"
-"Unterstützter Wert ist 93."
+msgstr "UNIX-Standard für Predefines und Bindung angeben"
#: config/pa/pa-hpux.opt:32
msgid "Generate cpp defines for workstation IO"
@@ -11588,11 +11446,8 @@ msgid "Use portable calling conventions"
msgstr "Portierbare Aufrufkonventionen verwenden"
#: config/pa/pa.opt:101
-#, fuzzy
msgid "Specify CPU for scheduling purposes. Valid arguments are 700, 7100, 7100LC, 7200, 7300, and 8000"
-msgstr ""
-"Unbekannte Option für -mschedule= (%s).\n"
-"Gültige Optionen sind 700, 7100, 7100LC, 7200, 7300, und 8000\n"
+msgstr "CPU für Planzwecke angeben. Gültige Argumente sind 700, 7100, 7100LC, 7200, 7300, und 8000"
#: config/pa/pa.opt:113
msgid "Do not disable space regs"
@@ -11628,54 +11483,47 @@ msgstr "Code in Zeichen-Daten im Text-Abschnitt einstreuen"
#: config/stormy16/stormy16.opt:25
msgid "Provide libraries for the simulator"
-msgstr ""
+msgstr "Bibliotheken für den Simulator anbieten"
#: config/mips/mips.opt:24
-#, fuzzy
msgid "Generate code that conforms to the given ABI"
-msgstr "Code für die gegebene CPU erzeugen"
+msgstr "Code erzeugen, der zum angegebenen ABI passt"
#: config/mips/mips.opt:28
msgid "Use SVR4-style PIC"
-msgstr ""
+msgstr "PIC im SVR4-Stil verwenden"
#: config/mips/mips.opt:32
-#, fuzzy
msgid "Use PMC-style 'mad' instructions"
-msgstr "Bit-Feld-Befehle verwenden"
+msgstr "»mad«-Befehle im PMC-Stil verwenden"
#: config/mips/mips.opt:36
-#, fuzzy
msgid "Generate code for the given ISA"
-msgstr "Code für die gegebene CPU erzeugen"
+msgstr "Code für das gegebene ISA erzeugen"
#: config/mips/mips.opt:40
-#, fuzzy
msgid "Use Branch Likely instructions, overriding the architecture default"
-msgstr "»Branch Likely«-Befehle verwenden, Standard für die Architektur aufheben"
+msgstr "»Branch Likely«-Befehle verwenden, Standard für die Architektur überschreiben"
#: config/mips/mips.opt:44
msgid "Trap on integer divide by zero"
msgstr "Ganzzahldivision durch Null abfangen"
#: config/mips/mips.opt:48
-#, fuzzy
msgid "Use branch-and-break sequences to check for integer divide by zero"
-msgstr "Ganzzahldivision durch Null mit Break abfangen"
+msgstr "Sprung-und-Abbruch-Sequenzen verwenden, um auf Ganzzahldivision durch Null zu prüfen"
#: config/mips/mips.opt:52
-#, fuzzy
msgid "Use trap instructions to check for integer divide by zero"
-msgstr "Ganzzahldivision durch Null mit Trap abfangen"
+msgstr "Trap-Befehle verwenden, um auf Ganzzahldivision durch Null zu prüfen"
#: config/mips/mips.opt:56
msgid "Allow hardware floating-point instructions to cover both 32-bit and 64-bit operations"
-msgstr ""
+msgstr "Hardware-Fließkommabefehle erlauben, um 32-Bit- und 64-Bit-Befehle abzudecken"
#: config/mips/mips.opt:60
-#, fuzzy
msgid "Use MIPS-DSP instructions"
-msgstr "MIPS-3D-Befehle verwenden"
+msgstr "MIPS-DSP-Befehle verwenden"
#: config/mips/mips.opt:70
msgid "Use big-endian byte order"
@@ -11694,14 +11542,12 @@ msgid "Use NewABI-style %reloc() assembly operators"
msgstr "%reloc()-Assembleroperatoren im NewABI-Stil verwenden"
#: config/mips/mips.opt:86
-#, fuzzy
msgid "Work around certain R4000 errata"
-msgstr "Bestimmte VR4120-Errata beachten und umgehen"
+msgstr "Bestimmte R4000-Errata umgehen"
#: config/mips/mips.opt:90
-#, fuzzy
msgid "Work around certain R4400 errata"
-msgstr "Bestimmte VR4120-Errata beachten und umgehen"
+msgstr "Bestimmte R4400-Errata umgehen"
#: config/mips/mips.opt:94
msgid "Work around errata for early SB-1 revision 2 cores"
@@ -11716,32 +11562,28 @@ msgid "Work around VR4130 mflo/mfhi errata"
msgstr "Errata für VR4130 mflo/mfhi beachten und umgehen"
#: config/mips/mips.opt:106
-#, fuzzy
msgid "Work around an early 4300 hardware bug"
-msgstr "Frühen 4300-Hardware-Bug umgehen"
+msgstr "Einen frühen 4300-Hardware-Bug umgehen"
#: config/mips/mips.opt:110
msgid "FP exceptions are enabled"
msgstr "Fließkomma-Ausnahmen sind eingeschaltet"
#: config/mips/mips.opt:114
-#, fuzzy
msgid "Use 32-bit floating-point registers"
-msgstr "Allgemeine Register in 32 Bit Breite verwenden"
+msgstr "32-Bit-Fließkommaregister verwenden"
#: config/mips/mips.opt:118
-#, fuzzy
msgid "Use 64-bit floating-point registers"
-msgstr "Allgemeine Register in 64 Bit Breite verwenden"
+msgstr "64-Bit-Fließkommaregister verwenden"
#: config/mips/mips.opt:122
msgid "Use FUNC to flush the cache before calling stack trampolines"
-msgstr ""
+msgstr "FUNC verwenden, um den Cache zu entleeren, bevor Stack-Trampoline aufgerufen werden"
#: config/mips/mips.opt:126
-#, fuzzy
msgid "Generate floating-point multiply-add instructions"
-msgstr "Verschmolzene Multiplizier-/Addier-Befehle erzeugen"
+msgstr "Fließkomma-Multiplizier-/Addier-Befehle erzeugen"
#: config/mips/mips.opt:130
msgid "Use 32-bit general registers"
@@ -11752,14 +11594,12 @@ msgid "Use 64-bit general registers"
msgstr "Allgemeine Register in 64 Bit Breite verwenden"
#: config/mips/mips.opt:138
-#, fuzzy
msgid "Allow the use of hardware floating-point instructions"
-msgstr "Paarweise-single Hardware-Fließkommabefehle verwenden"
+msgstr "Verwendung von Hardware-Fließkommabefehlen erlauben"
#: config/mips/mips.opt:142
-#, fuzzy
msgid "Generate code for ISA level N"
-msgstr "Code für Intel as erzeugen"
+msgstr "Code für ISA Ebene N erzeugen"
#: config/mips/mips.opt:146
msgid "Generate mips16 code"
@@ -11774,50 +11614,44 @@ msgid "Use indirect calls"
msgstr "Indirekte Aufrufe verwenden"
#: config/mips/mips.opt:158
-#, fuzzy
msgid "Use a 32-bit long type"
-msgstr "32-Bit-»long«-Typ verwenden"
+msgstr "Einen 32-Bit-»long«-Typ verwenden"
#: config/mips/mips.opt:162
-#, fuzzy
msgid "Use a 64-bit long type"
-msgstr "64-Bit-»long«-Typ verwenden"
+msgstr "Einen 64-Bit-»long«-Typ verwenden"
#: config/mips/mips.opt:166
msgid "Don't optimize block moves"
msgstr "Blockkopierbefehle nicht optimieren"
#: config/mips/mips.opt:170
-#, fuzzy
msgid "Use the mips-tfile postpass"
-msgstr "mips-tfile asm Nachbearbeitung verwenden"
+msgstr "Die mips-tfile Nachbearbeitung verwenden"
#: config/mips/mips.opt:174
msgid "Do not use a cache-flushing function before calling stack trampolines"
-msgstr ""
+msgstr "Keine Cache entleerende Funktion verwenden, bevor Stack-Trampoline aufgerufen werden"
#: config/mips/mips.opt:178
msgid "Generate normal-mode code"
msgstr "Code im normalen Modus erzeugen"
#: config/mips/mips.opt:182
-#, fuzzy
msgid "Do not use MIPS-3D instructions"
-msgstr "MIPS-3D-Befehle verwenden"
+msgstr "Keine MIPS-3D-Befehle verwenden"
#: config/mips/mips.opt:186
-#, fuzzy
msgid "Use paired-single floating-point instructions"
-msgstr "Paarweise-single Hardware-Fließkommabefehle verwenden"
+msgstr "Paarweise-single Fließkommabefehle verwenden"
#: config/mips/mips.opt:190
msgid "Restrict the use of hardware floating-point instructions to 32-bit operations"
-msgstr ""
+msgstr "Verwendung der Hardware-Fließkomma-Befehle auf 32-Bit-Operationen beschränken"
#: config/mips/mips.opt:194
-#, fuzzy
msgid "Prevent the use of all hardware floating-point instructions"
-msgstr "Paarweise-single Hardware-Fließkommabefehle verwenden"
+msgstr "Verwendung aller Hardware-Fließkommabefehle verhindern"
#: config/mips/mips.opt:198
msgid "Optimize lui/addiu address loads"
@@ -11829,7 +11663,7 @@ msgstr "Annehmen, dass alle Symbole 32-Bit-Werte haben"
#: config/mips/mips.opt:206
msgid "Optimize the output for PROCESSOR"
-msgstr ""
+msgstr "Ausgabe für PROCESSOR optimieren"
#: config/mips/mips.opt:210 config/iq2000/iq2000.opt:45
msgid "Put uninitialized constants in ROM (needs -membedded-data)"
@@ -11909,27 +11743,23 @@ msgstr "Anzahl der verfügbaren Soft-Register anzeigen"
#: config/vax/vax.opt:24 config/vax/vax.opt:28
msgid "Target DFLOAT double precision code"
-msgstr ""
+msgstr "Ziel: DFLOAT Code mit doppelter Genauigkeit"
#: config/vax/vax.opt:32 config/vax/vax.opt:36
-#, fuzzy
msgid "Generate GFLOAT double precision code"
-msgstr "Little-Endian-Code erzeugen"
+msgstr "GFLOAT Code mit doppelter Genauigkeit erzeugen"
#: config/vax/vax.opt:40
-#, fuzzy
msgid "Generate code for GNU assembler (gas)"
-msgstr "Code für GNU as erzeugen"
+msgstr "Code für GNU Assembler (gas) erzeugen"
#: config/vax/vax.opt:44
-#, fuzzy
msgid "Generate code for UNIX assembler"
-msgstr "Code für GNU as erzeugen"
+msgstr "Code für UNIX Assembler erzeugen"
#: config/vax/vax.opt:48
-#, fuzzy
msgid "Use VAXC structure conventions"
-msgstr "Portierbare Aufrufkonventionen verwenden"
+msgstr "VAXC-Strukturkonventionen verwenden"
#: config/cris/linux.opt:28
msgid "Together with -fpic and -fPIC, do not use GOTPLT references"
@@ -12052,9 +11882,8 @@ msgid "Use H8/300 alignment rules"
msgstr "H8/300-Ausrichtungsregeln verwenden"
#: config/v850/v850.opt:24
-#, fuzzy
msgid "Use registers r2 and r5"
-msgstr "Die Register r2 und r5 nicht verwenden"
+msgstr "Register r2 und r5 verwenden"
#: config/v850/v850.opt:28
msgid "Use 4 byte entries in switch tables"
@@ -12109,14 +11938,12 @@ msgid "Compile for the v850 processor"
msgstr "Für v850-Prozessor übersetzen"
#: config/v850/v850.opt:83
-#, fuzzy
msgid "Compile for the v850e processor"
-msgstr "Für v850-Prozessor übersetzen"
+msgstr "Für v850e-Prozessor übersetzen"
#: config/v850/v850.opt:87
-#, fuzzy
msgid "Compile for the v850e1 processor"
-msgstr "Für v850-Prozessor übersetzen"
+msgstr "Für v850e1-Prozessor übersetzen"
#: config/v850/v850.opt:91
msgid "Set the max size of data eligible for the ZDA area"
@@ -12203,40 +12030,36 @@ msgid "No default crt0.o"
msgstr "Kein voreingestelltes crt0.o"
#: config/bfin/bfin.opt:24
-#, fuzzy
msgid "Omit frame pointer for leaf functions"
-msgstr "Rahmenzeiger in Blattfunktionen auslassen"
+msgstr "Rahmenzeiger für Blattfunktionen auslassen"
#: config/bfin/bfin.opt:28
msgid "Program is entirely located in low 64k of memory"
-msgstr ""
+msgstr "Programm befindet sich vollständig in unteren 64k des Speichers"
#: config/bfin/bfin.opt:32
msgid "Work around a hardware anomaly by adding a number of NOPs before a"
-msgstr ""
+msgstr "Umgehung einer Hardwarebesonderheit mit zusätzlichen NOPs vor einem"
#: config/bfin/bfin.opt:37
msgid "Avoid speculative loads to work around a hardware anomaly."
-msgstr ""
+msgstr "Spekulative Ladeoperationen verhindern, um Hardwarebesonderheiten zu umgehen"
#: config/bfin/bfin.opt:41
-#, fuzzy
msgid "Enabled ID based shared library"
msgstr "ID-basierte Shared Library einschalten"
#: config/bfin/bfin.opt:49
msgid "Avoid generating pc-relative calls; use indirection"
-msgstr ""
+msgstr "Erzeugung PC-relativer Aufrufe verhindern; Indirektion verwenden"
#: config/vxworks.opt:25
-#, fuzzy
msgid "Assume the VxWorks RTP environment"
-msgstr "Normale C-Ausführungsumgebung vermuten"
+msgstr "VxWorks RTP-Umgebung vermuten"
#: config/vxworks.opt:32
-#, fuzzy
msgid "Assume the VxWorks vThreads environment"
-msgstr "Normale C-Ausführungsumgebung vermuten"
+msgstr "VxWorks vThreads-Umgebung vermuten"
#: config/darwin.opt:24
msgid "Generate code suitable for fast turn around debugging"
@@ -12244,7 +12067,7 @@ msgstr "Für schnelles Debugging geeigneten Code erzeugen"
#: config/darwin.opt:28
msgid "The earliest MacOS X version on which this program will run"
-msgstr ""
+msgstr "Die älteste MacOSX-Version, auf der dieses Programm laufen wird"
#: config/darwin.opt:32
msgid "Set sizeof(bool) to 1"
@@ -12263,9 +12086,8 @@ msgid "Support multi-threading"
msgstr "Multi-Threading unterstützen"
#: c.opt:42
-#, fuzzy
msgid "Assert the <answer> to <question>. Putting '-' before <question> disables the <answer> to <question>"
-msgstr "-A<Frage>=<Antwort>\tDie <Antwort> auf eine <Frage> behaupten. Angabe von »-« vor <Frage> schaltet die <Antwort> auf <Frage> aus"
+msgstr "Die <Antwort> auf eine <Frage> behaupten. Angabe von »-« vor <Frage> schaltet die <Antwort> auf <Frage> aus"
#: c.opt:46
msgid "Do not discard comments"
@@ -12273,26 +12095,23 @@ msgstr "Kommentare nicht verwerfen"
#: c.opt:50
msgid "Do not discard comments in macro expansions"
-msgstr "Kommentare in Makroexpansion nicht verwerfen"
+msgstr "Kommentare in Makroexpansionen nicht verwerfen"
#: c.opt:54
-#, fuzzy
msgid "Define a <macro> with <val> as its value. If just <macro> is given, <val> is taken to be 1"
-msgstr "-D<Makro>[=<Wert>]\tEin <Makro> mit <Wert> definieren. Wenn nur <Makro> angegeben wird, wird <Wert> auf 1 gesetzt"
+msgstr "Ein <Makro> mit <Wert> definieren. Wenn nur <Makro> angegeben wird, wird <Wert> auf 1 gesetzt"
#: c.opt:61
-#, fuzzy
msgid "Add <dir> to the end of the main framework include path"
-msgstr "-F <Verz>\t<Verz> an das Ende des Einfügepfades des Haupt-Frameworks anfügen"
+msgstr "<Verz> an das Ende des Einfügepfades des Haupt-Frameworks anfügen"
#: c.opt:65
msgid "Print the name of header files as they are used"
msgstr "Namen der Header-Dateien ausgeben, wie sie verwendet werden"
#: c.opt:69 c.opt:782
-#, fuzzy
msgid "Add <dir> to the end of the main include path"
-msgstr "-I <Verz>\t<Verz> an das Ende des Haupteinfügepfades anfügen"
+msgstr "<Verz> an das Ende des Haupteinfügepfades anfügen"
#: c.opt:73
msgid "Generate make dependencies"
@@ -12303,9 +12122,8 @@ msgid "Generate make dependencies and compile"
msgstr "Make-Abhängigkeiten erzeugen und übersetzen"
#: c.opt:81
-#, fuzzy
msgid "Write dependency output to the given file"
-msgstr "-MF <Datei>\tAbhängigkeiten-Ausgabe in angegebene Datei schreiben"
+msgstr "Abhängigkeiten-Ausgabe in angegebene Datei schreiben"
#: c.opt:85
msgid "Treat missing header files as generated files"
@@ -12324,23 +12142,20 @@ msgid "Generate phony targets for all headers"
msgstr "Unechte Ziele für alle Headers erzeugen"
#: c.opt:101
-#, fuzzy
msgid "Add a MAKE-quoted target"
-msgstr "-MQ <Ziel>\tMAKE-zitiertes Ziel hinzufügen"
+msgstr "MAKE-zitiertes Ziel hinzufügen"
#: c.opt:105
-#, fuzzy
msgid "Add an unquoted target"
-msgstr "-MT <Ziel>\tEin unzitiertes Ziel hinzufügen"
+msgstr "Ein unzitiertes Ziel hinzufügen"
#: c.opt:109
msgid "Do not generate #line directives"
msgstr "Keine #line-Direktiven erzeugen"
#: c.opt:113
-#, fuzzy
msgid "Undefine <macro>"
-msgstr "-U<Makro>\t<Makro> undefinieren"
+msgstr "<Makro> undefinieren"
#: c.opt:117
msgid "Warn about things that will change when compiling with an ABI-compliant compiler"
@@ -12352,7 +12167,7 @@ msgstr "Die meisten Warnungen einschalten"
#: c.opt:125
msgid "Warn whenever an Objective-C assignment is being intercepted by the garbage collector"
-msgstr ""
+msgstr "Immer warnen, wenn eine Objective-C-Zuweisung vom Garbage Collector abgefangen wird"
#: c.opt:129
msgid "Warn about casting functions to incompatible types"
@@ -12360,7 +12175,7 @@ msgstr "Warnen, wenn Funktionen in unverträgliche Typen umgewandelt werden"
#: c.opt:133
msgid "Warn about C constructs that are not in the common subset of C and C++"
-msgstr ""
+msgstr "Bei C-Konstrukten, die nicht in gemeinsamer Teilmenge von C und C++ sind, warnen"
#: c.opt:138
msgid "Warn about casts which discard qualifiers"
@@ -12368,7 +12183,7 @@ msgstr "Bei Umwandlungen, die Qualifizierer streichen, warnen"
#: c.opt:142
msgid "Warn about subscripts whose type is \"char\""
-msgstr "Vor Indizes mit Typ \"char\" warnen"
+msgstr "Vor Indizes mit Typ »char« warnen"
#: c.opt:146
msgid "Warn about possibly nested block comments, and C++ comments spanning more than one physical line"
@@ -12439,9 +12254,8 @@ msgid "Warn about zero-length formats"
msgstr "Bei Formaten der Länge null warnen"
#: c.opt:221
-#, fuzzy
msgid "Warn about variables which are initialized to themselves"
-msgstr "Bei Variablen, die mit sich selbst initialisiert werden, warnen."
+msgstr "Bei Variablen, die mit sich selbst initialisiert werden, warnen"
#: c.opt:228
msgid "Warn about implicit function declarations"
@@ -12452,14 +12266,12 @@ msgid "Warn when a declaration does not specify a type"
msgstr "Warnen, wenn eine Deklaration keinen Typ angibt"
#: c.opt:236
-#, fuzzy
msgid "Deprecated. This switch has no effect"
-msgstr "Veraltet. Dieser Schalter hat keine Auswirkung."
+msgstr "Veraltet. Dieser Schalter hat keine Auswirkung"
#: c.opt:240
-#, fuzzy
msgid "Warn when there is a cast to a pointer from an integer of a different size"
-msgstr "Typkonvertierung in Zeiger von Ganzzahl anderer Breite"
+msgstr "Bei Typumwandlung in Zeiger von Ganzzahl anderer Breite warnen"
#: c.opt:244
msgid "Warn about invalid uses of the \"offsetof\" macro"
@@ -12475,7 +12287,7 @@ msgstr "Nicht bei Verwendung von »long long« mit -pedantic warnen"
#: c.opt:256
msgid "Warn about suspicious declarations of \"main\""
-msgstr "Vor verdächtigen Deklarationen von \"main\" warnen"
+msgstr "Vor verdächtigen Deklarationen von »main« warnen"
#: c.opt:260
msgid "Warn about possibly missing braces around initializers"
@@ -12507,7 +12319,7 @@ msgstr "Bei Verwendung von Zeichenkonstanten mit mehreren Zeichen warnen"
#: c.opt:288
msgid "Warn about \"extern\" declarations not at file scope"
-msgstr "Bei \"extern\"-Deklarationen außerhalb des Dateisichtbarkeitsbereiches warnen"
+msgstr "Bei »extern«-Deklarationen außerhalb des Dateisichtbarkeitsbereiches warnen"
#: c.opt:292
msgid "Warn when non-templatized friend functions are declared within a template"
@@ -12522,9 +12334,8 @@ msgid "Warn about NULL being passed to argument slots marked as requiring non-NU
msgstr "Warnen, wenn NULL an Argumentstellen, die als nicht-NULL erfordernd markiert sind, übergeben wird"
#: c.opt:304
-#, fuzzy
msgid "Warn about non-normalised Unicode strings"
-msgstr "Bei nicht-virtuellen Destruktoren warnen"
+msgstr "Bei nicht-normalisierten Unicode-Zeichenketten warnen"
#: c.opt:308
msgid "Warn if a C-style cast is used in a program"
@@ -12551,14 +12362,12 @@ msgid "Warn about function pointer arithmetic"
msgstr "Bei Arithmetik mit Funktionszeigern warnen"
#: c.opt:332
-#, fuzzy
msgid "Warn when a pointer is cast to an integer of a different size"
-msgstr "Typkonvertierung von Zeiger auf Ganzzahl anderer Breite"
+msgstr "Bei Typkonvertierung von Zeiger auf Ganzzahl anderer Breite warnen"
#: c.opt:336
-#, fuzzy
msgid "Warn about misuses of pragmas"
-msgstr "Bei nicht erkannten Pragmas warnen"
+msgstr "Bei Pragmamissbrauch warnen"
#: c.opt:340
msgid "Warn if inherited methods are unimplemented"
@@ -12602,7 +12411,7 @@ msgstr "Bei Funktionsdeklarationen ohne Prototyp warnen"
#: c.opt:380
msgid "Warn if type signatures of candidate methods do not match exactly"
-msgstr ""
+msgstr "Wenn Typsignaturen der Kandidatenmethoden nicht exakt passen, warnen"
#: c.opt:384
msgid "Warn when synthesis behavior differs from Cfront"
@@ -12645,14 +12454,12 @@ msgid "Give strings the type \"array of char\""
msgstr "Zeichenketten den Typ »Feld von char« geben"
#: c.opt:424
-#, fuzzy
msgid "Warn when a pointer differs in signedness in an assignment"
-msgstr "Warnen, wenn sich ein Zeiger im Vorzeichenbesitz in einer Zuweisung unterscheidet."
+msgstr "Warnen, wenn sich ein Zeiger im Vorzeichenbesitz in einer Zuweisung unterscheidet"
#: c.opt:428
-#, fuzzy
msgid "A synonym for -std=c89 (for C) or -std=c++98 (for C++)"
-msgstr "Ein Synonym für -std=c89 (für C) oder -std=c++98 (für C++)."
+msgstr "Ein Synonym für -std=c89 (für C) oder -std=c++98 (für C++)"
#: c.opt:436
msgid "Enforce class member access control semantics"
@@ -12687,9 +12494,8 @@ msgid "Make string literals \"const char[]\" not \"char[]\""
msgstr "Zeichenkettenliterale als »const char[]« anstatt »char[]« erzeugen"
#: c.opt:474
-#, fuzzy
msgid "Use class <name> for constant strings"
-msgstr "-fconst-string-class=<Name>\tKlasse <Name> für konstante Zeichenketten verwenden"
+msgstr "Klasse <Name> für konstante Zeichenketten verwenden"
#: c.opt:478
msgid "Inline member functions by default"
@@ -12697,26 +12503,23 @@ msgstr "Standardmäßig »inline«-Elementfunktionen"
#: c.opt:482
msgid "Permit '$' as an identifier character"
-msgstr "'$' als Bezeichnerzeichen zulassen"
+msgstr "»$« als Bezeichnerzeichen zulassen"
#: c.opt:489
msgid "Generate code to check exception specifications"
msgstr "Code zur Überprüfung von Exception-Spezifikationen erzeugen"
#: c.opt:496
-#, fuzzy
msgid "Convert all strings and character constants to character set <cset>"
-msgstr "-fexec-charset=<Zeichensatz>\tAlle Zeichenketten und Zeichenkonstanten in <Zeichensatz> umwandeln"
+msgstr "Alle Zeichenketten und Zeichenkonstanten in <Zeichensatz> umwandeln"
#: c.opt:500
-#, fuzzy
msgid "Permit universal character names (\\u and \\U) in identifiers"
-msgstr "universeller Zeichenname »\\u%04x« nicht gültig in Bezeichner"
+msgstr "Universelle Zeichennamen (\\u und \\U) in Bezeichnern zulassen"
#: c.opt:504
-#, fuzzy
msgid "Specify the default character set for source files"
-msgstr "-finput-charset=<ZSatz>\tStandard-Zeichensatz für Quelldateien angeben"
+msgstr "Standard-Zeichensatz für Quelldateien angeben"
#: c.opt:521
msgid "Scope of for-init-statement variables is local to the loop"
@@ -12755,9 +12558,8 @@ msgid "Emit implicit instantiations of templates"
msgstr "Implizite Instantiierungen von Templates ausgeben"
#: c.opt:566
-#, fuzzy
msgid "Inject friend functions into enclosing namespace"
-msgstr "Einfache Funktionen in ihre Aufrufer einfügen"
+msgstr "Friend-Funktionen in umgebenden Namensraum einfügen"
#: c.opt:573
msgid "Don't warn about uses of Microsoft extensions"
@@ -12773,11 +12575,11 @@ msgstr "Annehmen, dass Empfänger von Objective-C-Nachrichten Null sein können"
#: c.opt:599
msgid "Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed"
-msgstr ""
+msgstr "Wenn nötig, spezielle Objective-C-Methoden zur Initialisierung/Zerstörung von nicht-POD C++ ivars, erzeugen"
#: c.opt:603
msgid "Allow fast jumps to the message dispatcher"
-msgstr ""
+msgstr "Schnelle Sprünge zum Nachrichten-Dispatcher erlauben"
#: c.opt:609
msgid "Enable Objective-C exception and synchronization syntax"
@@ -12785,7 +12587,7 @@ msgstr "Objective-C-Ausnahme- und -Synchronisations-Syntax einschalten"
#: c.opt:613
msgid "Enable garbage collection (GC) in Objective-C/Objective-C++ programs"
-msgstr ""
+msgstr "Garbage Collection (GC) in Objective-C/Objective-C++-Programmen einschalten"
#: c.opt:618
msgid "Enable Objective-C setjmp exception handling runtime"
@@ -12844,19 +12646,16 @@ msgid "Display statistics accumulated during compilation"
msgstr "Während der Übersetzung angesammelte Statistik anzeigen"
#: c.opt:687
-#, fuzzy
msgid "Distance between tab stops for column reporting"
-msgstr "-ftabstop=<Anzahl>\tTabulatorentfernungen für Spaltenmeldungen"
+msgstr "Tabulatorentfernungen für Spaltenmeldungen"
#: c.opt:691
-#, fuzzy
msgid "Specify maximum template instantiation depth"
-msgstr "-ftemplate-depth-<Zahl>\tGrößte Template-Instantiierungstiefe angeben"
+msgstr "Größte Template-Instantiierungstiefe angeben"
#: c.opt:698
-#, fuzzy
msgid "Do not generate thread-safe code for initializing local statics"
-msgstr "-fno-threadsafe-statics\tKeinen threadsicheren Code für Initialisierung lokaler statischer Objekte erzeugen"
+msgstr "Keinen threadsicheren Code für Initialisierung lokaler statischer Objekte erzeugen"
#: c.opt:702
msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned"
@@ -12887,9 +12686,8 @@ msgid "Emit common-like symbols as weak symbols"
msgstr "Common-ähnliche Symbole als schwache Symbole ausgeben"
#: c.opt:730
-#, fuzzy
msgid "Convert all wide strings and character constants to character set <cset>"
-msgstr "-fwide-exec-charset=<ZMenge>\tAlle Wide-Zeichenketten und -konstanten in Zeichenmenge <ZMenge> umwandeln"
+msgstr "Alle Wide-Zeichenketten und -konstanten in Zeichenmenge <Zeichensatz> umwandeln"
#: c.opt:734
msgid "Generate a #line directive pointing at the current working directory"
@@ -12908,39 +12706,32 @@ msgid "Dump declarations to a .decl file"
msgstr "Deklaration in .decl-Datei ausgeben"
#: c.opt:750 c.opt:778
-#, fuzzy
msgid "Add <dir> to the end of the system include path"
-msgstr "-idirafter <Verz>\t<Verz> an das Ende des System-Einfügepfades anfügen"
+msgstr "<Verz> an das Ende des System-Einfügepfades anfügen"
#: c.opt:754
-#, fuzzy
msgid "Accept definition of macros in <file>"
-msgstr "-imacros <Datei>\tDefinitionen von Makros in <Datei> akzeptieren"
+msgstr "Definitionen von Makros in <Datei> akzeptieren"
#: c.opt:758
-#, fuzzy
msgid "Include the contents of <file> before other files"
-msgstr "-include <Datei>\tInhalt der <Datei> vor anderen Dateien einfügen"
+msgstr "Inhalt der <Datei> vor anderen Dateien einfügen"
#: c.opt:762
-#, fuzzy
msgid "Specify <path> as a prefix for next two options"
-msgstr "-iprefix <Pfad>\t<Pfad> als ein Prefix für die nächsten 2 Optionen angeben"
+msgstr "<Pfad> als ein Prefix für die nächsten zwei Optionen angeben"
#: c.opt:766
-#, fuzzy
msgid "Set <dir> to be the system root directory"
-msgstr "-isysroot <Verz>\t<Verz> als System-Wurzelverzeichnis setzen"
+msgstr "<Verz> als System-Wurzelverzeichnis setzen"
#: c.opt:770
-#, fuzzy
msgid "Add <dir> to the start of the system include path"
-msgstr "-isystem <Verz>\t<Verz> an den Anfang des System-Einfügepfades anfügen"
+msgstr "<Verz> an den Anfang des System-Einfügepfades anfügen"
#: c.opt:774
-#, fuzzy
msgid "Add <dir> to the end of the quote include path"
-msgstr "-iquote <Verz>\t<Verz> an das Ende des Zitat-Einfügepfades anfügen"
+msgstr "<Verz> an das Ende des Zitat-Einfügepfades anfügen"
#: c.opt:795
msgid "Do not search standard system include directories (those specified with -isystem will still be used)"
@@ -12956,7 +12747,7 @@ msgstr "C-Header mit Plattform-spezifischen Merkmalen erzeugen"
#: c.opt:819
msgid "Print a checksum of the executable for PCH validity checking, and stop"
-msgstr ""
+msgstr "Eine Prüfsumme der ausführbaren Datei für PCH-Gültigkeitsüberprüfung ausgeben, und anhalten"
#: c.opt:823
msgid "Remap file names when including files"
@@ -13007,9 +12798,8 @@ msgid "Enable traditional preprocessing"
msgstr "Traditionelle Vorverarbeitung einschalten"
#: c.opt:879
-#, fuzzy
msgid "Support ISO C trigraphs"
-msgstr "-trigraphs\tTrigraphs nach ISO C unterstützen"
+msgstr "Trigraphs nach ISO C unterstützen"
#: c.opt:883
msgid "Do not predefine system-specific and GCC-specific macros"
@@ -13024,19 +12814,16 @@ msgid "Display this information"
msgstr "Diese Informationen anzeigen"
#: common.opt:32
-#, fuzzy
msgid "Set parameter <param> to value. See below for a complete list of parameters"
-msgstr "--param <Param>=<Wert>\tParameter <Param> auf <Wert> setzen. Siehe unten für komplette Parameterliste"
+msgstr "Parameter <Param> auf Wert setzen. Siehe unten für komplette Parameterliste"
#: common.opt:42
-#, fuzzy
msgid "Put global and static data smaller than <number> bytes into a special section (on some targets)"
-msgstr "-G<Anzahl>\tGlobale und statische Daten kleiner als <Anzahl> Bytes in einen gesonderten Abschnitt legen (bei manchen Zielen)"
+msgstr "Globale und statische Daten kleiner als <Anzahl> Bytes in einen gesonderten Abschnitt legen (bei manchen Zielen)"
#: common.opt:46
-#, fuzzy
msgid "Set optimization level to <number>"
-msgstr "-O<Zahl>\tOptimierungsstufe auf <Zahl> setzen"
+msgstr "Optimierungsstufe auf <Zahl> setzen"
#: common.opt:50
msgid "Optimize for space rather than speed"
@@ -13051,9 +12838,8 @@ msgid "Warn about returning structures, unions or arrays"
msgstr "Bei zurückgegebenen Strukturen, Unions oder Feldern warnen"
#: common.opt:62
-#, fuzzy
msgid "Warn about inappropriate attribute usage"
-msgstr "Bei Arithmetik mit Funktionszeigern warnen"
+msgstr "Bei unpassender Attributverwendung warnen"
#: common.opt:66
msgid "Warn about pointer casts which increase alignment"
@@ -13084,13 +12870,12 @@ msgid "Warn when an inlined function cannot be inlined"
msgstr "Warnen, wenn eine inline-Funktion nicht als solche erzeugt werden kann"
#: common.opt:94
-#, fuzzy
msgid "Warn if an object is larger than <number> bytes"
-msgstr "-Wlarger-than-<Anzahl>\tWarnen, wenn ein Objekt größer als <Anzahl> Bytes ist"
+msgstr "Warnen, wenn ein Objekt größer als <Anzahl> Bytes ist"
#: common.opt:98
msgid "Warn if the loop cannot be optimized due to nontrivial assumptions."
-msgstr ""
+msgstr "Warnen, wenn Schleife wegen nichttrivialer Annahmen nicht optimiert werden kann."
#: common.opt:102
msgid "Warn about functions which might be candidates for __attribute__((noreturn))"
@@ -13110,7 +12895,7 @@ msgstr "Warnen, wenn eine lokale Variable eine andere überdeckt"
#: common.opt:118
msgid "Warn when not issuing stack smashing protection for some reason"
-msgstr ""
+msgstr "Warnen, wenn Stackzerstörungsschutz nicht ausgegeben wird"
#: common.opt:122 common.opt:126
msgid "Warn about code which might break strict aliasing rules"
@@ -13157,24 +12942,20 @@ msgid "Warn when a variable is unused"
msgstr "Warnen, wenn eine Variable nicht verwendet wird"
#: common.opt:178
-#, fuzzy
msgid "Warn when a register variable is declared volatile"
-msgstr "Instanzvariable %qs ist als »private« deklariert"
+msgstr "Warnen, wenn Registervariable als »volatile« deklariert ist"
#: common.opt:182
-#, fuzzy
msgid "Emit declaration information into <file>"
-msgstr "-aux-info <Datei>\tDeklarationsinformationen in <Datei> ausgeben"
+msgstr "Deklarationsinformationen in <Datei> ausgeben"
#: common.opt:195
-#, fuzzy
msgid "Enable dumps from specific passes of the compiler"
-msgstr "-d<Buchstaben>\tAbzüge von bestimmten Durchläufen des Compilers einschalten"
+msgstr "Abzüge von bestimmten Durchläufen des Compilers einschalten"
#: common.opt:199
-#, fuzzy
msgid "Set the file basename to be used for dumps"
-msgstr "-dumpbase <Datei>\tDen Basis-Dateinamen für Abzüge setzen"
+msgstr "Den Basis-Dateinamen für Abzüge setzen"
#: common.opt:217
msgid "Align the start of functions"
@@ -13233,14 +13014,12 @@ msgid "Restrict target load migration not to re-use registers in any basic block
msgstr "In Basis-Blöcken keine Register bei der Ziel-Lade-Bewegung wiederverwenden"
#: common.opt:295
-#, fuzzy
msgid "Mark <register> as being preserved across functions"
-msgstr "-fcall-saved-<Register>\t<Register> als über Funktionsgrenzen hinweg reserviert markieren"
+msgstr "<Register> als über Funktionsgrenzen hinweg reserviert markieren"
#: common.opt:299
-#, fuzzy
msgid "Mark <register> as being corrupted by function calls"
-msgstr "-fcall-used-<Register>\t<Register> als durch Funktionsaufrufe beschädigt markieren"
+msgstr "<Register> als durch Funktionsaufrufe beschädigt markieren"
#: common.opt:306
msgid "Save registers around function calls"
@@ -13287,27 +13066,24 @@ msgid "Delete useless null pointer checks"
msgstr "Unnötige Nullzeigerprügungen löschen"
#: common.opt:352
-#, fuzzy
msgid "How often to emit source location at the beginning of line-wrapped diagnostics"
-msgstr "-fdiagnostics-show-location=[once|every-line]\tWie oft soll Stelle im Quelltext beim Anfang von zeilenumgebrochener Diagnose ausgegeben werden"
+msgstr "Wie oft soll Stelle im Quelltext beim Anfang von zeilenumgebrochener Diagnose ausgegeben werden"
#: common.opt:356
msgid "Amend appropriate diagnostic messages with the command line option that controls them"
-msgstr ""
+msgstr "Die geeignete Diagnosemeldung mit der Kommandozeilenoption erweitern, die sie steuert"
#: common.opt:360
-#, fuzzy
msgid "Dump various compiler internals to a file"
-msgstr "-fdump-<Typ>\tVerschiedene compilerinterne Informationen in eine Datei abziehen"
+msgstr "Verschiedene compilerinterne Informationen in eine Datei abziehen"
#: common.opt:364
msgid "Suppress output of instruction numbers and line number notes in debugging dumps"
msgstr "Ausgabe von Befehlszahlen und Zeilennummern in Fehlersuch-Auszügen unterdrücken"
#: common.opt:368
-#, fuzzy
msgid "Perform early inlining"
-msgstr "Schleifen-Schälung durchführen"
+msgstr "Frühes Inlining durchführen"
#: common.opt:372
msgid "Perform DWARF2 duplicate elimination"
@@ -13330,9 +13106,8 @@ msgid "Assume no NaNs or infinities are generated"
msgstr "Annahme, dass keine NaNs oder Unendlichkeiten erzeugt werden"
#: common.opt:399
-#, fuzzy
msgid "Mark <register> as being unavailable to the compiler"
-msgstr "-ffixed-<Register>\t<Register> als für den Compiler nicht verfügbar markieren"
+msgstr "<Register> als für den Compiler nicht verfügbar markieren"
#: common.opt:403
msgid "Don't allocate floats and doubles in extended-precision registers"
@@ -13403,14 +13178,12 @@ msgid "Integrate simple functions into their callers"
msgstr "Einfache Funktionen in ihre Aufrufer einfügen"
#: common.opt:493
-#, fuzzy
msgid "Integrate functions called once into their callers"
-msgstr "Einfache Funktionen in ihre Aufrufer einfügen"
+msgstr "Einmal aufgerufene Funktionen in ihre Aufrufer einfügen"
#: common.opt:500
-#, fuzzy
msgid "Limit the size of inlined functions to <number>"
-msgstr "-finline-limit=<Groesse>\tGröße von »inline«-Funktionen auf <Groesse> beschränken"
+msgstr "Größe von »inline«-Funktionen auf <Zahl> beschränken"
#: common.opt:504
msgid "Instrument function entry and exit with profiling calls"
@@ -13418,29 +13191,27 @@ msgstr "Ein- und Austritte von Funktionen beim Profilieren von Aufrufen verwende
#: common.opt:508
msgid "Perform Interprocedural constant propagation"
-msgstr ""
+msgstr "Zwischenprozedurale Konstantenweitergabe durchführen"
#: common.opt:512
-#, fuzzy
msgid "Discover pure and const functions"
-msgstr "Unbenutzte virtuelle Funktionen verwerfen"
+msgstr "Reine und konstante Funktionen entdecken"
#: common.opt:516
msgid "Discover readonly and non addressable static variables"
-msgstr ""
+msgstr "Nur-lese und nicht-adressierbare statische Variablen entdecken"
#: common.opt:520
msgid "Type based escape and alias analysis"
-msgstr ""
+msgstr "Typbasierte Escape- und Alias-Analyse"
#: common.opt:524
msgid "Optimize induction variables on trees"
-msgstr "Induktionsvariablen auf Bäume optimieren"
+msgstr "Induktionsvariablen auf Bäumen optimieren"
#: common.opt:528
-#, fuzzy
msgid "Use jump tables for sufficiently large switch statements"
-msgstr "case-Marke nicht innerhalb einer switch-Anweisung"
+msgstr "Sprungtabellen für hinreichend große switch-Anweisungen verwenden"
#: common.opt:532
msgid "Generate code for functions even if they are fully inlined"
@@ -13479,32 +13250,28 @@ msgid "Attempt to merge identical constants across compilation units"
msgstr "Versuchen, identische Konstanten über Übersetzungseinheiten hinweg zu verschmelzen"
#: common.opt:571
-#, fuzzy
msgid "Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping"
-msgstr "-fmessage-length=<Anzahl>\tDiagnosemeldungen auf <Anzahl> Zeichen pro Zeile beschränken. 0 unterdrückt Zeilenumbruch"
+msgstr "Diagnosemeldungen auf <Anzahl> Zeichen pro Zeile beschränken. 0 unterdrückt Zeilenumbruch"
#: common.opt:575
msgid "Perform SMS based modulo scheduling before the first scheduling pass"
-msgstr "SMS-basierte modulo-Planung vor erstem Planungs-Durchlauf durchführen"
+msgstr "SMS-basierte modulo-Planung vor erstem Planungsdurchlauf durchführen"
#: common.opt:579
msgid "Move loop invariant computations out of loops"
msgstr "Berechnung der Schleifeninvarianten außerhalb der Schleifen legen"
#: common.opt:583
-#, fuzzy
msgid "Add mudflap bounds-checking instrumentation for single-threaded program"
-msgstr "Einsatz von Schmutzfänger-Bereichsprüfung für Single-Threaded-Programm hinzufügen."
+msgstr "Einsatz von Schmutzfänger-Bereichsprüfung für Single-Thread-Programm hinzufügen"
#: common.opt:587
-#, fuzzy
msgid "Add mudflap bounds-checking instrumentation for multi-threaded program"
-msgstr "Einsatz von Schmutzfänger-Bereichsprüfung für Multi-Threaded-Programm hinzufügen."
+msgstr "Einsatz von Schmutzfänger-Bereichsprüfung für Multi-Thread-Programm hinzufügen"
#: common.opt:591
-#, fuzzy
msgid "Ignore read operations when inserting mudflap instrumentation"
-msgstr "Leseoperationen ignorieren, wenn Schmutzfänger-Einsatz eingefügt wird."
+msgstr "Leseoperationen ignorieren, wenn Schmutzfänger-Einsatz eingefügt wird"
#: common.opt:595
msgid "Enable/Disable the traditional scheduling in loops that already passed modulo scheduling"
@@ -13524,16 +13291,15 @@ msgstr "Den vollständigen Optimierungsdurchlauf für Registerbewegungen durchfÃ
#: common.opt:611
msgid "Optimize sibling and tail recursive calls"
-msgstr "Rekursive Aufrufe für Geschwister und Ende optimieren"
+msgstr "Geschwister- und endrekursive Aufrufe optimieren"
#: common.opt:615
msgid "Pack structure members together without holes"
msgstr "Strukturelemente ohne Lücken zusammenpacken"
#: common.opt:619
-#, fuzzy
msgid "Set initial maximum structure member alignment"
-msgstr "-fpack-struct=<Anzahl>\tAnfängliche größte Ausrichtung für Strukturelemente festlegen"
+msgstr "Anfängliche größte Ausrichtung für Strukturelemente festlegen"
#: common.opt:623
msgid "Return small aggregates in memory, not registers"
@@ -13581,20 +13347,19 @@ msgstr "Arc-basierten Programm-Profilierungscode einfügen"
#: common.opt:667
msgid "Enable common options for generating profile info for profile feedback directed optimizations"
-msgstr "Gemeinsame Optionen zum Erzeugen von Profil-Info für Profil-Feedback-gerichtete Optimierungen einschalten"
+msgstr "Allgemeine Optionen zum Erzeugen von Profil-Info für Profil-Feedback-gerichtete Optimierungen einschalten"
#: common.opt:671
msgid "Enable common options for performing profile feedback directed optimizations"
-msgstr "Gemeinsame Optionen zum Durchführen von Profil-Feedback-gerichteten Optimierungen einschalten"
+msgstr "Allgemeine Optionen zum Durchführen von Profil-Feedback-gerichteten Optimierungen einschalten"
#: common.opt:675
msgid "Insert code to profile values of expressions"
msgstr "Code in Profilwerte von Ausdrücken einfügen"
#: common.opt:682
-#, fuzzy
msgid "Make compile reproducible using <string>"
-msgstr "-frandom-seed=<Zeichenkette>\tÃœbersetzung mit <Zeichenkette> reproduzierbar machen"
+msgstr "Ãœbersetzung mit <Zeichenkette> reproduzierbar machen"
#: common.opt:686
msgid "Return small aggregates in registers"
@@ -13649,9 +13414,8 @@ msgid "Allow speculative motion of more loads"
msgstr "Spekulative Bewegung bei mehr Ladeoperationen erlauben"
#: common.opt:738
-#, fuzzy
msgid "Set the verbosity level of the scheduler"
-msgstr "-fsched-verbose=<Zahl>\tStufe der Wortfülle des Planers angeben"
+msgstr "Stufe der Wortfülle des Planers angeben"
#: common.opt:742
msgid "If scheduling post reload, do superblock scheduling"
@@ -13674,9 +13438,8 @@ msgid "Allow premature scheduling of queued insns"
msgstr "Nicht ausgereifte Planung von eingereihten Befehlen erlauben"
#: common.opt:764
-#, fuzzy
msgid "Set number of queued insns that can be prematurely scheduled"
-msgstr "-fsched-stalled-insns=<Zahl>\tAnzahl der eingereihten Befehle, die unausgereift geplant werden können"
+msgstr "Anzahl der eingereihten Befehle setzen, die unausgereift geplant werden können"
#: common.opt:772 common.opt:776
msgid "Set dependence distance checking in premature scheduling of queued insns"
@@ -13688,7 +13451,7 @@ msgstr "Daten als gemeinsam genutzt statt privat markieren"
#: common.opt:784
msgid "Show column numbers in diagnostics, when available. Default on"
-msgstr ""
+msgstr "Spaltenzahlen in Diagnose zeigen, wenn verfügbar. Standard: Ein"
#: common.opt:788
msgid "Disable optimizations observable by IEEE signaling NaNs"
@@ -13699,36 +13462,32 @@ msgid "Convert floating point constants to single precision constants"
msgstr "Fließkommakonstanten in Konstanten einfacher Genauigkeit umwandeln"
#: common.opt:796
-#, fuzzy
msgid "Split lifetimes of induction variables when loops are unrolled"
-msgstr "Lebensdauer von Induktionsvariablen aufteilen, wenn Schleifen abgerollt werden."
+msgstr "Lebensdauer von Induktionsvariablen aufteilen, wenn Schleifen abgerollt werden"
#: common.opt:800
-#, fuzzy
msgid "Apply variable expansion when loops are unrolled"
-msgstr "Variablenerweiterung anwenden, wenn Schleifen aufgerollt werden"
+msgstr "Variablenerweiterung anwenden, wenn Schleifen abgerollt werden"
#: common.opt:806
msgid "Insert stack checking code into the program"
msgstr "Stapelprüfung in das Programm einfügen"
#: common.opt:813
-#, fuzzy
msgid "Trap if the stack goes past <register>"
-msgstr "-fstack-limit-register=<Register>\tWenn der Stapel über das <Register> hinausgeht, abfangen (»trap«)"
+msgstr "Wenn der Stapel über das <Register> hinausgeht, abfangen (»trap«)"
#: common.opt:817
-#, fuzzy
msgid "Trap if the stack goes past symbol <name>"
-msgstr "-fstack-limit-symbol=<Name>\tWenn der Stapel über das Symbol <Name> hinausgeht, abfangen (»trap«)"
+msgstr "Wenn der Stapel über das Symbol <Name> hinausgeht, abfangen (»trap«)"
#: common.opt:821
msgid "Use propolice as a stack protection method"
-msgstr ""
+msgstr "Propolice als Stapelschutzmethode verwenden"
#: common.opt:825
msgid "Use a stack protection method for every function"
-msgstr ""
+msgstr "Eine Stapelschutzmethode für jede Funktion verwenden"
#: common.opt:829
msgid "Perform strength reduction optimizations"
@@ -13755,9 +13514,8 @@ msgid "Report the time taken by each compiler pass"
msgstr "Benötigte Zeit für jeden Compilerdurchlauf ausgeben"
#: common.opt:857
-#, fuzzy
msgid "Set the default thread-local storage code generation model"
-msgstr "-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]\tDas standardmäßige Codeerzeugungsmodell für Thread-lokalen Speicher angeben"
+msgstr "Das standardmäßige Codeerzeugungsmodell für Thread-lokalen Speicher angeben"
#: common.opt:861
msgid "Perform superblock formation via tail duplication"
@@ -13776,9 +13534,8 @@ msgid "Enable SSA-CCP optimization on trees"
msgstr "SSA-CCP-Optimierungen auf Bäumen einschalten"
#: common.opt:880
-#, fuzzy
msgid "Enable SSA-CCP optimization for stores and loads"
-msgstr "SSA-CCP-Optimierungen auf Bäumen einschalten"
+msgstr "SSA-CCP-Optimierungen für Speichern und Laden einschalten"
#: common.opt:884
msgid "Enable loop header copying on trees"
@@ -13789,19 +13546,16 @@ msgid "Coalesce memory temporaries in the SSA->normal pass"
msgstr "Vorübergehende Speicherbereiche im SSA-Normaldurchlauf verschmelzen"
#: common.opt:892
-#, fuzzy
msgid "Replace SSA temporaries with better names in copies"
msgstr "Vorübergehende SSA-Speicherbereiche in Kopien mit besseren Namen ersetzen"
#: common.opt:896
-#, fuzzy
msgid "Enable copy propagation on trees"
-msgstr "Schleifenvektorisierung auf Bäumen einschalten"
+msgstr "Kopieweitergabe auf Bäumen einschalten"
#: common.opt:900
-#, fuzzy
msgid "Enable copy propagation for stores and loads"
-msgstr "Schleifenoptimierungen auf Baumebene einschalten"
+msgstr "Kopieweitergabe für Speichern und Laden einschalten"
#: common.opt:904
msgid "Enable SSA dead code elimination optimization on trees"
@@ -13841,12 +13595,11 @@ msgstr "SSA-PRE-Optimierungen auf Bäumen einschalten"
#: common.opt:940
msgid "Perform structural alias analysis"
-msgstr ""
+msgstr "Strukturelle Alias-Analyse durchführen"
#: common.opt:944
-#, fuzzy
msgid "Enable SSA code sinking on trees"
-msgstr "SSA-CCP-Optimierungen auf Bäumen einschalten"
+msgstr "SSA-Codeversenkung auf Bäumen einschalten"
#: common.opt:948
msgid "Perform scalar replacement of aggregates"
@@ -13857,14 +13610,12 @@ msgid "Replace temporary expressions in the SSA->normal pass"
msgstr "Vorübergehende Ausdrücke im SSA-Normaldurchlauf ersetzen"
#: common.opt:956
-#, fuzzy
msgid "Perform live range splitting during the SSA->normal pass"
msgstr "Lebensdaueraufteilung während des SSA-Normaldurchlaufs durchführen"
#: common.opt:960
-#, fuzzy
msgid "Perform Value Range Propagation on trees"
-msgstr "Optimierungsdurchlauf zur Kopierübertragung von Registern durchführen"
+msgstr "Wertebereichsweitergabe auf Bäumen durchführen"
#: common.opt:964
msgid "Compile whole compilation unit at a time"
@@ -13880,7 +13631,7 @@ msgstr "Schleifenabwicklung für alle Schleifen durchführen"
#: common.opt:979
msgid "Allow loop optimizations to assume that the loops behave in normal way"
-msgstr ""
+msgstr "Bei Schleifenoptimierungen annehmen, dass sich die Schleifen normal verhalten"
#: common.opt:987
msgid "Allow math optimizations that may violate IEEE or ISO standards"
@@ -13903,14 +13654,12 @@ msgid "Enable loop vectorization on trees"
msgstr "Schleifenvektorisierung auf Bäumen einschalten"
#: common.opt:1007
-#, fuzzy
msgid "Enable loop versioning when doing loop vectorization on trees"
-msgstr "Schleifenvektorisierung auf Bäumen einschalten"
+msgstr "Schleifenversionierung bei Schleifenvektorisierung auf Bäumen einschalten"
#: common.opt:1011
-#, fuzzy
msgid "Set the verbosity level of the vectorizer"
-msgstr "-ftree-vectorizer-verbose=<Zahl>\tStufe der Wortfülle des Vektorisierers setzen"
+msgstr "Stufe der Wortfülle des Vektorisierers setzen"
#: common.opt:1021
msgid "Add extra commentary to assembler output"
@@ -13918,7 +13667,7 @@ msgstr "Zusätzlichen Kommentar an Assemblerausgabe anfügen"
#: common.opt:1025
msgid "Set the default symbol visibility"
-msgstr ""
+msgstr "Standard-Symbolsichtbarkeit setzen"
#: common.opt:1030
msgid "Use expression value profiles in optimizations"
@@ -13929,9 +13678,8 @@ msgid "Construct webs and split unrelated uses of single variable"
msgstr "Netze konstruieren und nicht zusammenhängende Verwendungen einzelner Variablen aufteilen"
#: common.opt:1038
-#, fuzzy
msgid "Perform whole program optimizations"
-msgstr "Schleifenoptimierung durchführen"
+msgstr "Gesamtprogrammoptimierung durchführen"
#: common.opt:1042
msgid "Assume signed arithmetic overflow wraps around"
@@ -13978,9 +13726,8 @@ msgid "Generate debug information in extended XCOFF format"
msgstr "Fehlersuchinformationen im erweiterten XCOFF-Format erzeugen"
#: common.opt:1086
-#, fuzzy
msgid "Place output into <file>"
-msgstr "-o <Datei>\tAusgabe in <Datei> schreiben"
+msgstr "Ausgabe in <Datei> schreiben"
#: common.opt:1090
msgid "Enable function profiling"
@@ -14014,7 +13761,7 @@ msgstr "Attribut-Anweisung %qs ignoriert"
#: attribs.c:183
#, gcc-internal-format
msgid "wrong number of arguments specified for %qs attribute"
-msgstr "falsche Anzahl an Argumenten für das Attribut %qs angegeben"
+msgstr "Falsche Anzahl an Argumenten für das Attribut %qs angegeben"
#: attribs.c:200
#, gcc-internal-format
@@ -14029,7 +13776,7 @@ msgstr "Attribut %qs kann nur auf Funktionstypen angewandt werden"
#: bb-reorder.c:1872
#, gcc-internal-format
msgid "multiple hot/cold transitions found (bb %i)"
-msgstr ""
+msgstr "Mehrere heiße/kalte Übergänge gefunden (bb %i)"
#: bt-load.c:1504
#, gcc-internal-format
@@ -14044,22 +13791,22 @@ msgstr "Adressabstand ist außerhalb der Grenzen der konstanten Zeichenkette"
#: builtins.c:975
#, gcc-internal-format
msgid "second argument to %<__builtin_prefetch%> must be a constant"
-msgstr "zweites Argument für %<__builtin_prefetch%> muss eine Konstante sein"
+msgstr "Zweites Argument für %<__builtin_prefetch%> muss eine Konstante sein"
#: builtins.c:982
#, gcc-internal-format
msgid "invalid second argument to %<__builtin_prefetch%>; using zero"
-msgstr "ungültiges zweites Argument für %<__builtin_prefetch%>; es wird Null verwendet"
+msgstr "Ungültiges zweites Argument für %<__builtin_prefetch%>; es wird Null verwendet"
#: builtins.c:990
#, gcc-internal-format
msgid "third argument to %<__builtin_prefetch%> must be a constant"
-msgstr "drittes Argument für %<__builtin_prefetch%> muss eine Konstante sein"
+msgstr "Drittes Argument für %<__builtin_prefetch%> muss eine Konstante sein"
#: builtins.c:997
#, gcc-internal-format
msgid "invalid third argument to %<__builtin_prefetch%>; using zero"
-msgstr "ungültiges drittes Argument für %<__builtin_prefetch%>; es wird Null verwendet"
+msgstr "Ungültiges drittes Argument für %<__builtin_prefetch%>; es wird Null verwendet"
#: builtins.c:4087
#, gcc-internal-format
@@ -14074,17 +13821,17 @@ msgstr "Argument von %<__builtin_args_info%> außerhalb des Wertebereichs"
#: builtins.c:4099
#, gcc-internal-format
msgid "missing argument in %<__builtin_args_info%>"
-msgstr "fehlendes Argument in %<__builtin_args_info%>"
+msgstr "Fehlendes Argument in %<__builtin_args_info%>"
#: builtins.c:4195 gimplify.c:1882
#, gcc-internal-format
msgid "too few arguments to function %<va_start%>"
-msgstr "zu wenige Argumente für %<va_start%>"
+msgstr "Zu wenige Argumente für %<va_start%>"
#: builtins.c:4359
#, gcc-internal-format
msgid "first argument to %<va_arg%> not of type %<va_list%>"
-msgstr "erstes Argument für %<va_arg%> nicht vom Typ %<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
@@ -14097,44 +13844,44 @@ msgstr "%qT auf %qT erweitert beim Durchlaufen von %<...%>"
#: builtins.c:4378
#, gcc-internal-format
msgid "(so you should pass %qT not %qT to %<va_arg%>)"
-msgstr "(Sie sollten also %qT statt %qT an %<va_arg%> übergeben)"
+msgstr "(Es sollte also %qT statt %qT an %<va_arg%> übergeben werden)"
#. We can, however, treat "undefined" any way we please.
#. Call abort to encourage the user to fix the program.
#: builtins.c:4384 c-typeck.c:2186
#, gcc-internal-format
msgid "if this code is reached, the program will abort"
-msgstr "Wenn dieser Code erreicht wird, wird das Programm abgebrochen."
+msgstr "Wenn dieser Code erreicht wird, wird das Programm abgebrochen"
#: builtins.c:4503
#, gcc-internal-format
msgid "invalid argument to %<__builtin_frame_address%>"
-msgstr "ungültiges Argument für %<__builtin_frame_address%>"
+msgstr "Ungültiges Argument für %<__builtin_frame_address%>"
#: builtins.c:4505
#, gcc-internal-format
msgid "invalid argument to %<__builtin_return_address%>"
-msgstr "ungültiges Argument für %<__builtin_return_address%>"
+msgstr "Ungültiges Argument für %<__builtin_return_address%>"
#: builtins.c:4518
#, gcc-internal-format
msgid "unsupported argument to %<__builtin_frame_address%>"
-msgstr "nicht unterstütztes Argument für %<__builtin_frame_address%>"
+msgstr "Nicht unterstütztes Argument für %<__builtin_frame_address%>"
#: builtins.c:4520
#, gcc-internal-format
msgid "unsupported argument to %<__builtin_return_address%>"
-msgstr "nicht unterstütztes Argument für %<__builtin_return_address%>"
+msgstr "Nicht unterstütztes Argument für %<__builtin_return_address%>"
#: builtins.c:4623
#, gcc-internal-format
msgid "second argument to %<__builtin_expect%> must be a constant"
-msgstr "zweites Argument für %<__builtin_expect%> muss eine Konstante sein"
+msgstr "Zweites Argument für %<__builtin_expect%> muss eine Konstante sein"
#: builtins.c:6095
#, gcc-internal-format
msgid "%<__builtin_longjmp%> second argument must be 1"
-msgstr "zweites Argument für %<__builtin_longjmp%> muss 1 sein"
+msgstr "Zweites Argument für %<__builtin_longjmp%> muss 1 sein"
#: builtins.c:6659
#, gcc-internal-format
@@ -14144,12 +13891,12 @@ msgstr "Zielformat unterstützt nicht »unendlich«"
#: builtins.c:8501 builtins.c:8595
#, gcc-internal-format
msgid "too few arguments to function %qs"
-msgstr "zu wenig Argumente für Funktion %qs"
+msgstr "Zu wenig Argumente für Funktion %qs"
#: builtins.c:8507 builtins.c:8601
#, gcc-internal-format
msgid "too many arguments to function %qs"
-msgstr "zu viele Argumente für Funktion %qs"
+msgstr "Zu viele Argumente für Funktion %qs"
#: builtins.c:8513 builtins.c:8626
#, gcc-internal-format
@@ -14181,22 +13928,22 @@ msgstr "%<va_start%> mit zu vielen Argumenten verwendet"
#: builtins.c:9768
#, gcc-internal-format
msgid "second parameter of %<va_start%> not last named argument"
-msgstr "zweiter Parameter von %<va_start%> ist nicht letztgenanntes Argument"
+msgstr "Zweiter Parameter von %<va_start%> ist nicht letztgenanntes Argument"
#: builtins.c:9880
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hfirst argument of %D must be a pointer, second integer constant"
-msgstr "Attributargument %qs ist keine Ganzzahlkonstante"
+msgstr "%HErstes Argument von %D muss ein Zeiger, das zweite eine Ganzzahlkonstante sein"
#: builtins.c:9893
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hlast argument of %D is not integer constant between 0 and 3"
-msgstr "Argument von »asm« ist keine konstante Zeichenkette"
+msgstr "%HLetztes Argument von %D ist keine Ganzzahlkonstante zwischen 0 und 3"
#: builtins.c:9939 builtins.c:10092 builtins.c:10160
#, gcc-internal-format
msgid "%Hcall to %D will always overflow destination buffer"
-msgstr ""
+msgstr "%HAufruf von %D wird den Zielpuffer immer überlaufen lassen"
#: c-common.c:831
#, gcc-internal-format
@@ -14232,12 +13979,12 @@ msgstr "Vektorüberlauf in Ausdruck"
#: c-common.c:950
#, gcc-internal-format
msgid "large integer implicitly truncated to unsigned type"
-msgstr "große Ganzzahl implizit auf vorzeichenlosen Typen abgeschnitten"
+msgstr "Große Ganzzahl implizit auf vorzeichenlosen Typen abgeschnitten"
#: c-common.c:953
#, gcc-internal-format
msgid "negative integer implicitly converted to unsigned type"
-msgstr "negative Ganzzahl implizit in vorzeichenlosen Typen konvertiert"
+msgstr "Negative Ganzzahl implizit in vorzeichenlosen Typen konvertiert"
#: c-common.c:975
#, gcc-internal-format
@@ -14260,9 +14007,9 @@ msgid "overflow in implicit constant conversion"
msgstr "Ãœberlauf in impliziter Konstantenkonvertierung"
#: c-common.c:1185
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "operation on %qE may be undefined"
-msgstr "Operation auf %qs könnte undefiniert sein"
+msgstr "Operation auf %qE könnte undefiniert sein"
#: c-common.c:1471
#, gcc-internal-format
@@ -14282,22 +14029,22 @@ msgstr "case-Marke überschreitet Maximalwert des Typs"
#: c-common.c:1527
#, gcc-internal-format
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"
+msgstr "Unterer Wert in case-Marken-Bereich ist kleiner als der Minimalwert des Typs"
#: c-common.c:1536
#, gcc-internal-format
msgid "upper value in case label range exceeds maximum value for type"
-msgstr "oberer Wert in case-Marken-Bereich überschreitet den Maximalwert des Typs"
+msgstr "Oberer Wert in case-Marken-Bereich überschreitet den Maximalwert des Typs"
#: c-common.c:1876
#, gcc-internal-format
msgid "invalid truth-value expression"
-msgstr "ungültiger Wahrheitswert-Ausdruck"
+msgstr "Ungültiger Wahrheitswert-Ausdruck"
#: c-common.c:1924
#, gcc-internal-format
msgid "invalid operands to binary %s"
-msgstr "ungültige Operanden für binäres %s"
+msgstr "Ungültige Operanden für binäres %s"
#: c-common.c:2159
#, gcc-internal-format
@@ -14339,32 +14086,32 @@ msgstr "Zeiger auf Elementfunktion in Arithmetik verwendet"
#: c-common.c:2420
#, gcc-internal-format
msgid "the address of %qD, will always evaluate as %<true%>"
-msgstr "die Adresse von %qD wird immer zu %<wahr%> auswerten"
+msgstr "Die Adresse von %qD wird immer zu %<wahr%> auswerten"
#: c-common.c:2517
#, gcc-internal-format
msgid "suggest parentheses around assignment used as truth value"
-msgstr "um Zuweisung, die als Wahrheitswert verwendet wird, werden Klammern empfohlen"
+msgstr "Um Zuweisung, die als Wahrheitswert verwendet wird, werden Klammern empfohlen"
#: c-common.c:2585 c-common.c:2625
#, gcc-internal-format
msgid "invalid use of %<restrict%>"
-msgstr "ungültige Verwendung von %<restrict%>"
+msgstr "Ungültige Verwendung von %<restrict%>"
#: c-common.c:2841
#, gcc-internal-format
msgid "invalid application of %<sizeof%> to a function type"
-msgstr "ungültige Anwendung von %<sizeof%> auf einen Funktionstypen"
+msgstr "Ungültige Anwendung von %<sizeof%> auf einen Funktionstypen"
#: c-common.c:2851
#, gcc-internal-format
msgid "invalid application of %qs to a void type"
-msgstr "ungültige Anwendung von %qs auf einen void-Typen"
+msgstr "Ungültige Anwendung von %qs auf einen void-Typen"
#: c-common.c:2857
#, gcc-internal-format
msgid "invalid application of %qs to incomplete type %qT "
-msgstr "ungültige Anwendung von %qs auf unvollständigen Typen %qT"
+msgstr "Ungültige Anwendung von %qs auf unvollständigen Typen %qT"
#: c-common.c:2898
#, gcc-internal-format
@@ -14374,7 +14121,7 @@ msgstr "%<__alignof%> auf Bitfeld angewandt"
#: c-common.c:3444
#, gcc-internal-format
msgid "cannot disable built-in function %qs"
-msgstr "eingebaute Funktion %qs kann nicht abgeschaltet werden"
+msgstr "Eingebaute Funktion %qs kann nicht abgeschaltet werden"
#: c-common.c:3632
#, gcc-internal-format
@@ -14389,37 +14136,37 @@ msgstr "Wertebereichsausdrücke in switch-Anweisungen sind nicht standardkonform
#: c-common.c:3664
#, gcc-internal-format
msgid "empty range specified"
-msgstr "leerer Wertebereich angegeben"
+msgstr "Leerer Wertebereich angegeben"
#: c-common.c:3724
#, gcc-internal-format
msgid "duplicate (or overlapping) case value"
-msgstr "doppelte (oder sich überschneidende) case-Werte"
+msgstr "Doppelte (oder sich überschneidende) case-Werte"
#: c-common.c:3725
#, gcc-internal-format
msgid "%Jthis is the first entry overlapping that value"
-msgstr "%Jdies ist der erste Eintrag, der diesen Wert überschneidet"
+msgstr "%JDies ist der erste Eintrag, der diesen Wert überschneidet"
#: c-common.c:3729
#, gcc-internal-format
msgid "duplicate case value"
-msgstr "doppelter case-Wert"
+msgstr "Doppelter case-Wert"
#: c-common.c:3730
#, gcc-internal-format
msgid "%Jpreviously used here"
-msgstr "%Jbereits hier verwendet"
+msgstr "%JBereits hier verwendet"
#: c-common.c:3734
#, gcc-internal-format
msgid "multiple default labels in one switch"
-msgstr "mehrere Standardmarken in einem »switch«"
+msgstr "Mehrere Standardmarken in einem »switch«"
#: c-common.c:3735
#, gcc-internal-format
msgid "%Jthis is the first default label"
-msgstr "%Jdies ist die erste Standardmarke"
+msgstr "%JDies ist die erste Standardmarke"
#: c-common.c:3784
#, gcc-internal-format
@@ -14434,7 +14181,7 @@ msgstr "%Jcase-Wert %qs nicht in Aufzählungstyp %qT"
#: c-common.c:3844
#, gcc-internal-format
msgid "%Hswitch missing default case"
-msgstr "%Hdie Standardfallbehandlung in switch fehlt"
+msgstr "%HDie Standardfallbehandlung in switch fehlt"
#. Warn if there are enumerators that don't correspond to
#. case expressions.
@@ -14446,12 +14193,12 @@ msgstr "%HAufzählungswert %qE wird nicht von switch behandelt"
#: c-common.c:3931
#, gcc-internal-format
msgid "taking the address of a label is non-standard"
-msgstr "das Ermitteln der Adresse einer Marke ist nicht standardkonform"
+msgstr "Das Ermitteln der Adresse einer Marke ist nicht standardkonform"
#: c-common.c:4095
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qE attribute ignored for field of type %qT"
-msgstr "Attribut %qs ignoriert für %qs"
+msgstr "Attribut %qE ignoriert für Feld vom Typ %qT"
#: c-common.c:4106 c-common.c:4125 c-common.c:4143 c-common.c:4170
#: c-common.c:4189 c-common.c:4212 c-common.c:4233 c-common.c:4258
@@ -14460,19 +14207,19 @@ msgstr "Attribut %qs ignoriert für %qs"
#: c-common.c:4879 c-common.c:4975 c-common.c:5041 c-common.c:5059
#: c-common.c:5105 c-common.c:5175 c-common.c:5199 c-common.c:5498
#: c-common.c:5521 c-common.c:5560
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qE attribute ignored"
-msgstr "Attribut %qs wird ignoriert"
+msgstr "Attribut %qE wird ignoriert"
#: c-common.c:4313
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qE attribute have effect only on public objects"
-msgstr "%JAttribut %qE kann nur auf Funktionen angewandt werden"
+msgstr "Attribut %qE wirkt sich nur auf öffentliche Objekte aus"
#: c-common.c:4520
#, gcc-internal-format
msgid "unknown machine mode %qs"
-msgstr "unbekannter Maschinenzustand %qs"
+msgstr "Unbekannter Maschinenzustand %qs"
#: c-common.c:4540
#, gcc-internal-format
@@ -14482,7 +14229,7 @@ msgstr "Angabe von Vektortypen mit __attribute__ ((Modus)) ist veraltet"
#: c-common.c:4543
#, gcc-internal-format
msgid "use __attribute__ ((vector_size)) instead"
-msgstr "stattdessen __attribute__ ((Vektorgröße)) verwenden"
+msgstr "Stattdessen __attribute__ ((Vektorgröße)) verwenden"
#: c-common.c:4552
#, gcc-internal-format
@@ -14492,12 +14239,12 @@ msgstr "%qs kann nicht emuliert werden"
#: c-common.c:4562
#, gcc-internal-format
msgid "invalid pointer mode %qs"
-msgstr "ungültiger Zeigermodus %qs"
+msgstr "Ungültiger Zeigermodus %qs"
#: c-common.c:4577
#, gcc-internal-format
msgid "no data type for mode %qs"
-msgstr "kein Datentyp für Zustand %qs"
+msgstr "Kein Datentyp für Zustand %qs"
#: c-common.c:4587
#, gcc-internal-format
@@ -14515,14 +14262,14 @@ msgid "%Jsection attribute cannot be specified for local variables"
msgstr "%JAbschnitts-Attribut kann nicht für lokale Variablen angegeben werden"
#: c-common.c:4656
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "section of %q+D conflicts with previous declaration"
-msgstr "%JAbschnitt von %qD in Konflikt mit vorheriger Deklaration"
+msgstr "Abschnitt von %q+D in Konflikt mit vorheriger Deklaration"
#: c-common.c:4665
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "section attribute not allowed for %q+D"
-msgstr "%JAbschnitts-Attribut nicht erlaubt für %qD"
+msgstr "Abschnitts-Attribut nicht erlaubt für %q+D"
#: c-common.c:4671
#, gcc-internal-format
@@ -14532,27 +14279,27 @@ msgstr "%JAbschnitts-Attribute werden für dieses Ziel nicht unterstützt"
#: c-common.c:4703
#, gcc-internal-format
msgid "requested alignment is not a constant"
-msgstr "verlangte Ausrichtung ist keine Konstante"
+msgstr "Verlangte Ausrichtung ist keine Konstante"
#: c-common.c:4708
#, gcc-internal-format
msgid "requested alignment is not a power of 2"
-msgstr "verlangte Ausrichtung ist keine Zweierpotenz"
+msgstr "Verlangte Ausrichtung ist keine Zweierpotenz"
#: c-common.c:4713
#, gcc-internal-format
msgid "requested alignment is too large"
-msgstr "verlangte Ausrichtung ist zu groß"
+msgstr "Verlangte Ausrichtung ist zu groß"
#: c-common.c:4739
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "alignment may not be specified for %q+D"
-msgstr "%Jfür %qD darf keine Ausrichtung angegeben werden"
+msgstr "Für %q+D darf keine Ausrichtung angegeben werden"
#: c-common.c:4777
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D defined both normally and as an alias"
-msgstr "%J%qD sowohl normal als auch als Alias definiert"
+msgstr "%q+D sowohl normal als auch als Alias definiert"
#: c-common.c:4793
#, gcc-internal-format
@@ -14562,12 +14309,12 @@ msgstr "Alias-Argument ist keine Zeichenkette"
#: c-common.c:4844
#, gcc-internal-format
msgid "%Jweakref attribute must appear before alias attribute"
-msgstr ""
+msgstr "%JAttribut weakref muss vor Attribut alias auftreten"
#: c-common.c:4872
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qE attribute ignored on non-class types"
-msgstr "Attribut %qs ignoriert für Nicht-Klassen-Typen"
+msgstr "Attribut %qE ignoriert für Nicht-Klassen-Typen"
#: c-common.c:4885
#, gcc-internal-format
@@ -14605,24 +14352,24 @@ msgid "%Jcan%'t set %qE attribute after definition"
msgstr "%JAttribut %qE kann nicht nach der Definition gesetzt werden"
#: c-common.c:5173
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qE attribute ignored for %qE"
-msgstr "Attribut %qs ignoriert für %qs"
+msgstr "Attribut %qE ignoriert für %qE"
#: c-common.c:5228
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid vector type for attribute %qE"
-msgstr "ungültiger Vektortyp für Attribut %qs"
+msgstr "Ungültiger Vektortyp für Attribut %qE"
#: c-common.c:5234
#, gcc-internal-format
msgid "vector size not an integral multiple of component size"
-msgstr ""
+msgstr "Vektorgröße kein ganzzahliges Vielfaches der Komponentengröße"
#: c-common.c:5240
#, gcc-internal-format
msgid "zero vector size"
-msgstr ""
+msgstr "Vektorgröße Null"
#: c-common.c:5248
#, gcc-internal-format
@@ -14650,9 +14397,9 @@ msgid "nonnull argument references non-pointer operand (argument %lu, operand %l
msgstr "Nicht-Null-Argument referenziert Nicht-Zeiger-Operanden (Argument %lu, Operand %lu)"
#: c-common.c:5381 c-common.c:5404
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "not enough variable arguments to fit a sentinel"
-msgstr "zu wenige Argumente, um in einen Wächter zu passen"
+msgstr "Zu wenige variable Argumente, um zu einem Wächter zu passen"
#: c-common.c:5425
#, gcc-internal-format
@@ -14675,34 +14422,34 @@ msgid "cleanup argument not a function"
msgstr "Argument für cleanup ist keine Funktion"
#: c-common.c:5578
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qE attribute requires prototypes with named arguments"
-msgstr "Attribut %qs benötigt Prototypen mit benannten Argumenten"
+msgstr "Attribut %qE benötigt Prototypen mit benannten Argumenten"
#: c-common.c:5589
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qE attribute only applies to variadic functions"
-msgstr "Attribut %qs gilt nur für variadische Funktionen"
+msgstr "Attribut %qE gilt nur für variadische Funktionen"
#: c-common.c:5600
#, gcc-internal-format
msgid "requested position is not an integer constant"
-msgstr "angeforderte Position ist keine Ganzzahlkonstante"
+msgstr "Angeforderte Position ist keine Ganzzahlkonstante"
#: c-common.c:5607
#, gcc-internal-format
msgid "requested position is less than zero"
-msgstr "angeforderte Position ist kleiner als Null"
+msgstr "Angeforderte Position ist kleiner als Null"
#: c-common.c:5909
#, gcc-internal-format
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"
+msgstr "%HDer Rückgabewert von %qD, der mit dem Attribut warn_unused_result deklariert wurde, wird ignoriert"
#: c-common.c:5913
#, gcc-internal-format
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"
+msgstr "%HDer Rückgabewert der Funktion, die mit dem Attribut warn_unused_result deklariert wurde, wird ignoriert"
#: c-common.c:5973 cp/typeck.c:4258
#, gcc-internal-format
@@ -14712,39 +14459,39 @@ msgstr "Versuch, die Adresse des Bitfeldstrukturelements %qD zu ermitteln"
#: c-common.c:6020
#, gcc-internal-format
msgid "invalid lvalue in assignment"
-msgstr "ungültiger L-Wert in Zuweisung"
+msgstr "Ungültiger L-Wert in Zuweisung"
#: c-common.c:6023
#, gcc-internal-format
msgid "invalid lvalue in increment"
-msgstr "ungültiger L-Wert in Erhöhung"
+msgstr "Ungültiger L-Wert in Erhöhung"
#: c-common.c:6026
#, gcc-internal-format
msgid "invalid lvalue in decrement"
-msgstr "ungültiger L-Wert in Verringerung"
+msgstr "Ungültiger L-Wert in Verringerung"
#: c-common.c:6029
#, gcc-internal-format
msgid "invalid lvalue in unary %<&%>"
-msgstr "ungültiger L-Wert in unärem %<&%>"
+msgstr "Ungültiger L-Wert in unärem %<&%>"
#: c-common.c:6032
#, gcc-internal-format
msgid "invalid lvalue in asm statement"
-msgstr "ungültiger L-Wert in asm-Anweisung"
+msgstr "Ungültiger L-Wert in asm-Anweisung"
#: c-common.c:6160 c-common.c:6209 c-typeck.c:2444
#, gcc-internal-format
msgid "too few arguments to function %qE"
-msgstr "zu wenige Argumente für Funktion %qE"
+msgstr "Zu wenige Argumente für Funktion %qE"
#. ??? This should not be an error when inlining calls to
#. unprototyped functions.
#: c-common.c:6177 c-typeck.c:4096
#, gcc-internal-format
msgid "incompatible type for argument %d of %qE"
-msgstr "inkompatibler Typ für Argument %d von %qE"
+msgstr "Inkompatibler Typ für Argument %d von %qE"
#. Except for passing an argument to an unprototyped function,
#. this is a constraint violation. When passing an argument to
@@ -14764,9 +14511,9 @@ msgid "conversion to non-scalar type requested"
msgstr "Konvertierung zu Nicht-Skalar-Typ verlangt"
#: c-decl.c:564
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "array %q+D assumed to have one element"
-msgstr "%JFeld %qD als einelementig betrachtet"
+msgstr "Feld %q+D als einelementig betrachtet"
#: c-decl.c:669
#, gcc-internal-format
@@ -14774,266 +14521,266 @@ msgid "GCC supports only %u nested scopes"
msgstr "GCC unterstützt nur %u geschachtelte Gültigkeitsbereiche"
#: c-decl.c:755 cp/decl.c:354 java/decl.c:1700
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "label %q+D used but not defined"
-msgstr "Marke %qD verwendet, aber nicht definiert"
+msgstr "Marke %q+D verwendet, aber nicht definiert"
#: c-decl.c:761 cp/decl.c:365 java/decl.c:1705
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "label %q+D defined but not used"
-msgstr "Marke %qD definiert, aber nicht verwendet"
+msgstr "Marke %q+D definiert, aber nicht verwendet"
#: c-decl.c:763
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "label %q+D declared but not defined"
-msgstr "%JMarke %qD deklariert, aber nicht definiert"
+msgstr "Marke %q+D deklariert, aber nicht definiert"
#: c-decl.c:798
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "nested function %q+D declared but never defined"
-msgstr "%Jgeschachtelte Funktion %qD deklariert, aber nirgendwo definiert"
+msgstr "Geschachtelte Funktion %q+D deklariert, aber nirgendwo definiert"
#: c-decl.c:812 cp/decl.c:559
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "unused variable %q+D"
-msgstr "%JVariable %qD wird nicht verwendet"
+msgstr "Variable %q+D wird nicht verwendet"
#: c-decl.c:816
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "type of array %q+D completed incompatibly with implicit initialization"
-msgstr "%JTyp des Feldes %qD vervollständigt Unverträglichkeit mit impliziter Initialisierung"
+msgstr "Typ des Feldes %q+D vervollständigt Unverträglichkeit mit impliziter Initialisierung"
#: c-decl.c:1050
#, gcc-internal-format
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"
+msgstr "Eine Parameterliste mit Auslassung passt nicht zu einer leeren Parameternamenslistendeklaration"
#: c-decl.c:1057
#, gcc-internal-format
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"
+msgstr "Ein Argumenttyp mit Standard-Promotion passt nicht zu leerer Parameternamenslistendeklaration"
#: c-decl.c:1092
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "prototype for %q+D declares more arguments than previous old-style definition"
-msgstr "%JPrototyp für %qD deklariert mehr Argumente als vorherige Definition im alten Stil"
+msgstr "Prototyp für %q+D deklariert mehr Argumente als vorherige Definition im alten Stil"
#: c-decl.c:1098
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "prototype for %q+D declares fewer arguments than previous old-style definition"
-msgstr "%JPrototyp für %qD deklariert weniger Argumente als vorherige Definition im alten Stil"
+msgstr "Prototyp für %q+D deklariert weniger Argumente als vorherige Definition im alten Stil"
#: c-decl.c:1107
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "prototype for %q+D declares argument %d with incompatible type"
-msgstr "%JPrototyp für %qD deklariert Argument %d mit inkompatiblem Typen"
+msgstr "Prototyp für %q+D 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:1120
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "prototype for %q+D follows non-prototype definition"
-msgstr "%JPrototyp für %qD folgt einer Nicht-Prototyp-Definition"
+msgstr "Prototyp für %q+D folgt einer Nicht-Prototyp-Definition"
#: c-decl.c:1135
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "previous definition of %q+D was here"
-msgstr "%Jvorherige Definition von %qD war hier"
+msgstr "Vorherige Definition von %q+D war hier"
#: c-decl.c:1137
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "previous implicit declaration of %q+D was here"
-msgstr "%Jvorherige implizite Deklaration von %qD war hier"
+msgstr "Vorherige implizite Deklaration von %q+D war hier"
#: c-decl.c:1139
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "previous declaration of %q+D was here"
-msgstr "%Jvorherige Deklaration von %qD war hier"
+msgstr "Vorherige Deklaration von %q+D war hier"
#: c-decl.c:1179
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D redeclared as different kind of symbol"
-msgstr "%q#D als andere Symbolart redeklariert"
+msgstr "%q+D als andere Symbolart redeklariert"
#: c-decl.c:1183
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "built-in function %q+D declared as non-function"
-msgstr "%Jeingebaute Funktion %qD als Nicht-Funktion deklariert"
+msgstr "Eingebaute Funktion %q+D als Nicht-Funktion deklariert"
#: c-decl.c:1186 c-decl.c:1302 c-decl.c:1926
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "declaration of %q+D shadows a built-in function"
-msgstr "%JDeklaration von %qD überdeckt eine eingebaute Funktion"
+msgstr "Deklaration von %q+D überdeckt eine eingebaute Funktion"
#: c-decl.c:1195
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "redeclaration of enumerator %q+D"
-msgstr "%JRedeklaration von Aufzählung %qD"
+msgstr "Redeklaration von Aufzählung %q+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:1216
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "conflicting types for built-in function %q+D"
-msgstr "%Jin Konflikt stehende Typen für eingebaute Funktion %qD"
+msgstr "In Konflikt stehende Typen für eingebaute Funktion %q+D"
#: c-decl.c:1240 c-decl.c:1253 c-decl.c:1263
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "conflicting types for %q+D"
-msgstr "%Jin Konflikt stehende Typen für %qD"
+msgstr "In Konflikt stehende Typen für %q+D"
#: c-decl.c:1261
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "conflicting type qualifiers for %q+D"
-msgstr "%J in Konflikt stehende Qualifizierer für %qD"
+msgstr "In Konflikt stehende Typqualifizierer für %q+D"
#. Allow OLDDECL to continue in use.
#: c-decl.c:1278
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "redefinition of typedef %q+D"
-msgstr "%JRedefinition des typedef %qD"
+msgstr "Redefinition des typedef %q+D"
#: c-decl.c:1326 c-decl.c:1404
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "redefinition of %q+D"
-msgstr "%JRedefinition von %qD"
+msgstr "Redefinition von %q+D"
#: c-decl.c:1361 c-decl.c:1442
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "static declaration of %q+D follows non-static declaration"
-msgstr "%Jstatische Deklaration von %qD folgt nicht-statischer Deklaration"
+msgstr "Statische Deklaration von %q+D folgt nicht-statischer Deklaration"
#: c-decl.c:1371 c-decl.c:1378 c-decl.c:1431 c-decl.c:1439
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "non-static declaration of %q+D follows static declaration"
-msgstr "%Jnicht-statische Deklaration von %qD folgt statischer Deklaration"
+msgstr "Nicht-statische Deklaration von %q+D folgt statischer Deklaration"
#: c-decl.c:1391
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "thread-local declaration of %q+D follows non-thread-local declaration"
-msgstr "%JThread-lokale Deklaration von %qD folgt nicht-Thread-lokaler Deklaration"
+msgstr "Thread-lokale Deklaration von %q+D folgt nicht-Thread-lokaler Deklaration"
#: c-decl.c:1394
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "non-thread-local declaration of %q+D follows thread-local declaration"
-msgstr "%JNicht-Thread-lokale Deklaration von %qD folgt Thread-lokaler Deklaration"
+msgstr "Nicht-Thread-lokale Deklaration von %q+D folgt Thread-lokaler Deklaration"
#: c-decl.c:1424
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "extern declaration of %q+D follows declaration with no linkage"
-msgstr "%Jextern-Deklaration von %qD folgt Deklaration ohne Bindung"
+msgstr "extern-Deklaration von %q+D folgt Deklaration ohne Bindung"
#: c-decl.c:1460
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "declaration of %q+D with no linkage follows extern declaration"
-msgstr "%JDeklaration von %qD ohne Bindung folgt einer extern-Deklaration"
+msgstr "Deklaration von %q+D ohne Bindung folgt einer extern-Deklaration"
#: c-decl.c:1466
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "redeclaration of %q+D with no linkage"
-msgstr "%JRedeklaration von %qD ohne Bindung"
+msgstr "Redeklaration von %q+D ohne Bindung"
#: c-decl.c:1480
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "redeclaration of %q+D with different visibility (old visibility preserved)"
-msgstr "%JRedeklaration von %qD mit anderer Sichtbarkeit (alte Sichtbarkeit beibehalten)"
+msgstr "Redeklaration von %q+D mit anderer Sichtbarkeit (alte Sichtbarkeit beibehalten)"
#: c-decl.c:1491
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "inline declaration of %qD follows declaration with attribute noinline"
-msgstr "%Jinline-Deklaration von %qD folgt Deklaration mit Attribut noinline"
+msgstr "inline-Deklaration von %qD folgt Deklaration mit Attribut noinline"
#: c-decl.c:1498
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "declaration of %q+D with attribute noinline follows inline declaration "
-msgstr "%JDeklaration von %qD mit Attribut noinline folgt inline-Deklaration "
+msgstr "Deklaration von %q+D mit Attribut noinline folgt inline-Deklaration "
#: c-decl.c:1513
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D declared inline after being called"
-msgstr "%J%qD als inline deklariert, nachdem es aufgerufen wurde"
+msgstr "%q+D als inline deklariert, nachdem es aufgerufen wurde"
#: c-decl.c:1518
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D declared inline after its definition"
-msgstr "%J%qD nach der Definition als inline deklariert"
+msgstr "%q+D nach der Definition als inline deklariert"
#: c-decl.c:1537
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "redefinition of parameter %q+D"
-msgstr "%JRedefinition des Parameters %qD"
+msgstr "Redefinition des Parameters %q+D"
#: c-decl.c:1564
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "redundant redeclaration of %q+D"
-msgstr "%Jredundante Redeklaration von %qD"
+msgstr "Redundante Redeklaration von %q+D"
#: c-decl.c:1913
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "declaration of %q+D shadows previous non-variable"
-msgstr "%JDeklaration von %qD überdeckt eine vorhergehende Nicht-Variable"
+msgstr "Deklaration von %q+D überdeckt eine vorhergehende Nicht-Variable"
#: c-decl.c:1918
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "declaration of %q+D shadows a parameter"
-msgstr "Deklaration von %q#D überdeckt einen Parameter"
+msgstr "Deklaration von %q+D überdeckt einen Parameter"
#: c-decl.c:1921
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "declaration of %q+D shadows a global declaration"
-msgstr "Deklaration von %qD überdeckt eine globale Deklaration"
+msgstr "Deklaration von %q+D überdeckt eine globale Deklaration"
#: c-decl.c:1931
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "declaration of %q+D shadows a previous local"
-msgstr "Deklaration von %qD überdeckt einen vorhergehenden lokalen Bezeichner"
+msgstr "Deklaration von %q+D überdeckt einen vorhergehenden lokalen Bezeichner"
#: c-decl.c:1934 cp/name-lookup.c:954 cp/name-lookup.c:985
#: cp/name-lookup.c:993
#, gcc-internal-format
msgid "%Jshadowed declaration is here"
-msgstr "%Jverdeckte Deklaration ist hier"
+msgstr "%JVerdeckte Deklaration ist hier"
#: c-decl.c:2134
#, gcc-internal-format
msgid "nested extern declaration of %qD"
-msgstr "geschachtelte extern-Deklaration von %qD"
+msgstr "Geschachtelte extern-Deklaration von %qD"
#: c-decl.c:2303
#, gcc-internal-format
msgid "implicit declaration of function %qE"
-msgstr "implizite Deklaration der Funktion %qE"
+msgstr "Implizite Deklaration der Funktion %qE"
#: c-decl.c:2364
#, gcc-internal-format
msgid "incompatible implicit declaration of built-in function %qD"
-msgstr "unverträgliche implizite Deklaration der eingebauten Funktion %qD"
+msgstr "Unverträgliche implizite Deklaration der eingebauten Funktion %qD"
#: c-decl.c:2373
#, gcc-internal-format
msgid "incompatible implicit declaration of function %qD"
-msgstr "unverträgliche implizite Deklaration der Funktion %qD"
+msgstr "Unverträgliche implizite Deklaration der Funktion %qD"
#: c-decl.c:2426
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%qE undeclared here (not in a function)"
-msgstr "%qE ist hier nicht deklariert (nicht in einer Funktion)"
+msgstr "%H%qE ist hier nicht deklariert (nicht in einer Funktion)"
#: c-decl.c:2431
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%qE undeclared (first use in this function)"
-msgstr "%qE nicht deklariert (erste Benutzung in dieser Funktion)"
+msgstr "%H%qE nicht deklariert (erste Benutzung in dieser Funktion)"
#: c-decl.c:2435
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H(Each undeclared identifier is reported only once"
-msgstr "(Jeder nicht deklarierte Bezeichner wird nur einmal aufgeführt"
+msgstr "%H(Jeder nicht deklarierte Bezeichner wird nur einmal aufgeführt"
#: c-decl.c:2436
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hfor each function it appears in.)"
-msgstr "für jede Funktion in der er auftritt.)"
+msgstr "%Hfür jede Funktion in der er auftritt.)"
#: c-decl.c:2474 cp/decl.c:2134
#, gcc-internal-format
@@ -15041,14 +14788,14 @@ msgid "label %qE referenced outside of any function"
msgstr "Marke %qE außerhalb einer Funktion referenziert"
#: c-decl.c:2516
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "duplicate label declaration %qE"
-msgstr "doppelte Markendeklaration %qs"
+msgstr "Doppelte Markendeklaration %qE"
#: c-decl.c:2552
#, gcc-internal-format
msgid "%Hduplicate label %qD"
-msgstr "%Hdoppelte Marke %qD"
+msgstr "%HDoppelte Marke %qD"
#: c-decl.c:2562
#, gcc-internal-format
@@ -15058,37 +14805,37 @@ msgstr "%JSprung in Anweisungs-Ausdruck"
#: c-decl.c:2564
#, gcc-internal-format
msgid "%Jjump into scope of identifier with variably modified type"
-msgstr "%Jin Gültigkeitsbereich von Bezeichner mit variabel modifiziertem Typ springen"
+msgstr "%JIn Gültigkeitsbereich von Bezeichner mit variabel modifiziertem Typ springen"
#: c-decl.c:2579
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Htraditional C lacks a separate namespace for labels, identifier %qE conflicts"
-msgstr "%Htraditionelles C bietet keinen separaten Namespace für Marken an, Bezeichner %qs steht in Konflikt"
+msgstr "%HTraditionelles C bietet keinen separaten Namespace für Marken an, Bezeichner %qE steht in Konflikt"
#: c-decl.c:2654
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%qE defined as wrong kind of tag"
-msgstr "%H%qs als falsche Symbolart definiert"
+msgstr "%H%qE als falsche Symbolart definiert"
#: c-decl.c:2869
#, gcc-internal-format
msgid "unnamed struct/union that defines no instances"
-msgstr "unbenannte struct/union, die keine Instanzen definiert"
+msgstr "Unbenannte struct/union, die keine Instanzen definiert"
#: c-decl.c:2877
#, gcc-internal-format
msgid "empty declaration with storage class specifier does not redeclare tag"
-msgstr "leere Deklaration mit Speicherklassenangabe redeklariert nicht Symbol"
+msgstr "Leere Deklaration mit Speicherklassenangabe redeklariert nicht Symbol"
#: c-decl.c:2888
#, gcc-internal-format
msgid "empty declaration with type qualifier does not redeclare tag"
-msgstr "leere Deklaration mit Typqualifizierer redeklariert nicht Symbol"
+msgstr "Leere Deklaration mit Typqualifizierer redeklariert nicht Symbol"
#: c-decl.c:2909 c-decl.c:2916
#, gcc-internal-format
msgid "useless type name in empty declaration"
-msgstr "nutzloser Typname in leerer Deklaration"
+msgstr "Nutzloser Typname in leerer Deklaration"
#: c-decl.c:2924
#, gcc-internal-format
@@ -15108,22 +14855,22 @@ msgstr "%<register%> in leerer Deklaration im Datei-Gültigkeitsbereich"
#: c-decl.c:2942
#, gcc-internal-format
msgid "useless storage class specifier in empty declaration"
-msgstr "nutzlose Speicherklassenangabe in leerer Deklaration"
+msgstr "Nutzlose Speicherklassenangabe in leerer Deklaration"
#: c-decl.c:2948
#, gcc-internal-format
msgid "useless %<__thread%> in empty declaration"
-msgstr "nutzloses %<__thread%> in leerer Deklaration"
+msgstr "Nutzloses %<__thread%> in leerer Deklaration"
#: c-decl.c:2956
#, gcc-internal-format
msgid "useless type qualifier in empty declaration"
-msgstr "nutzloser Typqualifizierer in leerer Deklaration"
+msgstr "Nutzloser Typqualifizierer in leerer Deklaration"
#: c-decl.c:2963 c-parser.c:1157
#, gcc-internal-format
msgid "empty declaration"
-msgstr "leere Deklaration"
+msgstr "Leere Deklaration"
#: c-decl.c:3029
#, gcc-internal-format
@@ -15146,9 +14893,9 @@ msgid "static or type qualifiers in abstract declarator"
msgstr "static oder Typkennzeichner in abstraktem Deklarator"
#: c-decl.c:3142
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D is usually a function"
-msgstr "%J%qD ist üblicherweise eine Funktion"
+msgstr "%q+D ist üblicherweise eine Funktion"
#: c-decl.c:3151 cp/decl.c:3706 cp/decl2.c:825
#, gcc-internal-format
@@ -15172,39 +14919,39 @@ msgid "variable %qD has initializer but incomplete type"
msgstr "Variable %qD hat Initialisierung, aber unvollständigen Typ"
#: c-decl.c:3263 c-decl.c:5885 cp/decl.c:3745 cp/decl.c:10133
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "inline function %q+D given attribute noinline"
-msgstr "%Jinline-Funktion %qD wurde das Attribut »noinline« gegeben"
+msgstr "inline-Funktion %q+D wurde das Attribut »noinline« gegeben"
#: c-decl.c:3335
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "initializer fails to determine size of %q+D"
-msgstr "Initialisierung gibt nicht die Größe von %qD an"
+msgstr "Initialisierung gibt nicht die Größe von %q+D an"
#: c-decl.c:3340
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "array size missing in %q+D"
-msgstr "Feldgröße fehlt in %qD"
+msgstr "Feldgröße fehlt in %q+D"
#: c-decl.c:3352
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "zero or negative size array %q+D"
-msgstr "%JFeldgröße von %qD ist null oder negativ"
+msgstr "Feldgröße von %q+D ist null oder negativ"
#: c-decl.c:3407 varasm.c:1646
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "storage size of %q+D isn%'t known"
-msgstr "Speichergröße von %qD ist unbekannt"
+msgstr "Speichergröße von %q+D ist unbekannt"
#: c-decl.c:3417
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "storage size of %q+D isn%'t constant"
-msgstr "Speichergröße von %qD ist nicht konstant"
+msgstr "Speichergröße von %q+D ist nicht konstant"
#: c-decl.c:3464
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "ignoring asm-specifier for non-static local variable %q+D"
-msgstr "%Jasm-Symbol für nicht-statische lokale Variable %qD wird ignoriert"
+msgstr "asm-Symbol für nicht-statische lokale Variable %q+D wird ignoriert"
#: c-decl.c:3492 fortran/f95-lang.c:667
#, gcc-internal-format
@@ -15224,12 +14971,12 @@ msgstr "Breite des Bitfeldes %qs ist keine Ganzzahlkonstante"
#: c-decl.c:3754
#, gcc-internal-format
msgid "negative width in bit-field %qs"
-msgstr "negative Breite in Bitfeld %qs"
+msgstr "Negative Breite in Bitfeld %qs"
#: c-decl.c:3759
#, gcc-internal-format
msgid "zero width for bit-field %qs"
-msgstr "Breite null für Bitfeld %qs"
+msgstr "Breite Null für Bitfeld %qs"
#: c-decl.c:3769
#, gcc-internal-format
@@ -15239,7 +14986,7 @@ msgstr "Bitfeld %qs hat ungültigen Typen"
#: c-decl.c:3779
#, gcc-internal-format
msgid "type of bit-field %qs is a GCC extension"
-msgstr "der Typ des Bitfeldes %qs ist eine Erweiterung des GCC"
+msgstr "Typ des Bitfeldes %qs ist eine Erweiterung des GCC"
#: c-decl.c:3788
#, gcc-internal-format
@@ -15425,9 +15172,9 @@ msgid "ISO C forbids qualified function types"
msgstr "ISO-C verbietet qualifizierte Funktionstypen"
#: c-decl.c:4444
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "typedef %q+D declared %<inline%>"
-msgstr "%Jtypedef %qD als %<inline%> deklariert"
+msgstr "typedef %q+D als %<inline%> deklariert"
#: c-decl.c:4474
#, gcc-internal-format
@@ -15445,9 +15192,9 @@ msgid "attributes in parameter array declarator ignored"
msgstr "Attribute in Parameterfelddeklarator ignoriert"
#: c-decl.c:4558
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "parameter %q+D declared %<inline%>"
-msgstr "%JParameter %qD als %<inline%> deklariert"
+msgstr "Parameter %q+D als %<inline%> deklariert"
#: c-decl.c:4571
#, gcc-internal-format
@@ -15480,9 +15227,9 @@ msgid "variable previously declared %<static%> redeclared %<extern%>"
msgstr "als %<extern%> redeklarierte Variable war bereits als %<static%> deklariert"
#: c-decl.c:4712
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "variable %q+D declared %<inline%>"
-msgstr "%JVariable %qD als %<inline%> deklariert"
+msgstr "Variable %q+D als %<inline%> deklariert"
#. A mere warning is sure to result in improper semantics
#. at runtime. Don't bother to allow this to compile.
@@ -15505,9 +15252,9 @@ msgid "parameter names (without types) in function declaration"
msgstr "Parameternamen (ohne Typen) in Funktionsdeklaration"
#: c-decl.c:4848
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "parameter %u (%q+D) has incomplete type"
-msgstr "%JParameter %u (%qD) hat unvollständigen Typen"
+msgstr "Parameter %u (%q+D) hat unvollständigen Typen"
#: c-decl.c:4851
#, gcc-internal-format
@@ -15515,9 +15262,9 @@ msgid "%Jparameter %u has incomplete type"
msgstr "%JParameter %u hat unvollständigen Typen"
#: c-decl.c:4860
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "parameter %u (%q+D) has void type"
-msgstr "%JParameter %u (%qD) hat void-Typen"
+msgstr "Parameter %u (%q+D) hat void-Typen"
#: c-decl.c:4863
#, gcc-internal-format
@@ -15535,9 +15282,9 @@ msgid "%<void%> must be the only parameter"
msgstr "%<void%> muss der einzige Parameter sein"
#: c-decl.c:4955
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "parameter %q+D has just a forward declaration"
-msgstr "%JParameter %qD hat nur eine Vorwärtsdeklaration"
+msgstr "Parameter %q+D hat nur eine Vorwärtsdeklaration"
#. The %s will be one of 'struct', 'union', or 'enum'.
#: c-decl.c:5000
@@ -15557,24 +15304,24 @@ msgid "its scope is only this definition or declaration, which is probably not w
msgstr "sein Gültigkeitsbereich umfasst nur diese Definition bzw. Deklaration, was Sie wahrscheinlich nicht wollten"
#: c-decl.c:5142
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "redefinition of %<union %E%>"
-msgstr "Redefinition von %<union %s%>"
+msgstr "Redefinition von %<union %E%>"
#: c-decl.c:5144
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "redefinition of %<struct %E%>"
-msgstr "Redefinition von %<struct %s%>"
+msgstr "Redefinition von %<struct %E%>"
#: c-decl.c:5149
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "nested redefinition of %<union %E%>"
-msgstr "Verschachtelte Redefinition von %<union %s%>"
+msgstr "Verschachtelte Redefinition von %<union %E%>"
#: c-decl.c:5151
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "nested redefinition of %<struct %E%>"
-msgstr "Verschachtelte Redefinition von %<struct %s%>"
+msgstr "Verschachtelte Redefinition von %<struct %E%>"
#: c-decl.c:5222 cp/decl.c:3506
#, gcc-internal-format
@@ -15587,9 +15334,9 @@ msgid "ISO C doesn%'t support unnamed structs/unions"
msgstr "ISO-C unterstützt keine namenlosen structs/unions"
#: c-decl.c:5269 c-decl.c:5285
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "duplicate member %q+D"
-msgstr "%Jdoppeltes Element %qD"
+msgstr "doppeltes Element %q+D"
#: c-decl.c:5324
#, gcc-internal-format
@@ -15637,15 +15384,15 @@ msgid "union cannot be made transparent"
msgstr "union kann nicht transparent gemacht werden"
#: c-decl.c:5591
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "nested redefinition of %<enum %E%>"
-msgstr "Verschachtelte Redefinition von %<enum %s%>"
+msgstr "Verschachtelte Redefinition von %<enum %E%>"
#. This enum is a named one that has been declared already.
#: c-decl.c:5598
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "redeclaration of %<enum %E%>"
-msgstr "Redeklaration von %<enum %s%>"
+msgstr "Redeklaration von %<enum %E%>"
#: c-decl.c:5661
#, gcc-internal-format
@@ -15683,54 +15430,54 @@ msgid "return type defaults to %<int%>"
msgstr "Rückgabetyp ist auf %<int%> voreingestellt"
#: c-decl.c:5971
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "no previous prototype for %q+D"
-msgstr "%Jkein vorheriger Prototyp für %qD"
+msgstr "kein vorheriger Prototyp für %q+D"
#: c-decl.c:5980
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D was used with no prototype before its definition"
-msgstr "%J%qD wurde vor seiner Definition ohne Prototyp verwendet"
+msgstr "%q+D wurde vor seiner Definition ohne Prototyp verwendet"
#: c-decl.c:5986
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "no previous declaration for %q+D"
-msgstr "%Jkeine vorherige Deklaration für %qD"
+msgstr "keine vorherige Deklaration für %q+D"
#: c-decl.c:5996
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D was used with no declaration before its definition"
-msgstr "%J%qD wurde vor seiner Definition ohne Deklaration verwendet"
+msgstr "%q+D wurde vor seiner Definition ohne Deklaration verwendet"
#: c-decl.c:6028 c-decl.c:6545
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "return type of %q+D is not %<int%>"
-msgstr "%JRückgabetyp von %qD ist nicht %<int%>"
+msgstr "Rückgabetyp von %q+D ist nicht %<int%>"
#: c-decl.c:6043
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "first argument of %q+D should be %<int%>"
-msgstr "%Jerstes Argument von %qD sollte %<int%> sein"
+msgstr "erstes Argument von %q+D sollte %<int%> sein"
#: c-decl.c:6051
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "second argument of %q+D should be %<char **%>"
-msgstr "%Jzweites Argument von %qD sollte %<char **%> sein"
+msgstr "zweites Argument von %q+D sollte %<char **%> sein"
#: c-decl.c:6060
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "third argument of %q+D should probably be %<char **%>"
-msgstr "%Jdrittes Argument von %qD sollte wahrscheinlich %<char **%> sein"
+msgstr "drittes Argument von %q+D sollte wahrscheinlich %<char **%> sein"
#: c-decl.c:6070
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D takes only zero or two arguments"
-msgstr "%J%qD benötigt entweder null oder zwei Argumente"
+msgstr "%q+D benötigt entweder null oder zwei Argumente"
#: c-decl.c:6073
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D is normally a non-static function"
-msgstr "%J%qD ist normalerweise eine Nicht-static-Funktion"
+msgstr "%q+D ist normalerweise eine Nicht-static-Funktion"
#: c-decl.c:6119
#, gcc-internal-format
@@ -15758,34 +15505,34 @@ msgid "%Jparameter name missing from parameter list"
msgstr "%JParametername fehlt in Parameterliste"
#: c-decl.c:6203
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D declared as a non-parameter"
-msgstr "%J%qD als Nicht-Parameter deklariert"
+msgstr "%q+D als Nicht-Parameter deklariert"
#: c-decl.c:6208
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "multiple parameters named %q+D"
-msgstr "%Jmehrere Parameter wurden %qD genannt"
+msgstr "mehrere Parameter wurden %q+D genannt"
#: c-decl.c:6216
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "parameter %q+D declared with void type"
-msgstr "%JParameter %qD als void deklariert"
+msgstr "Parameter %q+D als void deklariert"
#: c-decl.c:6233 c-decl.c:6235
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "type of %q+D defaults to %<int%>"
-msgstr "%JTyp von %qD ist auf %<int%> voreingestellt"
+msgstr "Typ von %q+D ist auf %<int%> voreingestellt"
#: c-decl.c:6254
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "parameter %q+D has incomplete type"
-msgstr "%JParameter %qD hat unvollständigen Typen"
+msgstr "Parameter %q+D hat unvollständigen Typen"
#: c-decl.c:6260
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "declaration for parameter %q+D but no such parameter"
-msgstr "%JDeklaration für nicht vorhandenen Parameter %qD"
+msgstr "Deklaration für nicht vorhandenen Parameter %q+D"
#: c-decl.c:6310
#, gcc-internal-format
@@ -15841,14 +15588,14 @@ msgid "%<for%> loop initial declaration used outside C99 mode"
msgstr "Anfangsdeklaration in %<for%>-Schleife außerhalb C99-Modus verwendet"
#: c-decl.c:6721
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "declaration of static variable %q+D in %<for%> loop initial declaration"
-msgstr "%JDeklaration der »static«-Variablen %qD in Anfangsdeklaration einer %<for%>-Schleife"
+msgstr "Deklaration der »static«-Variablen %q+D in Anfangsdeklaration einer %<for%>-Schleife"
#: c-decl.c:6724
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "declaration of %<extern%> variable %q+D in %<for%> loop initial declaration"
-msgstr "%JDeklaration der %<extern%>-Variablen %qD in Anfangsdeklaration einer %<for%>-Schleife"
+msgstr "Deklaration der %<extern%>-Variablen %q+D in Anfangsdeklaration einer %<for%>-Schleife"
#: c-decl.c:6729
#, gcc-internal-format
@@ -15866,14 +15613,14 @@ msgid "%<enum %E%> declared in %<for%> loop initial declaration"
msgstr "%<enum %E%> in Anfangsdeklaration einer %<for%>-Schleife deklariert"
#: c-decl.c:6741
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "declaration of non-variable %q+D in %<for%> loop initial declaration"
-msgstr "%JDeklaration der Nicht-Variablen %qD in Anfangsdeklaration einer %<for%>-Schleife"
+msgstr "Deklaration der Nicht-Variablen %q+D in Anfangsdeklaration einer %<for%>-Schleife"
#: c-decl.c:7025 c-decl.c:7176 c-decl.c:7386
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "duplicate %qE"
-msgstr "doppeltes %qs"
+msgstr "doppeltes %qE"
#: c-decl.c:7048 c-decl.c:7185 c-decl.c:7288
#, gcc-internal-format
@@ -16006,14 +15753,14 @@ msgid "both %<complex%> and %<_Bool%> in declaration specifiers"
msgstr "sowohl %<complex%> als auch %<_Bool%> in Deklaration"
#: c-decl.c:7305
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qE fails to be a typedef or built in type"
-msgstr "%qs ist kein typedef oder eingebauter Typ"
+msgstr "%qE ist kein typedef oder eingebauter Typ"
#: c-decl.c:7337
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qE is not at beginning of declaration"
-msgstr "%qs ist nicht am Beginn einer Deklaration"
+msgstr "%qE ist nicht am Anfang einer Deklaration"
#: c-decl.c:7351
#, gcc-internal-format
@@ -16046,9 +15793,9 @@ msgid "multiple storage classes in declaration specifiers"
msgstr "mehrere Speicherklassen in Deklaration"
#: c-decl.c:7398
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%<__thread%> used with %qE"
-msgstr "%<__thread%> mit %qs verwendet"
+msgstr "%<__thread%> mit %qE verwendet"
#: c-decl.c:7452
#, gcc-internal-format
@@ -16061,9 +15808,9 @@ msgid "ISO C does not support complex integer types"
msgstr "ISO-C unterstützt keine komplexen Ganzzahltypen"
#: c-decl.c:7597 toplev.c:822
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+F used but never defined"
-msgstr "%J%qF verwendet, aber nirgendwo definiert"
+msgstr "%q+F verwendet, aber nirgendwo definiert"
#: c-format.c:97 c-format.c:206
#, gcc-internal-format
@@ -16086,9 +15833,9 @@ msgid "unrecognized format specifier"
msgstr "unerkannte Formatangabe"
#: c-format.c:198
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qE is an unrecognized format function type"
-msgstr "%qs ist ein nicht erkannter Formatfunktionstyp"
+msgstr "%qE ist ein nicht erkannter Formatfunktionstyp"
#: c-format.c:212
#, gcc-internal-format
@@ -16362,9 +16109,9 @@ msgid "%<__gcc_host_wide_int__%> is not defined as %<long%> or %<long long%>"
msgstr "%<__gcc_host_wide_int__%> ist nicht als %<long%> oder %<long long%> definiert"
#: c-format.c:2438
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%<locus%> is not defined as a type"
-msgstr "%<location_t%> ist nicht als ein Typ definiert"
+msgstr "%<locus%> ist nicht als ein Typ definiert"
#: c-format.c:2491
#, gcc-internal-format
@@ -16453,19 +16200,19 @@ msgid "traditional C rejects string constant concatenation"
msgstr "traditionelles C weist Zeichenkettenkonstantenverkettung zurück"
#: c-objc-common.c:81
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+F 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"
+msgstr "Funktion %q+F kann nie inline sein, da dies mit -fno-inline unterdrückt wird"
#: c-objc-common.c:91
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+F 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"
+msgstr "Funktion %q+F kann nie inline sein, da sie nicht in dieser Ãœbersetzungseinheit gebunden wird"
#: c-objc-common.c:99
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+F 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"
+msgstr "Funktion %q+F kann nie inline sein, da sie mit inline in Konflikt stehende Attribute hat"
#: c-opts.c:147
#, gcc-internal-format
@@ -16508,9 +16255,9 @@ msgid "obsolete option -I- used, please use -iquote instead"
msgstr "veraltete Option -I- verwendet, bitte stattdessen -iquote verwenden"
#: c-opts.c:492
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "argument %qs to %<-Wnormalized%> not recognized"
-msgstr "Sprachen-Zeichenkette %<\"%E\"%> nicht erkannt"
+msgstr "Argument %qs für %<-Wnormalized%> nicht erkannt"
#: c-opts.c:576
#, gcc-internal-format
@@ -16603,9 +16350,9 @@ msgid "ISO C does not allow extra %<;%> outside of a function"
msgstr "ISO-C erlaubt kein zusätzliches %<;%> außerhalb einer Funktion"
#: c-parser.c:1145
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "expected declaration specifiers"
-msgstr "wiederholte Deklaration der Einheit »%s«"
+msgstr "Deklarationsspezifizierer erwartet"
#: c-parser.c:1193
#, gcc-internal-format
@@ -16615,7 +16362,7 @@ msgstr "Datendefinition hat keinen Typ oder Speicherklasse"
#: c-parser.c:1247
#, gcc-internal-format
msgid "expected %<,%> or %<;%>"
-msgstr ""
+msgstr "%<,%> oder %<;%> erwartet"
#. This can appear in many cases looking nothing like a
#. function definition, so we don't give a more specific
@@ -16623,7 +16370,7 @@ msgstr ""
#: c-parser.c:1254 c-parser.c:1271
#, gcc-internal-format
msgid "expected %<=%>, %<,%>, %<;%>, %<asm%> or %<__attribute__%>"
-msgstr ""
+msgstr " %<=%>, %<,%>, %<;%>, %<asm%> oder %<__attribute__%> erwartet"
#: c-parser.c:1263
#, gcc-internal-format
@@ -16636,9 +16383,9 @@ msgstr "ISO-C verbietet verschachtelte Funktionen"
#: c-parser.c:5422 c-parser.c:5447 c-parser.c:5575 c-parser.c:5604
#: c-parser.c:5612 c-parser.c:5640 c-parser.c:5654 c-parser.c:5867
#: c-parser.c:5966
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "expected identifier"
-msgstr "Typname erwartet"
+msgstr "Bezeichner erwartet"
#: c-parser.c:1635 cp/parser.c:10272
#, gcc-internal-format
@@ -16648,12 +16395,12 @@ msgstr "Komma am Ende der Aufzählungsliste"
#: c-parser.c:1641
#, gcc-internal-format
msgid "expected %<,%> or %<}%>"
-msgstr ""
+msgstr "%<,%> oder %<}%> erwartet"
#: c-parser.c:1655 c-parser.c:1825 c-parser.c:5729
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "expected %<{%>"
-msgstr "zusätzliches %<;%>"
+msgstr "%<{%> erwartet"
#: c-parser.c:1664
#, gcc-internal-format
@@ -16661,9 +16408,9 @@ msgid "ISO C forbids forward references to %<enum%> types"
msgstr "ISO-C verbietet Vorwärts-Referenzen auf %<enum%>-Typen"
#: c-parser.c:1767
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "expected class name"
-msgstr "Typname erwartet"
+msgstr "Klassenname erwartet"
#: c-parser.c:1786 c-parser.c:5514
#, gcc-internal-format
@@ -16676,14 +16423,14 @@ msgid "no semicolon at end of struct or union"
msgstr "kein Semikolon am Ende von »struct« oder »union«"
#: c-parser.c:1811
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "expected %<;%>"
-msgstr "zusätzliches %<;%>"
+msgstr "%<;%> erwartet"
#: c-parser.c:1888 c-parser.c:2815
#, gcc-internal-format
msgid "expected specifier-qualifier-list"
-msgstr ""
+msgstr "Spezifizierer-Qualifizierer-Liste erwartet"
#: c-parser.c:1898
#, gcc-internal-format
@@ -16693,12 +16440,12 @@ msgstr "ISO-C verbietet Elementdeklarationen ohne Elemente"
#: c-parser.c:1967
#, gcc-internal-format
msgid "expected %<,%>, %<;%> or %<}%>"
-msgstr ""
+msgstr "%<,%>, %<;%> oder %<}%> erwartet"
#: c-parser.c:1974
#, gcc-internal-format
msgid "expected %<:%>, %<,%>, %<;%>, %<}%> or %<__attribute__%>"
-msgstr ""
+msgstr "%<:%>, %<,%>, %<;%>, %<}%> oder %<__attribute__%> erwartet"
#: c-parser.c:2023
#, gcc-internal-format
@@ -16708,7 +16455,7 @@ msgstr "%<typeof%> auf ein Bitfeld angewandt"
#: c-parser.c:2242
#, gcc-internal-format
msgid "expected identifier or %<(%>"
-msgstr ""
+msgstr "Bezeichner oder %<(%> erwartet"
#: c-parser.c:2435
#, gcc-internal-format
@@ -16716,9 +16463,9 @@ msgid "ISO C requires a named argument before %<...%>"
msgstr "ISO-C erfordert ein benanntes Argument vor %<...%>"
#: c-parser.c:2537
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "expected declaration specifiers or %<...%>"
-msgstr "Deklaration höchster Ebene von %qs gibt %<auto%> an"
+msgstr "Deklarationsspezifizierer oder %<...%> erwartet"
#: c-parser.c:2587
#, gcc-internal-format
@@ -16726,9 +16473,9 @@ msgid "wide string literal in %<asm%>"
msgstr "Wide-Zeichenkettenliteral in »asm«"
#: c-parser.c:2593
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "expected string literal"
-msgstr "_Pragma nimmt ein geklammertes Zeichenkettenliteral"
+msgstr "Zeichenkettenliteral erwartet"
#: c-parser.c:2907
#, gcc-internal-format
@@ -16756,9 +16503,9 @@ msgid "obsolete use of designated initializer without %<=%>"
msgstr "veraltete Verwendung einer bestimmten Initialisierung ohne %<=%>"
#: c-parser.c:3104
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "expected %<=%>"
-msgstr "zusätzliches %<;%>"
+msgstr "%<=%> erwartet"
#: c-parser.c:3241
#, gcc-internal-format
@@ -16766,14 +16513,14 @@ msgid "ISO C forbids label declarations"
msgstr "ISO-C verbietet Markendeklarationen"
#: c-parser.c:3246 c-parser.c:3255
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "expected declaration or statement"
-msgstr "wiederholte Deklaration des Automaten %s"
+msgstr "Deklaration oder Anweisung erwartet"
#: c-parser.c:3275 c-parser.c:3303
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%HISO C90 forbids mixed declarations and code"
-msgstr "ISO-C90 verbietet gemischte Deklarationen und Code"
+msgstr "%HISO-C90 verbietet gemischte Deklarationen und Code"
#: c-parser.c:3319
#, gcc-internal-format
@@ -16783,21 +16530,21 @@ msgstr "Marke am Ende einer Verbundanweisung"
#: c-parser.c:3362
#, gcc-internal-format
msgid "expected %<:%> or %<...%>"
-msgstr ""
+msgstr "%<:%> oder %<...%> erwartet"
#: c-parser.c:3498
#, gcc-internal-format
msgid "expected identifier or %<*%>"
-msgstr ""
+msgstr "Bezeichner oder %<*%> erwartet"
#. Avoid infinite loop in error recovery:
#. c_parser_skip_until_found stops at a closing nesting
#. delimiter without consuming it, but here we need to consume
#. it to proceed further.
#: c-parser.c:3560
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "expected statement"
-msgstr "Typname erwartet"
+msgstr "Anweisung erwartet"
#: c-parser.c:3894
#, gcc-internal-format
@@ -16820,9 +16567,9 @@ msgid "%<sizeof%> applied to a bit-field"
msgstr "%<sizeof%> auf ein Bitfeld angewandt"
#: c-parser.c:4816 c-parser.c:5157 c-parser.c:5179
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "expected expression"
-msgstr "unerwarteter Adressausdruck"
+msgstr "Ausdruck erwartet"
#: c-parser.c:4842
#, gcc-internal-format
@@ -16900,9 +16647,9 @@ msgid "use #include instead"
msgstr "stattdessen #include verwenden"
#: c-pch.c:467
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s: couldn%'t open PCH file: %m"
-msgstr "%s: PCH-Datei konnte nicht geöffnet werden: %m\n"
+msgstr "%s: PCH-Datei konnte nicht geöffnet werden: %m"
#: c-pch.c:472
#, gcc-internal-format
@@ -16975,9 +16722,9 @@ msgid "alignment must be a small power of two, not %d"
msgstr "Ausrichtung muss eine kleine Zweierpotenz sein, nicht %d"
#: c-pragma.c:263
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "applying #pragma weak %q+D after first use results in unspecified behavior"
-msgstr "%JAnwendung von #pragma weak %qD nach erster Benutzung führt zu nicht spezifiziertem Verhalten"
+msgstr "Anwendung von #pragma weak %q+D nach erster Benutzung führt zu nicht spezifiziertem Verhalten"
#: c-pragma.c:337 c-pragma.c:342
#, gcc-internal-format
@@ -17045,9 +16792,9 @@ 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:623
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "no matching push for %<#pragma GCC visibility pop%>"
-msgstr "Kein passendes push für %<#pragma GCC visibility pop%>"
+msgstr "kein passendes push für %<#pragma GCC visibility pop%>"
#: c-pragma.c:635 c-pragma.c:661
#, gcc-internal-format
@@ -17070,9 +16817,9 @@ msgid "junk at end of %<#pragma GCC visibility%>"
msgstr "Ausschuss am Ende von %<#pragma GCC visibility%>"
#: c-typeck.c:157
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qD has an incomplete type"
-msgstr "%qs hat unvollständigen Typ"
+msgstr "%qD hat unvollständigen Typ"
#: c-typeck.c:178 cp/call.c:2693
#, gcc-internal-format
@@ -17090,15 +16837,15 @@ msgid "invalid use of array with unspecified bounds"
msgstr "falsche Benutzung eines Feldes mit unbekannten Grenzen"
#: c-typeck.c:200
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid use of undefined type %<%s %E%>"
-msgstr "falsche Benutzung des undefinierten Typs %<%s %s%>"
+msgstr "falsche Benutzung des undefinierten Typs %<%s %E%>"
#. If this type has a typedef-name, the TYPE_NAME is a TYPE_DECL.
#: c-typeck.c:204
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid use of incomplete typedef %qD"
-msgstr "falsche Benutzung des unvollständigen typedef %qs"
+msgstr "falsche Benutzung des unvollständigen typedef %qD"
#: c-typeck.c:431 c-typeck.c:456
#, gcc-internal-format
@@ -17121,14 +16868,14 @@ msgid "arithmetic on pointer to an incomplete type"
msgstr "Arithmetik mit Zeiger auf unvollständigen Typen"
#: c-typeck.c:1726
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qT has no member named %qE"
-msgstr "%qD hat kein Element namens %qE"
+msgstr "%qT hat kein Element namens %qE"
#: c-typeck.c:1761
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "request for member %qE in something not a structure or union"
-msgstr "Anfrage nach Element %qs in etwas, was keine Struktur oder Variante ist"
+msgstr "Anfrage nach Element %qE in etwas, was keine Struktur oder Variante ist"
#: c-typeck.c:1792
#, gcc-internal-format
@@ -17364,44 +17111,44 @@ msgid "decrement of pointer to unknown structure"
msgstr "Verminderung eines Zeigers auf unbekannte Struktur"
#: c-typeck.c:3003
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "assignment of read-only member %qD"
-msgstr "Zuweisung des schreibgeschützten Elementes %qs"
+msgstr "Zuweisung des schreibgeschützten Elementes %qD"
#: c-typeck.c:3004
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "increment of read-only member %qD"
-msgstr "Erhöhung des schreibgeschützten Elementes %qs"
+msgstr "Erhöhung des schreibgeschützten Elementes %qD"
#: c-typeck.c:3005
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "decrement of read-only member %qD"
-msgstr "Verringerung des schreibgeschützten Elementes %qs"
+msgstr "Verringerung des schreibgeschützten Elementes %qD"
#: c-typeck.c:3006
#, gcc-internal-format
msgid "read-only member %qD used as %<asm%> output"
-msgstr ""
+msgstr "schreibgeschütztes Element %qD als %<asm%>-Ausgabe verwendet"
#: c-typeck.c:3010
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "assignment of read-only variable %qD"
-msgstr "Zuweisung der schreibgeschützten Variable %qs"
+msgstr "Zuweisung der schreibgeschützten Variable %qD"
#: c-typeck.c:3011
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "increment of read-only variable %qD"
-msgstr "Erhöhung der schreibgeschützten Variable %qs"
+msgstr "Erhöhung der schreibgeschützten Variable %qD"
#: c-typeck.c:3012
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "decrement of read-only variable %qD"
-msgstr "Verringerung der schreibgeschützten Variable %qs"
+msgstr "Verringerung der schreibgeschützten Variable %qD"
#: c-typeck.c:3013
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "read-only variable %qD used as %<asm%> output"
-msgstr "nicht lokale Variable %q#D verwendet anonymen Typen"
+msgstr "schreibgeschützte Variable %qD als %<asm%>-Ausgabe verwendet"
#: c-typeck.c:3016
#, gcc-internal-format
@@ -17421,7 +17168,7 @@ msgstr "Verringerung der schreibgeschützten Speicherstelle"
#: c-typeck.c:3019
#, gcc-internal-format
msgid "read-only location used as %<asm%> output"
-msgstr ""
+msgstr "schreibgeschützte Stelle als %<asm%>-Ausgabe verwendet"
#: c-typeck.c:3054
#, gcc-internal-format
@@ -17606,29 +17353,29 @@ msgid "ISO C prohibits argument conversion to union type"
msgstr "ISO-C verbietet Argumentkonvertierung in union-Typ"
#: c-typeck.c:3916
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "request for implicit conversion from %qT to %qT not permitted in C++"
-msgstr " für Umwandlung von %qT in %qT"
+msgstr "Anfrage zur impliziten für Umwandlung von %qT in %qT ist in C++ nicht erlaubt"
#: c-typeck.c:3929
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "argument %d of %qE might be a candidate for a format attribute"
-msgstr "Funktion könnte möglicher Kandidat für Formatattribut %qs sein"
+msgstr "Argument %d von %qE könnte Kandidat für Formatattribut sein"
#: c-typeck.c:3935
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "assignment left-hand side might be a candidate for a format attribute"
-msgstr "Bei Funktionen, die Kandidaten für Formatattribute sein könnten, warnen"
+msgstr "Links-Zuweisung könnte Kandidat für Formatattribut sein"
#: c-typeck.c:3940
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "initialization left-hand side might be a candidate for a format attribute"
-msgstr "Funktion könnte möglicher Kandidat für Formatattribut %qs sein"
+msgstr "Linke-Initialisierung könnte Kandidat für Formatattribut sein"
#: c-typeck.c:3945
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "return type might be a candidate for a format attribute"
-msgstr "Funktion könnte möglicher Kandidat für Formatattribut %qs sein"
+msgstr "Rückgabetyp könnte Kandidat für Formatattribut sein"
#: c-typeck.c:3970
#, gcc-internal-format
@@ -17761,9 +17508,9 @@ msgid "opaque vector types cannot be initialized"
msgstr "opake Vektortypen können nicht initialisiert werden"
#: c-typeck.c:5551
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "unknown field %qE specified in initializer"
-msgstr "unbekanntes Feld %qs in Initialisierung angegeben"
+msgstr "unbekanntes Feld %qE in Initialisierung angegeben"
#: c-typeck.c:6445
#, gcc-internal-format
@@ -17978,12 +17725,12 @@ msgstr "Funktionsaufruf hat zusammengesetzten Wert"
#: cfgexpand.c:1597
#, gcc-internal-format
msgid "not protecting local variables: variable length buffer"
-msgstr ""
+msgstr "Lokale Variablen werden nicht geschützt: Puffer variabler Größe"
#: cfgexpand.c:1599
#, gcc-internal-format
msgid "not protecting function: no buffer at least %d bytes long"
-msgstr ""
+msgstr "Funktion wird nicht geschützt: Kein Puffer mit mindestens %d Bytes"
#: cfghooks.c:90
#, gcc-internal-format
@@ -18026,9 +17773,9 @@ 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:2045
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "wrong amount of branch edges after unconditional jump %i"
-msgstr "Falsche Summe der Zweig-Kanten nach unbedingtem Sprung %i"
+msgstr "falscher Betrag der Zweig-Kanten nach unbedingtem Sprung %i"
#: cfghooks.c:173 cfghooks.c:184
#, gcc-internal-format
@@ -18051,74 +17798,74 @@ msgid "verify_flow_info failed"
msgstr "verify_flow_info gescheitert"
#: cfghooks.c:288
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s does not support redirect_edge_and_branch"
-msgstr "%s unterstützt nicht redirect_edge_and_branch."
+msgstr "%s unterstützt nicht redirect_edge_and_branch"
#: cfghooks.c:306
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s does not support redirect_edge_and_branch_force"
-msgstr "%s unterstützt nicht redirect_edge_and_branch_force."
+msgstr "%s unterstützt nicht redirect_edge_and_branch_force"
#: cfghooks.c:324
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s does not support split_block"
-msgstr "%s unterstützt nicht split_block."
+msgstr "%s unterstützt nicht split_block"
#: cfghooks.c:360
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s does not support move_block_after"
-msgstr "%s unterstützt nicht move_block_after."
+msgstr "%s unterstützt nicht move_block_after"
#: cfghooks.c:373
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s does not support delete_basic_block"
-msgstr "%s unterstützt nicht delete_basic_block."
+msgstr "%s unterstützt nicht delete_basic_block"
#: cfghooks.c:405
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s does not support split_edge"
-msgstr "%s unterstützt nicht split_edge."
+msgstr "%s unterstützt nicht split_edge"
#: cfghooks.c:466
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s does not support create_basic_block"
-msgstr "%s unterstützt nicht create_basic_block."
+msgstr "%s unterstützt nicht create_basic_block"
#: cfghooks.c:494
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s does not support can_merge_blocks_p"
-msgstr "%s unterstützt nicht can_merge_blocks_p."
+msgstr "%s unterstützt nicht can_merge_blocks_p"
#: cfghooks.c:505
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s does not support predict_edge"
-msgstr "%s unterstützt nicht predict_edge."
+msgstr "%s unterstützt nicht predict_edge"
#: cfghooks.c:514
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s does not support predicted_by_p"
-msgstr "%s unterstützt nicht predicted_by_p."
+msgstr "%s unterstützt nicht predicted_by_p"
#: cfghooks.c:528
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s does not support merge_blocks"
-msgstr "%s unterstützt nicht merge_blocks."
+msgstr "%s unterstützt nicht merge_blocks"
#: cfghooks.c:573
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s does not support make_forwarder_block"
-msgstr "%s unterstützt nicht make_forwarder_block."
+msgstr "%s unterstützt nicht make_forwarder_block"
#: cfghooks.c:678
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s does not support can_duplicate_block_p"
-msgstr "%s unterstützt nicht can_duplicate_block_p."
+msgstr "%s unterstützt nicht can_duplicate_block_p"
#: cfghooks.c:706
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s does not support duplicate_block"
-msgstr "%s unterstützt nicht duplicate_block."
+msgstr "%s unterstützt nicht duplicate_block"
#: cfghooks.c:774
#, gcc-internal-format
@@ -18136,89 +17883,89 @@ msgid "%s does not support flow_call_edges_add"
msgstr "%s unterstützt nicht flow_call_edges_add"
#: cfgloop.c:1088
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "size of loop %d should be %d, not %d"
-msgstr "Größe der Schleife %d sollte %d sein, nicht %d."
+msgstr "Größe der Schleife %d sollte %d sein, nicht %d"
#: cfgloop.c:1105
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "bb %d do not belong to loop %d"
-msgstr "Bb %d gehört nicht zur Schleife %d."
+msgstr "BB %d gehört nicht zur Schleife %d"
#: cfgloop.c:1122
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "loop %d's header does not have exactly 2 entries"
-msgstr "Kopf der Schleife %d hat nicht genau 2 Einträge."
+msgstr "Kopf der Schleife %d hat nicht genau 2 Einträge"
#: cfgloop.c:1129
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "loop %d's latch does not have exactly 1 successor"
-msgstr "Falle der Schleife %d hat nicht genau einen Nachfolger."
+msgstr "Falle der Schleife %d hat nicht genau einen Nachfolger"
#: cfgloop.c:1134
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "loop %d's latch does not have header as successor"
-msgstr "Falle der Schleife %d hat nicht den Kopf als Nachfolger."
+msgstr "Falle der Schleife %d hat nicht den Kopf als Nachfolger"
#: cfgloop.c:1139
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "loop %d's latch does not belong directly to it"
-msgstr "Falle der Schleife %d gehört nicht direkt zu ihr."
+msgstr "Falle der Schleife %d gehört nicht direkt zu ihr"
#: cfgloop.c:1145
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "loop %d's header does not belong directly to it"
-msgstr "Kopf der Schleife %d gehört nicht direkt zu ihr."
+msgstr "Kopf der Schleife %d gehört nicht direkt zu ihr"
#: cfgloop.c:1151
-#, fuzzy, gcc-internal-format
+#, gcc-internal-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."
+msgstr "Falle der Schleife %d ist als Teil einer irreduziblen Region markiert"
#: cfgloop.c:1184
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "basic block %d should be marked irreducible"
-msgstr "Basisblock %d sollte als irreduzibel markiert werden."
+msgstr "Basisblock %d sollte als irreduzibel markiert werden"
#: cfgloop.c:1190
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "basic block %d should not be marked irreducible"
-msgstr "Basisblock %d sollte nicht als irreduzibel markiert werden."
+msgstr "Basisblock %d sollte nicht als irreduzibel markiert werden"
#: cfgloop.c:1198
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "edge from %d to %d should be marked irreducible"
-msgstr "Kante von %d nach %d sollte als irreduzibel markiert werden."
+msgstr "Kante von %d nach %d sollte als irreduzibel markiert werden"
#: cfgloop.c:1205
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "edge from %d to %d should not be marked irreducible"
-msgstr "Kante von %d nach %d sollte nicht als irreduzibel markiert werden."
+msgstr "Kante von %d nach %d sollte nicht als irreduzibel markiert werden"
#: cfgloop.c:1240
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "wrong single exit %d->%d recorded for loop %d"
-msgstr "Falscher einzelner Ausgang %d->%d für Schleife %d aufgezeichnet."
+msgstr "Falscher einzelner Ausgang %d->%d für Schleife %d aufgezeichnet"
#: cfgloop.c:1244
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "right exit is %d->%d"
-msgstr "Richtiger Ausgang ist %d->%d."
+msgstr "Richtiger Ausgang ist %d->%d"
#: cfgloop.c:1261
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "single exit not recorded for loop %d"
-msgstr "Einzelner Ausgang nicht aufgezeichnet für Schleife %d."
+msgstr "Einzelner Ausgang nicht aufgezeichnet für Schleife %d"
#: cfgloop.c:1268
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "loop %d should not have single exit (%d -> %d)"
-msgstr "Schleife %d sollte nicht einzelnen Ausgang (%d -> %d) haben."
+msgstr "Schleife %d sollte nicht einzelnen Ausgang (%d -> %d) haben"
#: cfgrtl.c:1931
#, gcc-internal-format
msgid "BB_RTL flag not set for block %d"
-msgstr ""
+msgstr "Kennzeichen BB_RTL ist für Block %d nicht gesetzt"
#: cfgrtl.c:1937
#, gcc-internal-format
@@ -18241,39 +17988,39 @@ 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:2002
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "fallthru edge crosses section boundary (bb %i)"
-msgstr "Fall-Through-Kante erreicht Abschnittsgrenze (bb %i)"
+msgstr "Fall-Through-Kante überschreitet Abschnittsgrenze (bb %i)"
#: cfgrtl.c:2027
-#, fuzzy, gcc-internal-format
+#, gcc-internal-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"
+msgstr "fehlender Vermerk von REG_EH_REGION am Ende vom bb %i"
#: cfgrtl.c:2035
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "too many outgoing branch edges from bb %i"
-msgstr "Zu viele abgehende Zweig-Kanten vom bb %i"
+msgstr "zu viele abgehende Zweig-Kanten vom bb %i"
#: cfgrtl.c:2040
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "fallthru edge after unconditional jump %i"
msgstr "Fallthru-Kante nach unbedingtem Sprung %i"
#: cfgrtl.c:2051
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "wrong amount of branch edges after conditional jump %i"
-msgstr "Falsche Summe der Zweig-Kanten nach bedingtem Sprung %i"
+msgstr "falsche Summe der Zweig-Kanten nach bedingtem Sprung %i"
#: cfgrtl.c:2057
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "call edges for non-call insn in bb %i"
msgstr "Ruf-Kanten für Nicht-Aufruf-Befehl im bb %i"
#: cfgrtl.c:2066
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "abnormal edges for no purpose in bb %i"
-msgstr "Abnormale Kanten ohne Zweck in bb %i"
+msgstr "abnormale Kanten ohne Zweck in bb %i"
#: cfgrtl.c:2078
#, gcc-internal-format
@@ -18303,7 +18050,7 @@ msgstr "im Basis-Block %d:"
#: cfgrtl.c:2166
#, gcc-internal-format
msgid "bb prediction set for block %i, but it is not used in RTL land"
-msgstr ""
+msgstr "BB-Voraussagemenge für Block %i, es wird aber im RTL-Land nicht verwendet"
#: cfgrtl.c:2184
#, gcc-internal-format
@@ -18336,74 +18083,74 @@ msgid "%D renamed after being referenced in assembly"
msgstr "%D nach Referenzierung in Assemblierung umbenannt"
#: cgraphunit.c:664
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "aux field set for edge %s->%s"
msgstr "Aux-Feld für Kante %s->%s gesetzt"
#: cgraphunit.c:670
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "Execution count is negative"
-msgstr "Links-Schiebe-Weite ist negativ"
+msgstr "Ausführungszähler ist negativ"
#: cgraphunit.c:677
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "caller edge count is negative"
-msgstr "Links-Schiebe-Weite ist negativ"
+msgstr "Rufer-Kantenzähler ist negativ"
#: cgraphunit.c:686
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "inlined_to pointer is wrong"
-msgstr "Inlined_to-Zeiger ist falsch"
+msgstr "inlined_to-Zeiger ist falsch"
#: cgraphunit.c:691
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "multiple inline callers"
-msgstr "Mehrere Inline-Aufrufer"
+msgstr "mehrere Inline-Aufrufer"
#: cgraphunit.c:698
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "inlined_to pointer set for noninline callers"
-msgstr "Inlined_to-Zeiger für Nicht-Inline-Aufrufer gesetzt"
+msgstr "inlined_to-Zeiger für Nicht-Inline-Aufrufer gesetzt"
#: cgraphunit.c:704
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "inlined_to pointer is set but no predecesors found"
-msgstr "Inlined_to-Zeiger gesetzt, aber keine Vorgänger gefunden"
+msgstr "inlined_to-Zeiger gesetzt, aber keine Vorgänger gefunden"
#: cgraphunit.c:709
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "inlined_to pointer refers to itself"
-msgstr "Inlined_to-Zeiger verweist auf sich selbst"
+msgstr "Iilined_to-Zeiger verweist auf sich selbst"
#: cgraphunit.c:719
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "node not found in DECL_ASSEMBLER_NAME hash"
msgstr "Knoten in DECL_ASSEMBLER_NAME-Hash nicht gefunden"
#: cgraphunit.c:747
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "shared call_stmt:"
-msgstr "Gemeinsam genutztes call_expr:"
+msgstr "Gemeinsam genutztes call_stmt:"
#: cgraphunit.c:753
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "edge points to wrong declaration:"
msgstr "Kante zeigt auf falsche Deklaration:"
#: cgraphunit.c:762
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "missing callgraph edge for call stmt:"
-msgstr "Fehlende Aufrufgraph-Kante für call_expr:"
+msgstr "Fehlende Aufrufgraph-Kante für call stmt:"
#: cgraphunit.c:779
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "edge %s->%s has no corresponding call_stmt"
-msgstr "Kante %s->%s hat keine passende call_expr"
+msgstr "Kante %s->%s hat keine passende call_stmt"
#: cgraphunit.c:791
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "verify_cgraph_node failed"
-msgstr "verify_cgraph gescheitert."
+msgstr "verify_cgraph gescheitert"
#: cgraphunit.c:1028
#, gcc-internal-format
@@ -18411,9 +18158,9 @@ msgid "failed to reclaim unneeded function"
msgstr "Zurückfordern der nicht genötigten Funktion gescheitert"
#: cgraphunit.c:1308
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "nodes with no released memory found"
-msgstr "Knoten ohne freigegebenen Speicher gefunden."
+msgstr "Knoten ohne freigegebenen Speicher gefunden"
#: collect2.c:1172
#, gcc-internal-format
@@ -18491,9 +18238,9 @@ msgid "%qs is version %q.*s, expected version %q.*s"
msgstr "%qs hat Version %q.*s, Version %q.*s erwartet"
#: coverage.c:274 coverage.c:282
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "coverage mismatch for function %u while reading execution counters"
-msgstr "Überdeckung passt nicht für Funktion %u beim Lesen der Ausführungszähler."
+msgstr "Überdeckung passt nicht für Funktion %u beim Lesen der Ausführungszähler"
#: coverage.c:276 coverage.c:359
#, gcc-internal-format
@@ -18521,14 +18268,14 @@ msgid "%qs is corrupted"
msgstr "%qs ist beschädigt"
#: coverage.c:348
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "no coverage for function %qs found"
-msgstr "keine Überdeckung für Funktion %qs gefunden."
+msgstr "keine Überdeckung für Funktion %qs gefunden"
#: coverage.c:356 coverage.c:364
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "coverage mismatch for function %qs while reading counter %qs"
-msgstr "Überdeckung passt nicht bei Funktion %qs beim Lesen des Zählers %qs."
+msgstr "Überdeckung passt nicht für Funktion %qs beim Lesen des Zählers %qs"
#: coverage.c:529
#, gcc-internal-format
@@ -18561,17 +18308,17 @@ msgid "ENTRY does not dominate bb %d"
msgstr "ENTRY dominiert nicht bb %d"
#: dwarf2out.c:3533
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "DW_LOC_OP %s not implemented"
-msgstr "DW_LOC_OP %s nicht implementiert\n"
+msgstr "DW_LOC_OP %s nicht implementiert"
#: emit-rtl.c:2269
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid rtl sharing found in the insn"
msgstr "ungültige gemeinsame rtl-Benutzung in Befehl gefunden"
#: emit-rtl.c:2271
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "shared rtx"
msgstr "Gemeinsames rtx"
@@ -18608,37 +18355,37 @@ msgstr "__builtin_eh_return für dieses Ziel nicht unterstützt"
#: except.c:3771 except.c:3780
#, gcc-internal-format
msgid "region_array is corrupted for region %i"
-msgstr ""
+msgstr "region_array ist für Region %i beschädigt"
#: except.c:3785
#, gcc-internal-format
msgid "outer block of region %i is wrong"
-msgstr ""
+msgstr "äußerer Block der Region %i ist falsch"
#: except.c:3790
#, gcc-internal-format
msgid "region %i may contain throw and is contained in region that may not"
-msgstr ""
+msgstr "Region %i kann throw enthalten und ist in einer Region enthalten, die dies nicht darf"
#: except.c:3796
#, gcc-internal-format
msgid "negative nesting depth of region %i"
-msgstr ""
+msgstr "negative Verschachtelungstiefe der Region %i"
#: except.c:3816
#, gcc-internal-format
msgid "tree list ends on depth %i"
-msgstr ""
+msgstr "Baumliste endet bei Tiefe %i"
#: except.c:3821
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "array does not match the region tree"
-msgstr "Typkonvertierung passt nicht zum Funktionstypen"
+msgstr "Feld passt nicht zum Regionsbaum"
#: except.c:3827
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "verify_eh_tree failed"
-msgstr "verify_name_tags gescheitert"
+msgstr "verify_eh_tree gescheitert"
#: explow.c:1212
#, gcc-internal-format
@@ -18671,14 +18418,14 @@ msgid "fold check: original tree changed by fold"
msgstr "Faltungstest: ursprünglicher Baum durch Faltung geändert"
#: function.c:491
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Jtotal size of local objects too large"
-msgstr "%JGröße der Variablen %qD ist zu hoch"
+msgstr "%JGesamtgröße der lokalen Objekte zu hoch"
#: function.c:838 varasm.c:1674
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "size of variable %q+D is too large"
-msgstr "%JGröße der Variablen %qD ist zu hoch"
+msgstr "Größe der Variablen %q+D ist zu hoch"
#: function.c:1548
#, gcc-internal-format
@@ -18686,14 +18433,14 @@ msgid "impossible constraint in %<asm%>"
msgstr "unmögliche Bedingung in »asm«"
#: function.c:3506
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "variable %q+D might be clobbered by %<longjmp%> or %<vfork%>"
-msgstr "%JVariable %qD könnte von »longjmp« oder »vfork« zerstört werden"
+msgstr "Variable %q+D könnte von »longjmp« oder »vfork« zerstört werden"
#: function.c:3527
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "argument %q+D might be clobbered by %<longjmp%> or %<vfork%>"
-msgstr "%JArgument %qD könnte von »longjmp« oder »vfork« zerstört werden"
+msgstr "Argument %q+D könnte von »longjmp« oder »vfork« zerstört werden"
#: function.c:3922
#, gcc-internal-format
@@ -18701,9 +18448,9 @@ msgid "function returns an aggregate"
msgstr "Funktion gibt Aggregat zurück"
#: function.c:4314
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "unused parameter %q+D"
-msgstr "%Jnicht benutzter Parameter %qD"
+msgstr "unbenutzter Parameter %q+D"
#: gcc.c:1243
#, gcc-internal-format
@@ -18754,14 +18501,14 @@ msgid "spec failure: unrecognized spec option '%c'"
msgstr "Spezifikationsfehler: nicht erkannte Option »%c«"
#: gcc.c:6188
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC"
-msgstr "Spezifikationsfehler: mehr als ein Argument für SYSROOT_SUFFIX_SPEC."
+msgstr "Spezifikationsfehler: mehr als ein Argument für SYSROOT_SUFFIX_SPEC"
#: gcc.c:6211
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC"
-msgstr "Spezifikationsfehler: mehr als ein Argument für SYSROOT_HEADERS_SUFFIX_SPEC."
+msgstr "Spezifikationsfehler: mehr als ein Argument für SYSROOT_HEADERS_SUFFIX_SPEC"
#: gcc.c:6300
#, gcc-internal-format
@@ -18837,12 +18584,12 @@ msgid "can't write PCH file"
msgstr "PCH-Datei kann nicht geschrieben werden"
#: ggc-zone.c:2288 ggc-zone.c:2299
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "can't seek PCH file: %m"
-msgstr "PCH-Datei kann nicht erweitert werden: %m"
+msgstr "in PCH-Datei kann nicht positioniert werden: %m"
#: ggc-zone.c:2302
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "can't write PCH fle: %m"
msgstr "PCH-Datei kann nicht geschrieben werden: %m"
@@ -18889,9 +18636,9 @@ msgid "command line option \"%s\" is valid for %s but not for %s"
msgstr "Kommandozeilenoption \"%s\" ist gültig für %s, aber nicht für %s"
#: opts.c:315
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "command line option %qs is not supported by this configuration"
-msgstr "%s wird von dieser Konfiguration nicht unterstützt"
+msgstr "Kommandozeilenoption %qs wird von dieser Konfiguration nicht unterstützt"
#: opts.c:359
#, gcc-internal-format
@@ -18919,14 +18666,14 @@ msgid "-freorder-blocks-and-partition does not work with exceptions"
msgstr "-freorder-blocks-and-partition funktioniert nicht mit Ausnahmen"
#: opts.c:696
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "-freorder-blocks-and-partition does not support unwind info"
-msgstr "-freorder-blocks-and-partition funktioniert nicht mit Ausnahmen"
+msgstr "-freorder-blocks-and-partition unterstützt keine Abwicklungs-Informationen"
#: opts.c:710
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "-freorder-blocks-and-partition does not work on this architecture"
-msgstr "-freorder-blocks-and-partition funktioniert nicht mit Ausnahmen"
+msgstr "-freorder-blocks-and-partition funktioniert auf dieser Architektur nicht"
#: opts.c:878
#, gcc-internal-format
@@ -18934,7 +18681,7 @@ msgid "structure alignment must be a small power of two, not %d"
msgstr "Strukturausrichtung muss eine kleine Zweierpotenz sein, nicht %d"
#: opts.c:936
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "unrecognized visibility value \"%s\""
msgstr "unbekannter Sichtbarkeitswert \"%s\""
@@ -18951,7 +18698,7 @@ msgstr "unbekanntes tls-Modell »%s«"
#: opts.c:1058
#, gcc-internal-format
msgid "-f[no-]force-mem is nop and option will be removed in 4.2"
-msgstr ""
+msgstr "-f[no-]force-mem bewirkt nichts und wird in 4.2 entfernt"
#: opts.c:1081
#, gcc-internal-format
@@ -19316,31 +19063,31 @@ msgid "variable-size type declared outside of any function"
msgstr "Typ mit variabler Größe wurde außerhalb einer Funktion definiert"
#: stor-layout.c:462
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "size of %q+D is %d bytes"
-msgstr "%JGröße von %qD ist %d Bytes"
+msgstr "Größe von %q+D ist %d Bytes"
#: stor-layout.c:464
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "size of %q+D is larger than %wd bytes"
-msgstr "%JGröße von %qD überschreitet %d Bytes"
+msgstr "Größe von %q+D überschreitet %wd Bytes"
#: stor-layout.c:881
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "packed attribute causes inefficient alignment for %q+D"
-msgstr "%Jgepacktes Attribut verursacht ineffiziente Ausrichtung für %qD"
+msgstr "gepacktes Attribut verursacht ineffiziente Ausrichtung für %q+D"
#: stor-layout.c:884
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "packed attribute is unnecessary for %q+D"
-msgstr "%Jgepacktes Attribut ist unnötig für %qD"
+msgstr "gepacktes Attribut ist unnötig für %q+D"
#. No, we need to skip space before this field.
#. Bump the cumulative size to multiple of field alignment.
#: stor-layout.c:899
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "padding struct to align %q+D"
-msgstr "%Jstruct wird aufgefüllt, um %qD auszurichten"
+msgstr "struct wird aufgefüllt, um %q+D auszurichten"
#: stor-layout.c:1302
#, gcc-internal-format
@@ -19368,9 +19115,9 @@ msgid "packed attribute is unnecessary"
msgstr "gepacktes Attribut ist unnötig"
#: stor-layout.c:1849
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "alignment of array elements is greater than element size"
-msgstr "%JAusrichtung von %qD ist größer als maximale Objektdateiausrichtung. %d verwendet«"
+msgstr "Ausrichtung der Feldelemente ist größer als Elementgröße"
#: targhooks.c:98
#, gcc-internal-format
@@ -19408,14 +19155,14 @@ msgid "setting core file size limit to maximum: %m"
msgstr "Kern-Dateigrößenlimit wird gesetzt: %m"
#: toplev.c:824
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+F declared %<static%> but never defined"
-msgstr "%J%qF als %<static%> deklariert, aber nirgendwo definiert"
+msgstr "%q+F als %<static%> deklariert, aber nirgendwo definiert"
#: toplev.c:849
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D defined but not used"
-msgstr "%J%qD definiert, aber nicht verwendet"
+msgstr "%q+D definiert, aber nicht verwendet"
#: toplev.c:892 toplev.c:916
#, gcc-internal-format
@@ -19518,14 +19265,14 @@ msgid "-ffunction-sections may affect debugging on some targets"
msgstr "-ffunction-sections kann für verschiedene Ziele die Fehlersuche beeinträchtigen"
#: toplev.c:1780
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "-fstack-protector not supported for this target"
-msgstr "-fdata-sections wird für dieses Ziel nicht unterstützt"
+msgstr "-fstack-protector wird für dieses Ziel nicht unterstützt"
#: toplev.c:1793
#, gcc-internal-format
msgid "unwind tables currently requires a frame pointer for correctness"
-msgstr ""
+msgstr "Abwicklungstabellen erfordern derzeit einen Rahmenzeiger für Korrektheit"
#: toplev.c:1898
#, gcc-internal-format
@@ -19550,7 +19297,7 @@ msgstr "SSA-Name in Frei-Liste, jedoch immer noch referenziert"
#: tree-cfg.c:3181
#, gcc-internal-format
msgid "ASSERT_EXPR with an always-false condition"
-msgstr ""
+msgstr "ASSERT_EXPR mit immer falscher Bedingung"
#: tree-cfg.c:3191
#, gcc-internal-format
@@ -19560,17 +19307,17 @@ msgstr "GIMPLE-Register mit BIT_FIELD_REF verändert"
#: tree-cfg.c:3226
#, gcc-internal-format
msgid "invariant not recomputed when ADDR_EXPR changed"
-msgstr ""
+msgstr "Invariante wird bei ADDR_EXPR-Änderung nicht neu berechnet"
#: tree-cfg.c:3232
#, gcc-internal-format
msgid "constant not recomputed when ADDR_EXPR changed"
-msgstr ""
+msgstr "Konstante wird bei ADDR_EXPR-Änderung nicht neu berechnet"
#: tree-cfg.c:3237
#, gcc-internal-format
msgid "side effects not recomputed when ADDR_EXPR changed"
-msgstr ""
+msgstr "Seiteneffekte werden bei ADDR_EXPR-Änderung nicht neu berechnet"
#: tree-cfg.c:3253
#, gcc-internal-format
@@ -19583,34 +19330,34 @@ msgid "non-boolean used in condition"
msgstr "Nicht-Boolean in Bedingung verwendet"
#: tree-cfg.c:3268
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid conditional operand"
-msgstr "ungültiger const_double-Operand"
+msgstr "ungültiger bedingter Operand"
#: tree-cfg.c:3323
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid reference prefix"
-msgstr "Ungültiger Referenzprefix."
+msgstr "ungültiger Referenzprefix"
#: tree-cfg.c:3388
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "is not a valid GIMPLE statement"
-msgstr "Ist keine gültige GIMPLE-Anweisung."
+msgstr "ist keine gültige GIMPLE-Anweisung"
#: tree-cfg.c:3408
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "statement marked for throw, but doesn%'t"
-msgstr "Anweisung für throw markiert, tut es jedoch nicht."
+msgstr "Anweisung für throw markiert, tut es jedoch nicht"
#: tree-cfg.c:3413
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "statement marked for throw in middle of block"
-msgstr "Anweisung für throw inmitten eines Blockes markiert."
+msgstr "Anweisung für throw inmitten eines Blockes markiert"
#: tree-cfg.c:3508
#, gcc-internal-format
msgid "bb_for_stmt (phi) is set to a wrong basic block"
-msgstr ""
+msgstr "bb_for_stmt (phi) wird im falschen Basisblock gesetzt"
#: tree-cfg.c:3523
#, gcc-internal-format
@@ -19618,119 +19365,117 @@ msgid "PHI def is not a GIMPLE value"
msgstr "PHI def ist kein GIMPLE-Wert"
#: tree-cfg.c:3539 tree-cfg.c:3562
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "incorrect sharing of tree nodes"
-msgstr "Falscher gemeinsamer Zugriff auf Baumknoten"
+msgstr "falscher gemeinsame Verwendung von Baumknoten"
#: tree-cfg.c:3553
#, gcc-internal-format
msgid "bb_for_stmt (stmt) is set to a wrong basic block"
-msgstr ""
+msgstr "bb_for_stmt (stmt) wird im falschen Basisblock gesetzt"
#: tree-cfg.c:3571
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "verify_stmts failed"
-msgstr "verify_stmts gescheitert."
+msgstr "verify_stmts gescheitert"
#: tree-cfg.c:3592
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "ENTRY_BLOCK has a statement list associated with it"
-msgstr "ENTRY_BLOCK hat zugehörige Anweisungsliste\n"
+msgstr "ENTRY_BLOCK hat zugehörige Anweisungsliste"
#: tree-cfg.c:3598
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "EXIT_BLOCK has a statement list associated with it"
-msgstr "EXIT_BLOCK hat zugehörige Anweisungsliste\n"
+msgstr "EXIT_BLOCK hat zugehörige Anweisungsliste"
#: tree-cfg.c:3605
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "fallthru to exit from bb %d"
-msgstr "Fallthru zum Austritt von bb %d\n"
+msgstr "Fallthru zum Austritt von bb %d"
#: tree-cfg.c:3627
-#, fuzzy, gcc-internal-format
+#, gcc-internal-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:3636
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "label %s to block does not match in bb %d"
-msgstr "Marke %s zum Block passt nicht in bb %d\n"
+msgstr "Marke %s zum Block passt nicht in bb %d"
#: tree-cfg.c:3645
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "label %s has incorrect context in bb %d"
-msgstr "Marke %s hat falschen Kontext in bb %d\n"
+msgstr "Marke %s hat falschen Kontext in bb %d"
#: tree-cfg.c:3659
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "control flow in the middle of basic block %d"
-msgstr "Kontrollfluss inmitten des Basis-Blockes %d\n"
+msgstr "Kontrollfluss inmitten des Basis-Blockes %d"
#: tree-cfg.c:3669
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "label %s in the middle of basic block %d"
-msgstr "Marke %s inmitten des Basis-Blocks %d\n"
+msgstr "Marke %s inmitten des Basis-Blocks %d"
#: tree-cfg.c:3688
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "fallthru edge after a control statement in bb %d"
-msgstr "Fallthru-Kante hinter einer Kontrollanweisung in bb %d \n"
+msgstr "Fallthru-Kante hinter einer Kontrollanweisung in bb %d"
#: tree-cfg.c:3703
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "structured COND_EXPR at the end of bb %d"
-msgstr "Strukturiertes COND_EXPR am Ende von bb %d\n"
+msgstr "Strukturiertes COND_EXPR am Ende von bb %d"
#: tree-cfg.c:3716 tree-cfg.c:3754 tree-cfg.c:3767 tree-cfg.c:3838
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "wrong outgoing edge flags at end of bb %d"
-msgstr "Falsche ausgehende Kantenmarken am Ende des bb %d\n"
+msgstr "Falsche ausgehende Kantenmarken am Ende des bb %d"
#: tree-cfg.c:3724
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%<then%> label does not match edge at end of bb %d"
-msgstr "%<then%>-Marke passt nicht zur Kante am Ende des bb %d\n"
+msgstr "%<then%>-Marke passt nicht zur Kante am Ende des bb %d"
#: tree-cfg.c:3732
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%<else%> label does not match edge at end of bb %d"
-msgstr "%<else%>-Marke passt nicht zur Kante am Ende von bb %d\n"
+msgstr "%<else%>-Marke passt nicht zur Kante am Ende von bb %d"
#: tree-cfg.c:3742
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "explicit goto at end of bb %d"
-msgstr "Explizites Goto am Ende von bb %d\n"
+msgstr "Explizites Goto am Ende von bb %d"
#: tree-cfg.c:3772
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "return edge does not point to exit in bb %d"
-msgstr "Return-Kante zeigt nicht auf Ausgang in bb %d\n"
+msgstr "Return-Kante zeigt nicht auf Ausgang in bb %d"
#: tree-cfg.c:3805
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "found default case not at end of case vector"
-msgstr "Default-Fall nicht am Ende des case-Vektors gefunden"
+msgstr "Standard-Fall nicht am Ende des case-Vektors gefunden"
#: tree-cfg.c:3811
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "case labels not sorted:"
-msgstr ""
-"Case-Marken nicht sortiert:\n"
-" "
+msgstr "Case-Marken nicht sortiert:"
#: tree-cfg.c:3822
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "no default case found at end of case vector"
-msgstr "Kein Default-Fall am Ende des Case-Vektors gefunden"
+msgstr "Kein Standard-Fall am Ende des Case-Vektors gefunden"
#: tree-cfg.c:3830
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "extra outgoing edge %d->%d"
-msgstr "Zusätzliche ausgehende Kante %d->%d\n"
+msgstr "Zusätzliche ausgehende Kante %d->%d"
#: tree-cfg.c:3852
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "missing edge %i->%i"
msgstr "Fehlende Kante %i->%i"
@@ -19760,85 +19505,85 @@ msgid "ignoring unknown option %q.*s in %<-fdump-%s%>"
msgstr "unbekannte Option %q.*s in %<-fdump-%s%> wird ignoriert"
#: tree-eh.c:1767
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "EH edge %i->%i is missing"
-msgstr "Argument für »-%s« fehlt"
+msgstr "EH-Kante %i->%i fehlt"
#: tree-eh.c:1772
#, gcc-internal-format
msgid "EH edge %i->%i miss EH flag"
-msgstr ""
+msgstr "EH-Kante %i->%i: EH-Kennzeichen fehlt"
#. ??? might not be mistake.
#: tree-eh.c:1778
#, gcc-internal-format
msgid "EH edge %i->%i has duplicated regions"
-msgstr ""
+msgstr "EH-Kante %i->%i hat doppelte Regionen"
#: tree-eh.c:1812
#, gcc-internal-format
msgid "BB %i can not throw but has EH edges"
-msgstr ""
+msgstr "BB %i kann werfen, hat aber EH-Kanten"
#: tree-eh.c:1819
#, gcc-internal-format
msgid "BB %i last statement has incorrectly set region"
-msgstr ""
+msgstr "BB %i: letzte Anweisung hat falsch gesetzte Region"
#: tree-eh.c:1830
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "unnecessary EH edge %i->%i"
-msgstr "Fehlende Kante %i->%i"
+msgstr "unnötige EH-Kante %i->%i"
#: tree-inline.c:1381
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+F can never be inlined because it uses alloca (override using the always_inline attribute)"
-msgstr "%Jdie Funktion %qF kann nie »inline« sein, da sie alloca verwendet (zum Aufheben: Attribut »always_inline« verwenden)"
+msgstr "die Funktion %q+F kann nie »inline« sein, da sie alloca verwendet (zum Aufheben: Attribut »always_inline« verwenden)"
#: tree-inline.c:1393
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+F can never be inlined because it uses setjmp"
-msgstr "%Jdie Funktion %qF kann nie »inline« sein, da sie setjmp verwendet"
+msgstr "die Funktion %q+F kann nie »inline« sein, da sie setjmp verwendet"
#: tree-inline.c:1407
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+F can never be inlined because it uses variable argument lists"
-msgstr "%Jdie Funktion %qF kann nie »inline« sein, da sie eine variable Argumentliste verwendet"
+msgstr "die Funktion %q+F kann nie »inline« sein, da sie eine variable Argumentliste verwendet"
#: tree-inline.c:1418
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+F can never be inlined because it uses setjmp-longjmp exception handling"
-msgstr "%Jdie Funktion %qF kann nie »inline« sein, da sie »setjmp-longjmp«-Ausnahmebehandlung verwendet"
+msgstr "die Funktion %q+F kann nie »inline« sein, da sie »setjmp-longjmp«-Ausnahmebehandlung verwendet"
#: tree-inline.c:1425
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+F can never be inlined because it uses non-local goto"
-msgstr "%Jdie Funktion %qF kann nie »inline« sein, da sie ein nichtlokales »goto« enthält"
+msgstr "die Funktion %q+F kann nie »inline« sein, da sie ein nichtlokales »goto« enthält"
#: tree-inline.c:1436
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+F can never be inlined because it uses __builtin_return or __builtin_apply_args"
-msgstr "%Jdie Funktion %qF kann nie »inline« sein, da sie __builtin_return oder __builtin_apply_args verwendet"
+msgstr "die Funktion %q+F kann nie »inline« sein, da sie __builtin_return oder __builtin_apply_args verwendet"
#: tree-inline.c:1455
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+F can never be inlined because it contains a computed goto"
-msgstr "%Jdie Funktion %qF kann nie »inline« sein, da sie ein berechnetes »goto« enthält"
+msgstr "die Funktion %q+F kann nie »inline« sein, da sie ein berechnetes »goto« enthält"
#: tree-inline.c:1469
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+F can never be inlined because it receives a non-local goto"
-msgstr "%Jdie Funktion %qF kann nie »inline« sein, da sie ein nichtlokales »goto« empfängt"
+msgstr "die Funktion %q+F kann nie »inline« sein, da sie ein nichtlokales »goto« empfängt"
#: tree-inline.c:1494
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+F can never be inlined because it uses variable sized variables"
-msgstr "%Jdie Funktion %qF kann nie »inline« sein, da sie Variablen variabler Größe verwendet"
+msgstr "die Funktion %q+F kann nie »inline« sein, da sie Variablen variabler Größe verwendet"
#: tree-inline.c:2033 tree-inline.c:2043
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "inlining failed in call to %q+F: %s"
-msgstr "%J»inline« beim Aufruf von %qF gescheitert: %s"
+msgstr "»inline« beim Aufruf von %q+F gescheitert: %s"
#: tree-inline.c:2034 tree-inline.c:2045
#, gcc-internal-format
@@ -19866,14 +19611,14 @@ msgid "mudflap: this language is not supported"
msgstr "Schmutzfänger: diese Sprache wird nicht unterstützt"
#: tree-optimize.c:478
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "size of return value of %q+D is %u bytes"
-msgstr "%JGröße des Rückgabewertes von %qD ist %u Bytes"
+msgstr "Größe des Rückgabewertes von %q+D ist %u Bytes"
#: tree-optimize.c:481
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "size of return value of %q+D is larger than %wd bytes"
-msgstr "%JGröße des Rückgabewertes von %qD ist größer als %wd Bytes"
+msgstr "Größe des Rückgabewertes von %q+D ist größer als %wd Bytes"
#: tree-outof-ssa.c:614 tree-outof-ssa.c:629 tree-outof-ssa.c:643
#: tree-outof-ssa.c:665 tree-outof-ssa.c:1120 tree-outof-ssa.c:1872
@@ -19908,9 +19653,9 @@ msgid "unimplemented functionality"
msgstr "nicht implementierte Funktionalität"
#: tree-ssa-loop-niter.c:1035
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%s"
-msgstr "%s"
+msgstr "%H%s"
#: tree-ssa-operands.c:1328
#, gcc-internal-format
@@ -19918,34 +19663,34 @@ msgid "internal error"
msgstr "interner Fehler"
#: tree-ssa.c:111
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "expected an SSA_NAME object"
msgstr "SSA_NAME-Objekt erwartet"
#: tree-ssa.c:117
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "type mismatch between an SSA_NAME and its symbol"
-msgstr "Unpassende Typen für SSA_NAME und sein Symbol."
+msgstr "Unpassende Typen für SSA_NAME und sein Symbol"
#: tree-ssa.c:123
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "found an SSA_NAME that had been released into the free pool"
msgstr "SSA_NAME gefunden, das bereits in den Frei-Bereich geschoben wurde"
#: tree-ssa.c:129
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "found a virtual definition for a GIMPLE register"
-msgstr "Virtuelle Definition für ein GIMPLE-Register gefunden"
+msgstr "virtuelle Definition für ein GIMPLE-Register gefunden"
#: tree-ssa.c:135
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "found a real definition for a non-register"
-msgstr "Reale Definition für Nicht-Register gefunden"
+msgstr "reale Definition für Nicht-Register gefunden"
#: tree-ssa.c:142
#, gcc-internal-format
msgid "found real variable when subvariables should have appeared"
-msgstr ""
+msgstr "reale Variable gefunden, wo Untervariablen autreten sollten"
#: tree-ssa.c:171
#, gcc-internal-format
@@ -19958,17 +19703,17 @@ msgid "SSA_NAME_DEF_STMT is wrong"
msgstr "SSA_NAME_DEF_STMT ist falsch"
#: tree-ssa.c:238
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "missing definition"
msgstr "Fehlende Definition"
#: tree-ssa.c:244
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "definition in block %i does not dominate use in block %i"
msgstr "Definition in Block %i herrscht nicht vor in Block %i"
#: tree-ssa.c:252
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "definition in block %i follows the use"
msgstr "Definition in Block %i folgt der Verwendung"
@@ -19980,22 +19725,22 @@ msgstr "SSA_NAME_OCCURS_IN_ABNORMAL_PHI sollte gesetzt sein"
#: tree-ssa.c:267
#, gcc-internal-format
msgid "no immediate_use list"
-msgstr ""
+msgstr "Keine Liste zur sofortigen Verwendung"
#: tree-ssa.c:279
#, gcc-internal-format
msgid "wrong immediate use list"
-msgstr ""
+msgstr "Falsche Liste zur sofortigen Verwendung"
#: tree-ssa.c:312
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "incoming edge count does not match number of PHI arguments"
-msgstr "Eingehende Kantenzahl passt nicht zur Anzahl der PHI-Argumente\n"
+msgstr "Eingehende Kantenzahl passt nicht zur Anzahl der PHI-Argumente"
#: tree-ssa.c:327
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "PHI argument is missing for edge %d->%d"
-msgstr "PHI-Argument fehlt für Kante %d->%d\n"
+msgstr "PHI-Argument fehlt für Kante %d->%d"
#: tree-ssa.c:336
#, gcc-internal-format
@@ -20003,52 +19748,52 @@ msgid "PHI argument is not SSA_NAME, or invariant"
msgstr "PHI-Argument ist kein SSA_NAME, oder invariant"
#: tree-ssa.c:348
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "wrong edge %d->%d for PHI argument"
-msgstr "Falsche Kante %d->%d für PHI-Argument\n"
+msgstr "Falsche Kante %d->%d für PHI-Argument"
#: tree-ssa.c:397
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "non-addressable variable inside an alias set"
msgstr "Nicht-adressierbare Variable innerhalb einer Alias-Menge"
#: tree-ssa.c:413
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "addressable variable that is an alias tag but is not in any alias set"
-msgstr "Adressierbare Variable, die eine Aliasmarke ist, jedoch in keiner Aliasmenge vorkommt."
+msgstr "Adressierbare Variable, die eine Aliasmarke ist, jedoch in keiner Aliasmenge vorkommt"
#: tree-ssa.c:423
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "verify_flow_insensitive_alias_info failed"
-msgstr "verify_flow_insensitive_alias_info gescheitert."
+msgstr "verify_flow_insensitive_alias_info gescheitert"
#: tree-ssa.c:465
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "dereferenced pointers should have a name or a type tag"
msgstr "Dereferenzierte Zeiger sollten einen Namen oder eine Typenmarke haben"
#: tree-ssa.c:472
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "pointers with a memory tag, should have points-to sets"
msgstr "Zeiger mit Speichermarke sollten Zeigt-Auf-Menge haben oder auf malloc zeigen"
#: tree-ssa.c:480
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "pointer escapes but its name tag is not call-clobbered"
-msgstr "Zeiger entweicht, aber sein Namensschild ist nicht aufrufmarkiert."
+msgstr "Zeiger entweicht, aber sein Namensschild ist nicht aufrufmarkiert"
#: tree-ssa.c:489
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "verify_flow_sensitive_alias_info failed"
-msgstr "verify_flow_sensitive_alias_info gescheitert."
+msgstr "verify_flow_sensitive_alias_info gescheitert"
#: tree-ssa.c:566
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
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:582
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "two different pointers with identical points-to sets but different name tags"
msgstr "Zwei verschiedene Zeiger mit identischen Zeigt-Auf-Mengen, aber mit verschiedenen Namensschildern"
@@ -20058,29 +19803,29 @@ msgid "verify_name_tags failed"
msgstr "verify_name_tags gescheitert"
#: tree-ssa.c:685
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "AUX pointer initialized for edge %d->%d"
-msgstr "AUX-Zeiger für Kante %d->%d initialisiert\n"
+msgstr "AUX-Zeiger für Kante %d->%d initialisiert"
#: tree-ssa.c:708
#, gcc-internal-format
msgid "stmt (%p) marked modified after optimization pass : "
-msgstr ""
+msgstr "Anweisung (%p) nach Optimierungsdurchgang als geändert markiert: "
#: tree-ssa.c:726
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "statement makes a memory store, but has no V_MAY_DEFS nor V_MUST_DEFS"
-msgstr "Anweisung erzeugt Alias-Speicherzugriffe, hat aber kein V_MAY_DEFS"
+msgstr "Anweisung macht Speicherzugriffe, hat aber kein V_MAY_DEFS oder V_MUST_DEFS"
#: tree-ssa.c:737
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "statement makes aliased stores, but has no V_MAY_DEFS"
msgstr "Anweisung erzeugt Alias-Speicherzugriffe, hat aber kein V_MAY_DEFS"
#: tree-ssa.c:776
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "verify_ssa failed"
-msgstr "verify_ssa gescheitert."
+msgstr "verify_ssa gescheitert"
#. We only do data flow with SSA_NAMEs, so that's all we
#. can warn about.
@@ -20095,24 +19840,24 @@ msgid "%H%qD may be used uninitialized in this function"
msgstr "%H%qD könnte in dieser Funktion uninitialisiert verwendet werden"
#: tree-vect-transform.c:561
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "no support for induction"
-msgstr "keine Unterstützung für Reduktion/Induktion"
+msgstr "keine Unterstützung für Induktion"
#: tree.c:3497
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D already declared with dllexport attribute: dllimport ignored"
-msgstr "%J»%D« ohne Attribut »dllimport« redeklariert, nachdem es mit dllimport-Bindung referenziert wurde"
+msgstr "%q+D bereits mit Attribut »dllimport« deklariert: »dllimport« ignoriert"
#: tree.c:3509
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D redeclared without dllimport attribute after being referenced with dll linkage"
-msgstr "%J»%D« ohne Attribut »dllimport« redeklariert, nachdem es mit dllimport-Bindung referenziert wurde"
+msgstr "%q+D ohne Attribut »dllimport« redeklariert, nachdem es mit dll-Bindung referenziert wurde"
#: tree.c:3525 config/i386/winnt-cxx.c:70
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D redeclared without dllimport attribute: previous dllimport ignored"
-msgstr "%J»%D« ohne Attribut »dllimport« redeklariert, nachdem es mit dllimport-Bindung referenziert wurde"
+msgstr "%qD ohne Attribut »dllimport« redeklariert: vorheriges »dllimport« ignoriert"
#: tree.c:3577 config/darwin.c:1236 config/arm/arm.c:2890
#: config/arm/arm.c:2918 config/avr/avr.c:4656 config/h8300/h8300.c:5282
@@ -20124,24 +19869,24 @@ msgid "%qs attribute ignored"
msgstr "Attribut %qs wird ignoriert"
#: tree.c:3596
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "inline function %q+D declared as dllimport: attribute ignored"
-msgstr "%H»inline«-Funktion »%D« ist als »dllimport« deklariert: Attribut ignoriert."
+msgstr "»inline«-Funktion %q+D ist als »dllimport« deklariert: Attribut ignoriert"
#: tree.c:3604
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+D definition is marked dllimport"
-msgstr "%JFunktionsdefinition von %qD ist als »dllimport« markiert."
+msgstr "Funktionsdefinition von %q+D ist als »dllimport« markiert"
#: tree.c:3612 config/sh/symbian.c:431
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "variable %q+D definition is marked dllimport"
-msgstr "%JVariablendefinition von %qD ist als dllimport markiert."
+msgstr "Variablendefinition von %q+D ist als dllimport markiert"
#: tree.c:3635 config/sh/symbian.c:506
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "external linkage required for symbol %q+D because of %qs attribute"
-msgstr "%Jfür Symbol %qD wird wegen des Attributes %qs externe Bindung benötigt"
+msgstr "für Symbol %q+D wird wegen des Attributes %qs externe Bindung benötigt"
#: tree.c:5029
#, gcc-internal-format
@@ -20169,9 +19914,9 @@ msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
msgstr "Baumprüfung: Klasse %qs erwartet, haben %qs (%s) in %s, bei %s:%d"
#: tree.c:6075
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "tree check: expected tree that contains %qs structure, have %qs in %s, at %s:%d"
-msgstr "Baumprüfung: Klasse %qs erwartet, haben %qs (%s) in %s, bei %s:%d"
+msgstr "Baumprüfung: Baum mit enthaltener Struktur %qs erwartet, haben %qs in %s, bei %s:%d"
#: tree.c:6089
#, gcc-internal-format
@@ -20191,32 +19936,32 @@ msgstr "Baumprüfung: auf Operand %d von %s mit %d Operanden in %s bei %s:%d zug
#: value-prof.c:101
#, gcc-internal-format
msgid "%HCorrupted value profile: %s profiler overall count (%d) does not match BB count (%d)"
-msgstr ""
+msgstr "%Hbeschädigtes Werteprofil: %s-Profiler-Gesamtzähler (%d) passt nicht zum BB-Zähler (%d)"
#: varasm.c:470
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%+D causes a section type conflict"
-msgstr "%J%D löst einen Abschnittstypkonflikt aus"
+msgstr "%+D löst einen Abschnittstypkonflikt aus"
#: varasm.c:930 varasm.c:938
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "register name not specified for %q+D"
-msgstr "%Jfür %qD wurde kein Registername angegeben"
+msgstr "für %q+D wurde kein Registername angegeben"
#: varasm.c:940
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid register name for %q+D"
-msgstr "%Jungültiger Registername für %qD"
+msgstr "ungültiger Registername für %q+D"
#: varasm.c:942
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "data type of %q+D isn%'t suitable for a register"
-msgstr "%JDatentyp von %qD ist nicht für Register geeignet"
+msgstr "Datentyp von %q+D ist nicht für Register geeignet"
#: varasm.c:945
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "register specified for %q+D isn%'t suitable for data type"
-msgstr "%Jfür %qD angegebenes Register eignet sich nicht für Datentyp"
+msgstr "für %q+D angegebenes Register eignet sich nicht für Datentyp"
#: varasm.c:955
#, gcc-internal-format
@@ -20226,12 +19971,12 @@ msgstr "globale Registervariable hat Anfangswert"
#: varasm.c:959
#, gcc-internal-format
msgid "optimization may eliminate reads and/or writes to register variables"
-msgstr ""
+msgstr "Optimierung kann Lese- und/oder Schreiboperationen auf Registervariablen entfernen"
#: varasm.c:997
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "register name given for non-register variable %q+D"
-msgstr "%JRegistername für Nicht-Registervariable %qD angegeben"
+msgstr "Registername für Nicht-Registervariable %q+D angegeben"
#: varasm.c:1074
#, gcc-internal-format
@@ -20244,9 +19989,9 @@ msgid "global constructors not supported on this target"
msgstr "globale Konstruktoren werden für dieses Ziel nicht unterstützt"
#: varasm.c:1697
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "alignment of %q+D is greater than maximum object file alignment. Using %d"
-msgstr "%JAusrichtung von %qD ist größer als maximale Objektdateiausrichtung. %d verwendet«"
+msgstr "Ausrichtung von %q+D ist größer als maximale Objektdateiausrichtung. %d verwendet"
#: varasm.c:1736
#, gcc-internal-format
@@ -20254,14 +19999,14 @@ msgid "thread-local COMMON data not implemented"
msgstr "Thread-lokale COMMON-Daten nicht implementiert"
#: varasm.c:1761
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "requested alignment for %q+D is greater than implemented alignment of %wu"
-msgstr "%Jangeforderte Ausrichtung für %qD ist größer als die implementierte Ausrichtung von %d"
+msgstr "angeforderte Ausrichtung für %q+D ist größer als die implementierte Ausrichtung von %wu"
#: varasm.c:3933
#, gcc-internal-format
msgid "no-op convert from %wd to %wd bytes in initializer"
-msgstr ""
+msgstr "Umwandlung ohne Operation von %wd in %wd Bytes in Initialisierung"
#: varasm.c:3977
#, gcc-internal-format
@@ -20279,24 +20024,24 @@ msgid "invalid initial value for member %qs"
msgstr "ungültiger Anfangswert für Element %qs"
#: varasm.c:4451 varasm.c:4495
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "weak declaration of %q+D must precede definition"
-msgstr "%Jschwache Deklaration von %qD muss der Definition vorangehen"
+msgstr "schwache Deklaration von %q+D muss der Definition vorangehen"
#: varasm.c:4459
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "weak declaration of %q+D after first use results in unspecified behavior"
-msgstr "%Jschwache Deklaration von %qD nach erster Benutzung führt zu undefiniertem Verhalten"
+msgstr "schwache Deklaration von %q+D nach erster Benutzung führt zu undefiniertem Verhalten"
#: varasm.c:4493
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "weak declaration of %q+D must be public"
-msgstr "%Jschwache Deklaration von %qD muss öffentlich sein"
+msgstr "schwache Deklaration von %q+D muss öffentlich sein"
#: varasm.c:4502
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "weak declaration of %q+D not supported"
-msgstr "%Jschwache Deklaration von %qD wird nicht unterstützt"
+msgstr "schwache Deklaration von %q+D wird nicht unterstützt"
#: varasm.c:4532
#, gcc-internal-format
@@ -20304,24 +20049,24 @@ msgid "only weak aliases are supported in this configuration"
msgstr "in dieser Konfiguration werden nur schwache Aliase unterstützt"
#: varasm.c:4762
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Jweakref is not supported in this configuration"
-msgstr "-m%s wird in dieser Konfiguration nicht unterstützt"
+msgstr "%Jweakref wird in dieser Konfiguration nicht unterstützt"
#: varasm.c:4835
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D aliased to undefined symbol %qs"
-msgstr "%J%qD als Alias für undefiniertes Symbol %qE"
+msgstr "%q+D als Alias für undefiniertes Symbol %qs"
#: varasm.c:4840
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D aliased to external symbol %qs"
-msgstr "%J%qD als Alias für externes Symbol %qE"
+msgstr "%q+D als Alias für externes Symbol %qs"
#: varasm.c:4879
#, gcc-internal-format
msgid "weakref %q+D ultimately targets itself"
-msgstr ""
+msgstr "weakref %q+D zielt letztendlich auf sich selbst ab"
#: varasm.c:4892
#, gcc-internal-format
@@ -20355,9 +20100,9 @@ msgstr "Bereichsfehler im Vektor %s %s, in %s bei %s:%u"
#. Print an error message for unrecognized stab codes.
#: xcoffout.c:187
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "no sclass for %s stab (0x%x)"
-msgstr "kein »sclass« für %s Stab (0x%x)\n"
+msgstr "kein »sclass« für %s Stab (0x%x)"
#: config/darwin-c.c:86
#, gcc-internal-format
@@ -20403,7 +20148,7 @@ msgstr "Unter-Framework-Include %s steht mit Framework-Include in Konflikt"
#: config/darwin-c.c:577
#, gcc-internal-format
msgid "Unknown value %qs of -mmacosx-version-min"
-msgstr ""
+msgstr "Unbekannter Wert %qs von -mmacosx-version-min"
#: config/darwin.c:1350
#, gcc-internal-format
@@ -20411,9 +20156,9 @@ msgid "internal and protected visibility attributes not supported in this config
msgstr "interne und geschützte Sichtbarkeitsattribute werden in dieser Konfiguration nicht unterstützt; ignoriert"
#: config/host-darwin.c:63
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "couldn't unmap pch_address_space: %m"
-msgstr "Abbildung von pch_address_space konnte nicht aufgehoben werden: %m\n"
+msgstr "Abbildung von pch_address_space konnte nicht aufgehoben werden: %m"
#: config/sol2-c.c:94 config/sol2-c.c:110
#, gcc-internal-format
@@ -20471,9 +20216,9 @@ msgid "junk at end of %<#pragma fini%>"
msgstr "Ausschuss am Ende von %<#pragma fini%>"
#: config/sol2.c:54
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "ignoring %<#pragma align%> for explicitly aligned %q+D"
-msgstr "%J%<#pragma align%> wird für explizit ausgerichtetes %<%D%> ignoriert"
+msgstr "%<#pragma align%> wird für explizit ausgerichtetes %q+D ignoriert"
#. Mach-O supports 'weak imports', and 'weak definitions' in coalesced
#. sections. machopic_select_section ensures that weak variables go in
@@ -20487,9 +20232,9 @@ msgstr "Alias-Definitionen werden nicht in Mach-O unterstützt; ignoriert"
#. No profiling.
#: config/vx-common.h:83
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "profiler support for VxWorks"
-msgstr "Profilerunterstützung für WindISS"
+msgstr "Profilerunterstützung für VxWorks"
#: config/windiss.h:37
#, gcc-internal-format
@@ -20683,14 +20428,14 @@ msgid "-mfloat-abi=hard and VFP"
msgstr "-mfloat-abi=hard und VFP"
#: config/arm/arm.c:1241
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid thread pointer option: -mtp=%s"
-msgstr "Ungültige Fließkommaoption: -mfpu=%s"
+msgstr "Ungültige Threadzeiger-Option: -mtp=%s"
#: config/arm/arm.c:1254
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "can not use -mtp=cp15 with -mthumb"
-msgstr "typeid kann nicht mit -fno-rtti verwendet werden"
+msgstr "-mthumb kann nicht mit -mtp=cp15 verwendet werden"
#: config/arm/arm.c:1268
#, gcc-internal-format
@@ -20745,14 +20490,14 @@ 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:165 config/mcore/mcore.c:2898
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "initialized variable %q+D is marked dllimport"
-msgstr "%Jinitialisierte Variable »%D« ist als »dllimport« markiert"
+msgstr "initialisierte Variable %q+D ist als »dllimport« markiert"
#: config/arm/pe.c:174
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "static variable %q+D is marked dllimport"
-msgstr "%Jstatische Variable »%D« ist als »dllimport« markiert"
+msgstr "statische Variable %q+D ist als »dllimport« markiert"
#: config/avr/avr.c:531
#, gcc-internal-format
@@ -20765,14 +20510,14 @@ 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:4693
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qs appears to be a misspelled interrupt handler"
-msgstr "»%s« scheint ein falsch geschriebener Interrupt-Handler zu sein"
+msgstr "%qs scheint ein falsch geschriebener Interrupt-Handler zu sein"
#: config/avr/avr.c:4701
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qs appears to be a misspelled signal handler"
-msgstr "»%s« scheint ein falsch geschriebener Signal-Handler zu sein"
+msgstr "%qs scheint ein falsch geschriebener Signal-Handler zu sein"
#: config/avr/avr.c:4770
#, gcc-internal-format
@@ -20790,9 +20535,9 @@ msgid "trampolines not supported"
msgstr "Keine Trampoline unterstützt"
#: config/bfin/bfin.c:1815 config/m68k/m68k.c:294
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "-mshared-library-id=%s is not between 0 and %d"
-msgstr "-mshared-library-id=%d ist nicht zwischen 0 und %d"
+msgstr "-mshared-library-id=%s ist nicht zwischen 0 und %d"
#: config/bfin/bfin.c:1835
#, gcc-internal-format
@@ -20805,14 +20550,14 @@ msgid "multiple function type attributes specified"
msgstr "mehrere Funktionstypattribute angegeben"
#: config/bfin/bfin.c:2794
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "`%s' attribute only applies to functions"
-msgstr "Attribut %qs gilt nur für Funktionen"
+msgstr "Attribut »%s« gilt nur für Funktionen"
#: config/bfin/bfin.c:2805
#, gcc-internal-format
msgid "can't apply both longcall and shortcall attributes to the same function"
-msgstr ""
+msgstr "Die Attribute longcall und shortcall können nicht gleichzeitig für die gleiche Funktion verwendet werden"
#: config/c4x/c4x-c.c:72
#, gcc-internal-format
@@ -20856,12 +20601,12 @@ msgstr "ISR %s benötigt %d Wörter lokaler Variablen, höchstens 32767"
#: config/cris/cris.c:435
#, gcc-internal-format
msgid "MULT case in cris_op_str"
-msgstr ""
+msgstr "MULT-Fall in cris_op_str"
#: config/cris/cris.c:813
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid use of ':' modifier"
-msgstr "ungültiger Operand für Modifizierer »b«"
+msgstr "ungültige Verwendung des Modifizierers »:«"
#: config/cris/cris.c:986
#, gcc-internal-format
@@ -20874,9 +20619,9 @@ msgid "internal error: sideeffect-insn affecting main effect"
msgstr "interner Fehler: Seiteneffekt-Befehl wirkt sich auf Haupteffekt aus"
#: config/cris/cris.c:1552
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "unknown cc_attr value"
-msgstr "Unbekanntes relocation unspec"
+msgstr "Unbekannter Wert für cc_attr"
#. If we get here, the caller got its initial tests wrong.
#: config/cris/cris.c:1903
@@ -20910,14 +20655,14 @@ 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:2416
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "Unknown src"
-msgstr "unbekannte innere Anweisung"
+msgstr "Unbekannte Quelle"
#: config/cris/cris.c:2477
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "Unknown dest"
-msgstr "unbekannter Befehlsmodus"
+msgstr "Unbekanntes Ziel"
#: config/cris/cris.c:2762
#, gcc-internal-format
@@ -20927,7 +20672,7 @@ msgstr "Stapelrahmen zu groß: %d Bytes"
#: config/cris/cris.c:3214 config/cris/cris.c:3241
#, gcc-internal-format
msgid "expand_binop failed in movsi got"
-msgstr ""
+msgstr "expand_binop in movsi got gescheitert"
#: config/cris/cris.c:3322
#, gcc-internal-format
@@ -20976,7 +20721,7 @@ msgstr "PIC-Operand wird ausgegeben, aber PIC-Register ist nicht vorbereitet"
#: config/cris/cris.h:44
#, gcc-internal-format
msgid "CRIS-port assertion failed: "
-msgstr ""
+msgstr "CRIS-Port-Behauptung gescheitert: "
#. Node: Caller Saves
#. (no definitions)
@@ -20990,14 +20735,14 @@ msgid "no FUNCTION_PROFILER for CRIS"
msgstr "kein FUNCTION_PROFILER for CRIS"
#: config/crx/crx.h:355
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "Profiler support for CRX"
-msgstr "Profilerunterstützung für WindISS"
+msgstr "Profilerunterstützung für CRX"
#: config/crx/crx.h:366
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "Trampoline support for CRX"
-msgstr "Keine Trampoline unterstützt"
+msgstr "Trampolinunterstützung für CRX"
#: config/frv/frv.c:8623
#, gcc-internal-format
@@ -21162,7 +20907,7 @@ msgstr "-mbranch-cost=%d ist nicht zwischen 0 und 5"
#: config/i386/i386.c:1535
#, gcc-internal-format
msgid "-mlarge-data-threshold=%d is negative"
-msgstr ""
+msgstr "-mlarge-data-threshold=%d ist negativ"
#: config/i386/i386.c:1547
#, gcc-internal-format
@@ -21182,7 +20927,7 @@ msgstr "Aufrufkonvention -mrtd wird im 64-Bit-Modus nicht unterstützt"
#: config/i386/i386.c:1616
#, gcc-internal-format
msgid "-msseregparm used without SSE enabled"
-msgstr ""
+msgstr "-msseregparm ohne aktiviertes SSE verwendet"
#: config/i386/i386.c:1628 config/i386/i386.c:1639
#, gcc-internal-format
@@ -21202,7 +20947,7 @@ msgstr "Falscher Wert (%s) für Schalter -mfpmath="
#: config/i386/i386.c:1673
#, gcc-internal-format
msgid "unwind tables currently require either a frame pointer or -maccumulate-outgoing-args for correctness"
-msgstr ""
+msgstr "Abwicklungstabellen erfordern derzeit entweder einen Rahmenzeiger oder -maccumulate-outgoing-args für Korrektheit"
#: config/i386/i386.c:2043 config/i386/i386.c:2085
#, gcc-internal-format
@@ -21220,9 +20965,9 @@ msgid "argument to %qs attribute larger than %d"
msgstr "Argument für Attribut %qs ist größer als %d"
#: config/i386/i386.c:2077 config/i386/i386.c:2112
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "fastcall and cdecl attributes are not compatible"
-msgstr "Attribute fastcall und stdcall sind nicht verträglich"
+msgstr "Attribute fastcall und cdecl sind nicht verträglich"
#: config/i386/i386.c:2081
#, gcc-internal-format
@@ -21230,24 +20975,24 @@ msgid "fastcall and stdcall attributes are not compatible"
msgstr "Attribute fastcall und stdcall sind nicht verträglich"
#: config/i386/i386.c:2095 config/i386/i386.c:2108
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "stdcall and cdecl attributes are not compatible"
-msgstr "Attribute fastcall und stdcall sind nicht verträglich"
+msgstr "Attribute stdcall und cdecl sind nicht verträglich"
#: config/i386/i386.c:2099
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "stdcall and fastcall attributes are not compatible"
-msgstr "Attribute fastcall und stdcall sind nicht verträglich"
+msgstr "Attribute stdcall und fastcall sind nicht verträglich"
#: config/i386/i386.c:2234
#, gcc-internal-format
msgid "Calling %qD with attribute sseregparm without SSE/SSE2 enabled"
-msgstr ""
+msgstr "Aufruf von %qD mit Attribut sseregparam ohne SSE/SSE2 aktiviert"
#: config/i386/i386.c:2237
#, gcc-internal-format
msgid "Calling %qT with attribute sseregparm without SSE/SSE2 enabled"
-msgstr ""
+msgstr "Aufruf von %qT mit Attribut sseregparam ohne SSE/SSE2 aktiviert"
#: config/i386/i386.c:2962
#, gcc-internal-format
@@ -21275,9 +21020,9 @@ msgid "SSE vector return without SSE enabled changes the ABI"
msgstr "SSE-Vektorrückgabe ohne eingeschaltetes SSE ändert das ABI"
#: config/i386/i386.c:3572
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "MMX vector return without MMX enabled changes the ABI"
-msgstr "MMX-Vektorargument ohne eingeschaltetes MMX ändert das ABI"
+msgstr "MMX-Vektorrückgabe ohne eingeschaltetes MMX ändert das ABI"
#: config/i386/i386.c:6933
#, gcc-internal-format
@@ -21290,9 +21035,9 @@ msgid "unsupported operand size for extended register"
msgstr "nicht unterstützte Operandengröße für erweitertes Register"
#: config/i386/i386.c:15206 config/rs6000/rs6000.c:7157
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "selector must be an integer constant in the range 0..%wi"
-msgstr "Wahl muss auf Ganzzahlkonstante im Bereich 0..%i fallen"
+msgstr "Selektor eine Ganzzahlkonstante im Bereich 0..%wi sein"
#: config/i386/i386.c:15544
#, gcc-internal-format
@@ -21307,12 +21052,12 @@ msgstr "%qs-inkompatibles Attribut wird ignoriert"
#: config/i386/winnt-cxx.c:74
#, gcc-internal-format
msgid "key method %q+D of dllimport'd class defined"
-msgstr ""
+msgstr "Schlüsselmethode %q+D der dllimport-ierten Klasse ist definiert"
#: config/i386/winnt-cxx.c:95 config/sh/symbian.c:173
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "definition of static data member %q+D of dllimport'd class"
-msgstr "%HDefinition des statischen Datenelementes »%D« einer »dllimport«-ierten Klasse."
+msgstr "Definition des statischen Datenelementes %q+D einer »dllimport«-ierten Klasse"
#: config/i386/winnt.c:74
#, gcc-internal-format
@@ -21320,14 +21065,14 @@ msgid "%qs attribute only applies to variables"
msgstr "Attribut %qs bezieht sich nur auf Variablen"
#: config/i386/winnt.c:103
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qs attribute applies only to initialized variables with external linkage"
-msgstr "Attribut %qs bezieht sich nur auf Variablen"
+msgstr "Attribut %qs bezieht sich nur auf initialisierte Variablen mit externer Bindung"
#: config/i386/winnt.c:214
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "inconsistent dll linkage for %q+D, dllexport assumed"
-msgstr "%Jinkonsistente dll-Bindung für »%D«, dllexport angenommen."
+msgstr "inkonsistente dll-Bindung für %q+D, dllexport wird angenommen"
#: config/i386/winnt.c:254 config/sh/symbian.c:273
#, gcc-internal-format
@@ -21335,9 +21080,9 @@ msgid "%qs declared as both exported to and imported from a DLL"
msgstr "%qs sowohl als »exportiert in« als auch als »importiert aus DLL« deklariert"
#: config/i386/winnt.c:549
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D causes a section type conflict"
-msgstr "%J%D löst einen Abschnittstypkonflikt aus"
+msgstr "%q+D löst einen Abschnittstypkonflikt aus"
#: config/i386/cygming.h:166
#, gcc-internal-format
@@ -21370,9 +21115,9 @@ 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:521
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "address area of %q+D conflicts with previous declaration"
-msgstr "%JAdressbereich von »%s« in Konflikt mit vorheriger Deklaration"
+msgstr "Adressbereich von %q+D in Konflikt mit vorheriger Deklaration"
#: config/ia64/ia64.c:528
#, gcc-internal-format
@@ -21390,14 +21135,14 @@ msgid "%s-%s is an empty range"
msgstr "%s-%s ist ein leerer Bereich"
#: config/ia64/ia64.c:5084
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "bad value %<%s%> for -mtls-size= switch"
-msgstr "Falscher Wert (%s) für Schalter -mtls-size="
+msgstr "Falscher Wert %<%s%> für Schalter -mtls-size="
#: config/ia64/ia64.c:5112
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "bad value %<%s%> for -mtune= switch"
-msgstr "Falscher Wert (%s) für Schalter -mtune="
+msgstr "Falscher Wert %<%s%> für Schalter -mtune="
#: config/ia64/ia64.c:5131
#, gcc-internal-format
@@ -21405,9 +21150,9 @@ msgid "not yet implemented: latency-optimized inline square root"
msgstr "noch nicht implementiert: Wartezeit-optimierte eingebettete Quadratwurzel"
#: config/iq2000/iq2000.c:1808
-#, fuzzy, gcc-internal-format
+#, gcc-internal-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."
+msgstr "gp_offset (%ld) oder end_offset (%ld) ist kleiner als Null"
#: config/iq2000/iq2000.c:2589
#, gcc-internal-format
@@ -21431,24 +21176,24 @@ msgid "PRINT_OPERAND null pointer"
msgstr "PRINT_OPERAND Null-Zeiger"
#: config/m32c/m32c-pragma.c:64
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "junk at end of #pragma GCC memregs [0..16]"
-msgstr "Ausschuss am Ende von #pragma %s"
+msgstr "Ausschuss am Ende von #pragma GCC memregs [0..16]"
#: config/m32c/m32c-pragma.c:71
#, gcc-internal-format
msgid "#pragma GCC memregs must precede any function decls"
-msgstr ""
+msgstr "#pragma GCC memregs muss vor allen Funktionsdeklarationen stehen"
#: config/m32c/m32c-pragma.c:82 config/m32c/m32c-pragma.c:89
#, gcc-internal-format
msgid "#pragma GCC memregs takes a number [0..16]"
-msgstr ""
+msgstr "#pragma GCC memregs nimmt eine Zahl [0..16]"
#: config/m32c/m32c.c:412
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid target memregs value '%d'"
-msgstr "ungültiger Wert für --param: %qs"
+msgstr "ungültiger Wert »%d« für Ziel-Memregs"
#: config/m68hc11/m68hc11.c:279
#, gcc-internal-format
@@ -21471,9 +21216,9 @@ msgid "cannot specify both -msep-data and -mid-shared-library"
msgstr "-msep-data und -mid-shared-library können nicht zusammen angegeben werden"
#: config/m68k/m68k.c:333
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "-fPIC is not currently supported on the 68000 or 68010"
-msgstr "-fPIC wird derzeit nicht für 68000 oder 68010 unterstützt\n"
+msgstr "-fPIC wird derzeit nicht für 68000 oder 68010 unterstützt"
#: config/m68k/m68k.c:640 config/rs6000/rs6000.c:13646
#, gcc-internal-format
@@ -21481,9 +21226,9 @@ msgid "stack limit expression is not supported"
msgstr "Ausdruck der Stapelgrenze wird nicht unterstützt"
#: config/mips/mips.c:4584
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "-%s conflicts with the other architecture options, which specify a %s processor"
-msgstr "-mips%s steht in Konflikt mit den anderen Architekturoptionen, die einen MIPS%d-Prozessor angeben"
+msgstr "-%s steht in Konflikt mit den anderen Architekturoptionen, die einen %s-Prozessor angeben"
#: config/mips/mips.c:4600
#, gcc-internal-format
@@ -21537,9 +21282,9 @@ msgid "-mips3d/-mpaired-single must be used with -mips64"
msgstr "-mips3d/-mpaired-single muss mit -mips64 verwendet werden"
#: config/mips/mips.c:4816
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "-mips16 and -mdsp cannot be used together"
-msgstr "-mapcs-26 und -mapcs-32 dürfen nicht zusammen verwendet werden"
+msgstr "-mips16 und -mdsp dürfen nicht zusammen verwendet werden"
#: config/mips/mips.c:5332
#, gcc-internal-format
@@ -21577,9 +21322,9 @@ msgid "the cpu name must be lower case"
msgstr "CPU-Name muss klein geschrieben sein"
#: config/mips/mips.c:10214
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid argument to builtin function"
-msgstr "ungültiges Argument für %<__builtin_return_address%>"
+msgstr "ungültiges Argument für eingebaute Funktion"
#. Output assembler code to FILE to increment profiler label # LABELNO
#. for profiling a function entry.
@@ -21625,14 +21370,14 @@ msgid "MMIX Internal: Missing %qc case in mmix_print_operand"
msgstr "MMIX-intern: Fall %qc fehlt in mmix_print_operand"
#: config/mmix/mmix.c:1894
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "stack frame not a multiple of 8 bytes: %wd"
-msgstr "Stapelrahmen ist kein Vielfaches von 8 Bytes: %d"
+msgstr "Stapelrahmen ist kein Vielfaches von 8 Bytes: %wd"
#: config/mmix/mmix.c:2130
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "stack frame not a multiple of octabyte: %wd"
-msgstr "Stapelrahmen ist kein Vielfaches eines Octabytes: %d"
+msgstr "Stapelrahmen ist kein Vielfaches eines Octabytes: %wd"
#: config/mmix/mmix.c:2470 config/mmix/mmix.c:2534
#, gcc-internal-format
@@ -21642,17 +21387,17 @@ msgstr "MMIX-intern: %s ist kein schiebbares int"
#: config/mt/mt.c:311
#, gcc-internal-format
msgid "info pointer NULL"
-msgstr ""
+msgstr "Info-Zeiger NULL"
#: config/pa/pa.c:459
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "PIC code generation is not supported in the portable runtime model"
-msgstr "PIC-Code-Generierung wird im portierbaren Laufzeitmodell nicht unterstützt\n"
+msgstr "PIC-Codeerzeugung wird im portierbaren Laufzeitmodell nicht unterstützt"
#: config/pa/pa.c:464
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "PIC code generation is not compatible with fast indirect calls"
-msgstr "PIC-Code-Generierung ist mit schnellen indirekten Aufrufen unverträglich\n"
+msgstr "PIC-Codeerzeugung ist mit schnellen indirekten Aufrufen unverträglich"
#: config/pa/pa.c:469
#, gcc-internal-format
@@ -21734,14 +21479,14 @@ msgid "junk at end of #pragma longcall"
msgstr "Ausschuss am Ende von #pragma longcall"
#: config/rs6000/rs6000-c.c:2530
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "passing arg %d of %qE discards qualifiers frompointer target type"
msgstr "Ãœbergabe des Arguments %d von %qE entfernt Kennzeichner von Zeiger-Ziel-Typ"
#: config/rs6000/rs6000-c.c:2573
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid parameter combination for AltiVec intrinsic"
-msgstr "ungültige Parameterkombination für intrinsisches %qs AltiVec"
+msgstr "ungültige Parameterkombination für intrinsisches AltiVec"
#: config/rs6000/rs6000.c:1254
#, gcc-internal-format
@@ -21791,12 +21536,12 @@ msgstr "Altes darwin-ABI wird verwendet"
#: config/rs6000/rs6000.c:1787
#, gcc-internal-format
msgid "Using IBM extended precision long double"
-msgstr ""
+msgstr "IBM long doubles mit erweiterter Genauigkeit werden verwendet"
#: config/rs6000/rs6000.c:1792
#, gcc-internal-format
msgid "Using IEEE extended precision long double"
-msgstr ""
+msgstr "IEEE long doubles mit erweiterter Genauigkeit werden verwendet"
#: config/rs6000/rs6000.c:1797
#, gcc-internal-format
@@ -21804,9 +21549,9 @@ msgid "unknown ABI specified: '%s'"
msgstr "unbekanntes ABI angegeben: »%s«"
#: config/rs6000/rs6000.c:1824
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid option for -mfloat-gprs: '%s'"
-msgstr "ungültige Option für -mfloat-gprs"
+msgstr "ungültige Option für -mfloat-gprs: »%s«"
#: config/rs6000/rs6000.c:1834
#, gcc-internal-format
@@ -21829,14 +21574,14 @@ msgid "GCC vector returned by reference: non-standard ABI extension with no comp
msgstr "GCC-Vektor per Referenz zurückgegeben: Nicht-Standard-ABI-Erweiterung ohne Kompatibilitätsgarantie"
#: config/rs6000/rs6000.c:4298
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
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."
+msgstr "Wert kann nicht in Vektorregister zurückgegeben werden, da AltiVec-Befehle ausgeschaltet sind; -maltivec schaltet sie ein"
#: config/rs6000/rs6000.c:4544
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
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."
+msgstr "Argument kann nicht in Vektorregister übergegeben werden, da AltiVec-Befehle ausgeschaltet sind; -maltivec schaltet sie ein"
#: config/rs6000/rs6000.c:5400
#, gcc-internal-format
@@ -21876,7 +21621,7 @@ msgstr "Argument für %qs muss ein vorzeichenloses 2-Bit-Symbol sein"
#: config/rs6000/rs6000.c:7245
#, gcc-internal-format
msgid "unresolved overload for Altivec builtin %qF"
-msgstr ""
+msgstr "ungelöste Überladung des eingebauten Altivec %qF"
#: config/rs6000/rs6000.c:7327
#, gcc-internal-format
@@ -21949,9 +21694,9 @@ msgid "-maix64 requires PowerPC64 architecture remain enabled"
msgstr "-maix64 setzt eingeschaltete PowerPC64-Architektur voraus"
#: config/rs6000/aix43.h:50 config/rs6000/aix52.h:49
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "soft-float and long-double-128 are incompatible"
-msgstr "-mrelocatable und -mcall-%s sind unverträglich"
+msgstr "soft-float und long-double-128 sind unverträglich"
#: config/rs6000/aix43.h:54 config/rs6000/aix51.h:47 config/rs6000/aix52.h:53
#, gcc-internal-format
@@ -22060,14 +21805,14 @@ msgid "-mcall-aixdesc must be big endian"
msgstr "-mcall-aixdesc muss »big endian« sein"
#: config/rs6000/sysv4.h:215
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "-msecure-plt not supported by your assembler"
-msgstr "MCU %qs nur für Assemblierung unterstützt"
+msgstr "-msecure-plt wird vom Assembler nicht unterstützt"
#: config/rs6000/sysv4.h:220
#, gcc-internal-format
msgid "-msoft-float and -mlong-double-128 not supported"
-msgstr ""
+msgstr "-msoft-float und -mlong-double-128 nicht unterstützt"
#: config/rs6000/sysv4.h:234
#, gcc-internal-format
@@ -22085,19 +21830,19 @@ msgid "stack size must be an exact power of 2"
msgstr "Stack-Größe muss eine exakte Zweierpotenz sein"
#: config/s390/s390.c:1391
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "z/Architecture mode not supported on %s"
-msgstr "z/Architektur-Modus nicht unterstützt auf %s."
+msgstr "z/Architektur-Modus nicht unterstützt auf %s"
#: config/s390/s390.c:1393
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
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:1404
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "-mbackchain -mpacked-stack -mhard-float are not supported in combination"
-msgstr "-mbackchain -mpacked-stack -mhard-float werden in dieser Kombination nicht unterstützt."
+msgstr "-mbackchain -mpacked-stack -mhard-float werden in dieser Kombination nicht unterstützt"
#: config/s390/s390.c:1410
#, gcc-internal-format
@@ -22110,9 +21855,9 @@ msgid "stack size must be greater than the stack guard value"
msgstr "Stackgröße muss größer als der Stack-Überwachungswert sein"
#: config/s390/s390.c:1414
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "stack size must not be greater than 64k"
-msgstr "Stackgröße muss größer als der Stack-Überwachungswert sein"
+msgstr "Stackgröße darf nicht größer als 64k sein"
#: config/s390/s390.c:1417
#, gcc-internal-format
@@ -22120,9 +21865,9 @@ msgid "-mstack-guard implies use of -mstack-size"
msgstr "-mstack-guard bringt -mstack-size mit sich"
#: config/s390/s390.c:6566
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "total size of local variables exceeds architecture limit"
-msgstr "Gesamtgröße der lokalen Variablen übersteigt Grenze der Architektur."
+msgstr "Gesamtgröße der lokalen Variablen übersteigt Grenze der Architektur"
#: config/s390/s390.c:7153
#, gcc-internal-format
@@ -22169,37 +21914,37 @@ msgstr "Attributargument %qs ist keine Ganzzahlkonstante"
#: config/sh/sh.c:9673
#, gcc-internal-format
msgid "r0 needs to be available as a call-clobbered register"
-msgstr ""
+msgstr "r0 muss als aufrufzerstörtes Register verfügbar sein"
#: config/sh/sh.c:9694
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "Need a second call-clobbered general purpose register"
-msgstr "Das BK-Register als Mehrzweckregister verwenden"
+msgstr "Ein zweites aufrufzerstörtes Mehrzweckregister wird benötigt"
#: config/sh/sh.c:9702
#, gcc-internal-format
msgid "Need a call-clobbered target register"
-msgstr ""
+msgstr "Aufrufzerstörtes Zielregister erforderlich"
#: config/sh/symbian.c:147
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+D is defined after prior declaration as dllimport: attribute ignored"
-msgstr "%JFunktion »%D« wurde nach vorheriger Deklaration als »dllimport« definiert: Attribut ignoriert"
+msgstr "Funktion %q+D wurde nach vorheriger Deklaration als »dllimport« definiert: Attribut ignoriert"
#: config/sh/symbian.c:159
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "inline function %q+D is declared as dllimport: attribute ignored"
-msgstr "%J»inline«-Funktion »%D« ist als »dllimport« deklariert: Attribut ignoriert."
+msgstr "»inline«-Funktion %q+D ist als »dllimport« deklariert: Attribut ignoriert"
#: config/sh/symbian.c:280
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "failure in redeclaration of %q+D: dllimport'd symbol lacks external linkage"
-msgstr "%JFehler in Redeklaration von »%D«: »dllimport«-iertem Symbol fehlt externe Bindung"
+msgstr "Fehler in Redeklaration von %q+D: »dllimport«-iertem Symbol fehlt externe Bindung"
#: config/sh/symbian.c:326
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s %q+D %s after being referenced with dllimport linkage"
-msgstr "%H%s »%D« %s nach Referenzierung mit dllimport-Bindung."
+msgstr "%s %q+D %s nach Referenzierung mit dllimport-Bindung"
#: config/sh/symbian.c:892 cp/tree.c:2335
#, gcc-internal-format
@@ -22208,18 +21953,18 @@ msgstr "Überprüfung von lang_*: in %s, bei %s:%d gescheitert"
#. FIXME
#: config/sh/netbsd-elf.h:95
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "unimplemented-shmedia profiling"
-msgstr "nicht implementierte Funktionalität"
+msgstr "nicht implementiertes SHmedia-Profiling"
#. There are no delay slots on SHmedia.
#. Relaxation isn't yet supported for SHmedia
#. After reload, if conversion does little good but can cause ICEs: - find_if_block doesn't do anything for SH because we don't have conditional execution patterns. (We use conditional move patterns, which are handled differently, and only before reload). - find_cond_trap doesn't do anything for the SH because we #. don't have conditional traps. - find_if_case_1 uses redirect_edge_and_branch_force in the only path that does an optimization, and this causes an ICE when branch targets are in registers. - find_if_case_2 doesn't do anything for the SHmedia after reload except when it can redirect a tablejump - and that's rather rare.
#. -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:611
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "profiling is still experimental for this target"
-msgstr "Profiling wird von diesem Ziel nicht unterstützt"
+msgstr "Profiling ist für dieses Ziel noch experimentell"
#. Only the sh64-elf assembler fully supports .quad properly.
#. User supplied - leave it alone.
@@ -22230,7 +21975,7 @@ msgstr "Profiling wird von diesem Ziel nicht unterstützt"
#: config/sh/sh.h:676
#, gcc-internal-format
msgid "ignoring -fschedule-insns because of exception handling bug"
-msgstr ""
+msgstr "-fschedule-insns wird wegen Ausnahmebehandlungsfehler ignoriert"
#: config/sparc/sparc.c:643
#, gcc-internal-format
@@ -22248,19 +21993,19 @@ msgid "-mcmodel= is not supported on 32 bit systems"
msgstr "-mcmodel= wird auf 32-Bit-Systemen nicht unterstützt"
#: config/stormy16/stormy16.c:497
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "constant halfword load operand out of range"
-msgstr "Konstanter Halbwort-Lade-Operand außerhalb des Wertebereiches."
+msgstr "Konstanter Halbwort-Lade-Operand außerhalb des Wertebereiches"
#: config/stormy16/stormy16.c:507
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "constant arithmetic operand out of range"
-msgstr "Konstanter arithmetischer Operand außerhalb des Wertebereiches."
+msgstr "Konstanter arithmetischer Operand außerhalb des Wertebereiches"
#: config/stormy16/stormy16.c:1108
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "local variable memory requirements exceed capacity"
-msgstr "Lokale Variablenspeicheranforderungen überschreiten Kapazität."
+msgstr "Lokale Variablenspeicheranforderungen überschreiten Kapazität"
#: config/stormy16/stormy16.c:1274
#, gcc-internal-format
@@ -22283,7 +22028,7 @@ msgid "%<__BELOW100__%> attribute only applies to variables"
msgstr "Attribut %<__BELOW100__%> bezieht sich nur auf Variablen"
#: config/stormy16/stormy16.c:2270
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "__BELOW100__ attribute not allowed with auto storage class"
msgstr "Attribut __BELOW100__ nicht mit Speicherklasse »auto« erlaubt"
@@ -22360,7 +22105,7 @@ msgstr "Ausschuss am Ende von #pragma ghs endzda"
#: config/v850/v850.c:172
#, gcc-internal-format
msgid "value passed to %<-m%s%> is too large"
-msgstr ""
+msgstr "an %<-m%s%> übergebener Wert ist zu groß"
#: config/v850/v850.c:2147
#, gcc-internal-format
@@ -22368,14 +22113,14 @@ 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:2158
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "data area of %q+D conflicts with previous declaration"
-msgstr "%JDatenabschnitt von »%D« in Konflikt mit vorheriger Deklaration"
+msgstr "Datenabschnitt von %q+D in Konflikt mit vorheriger Deklaration"
#: config/v850/v850.c:2288
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "bogus JR construction: %d"
-msgstr "nur simulierte JR-Konstruktion: %d\n"
+msgstr "nur simulierte JR-Konstruktion: %d"
#: config/v850/v850.c:2306 config/v850/v850.c:2415
#, gcc-internal-format
@@ -22388,22 +22133,22 @@ msgid "bogus JARL construction: %d\n"
msgstr "nur simulierte JARL-Konstruktion: %d\n"
#: config/v850/v850.c:2694
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "bogus DISPOSE construction: %d"
-msgstr "nur simulierte DISPOSE-Konstruktion: %d\n"
+msgstr "nur simulierte DISPOSE-Konstruktion: %d"
#: config/v850/v850.c:2713
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "too much stack space to dispose of: %d"
-msgstr "Zu viel Stapelspeicher zu entsorgen: %dd"
+msgstr "Zu viel Stapelspeicher zu entsorgen: %d"
#: config/v850/v850.c:2815
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "bogus PREPEARE construction: %d"
-msgstr "nur simulierte PREPARE-Konstruktion: %d\n"
+msgstr "nur simulierte PREPARE-Konstruktion: %d"
#: config/v850/v850.c:2834
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "too much stack space to prepare: %d"
msgstr "Zu viel Stapelspeicher vorzubereiten: %d"
@@ -22463,9 +22208,9 @@ msgid "%s %T <conversion>"
msgstr "%s %T <Umformung>"
#: cp/call.c:2404
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s %+#D <near match>"
-msgstr "%J%s %+#D <nahe Ãœbereinstimmung>"
+msgstr "%s %+#D <nahe Ãœbereinstimmung>"
#: cp/call.c:2406 cp/pt.c:1327
#, gcc-internal-format
@@ -22656,9 +22401,9 @@ msgid "the default argument for parameter %d of %qD has not yet been parsed"
msgstr "das Standardargument für den Parameter %d von %qD wurde noch nicht gelesen"
#: cp/call.c:4621
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "argument of function call might be a candidate for a format attribute"
-msgstr "Bei Funktionen, die Kandidaten für Formatattribute sein könnten, warnen"
+msgstr "Argument des Funktionsaufrufs könnte Kandidat für Formatattribut sein"
#: cp/call.c:4758
#, gcc-internal-format
@@ -22756,29 +22501,29 @@ msgid "Java class %qT cannot have an implicit non-trivial destructor"
msgstr "Java-Klasse %qT kann keinen impliziten nicht-trivialen Destruktor haben"
#: cp/class.c:1054
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "repeated using declaration %q+D"
-msgstr "Für Template-Deklaration %qD"
+msgstr "Wiederholte using-Deklaration %q+D"
#: cp/class.c:1056
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "using declaration %q+D conflicts with a previous using declaration"
-msgstr "%JAbschnitt von %qD in Konflikt mit vorheriger Deklaration"
+msgstr "Using-Deklaration %q+D in Konflikt mit vorheriger using-Deklaration"
#: cp/class.c:1061
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+#D cannot be overloaded"
-msgstr "%q#D und %q#D können nicht überladen werden"
+msgstr "%q+#D kann nicht überladen werden"
#: cp/class.c:1062
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "with %q+#D"
-msgstr " %q#D"
+msgstr "mit %q+#D"
#: cp/class.c:1124
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "conflicting access specifications for method %q+D, ignored"
-msgstr "Zugriffsangaben für Methode %qD stehen in Konflikt, ignoriert"
+msgstr "Zugriffsangaben für Methode %q+D stehen in Konflikt, ignoriert"
#: cp/class.c:1127
#, gcc-internal-format
@@ -22786,19 +22531,19 @@ msgid "conflicting access specifications for field %qE, ignored"
msgstr "Zugriffsangaben für Feld %qE stehen in Konflikt, ignoriert"
#: cp/class.c:1188 cp/class.c:1196
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D invalid in %q#T"
-msgstr "%qD ungültig in %q#T"
+msgstr "%q+D ungültig in %q#T"
#: cp/class.c:1189
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " because of local method %q+#D with same name"
-msgstr " wegen lokaler Methode %q#D mit gleichem Namen"
+msgstr " wegen lokaler Methode %q+#D mit gleichem Namen"
#: cp/class.c:1197
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " because of local member %q+#D with same name"
-msgstr " wegen lokalem Element %q#D mit gleichem Namen"
+msgstr " wegen lokalem Element %q+#D mit gleichem Namen"
#: cp/class.c:1239
#, gcc-internal-format
@@ -22827,74 +22572,74 @@ msgstr "%qD wurde nicht eindeutig und endgültig in %qT überschrieben"
#. Here we know it is a hider, and no overrider exists.
#: cp/class.c:2419
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D was hidden"
-msgstr "%qD war versteckt"
+msgstr "%q+D war versteckt"
#: cp/class.c:2420
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " by %q+D"
-msgstr " von %qD"
+msgstr " von %q+D"
#: cp/class.c:2461 cp/decl2.c:1072
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+#D invalid; an anonymous union can only have non-static data members"
-msgstr "%q#D ungültig; eine anonyme Union kann nur nicht-statische Datenelemente haben"
+msgstr "%q+#D ungültig; eine anonyme Union kann nur nicht-statische Datenelemente haben"
#: cp/class.c:2467 cp/decl2.c:1078
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "private member %q+#D in anonymous union"
-msgstr "privates Element %q#D in anonymer Union"
+msgstr "privates Element %q+#D in anonymer Union"
#: cp/class.c:2469 cp/decl2.c:1080
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "protected member %q+#D in anonymous union"
-msgstr "geschütztes Element %q#D in anonymer Union"
+msgstr "geschütztes Element %q+#D in anonymer Union"
#: cp/class.c:2635
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "bit-field %q+#D with non-integral type"
-msgstr "Bit-Feld %q#D mit Nicht-Ganzzahl-Typ"
+msgstr "Bit-Feld %q+#D mit Nicht-Ganzzahl-Typ"
#: cp/class.c:2652
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "bit-field %q+D width not an integer constant"
-msgstr "Breite des Bitfeldes %qD ist keine Ganzzahlkonstante"
+msgstr "Breite des Bitfeldes %q+D ist keine Ganzzahlkonstante"
#: cp/class.c:2657
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "negative width in bit-field %q+D"
-msgstr "negative Breite in Bitfeld %qD"
+msgstr "negative Breite in Bitfeld %q+D"
#: cp/class.c:2662
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "zero width for bit-field %q+D"
-msgstr "Breite null für Bitfeld %qD"
+msgstr "Breite Null für Bitfeld %q+D"
#: cp/class.c:2668
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "width of %q+D exceeds its type"
-msgstr "Breite von %qD übersteigt seinen Typen"
+msgstr "Breite von %q+D übersteigt seinen Typen"
#: cp/class.c:2677
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D is too small to hold all values of %q#T"
-msgstr "%qD ist zu klein um alle Werte von %q#T aufzunehmen"
+msgstr "%q+D ist zu klein um alle Werte von %q#T aufzunehmen"
#: cp/class.c:2736
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "member %q+#D with constructor not allowed in union"
-msgstr "Element %q#D mit Konstruktor nicht erlaubt in Union"
+msgstr "Element %q+#D mit Konstruktor nicht erlaubt in Union"
#: cp/class.c:2739
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "member %q+#D with destructor not allowed in union"
-msgstr "Element %q#D mit Destruktor nicht erlaubt in Union"
+msgstr "Element %q+#D mit Destruktor nicht erlaubt in Union"
#: cp/class.c:2741
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "member %q+#D with copy assignment operator not allowed in union"
-msgstr "Element %q#D mit Zuweisungsoperator ist nicht erlaubt in Union"
+msgstr "Element %q+#D mit Copy-Zuweisungsoperator ist nicht erlaubt in Union"
#: cp/class.c:2764
#, gcc-internal-format
@@ -22902,49 +22647,49 @@ msgid "multiple fields in union %qT initialized"
msgstr "in Union %qT werden mehrere Felder initialisiert"
#: cp/class.c:2826
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "ignoring packed attribute on unpacked non-POD field %q+#D"
-msgstr "»gepackt«-Attribut für ungepacktes nicht-POD-Feld %q#D wird ignoriert"
+msgstr "»gepackt«-Attribut für ungepacktes nicht-POD-Feld %q+#D wird ignoriert"
#: cp/class.c:2886
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D may not be static because it is a member of a union"
-msgstr "%qD kann nicht static sein, da es ein Union-Element ist"
+msgstr "%q+D kann nicht static sein, da es ein Union-Element ist"
#: cp/class.c:2891
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D may not have reference type %qT because it is a member of a union"
-msgstr "%qD darf keinen Referenztyp %qT haben, da es ein Element einer Union ist"
+msgstr "%q+D darf keinen Referenztyp %qT haben, da es ein Element einer Union ist"
#: cp/class.c:2900
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "field %q+D in local class cannot be static"
-msgstr "Feld %qD in lokaler Klasse kann nicht statisch sein"
+msgstr "Feld %q+D in lokaler Klasse kann nicht statisch sein"
#: cp/class.c:2906
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "field %q+D invalidly declared function type"
-msgstr "Feld %qD deklarierte ungültigerweise einen Funktionstypen"
+msgstr "Feld %q+D deklarierte ungültigerweise einen Funktionstypen"
#: cp/class.c:2912
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "field %q+D invalidly declared method type"
-msgstr "Feld %qD deklarierte ungültigerweise einen Methodentypen"
+msgstr "Feld %q+D deklarierte ungültigerweise einen Methodentypen"
#: cp/class.c:2944
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "non-static reference %q+#D in class without a constructor"
-msgstr "nicht-statische Referenz %q#D in Klasse ohne Konstruktor"
+msgstr "nicht-statische Referenz %q+#D in Klasse ohne Konstruktor"
#: cp/class.c:2991
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "non-static const member %q+#D in class without a constructor"
-msgstr "nicht-statisches const-Element %q#D in Klasse ohne einen Konstruktor"
+msgstr "nicht-statisches const-Element %q+#D in Klasse ohne einen Konstruktor"
#: cp/class.c:3006
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "field %q+#D with same name as class"
-msgstr "Feld %q#D mit gleichem Namen wie die Klasse"
+msgstr "Feld %q+#D mit gleichem Namen wie Klasse"
#: cp/class.c:3039
#, gcc-internal-format
@@ -22977,9 +22722,9 @@ msgid "class %qT will be considered nearly empty in a future version of GCC"
msgstr "Klasse %qT wird in zukünftigen GCC-Versionen als annähernd leer betrachtet werden"
#: cp/class.c:3698
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "initializer specified for non-virtual method %q+D"
-msgstr "Initialisierung für nicht-virtuelle Methode %qD angegeben"
+msgstr "Initialisierung für nicht-virtuelle Methode %q+D angegeben"
#: cp/class.c:4360
#, gcc-internal-format
@@ -23009,14 +22754,14 @@ msgid "the offset of %qD may not be ABI-compliant and may change in a future ver
msgstr "der Versatz von %qD könnte ABI-unverträglich sein und sich in einer zukünftigen GCC-Version ändern"
#: cp/class.c:4715
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "offset of %q+D is not ABI-compliant and may change in a future version of GCC"
-msgstr "Versatz von %qD ist ABI-unverträglich und kann sich in zukünftigen GCC-Versionen ändern"
+msgstr "Versatz von %q+D ist ABI-unverträglich und kann sich in zukünftigen GCC-Versionen ändern"
#: cp/class.c:4724
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D contains empty classes which may cause base classes to be placed at different locations in a future version of GCC"
-msgstr "%qD enthält leere Klassen, die in zukünftigen GCC-Versionen die Basisklassen an andere Orte verschieben können"
+msgstr "%q+D enthält leere Klassen, die in zukünftigen GCC-Versionen die Basisklassen an andere Orte verschieben können"
#: cp/class.c:4783
#, gcc-internal-format
@@ -23227,9 +22972,9 @@ msgid "%qD was declared %<extern%> and later %<static%>"
msgstr "%qD wurde %<extern%> deklariert und später %<static%>"
#: cp/decl.c:1003 cp/decl.c:1508 objc/objc-act.c:2920 objc/objc-act.c:7487
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "previous declaration of %q+D"
-msgstr "vorherige Deklaration von %qD"
+msgstr "vorherige Deklaration von %q+D"
#: cp/decl.c:1036
#, gcc-internal-format
@@ -23237,29 +22982,29 @@ msgid "declaration of %qF throws different exceptions"
msgstr "Deklaration von %qF wirft andere Ausnahmen"
#: cp/decl.c:1037
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "from previous declaration %q+F"
-msgstr "vorherige Deklaration %qD"
+msgstr "von vorheriger Deklaration %q+F"
#: cp/decl.c:1089
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+D redeclared as inline"
-msgstr "%JFunktion %qD als inline redeklariert"
+msgstr "Funktion %q+D als inline redeklariert"
#: cp/decl.c:1091
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "previous declaration of %q+D with attribute noinline"
-msgstr "%Jvorherige Deklaration von %qD mit Attribut noinline"
+msgstr "vorherige Deklaration von %q+D mit Attribut noinline"
#: cp/decl.c:1098
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+D redeclared with attribute noinline"
-msgstr "%JFunktion %qD mit Attribut noinline redeklariert"
+msgstr "Funktion %q+D mit Attribut noinline redeklariert"
#: cp/decl.c:1100
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "previous declaration of %q+D was inline"
-msgstr "%Jvorherige Deklaration von %qD war inline"
+msgstr "vorherige Deklaration von %q+D war inline"
#: cp/decl.c:1123 cp/decl.c:1196
#, gcc-internal-format
@@ -23292,9 +23037,9 @@ msgid "%q#D redeclared as different kind of symbol"
msgstr "%q#D als andere Symbolart redeklariert"
#: cp/decl.c:1267
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "previous declaration of %q+#D"
-msgstr "vorherige Deklaration von %q#D"
+msgstr "vorherige Deklaration von %q+#D"
#: cp/decl.c:1286
#, gcc-internal-format
@@ -23302,14 +23047,14 @@ msgid "declaration of template %q#D"
msgstr "Deklaration des Templates %q#D"
#: cp/decl.c:1287 cp/name-lookup.c:509
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "conflicts with previous declaration %q+#D"
-msgstr "steht mit der vorherigen Deklaration %q#D in Konflikt"
+msgstr "steht mit vorheriger Deklaration %q+#D in Konflikt"
#: cp/decl.c:1301 cp/decl.c:1317
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "ambiguates old declaration %q+#D"
-msgstr "macht alte Deklaration %q#D mehrdeutig"
+msgstr "macht alte Deklaration %q+#D mehrdeutig"
#: cp/decl.c:1309
#, gcc-internal-format
@@ -23317,9 +23062,9 @@ msgid "declaration of C function %q#D conflicts with"
msgstr "Deklaration der C-Funktion %q#D steht in Konflikt mit"
#: cp/decl.c:1311
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "previous declaration %q+#D here"
-msgstr "vorherige Deklaration %q#D hier"
+msgstr "vorherige Deklaration %q+#D hier"
#: cp/decl.c:1324
#, gcc-internal-format
@@ -23327,9 +23072,9 @@ msgid "conflicting declaration %q#D"
msgstr "in Konflikt stehende Deklaration %q#D"
#: cp/decl.c:1325
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D has a previous declaration as %q#D"
-msgstr "%qD hat eine vorherige Deklaration als %q#D"
+msgstr "%q+D hat eine vorherige Deklaration als %q#D"
#. [namespace.alias]
#.
@@ -23344,25 +23089,25 @@ msgid "declaration of namespace %qD conflicts with"
msgstr "Deklaration von namespace %qD steht in Konflikt mit"
#: cp/decl.c:1378
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "previous declaration of namespace %q+D here"
-msgstr "vorherige Deklaration von namespace %qD hier"
+msgstr "vorherige Deklaration von namespace %q+D hier"
#: cp/decl.c:1389
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+#D previously defined here"
-msgstr "%q#D wurde vorher hier definiert"
+msgstr "%q+#D wurde vorher hier definiert"
#: cp/decl.c:1390
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+#D previously declared here"
-msgstr "%q#D wurde vorher hier deklariert"
+msgstr "%q+#D wurde vorher hier deklariert"
#. Prototype decl follows defn w/o prototype.
#: cp/decl.c:1399
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "prototype for %q+#D"
-msgstr "Prototyp für %q#D"
+msgstr "Prototyp für %q+#D"
#: cp/decl.c:1400
#, gcc-internal-format
@@ -23370,9 +23115,9 @@ msgid "%Jfollows non-prototype definition here"
msgstr "%Jfolgt Nicht-Prototyp-Definition hier"
#: cp/decl.c:1412
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "previous declaration of %q+#D with %qL linkage"
-msgstr "vorherige Deklaration von %q#D mit %qL-Bindung"
+msgstr "vorherige Deklaration von %q+#D mit %qL-Bindung"
#: cp/decl.c:1414
#, gcc-internal-format
@@ -23385,9 +23130,9 @@ msgid "default argument given for parameter %d of %q#D"
msgstr "Standardargument für Parameter %d von %q#D angegeben"
#: cp/decl.c:1439 cp/decl.c:1445
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "after previous specification in %q+#D"
-msgstr "nach vorheriger Spezifikation in %q#D"
+msgstr "nach vorheriger Spezifikation in %q+#D"
#: cp/decl.c:1454
#, gcc-internal-format
@@ -23418,9 +23163,9 @@ msgid "explicit specialization of %qD after first use"
msgstr "explizite Spezialisierung von %qD nach erster Benutzung"
#: cp/decl.c:1838
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D: visibility attribute ignored because it"
-msgstr "%J%qD: Sichtbarkeitsattribut ignoriert, da es"
+msgstr "%q+D: Sichtbarkeitsattribut ignoriert, da es"
#: cp/decl.c:1840
#, gcc-internal-format
@@ -23443,14 +23188,14 @@ msgid "%H from here"
msgstr "%H von hier"
#: cp/decl.c:2240
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " crosses initialization of %q+#D"
-msgstr " überschneidet Initialisierung von %q#D"
+msgstr " überschneidet Initialisierung von %q+#D"
#: cp/decl.c:2242 cp/decl.c:2356
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " enters scope of non-POD %q+#D"
-msgstr " tritt in Gültigkeitsbereich des nicht-POD %q#D ein"
+msgstr " tritt in Gültigkeitsbereich des nicht-POD %q+#D ein"
#: cp/decl.c:2261 cp/decl.c:2360
#, gcc-internal-format
@@ -23463,9 +23208,9 @@ msgid " enters catch block"
msgstr " tritt in catch-Block ein"
#: cp/decl.c:2340
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "jump to label %q+D"
-msgstr "Sprung zur Marke %qD"
+msgstr "Sprung zur Marke %q+D"
#: cp/decl.c:2341
#, gcc-internal-format
@@ -23479,9 +23224,9 @@ msgid "%J enters catch block"
msgstr "%J tritt in catch-Block ein"
#: cp/decl.c:2354
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " skips initialization of %q+#D"
-msgstr " überspringt Initialisierung von %q#D"
+msgstr " überspringt Initialisierung von %q+#D"
#: cp/decl.c:2388
#, gcc-internal-format
@@ -23514,9 +23259,9 @@ msgid "template parameters do not match template"
msgstr "Template-Parameter passen nicht zum Template"
#: cp/decl.c:2765 cp/friend.c:317 cp/friend.c:325
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D declared here"
-msgstr "%qD hier deklariert"
+msgstr "%q+D hier deklariert"
#: cp/decl.c:3439
#, gcc-internal-format
@@ -23524,19 +23269,19 @@ msgid "%Jan anonymous union cannot have function members"
msgstr "%Jeine anonyme Union kann keine Funktionselemente haben"
#: cp/decl.c:3457
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "member %q+#D with constructor not allowed in anonymous aggregate"
-msgstr "Element %q#D mit Konstruktor in anonymem Aggregat nicht erlaubt"
+msgstr "Element %q+#D mit Konstruktor in anonymem Aggregat nicht erlaubt"
#: cp/decl.c:3460
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "member %q+#D with destructor not allowed in anonymous aggregate"
-msgstr "Element %q#D mit Destruktor in anonymem Aggregat nicht erlaubt"
+msgstr "Element %q+#D mit Destruktor in anonymem Aggregat nicht erlaubt"
#: cp/decl.c:3463
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "member %q+#D with copy assignment operator not allowed in anonymous aggregate"
-msgstr "Element %q#D mit Zuweisungsoperator ist in anonymem Aggregt nicht erlaubt"
+msgstr "Element %q+#D mit Zuweisungsoperator ist in anonymem Aggregt nicht erlaubt"
#: cp/decl.c:3488
#, gcc-internal-format
@@ -23584,14 +23329,14 @@ msgid "qualifiers can only be specified for objects and functions"
msgstr "Qualifizierer können nur für Objekte und Funktionen angegeben werden"
#: cp/decl.c:3590
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "attribute ignored in declaration of %q+#T"
-msgstr "Attribut in Deklaration von %q#T ignoriert"
+msgstr "Attribut in Deklaration von %q+#T ignoriert"
#: cp/decl.c:3591
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "attribute for %q+#T must follow the %qs keyword"
-msgstr "Attribut für %q#T muss dem Schlüsselwort %qs folgen"
+msgstr "Attribut für %q+#T muss dem Schlüsselwort %qs folgen"
#: cp/decl.c:3711
#, gcc-internal-format
@@ -23687,9 +23432,9 @@ msgid "storage size of %qD isn't constant"
msgstr "Speichergröße von %qD ist nicht konstant"
#: cp/decl.c:4131
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
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 %q#D der inline-Funktion ist falsch (mehrere Kopien wären die Folge)"
+msgstr "Entschuldigung: Semantik der statischen Daten %q+#D der inline-Funktion ist falsch (mehrere Kopien wären die Folge)"
#: cp/decl.c:4134
#, gcc-internal-format
@@ -23707,9 +23452,9 @@ msgid "name %qD used in a GNU-style designated initializer for an array"
msgstr "Name %qD in benannter Initialisierung im GNU-Stil für ein Feld verwendet"
#: cp/decl.c:4282
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid type %qT as initializer for a vector of type %qT"
-msgstr "Ungültige Feldinitialisierung für Nicht-Array-Typ %qs"
+msgstr "Ungültiger Typ %qT als Initialisierung für einen Vektor des Typs %qT"
#: cp/decl.c:4324
#, gcc-internal-format
@@ -23727,14 +23472,14 @@ msgid "%qT has no non-static data member named %qD"
msgstr "%qT hat kein nicht-statisches Datenelement namens %qD"
#: cp/decl.c:4393
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "braces around scalar initializer for type %qT"
-msgstr "geschweifte Klammern um skalare Initialisierung für %qT"
+msgstr "geschweifte Klammern um skalare Initialisierung für Typ %qT"
#: cp/decl.c:4471
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "missing braces around initializer for %qT"
-msgstr "geschweifte Klammern fehlen um Initialisierung"
+msgstr "geschweifte Klammern fehlen um Initialisierung für %qT"
#: cp/decl.c:4526
#, gcc-internal-format
@@ -23797,9 +23542,9 @@ msgid "%qD is thread-local and so cannot be dynamically initialized"
msgstr "%qD ist Thread-lokal und kann damit nicht dynamisch initialisiert werden"
#: cp/decl.c:5021
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qD cannot be initialized by a non-constant expression when being declared"
-msgstr "%qD kann nicht in Konstanten-Ausdruck auftreten"
+msgstr "%qD kann bei der Deklaration nicht von nicht konstantem Ausdruck initialisiert werden"
#: cp/decl.c:5611
#, gcc-internal-format
@@ -23827,19 +23572,19 @@ msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in %s decla
msgstr "Funktionsspezifizierer %<const%> und %<volatile%> an %qD ungültig in %s-Deklaration"
#: cp/decl.c:5642
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D declared as a friend"
-msgstr "%qD als »friend« deklariert"
+msgstr "%q+D als »friend« deklariert"
#: cp/decl.c:5648
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D declared with an exception specification"
-msgstr "%qD mit einer Ausnahmespezifikation deklariert"
+msgstr "%q+D mit einer Ausnahmespezifikation deklariert"
#: cp/decl.c:5682
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "definition of %qD is not in namespace enclosing %qT"
-msgstr "Deklaration von %qD nicht in einem Namensbereich um %qD"
+msgstr "Deklaration von %qD ist nicht in einem Namensbereich um %qT"
#: cp/decl.c:5742
#, gcc-internal-format
@@ -23888,9 +23633,9 @@ msgid "non-local function %q#D uses anonymous type"
msgstr "nicht lokale Funktion %q#D verwendet anonymen Typen"
#: cp/decl.c:5878 cp/decl.c:6148
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+#D does not refer to the unqualified type, so it is not used for linkage"
-msgstr "%q#D verweist nicht auf den unqualifizierten Typen, also wird es nicht zum Binden verwendet"
+msgstr "%q+#D verweist nicht auf den unqualifizierten Typen, also wird es nicht zum Binden verwendet"
#: cp/decl.c:5884
#, gcc-internal-format
@@ -24258,14 +24003,14 @@ msgid "member functions are implicitly friends of their class"
msgstr "Elementfunktionen sind implizite »friends« ihrer Klasse"
#: cp/decl.c:7584
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "extra qualification %<%T::%> on member %qs"
-msgstr "zusätzliche Qualifizierung %<%T::%> an Element %qs ignoriert"
+msgstr "zusätzliche Qualifizierung %<%T::%> an Element %qs"
#: cp/decl.c:7595
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "cannot define member function %<%T::%s%> within %<%T%>"
-msgstr "Elementfunktion %<%T::%s%> kann nicht in %<%T%> deklariert werden"
+msgstr "Elementfunktion %<%T::%s%> innerhalb von %<%T%> kann nicht definiert werden"
#: cp/decl.c:7596
#, gcc-internal-format
@@ -24401,9 +24146,9 @@ msgid "%qD cannot be declared virtual, since it is always static"
msgstr "%qD kann nicht als virtuell deklariert werden, da es immer statisch ist"
#: cp/decl.c:8044
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "expected qualified name in friend declaration for destructor %qD"
-msgstr "explizite Qualifizierung in Deklaration von »%D«"
+msgstr "Qualifizierten Namen in Friend-Deklaration für Destruktor %qD erwartet"
#: cp/decl.c:8054
#, gcc-internal-format
@@ -24660,9 +24405,9 @@ msgid "using typedef-name %qD after %qs"
msgstr "typedef-Name %qD wird nach %qs verwendet"
#: cp/decl.c:9227
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D has a previous declaration here"
-msgstr "%qD hat eine vorherige Deklaration hier"
+msgstr "%q+D hat eine vorherige Deklaration hier"
#: cp/decl.c:9235
#, gcc-internal-format
@@ -24670,9 +24415,9 @@ msgid "%qT referred to as %qs"
msgstr "%qT als %qs verwendet"
#: cp/decl.c:9236 cp/decl.c:9243
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+T has a previous declaration here"
-msgstr "%qT hat eine vorherige Deklaration hier"
+msgstr "%q+T hat eine vorherige Deklaration hier"
#: cp/decl.c:9242
#, gcc-internal-format
@@ -24894,9 +24639,9 @@ msgid "%qD is already defined in %qT"
msgstr "%qD ist bereits in %qT definiert"
#: cp/decl2.c:892
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "initializer specified for static member function %qD"
-msgstr "Initialisierung für Nicht-Element-Funktion »%D« angegeben"
+msgstr "Initialisierung für statische Element-Funktion %qD angegeben"
#: cp/decl2.c:915
#, gcc-internal-format
@@ -24964,9 +24709,9 @@ msgid "%<operator delete%> takes type %qT as first parameter"
msgstr "%<operator delete%> nimmt Typ %qT als ersten Parameter"
#: cp/decl2.c:3065
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "inline function %q+D used but never defined"
-msgstr "inline-Funktion %qD verwendet, aber nirgendwo definiert"
+msgstr "inline-Funktion %q+D verwendet, aber nirgendwo definiert"
#: cp/decl2.c:3219
#, gcc-internal-format
@@ -25130,9 +24875,9 @@ msgid "%Juninitialized member %qD with %<const%> type %qT"
msgstr "%Jnicht initialisiertes Element %qD mit %<const%>-Typ %qT"
#: cp/init.c:527
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D will be initialized after"
-msgstr "%qD wird initialisiert nach"
+msgstr "%q+D wird initialisiert nach"
#: cp/init.c:530
#, gcc-internal-format
@@ -25140,9 +24885,9 @@ msgid "base %qT will be initialized after"
msgstr "Basis %qT wird initialisiert nach"
#: cp/init.c:533
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " %q+#D"
-msgstr " %q#D"
+msgstr " %q+#D"
#: cp/init.c:535
#, gcc-internal-format
@@ -25205,14 +24950,14 @@ msgid "%qD is both a direct base and an indirect virtual base"
msgstr "%qD ist sowohl eine direkte Basis als auch eine indirekte virtuelle Basis"
#: cp/init.c:1022
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "type %qT is not a direct or virtual base of %qT"
-msgstr "Typ %qD ist keine direkte oder virtuelle Basis von %qT"
+msgstr "Typ %qT ist keine direkte oder virtuelle Basis von %qT"
#: cp/init.c:1025
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "type %qT is not a direct base of %qT"
-msgstr "Typ %qD ist keine direkte Basis von %qT"
+msgstr "Typ %qT ist keine direkte Basis von %qT"
#: cp/init.c:1105
#, gcc-internal-format
@@ -25300,9 +25045,9 @@ msgid "call to Java constructor with %qs undefined"
msgstr "Aufruf von Java-Konstruktor mit %qs ist nicht definiert"
#: cp/init.c:1964
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "no suitable %qD found in class %qT"
-msgstr "Keine Variable %qs in Klasse %qs definiert"
+msgstr "Kein passendes %qD in Klasse %qT gefunden"
#: cp/init.c:1969
#, gcc-internal-format
@@ -25456,9 +25201,9 @@ msgstr "Redeklaration von %<wchar_t%> als %qT"
#.
#. This function shall not be overloaded.
#: cp/name-lookup.c:727
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid redeclaration of %q+D"
-msgstr "ungültige Redeklaration von %qD"
+msgstr "ungültige Redeklaration von %q+D"
#: cp/name-lookup.c:728
#, gcc-internal-format
@@ -25471,9 +25216,9 @@ msgid "type mismatch with previous external decl of %q#D"
msgstr "Typen passen nicht zu vorheriger externer Deklaration von %q#D"
#: cp/name-lookup.c:817
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "previous external decl of %q+#D"
-msgstr "vorherige externe Deklaration von %q#D"
+msgstr "vorherige externe Deklaration von %q+#D"
#: cp/name-lookup.c:908
#, gcc-internal-format
@@ -25481,9 +25226,9 @@ msgid "extern declaration of %q#D doesn't match"
msgstr "externe Deklaration von %q#D passt nicht"
#: cp/name-lookup.c:909
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "global declaration %q+#D"
-msgstr "globale Deklaration von %q#D"
+msgstr "globale Deklaration von %q+#D"
#: cp/name-lookup.c:946 cp/name-lookup.c:953
#, gcc-internal-format
@@ -25512,14 +25257,14 @@ msgid "name lookup of %qD changed"
msgstr "Suche nach %qD hat sich geändert"
#: cp/name-lookup.c:1115
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " matches this %q+D under ISO standard rules"
-msgstr " passt nach ISO-Standardregeln zu diesem %qD"
+msgstr " passt nach ISO-Standardregeln zu diesem %q+D"
#: cp/name-lookup.c:1117
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " matches this %q+D under old rules"
-msgstr " passt nach den alten Regeln zu diesem %qD"
+msgstr " passt nach den alten Regeln zu diesem %q+D"
#: cp/name-lookup.c:1135 cp/name-lookup.c:1143
#, gcc-internal-format
@@ -25527,14 +25272,14 @@ msgid "name lookup of %qD changed for new ISO %<for%> scoping"
msgstr "Namenssuche von %qD hat sich für neue ISO-Regeln zum »for«-Gültigkeitsbereich geändert"
#: cp/name-lookup.c:1137
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " cannot use obsolete binding at %q+D because it has a destructor"
-msgstr " veraltete Bindung bei %qD kann nicht verwendet werden, weil es einen Destruktor hat"
+msgstr " veraltete Bindung bei %q+D kann nicht verwendet werden, weil es einen Destruktor hat"
#: cp/name-lookup.c:1145
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " using obsolete binding at %q+D"
-msgstr " bei %qD wird veraltete Bindung verwendet"
+msgstr " bei %q+D wird veraltete Bindung verwendet"
#: cp/name-lookup.c:1198
#, gcc-internal-format
@@ -25562,9 +25307,9 @@ msgid "%q#D conflicts with previous using declaration %q#D"
msgstr "%q#D steht mit vorheriger %<using%>-Deklaration %q#D in Konflikt"
#: cp/name-lookup.c:1921
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "previous non-function declaration %q+#D"
-msgstr "vorherige Deklaration %q#D einer Nicht-Funktion"
+msgstr "vorherige Deklaration %q+#D einer Nicht-Funktion"
#: cp/name-lookup.c:1922
#, gcc-internal-format
@@ -25611,24 +25356,24 @@ msgid "using-declaration for non-member at class scope"
msgstr "»using«-Deklaration für Nicht-Element im Gültigkeitsbereich der Klasse"
#: cp/name-lookup.c:2750
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%<%T::%D%> names destructor"
-msgstr "%qD benennt Konstruktor"
+msgstr "%<%T::%D%> benennt Destruktor"
#: cp/name-lookup.c:2755
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%<%T::%D%> names constructor"
-msgstr "%qD benennt Konstruktor"
+msgstr "%<%T::%D%> benennt Konstruktor"
#: cp/name-lookup.c:2760
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%<%T::%D%> names constructor in %qT"
-msgstr "%qD benennt Konstruktor"
+msgstr "%<%T::%D%> benennt Konstruktor in %qT"
#: cp/name-lookup.c:2809
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "no members matching %<%T::%D%> in %q#T"
-msgstr "kein Element passt zu %qD in %q#T"
+msgstr "kein Element passt zu %<%T::%D%> in %q#T"
#: cp/name-lookup.c:2877
#, gcc-internal-format
@@ -25636,9 +25381,9 @@ msgid "declaration of %qD not in a namespace surrounding %qD"
msgstr "Deklaration von %qD nicht in einem Namensbereich um %qD"
#: cp/name-lookup.c:2885
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "explicit qualification in declaration of %qD"
-msgstr "explizite Qualifizierung in Deklaration von »%D«"
+msgstr "explizite Qualifizierung in Deklaration von %qD"
#: cp/name-lookup.c:2925
#, gcc-internal-format
@@ -25693,14 +25438,14 @@ msgid "%qD undeclared in namespace %qD"
msgstr "%qD nicht deklariert in Namensbereich %qD"
#: cp/name-lookup.c:4255
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D is not a function,"
-msgstr "%qD ist keine Funktion"
+msgstr "%q+D ist keine Funktion,"
#: cp/name-lookup.c:4256
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " conflict with %q+D"
-msgstr " Konflikt mit %qD"
+msgstr " Konflikt mit %q+D"
#: cp/name-lookup.c:5090
#, gcc-internal-format
@@ -25839,9 +25584,9 @@ msgid "local variable %qD may not appear in this context"
msgstr "lokale Variable %qD darf in diesem Kontext nicht auftauchen"
#: cp/parser.c:3433
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "declaration of %<~%T%> as member of %qT"
-msgstr "Deklaration von %qD als Element %qT"
+msgstr "Deklaration von %<~%T%> als Element von %qT"
#: cp/parser.c:3446
#, gcc-internal-format
@@ -25854,9 +25599,9 @@ msgid "reference to %qD is ambiguous"
msgstr "Referenz auf %qD ist mehrdeutig"
#: cp/parser.c:3697 cp/typeck.c:1878 cp/typeck.c:1898
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qD is not a template"
-msgstr "%qE ist kein Template"
+msgstr "%qD ist kein Template"
#: cp/parser.c:4088
#, gcc-internal-format
@@ -25864,9 +25609,9 @@ msgid "ISO C++ forbids compound-literals"
msgstr "ISO-C++ verbietet zusammengesetzte Literale"
#: cp/parser.c:4420
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qE does not have class type"
-msgstr "%qE bezeichnet keinen Typ"
+msgstr "%qE hat keinen Klassentyp"
#: cp/parser.c:5019
#, gcc-internal-format
@@ -25998,9 +25743,9 @@ msgid "type attributes are honored only at type definition"
msgstr "Typattribute werden nur bei Typdefinition beachtet"
#: cp/parser.c:10364
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qD is not a namespace-name"
-msgstr "%qT ist kein Namensbereich"
+msgstr "%qD ist kein Namensbereichs-Name"
#. [namespace.udecl]
#.
@@ -26041,9 +25786,9 @@ msgid "invalid use of constructor as a template"
msgstr "ungültige Benutzung des Konstruktors als Template"
#: cp/parser.c:11495
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "use %<%T::%D%> instead of %<%T::%D%> to name the constructor in a qualified name"
-msgstr "%<%T::%D%> statt %<%T::%T%> verwenden, um den Konstruktor mit qualifiziertem Namen zu benennen"
+msgstr "%<%T::%D%> statt %<%T::%D%> verwenden, um den Konstruktor mit qualifiziertem Namen zu benennen"
#: cp/parser.c:11723
#, gcc-internal-format
@@ -26086,9 +25831,9 @@ msgid "an explicit specialization must be preceded by %<template <>%>"
msgstr "einer expliziten Spezialisierung muss %<template <>%> vorausgehen"
#: cp/parser.c:13212
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "previous definition of %q+#T"
-msgstr "vorherige Definition von %q#T"
+msgstr "vorherige Definition von %q+#T"
#: cp/parser.c:13443
#, gcc-internal-format
@@ -26184,22 +25929,22 @@ msgstr "%<template%> (zur Erklärung) ist nur innerhalb von Templates erlaubt"
#: cp/parser.c:16481 cp/parser.c:17404 cp/parser.c:17535
#, gcc-internal-format
msgid "misplaced %<@%D%> Objective-C++ construct"
-msgstr ""
+msgstr "unpassendes Objective-C++-Konstrukt %<@%D%>"
#: cp/parser.c:16622
#, gcc-internal-format
msgid "%<@encode%> must specify a type as an argument"
-msgstr ""
+msgstr "%<@encode%> muss als Argument einen Typen angeben"
#: cp/parser.c:16937
#, gcc-internal-format
msgid "invalid Objective-C++ selector name"
-msgstr ""
+msgstr "Ungültiger Objective-C++-Selektorname"
#: cp/parser.c:17268
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "identifier expected after %<@protocol%>"
-msgstr "Bezeichner erforderlich"
+msgstr "Bezeichner nach %<@protocol%> erwartet"
#: cp/parser.c:17558
#, gcc-internal-format
@@ -26232,14 +25977,14 @@ msgid "specialization of %qD in different namespace"
msgstr "Spezialisierung von %qD in anderem Namensbereich"
#: cp/pt.c:669 cp/pt.c:759
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " from definition of %q+#D"
-msgstr " aus Definition von %q#D"
+msgstr " aus Definition von %q+#D"
#: cp/pt.c:686
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "explicit instantiation of %qD in namespace %qD (which does not enclose namespace %qD)"
-msgstr "Deklaration von %qD in %qD, das nicht %qD einschließt"
+msgstr "explizite Instantiierung von %qD in Namensbereich %qD (das nicht Namensbereich %qD einschließt)"
#: cp/pt.c:726
#, gcc-internal-format
@@ -26347,14 +26092,14 @@ msgid "no member function %qD declared in %qT"
msgstr "keine Elementfunktion %qD in %qT deklariert"
#: cp/pt.c:2258
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "declaration of %q+#D"
-msgstr "Deklaration von %q#D"
+msgstr "Deklaration von %q+#D"
#: cp/pt.c:2259
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " shadows template parm %q+#D"
-msgstr " überdeckt Templateparameter %q#D"
+msgstr " überdeckt Templateparameter %q+#D"
#: cp/pt.c:2662
#, gcc-internal-format
@@ -26450,9 +26195,9 @@ msgid "template specifiers not specified in declaration of %qD"
msgstr "keine Templatespezifizierer in Deklaration von %qD angegeben"
#: cp/pt.c:3281
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "previous declaration %q+D"
-msgstr "vorherige Deklaration %qD"
+msgstr "vorherige Deklaration %q+D"
#: cp/pt.c:3282
#, gcc-internal-format
@@ -26460,9 +26205,9 @@ msgid "used %d template parameter(s) instead of %d"
msgstr "%d Template-Parameter statt %d verwendet"
#: cp/pt.c:3301
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "template parameter %q+#D"
-msgstr "Template-Parameter %q#D"
+msgstr "Template-Parameter %q+#D"
#: cp/pt.c:3302
#, gcc-internal-format
@@ -26589,9 +26334,9 @@ msgid "wrong number of template arguments (%d, should be %d)"
msgstr "falsche Anzahl der Templateargumente (%d, sollte %d sein)"
#: cp/pt.c:4027
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "provided for %q+D"
-msgstr "für %qD bereitgestellt"
+msgstr "für %q+D bereitgestellt"
#: cp/pt.c:4057
#, gcc-internal-format
@@ -26604,9 +26349,9 @@ msgid "non-template type %qT used as a template"
msgstr "Nicht-Template-Typ %qT als Template verwendet"
#: cp/pt.c:4414
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "for template declaration %q+D"
-msgstr "Für Template-Deklaration %qD"
+msgstr "Für Template-Deklaration %q+D"
#: cp/pt.c:5064
#, gcc-internal-format
@@ -26614,9 +26359,9 @@ msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-
msgstr "Instanziierungstiefe für Templates überschreitet Höchstwert %d (-ftemplate-depth-NN verwenden, um dies zu erhöhen) bei Instanziierung von %qD"
#: cp/pt.c:6612
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "instantiation of %q+D as type %qT"
-msgstr "Instanziierung von %qD als Typ %qT"
+msgstr "Instanziierung von %q+D als Typ %qT"
#: cp/pt.c:6791
#, gcc-internal-format
@@ -26624,9 +26369,9 @@ msgid "invalid parameter type %qT"
msgstr "ungültiger Parametertyp %qT"
#: cp/pt.c:6793
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "in declaration %q+D"
-msgstr "in Deklaration %qD"
+msgstr "in Deklaration %q+D"
#: cp/pt.c:6866
#, gcc-internal-format
@@ -26644,9 +26389,9 @@ msgid "creating pointer to member function of non-class type %qT"
msgstr "Erzeugung eines Zeigers auf Elementfunktion des Nicht-Klassentyps %qT"
#: cp/pt.c:7076
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "creating array with negative size (%qE)"
-msgstr "Feld der Größe null (%qE) wird erzeugt"
+msgstr "Feld negativer Größe (%qE) wird erzeugt"
#: cp/pt.c:7293
#, gcc-internal-format
@@ -26669,9 +26414,9 @@ msgid "creating pointer to member reference type %qT"
msgstr "Zeiger auf Elementreferenztyp %qT wird erzeugt"
#: cp/pt.c:7344
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "creating pointer to member of type void"
-msgstr "Zeiger auf Elementreferenztyp %qT wird erzeugt"
+msgstr "Zeiger auf Element mit Typ »void« wird erzeugt"
#: cp/pt.c:7411
#, gcc-internal-format
@@ -26819,9 +26564,9 @@ msgid "explicit instantiation of %qD but no definition available"
msgstr "explizite Instanziierung von %qD, aber keine Definition verfügbar"
#: cp/pt.c:11892
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use -ftemplate-depth-NN to increase the maximum)"
-msgstr "Instanziierungstiefe für Templates überschreitet Höchstwert %d (-ftemplate-depth-NN verwenden, um dies zu erhöhen) bei Instanziierung von %qD"
+msgstr "Instanziierungstiefe für Templates überschreitet Höchstwert %d (-ftemplate-depth-NN verwenden, um dies zu erhöhen) bei Instanziierung von %q+D, möglicherweise von Erzeugung der virtuellen Tabelle"
#: cp/pt.c:12165
#, gcc-internal-format
@@ -26879,46 +26624,46 @@ msgid "%qT is an inaccessible base of %qT"
msgstr "%qT ist eine nicht erreichbare Basis von %qT"
#: cp/search.c:1846
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "deprecated covariant return type for %q+#D"
-msgstr "ungültiger kovarianter Rückgabetyp für %q#D"
+msgstr "veralteter kovarianter Rückgabetyp für %q+#D"
#: cp/search.c:1848 cp/search.c:1863 cp/search.c:1868
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " overriding %q+#D"
-msgstr " %q#D wird überschrieben"
+msgstr " %q+#D wird überschrieben"
#: cp/search.c:1862
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid covariant return type for %q+#D"
-msgstr "ungültiger kovarianter Rückgabetyp für %q#D"
+msgstr "ungültiger kovarianter Rückgabetyp für %q+#D"
#: cp/search.c:1867
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "conflicting return type specified for %q+#D"
-msgstr "in Konflikt stehenden Rückgabetyp für %q#D angegeben"
+msgstr "in Konflikt stehenden Rückgabetyp für %q+#D angegeben"
#: cp/search.c:1877
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "looser throw specifier for %q+#F"
-msgstr "lockerer »throw«-Spezifizierer für %q#F"
+msgstr "lockerer »throw«-Spezifizierer für %q+#F"
#: cp/search.c:1878
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " overriding %q+#F"
-msgstr " %q#F wird überschrieben"
+msgstr " %q+#F wird überschrieben"
#. A static member function cannot match an inherited
#. virtual member function.
#: cp/search.c:1971
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+#D cannot be declared"
-msgstr "%q#D kann nicht deklariert werden"
+msgstr "%q+#D kann nicht deklariert werden"
#: cp/search.c:1972
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " since %q+#D declared in base class"
-msgstr " denn %q#D ist in Basisklasse deklariert"
+msgstr " denn %q+#D ist in Basisklasse deklariert"
#: cp/semantics.c:1240
#, gcc-internal-format
@@ -26926,14 +26671,14 @@ msgid "type of asm operand %qE could not be determined"
msgstr "Typ des asm-Operanden %qE konnte nicht ermittelt werden"
#: cp/semantics.c:1359
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid use of member %q+D in static member function"
-msgstr "ungültige Verwendung des Elementes %qD in statischer Elementfunktion"
+msgstr "ungültige Verwendung des Elementes %q+D in statischer Elementfunktion"
#: cp/semantics.c:1361
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid use of non-static data member %q+D"
-msgstr "ungültige Verwendung des nicht-statischen Datenelementes %qD"
+msgstr "ungültige Verwendung des nicht-statischen Datenelementes %q+D"
#: cp/semantics.c:1362 cp/semantics.c:1401
#, gcc-internal-format
@@ -26941,9 +26686,9 @@ msgid "from this location"
msgstr "von dieser Stelle"
#: cp/semantics.c:1400
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "object missing in reference to %q+D"
-msgstr "Objekt fehlt in Referenz auf %qD"
+msgstr "Objekt fehlt in Referenz auf %q+D"
#: cp/semantics.c:1866
#, gcc-internal-format
@@ -27046,9 +26791,9 @@ msgid "use of parameter from containing function"
msgstr "Verwendung eines Parameters aus enthaltender Funktion"
#: cp/semantics.c:2510
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " %q+#D declared here"
-msgstr " %q#D hier deklariert"
+msgstr " %q+#D hier deklariert"
#: cp/semantics.c:2548
#, gcc-internal-format
@@ -27393,14 +27138,14 @@ 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:3691
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid use of %qE to form a pointer-to-member-function"
-msgstr "ungültige Verwendung von %qE um Zeiger auf Elementfunktion zu erzeugen. Qualifizierer-ID sollte verwendet werden"
+msgstr "ungültige Verwendung von %qE um Zeiger auf Elementfunktion zu erzeugen"
#: cp/typeck.c:3694
#, gcc-internal-format
msgid " a qualified-id is required"
-msgstr ""
+msgstr " eine qualifizierte ID ist erforderlich"
#: cp/typeck.c:3699
#, gcc-internal-format
@@ -27604,9 +27349,9 @@ msgid "cannot convert %qT to %qT in %s"
msgstr "%qT kann nicht nach %qT in %s umgewandelt werden"
#: cp/typeck.c:6084
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s might be a candidate for a format attribute"
-msgstr "Funktion könnte möglicher Kandidat für Formatattribut %qs sein"
+msgstr "%s könnte möglicher Kandidat für Formatattribut sein"
#: cp/typeck.c:6157 cp/typeck.c:6159
#, gcc-internal-format
@@ -27624,14 +27369,14 @@ msgid "reference to non-lvalue returned"
msgstr "Referenz auf Nicht-L-Wert zurückgegeben"
#: cp/typeck.c:6228
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "reference to local variable %q+D returned"
-msgstr "Referenz auf lokale Variable %qD zurückgegeben"
+msgstr "Referenz auf lokale Variable %q+D zurückgegeben"
#: cp/typeck.c:6231
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "address of local variable %q+D returned"
-msgstr "Adresse der lokalen Variable %qD zurückgegeben"
+msgstr "Adresse der lokalen Variable %q+D zurückgegeben"
#: cp/typeck.c:6265
#, gcc-internal-format
@@ -27718,9 +27463,9 @@ msgid "%J because the following virtual functions are pure within %qT:"
msgstr "%J denn die folgenden virtuellen Funktionen sind rein innerhalb %qT:"
#: cp/typeck2.c:326
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "\t%+#D"
-msgstr "%J\t%#D"
+msgstr "\t%+#D"
#: cp/typeck2.c:333
#, gcc-internal-format
@@ -27745,12 +27490,12 @@ msgstr "int-Feld mit Nicht-wide-Zeichenkette initialisiert"
#: cp/typeck2.c:717
#, gcc-internal-format
msgid "cannot initialize aggregate of type %qT with a compound literal"
-msgstr ""
+msgstr "Aggregat des Typs %qT kann nicht mit zusammengesetztem Literal initialisiert werden"
#: cp/typeck2.c:791 cp/typeck2.c:889
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "non-trivial designated initializers not supported"
-msgstr "nicht-trivial markierte Initialisierungen"
+msgstr "nicht-trivial markierte Initialisierungen nicht unterstützt"
#: cp/typeck2.c:911 cp/typeck2.c:925
#, gcc-internal-format
@@ -27773,9 +27518,9 @@ msgid "member %qD is uninitialized reference"
msgstr "Element %qD ist nicht initialisierte Referenz"
#: cp/typeck2.c:975
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "no field %qD found in union being initialized"
-msgstr "kein Feld %qD in initialisierter Union"
+msgstr "kein Feld %qD in initialisierter Union gefunden"
#: cp/typeck2.c:984
#, gcc-internal-format
@@ -27971,9 +27716,9 @@ msgid "Can't reassign a value to the final variable %qs"
msgstr "An die finale Variable %qs kann kein weiterer Wert zugewiesen werden"
#: java/check-init.c:518 java/check-init.c:531
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "variable %qD may not have been initialized"
-msgstr "Variable %qs kann nicht initialisiert worden sein"
+msgstr "Variable %qD kann nicht initialisiert worden sein"
#: java/check-init.c:948
#, gcc-internal-format
@@ -28011,14 +27756,14 @@ msgid "%Jabstract method in non-abstract class"
msgstr "%Jabstrakte Methode in nicht-abstrakter Klasse"
#: java/class.c:2377
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "non-static method %q+D overrides static method"
-msgstr "%Jnicht-statische Methode »%D« überschreibt statische Methode"
+msgstr "nicht-statische Methode %q+D überschreibt statische Methode"
#: java/decl.c:1328
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D used prior to declaration"
-msgstr "»%#D« vor Deklaration verwendet"
+msgstr "%q+D vor Deklaration verwendet"
#: java/decl.c:1369
#, gcc-internal-format
@@ -28031,9 +27776,9 @@ msgid "declaration of %qs shadows a symbol from the parameter list"
msgstr "Deklaration von %qs überdeckt ein Symbol aus der Parameterliste"
#: java/decl.c:1833
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "In %+D: overlapped variable and exception ranges at %d"
-msgstr "%JIn %D: überlappende Variablen- und Ausnahmebereiche bei %d"
+msgstr "In %+D: überlappende Variablen- und Ausnahmebereiche bei %d"
#: java/decl.c:1896
#, gcc-internal-format
@@ -28041,9 +27786,9 @@ msgid "bad type in parameter debug info"
msgstr "schlechter Typ in Parameter-Debug-Info"
#: java/decl.c:1905
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "bad PC range for debug info for local %q+D"
-msgstr "%Jschlechter PC-Bereich für Debuginfo für lokales »%D«"
+msgstr "schlechter PC-Bereich für Debuginfo für lokales %q+D"
#: java/expr.c:369
#, gcc-internal-format
@@ -28111,19 +27856,19 @@ msgid "mismatching signature for field '%s' in '%s'"
msgstr "unpassende Signatur für Feld »%s« in »%s«"
#: java/expr.c:2712
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "assignment to final field %q+D not in field's class"
-msgstr "%JZuweisung an final-Feld »%D« nicht in Klasse des Feldes"
+msgstr "Zuweisung an final-Feld %q+D nicht in Klasse des Feldes"
#: java/expr.c:2717
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "assignment to final static field %q+D not in class initializer"
-msgstr "%JZuweisung an »final static«-Feld %qD nicht in Klasseninitialisierung"
+msgstr "Zuweisung an »final static«-Feld %q+D nicht in Klasseninitialisierung"
#: java/expr.c:2726
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "assignment to final field %q+D not in constructor"
-msgstr "%JZuweisung an final-Feld »%D« nicht in Konstruktor"
+msgstr "Zuweisung an final-Feld %q+D nicht in Konstruktor"
#: java/expr.c:2916
#, gcc-internal-format
@@ -28275,7 +28020,7 @@ msgstr "das in %qs gefundene %<java.lang.Object%> hatte nicht das spezielle Attr
#: java/jcf-parse.c:846
#, gcc-internal-format
msgid "%Hduplicate class will only be compiled once"
-msgstr ""
+msgstr "%Hdoppelte Klasse wird nur einmal übersetzt"
#: java/jcf-parse.c:900
#, gcc-internal-format
@@ -28454,29 +28199,29 @@ msgid "method definition not in @implementation context"
msgstr "Methodendefinition nicht im @implementation-Kontext"
#: objc/objc-act.c:1174
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "comparison of distinct Objective-C types lacks a cast"
-msgstr "in Vergleich verschiedener Zeigertypen fehlt Typkonvertierung"
+msgstr "Im Vergleich verschiedener Objective-C-Typen fehlt Typumwandlung"
#: objc/objc-act.c:1178
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "initialization from distinct Objective-C type"
-msgstr "Initialisierung von inkompatiblem Zeigertyp"
+msgstr "Initialisierung von anderem Objective-C-Typ"
#: objc/objc-act.c:1182
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "assignment from distinct Objective-C type"
-msgstr "Zuweisung von inkompatiblem Zeigertyp"
+msgstr "Zuweisung von anderem Objective-C-Typ"
#: objc/objc-act.c:1186
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "distinct Objective-C type in return"
-msgstr "inkompatible Typen in return"
+msgstr "Anderer Objective-C-Typ in Rückgabe"
#: objc/objc-act.c:1190
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "passing argument %d of %qE from distinct Objective-C type"
-msgstr "Ãœbergabe des Arguments %d von %qE von inkompatiblem Zeigertyp"
+msgstr "Ãœbergabe des Arguments %d von %qE von anderem Objective-C-Typ"
#: objc/objc-act.c:1345
#, gcc-internal-format
@@ -28543,27 +28288,27 @@ msgstr "%qs als andere Symbolart redeklariert"
#: objc/objc-act.c:3192
#, gcc-internal-format
msgid "strong-cast assignment has been intercepted"
-msgstr ""
+msgstr "Zuweisung mit starker Typumwandlung wurde abgefangen"
#: objc/objc-act.c:3234
#, gcc-internal-format
msgid "strong-cast may possibly be needed"
-msgstr ""
+msgstr "Möglicherweise wird starke Typumwandlung benötigt"
#: objc/objc-act.c:3244
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "instance variable assignment has been intercepted"
-msgstr "Instanzvariable %qs hat unbekannte Größe"
+msgstr "Zuweisung der Instanzvariable wurde abgefangen"
#: objc/objc-act.c:3263
#, gcc-internal-format
msgid "pointer arithmetic for garbage-collected objects not allowed"
-msgstr ""
+msgstr "Zeigerarithmetik für Objekte mit Garbage-Collection ist nicht erlaubt"
#: objc/objc-act.c:3269
#, gcc-internal-format
msgid "global/static variable assignment has been intercepted"
-msgstr ""
+msgstr "Globale/statische Variablenzuweisung wurde abgefangen"
#: objc/objc-act.c:3452
#, gcc-internal-format
@@ -28596,9 +28341,9 @@ msgid "%<@throw%> (rethrow) used outside of a @catch block"
msgstr "%<@throw%> (rethrow) außerhalb von »@catch«-Block verwendet"
#: objc/objc-act.c:4311
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "type %q+D does not have a known size"
-msgstr "%JTyp »%D« hat keine bekannte Größe"
+msgstr "Typ %q+D hat keine bekannte Größe"
#: objc/objc-act.c:4944
#, gcc-internal-format
@@ -28705,14 +28450,14 @@ msgid "instance variable %qs has unknown size"
msgstr "Instanzvariable %qs hat unbekannte Größe"
#: objc/objc-act.c:7068
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "type %qs has no default constructor to call"
-msgstr "Typ %qs hat einen benutzerdefinierten Konstruktor"
+msgstr "Typ %qs hat keinen Standard-Konstruktor"
#: objc/objc-act.c:7074
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "destructor for %qs shall not be run either"
-msgstr "Destruktor für fremde Klasse %qT kann kein Element sein"
+msgstr "Destruktor für %qs sollte auch nicht abgearbeitet werden"
#. Vtable pointers are Real Bad(tm), since Obj-C cannot
#. initialize them.
@@ -28830,7 +28575,7 @@ msgstr "[super ...] muss in einem Methodenkontext auftreten"
#: objc/objc-act.c:8780
#, gcc-internal-format
msgid "method possibly missing a [super dealloc] call"
-msgstr ""
+msgstr "In Methode fehlt möglicherweise ein [super dealloc]-Aufruf"
#: objc/objc-act.c:9408
#, gcc-internal-format
@@ -28863,9 +28608,9 @@ msgid "Address of register variable %qD requested."
msgstr "Adresse der Registervariablen %qD angefordert."
#: treelang/treetree.c:1214
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qD attribute ignored"
-msgstr "Attribut %qs wird ignoriert"
+msgstr "Attribut %qD wird ignoriert"
#~ msgid "syntax error: cannot back up"
#~ msgstr "Syntaxfehler: es kann nicht zurückgesetzt werden"
diff --git a/gcc/po/es.po b/gcc/po/es.po
index 7570e7466b0..28a8b479cb3 100644
--- a/gcc/po/es.po
+++ b/gcc/po/es.po
@@ -1,13 +1,13 @@
-# Mensajes en español para gcc-4.0.1
-# 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.
+# Mensajes en español para gcc-4.1.0
+# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# Cristian Othón Martínez Vera <cfuga@itam.mx>, 2001, 2002, 2003, 2004, 2005, 2006
#
msgid ""
msgstr ""
-"Project-Id-Version: gcc 4.0.1\n"
+"Project-Id-Version: gcc 4.1.0\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
"POT-Creation-Date: 2006-02-28 00:11-0800\n"
-"PO-Revision-Date: 2005-07-11 14:01-0500\n"
+"PO-Revision-Date: 2006-04-16 13:25-0500\n"
"Last-Translator: Cristian Othón Martínez Vera <cfuga@itam.mx>\n"
"Language-Team: Spanish <es@li.org>\n"
"MIME-Version: 1.0\n"
@@ -516,9 +516,9 @@ msgid "%d frame table(s) found\n"
msgstr "se encuentra(n) %d marcos de tabla(s)\n"
#: collect2.c:1487
-#, fuzzy, c-format
+#, c-format
msgid "can't get program status"
-msgstr "%s: %s: no se puede obtener el estado: %s\n"
+msgstr "no se puede obtener el estado del programa"
#: collect2.c:1537
#, c-format
@@ -531,9 +531,9 @@ msgid "cannot find '%s'"
msgstr "no se puede encontrar '%s'"
#: collect2.c:1556 collect2.c:2045 collect2.c:2200 gcc.c:2809
-#, fuzzy, c-format
+#, c-format
msgid "pex_init failed"
-msgstr "falló la gimplificación"
+msgstr "falló pex_init"
#: collect2.c:1591
#, c-format
@@ -555,9 +555,9 @@ msgid "cannot find 'nm'"
msgstr "no se puede encontrar 'nm'"
#: collect2.c:2066
-#, fuzzy, c-format
+#, c-format
msgid "can't open nm output"
-msgstr "no se puede abrir el fichero de salida '%s'"
+msgstr "no se puede abrir la salida de nm"
#: collect2.c:2110
#, c-format
@@ -570,9 +570,9 @@ msgid "fini function found in object %s"
msgstr "se encontró la función fini en el objeto %s"
#: collect2.c:2221
-#, fuzzy, c-format
+#, c-format
msgid "can't open ldd output"
-msgstr "no se puede abrir el fichero de salida '%s'"
+msgstr "no se puede abrir la salida de ldd"
#: collect2.c:2224
#, c-format
@@ -806,14 +806,12 @@ msgstr ""
"¿Continuar? (s ó n) "
#: gcc.c:2848
-#, fuzzy
msgid "failed to get exit status"
-msgstr "ld devolvió el estado de salida %d"
+msgstr "no se obtuvo el estado de salida"
#: gcc.c:2854
-#, fuzzy
msgid "failed to get process times"
-msgstr "no se encontró la clase '%s'"
+msgstr "no se obtuvieron los tiempos de proceso"
#: gcc.c:2877
#, c-format
@@ -953,6 +951,8 @@ msgid ""
" --sysroot=<directory> Use <directory> as the root directory for headers\n"
" for headers and libraries\n"
msgstr ""
+" --sysroot=<directory> Usa el <directorio> el directorio raíz para los\n"
+" encabezados y bibliotecas\n"
#: gcc.c:3076
msgid " -B <directory> Add <directory> to the compiler's search paths\n"
@@ -1224,9 +1224,9 @@ msgid "no input files"
msgstr "no hay ficheros de entrada"
#: gcc.c:6466
-#, fuzzy, c-format
+#, c-format
msgid "cannot specify -o with -c or -S with multiple files"
-msgstr "no se puede especificar -o con -c ó -S y con múltiples lenguajes"
+msgstr "no se puede especificar -o con -c ó -S y con múltiples ficheros"
#: gcc.c:6500
#, c-format
@@ -1254,24 +1254,24 @@ msgid "multilib exclusion '%s' is invalid"
msgstr "la exclusión multilib '%s' es inválida"
#: gcc.c:7653 gcc.c:7658
-#, fuzzy, c-format
+#, c-format
msgid "invalid version number `%s'"
-msgstr "formato de número de versión inválido"
+msgstr "número de versión `%s' inválido"
#: gcc.c:7701
-#, fuzzy, c-format
+#, c-format
msgid "too few arguments to %%:version-compare"
-msgstr "muy pocos argumentos para el procedimiento"
+msgstr "muy pocos argumentos para %%:version-compare"
#: gcc.c:7707
-#, fuzzy, c-format
+#, c-format
msgid "too many arguments to %%:version-compare"
-msgstr "demasiados argumentos para el procedimiento"
+msgstr "demasiados argumentos para %%:version-compare"
#: gcc.c:7748
#, c-format
msgid "unknown operator '%s' in %%:version-compare"
-msgstr ""
+msgstr "operador '%s' desconocido en %%:version-compare"
#: gcov.c:388
#, c-format
@@ -1602,9 +1602,8 @@ msgid "--param max-inline-insns-single limit reached"
msgstr "se alcanzó el límite de --param max-inline-insns-single"
#: ipa-inline.c:314
-#, fuzzy
msgid "--param max-inline-insns-auto limit reached"
-msgstr "se alcanzó el límite de --param max-inline-insns-single"
+msgstr "se alcanzó el límite de --param max-inline-insns-auto"
#: ipa-inline.c:340 ipa-inline.c:766
msgid "recursive inlining"
@@ -1612,7 +1611,7 @@ msgstr "inlining recursivo"
#: ipa-inline.c:779
msgid "call is unlikely"
-msgstr ""
+msgstr "la llamada es poco posible"
#: ipa-inline.c:850
msgid "--param inline-unit-growth limit reached"
@@ -1634,19 +1633,19 @@ msgstr "En la función %qs:"
#: loop-iv.c:2709 tree-ssa-loop-niter.c:1026
msgid "assuming that the loop is not infinite"
-msgstr ""
+msgstr "se asume que el ciclo no es infinito"
#: loop-iv.c:2710 tree-ssa-loop-niter.c:1027
msgid "cannot optimize possibly infinite loops"
-msgstr ""
+msgstr "no se pueden optimizar los posibles ciclos infinitos"
#: loop-iv.c:2718 tree-ssa-loop-niter.c:1031
msgid "assuming that the loop counter does not overflow"
-msgstr ""
+msgstr "se asume que el contador de ciclos no se desborda"
#: loop-iv.c:2719 tree-ssa-loop-niter.c:1032
msgid "cannot optimize loop, the loop counter may overflow"
-msgstr ""
+msgstr "no se puede optimizar el ciclo, el contador de ciclo se puede desbordar"
#. What to print when a switch has no documentation.
#: opts.c:90
@@ -2010,7 +2009,7 @@ msgstr "modoVOID en una salida"
#: reload1.c:7710
msgid "Failure trying to reload:"
-msgstr ""
+msgstr "Falla al tratar de recargar:"
#: rtl-error.c:128
msgid "unrecognizable insn:"
@@ -2046,12 +2045,12 @@ msgstr "collect: leyendo %s\n"
#: tlink.c:478
#, c-format
msgid "removing .rpo file"
-msgstr ""
+msgstr "eliminando el fichero .rpo"
#: tlink.c:480
#, c-format
msgid "renaming .rpo file"
-msgstr ""
+msgstr "renombrando el fichero .rpo"
#: tlink.c:534
#, c-format
@@ -2074,19 +2073,18 @@ msgid "unrecoverable error"
msgstr "error no recuperable"
#: toplev.c:1115
-#, fuzzy, c-format
+#, c-format
msgid ""
"%s%s%s version %s (%s)\n"
"%s\tcompiled by GNU C version %s.\n"
msgstr ""
"%s%s%s versión %s (%s)\n"
-"%s\t compilado por GNU C versión %s.\n"
-"%s%s%s versión %s (%s) compilado por CC.\n"
+"%s\tcompilado por GNU C versión %s.\n"
#: toplev.c:1117
#, c-format
msgid "%s%s%s version %s (%s) compiled by CC.\n"
-msgstr ""
+msgstr "%s%s%s versión %s (%s) compilado por CC.\n"
#: toplev.c:1121
#, c-format
@@ -2102,9 +2100,9 @@ msgid "options enabled: "
msgstr "opciones activadas: "
#: toplev.c:1331
-#, fuzzy, c-format
+#, c-format
msgid "created and used with differing settings of '%s'"
-msgstr "creado y usado con diferentes opciones de '-m%s'"
+msgstr "creado y usado con diferentes opciones de '%s'"
#: toplev.c:1333
msgid "out of memory"
@@ -2161,17 +2159,15 @@ msgstr "depuración: "
#: params.def:48
msgid "The maximum number of fields in a structure variable without direct structure accesses that GCC will attempt to track separately"
-msgstr ""
+msgstr "El número máximo de campos en una estructura variable sin accesos directos a estructura que GCC intentará seguir separadamente"
#: params.def:57
-#, fuzzy
msgid "The maximum structure size (in bytes) for which GCC will use by-element copies"
-msgstr "El tamaño máximo de la estructura (en bytes) para el cual GCC hará copias de bloques"
+msgstr "El tamaño máximo de la estructura (en bytes) para el cual GCC usará copias por elemento"
#: params.def:66
-#, fuzzy
msgid "The maximum number of structure fields for which GCC will use by-element copies"
-msgstr "El tamaño máximo de la estructura (en bytes) para el cual GCC hará copias de bloques"
+msgstr "El tamaño máximo de los campos de la estructura para el cual GCC usará copias por elemento"
#: params.def:78
msgid "The threshold ratio between instantiated fields and the total structure size"
@@ -2203,12 +2199,11 @@ msgstr "La máxima profundidad para el inlining recursivo para funciones ´que no
#: params.def:132
msgid "Inline recursively only when the probability of call being executed exceeds the parameter"
-msgstr ""
+msgstr "Hacer inline recursivamente sólo cuando la probabilidad de que la llamada se ejecute exceda el parámetro"
#: params.def:139
-#, 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 "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"
+msgstr "Si se usa -fvariable-expansion-in-unroller, el número máximo de veces que una variable individual se expandirá durante el desenrollo de ciclos"
#: params.def:150
msgid "The maximum number of instructions to consider to fill a delay slot"
@@ -2231,16 +2226,14 @@ 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:184
-#, fuzzy
msgid "The size of translation unit to be considered large"
-msgstr "El tamaño del cuerpo de la función a considerar grande"
+msgstr "El tamaño de la unidad de traducción a considerar grande"
#: params.def:188
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:192
-#, fuzzy
msgid "expense of call operation relative to ordinary arithmetic operations"
msgstr "costo de la operación de llamada relativa a operaciones aritméticas ordinarias"
@@ -2253,14 +2246,12 @@ 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:214
-#, fuzzy
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."
+msgstr "La tasa de intervalo para realizar la eliminación parcial de redundancia después de la recarga"
#: params.def:221
-#, fuzzy
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."
+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:232
msgid "The maximum number of instructions to consider to unroll in a loop"
@@ -2316,9 +2307,8 @@ msgid "A factor for tuning the upper bound that swing modulo scheduler uses for
msgstr "Un factor para ajustar el límite superior que el calendarizador de cambio de módulo utiliza para calendarizar un ciclo"
#: params.def:301
-#, fuzzy
msgid "The number of cycles the swing modulo scheduler considers when checking conflicts using DFA"
-msgstr "El número de ciclos que el calendarizador de cambio de módulo \t considera al revisar conflictos utilizando DFA"
+msgstr "El número de ciclos que el calendarizador de cambio de módulo considera al revisar conflictos utilizando DFA"
#: params.def:305
msgid "A threshold on the average loop count considered by the swing modulo scheduler"
@@ -2333,9 +2323,8 @@ msgid "Select fraction of the maximal frequency of executions of basic block in
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:330
-#, fuzzy
msgid "The maximum number of loop iterations we predict statically"
-msgstr "El número máximo de instrucciones cuando se hace inlining automáticamente"
+msgstr "El número máximo de iteraciones de ciclo que se predicen estáticamente"
#: params.def:334
msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is available"
@@ -2371,7 +2360,7 @@ msgstr "El número máximo de instrucciones coincidentes para considerar el salto
#: params.def:372
msgid "The maximum expansion factor when copying basic blocks"
-msgstr ""
+msgstr "El factor de expansión máximo al copiar bloques básicos"
# 'desfactorizar' no me gusta. ¿Alguna sugerencia? - cfuga
#: params.def:378
@@ -2383,9 +2372,8 @@ msgid "The maximum length of path considered in cse"
msgstr "La longitud máxima de la ruta considerada en cse"
#: params.def:388
-#, fuzzy
msgid "The maximum instructions CSE process before flushing"
-msgstr "El número máximo de instrucciones para el inlineador de RTL"
+msgstr "El número máximo de instrucciones que CSE procesa antes de descargar"
#: params.def:395
msgid "The minimum cost of an expensive expression in the loop invariant motion"
@@ -2409,7 +2397,7 @@ msgstr "Límite en el tamaño de expresiones usadas en el analizador escalar de ev
#: params.def:430
msgid "Bound on number of runtime checks inserted by the vectorizer's loop versioning"
-msgstr ""
+msgstr "Límite en el número de revisiones de tiempo de ejecución insertadas por las versiones de ciclo del vectorizador"
#: params.def:437
msgid "Given N calls and V call-clobbered vars in a function. Use .GLOBAL_VAR if NxV is larger than this limit"
@@ -2420,9 +2408,8 @@ msgid "The maximum memory locations recorded by cselib"
msgstr "El número máximo de ubicaciones grabadas por cselib"
#: params.def:446
-#, fuzzy
msgid "The maximum memory locations recorded by flow"
-msgstr "El número máximo de ubicaciones grabadas por cselib"
+msgstr "El número máximo de ubicaciones de memoria grabadas por flow"
#: params.def:459
msgid "Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap"
@@ -2437,9 +2424,8 @@ msgid "The maximum number of instructions to search backward when looking for eq
msgstr "El número máximo de instrucciones para buscar hacia atrás al buscar por una recarga equivalente"
#: params.def:477
-#, fuzzy
msgid "The maximum number of virtual operands allowed to represent aliases before triggering alias grouping"
-msgstr "El número máximo de operadores virtuales permitidos para representar aliases antes de disparar el agrupamiento de alias."
+msgstr "El número máximo de operandos virtuales permitidos para representar aliases antes de disparar el agrupamiento de alias"
#: params.def:482
msgid "The maximum number of blocks in a region to be considered for interblock scheduling"
@@ -2450,9 +2436,8 @@ msgid "The maximum number of insns in a region to be considered for interblock s
msgstr "El número máximo de insns en una región para ser considerada para interbloqueo"
#: params.def:492
-#, fuzzy
msgid "The minimum probability of reaching a source block for interblock speculative scheduling"
-msgstr "El número máximo de bloques en una región para ser considerada para interbloqueo"
+msgstr "La probabilidad mínima de alcanzar un bloque fuente para la calendarización especulativa entre bloques"
#: params.def:497
msgid "The maximum number of RTL nodes that can be recorded as combiner's last value"
@@ -2463,25 +2448,24 @@ msgid "The upper bound for sharing integer constants"
msgstr "El límite superior para compartir constantes enteras"
#: params.def:524
-#, fuzzy
msgid "Minimum number of virtual mappings to consider switching to full virtual renames"
-msgstr "El número máximo de instrucciones para considerar el llenado de una ranura de retraso"
+msgstr "El número mínimo de mapeos virtuales para considerar el cambio a renombrados virtuales completos"
#: params.def:529
msgid "Ratio between virtual mappings and virtual symbols to do full virtual renames"
-msgstr ""
+msgstr "Tasa entre mapeos virtuales y símbolos virtuales para hacer renombrados virtuales completos"
#: params.def:534
msgid "The lower bound for a buffer to be considered for stack smashing protection"
-msgstr ""
+msgstr "El límite inferior para considerar un almacenamiento temporal para protección contra destrucción de pila"
#: params.def:552
msgid "Maximum number of statements allowed in a block that needs to be duplicated when threading jumps"
-msgstr ""
+msgstr "Número máximo de sentencias permitidas en un bloque que necesitan ser duplicadas al hacer hilos de saltos"
#: params.def:561
msgid "Maximum number of fields in a structure before pointer analysis treats the structure as a single variable"
-msgstr ""
+msgstr "El número máximo de campos en una estructura antes de que el análisis de punteros trate a la estructura como una sola variable"
#: config/alpha/alpha.c:5084
#, c-format
@@ -2754,9 +2738,8 @@ msgid "c4x_operand_subword: address not offsettable"
msgstr "c4x_operand_subword: dirección no desplazable"
#: config/c4x/c4x.c:4101
-#, fuzzy
msgid "c4x_rptb_rpts_p: Repeat block top label moved"
-msgstr "c4x_rptb_rpts_p: Se movió la etiqueta princiapl del bloque de repetición\n"
+msgstr "c4x_rptb_rpts_p: Se movió la etiqueta principal del bloque de repetición"
#. Use `%s' to print the string in case there are any escape
#. characters in the message.
@@ -2783,14 +2766,12 @@ msgid "invalid operand for 'b' modifier"
msgstr "operando inválido para el modificador 'b'"
#: config/cris/cris.c:691
-#, fuzzy
msgid "invalid operand for 'o' modifier"
-msgstr "operando inválido para el modificador 'b'"
+msgstr "operando inválido para el modificador 'o'"
#: config/cris/cris.c:710
-#, fuzzy
msgid "invalid operand for 'O' modifier"
-msgstr "operando inválido para el modificador 'b'"
+msgstr "operando inválido para el modificador 'O'"
#: config/cris/cris.c:743
msgid "invalid operand for 'p' modifier"
@@ -2856,7 +2837,7 @@ msgstr "efectos colaterales inesperados en la dirección"
#. right?
#: config/cris/cris.c:3254
msgid "Unidentifiable call op"
-msgstr ""
+msgstr "Operador de llamada no identificable"
#: config/cris/cris.c:3305
#, c-format
@@ -2910,18 +2891,15 @@ msgid "fr30_print_operand: unhandled MEM"
msgstr "fr30_print_operand: MEM sin manejar"
#: config/frv/frv.c:2541
-#, fuzzy
msgid "bad insn to frv_print_operand_address:"
msgstr "insn errónea para frv_print_operand_address:"
#: config/frv/frv.c:2552
-#, fuzzy
msgid "bad register to frv_print_operand_memory_reference_reg:"
-msgstr "Registro erróneo para frv_print_operand_memory_reference_reg:"
+msgstr "registro erróneo para frv_print_operand_memory_reference_reg:"
#: config/frv/frv.c:2591 config/frv/frv.c:2601 config/frv/frv.c:2610
#: config/frv/frv.c:2631 config/frv/frv.c:2636
-#, fuzzy
msgid "bad insn to frv_print_operand_memory_reference:"
msgstr "insn erróneo para frv_print_operand_memory_reference:"
@@ -2931,57 +2909,46 @@ msgid "bad condition code"
msgstr "código de condición erróneo"
#: config/frv/frv.c:2797
-#, fuzzy
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:2858
-#, fuzzy
msgid "bad insn to frv_print_operand, 'e' modifier:"
msgstr "insn erróneo para frv_print_operand, modificador 'e':"
#: config/frv/frv.c:2866
-#, fuzzy
msgid "bad insn to frv_print_operand, 'F' modifier:"
msgstr "insn erróneo para frv_print_operand, modificador 'F':"
#: config/frv/frv.c:2882
-#, fuzzy
msgid "bad insn to frv_print_operand, 'f' modifier:"
msgstr "insn erróneo para frv_print_operand, modificador 'f':"
#: config/frv/frv.c:2896
-#, fuzzy
msgid "bad insn to frv_print_operand, 'g' modifier:"
msgstr "insn erróneo para frv_print_operand, modificador 'g':"
#: config/frv/frv.c:2944
-#, fuzzy
msgid "bad insn to frv_print_operand, 'L' modifier:"
msgstr "insn erróneo para frv_print_operand, modificador 'L':"
#: config/frv/frv.c:2957
-#, fuzzy
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:2978
-#, fuzzy
msgid "bad insn to frv_print_operand, 'O' modifier:"
msgstr "insn erróneo para frv_print_operand, modificador 'O':"
#: config/frv/frv.c:2996
-#, fuzzy
msgid "bad insn to frv_print_operand, P modifier:"
msgstr "insn erróneo para frv_print_operand, modificador 'P':"
#: config/frv/frv.c:3016
-#, fuzzy
msgid "bad insn in frv_print_operand, z case"
msgstr "insn erróneo en frv_print_operand, caso z"
#: config/frv/frv.c:3047
-#, fuzzy
msgid "bad insn in frv_print_operand, 0 case"
msgstr "insn erróneo en frv_print_operand, caso 0"
@@ -2990,19 +2957,16 @@ msgid "frv_print_operand: unknown code"
msgstr "frv_print_operand: código desconocido"
#: config/frv/frv.c:4421
-#, fuzzy
msgid "bad output_move_single operand"
-msgstr "Operando output_move_single erróneo"
+msgstr "operando output_move_single erróneo"
#: config/frv/frv.c:4548
-#, fuzzy
msgid "bad output_move_double operand"
-msgstr "Operando output_move_double erróneo"
+msgstr "operando output_move_double erróneo"
#: config/frv/frv.c:4690
-#, fuzzy
msgid "bad output_condmove_single operand"
-msgstr "Operando output_condmove_single erróneo"
+msgstr "operando output_condmove_single erróneo"
#. This macro is a C statement to print on `stderr' a string describing the
#. particular machine description choice. Every machine description should
@@ -3065,19 +3029,16 @@ msgid "ia64_print_operand: unknown code"
msgstr "ia64_print_operand: código desconocido"
#: config/ia64/ia64.c:9013
-#, fuzzy
msgid "invalid conversion from %<__fpreg%>"
-msgstr "conversión inválida de %qT a %qT"
+msgstr "conversión inválida de %<__fpreg%>"
#: config/ia64/ia64.c:9016
-#, fuzzy
msgid "invalid conversion to %<__fpreg%>"
-msgstr "conversión inválida del tipo %qT a partir del tipo %qT"
+msgstr "conversión inválida a %<__fpreg%>"
#: config/ia64/ia64.c:9029 config/ia64/ia64.c:9040
-#, fuzzy
msgid "invalid operation on %<__fpreg%>"
-msgstr "operación inválida en la matriz de chars"
+msgstr "operación inválida en %<__fpreg%>"
#: config/iq2000/iq2000.c:3125
#, c-format
@@ -3208,9 +3169,9 @@ msgid "invalid %%Y value"
msgstr "valor %%Y inválido"
#: config/mips/mips.c:5488 config/mips/mips.c:5496
-#, fuzzy, c-format
+#, c-format
msgid "PRINT_OPERAND, invalid insn for %%q"
-msgstr "PRINT_OPERAND, insn inválido para %%W"
+msgstr "PRINT_OPERAND, insn inválido para %%q"
#: config/mips/mips.c:5565
msgid "PRINT_OPERAND, invalid operand for relocation"
@@ -3259,17 +3220,15 @@ msgstr "MMIX Interno: Esto no es una constante:"
#: config/mt/mt.c:298
msgid "mt_final_prescan_insn, invalid insn #1"
-msgstr ""
+msgstr "mt_final_prescan_insn, insn #1 inválido"
#: config/mt/mt.c:369
-#, fuzzy
msgid "PRINT_OPERAND_ADDRESS, 2 regs"
-msgstr "PRINT_OPERAND_ADDRESS, puntero nulo"
+msgstr "PRINT_OPERAND_ADDRESS, 2 registros"
#: config/mt/mt.c:393
-#, fuzzy
msgid "PRINT_OPERAND_ADDRESS, invalid insn #1"
-msgstr "PRINT_OPERAND_ADDRESS, puntero nulo"
+msgstr "PRINT_OPERAND_ADDRESS, insn #1 inválido"
#: config/rs6000/host-darwin.c:87
#, c-format
@@ -3347,43 +3306,39 @@ msgid "invalid %%v value"
msgstr "valor %%v inválido"
#: config/rs6000/rs6000.c:19104
-#, fuzzy
msgid "AltiVec argument passed to unprototyped function"
-msgstr "muy pocos argumentos para la función"
+msgstr "Se pasó un argumento Altivec a una función sin prototipo"
#: config/s390/s390.c:4488
-#, fuzzy, c-format
+#, c-format
msgid "cannot decompose address"
-msgstr "No se puede descomponer la dirección."
+msgstr "no se puede descomponer la dirección"
#: config/s390/s390.c:4698
msgid "UNKNOWN in print_operand !?"
msgstr "UNKNOWN en print_operand !?"
#: config/sh/sh.c:746
-#, fuzzy, c-format
+#, c-format
msgid "invalid operand to %%R"
-msgstr "operando inválido para el código %%R"
+msgstr "operando inválido para %%R"
#: config/sh/sh.c:773
-#, fuzzy, c-format
+#, c-format
msgid "invalid operand to %%S"
-msgstr "operando inválido para el código %%N"
+msgstr "operando inválido para %%S"
#: config/sh/sh.c:7679
-#, fuzzy
msgid "created and used with different architectures / ABIs"
-msgstr "creado y usado con diferentes opciones de -fpie"
+msgstr "creado y usado con diferentes arquitecturas / ABIs"
#: config/sh/sh.c:7681
-#, fuzzy
msgid "created and used with different ABIs"
-msgstr "creado y usado con diferentes opciones de -fpic"
+msgstr "creado y usado con diferentes ABIs"
#: config/sh/sh.c:7683
-#, fuzzy
msgid "created and used with different endianness"
-msgstr "creado y usado con diferentes opciones de -fpie"
+msgstr "creado y usado con diferente orden de bits"
#: config/sparc/sparc.c:6626 config/sparc/sparc.c:6632
#, c-format
@@ -3522,14 +3477,12 @@ msgid "candidate 2:"
msgstr "candidato 2:"
#: cp/decl2.c:695
-#, fuzzy
msgid "candidates are: %+#D"
-msgstr "los candidatos son:"
+msgstr "los candidatos son: %+#D"
#: cp/decl2.c:697
-#, fuzzy
msgid "candidate is: %+#D"
-msgstr "candidato 2:"
+msgstr "el candidato es: %+#D"
#: cp/g++spec.c:238 java/jvspec.c:417
#, c-format
@@ -3538,990 +3491,988 @@ msgstr "falta el argumento para '%s'\n"
#: fortran/arith.c:141
msgid "Arithmetic OK at %L"
-msgstr ""
+msgstr "OK aritmético en %L"
-# wraps around? No entiendo bien. cfuga
#: fortran/arith.c:144
-#, fuzzy
msgid "Arithmetic overflow at %L"
-msgstr "Asume que el desbordamiento aritmético con signo se envuelve"
+msgstr "Desbordamiento aritmético en %L"
#: fortran/arith.c:147
msgid "Arithmetic underflow at %L"
-msgstr ""
+msgstr "Desbordamiento aritmético por debajo en %L"
#: fortran/arith.c:150
msgid "Arithmetic NaN at %L"
-msgstr ""
+msgstr "NaN aritmético en %L"
#: fortran/arith.c:153
-#, fuzzy
msgid "Division by zero at %L"
-msgstr "división por cero"
+msgstr "División por cero en %L"
#: fortran/arith.c:156
msgid "Array operands are incommensurate at %L"
-msgstr ""
+msgstr "Los operandos de matriz son inconmesurables en %L"
#: fortran/arith.c:160
msgid "Integer outside symmetric range implied by Standard Fortran at %L"
-msgstr ""
+msgstr "Rango simétrico fuera de entero implicado por Standard Fortran en %L"
#: fortran/arith.c:1384
-#, fuzzy
msgid "Elemental binary operation"
-msgstr "falta un operador binario"
+msgstr "Operador binaria elemental"
#: fortran/arith.c:1920
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Arithmetic OK converting %s to %s at %L"
-msgstr "no se puede convertir %s a %s"
+msgstr "Se convierte el OK aritmético %s a %s en %L"
#: fortran/arith.c:1924
#, no-c-format
msgid "Arithmetic overflow converting %s to %s at %L"
-msgstr ""
+msgstr "Se convierte el desborde aritmético %s a %s en %L"
#: fortran/arith.c:1928
#, no-c-format
msgid "Arithmetic underflow converting %s to %s at %L"
-msgstr ""
+msgstr "Se convierte el desborde aritmético por debajo %s a %s en %L"
#: fortran/arith.c:1932
#, no-c-format
msgid "Arithmetic NaN converting %s to %s at %L"
-msgstr ""
+msgstr "Se convierte el NaN aritmético %s a %s en %L"
#: fortran/arith.c:1936
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Division by zero converting %s to %s at %L"
-msgstr "división por cero en %<%E / 0%>"
+msgstr "Se convierte la división por cero %s a %s en %L"
#: fortran/arith.c:1940
#, no-c-format
msgid "Array operands are incommensurate converting %s to %s at %L"
-msgstr ""
+msgstr "Se convierten los operandos de matriz son inconmesurables %s a %s en %L"
#: fortran/arith.c:1944
#, no-c-format
msgid "Integer outside symmetric range implied by Standard Fortran converting %s to %s at %L"
-msgstr ""
+msgstr "Se convierte el rango simétrico fuera de entero implicado por Standar Fortran %s a %s en %L"
#: fortran/arith.c:2277 fortran/arith.c:2312 fortran/arith.c:2349
#: fortran/arith.c:2399
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The Hollerith constant at %L is too long to convert to %s"
-msgstr "La constante de carácter en %0 no tiene el apóstrofe que cierra en %1"
+msgstr "La constante Holletith en %l es demasiado grande para convertirse a %s"
#: fortran/arith.c:2445
#, no-c-format
msgid "Enumerator exceeds the C integer type at %C"
-msgstr ""
+msgstr "El enumerador excede el tipo entero de C en %C"
#: fortran/array.c:97
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected array subscript at %C"
-msgstr "el subíndice de la matriz es de tipo %<char%>"
+msgstr "Se esperaba un subíndice de matriz en %C"
#: fortran/array.c:124
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected array subscript stride at %C"
-msgstr "el subíndice de la matriz es de tipo %<char%>"
+msgstr "Se esperaba un gran tranco de subíndice de matriz en %C"
#: fortran/array.c:167
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid form of array reference at %C"
-msgstr "Forma inválida para la declaración %A en %0"
+msgstr "Forma inválida de referencia a matriz en %C"
#: fortran/array.c:172
#, no-c-format
msgid "Array reference at %C cannot have more than %d dimensions"
-msgstr ""
+msgstr "La referencia a matriz en %C no puede tener más de %d dimensiones"
#: fortran/array.c:224
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Variable '%s' at %L in this context must be constant"
-msgstr "la expresión de repetición debe ser constante"
+msgstr "La variable '%s' en %L en este contexto debe ser constante"
#: fortran/array.c:300
#, no-c-format
msgid "Expected expression in array specification at %C"
-msgstr ""
+msgstr "Se esperaba una expresión en la especificación de matriz en %C"
#: fortran/array.c:379
#, no-c-format
msgid "Bad array specification for an explicitly shaped array at %C"
-msgstr ""
+msgstr "Especificación de matriz errónea para una matriz formada explícitamente en %C"
#: fortran/array.c:390
#, no-c-format
msgid "Bad array specification for assumed shape array at %C"
-msgstr ""
+msgstr "Especificación de matriz errónea para una matriz de forma asumida en %C"
#: fortran/array.c:403
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Bad specification for deferred shape array at %C"
-msgstr "No hay especificación para el iterador del DO implícito `%A' en %0"
+msgstr "Especificación de matriz errónea para una matriz de forma diferida en %C"
#: fortran/array.c:407
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Bad specification for assumed size array at %C"
-msgstr "No hay especificación para el iterador del DO implícito `%A' en %0"
+msgstr "Especificación errónea para el tamaño de matriz asumido en %C"
#: fortran/array.c:416
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected another dimension in array declaration at %C"
-msgstr "No se puede especificar la dimensión de una matriz en una declaración"
+msgstr "Se esperaba otra dimensión en la declaración de matriz %C"
#: fortran/array.c:422
#, no-c-format
msgid "Array specification at %C has more than %d dimensions"
-msgstr ""
+msgstr "La especificación de matriz en %C tiene más de %d dimensiones"
#: fortran/array.c:627
-#, fuzzy, no-c-format
+#, no-c-format
msgid "duplicated initializer"
-msgstr "inicializador inválido"
+msgstr "inicializador duplicado"
#: fortran/array.c:720
#, no-c-format
msgid "DO-iterator '%s' at %L is inside iterator of the same name"
-msgstr ""
+msgstr "El iterador-DO '%s' en %L está dentro de un iterador del mismo nombre"
#: fortran/array.c:822 fortran/array.c:931
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Syntax error in array constructor at %C"
-msgstr "error sintáctico en la acción"
+msgstr "Error sintáctico en el constructor de matriz en %C"
#: fortran/array.c:877
#, no-c-format
msgid "New in Fortran 2003: [...] style array constructors at %C"
-msgstr ""
+msgstr "Nuevo en Fortran 2003: constructores de matriz de estilo [...] en %C"
#: fortran/array.c:891
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Empty array constructor at %C is not allowed"
-msgstr "No se permiten las instrucciones min/max"
+msgstr "No se permite un constructor de matriz vacío en %C"
#: fortran/array.c:976
#, no-c-format
msgid "Element in %s array constructor at %L is %s"
-msgstr ""
+msgstr "El elemento en el constructor de matriz %s en %L es %s"
#: fortran/array.c:1305
#, no-c-format
msgid "Iterator step at %L cannot be zero"
-msgstr ""
+msgstr "El paso de iterador en %L no puede ser cero"
#: fortran/check.c:44
-#, fuzzy, no-c-format
+#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be %s"
-msgstr "Muy pocos argumentos para el intrínseco `%A' en %0"
+msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser %s"
#: fortran/check.c:60
-#, fuzzy, no-c-format
+#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be a numeric type"
-msgstr "el argumento para `%s' debe ser de tipo entero"
+msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser un tipo numérico"
#: fortran/check.c:75 fortran/check.c:661 fortran/check.c:671
#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be INTEGER or REAL"
-msgstr ""
+msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser INTEGER o REAL"
#: fortran/check.c:92
#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be REAL or COMPLEX"
-msgstr ""
+msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser REAL o COMPLEX"
#: fortran/check.c:118
-#, fuzzy, no-c-format
+#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be a constant"
-msgstr "el argumento 1 de __builtin_spe_predicate debe ser una constante"
+msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser una constante"
#: fortran/check.c:126
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid kind for %s at %L"
-msgstr "Afinidad inválida %0 para el tipo en %1"
+msgstr "Afinidad inválida para %s en %L"
#: fortran/check.c:146
#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be double precision"
-msgstr ""
+msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser de doble precisión"
#: fortran/check.c:163
#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be a logical array"
-msgstr ""
+msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser una matriz lógica"
#: fortran/check.c:180
-#, fuzzy, no-c-format
+#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be an array"
-msgstr "el argumento 1 de __builtin_spe_predicate debe ser una constante"
+msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser una matriz"
#: fortran/check.c:195
-#, fuzzy, no-c-format
+#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be a scalar"
-msgstr "el argumento 1 de __builtin_spe_predicate debe ser una constante"
+msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser un escalar"
#: fortran/check.c:210
#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be the same type and kind as '%s'"
-msgstr ""
+msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser del mismo tipo y afinidad que '%s'"
#: fortran/check.c:225
-#, fuzzy, no-c-format
+#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be of rank %d"
-msgstr "el primer argumento de `%s' debe ser un modo"
+msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser del rango %d"
#: fortran/check.c:239
#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must not be OPTIONAL"
-msgstr ""
+msgstr "El argumento '%s' del intrínseco '%s' en %L no debe ser OPTIONAL"
#: fortran/check.c:259
-#, fuzzy, no-c-format
+#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be of kind %d"
-msgstr "el argumento para `%s' debe ser de tipo entero"
+msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser de la afinidad %d"
#: fortran/check.c:280
#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L cannot be INTENT(IN)"
-msgstr ""
+msgstr "El argumento '%s' del intrínseco '%s' en %L no puede ser INTENT(IN)"
#: fortran/check.c:286
-#, fuzzy, no-c-format
+#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be a variable"
-msgstr "el primer argumento de `%s' debe ser un modo"
+msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser una variable"
#: fortran/check.c:311
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Missing DIM parameter in intrinsic '%s' at %L"
-msgstr "Intrínseco sin implementar `%A' en %0"
+msgstr "Falta el parámetro DIM en el intrínseco '%s' en %L"
#: fortran/check.c:348
#, no-c-format
msgid "'dim' argument of '%s' intrinsic at %L is not a valid dimension index"
-msgstr ""
+msgstr "el argumento 'dim' del intrínseco '%s' en %L no es un índice de dimensión válido"
#: fortran/check.c:433
#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be ALLOCATABLE"
-msgstr ""
+msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser ALLOCATABLE"
#: fortran/check.c:454 fortran/check.c:3108
#, no-c-format
msgid "'%s' and '%s' arguments of '%s' intrinsic at %L must have the same type"
-msgstr ""
+msgstr "Los argumentos '%s' y '%s' del intrínseco '%s' en %L deben tener el mismo tipo"
#: fortran/check.c:463 fortran/check.c:941 fortran/check.c:1076
#: fortran/check.c:1139 fortran/check.c:1364
#, no-c-format
msgid "Extension: Different type kinds at %L"
-msgstr ""
+msgstr "Extensión: Diferentes tipos de afinidades en %L"
#: fortran/check.c:488 fortran/check.c:1661
#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be a POINTER"
-msgstr ""
+msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser un POINTER"
#: fortran/check.c:500
#, no-c-format
msgid "NULL pointer at %L is not permitted as actual argument of '%s' intrinsic function"
-msgstr ""
+msgstr "No se permite un puntero NULL en %L como un argumento de la función intrínseca '%s'"
#: fortran/check.c:515
#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be a POINTER or a TARGET"
-msgstr ""
+msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser un POINTER o un TARGET"
#: fortran/check.c:531
#, no-c-format
msgid "Array section with a vector subscript at %L shall not be the target of a pointer"
-msgstr ""
+msgstr "Una sección de matriz con un subíndice vector en %L no debe ser el objetivo de un puntero"
#: fortran/check.c:641 fortran/check.c:743
#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must not be present if 'x' is COMPLEX"
-msgstr ""
+msgstr "El argumento '%s' del intrínseco '%s' en %L no debe estar presente si 'x' es COMPLEX"
#: fortran/check.c:792 fortran/check.c:1444 fortran/check.c:1452
#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be numeric or LOGICAL"
-msgstr ""
+msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser numérico o LOGICAL"
#: fortran/check.c:1046
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Argument of %s at %L must be of length one"
-msgstr "el argumento %d de %s debe ser una ubicación"
+msgstr "El argumento %s en %L debe ser de longitud uno"
#: fortran/check.c:1098
#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be the same kind as '%s'"
-msgstr ""
+msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser de la misma afinidad que '%s'"
#: fortran/check.c:1213
-#, fuzzy, no-c-format
+#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be a non-derived type"
-msgstr "el argumento para `%s' debe ser de tipo entero"
+msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser de un tipo no derivado"
#: fortran/check.c:1336
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Intrinsic '%s' at %L must have at least two arguments"
-msgstr "%qD debe tomar dos argumentos exactamente"
+msgstr "El intrínseco '%s' en %L debe tener al menos dos argumentos"
#: fortran/check.c:1370
#, no-c-format
msgid "'a%d' argument of '%s' intrinsic at %L must be %s(%d)"
-msgstr ""
+msgstr "El argumento 'a%s' del intrínseco '%s' en %L debe ser %s(%d)"
#: fortran/check.c:1395
#, no-c-format
msgid "'a1' argument of '%s' intrinsic at %L must be INTEGER or REAL"
-msgstr ""
+msgstr "El argumento 'a1' del intrínseco '%s' en %L debe ser INTEGER o REAL"
#: fortran/check.c:1473
#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be of rank 1 or 2"
-msgstr ""
+msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser de rango 1 o 2"
#: fortran/check.c:1682
#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be conformable with '%s' argument"
-msgstr ""
+msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser conformable con el argumento '%s'"
#: fortran/check.c:1709
#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be of type REAL or COMPLEX"
-msgstr ""
+msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser de tipo REAL o COMPLEX"
#: fortran/check.c:1730
#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be of a dummy variable"
-msgstr ""
+msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser de una variable de prueba"
#: fortran/check.c:1738
#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be of an OPTIONAL dummy variable"
-msgstr ""
+msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser de una variable de prueba OPTIONAL"
#: fortran/check.c:1854
#, no-c-format
msgid "'shape' argument of 'reshape' intrinsic at %L must be an array of constant size"
-msgstr ""
+msgstr "El argumento 'shape' del intrínseco 'reshape' en %L debe ser una matriz de tamaño constante"
#: fortran/check.c:1864
#, no-c-format
msgid "'shape' argument of 'reshape' intrinsic at %L has more than %d elements"
-msgstr ""
+msgstr "El argumento 'shape' del intrínseco 'reshape' en %L tiene más de %d elementos"
#: fortran/check.c:1952
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Missing arguments to %s intrinsic at %L"
-msgstr "faltan argumentos para la opción '%s'"
+msgstr "Faltan argumentos para el intrínseco %s en %L"
#: fortran/check.c:1993
#, no-c-format
msgid "'source' argument of 'shape' intrinsic at %L must not be an assumed size array"
-msgstr ""
+msgstr "El argumento 'source' del intrínseco 'shape' en %L no debe ser un tamaño de matriz asumido"
#: fortran/check.c:2055
-#, fuzzy, no-c-format
+#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be less than rank %d"
-msgstr "el argumento para el atributo %qs es más grande que %d"
+msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser menor que el rango %d"
#: fortran/check.c:2512 fortran/check.c:2532
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Too many arguments to %s at %L"
-msgstr "demasiados argumentos para %s %q+#D"
+msgstr "Demasiados argumentos para %s en %L"
#: fortran/check.c:2660 fortran/check.c:3022 fortran/check.c:3046
#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be INTEGER or PROCEDURE"
-msgstr ""
+msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser INTEGER o PROCEDURE"
#: fortran/check.c:3093 fortran/check.c:3101
#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be INTEGER or LOGICAL"
-msgstr ""
+msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser INTEGER o LOGICAL"
#: fortran/data.c:63
-#, fuzzy, no-c-format
+#, no-c-format
msgid "non-constant array in DATA statement %L."
-msgstr "índice de matriz no constante en el inicializador"
+msgstr "matriz no constante en la declaración DATA %L."
#: fortran/data.c:327
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Extension: re-initialization of '%s' at %L"
-msgstr "no se permite la inicialización para `%s'"
+msgstr "Extensión: reinicialización de '%s' en %L"
#: fortran/decl.c:208
#, no-c-format
msgid "Host associated variable '%s' may not be in the DATA statement at %C."
-msgstr ""
+msgstr "La variable asociada al anfitrión '%s' no debe estar en la declaración DATA en %C."
#: fortran/decl.c:215
#, no-c-format
msgid "Extension: initialization of common block variable '%s' in DATA statement at %C"
-msgstr ""
+msgstr "Extensión: inicialización de la variable de bloque común '%s' en la declaración DATA en %C"
#: fortran/decl.c:301
#, no-c-format
msgid "Symbol '%s' must be a PARAMETER in DATA statement at %C"
-msgstr ""
+msgstr "El símbolo '%s' debe ser un PARAMETER en la declaración DATA en %C"
#: fortran/decl.c:408
#, no-c-format
msgid "Initialization at %C is not allowed in a PURE procedure"
-msgstr ""
+msgstr "No se permite la inicialización de %C en un procedimiento PURE"
#: fortran/decl.c:455
#, no-c-format
msgid "DATA statement at %C is not allowed in a PURE procedure"
-msgstr ""
+msgstr "No se permite la declaración DATA en %C en un procedimiento PURE"
#: fortran/decl.c:483
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Bad INTENT specification at %C"
-msgstr "Especificación de rango en %0 inválida"
+msgstr "Especificación INTENT errónea en %C"
#: fortran/decl.c:548
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Syntax error in character length specification at %C"
-msgstr "error de decodificación en la especificación del método"
+msgstr "Error sintáctico en la especificación de longitud de carácter en %C"
#: fortran/decl.c:623
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Procedure '%s' at %C is already defined at %L"
-msgstr "%s %qs ya está definido en %s:%d"
+msgstr "El procedimiento '%s' en %C ya se había definido en %L"
#: fortran/decl.c:633
#, no-c-format
msgid "Procedure '%s' at %C has an explicit interface and must not have attributes declared at %L"
-msgstr ""
+msgstr "El procedimiento '%s' en %C tiene una interfaz explícita y no debe tener atributos declarados en %L"
#: fortran/decl.c:805
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Initializer not allowed for PARAMETER '%s' at %C"
-msgstr "no se permite la inicialización para `%s'"
+msgstr "No se permite un inicializador para el PARAMETER '%s' en %C"
#: fortran/decl.c:814
#, no-c-format
msgid "Initializer not allowed for COMMON variable '%s' at %C"
-msgstr ""
+msgstr "No se permite un inicializador para la variable COMMON '%s' en %C"
#: fortran/decl.c:824
-#, fuzzy, no-c-format
+#, no-c-format
msgid "PARAMETER at %L is missing an initializer"
-msgstr "falta el inicializador"
+msgstr "Falta un inicializador para un PARAMETER en %L"
#: fortran/decl.c:835
#, no-c-format
msgid "Variable '%s' at %C with an initializer already appears in a DATA statement"
-msgstr ""
+msgstr "La variable '%s' en %C con un inicializador ya aparecía en una declaración DATA"
#: fortran/decl.c:913
#, no-c-format
msgid "Component at %C must have the POINTER attribute"
-msgstr ""
+msgstr "Un componente en %C debe tener el atributo POINTER"
#: fortran/decl.c:922
#, no-c-format
msgid "Array component of structure at %C must have explicit or deferred shape"
-msgstr ""
+msgstr "El componente de matriz de una estructura en %C debe tener una forma explícita o diferida"
#: fortran/decl.c:951
#, no-c-format
msgid "Pointer array component of structure at %C must have a deferred shape"
-msgstr ""
+msgstr "El componente de matriz de puntero de una estructura en %C debe tener una forma diferida"
#: fortran/decl.c:961
#, no-c-format
msgid "Array component of structure at %C must have an explicit shape"
-msgstr ""
+msgstr "El componente de matriz de una estructura en %C debe tener una forma explícita"
#: fortran/decl.c:987
#, no-c-format
msgid "NULL() initialization at %C is ambiguous"
-msgstr ""
+msgstr "La inicialización NULL() en %C es ambigua"
#: fortran/decl.c:1054
#, no-c-format
msgid "Enumerator cannot be array at %C"
-msgstr ""
+msgstr "Un enumerador no puede ser matriz en %C"
#: fortran/decl.c:1115 fortran/decl.c:3374
#, no-c-format
msgid "Duplicate array spec for Cray pointee at %C."
-msgstr ""
+msgstr "Especificación de matriz duplicada para puntero Cray en %C."
#: fortran/decl.c:1167
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Function name '%s' not allowed at %C"
-msgstr "%Jno se permite un atributo de sección para %qD"
+msgstr "No se permite el nombre de función '%s' en %C"
#: fortran/decl.c:1183
#, no-c-format
msgid "Extension: Old-style initialization at %C"
-msgstr ""
+msgstr "Extensión: Inicialización de estilo antiguo en %C"
#: fortran/decl.c:1199
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Initialization at %C isn't for a pointer variable"
-msgstr "la inicialización crea un entero desde un puntero sin una conversión"
+msgstr "La inicialización en %C no es para una variable puntero"
#: fortran/decl.c:1207
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Pointer initialization requires a NULL() at %C"
-msgstr "(cerca de la inicialización de %qs)"
+msgstr "La inicialización de puntero requiere un NULL() en %C"
#: fortran/decl.c:1214
#, no-c-format
msgid "Initialization of pointer at %C is not allowed in a PURE procedure"
-msgstr ""
+msgstr "No se permite la inicialización de un puntero en %C en un procedimiento PURE"
#: fortran/decl.c:1228
#, no-c-format
msgid "Pointer initialization at %C requires '=>', not '='"
-msgstr ""
+msgstr "La inicialización de un puntero en %C requiere '=>', no '='"
#: fortran/decl.c:1236
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected an initialization expression at %C"
-msgstr "inicialización de la expresión new con `='"
+msgstr "Se esperaba una expresión de inicialización en %C"
#: fortran/decl.c:1243
#, no-c-format
msgid "Initialization of variable at %C is not allowed in a PURE procedure"
-msgstr ""
+msgstr "No se permite la inicialización de una variable en %C en un procedimiento PURE"
#: fortran/decl.c:1265
#, no-c-format
msgid "ENUMERATOR %L not initialized with integer expression"
-msgstr ""
+msgstr "El ENUMERATOR %L no se inicializó con una expresión entera"
#: fortran/decl.c:1324 fortran/decl.c:1333
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Old-style type declaration %s*%d not supported at %C"
-msgstr "%Jla declaración débil de %qD no tiene soporte"
+msgstr "La declaración de tipo de estilo antiguo %s*%d no tiene soporte en %C"
#: fortran/decl.c:1338
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Nonstandard type declaration %s*%d at %C"
-msgstr "Atributo de declaración de tipo inválido en %0"
+msgstr "Declaración de tipo %s*%d no estándar en %C"
#: fortran/decl.c:1372
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected initialization expression at %C"
-msgstr "inicialización de la expresión new con `='"
+msgstr "Se esperaba una expresión de inicialización en %C"
#: fortran/decl.c:1378
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected scalar initialization expression at %C"
-msgstr "inicialización de la expresión new con `='"
+msgstr "Se esperaba una expresión de inicialización escalar en %C"
#: fortran/decl.c:1396
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Kind %d not supported for type %s at %C"
-msgstr "el modo de redondeo no tiene soporte para floats de VAX"
+msgstr "La afinidad %d no tiene soporte para el tipo %s en %C"
#: fortran/decl.c:1405
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Missing right paren at %C"
-msgstr "faltan argumentos para \"%s\""
+msgstr "Faltan el paréntesis derecho en %C"
#: fortran/decl.c:1494 fortran/decl.c:1537
#, no-c-format
msgid "Kind %d is not a CHARACTER kind at %C"
-msgstr ""
+msgstr "La afinidad %d no es una afinidad CHARACTER en %C"
#: fortran/decl.c:1531
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Syntax error in CHARACTER declaration at %C"
-msgstr "error sintáctico en la lista de excepción"
+msgstr "Error sintáctico en la declaración CHARACTER en %C"
#: fortran/decl.c:1592
#, no-c-format
msgid "Extension: BYTE type at %C"
-msgstr ""
+msgstr "Extensión: tipo BYTE en %C"
#: fortran/decl.c:1598
#, no-c-format
msgid "BYTE type used at %C is not available on the target machine"
-msgstr ""
+msgstr "El tipo BYTE usado en %C no está disponible en la máquina objetivo"
#: fortran/decl.c:1647
-#, fuzzy, no-c-format
+#, no-c-format
msgid "DOUBLE COMPLEX at %C does not conform to the Fortran 95 standard"
-msgstr "Conforme al estándard ISO Fortran 95"
+msgstr "DOUBLE COMPLEX en %C no conforma con el estándar ISO Fortran 95"
#: fortran/decl.c:1670
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Type name '%s' at %C is ambiguous"
-msgstr "la referencia a %qD es ambigua"
+msgstr "El nombre de tipo '%s' en %C es ambiguo"
#: fortran/decl.c:1736
#, no-c-format
msgid "Missing character range in IMPLICIT at %C"
-msgstr ""
+msgstr "Falta el rango de carácter en IMPLICIT en %C"
#: fortran/decl.c:1782
#, no-c-format
msgid "Letters must be in alphabetic order in IMPLICIT statement at %C"
-msgstr ""
+msgstr "Las letras debe estar en orden alfabético en la declaración IMPLICIT en %C"
#: fortran/decl.c:1836
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Empty IMPLICIT statement at %C"
-msgstr "Declaración VXT sin soporte en %0"
+msgstr "Declaración IMPLICIT vacía en %C"
#: fortran/decl.c:2000
#, no-c-format
msgid "Enumerator cannot have attributes %C"
-msgstr ""
+msgstr "El enumerador no puede tener atributos %C"
#: fortran/decl.c:2013
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Missing dimension specification at %C"
-msgstr "Falta el especificador %A en la declaración en %0"
+msgstr "Falta la especificación de dimensión en %C"
#: fortran/decl.c:2095
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Duplicate %s attribute at %L"
-msgstr "Declaración %s %qs duplicada"
+msgstr "Atributo %s duplicado en %L"
#: fortran/decl.c:2112
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Attribute at %L is not allowed in a TYPE definition"
-msgstr "no se permiten atributos en una definición de función"
+msgstr "No se permite el atributo %L en una definición TYPE"
#: fortran/decl.c:2126
-#, fuzzy, no-c-format
+#, no-c-format
msgid "%s attribute at %L is not allowed outside of a MODULE"
-msgstr "no se permite %s fuera de un PROC"
+msgstr "No se permite el atributo %s en %L fuera de un MODULE"
#. Now we have an error, which we signal, and then fix up
#. because the knock-on is plain and simple confusing.
#: fortran/decl.c:2264
#, no-c-format
msgid "Derived type at %C has not been previously defined and so cannot appear in a derived type definition."
-msgstr ""
+msgstr "El tipo derivado en %C no se definió previamente, por lo cual no puede aparecer en una definición de tipo derivada."
#: fortran/decl.c:2294
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Syntax error in data declaration at %C"
-msgstr "error sintáctico en la acción"
+msgstr "Error sintáctico en la declaración de datos en %C"
#: fortran/decl.c:2440
#, no-c-format
msgid "Name '%s' at %C is the name of the procedure"
-msgstr ""
+msgstr "El nombre '%s' en %C es el nombre del procedimiento"
#: fortran/decl.c:2452
#, no-c-format
msgid "Unexpected junk in formal argument list at %C"
-msgstr ""
+msgstr "Basura inesperada en la lista de argumentos formales en %C"
#: fortran/decl.c:2470
#, no-c-format
msgid "Duplicate symbol '%s' in formal argument list at %C"
-msgstr ""
+msgstr "Símbolo '%s' duplicado en la lista de argumentos formales en %C"
#: fortran/decl.c:2513
#, no-c-format
msgid "Unexpected junk following RESULT variable at %C"
-msgstr ""
+msgstr "Basura inesperada a continuación de la variable RESULT en %C"
#: fortran/decl.c:2520
#, no-c-format
msgid "RESULT variable at %C must be different than function name"
-msgstr ""
+msgstr "La variable RESULT en %C debe ser diferente que el nombre de la función"
#: fortran/decl.c:2575
#, no-c-format
msgid "Expected formal argument list in function definition at %C"
-msgstr ""
+msgstr "Se esperaba una lista de argumentos formales en la definición de la función en %C"
#: fortran/decl.c:2586
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Unexpected junk after function declaration at %C"
-msgstr "causa conflicto con la declaración de la función %q#D"
+msgstr "Basura inesperada después de la declaración de la función en %C"
#: fortran/decl.c:2607
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Function '%s' at %C already has a type of %s"
-msgstr "Los inicios de las funciones son alineados a esta potencia de 2"
+msgstr "La función '%s' en %C ya tiene un tipo de %s"
#: fortran/decl.c:2678
#, no-c-format
msgid "ENTRY statement at %C cannot appear within a PROGRAM"
-msgstr ""
+msgstr "La declaración ENTRY en %C no puede aparecer dentro de un PROGRAM"
#: fortran/decl.c:2681
#, no-c-format
msgid "ENTRY statement at %C cannot appear within a MODULE"
-msgstr ""
+msgstr "La declaración ENTRY en %C no puede aparecer dentro de un MODULE"
#: fortran/decl.c:2685
#, no-c-format
msgid "ENTRY statement at %C cannot appear within a BLOCK DATA"
-msgstr ""
+msgstr "La declaración ENTRY en %C no puede aparecer dentro de un BLOCK DATA"
#: fortran/decl.c:2689
#, no-c-format
msgid "ENTRY statement at %C cannot appear within an INTERFACE"
-msgstr ""
+msgstr "La declaración ENTRY en %C no puede aparecer dentro de un INTERFACE"
#: fortran/decl.c:2693
#, no-c-format
msgid "ENTRY statement at %C cannot appear within a DERIVED TYPE block"
-msgstr ""
+msgstr "La declaración ENTRY en %C no puede aparecer dentro de un bloque DERIVED TYPE"
#: fortran/decl.c:2698
#, no-c-format
msgid "ENTRY statement at %C cannot appear within an IF-THEN block"
-msgstr ""
+msgstr "La declaración ENTRY en %C no puede aparecer dentro de un bloque IF-THEN"
#: fortran/decl.c:2702
-#, fuzzy, no-c-format
+#, no-c-format
msgid "ENTRY statement at %C cannot appear within a DO block"
-msgstr "La declaración RETURN en %0 es inválida dentro de una unidad de programa principal"
+msgstr "La declaración ENTRY en %C no puede aparecer dentro de un bloque DO"
#: fortran/decl.c:2706
#, no-c-format
msgid "ENTRY statement at %C cannot appear within a SELECT block"
-msgstr ""
+msgstr "La declaración ENTRY en %C no puede aparecer dentro de un bloque SELECT"
#: fortran/decl.c:2710
#, no-c-format
msgid "ENTRY statement at %C cannot appear within a FORALL block"
-msgstr ""
+msgstr "La declaración ENTRY en %C no puede aparecer dentro de un bloque FORALL"
#: fortran/decl.c:2714
#, no-c-format
msgid "ENTRY statement at %C cannot appear within a WHERE block"
-msgstr ""
+msgstr "La declaración ENTRY en %C no puede aparecer dentro de un bloque WHERE"
#: fortran/decl.c:2718
-#, fuzzy, no-c-format
+#, no-c-format
msgid "ENTRY statement at %C cannot appear within a contained subprogram"
-msgstr "La declaración RETURN en %0 es inválida dentro de una unidad de programa principal"
+msgstr "La declaración ENTRY en %C no puede aparecer dentro de un subprograma contenido"
#: fortran/decl.c:2731
-#, fuzzy, no-c-format
+#, no-c-format
msgid "ENTRY statement at %C cannot appear in a contained procedure"
-msgstr "%s no puede aparecer en una expresión constante"
+msgstr "La declaración ENTRY en %C no puede aparecer dentro de un procedimiento contenido"
#: fortran/decl.c:2812
#, no-c-format
msgid "RESULT attribute required in ENTRY statement at %C"
-msgstr ""
+msgstr "Se requiere el atributo RESULT en la declaración ENTRY en %C"
#: fortran/decl.c:3053
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Unexpected END statement at %C"
-msgstr "Declaración VXT sin soporte en %0"
+msgstr "Declaración END inesperada en %C"
#. We would have required END [something]
#: fortran/decl.c:3062
-#, fuzzy, no-c-format
+#, no-c-format
msgid "%s statement expected at %L"
-msgstr "Declaración %A inválida en %0"
+msgstr "Se esperaba la declaración %s en %L"
#: fortran/decl.c:3073
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expecting %s statement at %C"
-msgstr "Declaración %A inválida en %0"
+msgstr "Esperando la declaración %s en %C"
#: fortran/decl.c:3087
#, no-c-format
msgid "Expected block name of '%s' in %s statement at %C"
-msgstr ""
+msgstr "Se esperaba el nombre de bloque de '%s' en la declaración %s en %C"
#: fortran/decl.c:3103
#, no-c-format
msgid "Expected terminating name at %C"
-msgstr ""
+msgstr "Se esperaba un nombre terminal en %C"
#: fortran/decl.c:3112
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected label '%s' for %s statement at %C"
-msgstr "Forma inválida para la declaración %A en %0"
+msgstr "Se esperaba la etiqueta '%s' para la declaración %s en %0"
#: fortran/decl.c:3167
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Missing array specification at %L in DIMENSION statement"
-msgstr "Falta el especificador %A en la declaración en %0"
+msgstr "Falta la especificación de matriz en %L en la declaración DIMENSION"
#: fortran/decl.c:3176
#, no-c-format
msgid "Array specification must be deferred at %L"
-msgstr ""
+msgstr "La especificación de matriz se debe diferir en %L"
#: fortran/decl.c:3253
#, no-c-format
msgid "Unexpected character in variable list at %C"
-msgstr ""
+msgstr "Carácter inesperado en la lista de variables en %C"
#: fortran/decl.c:3290
#, no-c-format
msgid "Expected '(' at %C"
-msgstr ""
+msgstr "Se esperaba '(' en %C"
#: fortran/decl.c:3304 fortran/decl.c:3345
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected variable name at %C"
-msgstr "se esperaba una cadena de nombre aquí"
+msgstr "se esperaba un nombre variable en %C"
#: fortran/decl.c:3320
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Cray pointer at %C must be an integer."
-msgstr "el parámetro 2 debe ser un entero positivo"
+msgstr "El puntero Cray en %C debe ser un entero."
#: fortran/decl.c:3324
#, no-c-format
msgid "Cray pointer at %C has %d bytes of precision; memory addresses require %d bytes."
-msgstr ""
+msgstr "El puntero Cray en %C tiene %d bytes de precisión; las direcciones de memoria requieren %d bytes."
#: fortran/decl.c:3331
#, no-c-format
msgid "Expected \",\" at %C"
-msgstr ""
+msgstr "Se esperaba \",\" en %C"
#: fortran/decl.c:3394
#, no-c-format
msgid "Expected \")\" at %C"
-msgstr ""
+msgstr "Se esperaba \")\" en %C"
#: fortran/decl.c:3406
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected \",\" or end of statement at %C"
-msgstr "Declaración VXT sin soporte en %0"
+msgstr "Se esperaba \",\" o el final de la declaración en %C"
#: fortran/decl.c:3471
#, no-c-format
msgid "Cray pointer declaration at %C requires -fcray-pointer flag."
-msgstr ""
+msgstr "La declaración de punteros Cray en %C requiere la opción -fcray-pointer."
#: fortran/decl.c:3569
#, no-c-format
msgid "Access specification of the %s operator at %C has already been specified"
-msgstr ""
+msgstr "La especificación de acceso del operador %s en %C ya se había especificado"
#: fortran/decl.c:3587
#, no-c-format
msgid "Access specification of the .%s. operator at %C has already been specified"
-msgstr ""
+msgstr "La especificación de acceso del operador .%s. en %C ya se había especificado"
#: fortran/decl.c:3674
#, no-c-format
msgid "Expected variable name at %C in PARAMETER statement"
-msgstr ""
+msgstr "Se esperaba un nombre de variable en %C en la declaración PARAMETER"
#: fortran/decl.c:3681
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected = sign in PARAMETER statement at %C"
-msgstr "Signo espurio en la declaración FORMAT en %0"
+msgstr "Se esperaba un signo = en la declaración PARAMETER en %C"
#: fortran/decl.c:3687
#, no-c-format
msgid "Expected expression at %C in PARAMETER statement"
-msgstr ""
+msgstr "Se esperaba una expresión en %C en la declaración PARAMETER"
#: fortran/decl.c:3745
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Unexpected characters in PARAMETER statement at %C"
-msgstr "Coma sobrante en la declaración FORMAT en %0"
+msgstr "Caracteres inesperados en la declaración PARAMETER en %C"
#: fortran/decl.c:3770
#, no-c-format
msgid "Blanket SAVE statement at %C follows previous SAVE statement"
-msgstr ""
+msgstr "Declaración SAVE incondicional en %C a continuación de una declaración SAVE previa"
#: fortran/decl.c:3783
#, no-c-format
msgid "SAVE statement at %C follows blanket SAVE statement"
-msgstr ""
+msgstr "Declaración SAVE en %C a continuación de una declaración SAVE incondicional"
#: fortran/decl.c:3829
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Syntax error in SAVE statement at %C"
-msgstr "Forma inválida para la declaración %A en %0"
+msgstr "Error sintáctico en la declaración SAVE en %C"
#: fortran/decl.c:3850
#, no-c-format
msgid "MODULE PROCEDURE at %C must be in a generic module interface"
-msgstr ""
+msgstr "MODULE PROCEDURE en %C debe estar en una interfaz genérica de módulo"
#: fortran/decl.c:3910
#, no-c-format
msgid "Derived type at %C can only be PRIVATE within a MODULE"
-msgstr ""
+msgstr "El tipo derivado en %C sólo puede ser PRIVATE dentro de un MODULE"
#: fortran/decl.c:3923
#, no-c-format
msgid "Derived type at %C can only be PUBLIC within a MODULE"
-msgstr ""
+msgstr "El tipo derivado en %C sólo puede ser PUBLIC dentro de un MODULE"
#: fortran/decl.c:3934
#, no-c-format
msgid "Expected :: in TYPE definition at %C"
-msgstr ""
+msgstr "Se esperaba :: en la definición TYPE en %C"
#: fortran/decl.c:3951
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Type name '%s' at %C cannot be the same as an intrinsic type"
-msgstr "El nombre de tipo en %0 no es el mismo que el nombre en %1"
+msgstr "El nombre de tipo '%s' en %C no puede ser el mismo que un tipo intrínseco"
#: fortran/decl.c:3961
#, no-c-format
msgid "Derived type name '%s' at %C already has a basic type of %s"
-msgstr ""
+msgstr "El nombre de tipo derivado '%s' en %C ya tiene un tipo básico de %s"
#: fortran/decl.c:3978
#, no-c-format
msgid "Derived type definition of '%s' at %C has already been defined"
-msgstr ""
+msgstr "La definición del tipo derivado de '%s' en %C ya se había definido"
#: fortran/decl.c:4012
#, no-c-format
msgid "Cray Pointee at %C cannot be assumed shape array"
-msgstr ""
+msgstr "El Puntero Cray en %C no se puede asumir como matriz de forma"
#: fortran/decl.c:4033
#, no-c-format
msgid "New in Fortran 2003: ENUM AND ENUMERATOR at %C"
-msgstr ""
+msgstr "Nuevo en Fortran 2003: ENUM AND ENUMERATOR en %C"
#: fortran/decl.c:4057
-#, fuzzy, no-c-format
+#, no-c-format
msgid "ENUM definition statement expected before %C"
-msgstr "se esperaba un nombre de tipo antes de `&'"
+msgstr "Se esperaba una declaración de definición ENUM antes de %C"
#: fortran/decl.c:4090
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Syntax error in ENUMERATOR definition at %C"
-msgstr "error sintáctico en la lista de excepción"
+msgstr "Error sintáctico en la definición ENUMERATOR en %C"
+# revisar código de dump-parse-tree, para saber si se traducen
+# los comandos del lenguaje Fortran. cfuga
#: fortran/dump-parse-tree.c:53
#, c-format
msgid "%-5d "
-msgstr ""
+msgstr "%-5d "
#: fortran/dump-parse-tree.c:55
-#, fuzzy, c-format
+#, c-format
msgid " "
-msgstr " %qD"
+msgstr " "
#: fortran/dump-parse-tree.c:79 fortran/dump-parse-tree.c:597
-#, fuzzy, c-format
+#, c-format
msgid "(%s "
-msgstr "%s "
+msgstr "(%s "
#: fortran/dump-parse-tree.c:92 fortran/dump-parse-tree.c:844
#: fortran/dump-parse-tree.c:881 fortran/dump-parse-tree.c:891
#, c-format
msgid "%d"
-msgstr ""
+msgstr "%d"
#: fortran/dump-parse-tree.c:96 fortran/dump-parse-tree.c:123
#: fortran/dump-parse-tree.c:166 fortran/dump-parse-tree.c:403
@@ -4529,370 +4480,370 @@ msgstr ""
#: fortran/dump-parse-tree.c:605
#, c-format
msgid ")"
-msgstr ""
+msgstr ")"
#: fortran/dump-parse-tree.c:106 fortran/dump-parse-tree.c:421
#, c-format
msgid "("
-msgstr ""
+msgstr "("
#: fortran/dump-parse-tree.c:112
-#, fuzzy, c-format
+#, c-format
msgid "%s = "
-msgstr "%s "
+msgstr "%s = "
#: fortran/dump-parse-tree.c:116
#, c-format
msgid "(arg not-present)"
-msgstr ""
+msgstr "(arg no-presente)"
#: fortran/dump-parse-tree.c:120 fortran/dump-parse-tree.c:397
#: fortran/dump-parse-tree.c:494
#, c-format
msgid " "
-msgstr ""
+msgstr " "
#: fortran/dump-parse-tree.c:137 fortran/dump-parse-tree.c:312
-#, fuzzy, c-format
+#, c-format
msgid "()"
-msgstr "(C)"
+msgstr "()"
#: fortran/dump-parse-tree.c:141
#, c-format
msgid "(%d"
-msgstr ""
+msgstr "(%d"
#: fortran/dump-parse-tree.c:155
-#, fuzzy, c-format
+#, c-format
msgid " %s "
-msgstr " %s"
+msgstr " %s "
#: fortran/dump-parse-tree.c:182
#, c-format
msgid "FULL"
-msgstr ""
+msgstr "COMPLETO"
#: fortran/dump-parse-tree.c:213 fortran/dump-parse-tree.c:222
#: fortran/dump-parse-tree.c:297
#, c-format
msgid " , "
-msgstr ""
+msgstr " , "
#: fortran/dump-parse-tree.c:227
#, c-format
msgid "UNKNOWN"
-msgstr ""
+msgstr "DESCONOCIDO"
#: fortran/dump-parse-tree.c:252
-#, fuzzy, c-format
+#, c-format
msgid " %% %s"
-msgstr "%J%s %qs"
+msgstr " %% %s"
#: fortran/dump-parse-tree.c:324 fortran/dump-parse-tree.c:381
-#, fuzzy, c-format
+#, c-format
msgid "''"
-msgstr "'"
+msgstr "''"
#: fortran/dump-parse-tree.c:326
#, c-format
msgid "%c"
-msgstr ""
+msgstr "%c"
#: fortran/dump-parse-tree.c:333
-#, fuzzy, c-format
+#, c-format
msgid "%s("
-msgstr "%s"
+msgstr "%s("
#: fortran/dump-parse-tree.c:339
#, c-format
msgid "(/ "
-msgstr ""
+msgstr "(/ "
#: fortran/dump-parse-tree.c:341
#, c-format
msgid " /)"
-msgstr ""
+msgstr " /)"
#: fortran/dump-parse-tree.c:347
#, c-format
msgid "NULL()"
-msgstr ""
+msgstr "NULO()"
#: fortran/dump-parse-tree.c:357 fortran/dump-parse-tree.c:370
#: fortran/dump-parse-tree.c:395 fortran/dump-parse-tree.c:401
#, c-format
msgid "_%d"
-msgstr ""
+msgstr "_%d"
#: fortran/dump-parse-tree.c:362
#, c-format
msgid ".true."
-msgstr ""
+msgstr ".verdadero."
#: fortran/dump-parse-tree.c:364
-#, fuzzy, c-format
+#, c-format
msgid ".false."
-msgstr "fclose"
+msgstr ".falso."
#: fortran/dump-parse-tree.c:391
#, c-format
msgid "(complex "
-msgstr ""
+msgstr "(complejo "
#: fortran/dump-parse-tree.c:407
#, c-format
msgid "???"
-msgstr ""
+msgstr "???"
#: fortran/dump-parse-tree.c:415 fortran/dump-parse-tree.c:701
-#, fuzzy, c-format
+#, c-format
msgid "%s:"
-msgstr "%s"
+msgstr "%s:"
#: fortran/dump-parse-tree.c:425
#, c-format
msgid "U+ "
-msgstr ""
+msgstr "U+ "
#: fortran/dump-parse-tree.c:428
#, c-format
msgid "U- "
-msgstr ""
+msgstr "U- "
#: fortran/dump-parse-tree.c:431
#, c-format
msgid "+ "
-msgstr ""
+msgstr "+ "
#: fortran/dump-parse-tree.c:434
#, c-format
msgid "- "
-msgstr ""
+msgstr "- "
#: fortran/dump-parse-tree.c:437
#, c-format
msgid "* "
-msgstr ""
+msgstr "* "
#: fortran/dump-parse-tree.c:440
#, c-format
msgid "/ "
-msgstr ""
+msgstr "/ "
#: fortran/dump-parse-tree.c:443
#, c-format
msgid "** "
-msgstr ""
+msgstr "** "
#: fortran/dump-parse-tree.c:446
#, c-format
msgid "// "
-msgstr ""
+msgstr "// "
#: fortran/dump-parse-tree.c:449
#, c-format
msgid "AND "
-msgstr ""
+msgstr "Y "
#: fortran/dump-parse-tree.c:452
#, c-format
msgid "OR "
-msgstr ""
+msgstr "O "
#: fortran/dump-parse-tree.c:455
#, c-format
msgid "EQV "
-msgstr ""
+msgstr "EQV "
#: fortran/dump-parse-tree.c:458
#, c-format
msgid "NEQV "
-msgstr ""
+msgstr "NEQV "
#: fortran/dump-parse-tree.c:461
#, c-format
msgid "= "
-msgstr ""
+msgstr "= "
#: fortran/dump-parse-tree.c:464
#, c-format
msgid "<> "
-msgstr ""
+msgstr "<> "
#: fortran/dump-parse-tree.c:467
#, c-format
msgid "> "
-msgstr ""
+msgstr "> "
#: fortran/dump-parse-tree.c:470
#, c-format
msgid ">= "
-msgstr ""
+msgstr ">= "
#: fortran/dump-parse-tree.c:473
#, c-format
msgid "< "
-msgstr ""
+msgstr "< "
#: fortran/dump-parse-tree.c:476
#, c-format
msgid "<= "
-msgstr ""
+msgstr "<= "
#: fortran/dump-parse-tree.c:479
#, c-format
msgid "NOT "
-msgstr ""
+msgstr "NO "
#: fortran/dump-parse-tree.c:482
-#, fuzzy, c-format
+#, c-format
msgid "parens"
-msgstr "abrir %s"
+msgstr "paréntesis"
#: fortran/dump-parse-tree.c:504
-#, fuzzy, c-format
+#, c-format
msgid "%s["
-msgstr "%s"
+msgstr "%s["
#: fortran/dump-parse-tree.c:510
-#, fuzzy, c-format
+#, c-format
msgid "%s[["
-msgstr "%s"
+msgstr "%s[["
#: fortran/dump-parse-tree.c:531
-#, fuzzy, c-format
+#, c-format
msgid "(%s %s %s %s"
-msgstr "%s %s %p %d\n"
+msgstr "(%s %s %s %s"
#: fortran/dump-parse-tree.c:537
#, c-format
msgid " ALLOCATABLE"
-msgstr ""
+msgstr " ALOJABLE"
#: fortran/dump-parse-tree.c:539 fortran/dump-parse-tree.c:602
#, c-format
msgid " DIMENSION"
-msgstr ""
+msgstr " DIMENSIÓN"
#: fortran/dump-parse-tree.c:541
#, c-format
msgid " EXTERNAL"
-msgstr ""
+msgstr " EXTERNO"
#: fortran/dump-parse-tree.c:543
#, c-format
msgid " INTRINSIC"
-msgstr ""
+msgstr " INTRÍNSECO"
#: fortran/dump-parse-tree.c:545
#, c-format
msgid " OPTIONAL"
-msgstr ""
+msgstr " OPCIONAL"
#: fortran/dump-parse-tree.c:547 fortran/dump-parse-tree.c:600
#, c-format
msgid " POINTER"
-msgstr ""
+msgstr " PUNTERO"
#: fortran/dump-parse-tree.c:549
#, c-format
msgid " SAVE"
-msgstr ""
+msgstr " GUARDAR"
#: fortran/dump-parse-tree.c:551
#, c-format
msgid " TARGET"
-msgstr ""
+msgstr " OBJETIVO"
#: fortran/dump-parse-tree.c:553
#, c-format
msgid " DUMMY"
-msgstr ""
+msgstr " PRUEBA"
#: fortran/dump-parse-tree.c:555
#, c-format
msgid " RESULT"
-msgstr ""
+msgstr " RESULTADO"
#: fortran/dump-parse-tree.c:557
#, c-format
msgid " ENTRY"
-msgstr ""
+msgstr " ENTRADA"
#: fortran/dump-parse-tree.c:560
#, c-format
msgid " DATA"
-msgstr ""
+msgstr " DATOS"
#: fortran/dump-parse-tree.c:562
#, c-format
msgid " USE-ASSOC"
-msgstr ""
+msgstr " USAR-ASSOC"
#: fortran/dump-parse-tree.c:564
#, c-format
msgid " IN-NAMELIST"
-msgstr ""
+msgstr " IN-LISTANOMBRE"
#: fortran/dump-parse-tree.c:566
#, c-format
msgid " IN-COMMON"
-msgstr ""
+msgstr " IN-COMÚN"
#: fortran/dump-parse-tree.c:569
-#, fuzzy, c-format
+#, c-format
msgid " FUNCTION"
-msgstr "Usar FUNCTION_EPILOGUE"
+msgstr " FUNCTIÓN"
#: fortran/dump-parse-tree.c:571
#, c-format
msgid " SUBROUTINE"
-msgstr ""
+msgstr " SUBRUTINA"
#: fortran/dump-parse-tree.c:573
#, c-format
msgid " IMPLICIT-TYPE"
-msgstr ""
+msgstr " TIPO-IMPLÍCITO"
#: fortran/dump-parse-tree.c:576
#, c-format
msgid " SEQUENCE"
-msgstr ""
+msgstr " SECUENCIA"
#: fortran/dump-parse-tree.c:578
#, c-format
msgid " ELEMENTAL"
-msgstr ""
+msgstr " ELEMENTAL"
#: fortran/dump-parse-tree.c:580
#, c-format
msgid " PURE"
-msgstr ""
+msgstr " PURO"
#: fortran/dump-parse-tree.c:582
-#, fuzzy, c-format
+#, c-format
msgid " RECURSIVE"
-msgstr "PROCs RECURSIVE"
+msgstr " RECURSIVO"
#: fortran/dump-parse-tree.c:628
#, c-format
msgid "symbol %s "
-msgstr ""
+msgstr "símbolo %s "
#: fortran/dump-parse-tree.c:635
#, c-format
msgid "value: "
-msgstr ""
+msgstr "valor: "
#: fortran/dump-parse-tree.c:642
#, c-format
msgid "Array spec:"
-msgstr ""
+msgstr "Especif matriz:"
#: fortran/dump-parse-tree.c:649
-#, fuzzy, c-format
+#, c-format
msgid "Generic interfaces:"
-msgstr "Usar la interfaz Cygwin"
+msgstr "Interfaces genéricas:"
#: fortran/dump-parse-tree.c:651 fortran/dump-parse-tree.c:675
#: fortran/dump-parse-tree.c:704 fortran/dump-parse-tree.c:1044
@@ -4902,779 +4853,773 @@ msgid " %s"
msgstr " %s"
#: fortran/dump-parse-tree.c:657
-#, fuzzy, c-format
+#, c-format
msgid "result: %s"
-msgstr "Objetivo: %s\n"
+msgstr "resultado: %s"
#: fortran/dump-parse-tree.c:663
#, c-format
msgid "components: "
-msgstr ""
+msgstr "componentes: "
#: fortran/dump-parse-tree.c:670
#, c-format
msgid "Formal arglist:"
-msgstr ""
+msgstr "Lista de argumentos formal:"
#: fortran/dump-parse-tree.c:677
#, c-format
msgid " [Alt Return]"
-msgstr ""
+msgstr " [Retorno Alt]"
#: fortran/dump-parse-tree.c:684
-#, fuzzy, c-format
+#, c-format
msgid "Formal namespace"
-msgstr "%qD es un nombre de espacio"
+msgstr "Espacio de nombres formal"
#: fortran/dump-parse-tree.c:742
#, c-format
msgid "common: /%s/ "
-msgstr ""
+msgstr "común: /%s/ "
#: fortran/dump-parse-tree.c:750 fortran/dump-parse-tree.c:1471
#, c-format
msgid ", "
-msgstr ""
+msgstr ", "
#: fortran/dump-parse-tree.c:763
#, c-format
msgid "symtree: %s Ambig %d"
-msgstr ""
+msgstr "árbolsim: %s Ambig %d"
#: fortran/dump-parse-tree.c:766
-#, fuzzy, c-format
+#, c-format
msgid " from namespace %s"
-msgstr "espacio de nombres %qD desconocido"
+msgstr " del espacio de nombres %s"
#: fortran/dump-parse-tree.c:810
#, c-format
msgid "NOP"
-msgstr ""
+msgstr "NOP"
#: fortran/dump-parse-tree.c:814
#, c-format
msgid "CONTINUE"
-msgstr ""
+msgstr "CONTINUAR"
#: fortran/dump-parse-tree.c:818
#, c-format
msgid "ENTRY %s"
-msgstr ""
+msgstr "ENTRADA %s"
#: fortran/dump-parse-tree.c:822
#, c-format
msgid "ASSIGN "
-msgstr ""
+msgstr "ASIGNAR "
#: fortran/dump-parse-tree.c:829
#, c-format
msgid "LABEL ASSIGN "
-msgstr ""
+msgstr "ETIQUETA ASIGNAR "
#: fortran/dump-parse-tree.c:831
-#, fuzzy, c-format
+#, c-format
msgid " %d"
-msgstr " %s"
+msgstr " %d"
#: fortran/dump-parse-tree.c:835
#, c-format
msgid "POINTER ASSIGN "
-msgstr ""
+msgstr "PUNTERO ASIGNAR "
#: fortran/dump-parse-tree.c:842
#, c-format
msgid "GOTO "
-msgstr ""
+msgstr "IR-A "
#: fortran/dump-parse-tree.c:851
#, c-format
msgid ", ("
-msgstr ""
+msgstr ", ("
#: fortran/dump-parse-tree.c:865
#, c-format
msgid "CALL %s "
-msgstr ""
+msgstr "LLAMADA %s "
#: fortran/dump-parse-tree.c:870
#, c-format
msgid "RETURN "
-msgstr ""
+msgstr "DEVOLVER "
#: fortran/dump-parse-tree.c:876
#, c-format
msgid "PAUSE "
-msgstr ""
+msgstr "PAUSA "
#: fortran/dump-parse-tree.c:886
#, c-format
msgid "STOP "
-msgstr ""
+msgstr "PARAR "
#: fortran/dump-parse-tree.c:896 fortran/dump-parse-tree.c:904
#, c-format
msgid "IF "
-msgstr ""
+msgstr "SI "
#: fortran/dump-parse-tree.c:898
-#, fuzzy, c-format
+#, c-format
msgid " %d, %d, %d"
-msgstr "%s %s %p %d\n"
+msgstr " %d, %d, %d"
#: fortran/dump-parse-tree.c:915
#, c-format
msgid "ELSE\n"
-msgstr ""
+msgstr "ENTONCES\n"
#: fortran/dump-parse-tree.c:918
#, c-format
msgid "ELSE IF "
-msgstr ""
+msgstr "ENTONCES SI "
#: fortran/dump-parse-tree.c:928
#, c-format
msgid "ENDIF"
-msgstr ""
+msgstr "FIN-SI"
#: fortran/dump-parse-tree.c:933
#, c-format
msgid "SELECT CASE "
-msgstr ""
+msgstr "SELECCIONAR CASO "
#: fortran/dump-parse-tree.c:941
#, c-format
msgid "CASE "
-msgstr ""
+msgstr "CASO "
#: fortran/dump-parse-tree.c:957
#, c-format
msgid "END SELECT"
-msgstr ""
+msgstr "FIN SELECCIONAR"
#: fortran/dump-parse-tree.c:961
#, c-format
msgid "WHERE "
-msgstr ""
+msgstr "DONDE "
#: fortran/dump-parse-tree.c:972
#, c-format
msgid "ELSE WHERE "
-msgstr ""
+msgstr "ENTONCES DONDE "
#: fortran/dump-parse-tree.c:979
#, c-format
msgid "END WHERE"
-msgstr ""
+msgstr "FIN DONDE"
#: fortran/dump-parse-tree.c:984
#, c-format
msgid "FORALL "
-msgstr ""
+msgstr "PARA-TODO "
#: fortran/dump-parse-tree.c:1009
#, c-format
msgid "END FORALL"
-msgstr ""
+msgstr "FIN PARA-TODO"
#: fortran/dump-parse-tree.c:1013
#, c-format
msgid "DO "
-msgstr ""
+msgstr "HAZ "
#: fortran/dump-parse-tree.c:1027 fortran/dump-parse-tree.c:1038
#, c-format
msgid "END DO"
-msgstr ""
+msgstr "FIN HAZ"
#: fortran/dump-parse-tree.c:1031
#, c-format
msgid "DO WHILE "
-msgstr ""
+msgstr "HAZ MIENTRAS "
#: fortran/dump-parse-tree.c:1042
#, c-format
msgid "CYCLE"
-msgstr ""
+msgstr "CICLO"
#: fortran/dump-parse-tree.c:1048
#, c-format
msgid "EXIT"
-msgstr ""
+msgstr "SALIR"
#: fortran/dump-parse-tree.c:1054
#, c-format
msgid "ALLOCATE "
-msgstr ""
+msgstr "ALOJAR "
#: fortran/dump-parse-tree.c:1057 fortran/dump-parse-tree.c:1073
#, c-format
msgid " STAT="
-msgstr ""
+msgstr " STAT="
#: fortran/dump-parse-tree.c:1070
#, c-format
msgid "DEALLOCATE "
-msgstr ""
+msgstr "DESALOJAR "
#: fortran/dump-parse-tree.c:1086
#, c-format
msgid "OPEN"
-msgstr ""
+msgstr "ABRIR"
#: fortran/dump-parse-tree.c:1091 fortran/dump-parse-tree.c:1170
#: fortran/dump-parse-tree.c:1212 fortran/dump-parse-tree.c:1235
#: fortran/dump-parse-tree.c:1387
#, c-format
msgid " UNIT="
-msgstr ""
+msgstr " UNIDAD="
#: fortran/dump-parse-tree.c:1096 fortran/dump-parse-tree.c:1175
#: fortran/dump-parse-tree.c:1217 fortran/dump-parse-tree.c:1246
#: fortran/dump-parse-tree.c:1404
#, c-format
msgid " IOMSG="
-msgstr ""
+msgstr " ESMSG="
#: fortran/dump-parse-tree.c:1101 fortran/dump-parse-tree.c:1180
#: fortran/dump-parse-tree.c:1222 fortran/dump-parse-tree.c:1251
#: fortran/dump-parse-tree.c:1409
#, c-format
msgid " IOSTAT="
-msgstr ""
+msgstr " ESSTAT="
#: fortran/dump-parse-tree.c:1106 fortran/dump-parse-tree.c:1240
#, c-format
msgid " FILE="
-msgstr ""
+msgstr " FICH="
#: fortran/dump-parse-tree.c:1111 fortran/dump-parse-tree.c:1185
#, c-format
msgid " STATUS="
-msgstr ""
+msgstr " ESTADO="
#: fortran/dump-parse-tree.c:1116 fortran/dump-parse-tree.c:1281
#, c-format
msgid " ACCESS="
-msgstr ""
+msgstr " ACCESO="
#: fortran/dump-parse-tree.c:1121 fortran/dump-parse-tree.c:1297
#, c-format
msgid " FORM="
-msgstr ""
+msgstr " FORMA="
#: fortran/dump-parse-tree.c:1126 fortran/dump-parse-tree.c:1312
#, c-format
msgid " RECL="
-msgstr ""
+msgstr " RECL="
#: fortran/dump-parse-tree.c:1131 fortran/dump-parse-tree.c:1322
#, c-format
msgid " BLANK="
-msgstr ""
+msgstr " BLANCO="
#: fortran/dump-parse-tree.c:1136 fortran/dump-parse-tree.c:1327
#, c-format
msgid " POSITION="
-msgstr ""
+msgstr " POSICIÓN="
#: fortran/dump-parse-tree.c:1141 fortran/dump-parse-tree.c:1332
#, c-format
msgid " ACTION="
-msgstr ""
+msgstr " ACCIÓN="
#: fortran/dump-parse-tree.c:1146 fortran/dump-parse-tree.c:1352
#, c-format
msgid " DELIM="
-msgstr ""
+msgstr " DELIM="
#: fortran/dump-parse-tree.c:1151 fortran/dump-parse-tree.c:1357
#, c-format
msgid " PAD="
-msgstr ""
+msgstr " RELL="
#: fortran/dump-parse-tree.c:1156 fortran/dump-parse-tree.c:1362
#, c-format
msgid " CONVERT="
-msgstr ""
+msgstr " CONVERTIR="
#: fortran/dump-parse-tree.c:1160 fortran/dump-parse-tree.c:1189
#: fortran/dump-parse-tree.c:1226 fortran/dump-parse-tree.c:1367
#: fortran/dump-parse-tree.c:1444
#, c-format
msgid " ERR=%d"
-msgstr ""
+msgstr " ERR=%d"
#: fortran/dump-parse-tree.c:1165
#, c-format
msgid "CLOSE"
-msgstr ""
+msgstr "CERRAR"
#: fortran/dump-parse-tree.c:1193
#, c-format
msgid "BACKSPACE"
-msgstr ""
+msgstr "ESPACIO-ATRÁS"
#: fortran/dump-parse-tree.c:1197
#, c-format
msgid "ENDFILE"
-msgstr ""
+msgstr "FINFICH"
#: fortran/dump-parse-tree.c:1201
#, c-format
msgid "REWIND"
-msgstr ""
+msgstr "REGRESAR"
#: fortran/dump-parse-tree.c:1205
#, c-format
msgid "FLUSH"
-msgstr ""
+msgstr "VACIAR"
#: fortran/dump-parse-tree.c:1230
#, c-format
msgid "INQUIRE"
-msgstr ""
+msgstr "INQUIRIR"
#: fortran/dump-parse-tree.c:1256
#, c-format
msgid " EXIST="
-msgstr ""
+msgstr " EXISTE="
#: fortran/dump-parse-tree.c:1261
#, c-format
msgid " OPENED="
-msgstr ""
+msgstr " ABIERTO="
#: fortran/dump-parse-tree.c:1266
#, c-format
msgid " NUMBER="
-msgstr ""
+msgstr " NÚMERO="
#: fortran/dump-parse-tree.c:1271
#, c-format
msgid " NAMED="
-msgstr ""
+msgstr " NOMBRADO="
#: fortran/dump-parse-tree.c:1276
#, c-format
msgid " NAME="
-msgstr ""
+msgstr " NOMBRE="
#: fortran/dump-parse-tree.c:1286
#, c-format
msgid " SEQUENTIAL="
-msgstr ""
+msgstr " SECUENCIAL="
#: fortran/dump-parse-tree.c:1292
#, c-format
msgid " DIRECT="
-msgstr ""
+msgstr " DIRECTO="
#: fortran/dump-parse-tree.c:1302
#, c-format
msgid " FORMATTED"
-msgstr ""
+msgstr " CON-FORMATO"
#: fortran/dump-parse-tree.c:1307
#, c-format
msgid " UNFORMATTED="
-msgstr ""
+msgstr " SIN-FORMATO="
#: fortran/dump-parse-tree.c:1317
#, c-format
msgid " NEXTREC="
-msgstr ""
+msgstr " SIGREG="
#: fortran/dump-parse-tree.c:1337
#, c-format
msgid " READ="
-msgstr ""
+msgstr " LEER="
#: fortran/dump-parse-tree.c:1342
#, c-format
msgid " WRITE="
-msgstr ""
+msgstr " ESCRIBIR="
#: fortran/dump-parse-tree.c:1347
#, c-format
msgid " READWRITE="
-msgstr ""
+msgstr " LEERESCRIBIR="
#: fortran/dump-parse-tree.c:1371
#, c-format
msgid "IOLENGTH "
-msgstr ""
+msgstr "ESLONG "
#: fortran/dump-parse-tree.c:1377
#, c-format
msgid "READ"
-msgstr ""
+msgstr "LEER"
#: fortran/dump-parse-tree.c:1381
#, c-format
msgid "WRITE"
-msgstr ""
+msgstr "ESCRIBIR"
#: fortran/dump-parse-tree.c:1393
#, c-format
msgid " FMT="
-msgstr ""
+msgstr " FMT="
#: fortran/dump-parse-tree.c:1398
#, c-format
msgid " FMT=%d"
-msgstr ""
+msgstr " FMT=%d"
#: fortran/dump-parse-tree.c:1400
-#, fuzzy, c-format
+#, c-format
msgid " NML=%s"
-msgstr " %s"
+msgstr " NML=%s"
#: fortran/dump-parse-tree.c:1414
#, c-format
msgid " SIZE="
-msgstr ""
+msgstr " TAM="
#: fortran/dump-parse-tree.c:1419
#, c-format
msgid " REC="
-msgstr ""
+msgstr " GRAB="
#: fortran/dump-parse-tree.c:1424
#, c-format
msgid " ADVANCE="
-msgstr ""
+msgstr " AVANZAR="
#: fortran/dump-parse-tree.c:1435
#, c-format
msgid "TRANSFER "
-msgstr ""
+msgstr "TRANSFERIR "
#: fortran/dump-parse-tree.c:1440
#, c-format
msgid "DT_END"
-msgstr ""
+msgstr "DT_FIN"
#: fortran/dump-parse-tree.c:1446
#, c-format
msgid " END=%d"
-msgstr ""
+msgstr " FIN=%d"
#: fortran/dump-parse-tree.c:1448
#, c-format
msgid " EOR=%d"
-msgstr ""
+msgstr " FDR=%d"
#: fortran/dump-parse-tree.c:1465
#, c-format
msgid "Equivalence: "
-msgstr ""
+msgstr "Equivalencia: "
#: fortran/dump-parse-tree.c:1491
#, c-format
msgid "Namespace:"
-msgstr ""
+msgstr "Espacio de nombre:"
#: fortran/dump-parse-tree.c:1505
#, c-format
msgid " %c-%c: "
-msgstr ""
+msgstr " %c-%c: "
#: fortran/dump-parse-tree.c:1507
#, c-format
msgid " %c: "
-msgstr ""
+msgstr " %c: "
#: fortran/dump-parse-tree.c:1516
#, c-format
msgid "procedure name = %s"
-msgstr ""
+msgstr "nombre de procedimiento = %s"
#: fortran/dump-parse-tree.c:1532
-#, fuzzy, c-format
+#, c-format
msgid "Operator interfaces for %s:"
-msgstr ""
-"\n"
-" Opciones para %s:\n"
+msgstr "Interfaces de operador para %s:"
#: fortran/dump-parse-tree.c:1541
-#, fuzzy, c-format
+#, c-format
msgid "User operators:\n"
-msgstr "operador %s sin registrar"
+msgstr "Operadores de usuario:\n"
#: fortran/dump-parse-tree.c:1557
#, c-format
msgid "CONTAINS\n"
-msgstr ""
+msgstr "CONTIENE\n"
#: fortran/error.c:137
-#, fuzzy, no-c-format
+#, no-c-format
msgid "In file %s:%d\n"
-msgstr "En el fichero incluído de %s:%d"
+msgstr "En el fichero %s:%d\n"
#: fortran/error.c:152
-#, fuzzy, no-c-format
+#, no-c-format
msgid " Included at %s:%d\n"
-msgstr "En el fichero incluído de %s:%d"
+msgstr " Incluído en %s:%d\n"
#: fortran/error.c:204
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<During initialization>\n"
-msgstr "inicialización"
+msgstr "<Durante la inicialización>\n"
#: fortran/error.c:479 fortran/error.c:519 fortran/error.c:545
-#, fuzzy
msgid "Warning:"
-msgstr "aviso:"
+msgstr "Aviso:"
#: fortran/error.c:521 fortran/error.c:595 fortran/error.c:619
-#, fuzzy
msgid "Error:"
-msgstr "error: "
+msgstr "Error:"
#: fortran/error.c:640
-#, fuzzy
msgid "Fatal Error:"
-msgstr "error fatal: "
+msgstr "Error Fatal:"
#: fortran/error.c:659
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Internal Error at (1):"
-msgstr "error interno: "
+msgstr "Error Interno en (1):"
#: fortran/expr.c:258
-#, fuzzy, c-format
+#, c-format
msgid "Constant expression required at %C"
-msgstr "Se requiere una expresión constante"
+msgstr "Se requiere una expresión constante en %C"
#: fortran/expr.c:261
-#, fuzzy, c-format
+#, c-format
msgid "Integer expression required at %C"
-msgstr "Se requiere una expresión constante"
+msgstr "Se requiere una expresión entera en %C"
#: fortran/expr.c:266
-#, fuzzy, c-format
+#, c-format
msgid "Integer value too large in expression at %C"
-msgstr "desbordamiento entero en la expresión"
+msgstr "Valor entero demasiado grande en la expresión en %C"
#: fortran/expr.c:1274
#, no-c-format
msgid "Numeric or CHARACTER operands are required in expression at %L"
-msgstr ""
+msgstr "Se requieren operandos numéricos o CHARACTER en la expresión en %L"
#: fortran/expr.c:1294
#, no-c-format
msgid "Exponent at %L must be INTEGER for an initialization expression"
-msgstr ""
+msgstr "El exponente en %L debe ser INTEGER para una expresión de inicialización"
#: fortran/expr.c:1307
#, no-c-format
msgid "Concatenation operator in expression at %L must have two CHARACTER operands"
-msgstr ""
+msgstr "El operador de concatenación en la expresión en %L debe tener dos operandos CHARACTER"
#: fortran/expr.c:1314
#, no-c-format
msgid "Concat operator at %L must concatenate strings of the same kind"
-msgstr ""
+msgstr "El operador de concatenación en %L debe concatenar cadenas de la misma afinidad"
#: fortran/expr.c:1324
#, no-c-format
msgid ".NOT. operator in expression at %L must have a LOGICAL operand"
-msgstr ""
+msgstr "El operador .NOT. en la expresión en %L debe tener un operando LOGICAL"
#: fortran/expr.c:1340
#, no-c-format
msgid "LOGICAL operands are required in expression at %L"
-msgstr ""
+msgstr "Se requieren operandos LOGICAL en la expresión en %L"
#: fortran/expr.c:1351
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Only intrinsic operators can be used in expression at %L"
-msgstr "Falta un operando para el operador en %1 al final de la expresión en %0"
+msgstr "Sólo se pueden usar operandos intrínsecos en la expresión en %L"
#: fortran/expr.c:1359
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Numeric operands are required in expression at %L"
-msgstr "Falta un operando para el operador en %1 al final de la expresión en %0"
+msgstr "Se requieren operandos numéricos en la expresión en %L"
#: fortran/expr.c:1423
#, no-c-format
msgid "The F95 does not permit the assumed character length variable '%s' in constant expression at %L."
-msgstr ""
+msgstr "El F95 no permite el carácter asumido de longitud variable '%s' en una expresión constante en %L."
#: fortran/expr.c:1476
#, no-c-format
msgid "Function '%s' in initialization expression at %L must be an intrinsic function"
-msgstr ""
+msgstr "La función '%s' en la expresión de inicialización en %L debe ser una funión intrínseca"
#: fortran/expr.c:1498
#, no-c-format
msgid "Parameter '%s' at %L has not been declared or is a variable, which does not reduce to a constant expression"
-msgstr ""
+msgstr "El parámetro '%s' en %L no se ha declarado o es una variable, lo cual no se reduce a una expresión constante"
#: fortran/expr.c:1583
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Initialization expression didn't reduce %C"
-msgstr "inicialización de la expresión new con `='"
+msgstr "La expresión de inicialización no reduce en %C"
#: fortran/expr.c:1627
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Specification function '%s' at %L cannot be a statement function"
-msgstr "el constructor no puede ser una función miembro de tipo static"
+msgstr "La función de especificación '%s' en %L no puede ser una función de declaración"
#: fortran/expr.c:1634
#, no-c-format
msgid "Specification function '%s' at %L cannot be an internal function"
-msgstr ""
+msgstr "La función de especificación '%s' en %L no puede ser una función interna"
#: fortran/expr.c:1641
#, no-c-format
msgid "Specification function '%s' at %L must be PURE"
-msgstr ""
+msgstr "La función de especificación '%s' en %L debe ser PURE"
#: fortran/expr.c:1648
#, no-c-format
msgid "Specification function '%s' at %L cannot be RECURSIVE"
-msgstr ""
+msgstr "La función de especificación '%s' en %L no puede ser RECURSIVE"
#: fortran/expr.c:1705
#, no-c-format
msgid "Dummy argument '%s' at %L cannot be OPTIONAL"
-msgstr ""
+msgstr "El argumento de prueba '%s' en %L no puede ser OPTIONAL"
#: fortran/expr.c:1712
#, no-c-format
msgid "Dummy argument '%s' at %L cannot be INTENT(OUT)"
-msgstr ""
+msgstr "El argumento de prueba '%s' en %L no puede ser INTENT(OUT)"
#: fortran/expr.c:1732
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Variable '%s' cannot appear in the expression at %L"
-msgstr "%s no puede aparecer en una expresión constante"
+msgstr "La variable '%s' no puede aparecer en la expresión en %L"
#: fortran/expr.c:1780
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expression at %L must be of INTEGER type"
-msgstr "el argumento para `%s' debe ser de tipo entero"
+msgstr "La expresión en %L debe ser de tipo INTEGER"
#: fortran/expr.c:1786
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expression at %L must be scalar"
-msgstr "la expresión %s debe ser referenciable"
+msgstr "La expresión en %L debe ser escalar"
#: fortran/expr.c:1814
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Incompatible ranks in %s at %L"
-msgstr "modos incompatibles en %s"
+msgstr "Rangos incompatibles en %s en %L"
#: fortran/expr.c:1828
#, no-c-format
msgid "different shape for %s at %L on dimension %d (%d/%d)"
-msgstr ""
+msgstr "forma diferente para %s en %L en la dimensión %d (%d/%d)"
#: fortran/expr.c:1861
#, no-c-format
msgid "Can't assign to INTENT(IN) variable '%s' at %L"
-msgstr ""
+msgstr "No se puede asignar a la variable INTENT(IN) '%s' en %L"
#: fortran/expr.c:1868
#, no-c-format
msgid "'%s' in the assignment at %L cannot be an l-value since it is a procedure"
-msgstr ""
+msgstr "'%s' en la asignación en %L no puede ser un l-valor ya que es un procedimiento"
#: fortran/expr.c:1876
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Incompatible ranks %d and %d in assignment at %L"
-msgstr "tipos incompatibles en la asignación"
+msgstr "Rangos %d y %d incompatibles en la asignación en %L"
#: fortran/expr.c:1883
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Variable type is UNKNOWN in assignment at %L"
-msgstr "tipos incompatibles en la asignación"
+msgstr "El tipo de la variable es UNKNOWN en la asignación en %L"
#: fortran/expr.c:1890
#, no-c-format
msgid "NULL appears on right-hand side in assignment at %L"
-msgstr ""
+msgstr "NULL aparece en el lado derecho de una asignación en %L"
#: fortran/expr.c:1900
#, no-c-format
msgid "Vector assignment to assumed-size Cray Pointee at %L is illegal."
-msgstr ""
+msgstr "La asignación de vector a un Puntero Cray de tamaño asumido en %L es ilegal."
#: fortran/expr.c:1909
-#, fuzzy, no-c-format
+#, no-c-format
msgid "POINTER valued function appears on right-hand side of assignment at %L"
-msgstr "La parte izquierda de la asignación es inválida"
+msgstr "Una función valuada como POINTER aparece en el lado derecho de la asignación en %L"
#: fortran/expr.c:1914
-#, fuzzy
msgid "Array assignment"
-msgstr "asignación"
+msgstr "Asignación de matriz"
#: fortran/expr.c:1931
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Incompatible types in assignment at %L, %s to %s"
-msgstr "tipos incompatible en la asignación de %qT a %qT"
+msgstr "Tipos incompatible en la asignación en %L, %s a %s"
#: fortran/expr.c:1954
#, no-c-format
msgid "Pointer assignment target is not a POINTER at %L"
-msgstr ""
+msgstr "El objetivo de asignación de puntero no es un POINTER en %L"
#: fortran/expr.c:1962
#, no-c-format
msgid "'%s' in the pointer assignment at %L cannot be an l-value since it is a procedure"
-msgstr ""
+msgstr "'%s' en la asignación de puntero en %L no puede ser un l-valor ya que es un procedimiento"
#: fortran/expr.c:1971
#, no-c-format
msgid "Pointer assignment to non-POINTER at %L"
-msgstr ""
+msgstr "Asignación de puntero a un no-POINTER en %L"
#: fortran/expr.c:1979
#, no-c-format
msgid "Bad pointer object in PURE procedure at %L"
-msgstr ""
+msgstr "Objeto puntero erróneo en un procedimiento PURE en %L"
#: fortran/expr.c:1992
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Different types in pointer assignment at %L"
-msgstr "tipos incompatibles en la asignación"
+msgstr "Tipos diferentes en la asignación de puntero en %L"
#: fortran/expr.c:1999
#, no-c-format
msgid "Different kind type parameters in pointer assignment at %L"
-msgstr ""
+msgstr "Parámetros de tipo de afinidad diferentes en la asignación de puntero en %L"
#: fortran/expr.c:2006
#, no-c-format
msgid "Different ranks in pointer assignment at %L"
-msgstr ""
+msgstr "Rangos diferentes en la asignación de puntero en %L"
#: fortran/expr.c:2020
#, no-c-format
msgid "Different character lengths in pointer assignment at %L"
-msgstr ""
+msgstr "Longitudes de carácter diferentes en la asignación de puntero en %L"
#: fortran/expr.c:2028
#, no-c-format
msgid "Pointer assignment target is neither TARGET nor POINTER at %L"
-msgstr ""
+msgstr "El objetivo de asignación de puntero no es TARGET ni POINTER en %L"
#: fortran/expr.c:2035
#, no-c-format
msgid "Bad target in pointer assignment in PURE procedure at %L"
-msgstr ""
+msgstr "Objetivo erróneo en la asignación de puntero en el procedimiento PURE en %L"
#: fortran/expr.c:2041
#, no-c-format
msgid "Pointer assignment with vector subscript on rhs at %L"
-msgstr ""
+msgstr "Asignación de puntero con subíndice vectorial del lado derecho en %L"
#: fortran/expr.c:2059
#, no-c-format
msgid "The upper bound in the last dimension of the assumed_size array on the rhs of the pointer assignment at %L must be set"
-msgstr ""
+msgstr "Se debe establecer el límite superior en la última dimensión de la matriz de tamaño asumido en el lado derecho de la asignación de puntero en %L"
#: fortran/gfortranspec.c:232
#, c-format
@@ -5682,7 +5627,7 @@ msgid "overflowed output arg list for '%s'"
msgstr "lista de argumentos de salida desbordada para '%s'"
#: fortran/gfortranspec.c:352
-#, fuzzy, c-format
+#, c-format
msgid ""
"GNU Fortran comes with NO WARRANTY, to the extent permitted by law.\n"
"You may redistribute copies of GNU Fortran\n"
@@ -5694,7 +5639,7 @@ msgstr ""
"Puede distribuir copias de GNU Fortran\n"
"bajo los términos de la Licencia Pública General GPL.\n"
"Para más información sobre estos asuntos, vea el fichero llamado COPYING\n"
-"o ejecute el comando `info -f g77 Copying'.\n"
+"\n"
#: fortran/gfortranspec.c:374
#, c-format
@@ -5707,1390 +5652,1366 @@ msgid "no input files; unwilling to write output files"
msgstr "no hay ficheros de entrada; incapaz de escribir ficheros de salida"
#: fortran/gfortranspec.c:530
-#, fuzzy, c-format
+#, c-format
msgid "Driving:"
-msgstr "aviso:"
+msgstr "Conduciendo:"
#: fortran/interface.c:175
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Syntax error in generic specification at %C"
-msgstr "error de decodificación en la especificación del método"
+msgstr "Error sintáctico en la especificación genérica en %C"
#: fortran/interface.c:204
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Syntax error: Trailing garbage in INTERFACE statement at %C"
-msgstr "Texto espurio adicional al número en la declaración FORMAT en %0"
+msgstr "Error sintáctico: Basura al final de la declaración INTERFACE en %C"
#: fortran/interface.c:262
#, no-c-format
msgid "Syntax error: Trailing garbage in END INTERFACE statement at %C"
-msgstr ""
+msgstr "Error sintáctico: Basura al final de la declaración END INTERFACE en %C"
#: fortran/interface.c:273
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected a nameless interface at %C"
-msgstr "se esperaba una cadena de nombre aquí"
+msgstr "Se esperaba una interfaz sin nombre en %C"
#: fortran/interface.c:284
#, no-c-format
msgid "Expected 'END INTERFACE ASSIGNMENT (=)' at %C"
-msgstr ""
+msgstr "Se esperaba 'END INTERFACE ASSIGNMENT (=)' en %C"
#: fortran/interface.c:286
#, no-c-format
msgid "Expecting 'END INTERFACE OPERATOR (%s)' at %C"
-msgstr ""
+msgstr "Se esperaba 'END INTERFACE OPERATOR (%s)' en %C"
#: fortran/interface.c:300
#, no-c-format
msgid "Expecting 'END INTERFACE OPERATOR (.%s.)' at %C"
-msgstr ""
+msgstr "Se esperaba 'END INTERFACE OPERATOR (.%s.)' en %C"
#: fortran/interface.c:311
#, no-c-format
msgid "Expecting 'END INTERFACE %s' at %C"
-msgstr ""
+msgstr "Se esperaba 'END INTERFACE %s' en %C"
#: fortran/interface.c:523
#, no-c-format
msgid "Assignment operator interface at %L must be a SUBROUTINE"
-msgstr ""
+msgstr "La interfaz de operador de asignación en %L debe ser SUBROUTINE"
#: fortran/interface.c:532
#, no-c-format
msgid "Intrinsic operator interface at %L must be a FUNCTION"
-msgstr ""
+msgstr "La interfaz de operador intrínseco en %L debe ser FUNCTION"
#: fortran/interface.c:619
#, no-c-format
msgid "First argument of defined assignment at %L must be INTENT(IN) or INTENT(INOUT)"
-msgstr ""
+msgstr "El primer argumento de la asignación definida en %L debe ser INTENT(IN) o INTENT(OUT)"
#: fortran/interface.c:623
#, no-c-format
msgid "Second argument of defined assignment at %L must be INTENT(IN)"
-msgstr ""
+msgstr "El segundo argumento de la asignación definida en %L debe ser INTENT(IN)"
#: fortran/interface.c:629
#, no-c-format
msgid "First argument of operator interface at %L must be INTENT(IN)"
-msgstr ""
+msgstr "El primer argumento de la interfaz de operador en %L debe ser INTENT(IN)"
#: fortran/interface.c:633
#, no-c-format
msgid "Second argument of operator interface at %L must be INTENT(IN)"
-msgstr ""
+msgstr "El segundo argumento de la interfaz de operador en %L debe ser INTENT(IN)"
#: fortran/interface.c:640
#, no-c-format
msgid "Operator interface at %L conflicts with intrinsic interface"
-msgstr ""
+msgstr "La interfaz de operador en %L tiene conflictos con la interfaz intrínseca"
#: fortran/interface.c:645
#, no-c-format
msgid "Operator interface at %L has the wrong number of arguments"
-msgstr ""
+msgstr "La interfaz de operador en %L tiene el número erróneo de argumentos"
#: fortran/interface.c:894
#, no-c-format
msgid "Procedure '%s' in %s at %L is neither function nor subroutine"
-msgstr ""
+msgstr "El procedimiento '%s' en %s en %L no es ni función ni subrutina"
#: fortran/interface.c:948
#, no-c-format
msgid "Ambiguous interfaces '%s' and '%s' in %s at %L"
-msgstr ""
+msgstr "Interfaces '%s' y '%s' ambiguas en %s en %L"
#: fortran/interface.c:1197
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Keyword argument '%s' at %L is not in the procedure"
-msgstr "muy pocos argumentos para el procedimiento"
+msgstr "El argumento de palabra clave '%s' en %L no está en el procedimiento"
#: fortran/interface.c:1206
#, no-c-format
msgid "Keyword argument '%s' at %L is already associated with another actual argument"
-msgstr ""
+msgstr "El argumento de palabra clave '%s' en %L ya está asociado con otro argumento actual"
#: fortran/interface.c:1216
#, no-c-format
msgid "More actual than formal arguments in procedure call at %L"
-msgstr ""
+msgstr "Más argumentos actuales que formales en la llamada a procedimento en %L"
#: fortran/interface.c:1229
#, no-c-format
msgid "Missing alternate return spec in subroutine call at %L"
-msgstr ""
+msgstr "Falta la especificación de devolución alternativa en la llamada a subrutina en %L"
#: fortran/interface.c:1238
#, no-c-format
msgid "Unexpected alternate return spec in subroutine call at %L"
-msgstr ""
+msgstr "Especificación de devolución alternativa inesperada en la llamada a subrutina en %L"
#: fortran/interface.c:1250
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Type/rank mismatch in argument '%s' at %L"
-msgstr "no coincide el modo en el parámetro %d"
+msgstr "No coincide el tipo/rango en el argumento '%s' en %L"
#: fortran/interface.c:1265
#, no-c-format
msgid "Actual argument for '%s' cannot be an assumed-size array at %L"
-msgstr ""
+msgstr "El argumento actual para '%s' no puede ser una matriz de tamaño asumido en %L"
#: fortran/interface.c:1274
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Actual argument for '%s' must be a pointer at %L"
-msgstr "el argumento para `%s' debe ser de tipo entero"
+msgstr "El argumento actual para '%s' debe ser un puntero en %L"
#: fortran/interface.c:1284
#, no-c-format
msgid "Actual argument at %L must be definable to match dummy INTENT = OUT/INOUT"
-msgstr ""
+msgstr "El argumento actual en %L debe ser definible para coincidir con la prueba INTENT = OUT/INOUT"
#: fortran/interface.c:1305
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Missing actual argument for argument '%s' at %L"
-msgstr "pasando el valor negativo %qE para el argumento %P de %qD"
+msgstr "Falta el argumento actual para el argumento '%s' en %L"
#: fortran/interface.c:1490
#, no-c-format
msgid "Same actual argument associated with INTENT(%s) argument '%s' and INTENT(%s) argument '%s' at %L"
-msgstr ""
+msgstr "El mismo argumento actual está asociado con el argumento INTENT(%s) '%s' y el argumento INTENT(%s) '%s' en %L"
#: fortran/interface.c:1531
#, no-c-format
msgid "Procedure argument at %L is INTENT(IN) while interface specifies INTENT(%s)"
-msgstr ""
+msgstr "El argumento del procedimiento en %L es INTENT(IN) mientras que la interfaz especifica INTENT(%s)"
#: fortran/interface.c:1542
#, no-c-format
msgid "Procedure argument at %L is local to a PURE procedure and is passed to an INTENT(%s) argument"
-msgstr ""
+msgstr "El argumento del procedimiento en %L es local a un procedimiento PURE y se pasa a un argumento INTENT(%s)"
#: fortran/interface.c:1551
#, no-c-format
msgid "Procedure argument at %L is local to a PURE procedure and has the POINTER attribute"
-msgstr ""
+msgstr "El argumento del procedimiento en %L es local a un procedimiento PURE y tiene el atributo POINTER"
#: fortran/interface.c:1576
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Procedure '%s' called with an implicit interface at %L"
-msgstr "Avisar sobre llamadas con interfaz implícita"
+msgstr "Se llamó al procedimiento '%s' con una interfaz implícita en %L"
#: fortran/interface.c:1743
#, no-c-format
msgid "Function '%s' called in lieu of an operator at %L must be PURE"
-msgstr ""
+msgstr "La función '%s' llamada en lugar de un operador en %L debe ser PURE"
#: fortran/interface.c:1823
#, no-c-format
msgid "Entity '%s' at %C is already present in the interface"
-msgstr ""
+msgstr "La entidad '%s' en %C ya está presente en la interfaz"
#: fortran/intrinsic.c:2720
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Too many arguments in call to '%s' at %L"
-msgstr "demasiados argumentos en la llamada a `%s'"
+msgstr "Demasiados argumentos en la llamada a '%s' en %L"
#: fortran/intrinsic.c:2734
#, no-c-format
msgid "Can't find keyword named '%s' in call to '%s' at %L"
-msgstr ""
+msgstr "No se puede encontrar la palabra clave nombrada '%s' en la llamada a '%s' en %L"
#: fortran/intrinsic.c:2741
#, no-c-format
msgid "Argument '%s' is appears twice in call to '%s' at %L"
-msgstr ""
+msgstr "El argumento '%s' aparece dos veces en la llamada a '%s' en %L"
#: fortran/intrinsic.c:2755
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Missing actual argument '%s' in call to '%s' at %L"
-msgstr "demasiados argumentos en la llamada a `%s'"
+msgstr "Falta el argumento actual '%s' en la llamada a '%s' en %L"
#: fortran/intrinsic.c:2814
#, no-c-format
msgid "Type of argument '%s' in call to '%s' at %L should be %s, not %s"
-msgstr ""
+msgstr "El tipo del argumento '%s' en la llamada a '%s' en %L debe ser %s, no %s"
#: fortran/intrinsic.c:3118
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Ranks of arguments to elemental intrinsic '%s' differ at %L"
-msgstr "Muy pocos argumentos para el intrínseco `%A' en %0"
+msgstr "Los rangos de los argumentos para el intrínseco elemental '%s' difieren en %L"
#: fortran/intrinsic.c:3164
#, no-c-format
msgid "Intrinsic '%s' at %L is not included in the selected standard"
-msgstr ""
+msgstr "El intrínseco '%s' en %L no se incluye en el estándar seleccionado"
#: fortran/intrinsic.c:3267
#, no-c-format
msgid "Extension: Evaluation of nonstandard initialization expression at %L"
-msgstr ""
+msgstr "Extensión: Evaluación de una expresión de inicialización no estándar en %L"
#: fortran/intrinsic.c:3327
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Subroutine call to intrinsic '%s' at %L is not PURE"
-msgstr "Referencia de subrutina a la función intrínseca `%A' en %0"
+msgstr "La llamada de subrutina al intrínseco '%s' en %L no es PURE"
#: fortran/intrinsic.c:3402
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Extension: Conversion from %s to %s at %L"
-msgstr "conversión inválida de %qT a %qT"
+msgstr "Extensión: Conversión de %s a %s en %L"
#: fortran/intrinsic.c:3405
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Conversion from %s to %s at %L"
-msgstr "conversión de %q#T a %q#T"
+msgstr "Conversión de %s a %s en %L"
#: fortran/intrinsic.c:3453
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Can't convert %s to %s at %L"
-msgstr "no se puede convertir %qT a %qT en %s"
+msgstr "No se puede convertir %s a %s en %L"
#: fortran/io.c:415
-#, fuzzy
msgid "Positive width required"
-msgstr " pero se requieren %d"
+msgstr "Se requieren una anchura positiva"
+# ¿Se requiere un punto? ¿O un periodo? Revisar en el código fuente. cfuga
#: fortran/io.c:416
-#, fuzzy
msgid "Period required"
-msgstr " pero se requieren %d"
+msgstr "Se requiere un punto"
#: fortran/io.c:417
-#, fuzzy
msgid "Nonnegative width required"
-msgstr "anchura negativa en el campo de bit %qD"
+msgstr "Se requiere una anchura que no sea negativa"
#: fortran/io.c:418
-#, fuzzy
msgid "Unexpected element"
-msgstr "se esperaba un nombre de tipo"
+msgstr "Elemento inesperado"
#: fortran/io.c:419
-#, fuzzy
msgid "Unexpected end of format string"
-msgstr "constante de formato sin terminar"
+msgstr "Cadena de fin de formato inesperada"
#: fortran/io.c:436
-#, fuzzy
msgid "Missing leading left parenthesis"
-msgstr "falta el paréntesis que abre"
+msgstr "Falta el paréntesis izquierdo inicial"
#: fortran/io.c:474
msgid "Expected P edit descriptor"
-msgstr ""
+msgstr "Se esperaba un descriptor de edición P"
#. P requires a prior number.
#: fortran/io.c:482
msgid "P descriptor requires leading scale factor"
-msgstr ""
+msgstr "El descriptor P requiere un factor de escala inicial"
#. X requires a prior number if we're being pedantic.
#: fortran/io.c:487
#, no-c-format
msgid "Extension: X descriptor requires leading space count at %C"
-msgstr ""
+msgstr "Extensión: El descriptor X requiere una cuenta de espacios iniciales en %C"
#: fortran/io.c:507
#, no-c-format
msgid "Extension: $ descriptor at %C"
-msgstr ""
+msgstr "Extensión: Descriptor $ en %C"
#: fortran/io.c:512
-#, fuzzy
msgid "$ must be the last specifier"
-msgstr "especificadores de acceso múltiples"
+msgstr "$ debe ser el último especificador"
#: fortran/io.c:557
msgid "Repeat count cannot follow P descriptor"
-msgstr ""
+msgstr "La cuenta de repetición no puede estar a continuación del descriptor P"
#: fortran/io.c:620
-#, fuzzy
msgid "Positive exponent width required"
-msgstr "no hay anchura del exponente (desplazamiento %d)"
+msgstr "Se requiere anchura del exponente positiva"
#: fortran/io.c:721 fortran/io.c:773
#, no-c-format
msgid "Extension: Missing comma at %C"
-msgstr ""
+msgstr "Extensión: Falta una coma en %C"
#: fortran/io.c:788 fortran/io.c:791
-#, fuzzy, no-c-format
+#, no-c-format
msgid "%s in format string at %C"
-msgstr "formato de cadena nulo"
+msgstr "%s en la cadena de formato en %C"
#: fortran/io.c:832
#, no-c-format
msgid "Format statement in module main block at %C."
-msgstr ""
+msgstr "Declaración de formato en el módulo bloque principal en %C."
#: fortran/io.c:838
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Missing format label at %C"
-msgstr "Falta el término de parámetro formal"
+msgstr "Falta la etiqueta de formato en %C"
#: fortran/io.c:896 fortran/io.c:920
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Duplicate %s specification at %C"
-msgstr "Declaración %s %qs duplicada"
+msgstr "Especificación %s duplicada en %C"
#: fortran/io.c:927
#, no-c-format
msgid "Variable tag cannot be INTENT(IN) at %C"
-msgstr ""
+msgstr "La etiqueta de variable no puede ser INTENT(IN) en %C"
#: fortran/io.c:934
#, no-c-format
msgid "Variable tag cannot be assigned in PURE procedure at %C"
-msgstr ""
+msgstr "La etiqueta de variable no se puede asignar en un procedimiento PURE en %C"
#: fortran/io.c:971
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Duplicate %s label specification at %C"
-msgstr "declaración duplicada de la etiqueta %qs"
+msgstr "Especifición de etiqueta %s duplicada en %C"
#: fortran/io.c:993
-#, fuzzy, no-c-format
+#, no-c-format
msgid "%s tag at %L must be of type %s"
-msgstr "%qD no es un miembro de tipo %qT"
+msgstr "La etiqueta %s en %L debe ser de tipo %s"
#: fortran/io.c:1004
#, no-c-format
msgid "Constant expression in FORMAT tag at %L must be of type default CHARACTER"
-msgstr ""
+msgstr "La expresión constante en la etiqueta FORMAT en %L debe ser del tipo por defecto CHARACTER"
#: fortran/io.c:1017
#, no-c-format
msgid "%s tag at %L must be of type %s or %s"
-msgstr ""
+msgstr "La etiqueta %s en %L debe ser de tipo %s o %s"
#: fortran/io.c:1025
#, no-c-format
msgid "Obsolete: ASSIGNED variable in FORMAT tag at %L"
-msgstr ""
+msgstr "Obsoleto: Variable ASSIGNED en la etiqueta FORMAT en %L"
#: fortran/io.c:1030
#, no-c-format
msgid "Variable '%s' at %L has not been assigned a format label"
-msgstr ""
+msgstr "No se ha asignado una etiqueta de formato a la variable '%s' en %L"
#: fortran/io.c:1045
#, no-c-format
msgid "Extension: Character array in FORMAT tag at %L"
-msgstr ""
+msgstr "Extensión: Matriz de caracteres en la etiqueta FORMAT en %L"
#: fortran/io.c:1052
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Extension: Non-character in FORMAT tag at %L"
-msgstr "Coma sobrante en la declaración FORMAT en %0"
+msgstr "Extensión: Elemento que no es carácter en la etiqueta FORMAT en %L"
#: fortran/io.c:1063
-#, fuzzy, no-c-format
+#, no-c-format
msgid "%s tag at %L must be scalar"
-msgstr "%s del parámetro %d debe ser una ubicación"
+msgstr "La etiqueta %s en %L debe ser escalar"
#: fortran/io.c:1069
#, no-c-format
msgid "Fortran 2003: IOMSG tag at %L"
-msgstr ""
+msgstr "Fortran 2003: Etiqueta IOMSG en %L"
#: fortran/io.c:1076
#, no-c-format
msgid "Fortran 95 requires default INTEGER in IOSTAT tag at %L"
-msgstr ""
+msgstr "Fortran 95 requiere un INTEGER por defecto en la etiqueta IOSTAT en %L"
#: fortran/io.c:1084
#, no-c-format
msgid "Fortran 95 requires default INTEGER in SIZE tag at %L"
-msgstr ""
+msgstr "Fortran 95 requiere un INTEGER por defecto en la etiqueta SIZE en %L"
#: fortran/io.c:1092
#, no-c-format
msgid "Extension: CONVERT tag at %L"
-msgstr ""
+msgstr "Extensión: etiqueta CONVERT en %L"
#: fortran/io.c:1261
#, no-c-format
msgid "OPEN statement not allowed in PURE procedure at %C"
-msgstr ""
+msgstr "No se permite una declaración OPEN en un procedimiento PURE en %C"
#: fortran/io.c:1369
#, no-c-format
msgid "CLOSE statement not allowed in PURE procedure at %C"
-msgstr ""
+msgstr "No se permite una declaración CLOSE en un procedimiento PURE en %C"
#: fortran/io.c:1495 fortran/match.c:1457
#, no-c-format
msgid "%s statement not allowed in PURE procedure at %C"
-msgstr ""
+msgstr "No se permite una declaración %s en un procedimiento PURE en %C"
#: fortran/io.c:1555
#, no-c-format
msgid "Fortran 2003: FLUSH statement at %C"
-msgstr ""
+msgstr "Fortran 2003: Declaración FLUSH en %C"
#: fortran/io.c:1615
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Duplicate UNIT specification at %C"
-msgstr "Declaración %s %qs duplicada"
+msgstr "Especificación UNIT duplicada en %C"
#: fortran/io.c:1671
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Duplicate format specification at %C"
-msgstr "carácter de especificación de formato erróneo (desplazamiento %d)"
+msgstr "Especificación de formato duplicada en %C"
#: fortran/io.c:1688
#, no-c-format
msgid "Symbol '%s' in namelist '%s' is INTENT(IN) at %C"
-msgstr ""
+msgstr "El símbolo '%s' en la lista de nombres '%s' es INTENT(IN) en %C"
#: fortran/io.c:1724
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Duplicate NML specification at %C"
-msgstr "Declaración %s %qs duplicada"
+msgstr "Especificación NML duplicada en %C"
#: fortran/io.c:1733
#, no-c-format
msgid "Symbol '%s' at %C must be a NAMELIST group name"
-msgstr ""
+msgstr "El símbolo '%s' en %C debe ser un nombre de grupo NAMELIST"
#: fortran/io.c:1771
#, no-c-format
msgid "END tag at %C not allowed in output statement"
-msgstr ""
+msgstr "No se permite la etiqueta END en %C en la declaración de salida"
#: fortran/io.c:1831
#, no-c-format
msgid "UNIT specification at %L must be an INTEGER expression or a CHARACTER variable"
-msgstr ""
+msgstr "La especificación UNIT en %L debe ser una expresión INTEGER o una variable CHARACTER"
#: fortran/io.c:1840
#, no-c-format
msgid "Internal unit with vector subscript at %L"
-msgstr ""
+msgstr "Unidad interna con subíndice vectorial en %L"
#: fortran/io.c:1848
#, no-c-format
msgid "External IO UNIT cannot be an array at %L"
-msgstr ""
+msgstr "Un IO UNIT externo no puede ser matriz en %C"
#: fortran/io.c:1858
-#, fuzzy, no-c-format
+#, no-c-format
msgid "ERR tag label %d at %L not defined"
-msgstr "se usa la etiqueta %qD pero no está definida"
+msgstr "La etiqueta ER %d en %L no está definida"
#: fortran/io.c:1870
-#, fuzzy, no-c-format
+#, no-c-format
msgid "END tag label %d at %L not defined"
-msgstr "se usa la etiqueta %qD pero no está definida"
+msgstr "La etiqueta END %d en %L no está definida"
#: fortran/io.c:1882
-#, fuzzy, no-c-format
+#, no-c-format
msgid "EOR tag label %d at %L not defined"
-msgstr "se usa la etiqueta %qD pero no está definida"
+msgstr "La etiqueta EOR %d en %L no está definida"
#: fortran/io.c:1892
-#, fuzzy, no-c-format
+#, no-c-format
msgid "FORMAT label %d at %L not defined"
-msgstr "se usa la etiqueta %qD pero no está definida"
+msgstr "La etiqueta FORMAT %d en %L no está definida"
#: fortran/io.c:2013
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Syntax error in I/O iterator at %C"
-msgstr "error sintáctico en la acción"
+msgstr "Error sintáctico en el iterador de E/S en %C"
#: fortran/io.c:2044
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected variable in READ statement at %C"
-msgstr "Coma sobrante en la declaración FORMAT en %0"
+msgstr "Se esperaba una variable en la declaración READ en %C"
#: fortran/io.c:2050
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected expression in %s statement at %C"
-msgstr "expresión sin tipo como argumento %d"
+msgstr "Se esperaba una expresión en la declaración %s en %C"
#: fortran/io.c:2061
#, no-c-format
msgid "Variable '%s' in input list at %C cannot be INTENT(IN)"
-msgstr ""
+msgstr "La variable '%s' en la lista de entrada en %C no puede ser INTENT(IN)"
#: fortran/io.c:2070
#, no-c-format
msgid "Cannot read to variable '%s' in PURE procedure at %C"
-msgstr ""
+msgstr "No se puede leer la variable '%s' en el procedimiento PURE en %C"
#: fortran/io.c:2087
#, no-c-format
msgid "Cannot write to internal file unit '%s' at %C inside a PURE procedure"
-msgstr ""
+msgstr "No se puede escribir a la unidad de fichero interno '%s' en %C dentro de un procedimiento PURE"
#. A general purpose syntax error.
#: fortran/io.c:2147 fortran/io.c:2515 fortran/gfortran.h:1666
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Syntax error in %s statement at %C"
-msgstr "Declaración %A inválida en %0"
+msgstr "Error sintáctico en la declaración %s en %C"
#: fortran/io.c:2364
#, no-c-format
msgid "PRINT namelist at %C is an extension"
-msgstr ""
+msgstr "La lista de nombres PRINT en %C es una extensión"
#: fortran/io.c:2476
#, no-c-format
msgid "Extension: Comma before output item list at %C is an extension"
-msgstr ""
+msgstr "Extensión: Una coma antes de una lista de elementos de salida en %C es una extensión"
#: fortran/io.c:2485
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected comma in I/O list at %C"
-msgstr "Coma sobrante en la declaración FORMAT en %0"
+msgstr "Se esperaba una coma en la lista E/S en %C"
#: fortran/io.c:2547
-#, fuzzy, no-c-format
+#, no-c-format
msgid "PRINT statement at %C not allowed within PURE procedure"
-msgstr "La declaración RETURN en %0 es inválida dentro de una unidad de programa principal"
+msgstr "No se permite la declaración PRINT en %C es inválida dentro un procedimiento PURE"
#: fortran/io.c:2686 fortran/io.c:2737
#, no-c-format
msgid "INQUIRE statement not allowed in PURE procedure at %C"
-msgstr ""
+msgstr "No se permite la declaración INQUIRE en un procedimiento PURE en %C"
#: fortran/io.c:2713
-#, fuzzy, no-c-format
+#, no-c-format
msgid "IOLENGTH tag invalid in INQUIRE statement at %C"
-msgstr "Declaración %A inválida en %0"
+msgstr "Etiqueta IOLENGHT inválida en la declaración INQUIRE en %C"
#: fortran/io.c:2723
#, no-c-format
msgid "INQUIRE statement at %L cannot contain both FILE and UNIT specifiers"
-msgstr ""
+msgstr "La declaración INQUIRE en %L no puede contener especificadores FILE y UNIT al mismo tiempo"
#: fortran/io.c:2730
#, no-c-format
msgid "INQUIRE statement at %L requires either FILE or UNIT specifier"
-msgstr ""
+msgstr "La declaración INQUIRE en %L requiere un especificador FILE o UNIT"
#: fortran/match.c:179
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Integer too large at %C"
-msgstr "Entero en %0 demasiado grande"
+msgstr "Entero demasiado grande en %C"
#: fortran/match.c:239 fortran/parse.c:329
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Too many digits in statement label at %C"
-msgstr "Demasiadas dimensiones en %0"
+msgstr "Demasiados dígitos en la declaración de etiqueta en %C"
#: fortran/match.c:245 fortran/parse.c:332
#, no-c-format
msgid "Statement label at %C is zero"
-msgstr ""
+msgstr "La etiqueta de declaración en %C es cero"
#: fortran/match.c:278
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Label name '%s' at %C is ambiguous"
-msgstr "la referencia a %qD es ambigua"
+msgstr "El nombre de etiqueta '%s' en %C es ambigua"
#: fortran/match.c:284
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Duplicate construct label '%s' at %C"
-msgstr "Valor de case duplicado: %<default%>"
+msgstr "Etiqueta construct '%s' duplicada en %C"
#: fortran/match.c:408
#, no-c-format
msgid "Name at %C is too long"
-msgstr ""
+msgstr "El nombre en %C es demasiado largo"
#: fortran/match.c:525
#, no-c-format
msgid "Loop variable at %C cannot be a sub-component"
-msgstr ""
+msgstr "La variable de ciclo en %C no puede ser un subcomponente"
#: fortran/match.c:531
#, no-c-format
msgid "Loop variable '%s' at %C cannot be INTENT(IN)"
-msgstr ""
+msgstr "La variable de ciclo '%s' en %C no puede ser INTENT(IN)"
#: fortran/match.c:538
#, no-c-format
msgid "Loop variable at %C cannot have the POINTER attribute"
-msgstr ""
+msgstr "La variable de ciclo en %C no puede tener el atributo POINTER"
#: fortran/match.c:568
#, no-c-format
msgid "Expected a step value in iterator at %C"
-msgstr ""
+msgstr "Se esperaba un valor de paso en el iterador en %C"
#: fortran/match.c:580
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Syntax error in iterator at %C"
-msgstr "error sintáctico en la acción"
+msgstr "Error sintáctico en el iterador en %C"
#: fortran/match.c:816
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid form of PROGRAM statement at %C"
-msgstr "Forma inválida para la declaración %A en %0"
+msgstr "Forma inválida de la declaración PROGRAM en %C"
#: fortran/match.c:850
#, no-c-format
msgid "Cannot assign to a PARAMETER variable at %C"
-msgstr ""
+msgstr "No se puede asignar a una variable PARAMETER en %C"
#: fortran/match.c:939 fortran/match.c:1015
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Obsolete: arithmetic IF statement at %C"
-msgstr "Declaración VXT sin soporte en %0"
+msgstr "Obsoleto: declaración IF aritmética en %C"
#: fortran/match.c:986
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Syntax error in IF-expression at %C"
-msgstr "error sintáctico en la lista de excepción"
+msgstr "Error sintáctico en la expresión IF en %C"
#: fortran/match.c:998
#, no-c-format
msgid "Block label not appropriate for arithmetic IF statement at %C"
-msgstr ""
+msgstr "La etiqueta de bloque no es apropiada para la declaración IF aritmética en %C"
#: fortran/match.c:1040
#, no-c-format
msgid "Block label is not appropriate IF statement at %C"
-msgstr ""
+msgstr "La etiqueta de bloque no es una declaración IF apropiada en %C"
#: fortran/match.c:1111
#, no-c-format
msgid "Unclassifiable statement in IF-clause at %C"
-msgstr ""
+msgstr "Declaración inclasificable en la cláusula IF en %C"
#: fortran/match.c:1118
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Syntax error in IF-clause at %C"
-msgstr "error sintáctico en la acción"
+msgstr "Error sintáctico en la cláusula IF en %C"
#: fortran/match.c:1162
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Unexpected junk after ELSE statement at %C"
-msgstr "Declaración VXT sin soporte en %0"
+msgstr "Basura inesperada después de la declaración ELSE en %C"
#: fortran/match.c:1168 fortran/match.c:1203
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Label '%s' at %C doesn't match IF label '%s'"
-msgstr "La etiqueta %s para bloquear no coincide con el bb %d\n"
+msgstr "La etiqueta '%s' en %C no coincide con la etiqueta IF '%s'"
#: fortran/match.c:1197
#, no-c-format
msgid "Unexpected junk after ELSE IF statement at %C"
-msgstr ""
+msgstr "Basura inesperada después de la declaración ELSE IF en %C"
#: fortran/match.c:1360
#, no-c-format
msgid "Name '%s' in %s statement at %C is not a loop name"
-msgstr ""
+msgstr "El nombre '%s' en la declaración %s en %C no es un nombre de ciclo"
#: fortran/match.c:1375
-#, fuzzy, no-c-format
+#, no-c-format
msgid "%s statement at %C is not within a loop"
-msgstr "la declaración continue no está dentro de un ciclo"
+msgstr "La declaración %s en %C no está dentro de un ciclo"
#: fortran/match.c:1378
-#, fuzzy, no-c-format
+#, no-c-format
msgid "%s statement at %C is not within loop '%s'"
-msgstr "la declaración break no está dentro de un ciclo o switch"
+msgstr "La declaración %s en %C no está dentro del ciclo '%s'"
#: fortran/match.c:1435
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Too many digits in STOP code at %C"
-msgstr "Demasiadas dimensiones en %0"
+msgstr "Demasiados dígitos en el código STOP en %C"
#: fortran/match.c:1488
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Obsolete: PAUSE statement at %C"
-msgstr "Declaración VXT sin soporte en %0"
+msgstr "Obsoleto: declaración PAUSE en %C"
#: fortran/match.c:1537
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Obsolete: ASSIGN statement at %C"
-msgstr "Declaración VXT sin soporte en %0"
+msgstr "Obsoleto: declaración ASSIGN en %C"
#: fortran/match.c:1583
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Obsolete: Assigned GOTO statement at %C"
-msgstr "Declaración VXT sin soporte en %0"
+msgstr "Obsoleto: declaración GOTO asignada en %C"
#: fortran/match.c:1630 fortran/match.c:1682
#, no-c-format
msgid "Statement label list in GOTO at %C cannot be empty"
-msgstr ""
+msgstr "La lista de etiquetas de declaración en GOTO en %C no puede estar vacía"
#: fortran/match.c:1766
#, no-c-format
msgid "Bad allocate-object in ALLOCATE statement at %C for a PURE procedure"
-msgstr ""
+msgstr "Objeto de alojamiento erróneo en la declaración ALLOCATE en %C para un procedimiento PURE"
#: fortran/match.c:1786
#, no-c-format
msgid "STAT variable '%s' of ALLOCATE statement at %C cannot be INTENT(IN)"
-msgstr ""
+msgstr "La variable STAT '%s' de la declaración ALLOCATE en %C no puede ser INTENT(IN)"
#: fortran/match.c:1794
#, no-c-format
msgid "Illegal STAT variable in ALLOCATE statement at %C for a PURE procedure"
-msgstr ""
+msgstr "Variable STAT ilegal en la declaración ALLOCATE en %C para un procedimiento PURE"
#: fortran/match.c:1801 fortran/match.c:1967
-#, fuzzy, no-c-format
+#, no-c-format
msgid "STAT expression at %C must be a variable"
-msgstr "la expresión %s debe ser referenciable"
+msgstr "La expresión STAT en %C debe ser una variable"
#: fortran/match.c:1856
#, no-c-format
msgid "Illegal variable in NULLIFY at %C for a PURE procedure"
-msgstr ""
+msgstr "Variable ilegal en NULLIFY en %C para un procedimiento PURE"
#: fortran/match.c:1934
#, no-c-format
msgid "Illegal deallocate-expression in DEALLOCATE at %C for a PURE procedure"
-msgstr ""
+msgstr "Expresión de desalojo ilegal en DEALLOCATE en %C para un procedimiento PURE"
#: fortran/match.c:1953
#, no-c-format
msgid "STAT variable '%s' of DEALLOCATE statement at %C cannot be INTENT(IN)"
-msgstr ""
+msgstr "La variable STAT '%s' de la declaración DEALLOCATE en %C no puede ser INTENT(IN)"
#: fortran/match.c:1960
#, no-c-format
msgid "Illegal STAT variable in DEALLOCATE statement at %C for a PURE procedure"
-msgstr ""
+msgstr "Variable STAT ilegal en la declaración DEALLOCATE en %C para un procedimiento PURE"
#: fortran/match.c:2009
#, no-c-format
msgid "Alternate RETURN statement at %C is only allowed within a SUBROUTINE"
-msgstr ""
+msgstr "La declaración RETURN alternativa en %C sólo se permite dentro de una SUBROUTINE"
#: fortran/match.c:2040
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Extension: RETURN statement in main program at %C"
-msgstr "La declaración RETURN en %0 es inválida dentro de una unidad de programa principal"
+msgstr "Extensión: declaración RETURN en el programa principal en %C"
#: fortran/match.c:2235
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Syntax error in common block name at %C"
-msgstr "error de sintaxis en la lista de parámetros de macro"
+msgstr "Error sintáctico en el nombre de bloque común en %C"
#: fortran/match.c:2271
#, no-c-format
msgid "Symbol '%s' at %C is already an external symbol that is not COMMON"
-msgstr ""
+msgstr "El símbolo '%s' en %C ya es un símbolo externo que no es COMMON"
#: fortran/match.c:2318
#, no-c-format
msgid "Symbol '%s' at %C is already in a COMMON block"
-msgstr ""
+msgstr "El símbolo '%s' en %C ya está en un bloque COMMON"
#: fortran/match.c:2330
#, no-c-format
msgid "Previously initialized symbol '%s' in blank COMMON block at %C"
-msgstr ""
+msgstr "Símbolo '%s' previamente inicializado en un bloque COMMON en blanco en %C"
#: fortran/match.c:2333
#, no-c-format
msgid "Previously initialized symbol '%s' in COMMON block '%s' at %C"
-msgstr ""
+msgstr "Símbolo '%s' previamente inicializado en un bloque COMMON '%s' en %C"
#: fortran/match.c:2345
#, no-c-format
msgid "Derived type variable in COMMON at %C does not have the SEQUENCE attribute"
-msgstr ""
+msgstr "La variable de tipo derivado en COMMON en %C no tiene el atributo SEQUENCE"
#: fortran/match.c:2368
#, no-c-format
msgid "Array specification for symbol '%s' in COMMON at %C must be explicit"
-msgstr ""
+msgstr "La especificación de matriz para el símbolo '%s' en COMMON en %C debe ser explícita"
#: fortran/match.c:2379
#, no-c-format
msgid "Symbol '%s' in COMMON at %C cannot be a POINTER array"
-msgstr ""
+msgstr "El símbolo '%s' en COMMON en %C no puede ser una matriz POINTER"
#: fortran/match.c:2411
#, no-c-format
msgid "Symbol '%s', in COMMON block '%s' at %C is being indirectly equivalenced to another COMMON block '%s'"
-msgstr ""
+msgstr "El símbolo '%s', en el bloque COMMON '%s' en %C está siendo indirectamente equivalente a otro bloque COMMON '%s'"
#: fortran/match.c:2521
#, no-c-format
msgid "Namelist group name '%s' at %C already has a basic type of %s"
-msgstr ""
+msgstr "El nombre de grupo de lista de nombres '%s' en %C ya tiene un tipo básico de %s"
#: fortran/match.c:2528
#, no-c-format
msgid "Namelist group name '%s' at %C already is USE associated and cannot be respecified."
-msgstr ""
+msgstr "El nombre de grupo de lista de nombres '%s' en %C ya está asociado con USE y no se puede reespecificar."
#: fortran/match.c:2555
#, no-c-format
msgid "Assumed size array '%s' in namelist '%s'at %C is not allowed."
-msgstr ""
+msgstr "No se permite la matriz de tamaño asumido '%s' en la lista de nombres '%s' en %C."
#: fortran/match.c:2561
#, no-c-format
msgid "Assumed shape array '%s' in namelist '%s' at %C is an extension."
-msgstr ""
+msgstr "La matriz de forma asumida '%s' en la lista de nombres '%s' en %C es una extensión."
#: fortran/match.c:2689
#, no-c-format
msgid "Derived type component %C is not a permitted EQUIVALENCE member"
-msgstr ""
+msgstr "El componente de tipo derivado %C no es un miembro EQUIVALENCE permitido"
#: fortran/match.c:2698
#, no-c-format
msgid "Array reference in EQUIVALENCE at %C cannot be an array section"
-msgstr ""
+msgstr "La referencia a matriz en EQUIVALENCE en %C no puede ser una sección de matriz"
#: fortran/match.c:2727
#, no-c-format
msgid "EQUIVALENCE at %C requires two or more objects"
-msgstr ""
+msgstr "El EQUIVALENCE en %C requiere dos o más objetos"
#: fortran/match.c:2741
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Attempt to indirectly overlap COMMON blocks %s and %s by EQUIVALENCE at %C"
-msgstr "Se intentó extender el área COMMON más allá de su punto de inicio a través de EQUIVALENCE de `%A'"
+msgstr "Se intentó sobreescribir indirectamente los bloques COMMON %s y %s con EQUIVALENCE en %C"
#: fortran/match.c:2893
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Statement function at %L is recursive"
-msgstr "La función de declaración `%A' está definida en %0 pero no se usa"
+msgstr "La función de declaración en %L es recursiva"
#: fortran/match.c:2983
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected initialization expression in CASE at %C"
-msgstr "inicialización de la expresión new con `='"
+msgstr "Se esperaba la inicialización de la expresión en CASE en %C"
#: fortran/match.c:3010
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected case name of '%s' at %C"
-msgstr "se esperaba una cadena de nombre aquí"
+msgstr "Se esperaba el nombre de case de '%s' en %C"
#: fortran/match.c:3054
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Unexpected CASE statement at %C"
-msgstr "Declaración VXT sin soporte en %0"
+msgstr "Declaración CASE inesperada en %C"
#: fortran/match.c:3106
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Syntax error in CASE-specification at %C"
-msgstr "error sintáctico en la lista de excepción"
+msgstr "Error sintáctico en la especificación CASE en %C"
#: fortran/match.c:3226
#, no-c-format
msgid "ELSEWHERE statement at %C not enclosed in WHERE block"
-msgstr ""
+msgstr "La declaración ELSEWHERE en %C no está dentro de un bloque WHERE"
#: fortran/match.c:3257
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Label '%s' at %C doesn't match WHERE label '%s'"
-msgstr "La etiqueta %s para bloquear no coincide con el bb %d\n"
+msgstr "La etiqueta '%s' en %C no coincide con la etiqueta WHERE '%s'"
#: fortran/match.c:3352
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Syntax error in FORALL iterator at %C"
-msgstr "error sintáctico en la acción"
+msgstr "Error sintáctico en el iterador FORALL en %C"
#: fortran/matchexp.c:29
-#, fuzzy, c-format
+#, c-format
msgid "Syntax error in expression at %C"
-msgstr "error sintáctico en la lista de excepción"
+msgstr "Error sintáctico en la expresión en %C"
#: fortran/matchexp.c:73
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Bad character '%c' in OPERATOR name at %C"
-msgstr "Carácter inválido '%c' en #if"
+msgstr "Carácter '%c' erróneo en el nombre OPERATOR en %C"
#: fortran/matchexp.c:81
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The name '%s' cannot be used as a defined operator at %C"
-msgstr "no se puede usar \"%s\" como un nombre de macro porque es un operador en C++"
+msgstr "El nombre '%s' no se puede usar como un operador definido en %C"
#: fortran/matchexp.c:160
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected a right parenthesis in expression at %C"
-msgstr "Se esperaba un operador binario entre las expresiones en %0 y en %1"
+msgstr "Se esperaba un paréntesis derecho en la expresión en %C"
#: fortran/matchexp.c:302
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected exponent in expression at %C"
-msgstr "Se esperaba un operador binario entre las expresiones en %0 y en %1"
+msgstr "Se esperaba un exponente en la expresión en %C"
#: fortran/matchexp.c:338 fortran/matchexp.c:442
#, no-c-format
msgid "Extension: Unary operator following arithmetic operator (use parentheses) at %C"
-msgstr ""
+msgstr "Extensión: Operador unario a continuación de un operador aritmético (usar paréntesis) en %C"
#: fortran/misc.c:42
#, no-c-format
msgid "Out of memory-- malloc() failed"
-msgstr ""
+msgstr "Memoria agotada-- falló malloc()"
#: fortran/module.c:529
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Missing generic specification in USE statement at %C"
-msgstr "Falta el especificador %A en la declaración en %0"
+msgstr "Falta la especificación genérica en la declaración USE en %C"
#: fortran/module.c:837
#, no-c-format
msgid "Reading module %s at line %d column %d: %s"
-msgstr ""
+msgstr "Leyendo el módulo %s en la línea %d columna %d: %s"
#: fortran/module.c:841
#, no-c-format
msgid "Writing module %s at line %d column %d: %s"
-msgstr ""
+msgstr "Escribiendo el módulo %s en la línea %d columna %d: %s"
#: fortran/module.c:845
#, no-c-format
msgid "Module %s at line %d column %d: %s"
-msgstr ""
+msgstr "Módulo %s en la línea %d columna %d: %s"
#: fortran/module.c:887
-#, fuzzy
msgid "Unexpected EOF"
-msgstr "nodo inesperado"
+msgstr "Fin de fichero inesperado"
#: fortran/module.c:919
-#, fuzzy
msgid "Unexpected end of module in string constant"
-msgstr "conversión obsoleta de una constante de cadena a %qT"
+msgstr "Fin de módulo inesperado en la constante de cadena"
#: fortran/module.c:973
-#, fuzzy
msgid "Integer overflow"
-msgstr "desbordamiento entero en la expresión"
+msgstr "Desbordamiento entero"
#: fortran/module.c:1004
msgid "Name too long"
-msgstr ""
+msgstr "Nombre demasiado largo"
#: fortran/module.c:1111
msgid "Bad name"
-msgstr ""
+msgstr "Nombre erróneo"
#: fortran/module.c:1155
-#, fuzzy
msgid "Expected name"
-msgstr "se esperaba un nombre de tipo"
+msgstr "Se esperaba un nombre"
#: fortran/module.c:1158
-#, fuzzy
msgid "Expected left parenthesis"
-msgstr "se esperaba un nombre de tipo"
+msgstr "Se esperaba un paréntesis izquierdo"
#: fortran/module.c:1161
msgid "Expected right parenthesis"
-msgstr ""
+msgstr "Se esperaba un paréntesis derecho"
#: fortran/module.c:1164
-#, fuzzy
msgid "Expected integer"
-msgstr "se esperaba un nombre de tipo"
+msgstr "Se esperaba un entero"
#: fortran/module.c:1167
-#, fuzzy
msgid "Expected string"
-msgstr "se esperaba una cadena de nombre aquí"
+msgstr "Se esperaba una cadena"
#: fortran/module.c:1191
-#, fuzzy
msgid "find_enum(): Enum not found"
-msgstr "no se encuentra el campo %qs"
+msgstr "find_enum(): No se encuentra el enumerador"
#: fortran/module.c:1206
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Error writing modules file: %s"
-msgstr "%s:error al escribir el fichero de salida '%s'\n"
+msgstr "Error al escribir el fichero de módulos: %s"
#: fortran/module.c:1565
-#, fuzzy
msgid "Expected attribute bit name"
-msgstr "no es necesario el atributo packed"
+msgstr "Se esperaba un nombre de atributo de bit"
#: fortran/module.c:2322
-#, fuzzy
msgid "Expected integer string"
-msgstr "se esperaba una cadena de nombre aquí"
+msgstr "Se esperaba una cadena entera"
#: fortran/module.c:2326
msgid "Error converting integer"
-msgstr ""
+msgstr "Error al convertir el entero"
#: fortran/module.c:2349
-#, fuzzy
msgid "Expected real string"
-msgstr "se esperaba una cadena de nombre aquí"
+msgstr "Se esperaba una cadena real"
#: fortran/module.c:2496
-#, fuzzy
msgid "Expected expression type"
-msgstr "expresión de dirección inesperada"
+msgstr "Se esperaba una expresión de tipo"
#: fortran/module.c:2542
-#, fuzzy
msgid "Bad operator"
-msgstr "operando erróneo"
+msgstr "Operador erróneo"
#: fortran/module.c:2628
-#, fuzzy
msgid "Bad type in constant expression"
-msgstr "desbordamiento en la expresión constante"
+msgstr "Tipo erróneo en la expresión constante"
#: fortran/module.c:2665
#, no-c-format
msgid "Namelist %s cannot be renamed by USE association to %s."
-msgstr ""
+msgstr "La lista de nombres %s no se puede renombrar por asociación de USE a %s."
#: fortran/module.c:3333
#, no-c-format
msgid "Symbol '%s' referenced at %L not found in module '%s'"
-msgstr ""
+msgstr "El símbolo '%s' referenciado en %L no se encuentra en el módulo '%s'"
#: fortran/module.c:3341
#, no-c-format
msgid "User operator '%s' referenced at %L not found in module '%s'"
-msgstr ""
+msgstr "El operador de usuario '%s' referenciado en %L no se encuentra en el módulo '%s'"
#: fortran/module.c:3347
#, no-c-format
msgid "Intrinsic operator '%s' referenced at %L not found in module '%s'"
-msgstr ""
+msgstr "El operador intrínseco '%s' referenciado en %L no se encuentra en el módulo '%s'"
#: fortran/module.c:3702
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Can't open module file '%s' for writing at %C: %s"
-msgstr "%s: no se puede abrir el fichero '%s' para lectura: %s\n"
+msgstr "No se puede abrir el fichero de módulo '%s' para escritura en %C: %s"
+# El mensaje de error seguramente está mal redactado. cfuga
#: fortran/module.c:3727
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Error writing module file '%s' for writing: %s"
-msgstr "%s: error al escribir al fichero '%s': %s\n"
+msgstr "Error al escribir al fichero de módulo '%s' para escritura: %s"
#: fortran/module.c:3748
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Can't open module file '%s' for reading at %C: %s"
-msgstr "%s: no se puede abrir el fichero '%s' para lectura: %s\n"
+msgstr "No se puede abrir el fichero de módulo '%s' para lectura en %C: %s"
#: fortran/module.c:3762
-#, fuzzy
msgid "Unexpected end of module"
-msgstr "nodo inesperado"
+msgstr "Fin de módulo inesperado"
+# No se puede hacer el mismo juego de palabras que en inglés. cfuga
#: fortran/module.c:3770
#, no-c-format
msgid "Can't USE the same module we're building!"
-msgstr ""
+msgstr "¡No se puede hacer USE del mismo módulo que estamos construyendo!"
#: fortran/options.c:231
#, no-c-format
msgid "Reading file '%s' as free form."
-msgstr ""
+msgstr "Leyendo el fichero '%s' como forma libre."
#: fortran/options.c:241
#, no-c-format
msgid "'-fd-lines-as-comments' has no effect in free form."
-msgstr ""
+msgstr "'-fd-lines-as-comments' no tiene efecto en forma libre."
#: fortran/options.c:244
#, no-c-format
msgid "'-fd-lines-as-code' has no effect in free form."
-msgstr ""
+msgstr "'-fd-lines-as-code' no tiene efecto en forma libre."
#: fortran/options.c:309
#, c-format
msgid "gfortran: Only one -M option allowed\n"
-msgstr ""
+msgstr "gfortran: Sólo se permite una opción -M\n"
#: fortran/options.c:315
#, c-format
msgid "gfortran: Directory required after -M\n"
-msgstr ""
+msgstr "gfortran: Se requiere un directorio después de -M\n"
#: fortran/options.c:355
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Argument to -ffpe-trap is not valid: %s"
-msgstr "el argumento para NUM no es discreto"
+msgstr "El argumento para -ffpe-trap no es válido: %s"
#: fortran/options.c:451
#, no-c-format
msgid "Fixed line length must be at least seven."
-msgstr ""
+msgstr "La longitud de línea fija debe ser al menos de siete."
#: fortran/options.c:505
#, no-c-format
msgid "Maximum supported idenitifier length is %d"
-msgstr ""
+msgstr "La longitud de identificador máxima soportada es %d"
#: fortran/options.c:512
#, no-c-format
msgid "Argument to -fqkind isn't a valid real kind"
-msgstr ""
+msgstr "El argumento de -fqkind no es un real afín válido"
#: fortran/parse.c:294
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Unclassifiable statement at %C"
-msgstr "Declaración inválida en %0"
+msgstr "Declaración inclasificable en %C"
#: fortran/parse.c:339 fortran/parse.c:413
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Non-numeric character in statement label at %C"
-msgstr "Carácter no numérico en %0 en el campo de etiqueta [info -f g77 M LEX]"
+msgstr "Carácter no numérico en la declaración de etiqueta en %C"
#: fortran/parse.c:351
#, no-c-format
msgid "Ignoring statement label in empty statement at %C"
-msgstr ""
+msgstr "Se ignora la declaración de etiqueta en la declaración vacía en %C"
#: fortran/parse.c:421
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Zero is not a valid statement label at %C"
-msgstr "Declaración inválida en %0"
+msgstr "Cero no es una declaración de etiqueta válida en %C"
#: fortran/parse.c:440
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Bad continuation line at %C"
-msgstr "Continuación de línea inválida en %0"
+msgstr "Continuación de línea errónea en %C"
#: fortran/parse.c:467
#, no-c-format
msgid "Statement label in blank line will be ignored at %C"
-msgstr ""
+msgstr "Se ignorará la declaración de etiqueta en una línea en blanco en %C"
#: fortran/parse.c:492
#, no-c-format
msgid "Line truncated at %C"
-msgstr ""
+msgstr "Línea truncada en %C"
#: fortran/parse.c:665
#, no-c-format
msgid "FORMAT statement at %L does not have a statement label"
-msgstr ""
+msgstr "La declaración FORMAT en %L no tiene una declaración de etiqueta"
#: fortran/parse.c:737
msgid "arithmetic IF"
-msgstr ""
+msgstr "IF aritmético"
#: fortran/parse.c:743
-#, fuzzy
msgid "attribute declaration"
-msgstr "Declaración inválida"
+msgstr "declaración de atributo"
#: fortran/parse.c:773
-#, fuzzy
msgid "data declaration"
-msgstr "declaración vacía"
+msgstr "declaración de datos"
#: fortran/parse.c:782
-#, fuzzy
msgid "derived type declaration"
-msgstr "declaración vacía"
+msgstr "declaración de tipo derivado"
#: fortran/parse.c:861
msgid "block IF"
-msgstr ""
+msgstr "bloque IF"
#: fortran/parse.c:870
msgid "implied END DO"
-msgstr ""
+msgstr "END DO implícito"
#: fortran/parse.c:937
msgid "assignment"
msgstr "asignación"
#: fortran/parse.c:940
-#, fuzzy
msgid "pointer assignment"
-msgstr "asignación"
+msgstr "asignación de puntero"
#: fortran/parse.c:949
msgid "simple IF"
-msgstr ""
+msgstr "IF simple"
#: fortran/parse.c:1086
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Unexpected %s statement at %C"
-msgstr "Declaración VXT sin soporte en %0"
+msgstr "Declaración %s inesperada en %C"
#: fortran/parse.c:1218
-#, fuzzy, no-c-format
+#, no-c-format
msgid "%s statement at %C cannot follow %s statement at %L"
-msgstr "La declaración en %0 es inválida en el contexto establecido por la declaración en %1"
+msgstr "La declaración %s en %C no puede ir a continuación de la declaración en %L"
#: fortran/parse.c:1235
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Unexpected end of file in '%s'"
-msgstr "se esperaba regresar al fichero \"%s\""
+msgstr "Fin de fichero inesperado en '%s'"
#: fortran/parse.c:1288
#, no-c-format
msgid "Derived type definition at %C has no components"
-msgstr ""
+msgstr "La definición de tipo derivado en %C no tiene componentes"
#: fortran/parse.c:1299
#, no-c-format
msgid "PRIVATE statement in TYPE at %C must be inside a MODULE"
-msgstr ""
+msgstr "La declaración PRIVATE en TYPE en %C debe estar dentro de un MODULE"
#: fortran/parse.c:1306
#, no-c-format
msgid "PRIVATE statement at %C must precede structure components"
-msgstr ""
+msgstr "La declaración PRIVATE en %C debe preceder a los componentes de la estructura"
#: fortran/parse.c:1314
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Duplicate PRIVATE statement at %C"
-msgstr "Declaración VXT sin soporte en %0"
+msgstr "Declaración PRIVATE duplicada en %C"
#: fortran/parse.c:1326
#, no-c-format
msgid "SEQUENCE statement at %C must precede structure components"
-msgstr ""
+msgstr "La declaración SEQUENCE en %C debe preceder a los componentes de la estructura"
#: fortran/parse.c:1333
#, no-c-format
msgid "SEQUENCE attribute at %C already specified in TYPE statement"
-msgstr ""
+msgstr "El atributo SEQUENCE en %C ya se especificó en la declaración TYPE"
#: fortran/parse.c:1338
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Duplicate SEQUENCE statement at %C"
-msgstr "Declaración VXT sin soporte en %0"
+msgstr "Declaración SEQUENCE duplicada en %C"
#: fortran/parse.c:1362
#, no-c-format
msgid "Component %s of SEQUENCE type declared at %C does not have the SEQUENCE attribute"
-msgstr ""
+msgstr "El componente %s del tipo SEQUENCE declarado en %C no tiene el atributo SEQUENCE"
#: fortran/parse.c:1407
#, no-c-format
msgid "ENUM declaration at %C has no ENUMERATORS"
-msgstr ""
+msgstr "La declaración ENUM en %C no tiene ENUMERATORS"
#: fortran/parse.c:1481
#, no-c-format
msgid "Unexpected %s statement in INTERFACE block at %C"
-msgstr ""
+msgstr "Declaración %s inesperada en el bloque INTERFACE en %C"
#: fortran/parse.c:1508
#, no-c-format
msgid "SUBROUTINE at %C does not belong in a generic function interface"
-msgstr ""
+msgstr "SUBROUTINE en %C no está dentro de una interfaz de función genérica"
#: fortran/parse.c:1513
#, no-c-format
msgid "FUNCTION at %C does not belong in a generic subroutine interface"
-msgstr ""
+msgstr "FUNCTION en %C no está dentro de una interfaz de función genérica"
#: fortran/parse.c:1530
#, no-c-format
msgid "Unexpected %s statement at %C in INTERFACE body"
-msgstr ""
+msgstr "Declaración %s inesperada en %C en el cuerpo de INTERFACE"
#: fortran/parse.c:1602
#, no-c-format
msgid "%s statement must appear in a MODULE"
-msgstr ""
+msgstr "La declaración %s debe aparecer en un MODULE"
#: fortran/parse.c:1609
#, no-c-format
msgid "%s statement at %C follows another accessibility specification"
-msgstr ""
+msgstr "La declaración %s en %C a continuación de otra especificación de accesibilidad"
#: fortran/parse.c:1686
#, no-c-format
msgid "ELSEWHERE statement at %C follows previous unmasked ELSEWHERE"
-msgstr ""
+msgstr "Declaración ELSEWHERE en %C a continuación de un ELSEWHERE desenmascarado previo"
#: fortran/parse.c:1707
#, no-c-format
msgid "Unexpected %s statement in WHERE block at %C"
-msgstr ""
+msgstr "Declaración %s inesperada en el bloque WHERE en %C"
#: fortran/parse.c:1767
#, no-c-format
msgid "Unexpected %s statement in FORALL block at %C"
-msgstr ""
+msgstr "Declaración %s inesperada en el bloque FORALL en %C"
#: fortran/parse.c:1819
-#, fuzzy, no-c-format
+#, no-c-format
msgid "ELSE IF statement at %C cannot follow ELSE statement at %L"
-msgstr "La declaración PUBLIC o PRIVATE en %1 no se puede especificar junto con la declaración PUBLIC o PRIVATE en %0"
+msgstr "La declaración ELSE IF en %C no puede ir a continuación de una declaración ELSE en %L"
#: fortran/parse.c:1837
#, no-c-format
msgid "Duplicate ELSE statements at %L and %C"
-msgstr ""
+msgstr "Declaraciones ELSE duplicadas en %L y %C"
#: fortran/parse.c:1899
#, no-c-format
msgid "Expected a CASE or END SELECT statement following SELECT CASE at %C"
-msgstr ""
+msgstr "Se esperaba una declaración CASE o END SELECT a continuación de un SELECT CASE en %C"
#: fortran/parse.c:1957
#, no-c-format
msgid "Variable '%s' at %C cannot be redefined inside loop beginning at %L"
-msgstr ""
+msgstr "La variable '%s' en %C no se puede redefinir dentro del inicio de un ciclo en %L"
#: fortran/parse.c:1992
#, no-c-format
msgid "End of nonblock DO statement at %C is within another block"
-msgstr ""
+msgstr "El final de la declaración DO que no es bloque en %C está dentro de otro bloque"
#: fortran/parse.c:2001
#, no-c-format
msgid "End of nonblock DO statement at %C is interwoven with another DO loop"
-msgstr ""
+msgstr "El final de la declaración DO que no es bloque en %C está entrelazado con otro ciclo DO"
#: fortran/parse.c:2051
#, no-c-format
msgid "Statement label in ENDDO at %C doesn't match DO label"
-msgstr ""
+msgstr "La declaración de etiqueta en ENDDO en %C no coincide con la etiqueta DO"
#: fortran/parse.c:2108
#, no-c-format
msgid "%s statement at %C cannot terminate a non-block DO loop"
-msgstr ""
+msgstr "La declaración %s en %C no puede terminar un ciclo DO que no es bloque"
#: fortran/parse.c:2247
#, no-c-format
msgid "Contained procedure '%s' at %C is already ambiguous"
-msgstr ""
+msgstr "El procedimiento contenido '%s' en %C ya es ambiguo"
#: fortran/parse.c:2298
#, no-c-format
msgid "Unexpected %s statement in CONTAINS section at %C"
-msgstr ""
+msgstr "Declaración %s inesperada en la sección CONTAINS en %C"
#: fortran/parse.c:2383
-#, fuzzy, no-c-format
+#, no-c-format
msgid "CONTAINS statement at %C is already in a contained program unit"
-msgstr "La declaración RETURN en %0 es inválida dentro de una unidad de programa principal"
+msgstr "La declaración CONTAINS en %C ya está contenida en una unidad de programa"
#: fortran/parse.c:2432
#, no-c-format
msgid "Global name '%s' at %L is already being used as a %s at %L"
-msgstr ""
+msgstr "El nombre global '%s' en %L ya está en uso como un %s en %L"
#: fortran/parse.c:2453
#, no-c-format
msgid "Blank BLOCK DATA at %C conflicts with prior BLOCK DATA at %L"
-msgstr ""
+msgstr "BLOCK DATA en blanco en %C tiene conflictos con un BLOCK DATA previo en %L"
#: fortran/parse.c:2478
#, no-c-format
msgid "Unexpected %s statement in BLOCK DATA at %C"
-msgstr ""
+msgstr "Declaración %s inesperada en BLOCK DATA en %C"
#: fortran/parse.c:2521
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Unexpected %s statement in MODULE at %C"
-msgstr "Declaración VXT sin soporte en %0"
+msgstr "Declaración %s inesperada en MODULE en %C"
#. If we see a duplicate main program, shut down. If the second
#. instance is an implied main program, ie data decls or executable
@@ -7098,357 +7019,357 @@ msgstr "Declaración VXT sin soporte en %0"
#: fortran/parse.c:2700
#, no-c-format
msgid "Two main PROGRAMs at %L and %C"
-msgstr ""
+msgstr "Dos PROGRAMas principales en %L y %C"
#: fortran/primary.c:91
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Missing kind-parameter at %C"
-msgstr "Falta el término de parámetro formal"
+msgstr "Falta el parámetro de afinidad en %C"
#: fortran/primary.c:214
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Integer kind %d at %C not available"
-msgstr "el cuerpo de la función no está disponible"
+msgstr "La afinidad de entero %d en %C no está disponible"
#: fortran/primary.c:222
#, no-c-format
msgid "Integer too big for its kind at %C"
-msgstr ""
+msgstr "El entero es demasiado grande para esta afinidad en %C"
#: fortran/primary.c:252
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Extension: Hollerith constant at %C"
-msgstr "Constante octal inválida en %0"
+msgstr "Extensión: Constante Hollerith en %C"
#: fortran/primary.c:264
#, no-c-format
msgid "Invalid Hollerith constant: %L must contain at least one character"
-msgstr ""
+msgstr "Constante Hollerith inválida: %L debe contener por lo menos un carácter"
#: fortran/primary.c:270
#, no-c-format
msgid "Invalid Hollerith constant: Interger kind at %L should be default"
-msgstr ""
+msgstr "Constante Hollerith inválida: La afinidad entera en %L debe ser por defecto"
#: fortran/primary.c:357
#, no-c-format
msgid "Extension: Hexadecimal constant at %C uses non-standard syntax."
-msgstr ""
+msgstr "Extensión: La constante hexadecimal en %C usa sintaxis que no es estándar."
#: fortran/primary.c:367
#, no-c-format
msgid "Empty set of digits in BOZ constant at %C"
-msgstr ""
+msgstr "Conjunto vacío de dígitos en la constante BOZ en %C"
#: fortran/primary.c:373
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Illegal character in BOZ constant at %C"
-msgstr "Constante de carácter de longitud cero en %0"
+msgstr "Carácter ilegal en la constante BOZ en %C"
#: fortran/primary.c:395
#, no-c-format
msgid "Extension: BOZ constant at %C uses non-standard postfix syntax."
-msgstr ""
+msgstr "Extensión: La constante BOZ en %C usa sintaxis que no es estándar."
#: fortran/primary.c:421
#, no-c-format
msgid "Integer too big for integer kind %i at %C"
-msgstr ""
+msgstr "Entero demasiado grande para la afinidad entera %i en %C"
#: fortran/primary.c:521
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Missing exponent in real number at %C"
-msgstr "Falta un valor en %1 para el exponente de número real en %0"
+msgstr "Falta un exponente en el número real en %C"
#: fortran/primary.c:578
#, no-c-format
msgid "Real number at %C has a 'd' exponent and an explicit kind"
-msgstr ""
+msgstr "El número real en %C tiene un exponente 'd' y una afinidad explícita"
#: fortran/primary.c:588
#, no-c-format
msgid "Real number at %C has a 'q' exponent and an explicit kind"
-msgstr ""
+msgstr "El número real en %C tiene un exponente 'q' y una afinidad explícita"
#: fortran/primary.c:600
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid real kind %d at %C"
-msgstr "Definición de etiqueta inválida %A (en %0)"
+msgstr "Afinidad real %d inválida en %C"
#: fortran/primary.c:614
#, no-c-format
msgid "Real constant overflows its kind at %C"
-msgstr ""
+msgstr "La constante real desborda su afinidad en %C"
#: fortran/primary.c:619
#, no-c-format
msgid "Real constant underflows its kind at %C"
-msgstr ""
+msgstr "La constante real desborda por debajo su afinidad en %C"
#: fortran/primary.c:711
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Syntax error in SUBSTRING specification at %C"
-msgstr "error de decodificación en la especificación del método"
+msgstr "Error sintáctico en la especificación SUBSTRING en %C"
#: fortran/primary.c:943
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid kind %d for CHARACTER constant at %C"
-msgstr "Constante binaria inválida en %0"
+msgstr "Afinidad %d inválida para la constante CHARACTER en %C"
#: fortran/primary.c:964
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Unterminated character constant beginning at %C"
-msgstr "Constante de carácter inválida sin terminar en %0 [info -f g77 M LEX]"
+msgstr "Constante de carácter sin terminar que comienza en %C"
#: fortran/primary.c:1038
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Bad kind for logical constant at %C"
-msgstr "Constante octal inválida en %0"
+msgstr "Afinidad errónea para la constante lógica en %C"
#: fortran/primary.c:1073
#, no-c-format
msgid "Expected PARAMETER symbol in complex constant at %C"
-msgstr ""
+msgstr "Se esperaba un símbolo PARAMETER en la constante compleja en %C"
#: fortran/primary.c:1079
#, no-c-format
msgid "Numeric PARAMETER required in complex constant at %C"
-msgstr ""
+msgstr "Se requiere un PARAMETER numérico en la constante compleja en %C"
#: fortran/primary.c:1085
#, no-c-format
msgid "Scalar PARAMETER required in complex constant at %C"
-msgstr ""
+msgstr "Se requiere un PARAMETER escalar en la constante compleja en %C"
#: fortran/primary.c:1115
#, no-c-format
msgid "Error converting PARAMETER constant in complex constant at %C"
-msgstr ""
+msgstr "Error al convertir la constante PARAMETER en una constante compleja en %C"
#: fortran/primary.c:1242
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Syntax error in COMPLEX constant at %C"
-msgstr "error sintáctico en la acción"
+msgstr "Error sintáctico en la constante COMPLEX en %C"
#: fortran/primary.c:1424
#, no-c-format
msgid "Keyword '%s' at %C has already appeared in the current argument list"
-msgstr ""
+msgstr "La palabra clave '%s' en %C ya había aparecido en la lista de argumentos actual"
#: fortran/primary.c:1481
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected alternate return label at %C"
-msgstr "se esperaba regresar al fichero \"%s\""
+msgstr "Se esperaba la etiqueta de devolución alterna en %C"
#: fortran/primary.c:1500
#, no-c-format
msgid "Missing keyword name in actual argument list at %C"
-msgstr ""
+msgstr "Falta el nombre de la palabra clave en la lista de argumentos actual en %C"
#: fortran/primary.c:1536
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Syntax error in argument list at %C"
-msgstr "error de sintaxis en la lista de parámetros de macro"
+msgstr "Error sintáctico en la lista de argumentos en %C"
#: fortran/primary.c:1623
#, no-c-format
msgid "Expected structure component name at %C"
-msgstr ""
+msgstr "Se esperaba un nombre de componente de estructura en %C"
#: fortran/primary.c:1861
#, no-c-format
msgid "Too many components in structure constructor at %C"
-msgstr ""
+msgstr "Demasiados componentes en el constructor de estructura en %C"
#: fortran/primary.c:1876
#, no-c-format
msgid "Too few components in structure constructor at %C"
-msgstr ""
+msgstr "Faltan componentes en el constructor de estructura en %C"
#: fortran/primary.c:1894
#, no-c-format
msgid "Syntax error in structure constructor at %C"
-msgstr ""
+msgstr "Error sintáctico en el constructor de estructura en %C"
#: fortran/primary.c:2007
#, no-c-format
msgid "Unexpected use of subroutine name '%s' at %C"
-msgstr ""
+msgstr "Uso inesperado del nombre de subrutina '%s' en %C"
#: fortran/primary.c:2038
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Statement function '%s' requires argument list at %C"
-msgstr "La función de declaración `%A' está definida en %0 pero no se usa"
+msgstr "La función de declaración '%s' requiere una lista de argumentos en %C"
#: fortran/primary.c:2041
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Function '%s' requires an argument list at %C"
-msgstr "La función devuelve un valor no establecido"
+msgstr "La función '%s' requiere una lista de argumentos en %C"
#: fortran/primary.c:2195
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Missing argument list in function '%s' at %C"
-msgstr "faltan argumentos para la opción '%s'"
+msgstr "Faltan la lista de argumentos en la función '%s' en %C"
#: fortran/primary.c:2223
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Symbol at %C is not appropriate for an expression"
-msgstr "desbordamiento de coma flotante en la expresión"
+msgstr "El símbolo en %C no es apropiado para una expresión"
#: fortran/primary.c:2293
#, no-c-format
msgid "Expected VARIABLE at %C"
-msgstr ""
+msgstr "Se esperaba una VARIABLE en %C"
#: fortran/resolve.c:102
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Alternate return specifier in elemental subroutine '%s' at %L is not allowed"
-msgstr "El especificador de devolución alternante en %0 es inválido dentro de una función"
+msgstr "No se permite el especificador de devolución alternativo en la subrutina elemental '%s' en %L"
#: fortran/resolve.c:106
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Alternate return specifier in function '%s' at %L is not allowed"
-msgstr "El especificador de devolución alternante en %0 es inválido dentro de una función"
+msgstr "No se permite el especificador de devolución alternativo en la función '%s' en %L"
#: fortran/resolve.c:120
#, no-c-format
msgid "Dummy procedure '%s' of PURE procedure at %L must also be PURE"
-msgstr ""
+msgstr "El procedimiento de prueba '%s' del procedimiento PURE en %L también debe ser PURE"
#: fortran/resolve.c:128
#, no-c-format
msgid "Dummy procedure at %L not allowed in ELEMENTAL procedure"
-msgstr ""
+msgstr "No se permite el procedimiento de prueba en %L en un procedimiento ELEMENTAL"
#: fortran/resolve.c:172
#, no-c-format
msgid "Argument '%s' of pure function '%s' at %L must be INTENT(IN)"
-msgstr ""
+msgstr "El argumento '%s' de la función pura '%s' en %L debe ser INTENT(IN)"
#: fortran/resolve.c:180
#, no-c-format
msgid "Argument '%s' of pure subroutine '%s' at %L must have its INTENT specified"
-msgstr ""
+msgstr "El argumento '%s' de la función pura '%s' en %L debe tener especificado su INTENT"
#: fortran/resolve.c:191
#, no-c-format
msgid "Argument '%s' of elemental procedure at %L must be scalar"
-msgstr ""
+msgstr "El argumento '%s' del procedimiento elemental en %L debe ser escalar"
#: fortran/resolve.c:199
#, no-c-format
msgid "Argument '%s' of elemental procedure at %L cannot have the POINTER attribute"
-msgstr ""
+msgstr "El argumento '%s' del procedimiento elemental en %L no puede tener el atributo POINTER"
#: fortran/resolve.c:211
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Argument '%s' of statement function at %L must be scalar"
-msgstr "Argumento nulo en %0 para la referencia de la declaración de función en %1"
+msgstr "El argumento '%s' de la función de declaración en %L debe ser escalar"
#: fortran/resolve.c:222
#, no-c-format
msgid "Character-valued argument '%s' of statement function at %L must has constant length"
-msgstr ""
+msgstr "El argumento con valor de carácter '%s' de la función de declaración en %L debe tener longitud constante"
#: fortran/resolve.c:283
#, no-c-format
msgid "Contained function '%s' at %L has no IMPLICIT type"
-msgstr ""
+msgstr "La función contenida '%s' en %L no tiene tipo IMPLICIT"
#: fortran/resolve.c:293
#, no-c-format
msgid "Character-valued internal function '%s' at %L must not be assumed length"
-msgstr ""
+msgstr "La función interna valuada con carácter '%s' en %L no debe tener longitud asumida"
#: fortran/resolve.c:436
#, no-c-format
msgid "FUNCTION result %s can't be an array in FUNCTION %s at %L"
-msgstr ""
+msgstr "El resultado de FUNCTION %s no puede ser una matriz en FUNCTION %s en %L"
#: fortran/resolve.c:440
#, no-c-format
msgid "ENTRY result %s can't be an array in FUNCTION %s at %L"
-msgstr ""
+msgstr "El resultado de ENTRY %s no puede ser una matriz en FUNCTION %s en %L"
#: fortran/resolve.c:447
#, no-c-format
msgid "FUNCTION result %s can't be a POINTER in FUNCTION %s at %L"
-msgstr ""
+msgstr "El resultado de FUNCTION %s no puede ser un POINTER en FUNCTION %s en %L"
#: fortran/resolve.c:451
#, no-c-format
msgid "ENTRY result %s can't be a POINTER in FUNCTION %s at %L"
-msgstr ""
+msgstr "El resultado de ENTRY %s no puede ser un POINTER en FUNCTION %s en %L"
#: fortran/resolve.c:489
#, no-c-format
msgid "FUNCTION result %s can't be of type %s in FUNCTION %s at %L"
-msgstr ""
+msgstr "El resultado de FUNCTION %s no puede ser de tipo %s en FUNCTION %s en %L"
#: fortran/resolve.c:494
#, no-c-format
msgid "ENTRY result %s can't be of type %s in FUNCTION %s at %L"
-msgstr ""
+msgstr "El resultado de ENTRY %s no puede ser de tipo %s en FUNCTION %s en %L"
#: fortran/resolve.c:590
#, no-c-format
msgid "The element in the derived type constructor at %L, for pointer component '%s', is %s but should be %s"
-msgstr ""
+msgstr "El elemento en el constructor de tipo derivado en %L, para el componente puntero '%s', es %s pero debería ser %s"
#: fortran/resolve.c:716
#, no-c-format
msgid "The upper bound in the last dimension must appear in the reference to the assumed size array '%s' at %L."
-msgstr ""
+msgstr "El límite superior en la última dimensión debe aparecer en la referencia a la matriz de tamaño asumido '%s' en %L."
#: fortran/resolve.c:781 fortran/resolve.c:3615 fortran/resolve.c:4281
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Label %d referenced at %L is never defined"
-msgstr "La etiqueta %A ya se definió en %1 cuando se redefinió en %0"
+msgstr "La etiqueta %d referenciada en %L nunca se definió"
#: fortran/resolve.c:808
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Statement function '%s' at %L is not allowed as an actual argument"
-msgstr "La función de declaración `%A' está definida en %0 pero no se usa"
+msgstr "La función de declaración '%s' en %L no se permite como un argumento actual"
#: fortran/resolve.c:815
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Internal procedure '%s' is not allowed as an actual argument at %L"
-msgstr "Se pasa el procedimiento externo como un argumento actual en %0 pero no está declarado explícitamente EXTERNAL"
+msgstr "El procedimiento interno '%s' no se permite como un argumento actual en %L"
#: fortran/resolve.c:821
#, no-c-format
msgid "ELEMENTAL non-INTRINSIC procedure '%s' is not allowed as an actual argument at %L"
-msgstr ""
+msgstr "El procedimiento ELEMENTAL que no es INTRINSIC '%s' no se permite como un argumento actual en %L"
#: fortran/resolve.c:845
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Symbol '%s' at %L is ambiguous"
-msgstr "el uso de %qD es ambiguo"
+msgstr "El símbolo '%s' en %L es ambiguo"
#: fortran/resolve.c:974
#, no-c-format
msgid "Generic function '%s' at %L is not an intrinsic function"
-msgstr ""
+msgstr "La función genérica '%s' en %L no es una función intrínseca"
#: fortran/resolve.c:984
#, no-c-format
msgid "Generic function '%s' at %L is not consistent with a specific intrinsic interface"
-msgstr ""
+msgstr "La función genérica '%s' en %L no es consistente con una interfaz intrínseca específica"
#: fortran/resolve.c:1022
#, no-c-format
msgid "Function '%s' at %L is INTRINSIC but is not compatible with an intrinsic"
-msgstr ""
+msgstr "La función '%s' en %L es INTRINSIC pero no es compatible con un intrínseco"
#: fortran/resolve.c:1068
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Unable to resolve the specific function '%s' at %L"
-msgstr "error en los argumentos para la función de especificación '%s'"
+msgstr "No se puede resolver la función específica '%s' en %L"
#: fortran/resolve.c:1124 fortran/resolve.c:5889
#, no-c-format
msgid "Function '%s' at %L has no IMPLICIT type"
-msgstr ""
+msgstr "La función '%s' en %L no tiene tipo IMPLICIT"
#. This follows from a slightly odd requirement at 5.1.1.5 in the
#. standard that allows assumed character length functions to be
@@ -7457,282 +7378,281 @@ msgstr ""
#: fortran/resolve.c:1211
#, no-c-format
msgid "Function '%s' can be declared in an interface to return CHARACTER(*) but cannot be used at %L"
-msgstr ""
+msgstr "La función '%s' se puede declarar en una interfaz para devolver CHARACTER(*) pero no se puede usar en %L"
#: fortran/resolve.c:1220
#, no-c-format
msgid "Function '%s' is declared CHARACTER(*) and cannot be used at %L since it is not a dummy argument"
-msgstr ""
+msgstr "La función '%s' se declara CHARACTER(*) y no se puede usar en %L ya que no es un argumento de prueba"
#: fortran/resolve.c:1329
#, no-c-format
msgid "Function reference to '%s' at %L is inside a FORALL block"
-msgstr ""
+msgstr "La referencia de función a '%s' en %L está fuera de un bloque FORALL"
#: fortran/resolve.c:1335
#, no-c-format
msgid "Function reference to '%s' at %L is to a non-PURE procedure within a PURE procedure"
-msgstr ""
+msgstr "La referencia de función a '%s' en %L apunta a un procedimiento que no es PURE dentro de un procedimiento PURE"
#: fortran/resolve.c:1365
#, no-c-format
msgid "Subroutine call to '%s' in FORALL block at %L is not PURE"
-msgstr ""
+msgstr "La llamada a subrutina a '%s' en bloque FORALL en %L no es PURE"
#: fortran/resolve.c:1368
#, no-c-format
msgid "Subroutine call to '%s' at %L is not PURE"
-msgstr ""
+msgstr "La llamada a subrutina a '%s' en %L no es PURE"
#: fortran/resolve.c:1430
#, no-c-format
msgid "Generic subroutine '%s' at %L is not an intrinsic subroutine"
-msgstr ""
+msgstr "La subrutina genérica '%s' en %L no es una subrutina intrínseca"
#: fortran/resolve.c:1439
#, no-c-format
msgid "Generic subroutine '%s' at %L is not consistent with an intrinsic subroutine interface"
-msgstr ""
+msgstr "La subrutina genérica '%s' en %L no es consistente con una interfaz de subrutina intrínseca"
#: fortran/resolve.c:1474
#, no-c-format
msgid "Subroutine '%s' at %L is INTRINSIC but is not compatible with an intrinsic"
-msgstr ""
+msgstr "La subrutina '%s' en %L es INTRINSIC pero no es compatible con un intrínseco"
#: fortran/resolve.c:1517
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Unable to resolve the specific subroutine '%s' at %L"
-msgstr "Referencia de función a la subrutina intrínseca `%A' en %0"
+msgstr "No se puede resolver la subrutina específica '%s' en %L"
#: fortran/resolve.c:1573
#, no-c-format
msgid "'%s' at %L has a type, which is not consistent with the CALL at %L"
-msgstr ""
+msgstr "'%s' en %L tiene un tipo, el cual no es consistente con CALL en %L"
#: fortran/resolve.c:1656
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Shapes for operands at %L and %L are not conformable"
-msgstr "shared y mdll no son compatibles."
+msgstr "Las formas para los operandos en %L y %L no son conformables"
#: fortran/resolve.c:1713
#, c-format
msgid "Operand of unary numeric operator '%s' at %%L is %s"
-msgstr ""
+msgstr "El operando del operador numérico unario '%s' en %%L es %s"
#: fortran/resolve.c:1729
#, c-format
msgid "Operands of binary numeric operator '%s' at %%L are %s/%s"
-msgstr ""
+msgstr "Los operandos del operador binario numérico '%s' en %%L son %s/%s"
#: fortran/resolve.c:1743
-#, fuzzy, c-format
+#, c-format
msgid "Operands of string concatenation operator at %%L are %s/%s"
-msgstr "Operando inválido en %1 para el operador de concatenación en %0"
+msgstr "Los operandos del operador de concatenación de cadenas en %%L son %s/%s"
#: fortran/resolve.c:1762
#, c-format
msgid "Operands of logical operator '%s' at %%L are %s/%s"
-msgstr ""
+msgstr "Los operandos del operador lógico '%s' en %%L son %s/%s"
#: fortran/resolve.c:1776
-#, fuzzy, c-format
+#, c-format
msgid "Operand of .NOT. operator at %%L is %s"
-msgstr "Operando inválido en %1 para el operador .NOT. en %0"
+msgstr "El operando del operador .NOT. en %%L es %s"
#: fortran/resolve.c:1786
-#, fuzzy
msgid "COMPLEX quantities cannot be compared at %L"
-msgstr "los calificadores %qV no se pueden aplicar a %qT"
+msgstr "Las cantidades COMPLEX no se pueden comparar en %L"
#: fortran/resolve.c:1812
#, c-format
msgid "Logicals at %%L must be compared with %s instead of %s"
-msgstr ""
+msgstr "Los lógicos en %%L se deben comparar con %s en lugar de %s"
#: fortran/resolve.c:1817
#, c-format
msgid "Operands of comparison operator '%s' at %%L are %s/%s"
-msgstr ""
+msgstr "Los operandos del operador de comparación '%s' en %%L son %s/%s"
#: fortran/resolve.c:1825
#, c-format
msgid "Operand of user operator '%s' at %%L is %s"
-msgstr ""
+msgstr "El operando del operador de usuario '%s' en %%L es %s"
#: fortran/resolve.c:1828
#, c-format
msgid "Operands of user operator '%s' at %%L are %s/%s"
-msgstr ""
+msgstr "Los operandos del operador de usuario '%s' en %%L son %s/%s"
#: fortran/resolve.c:1899
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Inconsistent ranks for operator at %L and %L"
-msgstr "restricciones de operandos inconsistentes en un %<asm%>"
+msgstr "Rangos inconsistentes para el operador en %L y %L"
#: fortran/resolve.c:2022
#, no-c-format
msgid "Illegal stride of zero at %L"
-msgstr ""
+msgstr "Tranco ilegal de cero en %L"
#: fortran/resolve.c:2043
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Array reference at %L is out of bounds"
-msgstr "la referencia a %qD es ambigua"
+msgstr "La referencia de matriz en %L está fuera de los límites"
#: fortran/resolve.c:2064
#, no-c-format
msgid "Rightmost upper bound of assumed size array section not specified at %L"
-msgstr ""
+msgstr "Límite superior a la derecha de la sección de matriz de tamaño asumido sin especificar en %L"
#: fortran/resolve.c:2074
#, no-c-format
msgid "Rank mismatch in array reference at %L (%d/%d)"
-msgstr ""
+msgstr "El rango no coincide en la referencia de matriz en %L (%d/%d)"
#: fortran/resolve.c:2102
#, no-c-format
msgid "Array index at %L must be scalar"
-msgstr ""
+msgstr "El índice de matriz en %L debe ser escalar"
#: fortran/resolve.c:2108
#, no-c-format
msgid "Array index at %L must be of INTEGER type"
-msgstr ""
+msgstr "El índice de matriz en %L debe ser de tipo INTEGER"
#: fortran/resolve.c:2114
#, no-c-format
msgid "Extension: REAL array index at %L"
-msgstr ""
+msgstr "Extensión: índice de matriz REAL en %L"
#: fortran/resolve.c:2144
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Argument dim at %L must be scalar"
-msgstr "el argumento %d de %s debe ser una ubicación"
+msgstr "El argumento dim en %L debe ser escalar"
#: fortran/resolve.c:2150
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Argument dim at %L must be of INTEGER type"
-msgstr "el argumento para `%s' debe ser de tipo entero"
+msgstr "El argumento dim en %L debe ser de tipo entero"
#: fortran/resolve.c:2252
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Array index at %L is an array of rank %d"
-msgstr "La matriz `%A' en %0 es demasiado grande para manejarse"
+msgstr "El índice de matriz en %L es una matriz de rango %d"
#: fortran/resolve.c:2290
#, no-c-format
msgid "Substring start index at %L must be of type INTEGER"
-msgstr ""
+msgstr "El índice de inicio de la subcadena en %L debe ser de tipo INTEGER"
#: fortran/resolve.c:2297
#, no-c-format
msgid "Substring start index at %L must be scalar"
-msgstr ""
+msgstr "El índice de inicio de la subcadena en %L debe ser escalar"
#: fortran/resolve.c:2304
#, no-c-format
msgid "Substring start index at %L is less than one"
-msgstr ""
+msgstr "El índice de inicio de la subcadena en %L es menor a uno"
#: fortran/resolve.c:2317
#, no-c-format
msgid "Substring end index at %L must be of type INTEGER"
-msgstr ""
+msgstr "El índice de final de la subcadena en %L debe ser de tipo INTEGER"
#: fortran/resolve.c:2324
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Substring end index at %L must be scalar"
-msgstr "El punto de inicio/fin de la subcadena en %0 está fuera del rango definido"
+msgstr "El índice de final de la subcadena en %L debe ser escalar"
#: fortran/resolve.c:2332
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Substring end index at %L is out of bounds"
-msgstr "El punto de inicio/fin de la subcadena en %0 está fuera del rango definido"
+msgstr "El índice de final de la subcadena en %L está fuera de los límites"
#: fortran/resolve.c:2406
#, no-c-format
msgid "Component to the right of a part reference with nonzero rank must not have the POINTER attribute at %L"
-msgstr ""
+msgstr "El componente a la derecha de una referencia de parte con rango que no es cero no debe tener el atributo POINTER en %L"
#: fortran/resolve.c:2425
#, no-c-format
msgid "Two or more part references with nonzero rank must not be specified at %L"
-msgstr ""
+msgstr "No se deben especificar dos o más referencias de parte con rango que no es cero en %L"
#: fortran/resolve.c:2654
-#, fuzzy, no-c-format
+#, no-c-format
msgid "%s at %L must be a scalar"
-msgstr "%s del parámetro %d debe ser una ubicación"
+msgstr "%s en %L debe ser un escalar"
#: fortran/resolve.c:2662
#, no-c-format
msgid "%s at %L must be INTEGER or REAL"
-msgstr ""
+msgstr "%s en %L debe ser INTEGER o REAL"
#: fortran/resolve.c:2665
#, no-c-format
msgid "%s at %L must be INTEGER"
-msgstr ""
+msgstr "%s en %L debe ser INTEGER"
#: fortran/resolve.c:2681
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Obsolete: REAL DO loop iterator at %L"
-msgstr "Modificación del iterador del ciclo DO `%A' en %0"
+msgstr "Obsoleto: iterador de ciclo REAL DO en %L"
#: fortran/resolve.c:2690
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Cannot assign to loop variable in PURE procedure at %L"
-msgstr "no se puede asignar a una ubicación con una propiedad que no es valor"
+msgstr "No se puede asignar a una variable de ciclo en el procedimiento PURE en %L"
#: fortran/resolve.c:2714
#, no-c-format
msgid "Step expression in DO loop at %L cannot be zero"
-msgstr ""
+msgstr "La expresión de paso en el ciclo DO en %L no puede ser cero"
#: fortran/resolve.c:2749
#, no-c-format
msgid "FORALL index-name at %L must be a scalar INTEGER"
-msgstr ""
+msgstr "El nombre de índice FORALL en %L debe ser un INTEGER escalar"
#: fortran/resolve.c:2754
-#, fuzzy, no-c-format
+#, no-c-format
msgid "FORALL start expression at %L must be a scalar INTEGER"
-msgstr "el inicio de la expresión DO FOR es un SET numerado"
+msgstr "La expresión de inicio FORALL en %L debe ser un INTEGER escalar"
#: fortran/resolve.c:2761
#, no-c-format
msgid "FORALL end expression at %L must be a scalar INTEGER"
-msgstr ""
+msgstr "La expresión de fin FORALL en %L debe ser un INTEGER escalar"
#: fortran/resolve.c:2769
#, no-c-format
msgid "FORALL stride expression at %L must be a scalar %s"
-msgstr ""
+msgstr "La expresión de tranco FORALL en %L debe ser un %s escalar"
#: fortran/resolve.c:2774
#, no-c-format
msgid "FORALL stride expression at %L cannot be zero"
-msgstr ""
+msgstr "La expresión de tranco FORALL en %L no puede ser cero"
#: fortran/resolve.c:2872
#, no-c-format
msgid "Expression in DEALLOCATE statement at %L must be ALLOCATABLE or a POINTER"
-msgstr ""
+msgstr "La expresión en la declaración DEALLOCATE en %L debe ser ALLOCATABLE o un POINTER"
#: fortran/resolve.c:2972
#, no-c-format
msgid "Expression in ALLOCATE statement at %L must be ALLOCATABLE or a POINTER"
-msgstr ""
+msgstr "La expresión en la declaración ALLOCATE en %L debe ser ALLOCATABLE o un POINTER"
#: fortran/resolve.c:2997
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Array specification required in ALLOCATE statement at %L"
-msgstr "Especificador I inválido en la declaración FORMAT en %0"
+msgstr "Se requiere una especificación de matriz en la declaración ALLOCATE en %L"
#: fortran/resolve.c:3026
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Bad array specification in ALLOCATE statement at %L"
-msgstr "Especificador I inválido en la declaración FORMAT en %0"
+msgstr "Especificación de matriz errónea en la declaración ALLOCATE en %L"
#. The cases overlap, or they are the same
#. element in the list. Either way, we must
@@ -7741,679 +7661,679 @@ msgstr "Especificador I inválido en la declaración FORMAT en %0"
#: fortran/resolve.c:3182
#, no-c-format
msgid "CASE label at %L overlaps with CASE label at %L"
-msgstr ""
+msgstr "La etiqueta CASE en %L se encima con la etiqueta CASE en %L"
#: fortran/resolve.c:3233
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expression in CASE statement at %L must be of type %s"
-msgstr "la declaración de la expresión tiene tipo de dato incompleto"
+msgstr "La expresión en la declaración CASE en %L debe ser de tipo %s"
#: fortran/resolve.c:3244
#, no-c-format
msgid "Expression in CASE statement at %L must be kind %d"
-msgstr ""
+msgstr "La expresión en la declaración CASE en %L debe ser de afinidad %d"
#: fortran/resolve.c:3256
#, no-c-format
msgid "Expression in CASE statement at %L must be scalar"
-msgstr ""
+msgstr "La expresión en la declaración CASE en %L debe ser escalar"
#: fortran/resolve.c:3302
#, no-c-format
msgid "Selection expression in computed GOTO statement at %L must be a scalar integer expression"
-msgstr ""
+msgstr "La expresión de selección en una declaración GOTO computada en %L debe ser una expresión entera escalar"
#: fortran/resolve.c:3320
#, no-c-format
msgid "Argument of SELECT statement at %L cannot be %s"
-msgstr ""
+msgstr "El argumento de la declaración SELECT en %L no puede ser %s"
#: fortran/resolve.c:3329
#, no-c-format
msgid "Argument of SELECT statement at %L must be a scalar expression"
-msgstr ""
+msgstr "El argumento de la declaración SELECT en %L debe ser una expresión escalar"
#: fortran/resolve.c:3393
#, no-c-format
msgid "The DEFAULT CASE at %L cannot be followed by a second DEFAULT CASE at %L"
-msgstr ""
+msgstr "El DEFAULT CASE en %L no puede ser seguido por uno segundo DEFAULT CASE en %L"
#: fortran/resolve.c:3420
#, no-c-format
msgid "Logical range in CASE statement at %L is not allowed"
-msgstr ""
+msgstr "No se permite un rango lógico en una declaración CASE en %L"
#: fortran/resolve.c:3431
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Range specification at %L can never be matched"
-msgstr "Especificación de rango en %0 inválida"
+msgstr "La especificación de rango en %L nunca puede coincidir"
#: fortran/resolve.c:3534
#, no-c-format
msgid "Logical SELECT CASE block at %L has more that two cases"
-msgstr ""
+msgstr "El bloque SELECT CASE lógico en %L tiene más de dos cases"
#: fortran/resolve.c:3572
#, no-c-format
msgid "Data transfer element at %L cannot have POINTER components"
-msgstr ""
+msgstr "El elemento de transferencia de datos en %L no puede tener componentes POINTER"
#: fortran/resolve.c:3579
#, no-c-format
msgid "Data transfer element at %L cannot have PRIVATE components"
-msgstr ""
+msgstr "El elemento de transferencia de datos en %L no puede tener componentes PRIVATE"
#: fortran/resolve.c:3588
#, no-c-format
msgid "Data transfer element at %L cannot be a full reference to an assumed-size array"
-msgstr ""
+msgstr "El elemento de transferencia de datos en %L no puede ser una referencia completa a una matriz de tamaño asumido"
#: fortran/resolve.c:3622
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Statement at %L is not a valid branch target statement for the branch statement at %L"
-msgstr "La declaración en %0 es inválida en el contexto establecido por la declaración en %1"
+msgstr "La declaración en %L no es una declaración de objetivo de ramificación válida para la declaración de ramificación en %L"
#: fortran/resolve.c:3631
#, no-c-format
msgid "Branch at %L causes an infinite loop"
-msgstr ""
+msgstr "La ramificación en %L causa un ciclo infinito"
#: fortran/resolve.c:3664
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Label at %L is not in the same block as the GOTO statement at %L"
-msgstr "La declaración en %0 es inválida en el contexto establecido por la declaración en %1"
+msgstr "La etiqueta en %L no está en el mismo bloque que la declaración GOTO en %L"
#: fortran/resolve.c:3680
#, no-c-format
msgid "Obsolete: GOTO at %L jumps to END of construct at %L"
-msgstr ""
+msgstr "Obsoleto: GOTO en %L salta al END de la construcción en %L"
#: fortran/resolve.c:3754
#, no-c-format
msgid "WHERE mask at %L has inconsistent shape"
-msgstr ""
+msgstr "La máscara WHERE en %L tiene forma inconsistente"
#: fortran/resolve.c:3770
#, no-c-format
msgid "WHERE assignment target at %L has inconsistent shape"
-msgstr ""
+msgstr "El objetivo de asignación WHERE en %L tiene forma inconsistente"
#: fortran/resolve.c:3780 fortran/resolve.c:3979
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Unsupported statement inside WHERE at %L"
-msgstr "Declaración VXT sin soporte en %0"
+msgstr "Declaración sin soporte dentro de WHERE en %L"
#: fortran/resolve.c:3856
-#, fuzzy, no-c-format
+#, no-c-format
msgid "expresion reference type error at %L"
-msgstr "devolviendo la referencia al temporal"
+msgstr "Error de expresión de tipo de referencia en %L"
#: fortran/resolve.c:3888
#, no-c-format
msgid "Unsupported statement while finding forall index in expression"
-msgstr ""
+msgstr "Declaración sin soporte al encontrar el índice forall en la expresión"
#: fortran/resolve.c:3935
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Assignment to a FORALL index variable at %L"
-msgstr "asignación de la variable de sólo lectura %qs"
+msgstr "Asignación a una variable de índice FORALL en %L"
#: fortran/resolve.c:3943
#, no-c-format
msgid "The FORALL with index '%s' cause more than one assignment to this object at %L"
-msgstr ""
+msgstr "El FORALL con índice '%s' causa más de una asignación a este objeto en %L"
#: fortran/resolve.c:4070
#, no-c-format
msgid "An outer FORALL construct already has an index with this name %L"
-msgstr ""
+msgstr "Una construcción FORALL externa ya tiene un índice con este nombre %L"
#: fortran/resolve.c:4082 fortran/resolve.c:4085 fortran/resolve.c:4088
#, no-c-format
msgid "A FORALL index must not appear in a limit or stride expression in the same FORALL at %L"
-msgstr ""
+msgstr "Un índice FORALL no debe aparecer en un límite o en una expresión de tranco en el mismo FORALL en %L"
#: fortran/resolve.c:4131
#, no-c-format
msgid "ELSE IF clause at %L requires a scalar LOGICAL expression"
-msgstr ""
+msgstr "La cláusula ELSE IF en %L requiere una expresión LOGICAL escalar"
#: fortran/resolve.c:4141
#, no-c-format
msgid "WHERE/ELSEWHERE clause at %L requires a LOGICAL array"
-msgstr ""
+msgstr "la cláusula WHERE/ELSEWHERE en %L requiere una matriz LOGICAL"
#: fortran/resolve.c:4222
#, no-c-format
msgid "ASSIGNED GOTO statement at %L requires an INTEGER variable"
-msgstr ""
+msgstr "La declaración ASSIGNED GOTO en %L requiere una variable INTEGER"
#: fortran/resolve.c:4225
#, no-c-format
msgid "Variable '%s' has not been assigned a target label at %L"
-msgstr ""
+msgstr "La variable '%s' no se ha asignado a una etiqueta objetivo en %L"
#: fortran/resolve.c:4235
#, no-c-format
msgid "Alternate RETURN statement at %L requires an INTEGER return specifier"
-msgstr ""
+msgstr "La declaración RETURN alternativa en %L requiere de un especificador de devolución INTEGER"
#: fortran/resolve.c:4247
#, no-c-format
msgid "Subroutine '%s' called instead of assignment at %L must be PURE"
-msgstr ""
+msgstr "La subrutina '%s' llamada en lugar de una asignación en %L debe ser PURE"
#: fortran/resolve.c:4260
#, no-c-format
msgid "Cannot assign to variable '%s' in PURE procedure at %L"
-msgstr ""
+msgstr "No se puede asignar a la variable '%s' en el procedimiento PURE en %L"
#: fortran/resolve.c:4269
#, no-c-format
msgid "Right side of assignment at %L is a derived type containing a POINTER in a PURE procedure"
-msgstr ""
+msgstr "El lado derecho de la asignación en %L es un tipo derivado que contiene un POINTER en un procedimiento PURE"
#: fortran/resolve.c:4289
#, no-c-format
msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
-msgstr ""
+msgstr "La declaración de ASSIGN en %L requiere una variable INTEGER escalar por defecto"
#: fortran/resolve.c:4304
#, no-c-format
msgid "Arithmetic IF statement at %L requires a numeric expression"
-msgstr ""
+msgstr "La declaración IF aritmética en %L requiere una expresión numérica"
#: fortran/resolve.c:4316
#, no-c-format
msgid "IF clause at %L requires a scalar LOGICAL expression"
-msgstr ""
+msgstr "La cláusula IF en %L requiere una expresión LOGICAL escalar"
#: fortran/resolve.c:4342
#, no-c-format
msgid "Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression"
-msgstr ""
+msgstr "La condición de salida del ciclo DO WHILE en %L debe ser una expresión LOGICAL escalar"
#: fortran/resolve.c:4349
#, no-c-format
msgid "STAT tag in ALLOCATE statement at %L must be of type INTEGER"
-msgstr ""
+msgstr "La etiqueta STAT en la declaración ALLOCATE en %L debe ser de tipo INTEGER"
#: fortran/resolve.c:4361
#, no-c-format
msgid "STAT tag in DEALLOCATE statement at %L must be of type INTEGER"
-msgstr ""
+msgstr "La etiqueta STAT en la declaración DEALLOCATE en %L debe ser de tipo INTEGER"
#: fortran/resolve.c:4427
#, no-c-format
msgid "FORALL mask clause at %L requires a LOGICAL expression"
-msgstr ""
+msgstr "La cláusula de máscara FORALL en %L requiere una expresión LOGICAL"
#: fortran/resolve.c:4503
#, no-c-format
msgid "Allocatable array '%s' at %L must have a deferred shape"
-msgstr ""
+msgstr "La matriz alojable '%s' en %L debe tener una forma diferida"
#: fortran/resolve.c:4506
#, no-c-format
msgid "Scalar object '%s' at %L may not be ALLOCATABLE"
-msgstr ""
+msgstr "El objeto escalar '%s' en %L no puede ser ALLOCATABLE"
#: fortran/resolve.c:4513
#, no-c-format
msgid "Array pointer '%s' at %L must have a deferred shape"
-msgstr ""
+msgstr "La matriz de puntero '%s' en %L debe tener una forma diferida"
#: fortran/resolve.c:4524
#, no-c-format
msgid "Array '%s' at %L cannot have a deferred shape"
-msgstr ""
+msgstr "La matriz '%s' en %L no puede tener una forma diferida"
#: fortran/resolve.c:4579
#, no-c-format
msgid "The module or main program array '%s' at %L must have constant shape"
-msgstr ""
+msgstr "El módulo o la matriz del programa principal '%s' en %L deben tener una forma constante"
#: fortran/resolve.c:4592
#, no-c-format
msgid "Entity with assumed character length at %L must be a dummy argument or a PARAMETER"
-msgstr ""
+msgstr "La entidad con longitud de carácter asumida en %L debe ser un argumento de prueba o un PARAMETER"
#: fortran/resolve.c:4605
#, no-c-format
msgid "'%s' at %L must have constant character length in this context"
-msgstr ""
+msgstr "'%s' en %L debe tener longitud de cáracter constante en este contexto"
#: fortran/resolve.c:4636
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Allocatable '%s' at %L cannot have an initializer"
-msgstr "La variable %qs puede no haber sido inicializada"
+msgstr "El allocatable '%s' en %L no puede tener un inicializador"
#: fortran/resolve.c:4639
-#, fuzzy, no-c-format
+#, no-c-format
msgid "External '%s' at %L cannot have an initializer"
-msgstr "la variable %qs puede no haber sido inicializada"
+msgstr "El external '%s' en %L no puede tener un inicializador"
#: fortran/resolve.c:4642
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Dummy '%s' at %L cannot have an initializer"
-msgstr "la variable %qs puede no haber sido inicializada"
+msgstr "El dummy '%s' en %L no puede tener un inicializador"
#: fortran/resolve.c:4645
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Intrinsic '%s' at %L cannot have an initializer"
-msgstr "La variable %qs puede no haber sido inicializada"
+msgstr "El intrinsic '%s' en %L no puede tener un inicializador"
#: fortran/resolve.c:4648
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Function result '%s' at %L cannot have an initializer"
-msgstr "%Jel campo final %qD puede no haber sido inicializado"
+msgstr "El resultado de la función '%s' en %L no puede tener un inicializador"
#: fortran/resolve.c:4651
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Automatic array '%s' at %L cannot have an initializer"
-msgstr "la variable %qs puede no haber sido inicializada"
+msgstr "La matriz automática '%s' en %L no puede tener un inicializador"
#: fortran/resolve.c:4671
#, no-c-format
msgid "Object '%s' at %L must have the SAVE attribute %s"
-msgstr ""
+msgstr "El objeto '%s' en %L debe tener el atributo SAVE %s"
#: fortran/resolve.c:4704
#, no-c-format
msgid "Character-valued statement function '%s' at %L must have constant length"
-msgstr ""
+msgstr "La función de declaración valuada con carácter '%s' en %L debe tener longitud constante"
#: fortran/resolve.c:4723
#, no-c-format
msgid "'%s' is of a PRIVATE type and cannot be a dummy argument of '%s', which is PUBLIC at %L"
-msgstr ""
+msgstr "'%s' es de un tipo PRIVATE y no puede ser un argumento de prueba de '%s', el cual es PUBLIC en %L"
#: fortran/resolve.c:4738
-#, fuzzy, no-c-format
+#, no-c-format
msgid "External object '%s' at %L may not have an initializer"
-msgstr "La variable %qs puede no haber sido inicializada"
+msgstr "El objeto external '%s' en %L puede no tener un inicializador"
#: fortran/resolve.c:4757
#, no-c-format
msgid "CHARACTER(*) function '%s' at %L cannot be array-valued"
-msgstr ""
+msgstr "La función CHARACTER(*) '%s' en %L no puede ser matriz-valuada"
#: fortran/resolve.c:4761
#, no-c-format
msgid "CHARACTER(*) function '%s' at %L cannot be pointer-valued"
-msgstr ""
+msgstr "La función CHARACTER(*) '%s' en %L no puede ser puntero-valuada"
#: fortran/resolve.c:4765
#, no-c-format
msgid "CHARACTER(*) function '%s' at %L cannot be pure"
-msgstr ""
+msgstr "La función CHARACTER(*) '%s' en %L no puede ser pura"
#: fortran/resolve.c:4769
#, no-c-format
msgid "CHARACTER(*) function '%s' at %L cannot be recursive"
-msgstr ""
+msgstr "La función CHARACTER(*) '%s' en %L no puede ser recursiva"
#: fortran/resolve.c:4778
#, no-c-format
msgid "CHARACTER(*) function '%s' at %L is obsolescent in fortran 95"
-msgstr ""
+msgstr "La función CHARACTER(*) '%s' en %L es obsoleta en fortran 95"
#: fortran/resolve.c:4803
#, no-c-format
msgid "Character length of component '%s' needs to be a constant specification expression at %L."
-msgstr ""
+msgstr "La longitud de carácter del componente '%s' necesita ser una expresión de especificación constante en %L."
#: fortran/resolve.c:4818
#, no-c-format
msgid "The component '%s' is a PRIVATE type and cannot be a component of '%s', which is PUBLIC at %L"
-msgstr ""
+msgstr "El componente '%s' es un tipo PRIVATE y no puede ser un componente de '%s' el cual es PUBLIC en %L"
#: fortran/resolve.c:4836
#, no-c-format
msgid "Component '%s' of '%s' at %L must have constant array bounds."
-msgstr ""
+msgstr "El componente '%s' de '%s' en %L debe tener límites de matriz constantes."
#: fortran/resolve.c:4860
#, no-c-format
msgid "Parameter array '%s' at %L cannot be automatic or assumed shape"
-msgstr ""
+msgstr "La matriz de parámetro '%s' en %L no puede ser automática ni de forma asumida"
#: fortran/resolve.c:4872
#, no-c-format
msgid "Implicitly typed PARAMETER '%s' at %L doesn't match a later IMPLICIT type"
-msgstr ""
+msgstr "El PARAMETER de tipo implícito '%s' en %L no coincide con un tipo IMPLICIT posterior"
#: fortran/resolve.c:4883
#, no-c-format
msgid "Incompatible derived type in PARAMETER at %L"
-msgstr ""
+msgstr "Tipo derivado incompatible en PARAMETER en %L"
#: fortran/resolve.c:4985
#, no-c-format
msgid "Assumed size array at %L must be a dummy argument"
-msgstr ""
+msgstr "El tamaño asumido de matriz en %L debe ser un argumento de prueba"
#: fortran/resolve.c:4988
#, no-c-format
msgid "Assumed shape array at %L must be a dummy argument"
-msgstr ""
+msgstr "La forma asumida de matriz en %L debe ser un argumento de prueba"
#: fortran/resolve.c:5001
#, no-c-format
msgid "Symbol at %L is not a DUMMY variable"
-msgstr ""
+msgstr "El símbolo en %L no es una variable DUMMY"
#: fortran/resolve.c:5016
#, no-c-format
msgid "The derived type '%s' at %L is of type '%s', which has not been defined."
-msgstr ""
+msgstr "El tipo derivado '%s' en %L es de tipo '%s', el cual no se ha definido."
#: fortran/resolve.c:5035
#, no-c-format
msgid "The INTENT(OUT) dummy argument '%s' at %L is ASSUMED SIZE and so cannot have a default initializer"
-msgstr ""
+msgstr "El argumento de prueba INTENT(OUT) '%s' en %L es ASSUMED SIZE y por lo tanto no puede tener un inicializador por defecto"
#: fortran/resolve.c:5067
#, no-c-format
msgid "PRIVATE symbol '%s' cannot be member of PUBLIC namelist at %L"
-msgstr ""
+msgstr "El símbolo PRIVATE '%s' no puede ser miembro de una lista de nombres PUBLIC en %L"
#: fortran/resolve.c:5091
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Intrinsic at %L does not exist"
-msgstr "No se reconoce la función intrínseca %s(%d)"
+msgstr "El intrínseco en %L no existe"
#: fortran/resolve.c:5166
#, no-c-format
msgid "BLOCK DATA element '%s' at %L must be in COMMON"
-msgstr ""
+msgstr "El elemento BLOCK DATA '%s' en %L debe estar en COMMON"
#: fortran/resolve.c:5210
#, no-c-format
msgid "Nonconstant array section at %L in DATA statement"
-msgstr ""
+msgstr "Sección de matriz no constante en %L en la declaración DATA"
#: fortran/resolve.c:5223
#, no-c-format
msgid "DATA statement at %L has more variables than values"
-msgstr ""
+msgstr "La declaración DATA en %L tiene más variables que valores"
#: fortran/resolve.c:5421
#, no-c-format
msgid "DATA statement at %L has more values than variables"
-msgstr ""
+msgstr "La declaración DATA en %L tiene más valores que variables"
#: fortran/resolve.c:5503
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Label %d at %L defined but not used"
-msgstr "se define la etiqueta %qD pero no se usa"
+msgstr "se define la etiqueta %d en %L pero no se usa"
#: fortran/resolve.c:5508
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Label %d at %L defined but cannot be used"
-msgstr "se define la etiqueta %qD pero no se usa"
+msgstr "se define la etiqueta %d en %L pero no se puede usar"
#: fortran/resolve.c:5592
#, no-c-format
msgid "Derived type variable '%s' at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
-msgstr ""
+msgstr "La variable de tipo derivado '%s' en %L debe tener el atributo SEQUENCE para ser un objeto EQUIVALENCE"
#: fortran/resolve.c:5607
#, no-c-format
msgid "Derived type variable '%s' at %L with pointer component(s) cannot be an EQUIVALENCE object"
-msgstr ""
+msgstr "La variable de tipo derivado '%s' en %L con componente(s) de puntero no puede ser un objeto EQUIVALENCE"
#: fortran/resolve.c:5614
#, no-c-format
msgid "Derived type variable '%s' at %L with default initializer cannot be an EQUIVALENCE object"
-msgstr ""
+msgstr "La variable de tipo derivado '%s' en %L con inicializadores por defecto no puede ser un objeto EQUIVALENCE"
#: fortran/resolve.c:5715
#, no-c-format
msgid "Syntax error in EQUIVALENCE statement at %L"
-msgstr ""
+msgstr "Error sintáctico en la declaración EQUIVALENCE en %L"
#: fortran/resolve.c:5732
#, no-c-format
msgid "Initialized objects '%s' and '%s' cannot both be in the EQUIVALENCE statement at %L"
-msgstr ""
+msgstr "No pueden estar ambos objetos inicializados '%s' y '%s' en la declaración EQUIVALENCE en %L"
#: fortran/resolve.c:5746
#, no-c-format
msgid "Common block member '%s' at %L cannot be an EQUIVALENCE object in the pure procedure '%s'"
-msgstr ""
+msgstr "El miembro de bloque común '%s' en %L no puede ser un objeto EQUIVALENCE en el procedimiento puro '%s'"
#: fortran/resolve.c:5755
#, no-c-format
msgid "Named constant '%s' at %L cannot be an EQUIVALENCE object"
-msgstr ""
+msgstr "La constante nombrada '%s' en %L no puede ser un objeto EQUIVALENCE"
#: fortran/resolve.c:5834
#, no-c-format
msgid "Array '%s' at %L with non-constant bounds cannot be an EQUIVALENCE object"
-msgstr ""
+msgstr "La matriz '%s' en %L con límites no constante no puede ser un objeto EQUIVALENCE"
#: fortran/resolve.c:5845
#, no-c-format
msgid "Structure component '%s' at %L cannot be an EQUIVALENCE object"
-msgstr ""
+msgstr "El componente de estructura '%s' en %L no puede ser un objeto EQUIVALENCE"
#: fortran/resolve.c:5856
#, no-c-format
msgid "Substring at %L has length zero"
-msgstr ""
+msgstr "La subcadena en %L tiene longitud cero"
#: fortran/resolve.c:5899
#, no-c-format
msgid "PUBLIC function '%s' at %L cannot be of PRIVATE type '%s'"
-msgstr ""
+msgstr "La función PUBLIC '%s' en %L no puede ser del tipo PRIVATE '%s'"
#: fortran/resolve.c:5911
#, no-c-format
msgid "ENTRY '%s' at %L has no IMPLICIT type"
-msgstr ""
+msgstr "ENTRY '%s' en %L no tiene tipo IMPLICIT"
#: fortran/resolve.c:5947
#, no-c-format
msgid "Contained procedure '%s' at %L of a PURE procedure must also be PURE"
-msgstr ""
+msgstr "El procedimiento contenido '%s' en %L de un procedimiento PURE tambíén debe ser PURE"
#: fortran/scanner.c:967
-#, fuzzy, no-c-format
+#, no-c-format
msgid "%s:%d: file %s left but not entered"
-msgstr "se dejó el fichero \"%s\" pero no se introdujo"
+msgstr "%s:%d: se dejó el fichero %s pero no se introdujo"
#: fortran/scanner.c:994
-#, fuzzy, no-c-format
+#, no-c-format
msgid "%s:%d: Illegal preprocessor directive"
-msgstr "%s en la directiva de preprocesamiento"
+msgstr "%s:%d: Directiva de preprocesamiento ilegal"
#: fortran/scanner.c:1069
#, no-c-format
msgid "File '%s' is being included recursively"
-msgstr ""
+msgstr "El fichero '%s' se está incluyendo recursivamente"
#: fortran/scanner.c:1084
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Can't open file '%s'"
-msgstr "no se puede abrir el fichero de salida '%s'"
+msgstr "No se puede abrir el fichero '%s'"
#: fortran/scanner.c:1093
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Can't open included file '%s'"
-msgstr "no se puede abrir el fichero de entrada: %s"
+msgstr "No se puede abrir el fichero incluído '%s'"
#: fortran/scanner.c:1195
-#, fuzzy, c-format
+#, c-format
msgid "%s:%3d %s\n"
-msgstr "%s: %s"
+msgstr "%s:%3d %s\n"
#: fortran/simplify.c:101
#, no-c-format
msgid "Result of %s overflows its kind at %L"
-msgstr ""
+msgstr "El resultado de %s desborda su afinidad en %L"
#: fortran/simplify.c:120
-#, fuzzy, no-c-format
+#, no-c-format
msgid "KIND parameter of %s at %L must be an initialization expression"
-msgstr "el parámetro 1 de GEN_INST debe ser un PROCESS o una expresión entera"
+msgstr "El parámetro KIND de %s en %L debe ser una expresión de inicialización"
#: fortran/simplify.c:130
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid KIND parameter of %s at %L"
-msgstr "el parámetro %qs es inválido"
+msgstr "Parámetro KIND de %s inválido en %L"
#: fortran/simplify.c:227
#, no-c-format
msgid "Extended ASCII not implemented: argument of ACHAR at %L must be between 0 and 127"
-msgstr ""
+msgstr "ASCII extendido sin implementación: el argumento de ACHAR en %L debe estar entre 0 y 127"
#: fortran/simplify.c:254
#, no-c-format
msgid "Argument of ACOS at %L must be between -1 and 1"
-msgstr ""
+msgstr "El argumento de ACOS en %L debe estar entre -1 y 1"
#: fortran/simplify.c:276
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Argument of ACOSH at %L must not be less than 1"
-msgstr "el argumento 2 de ASSOCIATE no debe ser una cadena vacía"
+msgstr "El argumento ACOSH en %L no debe ser menor a 1"
#: fortran/simplify.c:503
#, no-c-format
msgid "Argument of ASIN at %L must be between -1 and 1"
-msgstr ""
+msgstr "El argumento de ASIN en %L debe estar entre -1 y 1"
#: fortran/simplify.c:559
#, no-c-format
msgid "Argument of ATANH at %L must be inside the range -1 to 1"
-msgstr ""
+msgstr "El argumento de ATANH en %L debe estar dentro del rango -1 a 1"
#: fortran/simplify.c:585
#, no-c-format
msgid "If first argument of ATAN2 %L is zero, then the second argument must not be zero"
-msgstr ""
+msgstr "Si el primer argumento de ATAN2 %L es cero, entonces el segundo argumento no debe ser cero"
#: fortran/simplify.c:667
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Bad character in CHAR function at %L"
-msgstr "No hay ramificaciones en la función %s\n"
+msgstr "Carácter erróneo en la función CHAR en %L"
#: fortran/simplify.c:1195
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Argument of IACHAR at %L must be of length one"
-msgstr "el argumento 1 para `%s' debe ser de modo de coma flotante"
+msgstr "El argumento de IACHAR en %L debe ser de longitud uno"
#: fortran/simplify.c:1235
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid second argument of IBCLR at %L"
-msgstr "argumento de tipo inválido de %qs"
+msgstr "Segundo argumento de IBCLR inválido en %L"
#: fortran/simplify.c:1243
#, no-c-format
msgid "Second argument of IBCLR exceeds bit size at %L"
-msgstr ""
+msgstr "El segundo argumento de IBCLR excede el tamaño de bit en %L"
#: fortran/simplify.c:1270
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid second argument of IBITS at %L"
-msgstr "argumento de tipo inválido de %qs"
+msgstr "Segundo argumento de IBITS inválido en %L"
#: fortran/simplify.c:1276
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid third argument of IBITS at %L"
-msgstr "argumento de tipo inválido de %qs"
+msgstr "Tercer argumento de IBITS inválido en %L"
#: fortran/simplify.c:1287
#, no-c-format
msgid "Sum of second and third arguments of IBITS exceeds bit size at %L"
-msgstr ""
+msgstr "La suma del segundo y tercer argumentos de IBITS excede el tamaño de bit en %L"
#: fortran/simplify.c:1335
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid second argument of IBSET at %L"
-msgstr "argumento de tipo inválido de %qs"
+msgstr "Segundo argumento de IBSET inválido en %L"
#: fortran/simplify.c:1343
#, no-c-format
msgid "Second argument of IBSET exceeds bit size at %L"
-msgstr ""
+msgstr "El segundo argumento de IBSET excede el tamaño de bit en %L"
#: fortran/simplify.c:1369
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Argument of ICHAR at %L must be of length one"
-msgstr "el argumento 1 para `%s' debe ser de modo de coma flotante"
+msgstr "El argumento de ICHAR en %L debe ser de longitud uno"
#: fortran/simplify.c:1377
#, no-c-format
msgid "Argument of ICHAR at %L out of range of this processor"
-msgstr ""
+msgstr "El argumento de ICHAR en %L está fuera de rango de este procesador"
#: fortran/simplify.c:1585
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Argument of INT at %L is not a valid type"
-msgstr "el valor de %s no es una constante válida"
+msgstr "El argumento de INT en %s no es un tipo válido"
#: fortran/simplify.c:1662
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid second argument of ISHFT at %L"
-msgstr "argumento de tipo inválido de %qs"
+msgstr "Segundo argumento de ISHFT inválido en %L"
#: fortran/simplify.c:1678
#, no-c-format
msgid "Magnitude of second argument of ISHFT exceeds bit size at %L"
-msgstr ""
+msgstr "La magnitud del segundo argumento de ISHFT excede el tamaño de bit en %L"
#: fortran/simplify.c:1742
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid second argument of ISHFTC at %L"
-msgstr "argumento de tipo inválido de %qs"
+msgstr "Segundo argumento de ISHFTC inválido en %L"
#: fortran/simplify.c:1752
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid third argument of ISHFTC at %L"
-msgstr "argumento de tipo inválido de %qs"
+msgstr "Tercer argumento de ISHFTC inválido en %L"
#: fortran/simplify.c:1767
#, no-c-format
msgid "Magnitude of second argument of ISHFTC exceeds third argument at %L"
-msgstr ""
+msgstr "La magnitud del segundo argumento de ISHFTC excede el tercer argumento en %L"
#: fortran/simplify.c:1837
#, no-c-format
msgid "Argument of KIND at %L is a DERIVED type"
-msgstr ""
+msgstr "El argumento de KIND en %L es un tipo DERIVED"
#: fortran/simplify.c:1908
-#, fuzzy, no-c-format
+#, no-c-format
msgid "DIM argument at %L is out of bounds"
-msgstr "el número del acumulador está fuera de los límites"
+msgstr "El argumento DIM en %L está fuera de los límites"
#: fortran/simplify.c:2038
#, no-c-format
msgid "Argument of LOG at %L cannot be less than or equal to zero"
-msgstr ""
+msgstr "El argumento de LOG en %L no puede ser menor o igual a cero"
#: fortran/simplify.c:2051
#, no-c-format
msgid "Complex argument of LOG at %L cannot be zero"
-msgstr ""
+msgstr "El argumento complejo de LOG en %L no puede ser cero"
#: fortran/simplify.c:2095
#, no-c-format
msgid "Argument of LOG10 at %L cannot be less than or equal to zero"
-msgstr ""
+msgstr "El argumento de LOG10 en %L no puede ser menor o igual a cero"
#. Result is processor-dependent.
#: fortran/simplify.c:2272
#, no-c-format
msgid "Second argument MOD at %L is zero"
-msgstr ""
+msgstr "El segundo argumento MOD en %L es cero"
#. Result is processor-dependent.
#: fortran/simplify.c:2283
#, no-c-format
msgid "Second argument of MOD at %L is zero"
-msgstr ""
+msgstr "El segundo argumento de MOD en %L es cero"
#. Result is processor-dependent. This processor just opts
#. to not handle it at all.
@@ -8421,340 +8341,337 @@ msgstr ""
#: fortran/simplify.c:2331 fortran/simplify.c:2343
#, no-c-format
msgid "Second argument of MODULO at %L is zero"
-msgstr ""
+msgstr "El segundo argumento de MODULO en %L es cero"
#: fortran/simplify.c:2400
#, no-c-format
msgid "Second argument of NEAREST at %L may not be zero"
-msgstr ""
+msgstr "El segundo argumento de NEAREST en %L puede no ser cero"
#: fortran/simplify.c:2708
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid second argument of REPEAT at %L"
-msgstr "argumento de tipo inválido de %qs"
+msgstr "Segundo argumento de REPEAT inválido en %L"
#: fortran/simplify.c:2782
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Integer too large in shape specification at %L"
-msgstr "después de la especificación previa en %q#D"
+msgstr "Entero demasiado grande en la especificación de forma en %L"
#: fortran/simplify.c:2792
#, no-c-format
msgid "Too many dimensions in shape specification for RESHAPE at %L"
-msgstr ""
+msgstr "Demasiadas dimensiones en la especificación de forma para RESHAPE en %L"
#: fortran/simplify.c:2800
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Shape specification at %L cannot be negative"
-msgstr "Especificación de rango en %0 inválida"
+msgstr "La especificación de forma en %L no puede ser negativa"
#: fortran/simplify.c:2810
#, no-c-format
msgid "Shape specification at %L cannot be the null array"
-msgstr ""
+msgstr "La especificación de forma en %L no puede ser la matriz nula"
#: fortran/simplify.c:2834
#, no-c-format
msgid "ORDER parameter of RESHAPE at %L is not the same size as SHAPE parameter"
-msgstr ""
+msgstr "El parámetro ORDER de RESHAPE en %L no es del mismo tamaño que el parámetro SHAPE"
#: fortran/simplify.c:2841
#, no-c-format
msgid "Error in ORDER parameter of RESHAPE at %L"
-msgstr ""
+msgstr "Error en el parámetro ORDER de RESHAPE en %L"
#: fortran/simplify.c:2851
#, no-c-format
msgid "ORDER parameter of RESHAPE at %L is out of range"
-msgstr ""
+msgstr "El parámetro ORDER de RESHAPE en %L está fuera de rango"
#: fortran/simplify.c:2860
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid permutation in ORDER parameter at %L"
-msgstr "Atributo de declaración de tipo inválido en %0"
+msgstr "Permutación inválida en el parámetro ORDER en %L"
#: fortran/simplify.c:2917
#, no-c-format
msgid "PAD parameter required for short SOURCE parameter at %L"
-msgstr ""
+msgstr "Se requiere el parámetro PAD para el parámetro SOURCE corto en %L"
#: fortran/simplify.c:3051
#, no-c-format
msgid "Result of SCALE overflows its kind at %L"
-msgstr ""
+msgstr "El resultado de SCALE desborda su afinidad en %L"
#: fortran/simplify.c:3632
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Argument of SQRT at %L has a negative value"
-msgstr "la llamada a la función tiene valor agregado"
+msgstr "El argumento de SQRT en %L tiene un valor negativo"
#: fortran/symbol.c:111
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Duplicate IMPLICIT NONE statement at %C"
-msgstr "Declaración VXT sin soporte en %0"
+msgstr "Declaración IMPLICIT NONE duplicada en %C"
#: fortran/symbol.c:151
#, no-c-format
msgid "Letter '%c' already set in IMPLICIT statement at %C"
-msgstr ""
+msgstr "Ya se definió la letra '%c' en la declaración IMPLICIT en %C"
#: fortran/symbol.c:173
#, no-c-format
msgid "Cannot specify IMPLICIT at %C after IMPLICIT NONE"
-msgstr ""
+msgstr "No se puede especificar IMPLICIT en %C después de IMPLICIT NONE"
#: fortran/symbol.c:184
#, no-c-format
msgid "Letter %c already has an IMPLICIT type at %C"
-msgstr ""
+msgstr "La letra %c ya tiene un tipo IMPLICIT en %C"
#: fortran/symbol.c:232
#, no-c-format
msgid "Symbol '%s' at %L has no IMPLICIT type"
-msgstr ""
+msgstr "El símbolo '%s' en %L no tiene tipo IMPLICIT"
#: fortran/symbol.c:304
-#, fuzzy, no-c-format
+#, no-c-format
msgid "%s attribute not allowed in BLOCK DATA program unit at %L"
-msgstr "Declaración en %0 inválida en la unidad de programa BLOCK DATA en %1"
+msgstr "No se permite el atributo %s en la unidad de programa BLOCK DATA en %L"
#: fortran/symbol.c:506 fortran/symbol.c:997
-#, fuzzy, no-c-format
+#, no-c-format
msgid "%s attribute conflicts with %s attribute at %L"
-msgstr "el atributo %qs solamente se aplica a variables"
+msgstr "El atributo %s tiene conflictos con el atributo %s en %L"
#: fortran/symbol.c:509
#, no-c-format
msgid "%s attribute conflicts with %s attribute in '%s' at %L"
-msgstr ""
+msgstr "El atributo %s tiene conflictos con el atributo %s en '%s' en %L"
#: fortran/symbol.c:551
#, no-c-format
msgid "Cannot change attributes of USE-associated symbol at %L"
-msgstr ""
+msgstr "No se pueden cambiar los atributos de un símbolo asociado con USE en %L"
#: fortran/symbol.c:554
#, no-c-format
msgid "Cannot change attributes of USE-associated symbol %s at %L"
-msgstr ""
+msgstr "No se pueden cambiar los atributos del símbolo asociado con USE %s en %L"
#: fortran/symbol.c:576
#, no-c-format
msgid "Cannot change attributes of symbol at %L after it has been used"
-msgstr ""
+msgstr "No se pueden cambiar los atributos del símbolo en %L después de ser usado"
#: fortran/symbol.c:592
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Duplicate %s attribute specified at %L"
-msgstr "se especificaron múltiples atributos de tipo de función"
+msgstr "Atributo %s duplicado especificado en %L"
#: fortran/symbol.c:733
#, no-c-format
msgid "Cray Pointee at %L appears in multiple pointer() statements."
-msgstr ""
+msgstr "El Puntero Cray en %L aparece en varias declaraciones pointer()."
#: fortran/symbol.c:765
-#, fuzzy, no-c-format
+#, no-c-format
msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
-msgstr "La declaración o atributo SAVE en %1 no se puede especificar junto con la declaración o atributo SAVE en %0"
+msgstr "El atributo SAVE en %L no se puede especificar en un procedimiento PURE"
#: fortran/symbol.c:773
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Duplicate SAVE attribute specified at %L"
-msgstr "se especificaron múltiples atributos de tipo de función"
+msgstr "Atributo SAVE duplicado especificado en %L"
#: fortran/symbol.c:1027
#, no-c-format
msgid "%s procedure at %L is already declared as %s procedure"
-msgstr ""
+msgstr "El prcedimiento %s en %L ya sa había declarado como un procedimiento %s"
#: fortran/symbol.c:1062
#, no-c-format
msgid "INTENT (%s) conflicts with INTENT(%s) at %L"
-msgstr ""
+msgstr "INTENT (%s) tiene conflictos con INTENT(%s) en %L"
#: fortran/symbol.c:1085
#, no-c-format
msgid "ACCESS specification at %L was already specified"
-msgstr ""
+msgstr "La especificación ACCESS en %L ya se había especificado"
#: fortran/symbol.c:1105
#, no-c-format
msgid "Symbol '%s' at %L already has an explicit interface"
-msgstr ""
+msgstr "El símbolo '%s' en %L ya tenía una interfaz explícita"
#: fortran/symbol.c:1133
#, no-c-format
msgid "Symbol '%s' at %L already has basic type of %s"
-msgstr ""
+msgstr "El símbolo '%s' en %L ya tenía el tipo básico de %s"
#: fortran/symbol.c:1145
#, no-c-format
msgid "Symbol '%s' at %L cannot have a type"
-msgstr ""
+msgstr "El símbolo '%s' en %L no puede tener un tipo"
#: fortran/symbol.c:1283
#, no-c-format
msgid "Component '%s' at %C already declared at %L"
-msgstr ""
+msgstr "El componente '%s' en %C ya se había declarado en %L"
#: fortran/symbol.c:1361
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Symbol '%s' at %C is ambiguous"
-msgstr "el uso de %qD es ambiguo"
+msgstr "El símbolo '%s' en %C es ambiguo"
#: fortran/symbol.c:1393
#, no-c-format
msgid "Derived type '%s' at %C is being used before it is defined"
-msgstr ""
+msgstr "El tipo derivado '%s' en %C se está usando antes de ser definido"
#: fortran/symbol.c:1421
-#, fuzzy, no-c-format
+#, no-c-format
msgid "'%s' at %C is not a member of the '%s' structure"
-msgstr "%qD no es un miembro de tipo %qT"
+msgstr "'%s' en %C no es un miembro de la estructura '%s'"
#: fortran/symbol.c:1427
#, no-c-format
msgid "Component '%s' at %C is a PRIVATE component of '%s'"
-msgstr ""
+msgstr "El componente '%s' en %C es un componente PRIVATE de '%s'"
#: fortran/symbol.c:1571
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Duplicate statement label %d at %L and %L"
-msgstr "Valor de case duplicado: %<default%>"
+msgstr "Declaración de etiqueta %d duplicada en %L y %L"
#: fortran/symbol.c:1581
#, no-c-format
msgid "Label %d at %C already referenced as branch target"
-msgstr ""
+msgstr "La etiqueta %d en %C ya se referenció como objetivo de ramificación"
#: fortran/symbol.c:1590
#, no-c-format
msgid "Label %d at %C already referenced as a format label"
-msgstr ""
+msgstr "La etiqueta %d en %C ya se referenció como etiqueta de formato"
#: fortran/symbol.c:1632
#, no-c-format
msgid "Label %d at %C previously used as a FORMAT label"
-msgstr ""
+msgstr "La etiqueta %d en %C se utilizó previamente como una etiqueta FORMAT"
#: fortran/symbol.c:1640
#, no-c-format
msgid "Label %d at %C previously used as branch target"
-msgstr ""
+msgstr "La etiqueta %d en %C se utilizó previamente como objetivo de ramificación"
#: fortran/symbol.c:1893
#, no-c-format
msgid "Name '%s' at %C is an ambiguous reference to '%s' from module '%s'"
-msgstr ""
+msgstr "El nombre '%s' en %C es una referencia ambigua a '%s' del módulo '%s'"
#: fortran/symbol.c:1896
#, no-c-format
msgid "Name '%s' at %C is an ambiguous reference to '%s' from current program unit"
-msgstr ""
+msgstr "El nombre '%s' en %C es una referencia ambigua a '%s' de la unidad de programa actual"
#. Symbol is from another namespace.
#: fortran/symbol.c:2033
#, no-c-format
msgid "Symbol '%s' at %C has already been host associated"
-msgstr ""
+msgstr "El símbolo '%s' en %C ya se había asociado con el anfitrión"
#: fortran/trans-common.c:331
#, no-c-format
msgid "Named COMMON block '%s' at %L shall be of the same size"
-msgstr ""
+msgstr "El bloque COMMON nombrado '%s' en %L debe ser del mismo tamaño"
#: fortran/trans-common.c:629
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Bad array reference at %L"
-msgstr "Elemento nullo en %0 para la referencia de matriz en %1"
+msgstr "Referencia de matriz errónea en %L"
#: fortran/trans-common.c:637
#, no-c-format
msgid "Illegal reference type at %L as EQUIVALENCE object"
-msgstr ""
+msgstr "Tipo de referencia ilegal en %L como un objeto EQUIVALENCE"
#: fortran/trans-common.c:677
#, no-c-format
msgid "Inconsistent equivalence rules involving '%s' at %L and '%s' at %L"
-msgstr ""
+msgstr "Reglas de equivalencia inconsistentes que involucran a '%s' en %L y a '%s' en %L"
#. Aligning this field would misalign a previous field.
#: fortran/trans-common.c:799
#, no-c-format
msgid "The equivalence set for variable '%s' declared at %L violates alignment requirents"
-msgstr ""
+msgstr "El conjunto de equivalencia para la variable '%s' declarado en %L viola los requerimientos de alineación"
#: fortran/trans-common.c:864
#, no-c-format
msgid "Equivalence for '%s' does not match ordering of COMMON '%s' at %L"
-msgstr ""
+msgstr "La equivalencia para '%s' no coincide con el orden del COMMON '%s' en %L"
#: fortran/trans-common.c:879
#, no-c-format
msgid "The equivalence set for '%s' cause an invalid extension to COMMON '%s' at %L"
-msgstr ""
+msgstr "El conjunto de equivalencia para '%s' causa una extensión inválida al COMMON '%s' en %L"
#. The required offset conflicts with previous alignment
#. requirements. Insert padding immediately before this
#. segment.
#: fortran/trans-common.c:890
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Padding of %d bytes required before '%s' in COMMON '%s' at %L"
-msgstr "Se requiere el relleno de %A %D antes de `%B' en el bloque común `%C' en %0"
+msgstr "Se requiere el relleno de %d bytes antes de '%s' en el COMMON '%s' en %L"
#: fortran/trans-common.c:916
#, no-c-format
msgid "COMMON '%s' at %L requires %d bytes of padding at start"
-msgstr ""
+msgstr "El COMMON '%s' en %L requiere %d bytes de relleno al inicio"
#: fortran/trans-const.c:158
msgid "Array bound mismatch"
-msgstr ""
+msgstr "El límite de la matriz no coincide"
#: fortran/trans-const.c:161
-#, fuzzy
msgid "Array reference out of bounds"
-msgstr "formando la referencia a void"
+msgstr "La referencia de la matriz está fuera de los límites"
#: fortran/trans-const.c:164
-#, fuzzy
msgid "Incorrect function return value"
-msgstr "la función %<noreturn%> devuelve un valor que no es void"
+msgstr "Valor de devolución de la función incorrecto"
#: fortran/trans-decl.c:438
-#, fuzzy, no-c-format
+#, no-c-format
msgid "storage size not known"
-msgstr "no se conoce el tamaño de almacenamiento de %qD"
+msgstr "no se conoce el tamaño de almacenamiento"
#: fortran/trans-decl.c:445
-#, fuzzy, no-c-format
+#, no-c-format
msgid "storage size not constant"
-msgstr "el tamaño de almacenamiento de %qD no es constante"
+msgstr "el tamaño de almacenamiento no es constante"
#: fortran/trans-io.c:533
msgid "Assigned label is not a format label"
-msgstr ""
+msgstr "La etiqueta asignada no es una etiqueta de formato"
#: fortran/trans-io.c:974
#, no-c-format
msgid "INQUIRE statement at %L cannot contain both FILE and UNIT specifiers."
-msgstr ""
+msgstr "La declaración INQUIRE en %L no puede contener especificadores FILE y UNIT al mismo tiempo."
#: fortran/trans-stmt.c:163
msgid "Assigned label is not a target label"
-msgstr ""
+msgstr "La etiqueta asignada no es una etiqueta objetivo"
#. Check the label list.
#: fortran/trans-stmt.c:179
-#, fuzzy
msgid "Assigned label is not in the list"
-msgstr "la etiqueta CASE no es válida"
+msgstr "La etiqueta asignada no está en la lista"
#: fortran/trans-stmt.c:319
-#, fuzzy, no-c-format
+#, no-c-format
msgid "An alternate return at %L without a * dummy argument"
-msgstr "El especificador de devolución alternante en %0 es inválido dentro de una unidad de programa principal"
+msgstr "Una devolución alternativa en %L sin un argumento de prueba *"
#. FIXME: i18n bug here. Order of prints should not be
#. fixed.
@@ -9147,14 +9064,12 @@ msgid "the m210 does not have little endian support"
msgstr "el m210 no tiene soporte para little endian"
#: config/lynx.h:71
-#, fuzzy
msgid "cannot use mthreads and mlegacy-threads together"
-msgstr "No se pueden usar mthreads y mlegacy-threads juntos."
+msgstr "no se pueden usar mthreads y mlegacy-threads juntos"
#: config/lynx.h:96
-#, fuzzy
msgid "cannot use mshared and static together"
-msgstr "No se pueden usar mshared y static juntos."
+msgstr "no se pueden usar mshared y static juntos"
#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22
#: config/sparc/sol2-bi.h:169 config/sparc/sol2-bi.h:174
@@ -9178,9 +9093,8 @@ msgid "shared and mdll are not compatible"
msgstr "shared y mdll no son compatibles."
#: config/vax/netbsd-elf.h:42
-#, fuzzy
msgid "the -shared option is not currently supported for VAX ELF"
-msgstr "La opción -shared no se soporta actualmente para ELF de VAX."
+msgstr "la opción -shared no tiene soporte actualmente en ELF de VAX."
#: config/vax/vax.h:50 config/vax/vax.h:51
msgid "profiling not supported with -mg\n"
@@ -9231,9 +9145,8 @@ msgid "-E or -x required when input is from standard input"
msgstr "se requiere -E ó -x cuando la entrada es de entrada estándar"
#: config/s390/tpf.h:125
-#, fuzzy
msgid "static is not supported on TPF-OS"
-msgstr "-traditional no tiene soporte en C++"
+msgstr "static no tiene soporte en TPF-OS"
#: config/sh/sh.h:460
msgid "SH2a does not support little-endian"
@@ -9246,9 +9159,8 @@ msgid "may not use both -m32 and -m64"
msgstr "no se pueden usar -m32 y -m64 al mismo tiempo"
#: config/vxworks.h:66
-#, fuzzy
msgid "-Xbind-now and -Xbind-lazy are incompatible"
-msgstr "-membedded-pic y -mabicalls son incompatibles"
+msgstr "-Xbind-now y -Xbind-lazy son incompatibles"
#: config/i386/nwld.h:35
msgid "Static linking is not supported.\n"
@@ -9299,39 +9211,36 @@ msgid "-private_bundle not allowed with -dynamiclib"
msgstr "no se permite -private_bundle con -dynamiclib"
#: java/lang.opt:66
-#, fuzzy
msgid "Warn if a deprecated compiler feature, class, method, or field is used"
-msgstr "Avisa si se usan opciones de compilador obsoletas"
+msgstr "Avisar si se usa una opción de compilador, clase, método o campo obsoletos"
#: java/lang.opt:70
msgid "Warn if deprecated empty statements are found"
-msgstr "Avisa si se encuentran declaraciones vacías obsoletas"
+msgstr "Avisar si se encuentran declaraciones vacías obsoletas"
#: java/lang.opt:74
msgid "Warn if .class files are out of date"
-msgstr "Avisa si los ficheros .class están desactualizados"
+msgstr "Avisar si los ficheros .class están desactualizados"
#: java/lang.opt:78
msgid "Warn if modifiers are specified when not necessary"
-msgstr "Avisa si se especifican modificadores cuando no son necesarios"
+msgstr "Avisar si se especifican modificadores cuando no son necesarios"
#: java/lang.opt:82
-#, fuzzy
msgid "Deprecated; use --classpath instead"
-msgstr "--CLASSPATH\tObsoleto; utilice en su lugar --classpath"
+msgstr "Obsoleto; usar en su lugar --classpath"
#: java/lang.opt:86
msgid "Permit the use of the assert keyword"
-msgstr "Permite el uso de la palabra clave assert"
+msgstr "Permitir el uso de la palabra clave assert"
#: java/lang.opt:108
-#, fuzzy
msgid "Replace system path"
-msgstr "--bootclasspath=<ruta>\tReemplaza la ruta del sistema"
+msgstr "Reemplazar la ruta del sistema"
#: java/lang.opt:112
msgid "Generate checks for references to NULL"
-msgstr "Genera revisiones para referencias a NULL"
+msgstr "Generar revisiones para referencias a NULL"
#: java/lang.opt:116
msgid "Set class path"
@@ -9339,21 +9248,19 @@ msgstr "Establecer la ruta de clases"
#: java/lang.opt:123
msgid "Output a class file"
-msgstr "Genera un fichero clase como salida"
+msgstr "Generar un fichero clase como salida"
#: java/lang.opt:127
msgid "Alias for -femit-class-file"
msgstr "Alias para -femit-class-file"
#: java/lang.opt:131
-#, fuzzy
msgid "Choose input encoding (defaults from your locale)"
-msgstr "--encoding=<codificación>\tEscoge la codificación de entrada (por defecto viene del local)"
+msgstr "Escoger la codificación de entrada (por defecto viene del local)"
#: java/lang.opt:135
-#, fuzzy
msgid "Set the extension directory path"
-msgstr "--extdirs=<ruta>\tEstablece la ruta del directorio de extensiones"
+msgstr "Establecer la ruta del directorio de extensiones"
#: java/lang.opt:139
msgid "Input file is a file with a list of filenames to compile"
@@ -9361,54 +9268,51 @@ msgstr "El fichero de entrada es un fichero con la lista de nombres de fichero a
#: java/lang.opt:143
msgid "Always check for non gcj generated classes archives"
-msgstr "Revisa siempre por archivos de clases no generados por gcj"
+msgstr "Revisar siempre por archivos de clases no generados por gcj"
#: java/lang.opt:147
msgid "Assume the runtime uses a hash table to map an object to its synchronization structure"
-msgstr "Asume que el tiempo de ejecución usa una tabla hash para mapear un objeto a su estructura de sincronización"
+msgstr "Asumir que el tiempo de ejecución usa una tabla hash para mapear un objeto a su estructura de sincronización"
#: java/lang.opt:151
msgid "Use offset tables for virtual method calls"
-msgstr "Utiliza tablas de desplazamiento para llamadas a métodos virtuales"
+msgstr "Utilizar tablas de desplazamiento para llamadas a métodos virtuales"
#: java/lang.opt:158
msgid "Assume native functions are implemented using JNI"
-msgstr "Asume que las funciones nativas se implementan usando JNI"
+msgstr "Asumir que las funciones nativas se implementan usando JNI"
#: java/lang.opt:162
msgid "Enable optimization of static class initialization code"
-msgstr "Activa la optimización del código de inicialización de las clases static"
+msgstr "Activar la optimización del código de inicialización de las clases static"
#: java/lang.opt:169
msgid "Enable assignability checks for stores into object arrays"
-msgstr "Activa revisiones de asignabilidad para almacenamientos en matrices de objetos"
+msgstr "Activar revisiones de asignabilidad para almacenamientos en matrices de objetos"
#: java/lang.opt:173
msgid "Generate code for the Boehm GC"
-msgstr "Genera código para el GC de Boehm"
+msgstr "Generar código para el GC de Boehm"
#: java/lang.opt:177
msgid "Call a library routine to do integer divisions"
-msgstr "Llama a una rutina de biblioteca para hacer divisiones enteras"
+msgstr "Llamar a una rutina de biblioteca para hacer divisiones enteras"
#: java/lang.opt:181
msgid "Generated should be loaded by bootstrap loader"
-msgstr ""
+msgstr "El generado se debe cargar con el cargador de arranque"
#: ada/lang.opt:74
-#, fuzzy
msgid "Specify options to GNAT"
-msgstr "-gnat<opciones>\tEspecificar opciones a GNAT"
+msgstr "Especificar opciones a GNAT"
#: fortran/lang.opt:30
-#, fuzzy
msgid "Add a directory for INCLUDE and MODULE searching"
-msgstr "Agregar un directorio para la búsqueda de INCLUDE"
+msgstr "Agregar un directorio para la búsqueda de INCLUDE y MODULE"
#: fortran/lang.opt:34
-#, fuzzy
msgid "Put MODULE files in 'directory'"
-msgstr "-J<directorio>\tColoca los ficheros MODULE en el 'directorio'"
+msgstr "Colocar los ficheros MODULE en el 'directorio'"
#: fortran/lang.opt:42
msgid "Warn about possible aliasing of dummy arguments"
@@ -9440,7 +9344,7 @@ msgstr "Avisar sobre desbordamiento por debajo de expresiones numéricas constant
#: fortran/lang.opt:70 common.opt:162
msgid "Warn when a label is unused"
-msgstr "Avisa cuando no se use una etiqueta"
+msgstr "Avisar cuando no se use una etiqueta"
#: fortran/lang.opt:74
msgid "Do not treat local variables and COMMON blocks as if they were named in SAVE statements"
@@ -9448,41 +9352,39 @@ msgstr "No tratar las variables locales y los bloques COMMON como si fueran nomb
#: fortran/lang.opt:78
msgid "Specify that backslash in string introduces an escape character"
-msgstr ""
+msgstr "Especificar que la diagonal invertida en una cadea introduce un carácter de escape"
#: fortran/lang.opt:82
msgid "Set the default double precision kind to an 8 byte wide type"
-msgstr "Establece el tipo de doble precisión por defecto a un tipo de 8 bytes de anchura"
+msgstr "Establecer el tipo de doble precisión por defecto a un tipo de 8 bytes de anchura"
#: fortran/lang.opt:86
msgid "Set the default integer kind to an 8 byte wide type"
-msgstr "Establece el tipo entero por defecto a un tipo de 8 bytes de anchura"
+msgstr "Establecer el tipo entero por defecto a un tipo de 8 bytes de anchura"
#: fortran/lang.opt:90
msgid "Set the default real kind to an 8 byte wide type"
-msgstr "Establece el tipo real por defecto a un tipo de 8 bytes de anchura"
+msgstr "Establecer el tipo real por defecto a un tipo de 8 bytes de anchura"
#: fortran/lang.opt:94
msgid "Ignore 'D' in column one in fixed form"
-msgstr ""
+msgstr "Ignorar 'D' en la columna uno en forma fija"
#: fortran/lang.opt:98
msgid "Treat lines with 'D' in column one as comments"
-msgstr ""
+msgstr "Tratar las líneas con 'D' en la columna uno como comentarios"
#: fortran/lang.opt:102
msgid "Allow dollar signs in entity names"
msgstr "Permitir signos de dólar en nombres de entidades"
#: fortran/lang.opt:106
-#, fuzzy
msgid "Display the code tree after parsing"
-msgstr "Muestra la versión del compilador"
+msgstr "Mostrar el árbol del código después de la decodificación"
#: fortran/lang.opt:110
-#, fuzzy
msgid "Use f2c calling convention"
-msgstr "Usa convención de llamada f2c."
+msgstr "Usar convención de llamada f2c"
#: fortran/lang.opt:114
msgid "Assume that the source file is fixed form"
@@ -9497,9 +9399,8 @@ msgid "Append underscores to externally visible names"
msgstr "Agregar subrayado a los nombres visibles externamente"
#: fortran/lang.opt:126
-#, fuzzy
msgid "Use the Cray Pointer extension"
-msgstr "Usa la interfaz Cygwin"
+msgstr "Usar la extensión Puntero Cray"
#: fortran/lang.opt:130
msgid "Append a second underscore if the name already contains an underscore"
@@ -9514,29 +9415,24 @@ msgid "Allow arbitrary character line width in fixed mode"
msgstr "Permitir ancho de línea de carácter arbitrario en modo fijo"
#: fortran/lang.opt:142
-#, fuzzy
msgid "Use n as character line width in fixed mode"
-msgstr "Permitir ancho de línea de carácter arbitrario en modo fijo"
+msgstr "Usar n como carácter de ancho de línea en modo fijo"
#: fortran/lang.opt:146
-#, fuzzy
msgid "Allow arbitrary character line width in free mode"
-msgstr "Permitir ancho de línea de carácter arbitrario en modo fijo"
+msgstr "Permitir ancho de línea de carácter arbitrario en modo libre"
#: fortran/lang.opt:150
-#, fuzzy
msgid "Use n as character line width in free mode"
-msgstr "Permitir ancho de línea de carácter arbitrario en modo fijo"
+msgstr "Usar n como carácter de ancho de línea en modo libre"
#: fortran/lang.opt:154
-#, fuzzy
msgid "Maximum identifier length"
-msgstr "Establecer la longitud máxima de línea"
+msgstr "Longitud máxima de identificador"
#: fortran/lang.opt:158
-#, fuzzy
msgid "Size in bytes of the largest array that will be put on the stack"
-msgstr "-fmax-stack-var-size=<n>\tTamaño en bytes de la matriz más grande que se colocará en la pila"
+msgstr "Tamaño en bytes de la matriz más grande que se colocará en la pila"
#: fortran/lang.opt:162
msgid "Set default accessibility of module entities to PRIVATE"
@@ -9555,161 +9451,150 @@ msgid "Copy array sections into a contiguous block on procedure entry"
msgstr "Copiar secciones de matriz en un bloque contiguo en la entrada de procedimiento"
#: fortran/lang.opt:178
-#, fuzzy
msgid "Treat the input file as preprocessed"
-msgstr "Trata al fichero de entrada como previamente preprocesado"
+msgstr "Tratar al fichero de entrada como preprocesado"
#: fortran/lang.opt:182
-#, fuzzy
msgid "Set the kind for a real with the 'q' exponent to 'n'"
-msgstr "-qkind=<n>\tEstablece el tipo para un real con el exponente 'q' a la 'n'"
+msgstr "Establecer el tipo para un real con el exponente 'q' a la 'n'"
#: fortran/lang.opt:186
-#, fuzzy
msgid "Stop on following floating point exceptions"
-msgstr "No genera división de coma flotante inline"
+msgstr "Parar en excepciones de de coma flotante a continuación"
#: fortran/lang.opt:190
-#, fuzzy
msgid "Conform to the ISO Fortran 95 standard"
-msgstr "Conforme al estándard ISO Fortran 95"
+msgstr "Conformar al estándar ISO Fortran 95"
#: fortran/lang.opt:194
-#, fuzzy
msgid "Conform to the ISO Fortran 2003 standard"
-msgstr "Conforme al estándard ISO Fortran 2003"
+msgstr "Conformar al estándar ISO Fortran 2003"
#: fortran/lang.opt:198
-#, fuzzy
msgid "Conform nothing in particular"
-msgstr "Conforme a nada en particular."
+msgstr "Conformar a nada en particular"
#: fortran/lang.opt:202
msgid "Accept extensions to support legacy code"
-msgstr ""
+msgstr "Aceptar extensiones para dar soporte a código de legado"
#: fortran/lang.opt:206 c.opt:661
msgid "Use the narrowest integer type possible for enumeration types"
-msgstr "Usa el tipo entero más estrecho posible para tipos de enumeración"
+msgstr "Usar el tipo entero más estrecho posible para tipos de enumeración"
#: fortran/lang.opt:210
-#, fuzzy
msgid "Use little-endian format for unformatted files"
-msgstr "Usa el orden de byte little-endian para los datos"
+msgstr "Usar el formato little-endian para los ficheros sin formato"
#: fortran/lang.opt:214
-#, fuzzy
msgid "Use big-endian format for unformatted files"
-msgstr "Usa el orden de byte big-endian"
+msgstr "Usar el formato big-endian para los ficheros sin formato"
#: fortran/lang.opt:218
msgid "Use native format for unformatted files"
-msgstr ""
+msgstr "Usar el formato nativo para los ficheros sin formato"
#: fortran/lang.opt:222
msgid "Swap endianness for unformatted files"
-msgstr ""
+msgstr "Intercambiar endianez para ficheros sin formato"
#: treelang/lang.opt:30
-#, fuzzy
msgid "Trace lexical analysis"
-msgstr "(depuración) análisis léxico de rastreo"
+msgstr "Rastrear análisis léxico"
#: treelang/lang.opt:34
-#, fuzzy
msgid "Trace the parsing process"
-msgstr "(depuracion) proceso de decodificación de rastreo"
+msgstr "Rastrear el proceso de decodificación"
#: config/alpha/alpha.opt:24 config/i386/i386.opt:186
msgid "Do not use hardware fp"
-msgstr "No usa fp de hardware"
+msgstr "No usar fp de hardware"
#: config/alpha/alpha.opt:28
msgid "Use fp registers"
-msgstr "Usa registros fp"
+msgstr "Usar registros fp"
#: config/alpha/alpha.opt:32
msgid "Assume GAS"
-msgstr "Asume GAS"
+msgstr "Asumir GAS"
#: config/alpha/alpha.opt:36
msgid "Do not assume GAS"
-msgstr "No asume GAS"
+msgstr "No asumir GAS"
#: config/alpha/alpha.opt:40
msgid "Request IEEE-conformant math library routines (OSF/1)"
-msgstr "Requiere rutinas de biblioteca matemática que cumplan con IEEE (OSF/1)"
+msgstr "Requerir rutinas de biblioteca matemática que cumplan con IEEE (OSF/1)"
#: config/alpha/alpha.opt:44
msgid "Emit IEEE-conformant code, without inexact exceptions"
-msgstr "Emite código que cumpla con IEEE, sin excepciones inexactas"
+msgstr "Emitir código que cumpla con IEEE, sin excepciones inexactas"
#: config/alpha/alpha.opt:51
msgid "Do not emit complex integer constants to read-only memory"
-msgstr "No emite constantes enteras complejas a memoria de sólo lectura"
+msgstr "No emitir constantes enteras complejas a memoria de sólo lectura"
#: config/alpha/alpha.opt:55
msgid "Use VAX fp"
-msgstr "Usa fp VAX"
+msgstr "Usar fp VAX"
#: config/alpha/alpha.opt:59
msgid "Do not use VAX fp"
-msgstr "No usa fp VAX"
+msgstr "No usar fp VAX"
#: config/alpha/alpha.opt:63
msgid "Emit code for the byte/word ISA extension"
-msgstr "Emite código para la extensión ISA byte/word"
+msgstr "Emitir código para la extensión ISA byte/word"
#: config/alpha/alpha.opt:67
msgid "Emit code for the motion video ISA extension"
-msgstr "Emite código para la extensión ISA de video en movimiento"
+msgstr "Emitir código para la extensión ISA de video en movimiento"
#: config/alpha/alpha.opt:71
msgid "Emit code for the fp move and sqrt ISA extension"
-msgstr "Emite código para la extensión ISA de move y sqrt de fp"
+msgstr "Emitir código para la extensión ISA de move y sqrt de fp"
#: config/alpha/alpha.opt:75
msgid "Emit code for the counting ISA extension"
-msgstr "Emite código para la extensión ISA de conteo"
+msgstr "Emitir código para la extensión ISA de conteo"
#: config/alpha/alpha.opt:79
msgid "Emit code using explicit relocation directives"
-msgstr "Emite código usando directivas explícitas de reubicación"
+msgstr "Emitir código usando directivas explícitas de reubicación"
#: config/alpha/alpha.opt:83
msgid "Emit 16-bit relocations to the small data areas"
-msgstr "Emite reubicaciones de 16-bit a las áreas de datos small"
+msgstr "Emitir reubicaciones de 16-bit a las áreas de datos small"
#: config/alpha/alpha.opt:87
msgid "Emit 32-bit relocations to the small data areas"
-msgstr "Emite reubicaciones de 32-bit a las áreas de datos small"
+msgstr "Emitir reubicaciones de 32-bit a las áreas de datos small"
#: config/alpha/alpha.opt:91
msgid "Emit direct branches to local functions"
-msgstr "Emite ramificaciones directas a funciones locales"
+msgstr "Emitir ramificaciones directas a funciones locales"
#: config/alpha/alpha.opt:95
-#, fuzzy
msgid "Emit indirect branches to local functions"
-msgstr "Emite ramificaciones directas a funciones locales"
+msgstr "Emitir ramificaciones indirectas a funciones locales"
#: config/alpha/alpha.opt:99
msgid "Emit rdval instead of rduniq for thread pointer"
-msgstr "Emite rdval en lugar de rduniq para un puntero thread"
+msgstr "Emitir rdval en lugar de rduniq para un puntero thread"
#: config/alpha/alpha.opt:103 config/s390/s390.opt:56
#: config/sparc/long-double-switch.opt:24
msgid "Use 128-bit long double"
-msgstr "Usa long doubles de 128 bits"
+msgstr "Usar long doubles de 128 bits"
#: config/alpha/alpha.opt:107 config/s390/s390.opt:60
#: config/sparc/long-double-switch.opt:28
msgid "Use 64-bit long double"
-msgstr "Usa long doubles de 64 bits"
+msgstr "Usar long doubles de 64 bits"
#: config/alpha/alpha.opt:111
msgid "Use features of and schedule given CPU"
-msgstr "Usa las características de y el calendarizador del CPU dado"
+msgstr "Usar las características de y el calendarizador del CPU dado"
#: config/alpha/alpha.opt:115
msgid "Schedule given CPU"
@@ -9717,229 +9602,209 @@ msgstr "Calendarizador para el CPU dado"
#: config/alpha/alpha.opt:119
msgid "Control the generated fp rounding mode"
-msgstr "Controla el modo de redondeo generado de fp"
+msgstr "Controlar el modo de redondeo generado de fp"
#: config/alpha/alpha.opt:123
msgid "Control the IEEE trap mode"
-msgstr "Controla el modo de captura IEEE"
+msgstr "Controlar el modo de captura IEEE"
#: config/alpha/alpha.opt:127
msgid "Control the precision given to fp exceptions"
-msgstr "Controla la precisión dada a las excepciones de fp"
+msgstr "Controlar la precisión dada a las excepciones de fp"
#: config/alpha/alpha.opt:131
msgid "Tune expected memory latency"
-msgstr "Ajusta la latencia esperada de memoria"
+msgstr "Ajustar la latencia esperada de memoria"
#: config/alpha/alpha.opt:135 config/ia64/ia64.opt:93
#: config/rs6000/sysv4.opt:33
msgid "Specify bit size of immediate TLS offsets"
-msgstr "Especifica el tamaño de bit para los desplazamientos TLS inmediatos"
+msgstr "Especificar el tamaño de bit para los desplazamientos TLS inmediatos"
#: config/frv/frv.opt:24
-#, fuzzy
msgid "Use 4 media accumulators"
-msgstr "Usa el acumulador de multiplicación"
+msgstr "Usar 4 acumuladores de medios"
#: config/frv/frv.opt:28
-#, fuzzy
msgid "Use 8 media accumulators"
-msgstr "Usa el acumulador de multiplicación"
+msgstr "Usar 8 acumuladores de medios"
#: config/frv/frv.opt:32
-#, fuzzy
msgid "Enable label alignment optimizations"
-msgstr "Activa las optimizaciones del enlazador"
+msgstr "Activar las optimizaciones de alienación de etiquetas"
#: config/frv/frv.opt:36
-#, fuzzy
msgid "Dynamically allocate cc registers"
-msgstr "No asigna el registro BK"
+msgstr "Asignar dinámicamente los registros cc"
#: config/frv/frv.opt:43
msgid "Set the cost of branches"
-msgstr ""
+msgstr "Establecer el costo de las ramificaciones"
#: config/frv/frv.opt:47
msgid "Enable conditional execution other than moves/scc"
-msgstr ""
+msgstr "Establecer la ejecución condicional en lugar de moves/scc"
#: config/frv/frv.opt:51
-#, fuzzy
msgid "Change the maximum length of conditionally-executed sequences"
-msgstr "La longitud máxima de la ruta considerada en cse"
+msgstr "Cambiar la longitud máxima de las secuencias ejecutadas condicionalmente"
#: config/frv/frv.opt:55
msgid "Change the number of temporary registers that are available to conditionally-executed sequences"
-msgstr ""
+msgstr "Cambiar el número de registros temporales disponibles para secuencias ejecutadas condicionalmente"
#: config/frv/frv.opt:59
-#, fuzzy
msgid "Enable conditional moves"
-msgstr "Activar el uso de las instrucciones condicionales move"
+msgstr "Activar moves condicionales"
#: config/frv/frv.opt:63
-#, fuzzy
msgid "Set the target CPU type"
-msgstr "Especifica el nombre del CPU destino"
+msgstr "Especificar el tipo del CPU destino"
#: config/frv/frv.opt:85
-#, fuzzy
msgid "Use fp double instructions"
-msgstr "Usa instrucciones AltiVec"
+msgstr "Usar instrucciones fp double"
#: config/frv/frv.opt:89
msgid "Change the ABI to allow double word insns"
-msgstr ""
+msgstr "Cambiar la ABI para permitir instrucciones double word"
#: config/frv/frv.opt:93
-#, fuzzy
msgid "Enable Function Descriptor PIC mode"
-msgstr "Activa el análisis de perfil de las funciones"
+msgstr "Activar el modo de Descriptor de Función PIC"
#: config/frv/frv.opt:97
msgid "Just use icc0/fcc0"
-msgstr ""
+msgstr "Usar solamente icc0/fcc0"
#: config/frv/frv.opt:101
msgid "Only use 32 FPRs"
-msgstr ""
+msgstr "Usar solamente 32 FPRs"
#: config/frv/frv.opt:105
msgid "Use 64 FPRs"
-msgstr ""
+msgstr "Usar 64 FPRs"
#: config/frv/frv.opt:109
msgid "Only use 32 GPRs"
-msgstr ""
+msgstr "Usar solamente 32 GPRs"
#: config/frv/frv.opt:113
msgid "Use 64 GPRs"
-msgstr ""
+msgstr "Usar 64 GPRs"
#: config/frv/frv.opt:117
msgid "Enable use of GPREL for read-only data in FDPIC"
-msgstr ""
+msgstr "Activar el uso de GPREL para datos de sólo lectura en FDPIC"
#: config/frv/frv.opt:121 config/rs6000/rs6000.opt:93
#: config/pdp11/pdp11.opt:72
msgid "Use hardware floating point"
-msgstr "Usa coma flotante de hardware"
+msgstr "Usar coma flotante de hardware"
#: config/frv/frv.opt:125
-#, fuzzy
msgid "Enable inlining of PLT in function calls"
-msgstr "falta un centinela en la llamada a la función"
+msgstr "Activar el inlining de PLT en las llamadas a función"
#: config/frv/frv.opt:129
-#, fuzzy
msgid "Enable PIC support for building libraries"
-msgstr "Activa el soporte para objetos enormes"
+msgstr "Activar el soporte PIC para construir bibliotecas"
#: config/frv/frv.opt:133
msgid "Follow the EABI linkage requirements"
-msgstr ""
+msgstr "Seguir los requerimientos de enlace de EABI"
#: config/frv/frv.opt:137
-#, fuzzy
msgid "Disallow direct calls to global functions"
-msgstr "Emite ramificaciones directas a funciones locales"
+msgstr "Desactivar las llamdas directas a funciones globales"
#: config/frv/frv.opt:141
-#, fuzzy
msgid "Use media instructions"
-msgstr "Usa instrucciones de campos de bit"
+msgstr "Usar instrucciones de medios"
#: config/frv/frv.opt:145
-#, fuzzy
msgid "Use multiply add/subtract instructions"
-msgstr "Usa instrucciones de fp para multiplicar-acumular"
+msgstr "Usar instrucciones acumular/sustraer de multiplicar"
#: config/frv/frv.opt:149
-#, fuzzy
msgid "Enable optimizing &&/|| in conditional execution"
-msgstr "Activa la optimización del código de inicialización de las clases static"
+msgstr "Activar la optimización &&/|| en la ejecución condicional"
#: config/frv/frv.opt:153
-#, fuzzy
msgid "Enable nested conditional execution optimizations"
-msgstr "Activa las optimizaciones dominadoras"
+msgstr "Activar las optimizaciones de ejecución condicional anidada"
#: config/frv/frv.opt:158
msgid "Do not mark ABI switches in e_flags"
-msgstr ""
+msgstr "No marcar las opciones ABI en e_flags"
#: config/frv/frv.opt:162
msgid "Remove redundant membars"
-msgstr ""
+msgstr "Remover miembros redundantes"
#: config/frv/frv.opt:166
-#, fuzzy
msgid "Pack VLIW instructions"
-msgstr "Usa instrucciones MIPS-3D"
+msgstr "Empacar instrucciones VLIW"
#: config/frv/frv.opt:170
msgid "Enable setting GPRs to the result of comparisons"
-msgstr ""
+msgstr "Permitir establecer los GPRs al resultado de las comparaciones"
#: config/frv/frv.opt:174
msgid "Change the amount of scheduler lookahead"
-msgstr ""
+msgstr "Cambiar la cantidad de vista hacia adelante del calendarizador"
#: config/frv/frv.opt:178 config/pa/pa.opt:105
msgid "Use software floating point"
-msgstr "Usa coma flotante de software"
+msgstr "Usar coma flotante de software"
#: config/frv/frv.opt:182
msgid "Assume a large TLS segment"
-msgstr ""
+msgstr "Asumir un segmento TLS grande"
#: config/frv/frv.opt:186
-#, fuzzy
msgid "Do not assume a large TLS segment"
-msgstr "No ajusta la alineación de la pila"
+msgstr "No asumir un segmento TLS grande"
#: config/frv/frv.opt:191
msgid "Cause gas to print tomcat statistics"
-msgstr ""
+msgstr "Causar que gas muestre estadísticas de tomcat"
#: config/frv/frv.opt:196
msgid "Link with the library-pic libraries"
-msgstr ""
+msgstr "Enlazar con las bibliotecas de pic de biblioteca"
#: config/frv/frv.opt:200
msgid "Allow branches to be packed with other instructions"
-msgstr ""
+msgstr "Permitir que las ramificaciones se empaquen con otras instrucciones"
#: config/mn10300/mn10300.opt:24
msgid "Target the AM33 processor"
-msgstr "Apunta al procesador AM33"
+msgstr "Apuntar al procesador AM33"
#: config/mn10300/mn10300.opt:28
msgid "Target the AM33/2.0 processor"
-msgstr "Apunta al procesador AM33/2.0"
+msgstr "Apuntar al procesador AM33/2.0"
#: config/mn10300/mn10300.opt:32
msgid "Work around hardware multiply bug"
-msgstr "Evita el bug de multiplicación de hardware"
+msgstr "Evitar el bug de multiplicación de hardware"
#: config/mn10300/mn10300.opt:37
msgid "Enable linker relaxations"
-msgstr "Activa la relajación del enlazador"
+msgstr "Activar la relajación del enlazador"
#: config/mn10300/mn10300.opt:41
msgid "Return pointers in both a0 and d0"
-msgstr ""
+msgstr "Devolver punteros tanto en a0 como en d0"
#: config/s390/tpf.opt:24
-#, fuzzy
msgid "Enable TPF-OS tracing code"
-msgstr "Activa código de rastreo tpf de OS"
+msgstr "Activar el código de rastreo TPF-OS"
#: config/s390/tpf.opt:28
-#, fuzzy
msgid "Specify main object for TPF-OS"
-msgstr "Especifica el número máximo de iteraciones para RPTS"
+msgstr "Especificar el objeto principal para TPF-OS"
#: config/s390/s390.opt:24
msgid "31 bit ABI"
@@ -9951,11 +9816,11 @@ msgstr "ABI de 64 bit"
#: config/s390/s390.opt:32 config/i386/i386.opt:80
msgid "Generate code for given CPU"
-msgstr "Genera código para el CPU dado"
+msgstr "Generar código para el CPU dado"
#: config/s390/s390.opt:36
msgid "Maintain backchain pointer"
-msgstr "Mantiene puntero a la cadena hacia atrás"
+msgstr "Mantener puntero a la cadena hacia atrás"
#: config/s390/s390.opt:40
msgid "Additional debug prints"
@@ -9967,32 +9832,31 @@ msgstr "arquitectura ESA/390"
#: config/s390/s390.opt:48
msgid "Enable fused multiply/add instructions"
-msgstr "Activa instrucciones multiply/add de corto circuito"
+msgstr "Activar instrucciones multiply/add de corto circuito"
#: config/s390/s390.opt:52 config/i386/i386.opt:48 config/i386/i386.opt:118
msgid "Use hardware fp"
-msgstr "Usa fp de hardware"
+msgstr "Usar fp de hardware"
#: config/s390/s390.opt:64
msgid "Use packed stack layout"
-msgstr "Usa disposición de pila empacada"
+msgstr "Usar disposición de pila empacada"
#: config/s390/s390.opt:68
msgid "Use bras for executable < 64k"
-msgstr "Usa bras para el ejecutable < 64k"
+msgstr "Usar bras para el ejecutable < 64k"
#: config/s390/s390.opt:72
msgid "Don't use hardware fp"
-msgstr "No usa fp de hardware"
+msgstr "No usar fp de hardware"
#: config/s390/s390.opt:76
msgid "Set the max. number of bytes which has to be left to stack size before a trap instruction is triggered"
-msgstr "Establece 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"
+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/s390/s390.opt:80
-#, fuzzy
msgid "Emit extra code in the function prologue in order to trap if the stack size exceeds the given limit"
-msgstr "Emite 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"
+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.opt:84 config/ia64/ia64.opt:97 config/sparc/sparc.opt:96
#: config/i386/i386.opt:222 config/rs6000/rs6000.opt:203
@@ -10005,57 +9869,55 @@ msgstr "uso de mvcle"
#: config/s390/s390.opt:92
msgid "Warn if a function uses alloca or creates an array with dynamic size"
-msgstr "Avisa si una función usa alloca o crea una matriz de tamaño dinámico"
+msgstr "Avisar si una función usa alloca o crea una matriz de tamaño dinámico"
#: config/s390/s390.opt:96
msgid "Warn if a single function's framesize exceeds the given framesize"
-msgstr "Avisa si el tamaño de marco de una sola función excede el tamaño de marco dado"
+msgstr "Avisar si el tamaño de marco de una sola función excede el tamaño de marco dado"
#: config/s390/s390.opt:100
msgid "z/Architecture"
msgstr "z/Architecture"
#: config/ia64/ilp32.opt:3
-#, fuzzy
msgid "Generate ILP32 code"
-msgstr "Genera código de 32-bit"
+msgstr "Generar código ILP32"
#: config/ia64/ilp32.opt:7
-#, fuzzy
msgid "Generate LP64 code"
-msgstr "Genera código de 64-bit"
+msgstr "Generar código LP64"
#: config/ia64/ia64.opt:3
msgid "Generate big endian code"
-msgstr "Genera código big endian"
+msgstr "Generar código big endian"
#: config/ia64/ia64.opt:7
msgid "Generate little endian code"
-msgstr "Genera código little endian"
+msgstr "Generar código little endian"
#: config/ia64/ia64.opt:11
msgid "Generate code for GNU as"
-msgstr "Genera código para as de GNU"
+msgstr "Generar código para as de GNU"
#: config/ia64/ia64.opt:15
msgid "Generate code for GNU ld"
-msgstr "Genera código para ld de GNU"
+msgstr "Generar código para ld de GNU"
#: config/ia64/ia64.opt:19
msgid "Emit stop bits before and after volatile extended asms"
-msgstr "Emite bits de parada antes y después de asms extendidos con volatile"
+msgstr "Emitir bits de parada antes y después de asms extendidos con volatile"
#: config/ia64/ia64.opt:23
msgid "Use in/loc/out register names"
-msgstr "Usa nombres de registro in/loc/out"
+msgstr "Usar nombres de registro in/loc/out"
#: config/ia64/ia64.opt:30
msgid "Enable use of sdata/scommon/sbss"
-msgstr "Activa el uso de sdata/scommon/sbss"
+msgstr "Activar el uso de sdata/scommon/sbss"
#: config/ia64/ia64.opt:34
msgid "Generate code without GP reg"
-msgstr "Genera código sin registro GP"
+msgstr "Generar código sin registro GP"
#: config/ia64/ia64.opt:38
msgid "gp is constant (but save/restore gp on indirect calls)"
@@ -10063,130 +9925,119 @@ msgstr "gp es constante (pero hay save/restore de gp en llamadas indirectas)"
#: config/ia64/ia64.opt:42
msgid "Generate self-relocatable code"
-msgstr "Genera código auto-reubicable"
+msgstr "Generar código auto-reubicable"
#: config/ia64/ia64.opt:46
msgid "Generate inline floating point division, optimize for latency"
-msgstr "Genera división de coma flotante inline, optimizada para latencia"
+msgstr "Generar división de coma flotante inline, optimizada para latencia"
#: config/ia64/ia64.opt:50
msgid "Generate inline floating point division, optimize for throughput"
-msgstr "Genera división de coma flotante inline, optimizada para salida"
+msgstr "Generar división de coma flotante inline, optimizada para salida"
#: config/ia64/ia64.opt:57
msgid "Generate inline integer division, optimize for latency"
-msgstr "Genera división entera inline, optimizada para latencia"
+msgstr "Generar división entera inline, optimizada para latencia"
#: config/ia64/ia64.opt:61
msgid "Generate inline integer division, optimize for throughput"
-msgstr "Genera división entera inline, optimizada para salida"
+msgstr "Generar división entera inline, optimizada para salida"
#: config/ia64/ia64.opt:65
msgid "Do not inline integer division"
-msgstr "No genera división entera inline"
+msgstr "No generar división entera inline"
#: config/ia64/ia64.opt:69
msgid "Generate inline square root, optimize for latency"
-msgstr "Genera raíz cuadrada inline, optimizada para latencia"
+msgstr "Generar raíz cuadrada inline, optimizada para latencia"
#: config/ia64/ia64.opt:73
msgid "Generate inline square root, optimize for throughput"
-msgstr "Genera raíz cuadrada inline, optimizada para salida"
+msgstr "Generar raíz cuadrada inline, optimizada para salida"
#: config/ia64/ia64.opt:77
msgid "Do not inline square root"
-msgstr "No genera raíz cuadrada inline"
+msgstr "No generar raíz cuadrada inline"
#: config/ia64/ia64.opt:81
msgid "Enable Dwarf 2 line debug info via GNU as"
-msgstr "Activa la información de la línea de depuración Dwarf 2 a través de as de GNU"
+msgstr "Activar la información de la línea de depuración Dwarf 2 a través de as de GNU"
#: config/ia64/ia64.opt:85
msgid "Enable earlier placing stop bits for better scheduling"
-msgstr "Activa la ubicación temprana de bits de paro para mejor calendarización"
+msgstr "Activar la ubicación temprana de bits de paro para mejor calendarización"
#: config/ia64/ia64.opt:89 config/pa/pa.opt:52
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/m32c/m32c.opt:25 config/mt/mt.opt:28
msgid "Use simulator runtime"
-msgstr ""
+msgstr "Usar simulador de tiempo de ejecución"
#: config/m32c/m32c.opt:29
-#, fuzzy
msgid "Compile code for R8C variants"
-msgstr "Compila para punteros de 32-bit"
+msgstr "Compilar código para variantes R8C"
#: config/m32c/m32c.opt:33
-#, fuzzy
msgid "Compile code for M16C variants"
-msgstr "Compila para punteros de 64-bit"
+msgstr "Compilar código para variantes M16C"
#: config/m32c/m32c.opt:37
-#, fuzzy
msgid "Compile code for M32CM variants"
-msgstr "Compila para punteros de 32-bit"
+msgstr "Compilar código para variantes M32CM"
#: config/m32c/m32c.opt:41
-#, fuzzy
msgid "Compile code for M32C variants"
-msgstr "Compila para punteros de 32-bit"
+msgstr "Compilar código para variantes M32C"
#: config/m32c/m32c.opt:45
msgid "Number of memreg bytes (default: 16, range: 0..16)"
-msgstr ""
+msgstr "Número de bytes de memreg (por defecto: 16, rango: 0..16)"
#: config/sparc/little-endian.opt:24
-#, fuzzy
msgid "Generate code for little-endian"
-msgstr "Genera código para little endian"
+msgstr "Generar código para little-endian"
#: config/sparc/little-endian.opt:28
-#, fuzzy
msgid "Generate code for big-endian"
-msgstr "Genera código para big endian"
+msgstr "Generar código para big-endian"
#: config/sparc/sparc.opt:24 config/sparc/sparc.opt:28
-#, fuzzy
msgid "Use hardware FP"
-msgstr "Usa fp de hardware"
+msgstr "Usar FP de hardware"
#: config/sparc/sparc.opt:32
-#, fuzzy
msgid "Do not use hardware FP"
-msgstr "No usa fp de hardware"
+msgstr "No usar FP de hardware"
#: config/sparc/sparc.opt:36
msgid "Assume possible double misalignment"
-msgstr "Asume desalineación de double posible"
+msgstr "Asumir desalineación de double posible"
#: config/sparc/sparc.opt:40
msgid "Pass -assert pure-text to linker"
-msgstr "Pasa el texto puro de -assert al enlazador"
+msgstr "Pasar el texto puro de -assert al enlazador"
#: config/sparc/sparc.opt:44
msgid "Use ABI reserved registers"
-msgstr "Usa los registros ABI reservados"
+msgstr "Usar los registros ABI reservados"
#: config/sparc/sparc.opt:48
-#, fuzzy
msgid "Use hardware quad FP instructions"
-msgstr "Usa instrucciones de fp quad de hardware"
+msgstr "Usar instrucciones de FP quad de hardware"
#: config/sparc/sparc.opt:52
msgid "Do not use hardware quad fp instructions"
-msgstr "No usa instrucciones de fp quad de hardware"
+msgstr "No usar instrucciones de fp quad de hardware"
#: config/sparc/sparc.opt:56
-#, fuzzy
msgid "Compile for V8+ ABI"
-msgstr "Compila para el ABI de v8plus"
+msgstr "Compilar para el ABI V8+"
#: config/sparc/sparc.opt:60
-#, fuzzy
msgid "Use UltraSPARC Visual Instruction Set extensions"
-msgstr "Utiliza el Conjunto de Instrucciones Visuales"
+msgstr "Usar la extensión del Conjunto de Instrucciones Visuales de UltraSPARC"
#: config/sparc/sparc.opt:64
msgid "Pointers are 64-bit"
@@ -10198,80 +10049,75 @@ msgstr "Los punteros son de 32-bit"
#: config/sparc/sparc.opt:72
msgid "Use 64-bit ABI"
-msgstr "Usa ABI de 64-bit"
+msgstr "Usar ABI de 64-bit"
#: config/sparc/sparc.opt:76
msgid "Use 32-bit ABI"
-msgstr "Usa ABI de 32-bit"
+msgstr "Usar ABI de 32-bit"
#: config/sparc/sparc.opt:80
msgid "Use stack bias"
-msgstr "Usa tendencia de la pila"
+msgstr "Usar tendencia de la pila"
#: config/sparc/sparc.opt:84
msgid "Use structs on stronger alignment for double-word copies"
-msgstr "Usa structs en alineación más fuerte para copias double-word"
+msgstr "Usar structs en alineación más fuerte para copias double-word"
#: config/sparc/sparc.opt:88
msgid "Optimize tail call instructions in assembler and linker"
-msgstr "Optimiza las instrucciones de la llamada del extremo en el ensamblador y el enlazador"
+msgstr "Optimizar las instrucciones de la llamada del extremo en el ensamblador y el enlazador"
#: config/sparc/sparc.opt:92 config/rs6000/rs6000.opt:199
msgid "Use features of and schedule code for given CPU"
-msgstr "Usa características del código de calendarizador and para el CPU dado"
+msgstr "Usar características del código de calendarizador and para el CPU dado"
#: config/sparc/sparc.opt:100
-#, fuzzy
msgid "Use given SPARC-V9 code model"
-msgstr "Usa el modelo de código del SPARC dado"
+msgstr "Usar el modelo de código del SPARC-V9 dado"
#: config/m32r/m32r.opt:24
-#, fuzzy
msgid "Compile for the m32rx"
-msgstr "Compila para un 68HC12"
+msgstr "Compilar para el m32rx"
#: config/m32r/m32r.opt:28
-#, fuzzy
msgid "Compile for the m32r2"
-msgstr "Compila para un 68HC12"
+msgstr "Compilar para el m32r2"
#: config/m32r/m32r.opt:32
-#, fuzzy
msgid "Compile for the m32r"
-msgstr "Compila para un 68HC12"
+msgstr "Compilar para el m32r"
#: config/m32r/m32r.opt:36
msgid "Align all loops to 32 byte boundary"
-msgstr "Alínea todos los ciclose al límite de 32 byte"
+msgstr "Alínear todos los ciclos al límite de 32 byte"
#: config/m32r/m32r.opt:40
msgid "Prefer branches over conditional execution"
-msgstr "Prefiere las ramas sobre la ejecución condicional"
+msgstr "Preferir las ramas sobre la ejecución condicional"
#: config/m32r/m32r.opt:44
msgid "Give branches their default cost"
-msgstr ""
+msgstr "Dar a las ramificaciones su costo por defecto"
#: config/m32r/m32r.opt:48
msgid "Display compile time statistics"
-msgstr "Muestra estadísticas de tiempo de compilación"
+msgstr "Mostrar estadísticas de tiempo de compilación"
#: config/m32r/m32r.opt:52
msgid "Specify cache flush function"
-msgstr "Especifica la función de limpieza de caché"
+msgstr "Especificar la función de limpieza de caché"
#: config/m32r/m32r.opt:56
msgid "Specify cache flush trap number"
-msgstr "Especifica el número de trampa de limpieza de caché"
+msgstr "Especificar el número de trampa de limpieza de caché"
#: config/m32r/m32r.opt:60
msgid "Only issue one instruction per cycle"
-msgstr "Sólo ejecuta una instrucción por ciclo"
+msgstr "Sólo ejecutar una instrucción por ciclo"
#: config/m32r/m32r.opt:64
-#, fuzzy
msgid "Allow two instructions to be issued per cycle"
-msgstr "Sólo ejecuta una instrucción por ciclo"
+msgstr "Permitir que se ejecuten dos instrucciones por ciclo"
#: config/m32r/m32r.opt:68
msgid "Code size: small, medium or large"
@@ -10279,11 +10125,11 @@ msgstr "Tamaño del código: small, medium o large"
#: config/m32r/m32r.opt:72
msgid "Don't call any cache flush functions"
-msgstr "No llama a ninguna función de limpieza de caché"
+msgstr "No llamar a ninguna función de limpieza de caché"
#: config/m32r/m32r.opt:76
msgid "Don't call any cache flush trap"
-msgstr "No llama a ninguna trampa de limpieza de caché"
+msgstr "No llamar a ninguna trampa de limpieza de caché"
#: config/m32r/m32r.opt:83
msgid "Small data area: none, sdata, use"
@@ -10291,109 +10137,108 @@ msgstr "Área de datos small: none, sdata, use"
#: config/m68k/m68k.opt:24
msgid "Generate code for a 520X"
-msgstr "Genera código para un 520X"
+msgstr "Generar código para un 520X"
#: config/m68k/m68k.opt:28
msgid "Generate code for a 5206e"
-msgstr "Genera código para un 5206e"
+msgstr "Generar código para un 5206e"
#: config/m68k/m68k.opt:32
msgid "Generate code for a 528x"
-msgstr "Genera código para un 528x"
+msgstr "Generar código para un 528x"
#: config/m68k/m68k.opt:36
msgid "Generate code for a 5307"
-msgstr "Genera código para un 5307"
+msgstr "Generar código para un 5307"
#: config/m68k/m68k.opt:40
msgid "Generate code for a 5407"
-msgstr "Genera código para un 5407"
+msgstr "Generar código para un 5407"
#: config/m68k/m68k.opt:44 config/m68k/m68k.opt:97
msgid "Generate code for a 68000"
-msgstr "Genera código para un 68000"
+msgstr "Generar código para un 68000"
#: config/m68k/m68k.opt:48 config/m68k/m68k.opt:101
msgid "Generate code for a 68020"
-msgstr "Genera código para un 68020"
+msgstr "Generar código para un 68020"
#: config/m68k/m68k.opt:52
msgid "Generate code for a 68040, without any new instructions"
-msgstr "Genera código para un 68040, sin ninguna instrucción nueva"
+msgstr "Generar código para un 68040, sin ninguna instrucción nueva"
#: config/m68k/m68k.opt:56
msgid "Generate code for a 68060, without any new instructions"
-msgstr "Genera código para un 68060, sin ninguna instrucción nueva"
+msgstr "Generar código para un 68060, sin ninguna instrucción nueva"
#: config/m68k/m68k.opt:60
msgid "Generate code for a 68030"
-msgstr "Genera código para un 68030"
+msgstr "Generar código para un 68030"
#: config/m68k/m68k.opt:64
msgid "Generate code for a 68040"
-msgstr "Genera código para un 68040"
+msgstr "Generar código para un 68040"
#: config/m68k/m68k.opt:68
msgid "Generate code for a 68060"
-msgstr "Genera código para un 68060"
+msgstr "Generar código para un 68060"
#: config/m68k/m68k.opt:72
msgid "Generate code for a 68302"
-msgstr "Genera código para un 68302"
+msgstr "Generar código para un 68302"
#: config/m68k/m68k.opt:76
msgid "Generate code for a 68332"
-msgstr "Genera código para un 68332"
+msgstr "Generar código para un 68332"
#: config/m68k/m68k.opt:81
msgid "Generate code for a 68851"
-msgstr "Genera código para un 68851"
+msgstr "Generar código para un 68851"
#: config/m68k/m68k.opt:85
-#, fuzzy
msgid "Generate code that uses 68881 floating-point instructions"
-msgstr "Usa instrucciones sencillas-apareadas de coma flotante"
+msgstr "Generar código que use las instrucciones de coma flotante de un 68881"
#: config/m68k/m68k.opt:89
msgid "Align variables on a 32-bit boundary"
-msgstr "Alínea las variables en un límite de 32-bit"
+msgstr "Alinear las variables en un límite de 32-bit"
#: config/m68k/m68k.opt:93
msgid "Use the bit-field instructions"
-msgstr "Usa las instrucciones de campos de bit"
+msgstr "Usar las instrucciones de campos de bit"
#: config/m68k/m68k.opt:105
msgid "Generate code for a cpu32"
-msgstr "Genera código para un cpu32"
+msgstr "Generar código para un cpu32"
#: config/m68k/m68k.opt:109
msgid "Enable ID based shared library"
-msgstr "Activa la biblioteca compartida basada en ID"
+msgstr "Activar la biblioteca compartida basada en ID"
#: config/m68k/m68k.opt:113
msgid "Do not use the bit-field instructions"
-msgstr "No usa las instrucciones de campos de bit"
+msgstr "No usar las instrucciones de campos de bit"
#: config/m68k/m68k.opt:117
msgid "Use normal calling convention"
-msgstr "Usa convención de llamada normal"
+msgstr "Usar convención de llamada normal"
#: config/m68k/m68k.opt:121
msgid "Consider type 'int' to be 32 bits wide"
-msgstr "Considera que el tipo `int' es de 32 bits de anchura"
+msgstr "Considerar que el tipo `int' es de 32 bits de anchura"
# pc = program counter. cfuga
#: config/m68k/m68k.opt:125
msgid "Generate pc-relative code"
-msgstr "Genera código relativo al pc"
+msgstr "Generar código relativo al pc"
#: config/m68k/m68k.opt:129
msgid "Use different calling convention using 'rtd'"
-msgstr "Usa la convención de llamada diferente usando 'rtd'"
+msgstr "Usar la convención de llamada diferente usando 'rtd'"
#: config/m68k/m68k.opt:133
msgid "Enable separate data segment"
-msgstr "Activa segmentos de datos separados"
+msgstr "Activar segmentos de datos separados"
#: config/m68k/m68k.opt:137 config/bfin/bfin.opt:45
msgid "ID of shared library to build"
@@ -10401,23 +10246,23 @@ msgstr "ID de la biblioteca compartida a crear"
#: config/m68k/m68k.opt:141
msgid "Consider type 'int' to be 16 bits wide"
-msgstr "Considera que el tipo `int' es de 16 bits de anchura"
+msgstr "Considerar que el tipo `int' es de 16 bits de anchura"
#: config/m68k/m68k.opt:145
msgid "Generate code with library calls for floating point"
-msgstr "Genera código con llamadas a bibliotecas para coma flotante"
+msgstr "Generar código con llamadas a bibliotecas para coma flotante"
#: config/m68k/m68k.opt:149
msgid "Do not use unaligned memory references"
-msgstr "No permite referencias a memoria sin alinear"
+msgstr "No permitir referencias a memoria sin alinear"
#: config/m68k/ieee.opt:25 config/i386/i386.opt:122
msgid "Use IEEE math for fp comparisons"
-msgstr "Usa matemática IEEE para comparaciones fp"
+msgstr "Usar matemática IEEE para comparaciones fp"
#: config/i386/djgpp.opt:26
msgid "Ignored (obsolete)"
-msgstr ""
+msgstr "Se ignora (obsoleto)"
#: config/i386/i386.opt:24
msgid "sizeof(long double) is 16"
@@ -10425,15 +10270,15 @@ msgstr "sizeof(long double) es 16"
#: config/i386/i386.opt:28
msgid "Generate 32bit i386 code"
-msgstr "Genera código i386 de 32bit"
+msgstr "Generar código i386 de 32bit"
#: config/i386/i386.opt:36
msgid "Support 3DNow! built-in functions"
-msgstr "Da soporte para funciones internas 3DNow!"
+msgstr "Dar soporte para funciones internas 3DNow!"
#: config/i386/i386.opt:44
msgid "Generate 64bit x86-64 code"
-msgstr "Genera código x86-64 de 64bit"
+msgstr "Generar código x86-64 de 64bit"
#: config/i386/i386.opt:52
msgid "sizeof(long double) is 12"
@@ -10441,11 +10286,11 @@ msgstr "sizeof(long double) es 12"
#: config/i386/i386.opt:56
msgid "Reserve space for outgoing arguments in the function prologue"
-msgstr ""
+msgstr "Reservar espacio para los argumentos de salida en el prólogo de la función"
#: config/i386/i386.opt:60
msgid "Align some doubles on dword boundary"
-msgstr "Alínea algunos doubles en límites de dword"
+msgstr "Alinear algunos doubles en límites de dword"
#: config/i386/i386.opt:64
msgid "Function starts are aligned to this power of 2"
@@ -10461,11 +10306,11 @@ msgstr "El código de ciclo es alineado a esta potencia de 2"
#: config/i386/i386.opt:76
msgid "Align destination of the string operations"
-msgstr "Alínea destino de las operaciones de cadenas"
+msgstr "Alinear destino de las operaciones de cadenas"
#: config/i386/i386.opt:84
msgid "Use given assembler dialect"
-msgstr "Usa el dialecto del ensamblador dado"
+msgstr "Usar el dialecto del ensamblador dado"
#: config/i386/i386.opt:88
msgid "Branches are this expensive (1-5, arbitrary units)"
@@ -10473,51 +10318,51 @@ msgstr "Las ramificaciones son así de caras (1-5, unidades arbitrarias)"
#: config/i386/i386.opt:92
msgid "Data greater than given threshold will go into .ldata section in x86-64 medium model"
-msgstr ""
+msgstr "Los datos más grandes que el límite dado irán a la sección .ldata en el modeolo medium del x86-64"
#: config/i386/i386.opt:96
msgid "Use given x86-64 code model"
-msgstr "Usa el modelo de código del x86-64 dado"
+msgstr "Usar el modelo de código del x86-64 dado"
#: config/i386/i386.opt:106
msgid "Generate sin, cos, sqrt for FPU"
-msgstr "Genera sin, cos, sqrt para FPU"
+msgstr "Generar sin, cos, sqrt para FPU"
#: config/i386/i386.opt:110
msgid "Return values of functions in FPU registers"
-msgstr "Devuelve valores de funciones en registros FPU"
+msgstr "Devolver los valores de funciones en registros FPU"
#: config/i386/i386.opt:114
msgid "Generate floating point mathematics using given instruction set"
-msgstr "Genera matemáticas de coma flotante usando el conjunto de instrucciones dado"
+msgstr "Generar matemáticas de coma flotante usando el conjunto de instrucciones dado"
#: config/i386/i386.opt:126
msgid "Inline all known string operations"
-msgstr "Convierte a inline todas las operaciones de cadenas conocidas"
+msgstr "Convertir a inline todas las operaciones de cadenas conocidas"
#: config/i386/i386.opt:134
msgid "Support MMX built-in functions"
-msgstr "Da soporte para funciones internas MMX"
+msgstr "Dar soporte para funciones internas MMX"
#: config/i386/i386.opt:138
msgid "Use native (MS) bitfield layout"
-msgstr "Usa la disposición de campos de bits nativos (MS)"
+msgstr "Usar la disposición de campos de bits nativos (MS)"
#: config/i386/i386.opt:154
msgid "Omit the frame pointer in leaf functions"
-msgstr "Omite el marco de referencia para las funciones hojas"
+msgstr "Omitir el marco de referencia para las funciones hojas"
#: config/i386/i386.opt:166
msgid "Attempt to keep stack aligned to this power of 2"
-msgstr "Se trata de mantenter la pila alineada a esta potencia de 2"
+msgstr "Tratar de mantenter la pila alineada a esta potencia de 2"
#: config/i386/i386.opt:170
msgid "Use push instructions to save outgoing arguments"
-msgstr "Usa instrucciones push para guardar los argumentos de salida"
+msgstr "Usar instrucciones push para guardar los argumentos de salida"
#: config/i386/i386.opt:174
msgid "Use red-zone in the x86-64 code"
-msgstr "Usa la zona roja en el código x86-64"
+msgstr "Usar la zona roja en el código x86-64"
#: config/i386/i386.opt:178
msgid "Number of registers used to pass integer arguments"
@@ -10529,19 +10374,19 @@ msgstr "Convención de llamada alternativa"
#: config/i386/i386.opt:190
msgid "Support MMX and SSE built-in functions and code generation"
-msgstr "Da soporte para funciones internas y generación de código MMX y SSE"
+msgstr "Dar soporte para funciones internas y generación de código MMX y SSE"
#: config/i386/i386.opt:194
msgid "Support MMX, SSE and SSE2 built-in functions and code generation"
-msgstr "Da soporte para funciones internas y generación de código MMX, SSE y SSE2"
+msgstr "Dar soporte para funciones internas y generación de código MMX, SSE y SSE2"
#: config/i386/i386.opt:198
msgid "Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
-msgstr "Da soporte para funciones internas y generación de código MMX, SSE, SSE2 y SSE3"
+msgstr "Dar soporte para funciones internas y generación de código MMX, SSE, SSE2 y SSE3"
#: config/i386/i386.opt:202
msgid "Use SSE register passing conventions for SF and DF mode"
-msgstr ""
+msgstr "Usar las convenciones de paso de registro SSE para los modos SF y DF"
#: config/i386/i386.opt:206
msgid "Uninitialized locals in .bss"
@@ -10549,48 +10394,48 @@ msgstr "Locales sin inicializar en .bss"
#: config/i386/i386.opt:210
msgid "Enable stack probing"
-msgstr "Habilita la prueba de la pila"
+msgstr "Habilitar la prueba de la pila"
#: config/i386/i386.opt:214
msgid "Use given thread-local storage dialect"
-msgstr "Usa el dialecto de almacenamiento thread-local dado"
+msgstr "Usar el dialecto de almacenamiento thread-local dado"
#: config/i386/i386.opt:218
#, c-format
msgid "Use direct references against %gs when accessing tls data"
-msgstr "Usa referencias directas contra %gs cuando se accesen datos tls"
+msgstr "Usar referencias directas contra %gs cuando se accesen datos tls"
#: config/i386/cygming.opt:24
msgid "Create console application"
-msgstr "Crea una aplicación de consola"
+msgstr "Crear una aplicación de consola"
#: config/i386/cygming.opt:28
msgid "Use the Cygwin interface"
-msgstr "Usa la interfaz Cygwin"
+msgstr "Usar la interfaz Cygwin"
#: config/i386/cygming.opt:32
msgid "Generate code for a DLL"
-msgstr "Genera código para una DLL"
+msgstr "Generar código para una DLL"
#: config/i386/cygming.opt:36
msgid "Ignore dllimport for functions"
-msgstr "Ignora dllimport para funciones"
+msgstr "Ignorar dllimport para funciones"
#: config/i386/cygming.opt:40
msgid "Use Mingw-specific thread support"
-msgstr "Usa soporte de hilos específico de Mingw"
+msgstr "Usar soporte de hilos específico de Mingw"
#: config/i386/cygming.opt:44
msgid "Set Windows defines"
-msgstr "Establece las definiciones de Windows"
+msgstr "Establecer las definiciones de Windows"
#: config/i386/cygming.opt:48
msgid "Create GUI application"
-msgstr "Crea una aplicación con interfaz gráfica de usuario (GUI)"
+msgstr "Crear una aplicación con interfaz gráfica de usuario (GUI)"
#: config/i386/sco5.opt:25
msgid "Generate ELF output"
-msgstr "Genera salida ELF"
+msgstr "Generar salida ELF"
#: config/rs6000/aix41.opt:25 config/rs6000/aix64.opt:33
msgid "Support message passing with the Parallel Environment"
@@ -10602,252 +10447,243 @@ msgstr "Conforme más cerca a la semántica XLC de IBM"
#: config/rs6000/darwin.opt:25 config/rs6000/sysv4.opt:133
msgid "Generate 64-bit code"
-msgstr "Genera código de 64-bit"
+msgstr "Generar código de 64-bit"
#: config/rs6000/darwin.opt:29 config/rs6000/sysv4.opt:137
msgid "Generate 32-bit code"
-msgstr "Genera código de 32-bit"
+msgstr "Generar código de 32-bit"
#: config/rs6000/darwin.opt:33
msgid "Generate code suitable for executables (NOT shared libs)"
-msgstr "Genera código adecuado para ejecutables (NO para bibliotecas compartidas)"
+msgstr "Generar código adecuado para ejecutables (NO para bibliotecas compartidas)"
#: config/rs6000/rs6000.opt:25
msgid "Use POWER instruction set"
-msgstr "Usa el conjunto de instrucciones POWER"
+msgstr "Usar el conjunto de instrucciones POWER"
#: config/rs6000/rs6000.opt:29
msgid "Do not use POWER instruction set"
-msgstr "No usa el conjunto de instrucciones POWER"
+msgstr "No usar el conjunto de instrucciones POWER"
#: config/rs6000/rs6000.opt:33
msgid "Use POWER2 instruction set"
-msgstr "Usa el conjunto de instrucciones POWER2"
+msgstr "Usar el conjunto de instrucciones POWER2"
#: config/rs6000/rs6000.opt:37
msgid "Use PowerPC instruction set"
-msgstr "Usa el conjunto de instrucciones PowerPC"
+msgstr "Usar el conjunto de instrucciones PowerPC"
#: config/rs6000/rs6000.opt:41
msgid "Do not use PowerPC instruction set"
-msgstr "No usa el conjunto de instrucciones PowerPC"
+msgstr "No usar el conjunto de instrucciones PowerPC"
#: config/rs6000/rs6000.opt:45
msgid "Use PowerPC-64 instruction set"
-msgstr "Usa el conjunto de instrucciones PowerPC-64"
+msgstr "Usar el conjunto de instrucciones PowerPC-64"
#: config/rs6000/rs6000.opt:49
msgid "Use PowerPC General Purpose group optional instructions"
-msgstr "Usa el grupo opcional de instrucciones PowerPC de Propósito General"
+msgstr "Usar el grupo opcional de instrucciones PowerPC de Propósito General"
#: config/rs6000/rs6000.opt:53
msgid "Use PowerPC Graphics group optional instructions"
-msgstr "Usa el grupo opcional de instrucciones PowerPC de Gráficas"
+msgstr "Usar el grupo opcional de instrucciones PowerPC de Gráficas"
#: config/rs6000/rs6000.opt:57
-#, fuzzy
msgid "Use PowerPC V2.01 single field mfcr instruction"
-msgstr "Genera instrucciones mfcr de un solo campo"
+msgstr "Usar las instrucciones mfcr de un solo campo de PowerPC V2.01"
#: config/rs6000/rs6000.opt:61
-#, fuzzy
msgid "Use PowerPC V2.02 popcntb instruction"
-msgstr "Usa el conjunto de instrucciones PowerPC"
+msgstr "Usar la instrucción popcntb de PowerPC V2.02"
#: config/rs6000/rs6000.opt:65
-#, fuzzy
msgid "Use PowerPC V2.02 floating point rounding instructions"
-msgstr "Usa el grupo opcional de instrucciones PowerPC de Gráficas"
+msgstr "Usar las instrucciones de redondeo de coma flotante de PowerPC V2.02"
#: config/rs6000/rs6000.opt:69
msgid "Use AltiVec instructions"
-msgstr "Usa instrucciones AltiVec"
+msgstr "Usar instrucciones AltiVec"
#: config/rs6000/rs6000.opt:73
msgid "Generate load/store multiple instructions"
-msgstr "Genera múltiples instrucciones load/store"
+msgstr "Generar múltiples instrucciones load/store"
#: config/rs6000/rs6000.opt:77
msgid "Generate string instructions for block moves"
-msgstr "Genera instrucciones de cadena para movimiento de bloques"
+msgstr "Generar instrucciones de cadena para movimiento de bloques"
#: config/rs6000/rs6000.opt:81
msgid "Use new mnemonics for PowerPC architecture"
-msgstr "Usa los mnemónicos nuevos para la arquitectura PowerPC"
+msgstr "Usar los mnemónicos nuevos para la arquitectura PowerPC"
#: config/rs6000/rs6000.opt:85
msgid "Use old mnemonics for PowerPC architecture"
-msgstr "Usa los mnemónicos antiguos para la arquitectura PowerPC"
+msgstr "Usar los mnemónicos antiguos para la arquitectura PowerPC"
#: config/rs6000/rs6000.opt:89 config/pdp11/pdp11.opt:84
msgid "Do not use hardware floating point"
-msgstr "No usa coma flotante de hardware"
+msgstr "No usar coma flotante de hardware"
#: config/rs6000/rs6000.opt:97
msgid "Do not generate load/store with update instructions"
-msgstr "No genera load/store con instrucciones de actualización"
+msgstr "No generar load/store con instrucciones de actualización"
#: config/rs6000/rs6000.opt:101
msgid "Generate load/store with update instructions"
-msgstr "Genera load/store con instrucciones de actualización"
+msgstr "Generar load/store con instrucciones de actualización"
#: config/rs6000/rs6000.opt:105
msgid "Do not generate fused multiply/add instructions"
-msgstr "No genera instrucciones multiply/add de corto circuito"
+msgstr "No generar instrucciones multiply/add de corto circuito"
#: config/rs6000/rs6000.opt:109
msgid "Generate fused multiply/add instructions"
-msgstr "Genera instrucciones multiply/add de corto circuito"
+msgstr "Generar instrucciones multiply/add de corto circuito"
#: config/rs6000/rs6000.opt:113
-#, fuzzy
msgid "Schedule the start and end of the procedure"
-msgstr "No calendariza el inicio y el final del procedimiento"
+msgstr "Calendarizar el inicio y el final del procedimiento"
#: config/rs6000/rs6000.opt:120
msgid "Return all structures in memory (AIX default)"
-msgstr "Devuelve todas las estructuras en memoria (por defecto en AIX)"
+msgstr "Devolver todas las estructuras en memoria (por defecto en AIX)"
#: config/rs6000/rs6000.opt:124
msgid "Return small structures in registers (SVR4 default)"
-msgstr "Devuelve las estructuras pequeñas en registros (por defecto en SVR4)"
+msgstr "Devolver las estructuras pequeñas en registros (por defecto en SVR4)"
#: config/rs6000/rs6000.opt:132
-#, fuzzy
msgid "Generate software floating point divide for better throughput"
-msgstr "Genera división de coma flotante inline, optimizada para salida"
+msgstr "Generar división de coma flotante por software, para mejor salida"
#: config/rs6000/rs6000.opt:136
msgid "Do not place floating point constants in TOC"
-msgstr "No coloca las constantes de coma flotante en TOC"
+msgstr "No colocar las constantes de coma flotante en TOC"
#: config/rs6000/rs6000.opt:140
msgid "Place floating point constants in TOC"
-msgstr "Coloca las constantes de coma flotante en TOC"
+msgstr "Colocar las constantes de coma flotante en TOC"
#: config/rs6000/rs6000.opt:144
msgid "Do not place symbol+offset constants in TOC"
-msgstr "No coloca las constantes símbolo+desplazamiento en TOC"
+msgstr "No colocar las constantes símbolo+desplazamiento en TOC"
#: config/rs6000/rs6000.opt:148
msgid "Place symbol+offset constants in TOC"
-msgstr "Coloca las constantes símbolo+desplazamiento en TOC"
+msgstr "Colocar las constantes símbolo+desplazamiento en TOC"
#: config/rs6000/rs6000.opt:159
msgid "Use only one TOC entry per procedure"
-msgstr ""
+msgstr "Usar sólo una entrada TOC por procedimiento"
#: config/rs6000/rs6000.opt:163
msgid "Put everything in the regular TOC"
-msgstr "Coloca todo en la TOC normal"
+msgstr "Colocar todo en la TOC normal"
#: config/rs6000/rs6000.opt:167
-#, fuzzy
msgid "Generate VRSAVE instructions when generating AltiVec code"
-msgstr "Especifica sí/no si se deben generar las instrucciones VRSAVE para AltiVec"
+msgstr "Generar instrucciones VRSAVE cuando se genere código AltiVec"
#: config/rs6000/rs6000.opt:171
msgid "Deprecated option. Use -mvrsave/-mno-vrsave instead"
-msgstr ""
+msgstr "Opción obsoleta. Use en su lugar -mvrsave/-mno-vrsave"
#: config/rs6000/rs6000.opt:175
-#, fuzzy
msgid "Generate isel instructions"
-msgstr "Genera instrucciones multiply/add de corto circuito"
+msgstr "Generar instrucciones isel"
#: config/rs6000/rs6000.opt:179
msgid "Deprecated option. Use -misel/-mno-isel instead"
-msgstr ""
+msgstr "Opción obsoleta. Use en su lugar -misel/-mno-isel"
#: config/rs6000/rs6000.opt:183
-#, fuzzy
msgid "Generate SPE SIMD instructions on E500"
-msgstr "Genera instrucciones de cadena para movimiento de bloques"
+msgstr "Generar instrucciones SPE SIMD en E500"
#: config/rs6000/rs6000.opt:187
msgid "Deprecated option. Use -mspe/-mno-spe instead"
-msgstr ""
+msgstr "Opción obsoleta. Use en su lugar -mspe/-mno-spe"
#: config/rs6000/rs6000.opt:191
msgid "Enable debug output"
-msgstr "Activa la salida de depuración"
+msgstr "Activar la salida de depuración"
#: config/rs6000/rs6000.opt:195
msgid "Specify ABI to use"
-msgstr "Especifica el ABI a utilizar"
+msgstr "Especificar el ABI a utilizar"
#: config/rs6000/rs6000.opt:207
msgid "Select full, part, or no traceback table"
-msgstr "Selecciona la tabla full, part, ó sin traceback"
+msgstr "Seleccionar la tabla full, part, ó sin traceback"
#: config/rs6000/rs6000.opt:211
msgid "Avoid all range limits on call instructions"
-msgstr "Evita todos los límites de rango en las instrucciones de llamadas"
+msgstr "Evitar todos los límites de rango en las instrucciones de llamadas"
#: config/rs6000/rs6000.opt:215
msgid "Warn about deprecated 'vector long ...' AltiVec type usage"
-msgstr "Avisa sobre el uso del tipo AltiVec obsoleto 'vector long ...'"
+msgstr "Avisar sobre el uso del tipo AltiVec obsoleto 'vector long ...'"
#: config/rs6000/rs6000.opt:219
-#, fuzzy
msgid "Select GPR floating point method"
-msgstr "desbordamiento de coma flotante"
+msgstr "Seleccionar el método de coma flotante GPR"
#: config/rs6000/rs6000.opt:223
msgid "Specify size of long double (64 or 128 bits)"
-msgstr "Especifica el tamaño de long double (64 ó 128 bits)"
+msgstr "Especificar el tamaño de long double (64 ó 128 bits)"
#: config/rs6000/rs6000.opt:227
msgid "Determine which dependences between insns are considered costly"
-msgstr "Determina cuáles dependencias entre insns se consideran costosas"
+msgstr "Determinar cuáles dependencias entre insns se consideran costosas"
#: config/rs6000/rs6000.opt:231
msgid "Specify which post scheduling nop insertion scheme to apply"
-msgstr "Especifica cuál esquema de inserción de nop post calendarizados se debe aplicar"
+msgstr "Especificar cuál esquema de inserción de nop post calendarizados se debe aplicar"
#: config/rs6000/rs6000.opt:235
msgid "Specify alignment of structure fields default/natural"
-msgstr "Especifica la alineación de los campos de estructuras default/natural"
+msgstr "Especificar la alineación de los campos de estructuras default/natural"
#: config/rs6000/rs6000.opt:239
msgid "Specify scheduling priority for dispatch slot restricted insns"
-msgstr "Especifica la prioridad de calendarización para despachar insns restringidos por ranuras"
+msgstr "Especificar la prioridad de calendarización para despachar insns restringidos por ranuras"
#: config/rs6000/aix64.opt:25
msgid "Compile for 64-bit pointers"
-msgstr "Compila para punteros de 64-bit"
+msgstr "Compilar para punteros de 64-bit"
#: config/rs6000/aix64.opt:29
msgid "Compile for 32-bit pointers"
-msgstr "Compila para punteros de 32-bit"
+msgstr "Compilar para punteros de 32-bit"
#: config/rs6000/linux64.opt:25
msgid "Call mcount for profiling before a function prologue"
-msgstr "Llama a mcount para análisis de perfil antes del prólogo de una función"
+msgstr "Llamar a mcount para análisis de perfil antes del prólogo de una función"
#: config/rs6000/sysv4.opt:25
msgid "Select ABI calling convention"
-msgstr "Selecciona la convención de llamada ABI"
+msgstr "Seleccionar la convención de llamada ABI"
#: config/rs6000/sysv4.opt:29
msgid "Select method for sdata handling"
-msgstr "Selecciona el método para el manejo de sdata"
+msgstr "Seleccionar el método para el manejo de sdata"
#: config/rs6000/sysv4.opt:37 config/rs6000/sysv4.opt:41
msgid "Align to the base type of the bit-field"
-msgstr "Alínea al tipo base del campo de bit"
+msgstr "Alinear al tipo base del campo de bit"
#: config/rs6000/sysv4.opt:46 config/rs6000/sysv4.opt:50
msgid "Produce code relocatable at runtime"
-msgstr "Produce código reubicable en el momento de ejecución"
+msgstr "Producir código reubicable en el momento de ejecución"
#: config/rs6000/sysv4.opt:54 config/rs6000/sysv4.opt:58
msgid "Produce little endian code"
-msgstr "Produce código little endian"
+msgstr "Producir código little endian"
#: config/rs6000/sysv4.opt:62 config/rs6000/sysv4.opt:66
msgid "Produce big endian code"
-msgstr "Produce código big endian"
+msgstr "Producir código big endian"
#: config/rs6000/sysv4.opt:71 config/rs6000/sysv4.opt:75
#: config/rs6000/sysv4.opt:84 config/rs6000/sysv4.opt:101
@@ -10857,81 +10693,76 @@ msgstr "sin descripción aún"
#: config/rs6000/sysv4.opt:79
msgid "Assume all variable arg functions are prototyped"
-msgstr ""
+msgstr "Asumir que todas las funciones de argumentos variables tienen prototipos"
#: config/rs6000/sysv4.opt:88
msgid "Use EABI"
-msgstr "Usa EABI"
+msgstr "Usar EABI"
#: config/rs6000/sysv4.opt:92
-#, fuzzy
msgid "Allow bit-fields to cross word boundaries"
-msgstr "No permite que los campos de bits crucen los límites de word"
+msgstr "Permitir que los campos de bits crucen los límites de word"
#: config/rs6000/sysv4.opt:96
msgid "Use alternate register names"
-msgstr "Usa nombres de registro alternados"
+msgstr "Usar nombres de registro alternativos"
#: config/rs6000/sysv4.opt:105
msgid "Link with libsim.a, libc.a and sim-crt0.o"
-msgstr "Enlaza con libsim.a, libc.a y sim-crt0.o"
+msgstr "Enlazar con libsim.a, libc.a y sim-crt0.o"
#: config/rs6000/sysv4.opt:109
msgid "Link with libads.a, libc.a and crt0.o"
-msgstr "Enlaza con libads.a, libc.a y crt0.o"
+msgstr "Enlazar con libads.a, libc.a y crt0.o"
#: config/rs6000/sysv4.opt:113
msgid "Link with libyk.a, libc.a and crt0.o"
-msgstr "Enlaza con libyk.a, libc.a y crt0.o"
+msgstr "Enlazar con libyk.a, libc.a y crt0.o"
#: config/rs6000/sysv4.opt:117
msgid "Link with libmvme.a, libc.a and crt0.o"
-msgstr "Enlaza con libmvme.a, libc.a y crt0.o"
+msgstr "Enlazar con libmvme.a, libc.a y crt0.o"
#: config/rs6000/sysv4.opt:121
msgid "Set the PPC_EMB bit in the ELF flags header"
-msgstr "Establece el bit PPC_EMB en los interruptores del encabezado ELF"
+msgstr "Establecer el bit PPC_EMB en los interruptores del encabezado ELF"
#: config/rs6000/sysv4.opt:125
msgid "Use the WindISS simulator"
-msgstr "Usa el simulador WindISS"
+msgstr "Usar el simulador WindISS"
#: config/rs6000/sysv4.opt:145
-#, fuzzy
msgid "Generate code to use a non-exec PLT and GOT"
-msgstr "Generar código para una tarjeta Sun Sky"
+msgstr "Generar código para usar un PTL y GOT no ejecutables"
#: config/rs6000/sysv4.opt:149
-#, fuzzy
msgid "Generate code for old exec BSS PLT"
-msgstr "Generar código para un FPA de Sun"
+msgstr "Generar código para ejecutables BSS PLT antiguos"
#: config/mt/mt.opt:24
msgid "Use byte loads and stores when generating code."
-msgstr ""
+msgstr "Usar cargas y almacenamientos de bytes al generar código."
#: config/mt/mt.opt:32
msgid "Do not include crt0.o in the startup files"
-msgstr ""
+msgstr "No incluir crt0.o en los ficheros de inicio"
#: config/mt/mt.opt:36 config/mt/mt.opt:40 config/mt/mt.opt:44
#: config/mt/mt.opt:48 config/mt/mt.opt:52
-#, fuzzy
msgid "Internal debug switch"
-msgstr "interruptor -mdebug-%s desconocido"
+msgstr "Interruptor de depuración interno"
#: config/mt/mt.opt:56 config/iq2000/iq2000.opt:24
msgid "Specify CPU for code generation purposes"
-msgstr "Especifica el CPU para propósitos de generación de código"
+msgstr "Especificar el CPU para propósitos de generación de código"
#: config/mcore/mcore.opt:24
-#, fuzzy
msgid "Generate code for the M*Core M210"
-msgstr "Genera código para el M*Core M340"
+msgstr "Generar código para el M*Core M210"
#: config/mcore/mcore.opt:28
msgid "Generate code for the M*Core M340"
-msgstr "Genera código para el M*Core M340"
+msgstr "Generar código para el M*Core M340"
#: config/mcore/mcore.opt:32
msgid "Set maximum alignment to 4"
@@ -10946,337 +10777,296 @@ msgid "Set maximum alignment to 8"
msgstr "Establecer la alineación máxima a 8"
#: config/mcore/mcore.opt:44
-#, fuzzy
msgid "Generate big-endian code"
-msgstr "Genera código big endian"
+msgstr "Generar código big-endian"
#: config/mcore/mcore.opt:48
msgid "Emit call graph information"
-msgstr "Emite información de grafo de llamadas"
+msgstr "Emitir información de grafo de llamadas"
#: config/mcore/mcore.opt:52
-#, fuzzy
msgid "Use the divide instruction"
-msgstr "No usa la instrucción divide"
+msgstr "Usar la instrucción divide"
#: config/mcore/mcore.opt:56
msgid "Inline constants if it can be done in 2 insns or less"
msgstr "Constantes inline si pueden ser hechas en 2 insns o menos"
#: config/mcore/mcore.opt:60
-#, fuzzy
msgid "Generate little-endian code"
-msgstr "Genera código little endian"
+msgstr "Generar código little-endian"
#: config/mcore/mcore.opt:68
-#, fuzzy
msgid "Use arbitrary sized immediates in bit operations"
-msgstr "No media en inmediatos de tamaños arbitrarios en operaciones de bit"
+msgstr "Usar inmediatos de tamaños arbitrarios en operaciones de bit"
#: config/mcore/mcore.opt:72
msgid "Prefer word accesses over byte accesses"
-msgstr "Prefiere accesos word sobre accessos byte"
+msgstr "Preferir accesos word sobre accessos byte"
#: config/mcore/mcore.opt:76
-#, fuzzy
msgid "Set the maximum amount for a single stack increment operation"
-msgstr "Cantidad máxima para una sola operación de incremento de pila"
+msgstr "Establecer la cantidad máxima para una sola operación de incremento de pila"
#: config/mcore/mcore.opt:80
-#, fuzzy
msgid "Always treat bitfields as int-sized"
-msgstr "Trata siempre a los campos de bit como de tamaño int"
+msgstr "Tratar siempre a los campos de bit como de tamaño int"
#: config/arc/arc.opt:33
msgid "Prepend the name of the cpu to all public symbol names"
-msgstr ""
+msgstr "Agregar el nombre del cpu al inicio de todos los nombres de símbolo públicos"
#: config/arc/arc.opt:43
-#, fuzzy
msgid "Compile code for ARC variant CPU"
-msgstr "Código de calendarizador para el CPU dado"
+msgstr "Compilar código para el CPU de variante ARC"
#: config/arc/arc.opt:47
msgid "Put functions in SECTION"
-msgstr ""
+msgstr "Poner funciones en SECTION"
#: config/arc/arc.opt:51
msgid "Put data in SECTION"
-msgstr ""
+msgstr "Poner datos en SECTION"
#: config/arc/arc.opt:55
msgid "Put read-only data in SECTION"
-msgstr ""
+msgstr "Poner datos de sólo lectura en SECTION"
#: config/sh/sh.opt:45
-#, fuzzy
msgid "Generate SH1 code"
-msgstr "Generar código SB"
+msgstr "Generar código SH1"
#: config/sh/sh.opt:49
-#, fuzzy
msgid "Generate SH2 code"
-msgstr "Generar código SB"
+msgstr "Generar código SH2"
#: config/sh/sh.opt:53
-#, fuzzy
msgid "Generate SH2a code"
-msgstr "Generar código SB"
+msgstr "Generar código SH2a"
#: config/sh/sh.opt:57
-#, fuzzy
msgid "Generate SH2a FPU-less code"
-msgstr "Generar código SA"
+msgstr "Generar código SH2a sin FPU"
#: config/sh/sh.opt:61
-#, fuzzy
msgid "Generate default single-precision SH2a code"
-msgstr "Genera código little endian"
+msgstr "Generar código SH2a de precisión simple por defecto"
#: config/sh/sh.opt:65
-#, fuzzy
msgid "Generate only single-precision SH2a code"
-msgstr "Genera código little endian"
+msgstr "Generar código SH2a solamente de precisión simple"
#: config/sh/sh.opt:69
-#, fuzzy
msgid "Generate SH2e code"
-msgstr "Generar código SB"
+msgstr "Generar código SH2e"
#: config/sh/sh.opt:73
-#, fuzzy
msgid "Generate SH3 code"
-msgstr "Generar código SB"
+msgstr "Generar código SH3"
#: config/sh/sh.opt:77
-#, fuzzy
msgid "Generate SH3e code"
-msgstr "Generar código SB"
+msgstr "Generar código SH3e"
#: config/sh/sh.opt:81
-#, fuzzy
msgid "Generate SH4 code"
-msgstr "Generar código SB"
+msgstr "Generar código SH4"
#: config/sh/sh.opt:85
-#, fuzzy
msgid "Generate SH4 FPU-less code"
-msgstr "Generar código SA"
+msgstr "Generar código SH4 sin FPU"
#: config/sh/sh.opt:89
-#, fuzzy
msgid "Generate default single-precision SH4 code"
-msgstr "Genera código little endian"
+msgstr "Generar código SH4 de precisión simple por defecto"
#: config/sh/sh.opt:93
-#, fuzzy
msgid "Generate only single-precision SH4 code"
-msgstr "Genera código little endian"
+msgstr "Generar código SH4 solamente de precisión simple"
#: config/sh/sh.opt:97
-#, fuzzy
msgid "Generate SH4a code"
-msgstr "Generar código SB"
+msgstr "Generar código SH4a"
#: config/sh/sh.opt:101
-#, fuzzy
msgid "Generate SH4a FPU-less code"
-msgstr "Generar código SA"
+msgstr "Generar código SH4a sin FPU"
#: config/sh/sh.opt:105
-#, fuzzy
msgid "Generate default single-precision SH4a code"
-msgstr "Genera código little endian"
+msgstr "Generar código SH4a de precisión simple por defecto"
#: config/sh/sh.opt:109
-#, fuzzy
msgid "Generate only single-precision SH4a code"
-msgstr "Genera código little endian"
+msgstr "Generar código SH4a solamente de precisión simple"
#: config/sh/sh.opt:113
-#, fuzzy
msgid "Generate SH4al-dsp code"
-msgstr "Generar código SA"
+msgstr "Generar código SH4al-dsp"
#: config/sh/sh.opt:117
-#, fuzzy
msgid "Generate 32-bit SHmedia code"
-msgstr "Genera código de 32-bit"
+msgstr "Generar código SHmedia de 32-bit"
#: config/sh/sh.opt:121
-#, fuzzy
msgid "Generate 32-bit FPU-less SHmedia code"
-msgstr "Genera código little endian"
+msgstr "Generar código SHmedia de 32-bit sin FPU"
#: config/sh/sh.opt:125
-#, fuzzy
msgid "Generate 64-bit SHmedia code"
-msgstr "Genera código de 64-bit"
+msgstr "Generar código SHmedia de 64-bit"
#: config/sh/sh.opt:129
-#, fuzzy
msgid "Generate 64-bit FPU-less SHmedia code"
-msgstr "Genera código little endian"
+msgstr "Generar código SHmedia de 64-bit sin FPU"
#: config/sh/sh.opt:133
-#, fuzzy
msgid "Generate SHcompact code"
-msgstr "Generar código SA"
+msgstr "Generar código SHcompact"
-# pc = program counter. cfuga
#: config/sh/sh.opt:137
-#, fuzzy
msgid "Generate FPU-less SHcompact code"
-msgstr "Genera código relativo al pc"
+msgstr "Generar código SHcompact sin FPU"
#: config/sh/sh.opt:141
msgid "Throttle unrolling to avoid thrashing target registers unless the unroll benefit outweighs this"
-msgstr ""
+msgstr "Contener el desenrollo para evitar el mal uso de los registros del objetivo a menos que el beneficio del desenrollo sobrepase esto"
#: config/sh/sh.opt:145
-#, fuzzy
msgid "Generate code in big endian mode"
-msgstr "Genera código para big endian"
+msgstr "Generar código en modo big endian"
#: config/sh/sh.opt:149
-#, fuzzy
msgid "Generate 32-bit offsets in switch tables"
-msgstr "Usa entradas de 4 byte en las tablas de switch"
+msgstr "Generar desplazamientos de 32-bit en las tablas de switch"
#: config/sh/sh.opt:153
msgid "Enable SH5 cut2 workaround"
-msgstr ""
+msgstr "Permitir evitar cut2 de SH5"
#: config/sh/sh.opt:157
-#, fuzzy
msgid "Align doubles at 64-bit boundaries"
-msgstr "Alínea las variables en un límite de 16-bit"
+msgstr "Alinear doubles en límites de 64-bit"
#: config/sh/sh.opt:161
msgid "Division strategy, one of: call, call2, fp, inv, inv:minlat, inv20u, inv20l, inv:call, inv:call2, inv:fp"
-msgstr ""
+msgstr "Estrategia de división, uno de: call, call2, fp, inv, inv:minlat, inv20u, inv20l, inv:call, inv:call2, inv:fp"
#: config/sh/sh.opt:165
-#, fuzzy
msgid "Specify name for 32 bit signed division function"
-msgstr "Especificar un nombre alternativo para la sección bss"
+msgstr "Especificar un nombre para la función de división de 32 bit con signo"
#: config/sh/sh.opt:172
msgid "Cost to assume for gettr insn"
-msgstr ""
+msgstr "Costo de asumir la instrucción gettr"
#: config/sh/sh.opt:176 config/sh/sh.opt:222
msgid "Follow Renesas (formerly Hitachi) / SuperH calling conventions"
-msgstr ""
+msgstr "Seguir las convenciones de llamada Renesas (anteriormente Hitachi) / SuperH"
#: config/sh/sh.opt:180
msgid "Increase the IEEE compliance for floating-point code"
-msgstr ""
+msgstr "Incrementar el cumplimiento con IEEE para el código de coma flotante"
#: config/sh/sh.opt:184
msgid "Enable the use of the indexed addressing mode for SHmedia32/SHcompact"
-msgstr ""
+msgstr "Permitir el uso del modo de direccionamiento indizado para SHmedia32/SHcompact"
#: config/sh/sh.opt:188
-#, fuzzy
msgid "Assume symbols might be invalid"
-msgstr "Asume que todos los símbolos tienen valores de 32-bit"
+msgstr "Asumir que los símbolos pueden ser inválidos"
#: config/sh/sh.opt:192
msgid "Annotate assembler instructions with estimated addresses"
-msgstr ""
+msgstr "Anotar las instrucciones de ensamblador con direcciones estimadas"
#: config/sh/sh.opt:196
-#, fuzzy
msgid "Generate code in little endian mode"
-msgstr "Genera código para little endian"
+msgstr "Generar código en modo little endian"
#: config/sh/sh.opt:200
-#, fuzzy
msgid "Mark MAC register as call-clobbered"
-msgstr "registro PIC %qs sobreescrito en %<asm%>"
+msgstr "Marcar los registros MAC como sobreescrito por llamada"
#: config/sh/sh.opt:206
msgid "Make structs a multiple of 4 bytes (warning: ABI altered)"
-msgstr ""
+msgstr "Marcar los structs como un múltiplo de 4 bytes (aviso: se altera la ABI)"
#: config/sh/sh.opt:210
msgid "Emit function-calls using global offset table when generating PIC"
-msgstr ""
+msgstr "Emitir llamadas a función usando la tabla de desplazamiento global al generar PIC"
#: config/sh/sh.opt:214
-#, fuzzy
msgid "Assume pt* instructions won't trap"
-msgstr "Asume que las operaciones de coma flotante pueden capturar"
+msgstr "Asume que las instrucciones pt* no capturarán"
#: config/sh/sh.opt:218
msgid "Shorten address references during linking"
-msgstr ""
+msgstr "Abreviar las referencias de direcciones durante el enlazado"
#: config/sh/sh.opt:226
-#, fuzzy
msgid "Deprecated. Use -Os instead"
-msgstr "--CLASSPATH\tObsoleto; utilice en su lugar --classpath"
+msgstr "Obsoleto. Utilice en su lugar -Os"
#: config/sh/sh.opt:230
msgid "Cost to assume for a multiply insn"
-msgstr ""
+msgstr "Costo de asumir una instrucción multiply"
#: config/sh/sh.opt:234
msgid "Generate library function call to invalidate instruction cache entries after fixing trampoline"
-msgstr ""
+msgstr "Generar llamadas a función de biblioteca para invalidar las entradas de caché de instruciones después de componer el trampolín"
#: config/arm/arm.opt:24
msgid "Specify an ABI"
-msgstr "Especifica una ABI"
+msgstr "Especificar una ABI"
#: config/arm/arm.opt:28
msgid "Generate a call to abort if a noreturn function returns"
-msgstr "Genera una llamada a abortar si una funcion noreturn devuelve"
+msgstr "Generar una llamada a abortar si una funcion noreturn devuelve"
#: config/arm/arm.opt:35
msgid "Pass FP arguments in FP registers"
-msgstr "Pasa los argumentos FP en los registros FP"
+msgstr "Pasar los argumentos FP en los registros FP"
#: config/arm/arm.opt:39
msgid "Generate APCS conformant stack frames"
-msgstr "Genera marcos de pila que cumplan con APCS"
+msgstr "Generar marcos de pila que cumplan con APCS"
#: config/arm/arm.opt:43
msgid "Generate re-entrant, PIC code"
-msgstr "Genera código PIC reentrante"
+msgstr "Generar código PIC reentrante"
#: config/arm/arm.opt:50
msgid "Specify the name of the target architecture"
-msgstr "Especifica el nombre de la arquitectura destino"
+msgstr "Especificar el nombre de la arquitectura destino"
#: config/arm/arm.opt:57
msgid "Assume target CPU is configured as big endian"
-msgstr "Asume que el CPU destino está configurado como big endian"
+msgstr "Asumir que el CPU destino está configurado como big endian"
#: config/arm/arm.opt:61
msgid "Thumb: Assume non-static functions may be called from ARM code"
-msgstr "Thumb: Asume que las funciones no static pueden ser llamadas desde código ARM"
+msgstr "Thumb: Asumir que las funciones no static pueden ser llamadas desde código ARM"
#: config/arm/arm.opt:65
msgid "Thumb: Assume function pointers may go to non-Thumb aware code"
-msgstr "Thumb: Asume que los punteros de función pueden ir a código no informado sobre Thumb"
+msgstr "Thumb: Asumir que los punteros de función pueden ir a código no informado sobre Thumb"
#: config/arm/arm.opt:69
msgid "Cirrus: Place NOPs to avoid invalid instruction combinations"
-msgstr "Cirrus: Coloca NOPs para evitar combinaciones inválidas de instrucciones"
+msgstr "Cirrus: Colocar NOPs para evitar combinaciones inválidas de instrucciones"
#: config/arm/arm.opt:73
msgid "Specify the name of the target CPU"
-msgstr "Especifica el nombre del CPU destino"
+msgstr "Especificar el nombre del CPU destino"
#: config/arm/arm.opt:77
msgid "Specify if floating point hardware should be used"
-msgstr "Especifica si se debe usar la coma flotante"
+msgstr "Especificar si se debe usar la coma flotante"
#: config/arm/arm.opt:91
msgid "Specify the name of the target floating point hardware/format"
-msgstr "Especifica el nombre del hardware/formato de coma flotante destino"
+msgstr "Especificar el nombre del hardware/formato de coma flotante destino"
#: config/arm/arm.opt:95
msgid "Alias for -mfloat-abi=hard"
@@ -11284,28 +11074,27 @@ msgstr "Alias para -mfloat-abi=hard"
#: config/arm/arm.opt:99
msgid "Assume target CPU is configured as little endian"
-msgstr "Asume que el CPU destino está configurado como little endian"
+msgstr "Asumir que el CPU destino está configurado como little endian"
#: config/arm/arm.opt:103
msgid "Generate call insns as indirect calls, if necessary"
-msgstr "Genera las llamadas insns como llamadas indirectas, si es necesario"
+msgstr "Generar las llamadas insns como llamadas indirectas, si es necesario"
#: config/arm/arm.opt:107
msgid "Specify the register to be used for PIC addressing"
-msgstr "Especifica el registro a usar para el direccionamiento PIC"
+msgstr "Especificar el registro a usar para el direccionamiento PIC"
#: config/arm/arm.opt:111
msgid "Store function names in object code"
-msgstr "Almacena nombres de función en el código objeto"
+msgstr "Almacenar nombres de función en el código objeto"
#: config/arm/arm.opt:115
-#, fuzzy
msgid "Permit scheduling of a function's prologue sequence"
-msgstr "Usa cabos para los prólogos de función"
+msgstr "Permitir la calendarización de un secuencia de los prólogos de función"
#: config/arm/arm.opt:119
msgid "Do not load the PIC register in function prologues"
-msgstr "No carga el registro PIC en los prólogos de función"
+msgstr "No cargar el registro PIC en los prólogos de función"
#: config/arm/arm.opt:123
msgid "Alias for -mfloat-abi=soft"
@@ -11313,100 +11102,95 @@ msgstr "Alias para -mfloat-abi=soft"
#: config/arm/arm.opt:127
msgid "Specify the minimum bit alignment of structures"
-msgstr "Especifica la alineación mínima de bit de las estructuras"
+msgstr "Especificar la alineación mínima de bit de las estructuras"
#: config/arm/arm.opt:131
msgid "Compile for the Thumb not the ARM"
-msgstr "Compila para el Thumb on para el ARM"
+msgstr "Compilar para el Thumb on para el ARM"
#: config/arm/arm.opt:135
msgid "Support calls between Thumb and ARM instruction sets"
msgstr "Soporte a llamadas entre los conjuntos de instrucciones Thumb y ARM"
#: config/arm/arm.opt:139
-#, fuzzy
msgid "Specify how to access the thread pointer"
-msgstr "Especifica el nombre de la arquitectura destino"
+msgstr "Especificar cómo accessar al puntero de hilo"
#: config/arm/arm.opt:143
msgid "Thumb: Generate (non-leaf) stack frames even if not needed"
-msgstr "Thumb: Genera marcos de pila (no-hojas) aún si no es necesario"
+msgstr "Thumb: Generar marcos de pila (no-hojas) aún si no es necesario"
#: config/arm/arm.opt:147
msgid "Thumb: Generate (leaf) stack frames even if not needed"
-msgstr "Thumb: Genera marcos de pila (hojas) aún si no es necesario"
+msgstr "Thumb: Generar marcos de pila (hojas) aún si no es necesario"
#: config/arm/arm.opt:151
-#, fuzzy
msgid "Tune code for the given processor"
-msgstr "Compila para el procesador v850"
+msgstr "Ajustar el código para el procesador dado"
#: config/arm/arm.opt:155
msgid "Assume big endian bytes, little endian words"
-msgstr "Asume bytes big endian, words little endian"
+msgstr "Asumir bytes big endian, words little endian"
#: config/arm/pe.opt:24
msgid "Ignore dllimport attribute for functions"
-msgstr "Ignora el atributo dllimport para las funciones"
+msgstr "Ignorar el atributo dllimport para las funciones"
#: config/pdp11/pdp11.opt:24
msgid "Generate code for an 11/10"
-msgstr "Genera código para un 11/10"
+msgstr "Generar código para un 11/10"
#: config/pdp11/pdp11.opt:28
msgid "Generate code for an 11/40"
-msgstr "Genera código para un 11/40"
+msgstr "Generar código para un 11/40"
#: config/pdp11/pdp11.opt:32
msgid "Generate code for an 11/45"
-msgstr "Genera código para un 11/45"
+msgstr "Generar código para un 11/45"
#: config/pdp11/pdp11.opt:36
-#, fuzzy
msgid "Use 16-bit abs patterns"
-msgstr "Usa registros FP de 64-bit"
+msgstr "Usar patrones abs de 64-bit"
#: config/pdp11/pdp11.opt:40
-#, fuzzy
msgid "Return floating-point results in ac0 (fr0 in Unix assembler syntax)"
-msgstr "Devuelve resultados de coma flotante en ac0"
+msgstr "Devolver resultados de coma flotante en ac0 (fr0 en sintaxis de ensamblador Unix)"
#: config/pdp11/pdp11.opt:44
msgid "Do not use inline patterns for copying memory"
-msgstr ""
+msgstr "No usar patrones inline para copiado de memoria"
#: config/pdp11/pdp11.opt:48
msgid "Use inline patterns for copying memory"
-msgstr ""
+msgstr "Usar patrones inline para copiado de memoria"
#: config/pdp11/pdp11.opt:52
msgid "Do not pretend that branches are expensive"
-msgstr ""
+msgstr "No pretender que las ramificaciones son costosas"
#: config/pdp11/pdp11.opt:56
msgid "Pretend that branches are expensive"
-msgstr ""
+msgstr "Pretender que las ramificaciones son costosas"
#: config/pdp11/pdp11.opt:60
-#, fuzzy
msgid "Use the DEC assembler syntax"
-msgstr "Usa sintaxis de ensamblador DEC"
+msgstr "Usar la sintaxis de ensamblador DEC"
#: config/pdp11/pdp11.opt:64
msgid "Use 32 bit float"
-msgstr "Usa float de 32 bit"
+msgstr "Usar float de 32 bit"
#: config/pdp11/pdp11.opt:68
msgid "Use 64 bit float"
-msgstr "Usa float de 64 bit"
+msgstr "Usar float de 64 bit"
#: config/pdp11/pdp11.opt:76
msgid "Use 16 bit int"
-msgstr "Usa int de 16 bit"
+msgstr "Usar int de 16 bit"
#: config/pdp11/pdp11.opt:80
msgid "Use 32 bit int"
-msgstr "Usa int de 32 bit"
+msgstr "Usar int de 32 bit"
#: config/pdp11/pdp11.opt:88
msgid "Target has split I&D"
@@ -11414,39 +11198,35 @@ msgstr "El objetivo tiene I&D dividido"
#: config/pdp11/pdp11.opt:92
msgid "Use UNIX assembler syntax"
-msgstr "Usa sintaxis de ensamblador UNIX"
+msgstr "Usar sintaxis de ensamblador UNIX"
#: config/avr/avr.opt:24
-#, fuzzy
msgid "Use subroutines for function prologues and epilogues"
-msgstr "Usa subrutinas para el prólogo/epílogo de función"
+msgstr "Usar subrutinas para los prólogos y epílogos de función"
#: config/avr/avr.opt:28
-#, fuzzy
msgid "Select the target MCU"
-msgstr "Especifica el nombre del CPU destino"
+msgstr "Seleccionar el MCU destino"
#: config/avr/avr.opt:35
-#, fuzzy
msgid "Use STACK as the initial value of the stack pointer"
-msgstr "Cambia sólo los 8 bits bajos del puntero de pila"
+msgstr "Usar PILA como el valor inicial del puntero de pila"
#: config/avr/avr.opt:39
-#, fuzzy
msgid "Use an 8-bit 'int' type"
-msgstr "Usa tipo int de 64-bit"
+msgstr "Usa un tipo 'int' de 8-bit"
#: config/avr/avr.opt:43
msgid "Change the stack pointer without disabling interrupts"
-msgstr "Cambia el puntero de la pila sin desactivar las interrupciones"
+msgstr "Cambiar el puntero de la pila sin desactivar las interrupciones"
#: config/avr/avr.opt:47
msgid "Do not generate tablejump insns"
-msgstr "No genera insns de salto de tabla"
+msgstr "No generar insns de salto de tabla"
#: config/avr/avr.opt:57
msgid "Use rjmp/rcall (limited range) on >8K devices"
-msgstr "Usa rjmp/rcall (rango limitado) en dispositivos >8K"
+msgstr "Usar rjmp/rcall (rango limitado) en dispositivos >8K"
#: config/avr/avr.opt:61
msgid "Output instruction sizes to the asm file"
@@ -11454,49 +11234,47 @@ msgstr "Tamaños de instrucción de salida al fichero asm"
#: config/avr/avr.opt:65
msgid "Change only the low 8 bits of the stack pointer"
-msgstr "Cambia sólo los 8 bits bajos del puntero de pila"
+msgstr "Cambiar sólo los 8 bits bajos del puntero de pila"
#: config/crx/crx.opt:24
-#, fuzzy
msgid "Support multiply accumulate instructions"
-msgstr "Usa instrucciones de fp para multiplicar-acumular"
+msgstr "Dar soporte a múltiples instrucciones de acumulador"
#: config/crx/crx.opt:28
-#, fuzzy
msgid "Do not use push to store function arguments"
-msgstr "No usa instrucciones push para guardar los argumentos de salida"
+msgstr "No usar push para guardar los argumentos de función"
#: config/crx/crx.opt:32
msgid "Restrict doloop to the given nesting level"
-msgstr ""
+msgstr "Restringir doloop para el nivel de anidamiento dado"
#: config/c4x/c4x.opt:24
msgid "Generate code for C30 CPU"
-msgstr "Genera código para el CPU C30"
+msgstr "Generar código para el CPU C30"
#: config/c4x/c4x.opt:28
msgid "Generate code for C31 CPU"
-msgstr "Genera código para el CPU C31"
+msgstr "Generar código para el CPU C31"
#: config/c4x/c4x.opt:32
msgid "Generate code for C32 CPU"
-msgstr "Genera código para el CPU C32"
+msgstr "Generar código para el CPU C32"
#: config/c4x/c4x.opt:36
msgid "Generate code for C33 CPU"
-msgstr "Genera código para el CPU C33"
+msgstr "Generar código para el CPU C33"
#: config/c4x/c4x.opt:40
msgid "Generate code for C40 CPU"
-msgstr "Genera código para el CPU C40"
+msgstr "Generar código para el CPU C40"
#: config/c4x/c4x.opt:44
msgid "Generate code for C44 CPU"
-msgstr "Genera código para el CPU C44"
+msgstr "Generar código para el CPU C44"
#: config/c4x/c4x.opt:48
msgid "Assume that pointers may be aliased"
-msgstr "Asume que se pueden hacer alias de los punteros"
+msgstr "Asumir que se pueden hacer alias de los punteros"
#: config/c4x/c4x.opt:52
msgid "Big memory model"
@@ -11504,28 +11282,27 @@ msgstr "Modelo de memoria big"
#: config/c4x/c4x.opt:56
msgid "Use the BK register as a general purpose register"
-msgstr "Usa el registro BK como un registro de propósito general"
+msgstr "Usar el registro BK como un registro de propósito general"
#: config/c4x/c4x.opt:60
-#, fuzzy
msgid "Generate code for CPU"
-msgstr "Genera código para el CPU C44"
+msgstr "Generar código para el CPU"
#: config/c4x/c4x.opt:64
msgid "Enable use of DB instruction"
-msgstr "Activa el uso de la instrucción DB"
+msgstr "Activar el uso de la instrucción DB"
#: config/c4x/c4x.opt:68
msgid "Enable debugging"
-msgstr "Activa la depuración"
+msgstr "Activar la depuración"
#: config/c4x/c4x.opt:72
msgid "Enable new features under development"
-msgstr "Activa nuevas características en desarrollo"
+msgstr "Activar nuevas características en desarrollo"
#: config/c4x/c4x.opt:76
msgid "Use fast but approximate float to integer conversion"
-msgstr "Usa conversión de coma flotante a entero rápida pero aproximada"
+msgstr "Usar conversión de coma flotante a entero rápida pero aproximada"
#: config/c4x/c4x.opt:80
msgid "Force RTL generation to emit valid 3 operand insns"
@@ -11537,48 +11314,47 @@ msgstr "Fuerza las constantes dentro de registros para mejorar el levantamiento"
#: config/c4x/c4x.opt:88 config/c4x/c4x.opt:112
msgid "Save DP across ISR in small memory model"
-msgstr "Guarda DP entre ISR en el modelo de memoria small"
+msgstr "Guardar DP entre ISR en el modelo de memoria small"
#: config/c4x/c4x.opt:92
msgid "Allow unsigned iteration counts for RPTB/DB"
-msgstr "Permite cuentas de iteración unsigned para RPTB/DB"
+msgstr "Permitir cuentas de iteración unsigned para RPTB/DB"
#: config/c4x/c4x.opt:96
msgid "Pass arguments on the stack"
-msgstr "Pasa los argumentos en la pila"
+msgstr "Pasar los argumentos en la pila"
#: config/c4x/c4x.opt:100
msgid "Use MPYI instruction for C3x"
-msgstr "Usa instrucción MPYI para C3x"
+msgstr "Usar instrucción MPYI para C3x"
#: config/c4x/c4x.opt:104
msgid "Enable parallel instructions"
-msgstr "Activa las funciones paralelas"
+msgstr "Activar las funciones paralelas"
#: config/c4x/c4x.opt:108
msgid "Enable MPY||ADD and MPY||SUB instructions"
-msgstr "Activa las instrucciones MPY||ADD y MPY||SUB"
+msgstr "Activar las instrucciones MPY||ADD y MPY||SUB"
#: config/c4x/c4x.opt:116
msgid "Preserve all 40 bits of FP reg across call"
-msgstr "Preserva los 40 bits del registro FP entre llamadas"
+msgstr "Preservar los 40 bits del registro FP entre llamadas"
#: config/c4x/c4x.opt:120
msgid "Pass arguments in registers"
-msgstr "Pasa los argumentos en los registros"
+msgstr "Pasar los argumentos en los registros"
#: config/c4x/c4x.opt:124
msgid "Enable use of RTPB instruction"
-msgstr "Activa el uso de la instrucción RTPB"
+msgstr "Activar el uso de la instrucción RTPB"
#: config/c4x/c4x.opt:128
msgid "Enable use of RTPS instruction"
-msgstr "Activa el uso de la instrucción RTPS"
+msgstr "Activar el uso de la instrucción RTPS"
#: config/c4x/c4x.opt:132
-#, fuzzy
msgid "Set the maximum number of iterations for RPTS to N"
-msgstr "Especifica el número máximo de iteraciones para RPTS"
+msgstr "Establecer el número máximo de iteraciones para RPTS a N"
#: config/c4x/c4x.opt:136
msgid "Small memory model"
@@ -11586,337 +11362,309 @@ msgstr "Modelo de memoria small"
#: config/c4x/c4x.opt:140
msgid "Emit code compatible with TI tools"
-msgstr "Emite código compatible con las herramientas TI"
+msgstr "Emitir código compatible con las herramientas TI"
#: config/pa/pa-hpux.opt:24
msgid "Generate cpp defines for server IO"
-msgstr "Genera definiciones cpp para ES de servidor"
+msgstr "Generar definiciones cpp para ES de servidor"
#: config/pa/pa-hpux.opt:28 config/pa/pa-hpux1010.opt:24
#: config/pa/pa-hpux1111.opt:24
-#, fuzzy
msgid "Specify UNIX standard for predefines and linking"
-msgstr ""
-"Especifica el estándar UNIX para las predefiniciones y enlazado.\n"
-"El valor con soporte es 93."
+msgstr "Especifica el estándar UNIX para las predefiniciones y enlazado"
#: config/pa/pa-hpux.opt:32
msgid "Generate cpp defines for workstation IO"
-msgstr "Genera definiciones cpp para ES de estación de trabajo"
+msgstr "Generar definiciones cpp para ES de estación de trabajo"
#: config/pa/pa.opt:24 config/pa/pa.opt:77 config/pa/pa.opt:85
msgid "Generate PA1.0 code"
-msgstr "Genera código PA1.0"
+msgstr "Generar código PA1.0"
#: config/pa/pa.opt:28 config/pa/pa.opt:89 config/pa/pa.opt:109
msgid "Generate PA1.1 code"
-msgstr "Genera código PA1.1"
+msgstr "Generar código PA1.1"
#: config/pa/pa.opt:32 config/pa/pa.opt:93
msgid "Generate PA2.0 code (requires binutils 2.10 or later)"
-msgstr "Genera código PA2.0 (requiere binutils 2.10 o superior)"
+msgstr "Generar código PA2.0 (requiere binutils 2.10 o superior)"
#: config/pa/pa.opt:36
msgid "Generate code for huge switch statements"
-msgstr "Genera código para declaraciones switch huge"
+msgstr "Generar código para declaraciones switch huge"
#: config/pa/pa.opt:40
msgid "Disable FP regs"
-msgstr "Desactiva los registros FP"
+msgstr "Desactivar los registros FP"
#: config/pa/pa.opt:44
msgid "Disable indexed addressing"
-msgstr "Desactiva direccionamiento indizado"
+msgstr "Desactivar direccionamiento indizado"
#: config/pa/pa.opt:48
msgid "Generate fast indirect calls"
-msgstr "Genera llamadas indirectas rápidas"
+msgstr "Generar llamadas indirectas rápidas"
#: config/pa/pa.opt:56
msgid "Assume code will be assembled by GAS"
-msgstr "Asume que el código será ensamblado por GAS"
+msgstr "Asumir que el código será ensamblado por GAS"
# config/pa/pa.h:236
#: config/pa/pa.opt:60
msgid "Put jumps in call delay slots"
-msgstr "Pone saltos en ranuras de retardo de llamadas"
+msgstr "Poner saltos en ranuras de retardo de llamadas"
#: config/pa/pa.opt:65
msgid "Enable linker optimizations"
-msgstr "Activa las optimizaciones del enlazador"
+msgstr "Activar las optimizaciones del enlazador"
#: config/pa/pa.opt:69
msgid "Always generate long calls"
-msgstr "Genera siempre llamadas long"
+msgstr "Generar siempre llamadas long"
#: config/pa/pa.opt:73
msgid "Emit long load/store sequences"
-msgstr "Emite secuencias load/store long"
+msgstr "Emitir secuencias load/store long"
#: config/pa/pa.opt:81
msgid "Disable space regs"
-msgstr "Desactiva registros de espacio"
+msgstr "Desactivar registros de espacio"
#: config/pa/pa.opt:97
msgid "Use portable calling conventions"
-msgstr "Usa convenciones de llamada transportable"
+msgstr "Usar convenciones de llamada transportable"
#: config/pa/pa.opt:101
-#, fuzzy
msgid "Specify CPU for scheduling purposes. Valid arguments are 700, 7100, 7100LC, 7200, 7300, and 8000"
-msgstr ""
-"opción -mschedule= desconocida (%s).\n"
-"Las opciones válidas son 700, 7100, 7100LC, 7200, 7300, y 8000\n"
+msgstr "Especificar el CPU por razones de calendarización. Los argumentos válidos son 700, 7100, 7100LC, 7200, 7300, y 8000"
#: config/pa/pa.opt:113
msgid "Do not disable space regs"
-msgstr "No desactiva registros de espacio"
+msgstr "No desactivar registros de espacio"
#: config/pa/pa64-hpux.opt:24
msgid "Assume code will be linked by GNU ld"
-msgstr "Asume que el código será enlazado por ld de GNU"
+msgstr "Asumir que el código será enlazado por ld de GNU"
#: config/pa/pa64-hpux.opt:28
msgid "Assume code will be linked by HP ld"
-msgstr "Asume que el código será enlazado por ld de HP"
+msgstr "Asumir que el código será enlazado por ld de HP"
#: config/xtensa/xtensa.opt:24
msgid "Use CONST16 instruction to load constants"
-msgstr "Usa CONST16 instrucciones push para cargar constantes"
+msgstr "Usar CONST16 instrucciones push para cargar constantes"
#: config/xtensa/xtensa.opt:28
msgid "Enable fused multiply/add and multiply/subtract FP instructions"
-msgstr "Activa las instrucciones FP multiply/add y multiply/substract de corto circuito"
+msgstr "Activar las instrucciones FP multiply/add y multiply/substract de corto circuito"
#: config/xtensa/xtensa.opt:32
msgid "Use indirect CALLXn instructions for large programs"
-msgstr "Usa instrucciones CALLXn indirectas para programas grandes"
+msgstr "Usar instrucciones CALLXn indirectas para programas grandes"
#: config/xtensa/xtensa.opt:36
msgid "Automatically align branch targets to reduce branch penalties"
-msgstr "Alínea automáticamente los objetivos de las ramificaciones para reducir las faltas de ramificación"
+msgstr "Alinear automáticamente los objetivos de las ramificaciones para reducir las faltas de ramificación"
#: config/xtensa/xtensa.opt:40
msgid "Intersperse literal pools with code in the text section"
-msgstr "Entremezcla los conjuntos de literales con código en la sección de texto"
+msgstr "Entremezclar los conjuntos de literales con código en la sección de texto"
#: config/stormy16/stormy16.opt:25
msgid "Provide libraries for the simulator"
-msgstr ""
+msgstr "Proveer bibliotecas para el simulador"
#: config/mips/mips.opt:24
-#, fuzzy
msgid "Generate code that conforms to the given ABI"
-msgstr "Genera código para el CPU dado"
+msgstr "Generar código que cumpla con la ABI dada"
#: config/mips/mips.opt:28
-#, fuzzy
msgid "Use SVR4-style PIC"
-msgstr "Usar PIC de OSF"
+msgstr "Usar PIC de estilo SVR4"
#: config/mips/mips.opt:32
-#, fuzzy
msgid "Use PMC-style 'mad' instructions"
-msgstr "Usa instrucciones de campos de bit"
+msgstr "Usa instrucciones 'mad' de estilo PMC"
#: config/mips/mips.opt:36
-#, fuzzy
msgid "Generate code for the given ISA"
-msgstr "Genera código para el CPU dado"
+msgstr "Genera código para el ISA dado"
#: config/mips/mips.opt:40
-#, fuzzy
msgid "Use Branch Likely instructions, overriding the architecture default"
-msgstr "Usa instrucciones Propensas a Ramificar, sobreponiendo el valor por defecto para la arquitectura"
+msgstr "Usa instrucciones Branch Likely, sobreponiendo el valor por defecto para la arquitectura"
#: config/mips/mips.opt:44
msgid "Trap on integer divide by zero"
-msgstr "Atrapa la división entera por cero"
+msgstr "Atrapar la división entera por cero"
#: config/mips/mips.opt:48
-#, fuzzy
msgid "Use branch-and-break sequences to check for integer divide by zero"
-msgstr "Interrumpe para revisar la división entera por cero"
+msgstr "Usar secuencias ramifica-y-para para revisar la división entera por cero"
#: config/mips/mips.opt:52
-#, fuzzy
msgid "Use trap instructions to check for integer divide by zero"
-msgstr "Atrapa para revisar la división entera por cero"
+msgstr "usar instrucciones trap para revisar la división entera por cero"
#: config/mips/mips.opt:56
msgid "Allow hardware floating-point instructions to cover both 32-bit and 64-bit operations"
-msgstr ""
+msgstr "Permitir que las instrucciones de coma flotante de hardware cubran tanto operaciones de 32-bit como de 64-bit"
#: config/mips/mips.opt:60
-#, fuzzy
msgid "Use MIPS-DSP instructions"
-msgstr "Usa instrucciones MIPS-3D"
+msgstr "Usar instrucciones MIPS-DSP"
#: config/mips/mips.opt:70
msgid "Use big-endian byte order"
-msgstr "Usa el orden de byte big-endian"
+msgstr "Usar el orden de byte big-endian"
#: config/mips/mips.opt:74
msgid "Use little-endian byte order"
-msgstr "Usa el orden de byte little-endian"
+msgstr "Usar el orden de byte little-endian"
#: config/mips/mips.opt:78 config/iq2000/iq2000.opt:32
msgid "Use ROM instead of RAM"
-msgstr "Usa la ROM en lugar de la RAM"
+msgstr "Usar la ROM en lugar de la RAM"
#: config/mips/mips.opt:82
msgid "Use NewABI-style %reloc() assembly operators"
-msgstr "Usa los operadores de ensamblador %reloc() del estilo NewABI"
+msgstr "Usar los operadores de ensamblador %reloc() del estilo NewABI"
#: config/mips/mips.opt:86
-#, fuzzy
msgid "Work around certain R4000 errata"
-msgstr "Evita errores de ciertos VR4120"
+msgstr "Evitar errores de ciertos R4000"
#: config/mips/mips.opt:90
-#, fuzzy
msgid "Work around certain R4400 errata"
-msgstr "Evita errores de ciertos VR4120"
+msgstr "Evitar errores de ciertos R4400"
#: config/mips/mips.opt:94
msgid "Work around errata for early SB-1 revision 2 cores"
-msgstr "Evita los errores para núcleos tempranos SB-1 revisión 2"
+msgstr "Evitar los errores para núcleos tempranos SB-1 revisión 2"
#: config/mips/mips.opt:98
msgid "Work around certain VR4120 errata"
-msgstr "Evita errores de ciertos VR4120"
+msgstr "Evitar errores de ciertos VR4120"
#: config/mips/mips.opt:102
msgid "Work around VR4130 mflo/mfhi errata"
-msgstr "Evita el error mflo/mfhi del VR4130"
+msgstr "Evitar el error mflo/mfhi del VR4130"
#: config/mips/mips.opt:106
-#, fuzzy
msgid "Work around an early 4300 hardware bug"
-msgstr "Evita el bug del primer hardware 4300"
+msgstr "Evitar el error de hardware de los primeros 4300"
#: config/mips/mips.opt:110
msgid "FP exceptions are enabled"
msgstr "Las excepciones FP están activadas"
#: config/mips/mips.opt:114
-#, fuzzy
msgid "Use 32-bit floating-point registers"
-msgstr "Usa registros generales de 32-bit"
+msgstr "Usar registros de coma flotante de 32-bit"
#: config/mips/mips.opt:118
-#, fuzzy
msgid "Use 64-bit floating-point registers"
-msgstr "Usa registros generales de 64-bit"
+msgstr "Usar registros de coma flotante de 64-bit"
#: config/mips/mips.opt:122
msgid "Use FUNC to flush the cache before calling stack trampolines"
-msgstr ""
+msgstr "Usar FUNC para vaciar el caché antes de llamar a los trampolines de pila"
#: config/mips/mips.opt:126
-#, fuzzy
msgid "Generate floating-point multiply-add instructions"
-msgstr "Genera instrucciones multiply/add de corto circuito"
+msgstr "Generar instrucciones multiply-add de coma flotante"
#: config/mips/mips.opt:130
msgid "Use 32-bit general registers"
-msgstr "Usa registros generales de 32-bit"
+msgstr "Usar registros generales de 32-bit"
#: config/mips/mips.opt:134
msgid "Use 64-bit general registers"
-msgstr "Usa registros generales de 64-bit"
+msgstr "Usar registros generales de 64-bit"
#: config/mips/mips.opt:138
-#, fuzzy
msgid "Allow the use of hardware floating-point instructions"
-msgstr "Usa instrucciones sencillas-apareadas de coma flotante"
+msgstr "Permitir el uso de instrucciones de coma flotante de hardware"
#: config/mips/mips.opt:142
-#, fuzzy
msgid "Generate code for ISA level N"
-msgstr "Genera código para as de Intel"
+msgstr "Generar código para ISA nivel N"
#: config/mips/mips.opt:146
msgid "Generate mips16 code"
-msgstr "Genera código mips16"
+msgstr "Generar código mips16"
#: config/mips/mips.opt:150
msgid "Use MIPS-3D instructions"
-msgstr "Usa instrucciones MIPS-3D"
+msgstr "Usar instrucciones MIPS-3D"
#: config/mips/mips.opt:154
msgid "Use indirect calls"
-msgstr "Usa llamadas indirectas"
+msgstr "Usar llamadas indirectas"
#: config/mips/mips.opt:158
-#, fuzzy
msgid "Use a 32-bit long type"
-msgstr "Usa tipo long de 32-bit"
+msgstr "Usar un tipo long de 32-bit"
#: config/mips/mips.opt:162
-#, fuzzy
msgid "Use a 64-bit long type"
-msgstr "Usa tipo long de 64-bit"
+msgstr "Usar un tipo long de 64-bit"
#: config/mips/mips.opt:166
msgid "Don't optimize block moves"
-msgstr "No optimiza los movimientos de bloques"
+msgstr "No optimizar los movimientos de bloques"
#: config/mips/mips.opt:170
-#, fuzzy
msgid "Use the mips-tfile postpass"
-msgstr "Usa el postpase asm mips-tfile"
+msgstr "Usar el postpase mips-tfile"
#: config/mips/mips.opt:174
msgid "Do not use a cache-flushing function before calling stack trampolines"
-msgstr ""
+msgstr "No usar una función que vacíe el caché antes de llamar los trampolines de pila"
#: config/mips/mips.opt:178
msgid "Generate normal-mode code"
-msgstr "Genera código normal-mode"
+msgstr "Generar código normal-mode"
#: config/mips/mips.opt:182
-#, fuzzy
msgid "Do not use MIPS-3D instructions"
-msgstr "Usa instrucciones MIPS-3D"
+msgstr "No usar instrucciones MIPS-3D"
#: config/mips/mips.opt:186
-#, fuzzy
msgid "Use paired-single floating-point instructions"
-msgstr "Usa instrucciones sencillas-apareadas de coma flotante"
+msgstr "Usar instrucciones apareadas-sencillas de coma flotante"
#: config/mips/mips.opt:190
msgid "Restrict the use of hardware floating-point instructions to 32-bit operations"
-msgstr ""
+msgstr "Restringir el uso de instrucciones de coma flotante de hardware para operaciones de 32-bit"
#: config/mips/mips.opt:194
-#, fuzzy
msgid "Prevent the use of all hardware floating-point instructions"
-msgstr "Usa instrucciones sencillas-apareadas de coma flotante"
+msgstr "Prevenir el uso de todas las instrucciones de coma flotante de hardware"
#: config/mips/mips.opt:198
msgid "Optimize lui/addiu address loads"
-msgstr "Optimiza las cargas de las direcciones lui/addiu"
+msgstr "Optimizar las cargas de las direcciones lui/addiu"
#: config/mips/mips.opt:202
msgid "Assume all symbols have 32-bit values"
-msgstr "Asume que todos los símbolos tienen valores de 32-bit"
+msgstr "Asumir que todos los símbolos tienen valores de 32-bit"
#: config/mips/mips.opt:206
msgid "Optimize the output for PROCESSOR"
-msgstr ""
+msgstr "Optimizar la salida para el PROCESADOR"
#: config/mips/mips.opt:210 config/iq2000/iq2000.opt:45
msgid "Put uninitialized constants in ROM (needs -membedded-data)"
-msgstr "Pone las constantes sin inicializar en ROM (necesita -membedded-data)"
+msgstr "Poner las constantes sin inicializar en ROM (necesita -membedded-data)"
#: config/mips/mips.opt:214
msgid "Perform VR4130-specific alignment optimizations"
-msgstr "Realiza optimizaciones de alineación específicas para VR4130"
+msgstr "Realizar optimizaciones de alineación específicas para VR4130"
#: config/mips/mips.opt:218
msgid "Lift restrictions on GOT size"
-msgstr "Levanta restricciones en el tamaño de GOT"
+msgstr "Levantar restricciones en el tamaño de GOT"
#: config/fr30/fr30.opt:24
msgid "Assume small address space"
@@ -11924,15 +11672,15 @@ msgstr "Asumiendo espacio de direcciones pequeño"
#: config/m68hc11/m68hc11.opt:24 config/m68hc11/m68hc11.opt:32
msgid "Compile for a 68HC11"
-msgstr "Compila para un 68HC11"
+msgstr "Compilar para un 68HC11"
#: config/m68hc11/m68hc11.opt:28 config/m68hc11/m68hc11.opt:36
msgid "Compile for a 68HC12"
-msgstr "Compila para un 68HC12"
+msgstr "Compilar para un 68HC12"
#: config/m68hc11/m68hc11.opt:42 config/m68hc11/m68hc11.opt:46
msgid "Compile for a 68HCS12"
-msgstr "Compila para un 68HCS12"
+msgstr "Compilar para un 68HCS12"
#: config/m68hc11/m68hc11.opt:50
msgid "Auto pre/post decrement increment allowed"
@@ -11944,7 +11692,7 @@ msgstr "Se permiten las instrucciones min/max"
#: config/m68hc11/m68hc11.opt:58
msgid "Use call and rtc for function calls and returns"
-msgstr "Usa call y rtc para llamadas y devoluciones de función"
+msgstr "Usar call y rtc para llamadas y devoluciones de función"
#: config/m68hc11/m68hc11.opt:62
msgid "Auto pre/post decrement increment not allowed"
@@ -11952,7 +11700,7 @@ msgstr "No se permite el auto pre/post decremento incremento"
#: config/m68hc11/m68hc11.opt:66
msgid "Use jsr and rts for function calls and returns"
-msgstr "Usa jsr y rts para llamadas y devoluciones de función"
+msgstr "Usar jsr y rts para llamadas y devoluciones de función"
#: config/m68hc11/m68hc11.opt:70
msgid "Min/max instructions not allowed"
@@ -11962,53 +11710,49 @@ msgstr "No se permiten las instrucciones min/max"
# ocurre en este momento una mejor traducción. cfuga
#: config/m68hc11/m68hc11.opt:74
msgid "Use direct addressing mode for soft registers"
-msgstr "Usa el modo de direccionamiento directo para los registros suaves"
+msgstr "Usar el modo de direccionamiento directo para los registros suaves"
#: config/m68hc11/m68hc11.opt:78
msgid "Compile with 32-bit integer mode"
-msgstr "Compila con el modo entero de 32-bit"
+msgstr "Compilar con el modo entero de 32-bit"
#: config/m68hc11/m68hc11.opt:83
msgid "Specify the register allocation order"
-msgstr "Especifica el orden de asignación de registros"
+msgstr "Especificar el orden de asignación de registros"
# Ya sé que "soft" se refiere a un tipo de dato no fijo, pero no se me
# ocurre en este momento una mejor traducción. cfuga
#: config/m68hc11/m68hc11.opt:87
msgid "Do not use direct addressing mode for soft registers"
-msgstr "No usa el modo de direccionamiento directo para los registros suaves"
+msgstr "No usar el modo de direccionamiento directo para los registros suaves"
#: config/m68hc11/m68hc11.opt:91
msgid "Compile with 16-bit integer mode"
-msgstr "Compila con el modo entero de 16-bit"
+msgstr "Compilar con el modo entero de 16-bit"
#: config/m68hc11/m68hc11.opt:95
msgid "Indicate the number of soft registers available"
-msgstr "Indica el número de registros suaves disponibles"
+msgstr "Indicar el número de registros suaves disponibles"
#: config/vax/vax.opt:24 config/vax/vax.opt:28
msgid "Target DFLOAT double precision code"
-msgstr ""
+msgstr "Apuntar a código DFLOAT de doble precisión"
#: config/vax/vax.opt:32 config/vax/vax.opt:36
-#, fuzzy
msgid "Generate GFLOAT double precision code"
-msgstr "Genera código little endian"
+msgstr "Generar código GFLOAT de doble precisión"
#: config/vax/vax.opt:40
-#, fuzzy
msgid "Generate code for GNU assembler (gas)"
-msgstr "Genera código para as de GNU"
+msgstr "Generar código para el ensamblador de GNU (gas)"
#: config/vax/vax.opt:44
-#, fuzzy
msgid "Generate code for UNIX assembler"
-msgstr "Genera código para as de GNU"
+msgstr "Generar código para el ensamblador UNIX"
#: config/vax/vax.opt:48
-#, fuzzy
msgid "Use VAXC structure conventions"
-msgstr "Usa convenciones de llamada transportable"
+msgstr "Usa convenciones de estructura VAXC"
#: config/cris/linux.opt:28
msgid "Together with -fpic and -fPIC, do not use GOTPLT references"
@@ -12016,141 +11760,140 @@ msgstr "Junto con -fpic y -fPIC, no utilizar referencias GOTPLT"
#: config/cris/cris.opt:46
msgid "Work around bug in multiplication instruction"
-msgstr "Evita el bicho en la instrucción de multiplicación"
+msgstr "Evitar el bicho en la instrucción de multiplicación"
#: config/cris/cris.opt:52
msgid "Compile for ETRAX 4 (CRIS v3)"
-msgstr "Compila para ETRAX 4 (CRIS v3)"
+msgstr "Compilar para ETRAX 4 (CRIS v3)"
#: config/cris/cris.opt:57
msgid "Compile for ETRAX 100 (CRIS v8)"
-msgstr "Compila para ETRAX 100 (CRIS v8)"
+msgstr "Compilar para ETRAX 100 (CRIS v8)"
#: config/cris/cris.opt:65
msgid "Emit verbose debug information in assembly code"
-msgstr "Emite información de depuración detallada en el código ensamblador"
+msgstr "Emitir información de depuración detallada en el código ensamblador"
#: config/cris/cris.opt:72
msgid "Do not use condition codes from normal instructions"
-msgstr "No usa códigos de condición para las instrucciones normales"
+msgstr "No usar códigos de condición para las instrucciones normales"
#: config/cris/cris.opt:81
msgid "Do not emit addressing modes with side-effect assignment"
-msgstr "No emite modos de direccionamiento con asignaciones colaterales"
+msgstr "No emitir modos de direccionamiento con asignaciones colaterales"
#: config/cris/cris.opt:90
msgid "Do not tune stack alignment"
-msgstr "No ajusta la alineación de la pila"
+msgstr "No ajustar la alineación de la pila"
#: config/cris/cris.opt:99
msgid "Do not tune writable data alignment"
-msgstr "No ajusta la alineación de los datos modificables"
+msgstr "No ajustar la alineación de los datos modificables"
#: config/cris/cris.opt:108
msgid "Do not tune code and read-only data alignment"
-msgstr "No ajusta la alineación del código y de datos de sólo lectura"
+msgstr "No ajustar la alineación del código y de datos de sólo lectura"
#: config/cris/cris.opt:117
msgid "Align code and data to 32 bits"
-msgstr "Alínea código y datos a 32 bits"
+msgstr "Alinear código y datos a 32 bits"
#: config/cris/cris.opt:134
msgid "Don't align items in code or data"
-msgstr "No alínea elementos en el código o los datos"
+msgstr "No alinear elementos en el código o los datos"
#: config/cris/cris.opt:143
msgid "Do not emit function prologue or epilogue"
-msgstr "No emite prólogo o epílogo de funciones"
+msgstr "No emitir prólogo o epílogo de funciones"
#: config/cris/cris.opt:150
msgid "Use the most feature-enabling options allowed by other options"
-msgstr "Usa la mayor cantidad de características permitidas por otras opciones"
+msgstr "Usar la mayor cantidad de características permitidas por otras opciones"
#: config/cris/cris.opt:159
msgid "Override -mbest-lib-options"
-msgstr "Anula -mbest-lib-options"
+msgstr "Anular -mbest-lib-options"
#: config/cris/cris.opt:166
msgid "Generate code for the specified chip or CPU version"
-msgstr "Genera código para el chip especificado o la versión de CPU"
+msgstr "Generar código para el chip especificado o la versión de CPU"
#: config/cris/cris.opt:170
msgid "Tune alignment for the specified chip or CPU version"
-msgstr "Ajusta alineación para el chip especificado o la versión de CPU"
+msgstr "Ajustar alineación para el chip especificado o la versión de CPU"
#: config/cris/cris.opt:174
msgid "Warn when a stackframe is larger than the specified size"
-msgstr "Avisa cuando un marco de pila sea más grande que el tamaño especificado"
+msgstr "Avisar cuando un marco de pila sea más grande que el tamaño especificado"
#: config/cris/aout.opt:28
msgid "Compile for the MMU-less Etrax 100-based elinux system"
-msgstr "Compila para el sistema elinux Etrax basado en 100 sin MMU"
+msgstr "Compilar para el sistema elinux Etrax basado en 100 sin MMU"
#: config/cris/aout.opt:34
msgid "For elinux, request a specified stack-size for this program"
-msgstr "Para elinux, solicita un tamaño de pila especificado para este programa"
+msgstr "Para elinux, solicitar un tamaño de pila especificado para este programa"
#: config/h8300/h8300.opt:24
msgid "Generate H8S code"
-msgstr "Genera código H8S"
+msgstr "Generar código H8S"
#: config/h8300/h8300.opt:28
msgid "Generate H8SX code"
-msgstr "Genera código H8SX"
+msgstr "Generar código H8SX"
#: config/h8300/h8300.opt:32
msgid "Generate H8S/2600 code"
-msgstr "Genera código H8S/2600"
+msgstr "Generar código H8S/2600"
#: config/h8300/h8300.opt:36
msgid "Make integers 32 bits wide"
-msgstr "Hace enteros de 32 bits de anchura"
+msgstr "Hacer enteros de 32 bits de anchura"
#: config/h8300/h8300.opt:43
msgid "Use registers for argument passing"
-msgstr "Usa registros para paso de parámetros"
+msgstr "Usar registros para paso de parámetros"
#: config/h8300/h8300.opt:47
msgid "Consider access to byte sized memory slow"
-msgstr "Considera lento el acceso a la memoria de tamaño byte"
+msgstr "Considerar lento el acceso a la memoria de tamaño byte"
#: config/h8300/h8300.opt:51
msgid "Enable linker relaxing"
-msgstr "Activa el relajamiento del enlazador"
+msgstr "Activar el relajamiento del enlazador"
#: config/h8300/h8300.opt:55
msgid "Generate H8/300H code"
-msgstr "Genera código H8/300H"
+msgstr "Generar código H8/300H"
#: config/h8300/h8300.opt:59
msgid "Enable the normal mode"
-msgstr "Activa el modo normal"
+msgstr "Activar el modo normal"
#: config/h8300/h8300.opt:63
msgid "Use H8/300 alignment rules"
-msgstr "Usa reglas de alineación H8/300"
+msgstr "Usar reglas de alineación H8/300"
#: config/v850/v850.opt:24
-#, fuzzy
msgid "Use registers r2 and r5"
-msgstr "No usa los registros r2 y r5"
+msgstr "Usar los registros r2 y r5"
#: config/v850/v850.opt:28
msgid "Use 4 byte entries in switch tables"
-msgstr "Usa entradas de 4 byte en las tablas de switch"
+msgstr "Usar entradas de 4 byte en las tablas de switch"
# No me gusta mucho esta traducción. cfuga
#: config/v850/v850.opt:32
msgid "Enable backend debugging"
-msgstr "Habilita la depuración del extremo trasero"
+msgstr "Habilitar la depuración del extremo trasero"
#: config/v850/v850.opt:36
msgid "Do not use the callt instruction"
-msgstr "No usa la instrucción callt"
+msgstr "No usar la instrucción callt"
#: config/v850/v850.opt:40
msgid "Reuse r30 on a per function basis"
-msgstr "Reusa r30 basado por función"
+msgstr "Reusar r30 basado por función"
#: config/v850/v850.opt:44
msgid "Support Green Hills ABI"
@@ -12158,19 +11901,19 @@ msgstr "Soporte para el ABI Green Hills"
#: config/v850/v850.opt:48
msgid "Prohibit PC relative function calls"
-msgstr "Prohibe la llamada a funciones relativas al PC"
+msgstr "Prohibir la llamada a funciones relativas al PC"
#: config/v850/v850.opt:52
msgid "Use stubs for function prologues"
-msgstr "Usa cabos para los prólogos de función"
+msgstr "Usar cabos para los prólogos de función"
#: config/v850/v850.opt:56
msgid "Set the max size of data eligible for the SDA area"
-msgstr "Establece el tamaño máximo de datos elegibles para el área SDA"
+msgstr "Establecer el tamaño máximo de datos elegibles para el área SDA"
#: config/v850/v850.opt:60
msgid "Enable the use of the short load instructions"
-msgstr "Activa el uso de las instrucciones short load"
+msgstr "Activar el uso de las instrucciones short load"
#: config/v850/v850.opt:64
msgid "Same as: -mep -mprolog-function"
@@ -12178,7 +11921,7 @@ msgstr "Igual que: -mep -mprolog-function"
#: config/v850/v850.opt:68
msgid "Set the max size of data eligible for the TDA area"
-msgstr "Establece el tamaño máximo de datos elegibles para el área TDA"
+msgstr "Establecer el tamaño máximo de datos elegibles para el área TDA"
#: config/v850/v850.opt:72
msgid "Enforce strict alignment"
@@ -12186,149 +11929,143 @@ msgstr "Refuerza la alineación estricta"
#: config/v850/v850.opt:79
msgid "Compile for the v850 processor"
-msgstr "Compila para el procesador v850"
+msgstr "Compilar para el procesador v850"
#: config/v850/v850.opt:83
-#, fuzzy
msgid "Compile for the v850e processor"
-msgstr "Compila para el procesador v850"
+msgstr "Compilar para el procesador v850e"
#: config/v850/v850.opt:87
-#, fuzzy
msgid "Compile for the v850e1 processor"
-msgstr "Compila para el procesador v850"
+msgstr "Compilar para el procesador v850e1"
#: config/v850/v850.opt:91
msgid "Set the max size of data eligible for the ZDA area"
-msgstr "Establece el tamaño máximo de datos elegibles para el área ZDA"
+msgstr "Establecer el tamaño máximo de datos elegibles para el área ZDA"
#: config/mmix/mmix.opt:25
msgid "For intrinsics library: pass all parameters in registers"
-msgstr "Para la biblioteca de intrínsecos: pasa todos los parámetros en registros"
+msgstr "Para la biblioteca de intrínsecos: pasar todos los parámetros en registros"
#: config/mmix/mmix.opt:29
msgid "Use register stack for parameters and return value"
-msgstr "Usa la pila de registros para los parámetros y el valor de devolución"
+msgstr "Usar la pila de registros para los parámetros y el valor de devolución"
#: config/mmix/mmix.opt:33
msgid "Use call-clobbered registers for parameters and return value"
-msgstr "Usa registros de llamada alterada para los parámetros y el valor de devolución"
+msgstr "Usar registros de llamada alterada para los parámetros y el valor de devolución"
#: config/mmix/mmix.opt:38
msgid "Use epsilon-respecting floating point compare instructions"
-msgstr "Usa instrucciones de comparación de coma flotante que respeten epsilon"
+msgstr "Usar instrucciones de comparación de coma flotante que respeten epsilon"
#: config/mmix/mmix.opt:42
msgid "Use zero-extending memory loads, not sign-extending ones"
-msgstr "Usa cargas de memoria de extensión cero, no las de extensión con signo"
+msgstr "Usar cargas de memoria de extensión cero, no las de extensión con signo"
#: config/mmix/mmix.opt:46
msgid "Generate divide results with reminder having the same sign as the divisor (not the dividend)"
-msgstr "Genera resultados de división con residuo que tenga el mismo signo que el divisor (no el del dividendo)"
+msgstr "Generar resultados de división con residuo que tenga el mismo signo que el divisor (no el del dividendo)"
#: config/mmix/mmix.opt:50
msgid "Prepend global symbols with \":\" (for use with PREFIX)"
-msgstr "Precede a los símbolos globales con \":\" (para usarse con PREFIJO)"
+msgstr "Preceder a los símbolos globales con \":\" (para usarse con PREFIJO)"
#: config/mmix/mmix.opt:54
msgid "Do not provide a default start-address 0x100 of the program"
-msgstr "No provee una dirección de inicio por defecto 0x100 del programa"
+msgstr "No proveer una dirección de inicio por defecto 0x100 del programa"
#: config/mmix/mmix.opt:58
msgid "Link to emit program in ELF format (rather than mmo)"
-msgstr "Enlaza para emitir el programa en formato ELF (en lugar de mmo)"
+msgstr "Enlazar para emitir el programa en formato ELF (en lugar de mmo)"
#: config/mmix/mmix.opt:62
msgid "Use P-mnemonics for branches statically predicted as taken"
-msgstr "Usa Mnemónicos-P para ramificaciones predichas estáticamente como tomadas"
+msgstr "Usar Mnemónicos-P para ramificaciones predichas estáticamente como tomadas"
#: config/mmix/mmix.opt:66
msgid "Don't use P-mnemonics for branches"
-msgstr "No usa Mnemónicos-P para ramificaciones"
+msgstr "No usar Mnemónicos-P para ramificaciones"
#: config/mmix/mmix.opt:80
msgid "Use addresses that allocate global registers"
-msgstr "Usa direcciones que reserven registros globales"
+msgstr "Usar direcciones que reserven registros globales"
#: config/mmix/mmix.opt:84
msgid "Do not use addresses that allocate global registers"
-msgstr "No usa direcciones que reserven registros globales"
+msgstr "No usar direcciones que reserven registros globales"
#: config/mmix/mmix.opt:88
msgid "Generate a single exit point for each function"
-msgstr "Genera un sólo punto de salida para cada función"
+msgstr "Generar un sólo punto de salida para cada función"
#: config/mmix/mmix.opt:92
msgid "Do not generate a single exit point for each function"
-msgstr "No genera un sólo punto de salida para cada función"
+msgstr "No generar un sólo punto de salida para cada función"
#: config/mmix/mmix.opt:96
msgid "Set start-address of the program"
-msgstr "Establece la dirección de inicio del programa"
+msgstr "Establecer la dirección de inicio del programa"
#: config/mmix/mmix.opt:100
msgid "Set start-address of data"
-msgstr "Establece la dirección de inicio de los datos"
+msgstr "Establecer la dirección de inicio de los datos"
#: config/iq2000/iq2000.opt:28
msgid "Specify CPU for scheduling purposes"
-msgstr "Especifica el CPU para propósitos de calendarización"
+msgstr "Especificar el CPU para propósitos de calendarización"
#: config/iq2000/iq2000.opt:36
msgid "Use GP relative sdata/sbss sections"
-msgstr "Utiliza secciones sdata/sbss relativas a GP"
+msgstr "Utilizar secciones sdata/sbss relativas a GP"
#: config/iq2000/iq2000.opt:41
msgid "No default crt0.o"
msgstr "No está el crt0.o por defecto"
#: config/bfin/bfin.opt:24
-#, fuzzy
msgid "Omit frame pointer for leaf functions"
-msgstr "Omite el marco de referencia para las funciones hojas"
+msgstr "Omitir el marco de referencia para las funciones hojas"
#: config/bfin/bfin.opt:28
msgid "Program is entirely located in low 64k of memory"
-msgstr ""
+msgstr "El programa está ubicado por completo en la parte baja de 64k de memoria"
#: config/bfin/bfin.opt:32
msgid "Work around a hardware anomaly by adding a number of NOPs before a"
-msgstr ""
+msgstr "Evitar una anomalía de hardware agregando un número de NOPs antes de un"
#: config/bfin/bfin.opt:37
msgid "Avoid speculative loads to work around a hardware anomaly."
-msgstr ""
+msgstr "Evitar cargas especulativas para evitar una anomalía de hardware."
#: config/bfin/bfin.opt:41
-#, fuzzy
msgid "Enabled ID based shared library"
-msgstr "Activa la biblioteca compartida basada en ID"
+msgstr "Activar la biblioteca compartida basada en ID"
#: config/bfin/bfin.opt:49
msgid "Avoid generating pc-relative calls; use indirection"
-msgstr ""
+msgstr "Evitar la generación de llamadas relativas al pc; usar indirección"
#: config/vxworks.opt:25
-#, fuzzy
msgid "Assume the VxWorks RTP environment"
-msgstr "Asume el ambiente normal de ejecución C"
+msgstr "Asumir el ambiente RTP de VxWorks"
#: config/vxworks.opt:32
-#, fuzzy
msgid "Assume the VxWorks vThreads environment"
-msgstr "Asume el ambiente normal de ejecución C"
+msgstr "Asumir el ambiente vThreads de VxWorks"
#: config/darwin.opt:24
msgid "Generate code suitable for fast turn around debugging"
-msgstr "Genera código adecuado para vuelta rápida en la depuración"
+msgstr "Generar código adecuado para vuelta rápida en la depuración"
#: config/darwin.opt:28
msgid "The earliest MacOS X version on which this program will run"
-msgstr ""
+msgstr "La versión más temprana de MacOS X en la cual este programa se ejecutará"
#: config/darwin.opt:32
msgid "Set sizeof(bool) to 1"
-msgstr "Establece sizeof(bool) a 1"
+msgstr "Establecer sizeof(bool) a 1"
#: config/lynx.opt:24
msgid "Support legacy multi-threading"
@@ -12336,43 +12073,39 @@ msgstr "Soporte para multihilos antiguo"
#: config/lynx.opt:28
msgid "Use shared libraries"
-msgstr "Usa bibliotecas compartidas"
+msgstr "Usar bibliotecas compartidas"
#: config/lynx.opt:32
msgid "Support multi-threading"
msgstr "Soporte para multihilos"
#: c.opt:42
-#, fuzzy
msgid "Assert the <answer> to <question>. Putting '-' before <question> disables the <answer> to <question>"
-msgstr "-A<pregunta>=<resp>\tRelaciona la <resp>uesta a la <pregunta>. Al colocar '-' antes de la <pregunta> desactiva la <resp>uesta a la <pregunta>"
+msgstr "Relacionar la <resp>uesta a la <pregunta>. Al colocar '-' antes de la <pregunta> desactiva la <resp>uesta a la <pregunta>"
#: c.opt:46
msgid "Do not discard comments"
-msgstr "No descarta comentarios"
+msgstr "No descartar comentarios"
#: c.opt:50
msgid "Do not discard comments in macro expansions"
-msgstr "No descarta comentarios en expansiones de macro"
+msgstr "No descartar comentarios en expansiones de macro"
#: c.opt:54
-#, fuzzy
msgid "Define a <macro> with <val> as its value. If just <macro> is given, <val> is taken to be 1"
-msgstr "-D<macro>[=<val>]\tDefine una <macro> con <val> como su valor. Si sólo se da la <macro>, <val> se toma como 1"
+msgstr "Definir una <macro> con <val> como su valor. Si sólo se da la <macro>, <val> se toma como 1"
#: c.opt:61
-#, fuzzy
msgid "Add <dir> to the end of the main framework include path"
-msgstr "-F <dir>\tAgrega el <dir>ectorio al final de la ruta de inclusión del marco de trabajo principal"
+msgstr "Agregar el <dir>ectorio al final de la ruta de inclusión del marco de trabajo principal"
#: c.opt:65
msgid "Print the name of header files as they are used"
-msgstr "Muestra los nombres de los ficheros de encabezado mientras se utilizan"
+msgstr "Mostrar los nombres de los ficheros de encabezado mientras se utilizan"
#: c.opt:69 c.opt:782
-#, fuzzy
msgid "Add <dir> to the end of the main include path"
-msgstr "-I <dir>\tAgrega el <dir>ectorio al final de la ruta de inclusión principal"
+msgstr "Agregar el <dir>ectorio al final de la ruta de inclusión principal"
#: c.opt:73
msgid "Generate make dependencies"
@@ -12380,16 +12113,15 @@ msgstr "Generar dependencias de make"
#: c.opt:77
msgid "Generate make dependencies and compile"
-msgstr "Genera dependencias de make y compilar"
+msgstr "Generar dependencias de make y compilar"
#: c.opt:81
-#, fuzzy
msgid "Write dependency output to the given file"
-msgstr "-MF <fichero>\tEscribir la salida de dependencias al fichero dado"
+msgstr "Escribir la salida de dependencias al fichero dado"
#: c.opt:85
msgid "Treat missing header files as generated files"
-msgstr "Trata los ficheros de encabezado faltantes como ficheros generados"
+msgstr "Tratar los ficheros de encabezado faltantes como ficheros generados"
#: c.opt:89
msgid "Like -M but ignore system header files"
@@ -12404,27 +12136,24 @@ msgid "Generate phony targets for all headers"
msgstr "Generar objetivos de prueba para todos los encabezados"
#: c.opt:101
-#, fuzzy
msgid "Add a MAKE-quoted target"
-msgstr "-MQ <objetivo>\tAgrega un objetivo tipo-MAKE"
+msgstr "Agregar un objetivo tipo-MAKE"
#: c.opt:105
-#, fuzzy
msgid "Add an unquoted target"
-msgstr "-MT <objetivo>\tAgregar un objetivo no citado"
+msgstr "Agregar un objetivo no citado"
#: c.opt:109
msgid "Do not generate #line directives"
-msgstr "No genera directivas #line"
+msgstr "No generar directivas #line"
#: c.opt:113
-#, fuzzy
msgid "Undefine <macro>"
-msgstr "-U<macro>\tIndefine la <macro>"
+msgstr "Borrar la definición de <macro>"
#: c.opt:117
msgid "Warn about things that will change when compiling with an ABI-compliant compiler"
-msgstr "Avisa sobre cosas que cambiarán cuando se compile con un compilador que cumpla con la ABI"
+msgstr "Avisar sobre cosas que cambiarán cuando se compile con un compilador que cumpla con la ABI"
#: c.opt:121
msgid "Enable most warning messages"
@@ -12432,27 +12161,27 @@ msgstr "Activar casi todos los mensajes de aviso"
#: c.opt:125
msgid "Warn whenever an Objective-C assignment is being intercepted by the garbage collector"
-msgstr ""
+msgstr "Avisar cuando se intercepte una asignación Objective-C por el recolector de basura"
#: c.opt:129
msgid "Warn about casting functions to incompatible types"
-msgstr "Avisa por funciones de conversión a tipos incompatibles"
+msgstr "Avisar por funciones de conversión a tipos incompatibles"
#: c.opt:133
msgid "Warn about C constructs that are not in the common subset of C and C++"
-msgstr ""
+msgstr "Avisar sobre construcciones C que no están en el subconjunto común de C y C++"
#: c.opt:138
msgid "Warn about casts which discard qualifiers"
-msgstr "Avisa sobre conversiones que descartan calificadores"
+msgstr "Avisar sobre conversiones que descartan calificadores"
#: c.opt:142
msgid "Warn about subscripts whose type is \"char\""
-msgstr "Avisa sobre subíndices cuyo tipo es \"char\""
+msgstr "Avisar sobre subíndices cuyo tipo es \"char\""
#: c.opt:146
msgid "Warn about possibly nested block comments, and C++ comments spanning more than one physical line"
-msgstr "Avisa sobre la posibilidad de bloques de comentarios anidados, y comentarios de C++ que abarquen más de una línea física"
+msgstr "Avisar sobre la posibilidad de bloques de comentarios anidados, y comentarios de C++ que abarquen más de una línea física"
#: c.opt:150
msgid "Synonym for -Wcomment"
@@ -12460,343 +12189,331 @@ msgstr "Sinónimo de -Wcomment"
#: c.opt:154
msgid "Warn about possibly confusing type conversions"
-msgstr "Avisa sobre la posibilidad de conversión de tipos confusas"
+msgstr "Avisar sobre la posibilidad de conversión de tipos confusas"
#: c.opt:158
msgid "Warn when all constructors and destructors are private"
-msgstr "Avisa cuando todos los constructores y destructores son privados"
+msgstr "Avisar cuando todos los constructores y destructores son privados"
#: c.opt:162
msgid "Warn when a declaration is found after a statement"
-msgstr "Avisa cuando se encuentra una declaración después de una declaración"
+msgstr "Avisar cuando se encuentra una declaración después de una declaración"
#: c.opt:166
msgid "Warn about deprecated compiler features"
-msgstr "Avisa si se usan opciones de compilador obsoletas"
+msgstr "Avisar si se usan opciones de compilador obsoletas"
#: c.opt:170
msgid "Warn about compile-time integer division by zero"
-msgstr "Avisa sobre la división entera por cero en tiempo de compilación"
+msgstr "Avisar sobre la división entera por cero en tiempo de compilación"
#: c.opt:174
msgid "Warn about violations of Effective C++ style rules"
-msgstr "Avisa violaciones de reglas de estilo de Effective C++"
+msgstr "Avisar violaciones de reglas de estilo de Effective C++"
#: c.opt:178
msgid "Warn about stray tokens after #elif and #endif"
-msgstr "Avisa sobre elementos sobrantes después de #elif y #endif"
+msgstr "Avisar sobre elementos sobrantes después de #elif y #endif"
#: c.opt:186
msgid "Make implicit function declarations an error"
-msgstr "Hace que la declaración implícita de funciones sea un error"
+msgstr "Hacer que la declaración implícita de funciones sea un error"
#: c.opt:190
msgid "Warn if testing floating point numbers for equality"
-msgstr "Avisa si se prueban números de coma flotante para equidad"
+msgstr "Avisar si se prueban números de coma flotante para equidad"
#: c.opt:194
msgid "Warn about printf/scanf/strftime/strfmon format string anomalies"
-msgstr "Avisa sobre anomalías de cadena de formato de printf/scanf/strftime/strfmon"
+msgstr "Avisar sobre anomalías de cadena de formato de printf/scanf/strftime/strfmon"
#: c.opt:198
msgid "Warn if passing too many arguments to a function for its format string"
-msgstr "Avisa si se pasan demasiados argumentos a una función para su cadena de formato"
+msgstr "Avisar si se pasan demasiados argumentos a una función para su cadena de formato"
#: c.opt:202
msgid "Warn about format strings that are not literals"
-msgstr "Avisa sobre el uso de cadenas de formato que no son literales"
+msgstr "Avisar sobre el uso de cadenas de formato que no son literales"
#: c.opt:206
msgid "Warn about possible security problems with format functions"
-msgstr "Avisa sobre posibles problemas de seguridad con funciones de formato"
+msgstr "Avisar sobre posibles problemas de seguridad con funciones de formato"
#: c.opt:210
msgid "Warn about strftime formats yielding 2-digit years"
-msgstr "Avisa sobre formatos de strftime que producen dos dígitos para el año"
+msgstr "Avisar sobre formatos de strftime que producen dos dígitos para el año"
#: c.opt:214
msgid "Warn about zero-length formats"
-msgstr "Avisa sobre formatos de longitud cero"
+msgstr "Avisar sobre formatos de longitud cero"
#: c.opt:221
-#, fuzzy
msgid "Warn about variables which are initialized to themselves"
-msgstr "Avisa sobre variables que se inicialicen ellas mismas."
+msgstr "Avisar sobre variables que se inicialicen ellas mismas"
#: c.opt:228
msgid "Warn about implicit function declarations"
-msgstr "Avisa sobre la declaración implícita de funciones"
+msgstr "Avisar sobre la declaración implícita de funciones"
#: c.opt:232
msgid "Warn when a declaration does not specify a type"
-msgstr "Avisa cuando una declaración no especifique un tipo"
+msgstr "Avisar cuando una declaración no especifique un tipo"
#: c.opt:236
-#, fuzzy
msgid "Deprecated. This switch has no effect"
-msgstr "Obsoleto. Esta opción no tiene efecto."
+msgstr "Obsoleto. Esta opción no tiene efecto"
#: c.opt:240
-#, fuzzy
msgid "Warn when there is a cast to a pointer from an integer of a different size"
-msgstr "conversión a puntero desde un entero de tamaño diferente"
+msgstr "Avisar cuando hay una conversión a puntero desde un entero de tamaño diferente"
#: c.opt:244
msgid "Warn about invalid uses of the \"offsetof\" macro"
-msgstr "Avisa sobre usos inválidos de la macro \"offsetof\""
+msgstr "Avisar sobre usos inválidos de la macro \"offsetof\""
#: c.opt:248
msgid "Warn about PCH files that are found but not used"
-msgstr "Avisa sobre ficheros PCH que se encuentran pero no se usan"
+msgstr "Avisar sobre ficheros PCH que se encuentran pero no se usan"
#: c.opt:252
msgid "Do not warn about using \"long long\" when -pedantic"
-msgstr "No avisa sobre el uso de \"long long\" cuando se use -pedantic"
+msgstr "No avisar sobre el uso de \"long long\" cuando se use -pedantic"
#: c.opt:256
msgid "Warn about suspicious declarations of \"main\""
-msgstr "Avisa sobre declaraciones sospechosas de \"main\""
+msgstr "Avisar sobre declaraciones sospechosas de \"main\""
#: c.opt:260
msgid "Warn about possibly missing braces around initializers"
-msgstr "Avisa sobre posibles llaves faltantes alrededor de los inicializadores"
+msgstr "Avisar sobre posibles llaves faltantes alrededor de los inicializadores"
#: c.opt:264
msgid "Warn about global functions without previous declarations"
-msgstr "Avisa sobre funciones globales sin declaraciones previas"
+msgstr "Avisar sobre funciones globales sin declaraciones previas"
#: c.opt:268
msgid "Warn about missing fields in struct initializers"
-msgstr "Avisa sobre campos faltantes en los inicializadores de struct"
+msgstr "Avisar sobre campos faltantes en los inicializadores de struct"
#: c.opt:272
msgid "Warn about functions which might be candidates for format attributes"
-msgstr "Avisa por funciones que pueden ser candidatas para atributos de formato"
+msgstr "Avisar por funciones que pueden ser candidatas para atributos de formato"
#: c.opt:276
msgid "Warn about user-specified include directories that do not exist"
-msgstr "Avisa sobre directorios de inclusión definidos por el usuario que no existen"
+msgstr "Avisar sobre directorios de inclusión definidos por el usuario que no existen"
#: c.opt:280
msgid "Warn about global functions without prototypes"
-msgstr "Avisa sobre funciones globales sin prototipos"
+msgstr "Avisar sobre funciones globales sin prototipos"
#: c.opt:284
msgid "Warn about use of multi-character character constants"
-msgstr "Avisa sobre el uso de constantes de carácter multicaracteres"
+msgstr "Avisar sobre el uso de constantes de carácter multicaracteres"
#: c.opt:288
msgid "Warn about \"extern\" declarations not at file scope"
-msgstr "Avisa sobre declaraciones \"extern\" que no están en el ámbito del fichero"
+msgstr "Avisar sobre declaraciones \"extern\" que no están en el ámbito del fichero"
#: c.opt:292
msgid "Warn when non-templatized friend functions are declared within a template"
-msgstr "Avisa cuando las funciones friend sin plantillas se declaran dentro de una plantilla"
+msgstr "Avisar cuando las funciones friend sin plantillas se declaran dentro de una plantilla"
#: c.opt:296
msgid "Warn about non-virtual destructors"
-msgstr "Avisa sobre destructores no virtuales"
+msgstr "Avisar sobre destructores no virtuales"
#: c.opt:300
msgid "Warn about NULL being passed to argument slots marked as requiring non-NULL"
-msgstr "Avisa sobre el paso de NULL a ranuras de argumento marcadas que requieren no-NULL"
+msgstr "Avisar sobre el paso de NULL a ranuras de argumento marcadas que requieren no-NULL"
#: c.opt:304
-#, fuzzy
msgid "Warn about non-normalised Unicode strings"
-msgstr "Avisar sobre cadenas de formato que no son cadenas literales"
+msgstr "Avisar sobre cadenas Unicode no normalizadas"
#: c.opt:308
msgid "Warn if a C-style cast is used in a program"
-msgstr "Avisa si se usa una conversión de estilo C en un programa"
+msgstr "Avisar si se usa una conversión de estilo C en un programa"
#: c.opt:312
msgid "Warn if an old-style parameter definition is used"
-msgstr "Avisa si se usa un parámetro de estilo antiguo en una definición"
+msgstr "Avisar si se usa un parámetro de estilo antiguo en una definición"
#: c.opt:316
msgid "Warn about overloaded virtual function names"
-msgstr "Avisa sobre nombres de funciones virtual sobrecargadas"
+msgstr "Avisar sobre nombres de funciones virtual sobrecargadas"
#: c.opt:320
msgid "Warn about possibly missing parentheses"
-msgstr "Avisa sobre posibles paréntesis faltantes"
+msgstr "Avisar sobre posibles paréntesis faltantes"
#: c.opt:324
msgid "Warn when converting the type of pointers to member functions"
-msgstr "Avisa cuando se convierte el tipo de punteros sobre punteros a funciones miembro"
+msgstr "Avisar cuando se convierte el tipo de punteros sobre punteros a funciones miembro"
#: c.opt:328
msgid "Warn about function pointer arithmetic"
-msgstr "Avisa sobre la aritmética de punteros de funciones"
+msgstr "Avisar sobre la aritmética de punteros de funciones"
#: c.opt:332
-#, fuzzy
msgid "Warn when a pointer is cast to an integer of a different size"
-msgstr "conversión de puntero a entero de tamaño diferente"
+msgstr "Avisar cuando hay una conversión de puntero a entero de tamaño diferente"
#: c.opt:336
-#, fuzzy
msgid "Warn about misuses of pragmas"
-msgstr "Avisa sobre pragmas no reconocidos"
+msgstr "Avisar sobre malusos de pragmas"
#: c.opt:340
msgid "Warn if inherited methods are unimplemented"
-msgstr "Avisa si los métodos heredados no están implementados"
+msgstr "Avisar si los métodos heredados no están implementados"
#: c.opt:344
msgid "Warn about multiple declarations of the same object"
-msgstr "Avisa sobre declaraciones múltiples del mismo objeto"
+msgstr "Avisar sobre declaraciones múltiples del mismo objeto"
#: c.opt:348
msgid "Warn when the compiler reorders code"
-msgstr "Avisa cuando el compilador reordene código"
+msgstr "Avisar cuando el compilador reordene código"
#: c.opt:352
msgid "Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)"
-msgstr "Avisa cuando el tipo de devolución por defecto de una función cambia a \"int\" (C), o sobre tipos de devolución inconsistentes (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++)"
#: c.opt:356
msgid "Warn if a selector has multiple methods"
-msgstr "Avisa si un selector tiene métodos múltiples"
+msgstr "Avisar si un selector tiene métodos múltiples"
#: c.opt:360
msgid "Warn about possible violations of sequence point rules"
-msgstr "Avisa sobre posibles violaciones a las reglas de secuencia de punto"
+msgstr "Avisar sobre posibles violaciones a las reglas de secuencia de punto"
#: c.opt:364
msgid "Warn about signed-unsigned comparisons"
-msgstr "Avisa sobre comparaciones signed-unsigned"
+msgstr "Avisar sobre comparaciones signed-unsigned"
#: c.opt:368
msgid "Warn when overload promotes from unsigned to signed"
-msgstr "Avisa cuando la sobrecarga promueva de unsigned a signed"
+msgstr "Avisar cuando la sobrecarga promueva de unsigned a signed"
#: c.opt:372
msgid "Warn about uncasted NULL used as sentinel"
-msgstr "Avisa sobre NULL sin conversión usado como sentinela"
+msgstr "Avisar sobre NULL sin conversión usado como sentinela"
#: c.opt:376
msgid "Warn about unprototyped function declarations"
-msgstr "Avisa sobre declaraciones de función sin prototipo"
+msgstr "Avisar sobre declaraciones de función sin prototipo"
#: c.opt:380
msgid "Warn if type signatures of candidate methods do not match exactly"
-msgstr ""
+msgstr "Avisar si los firmas de tipo de los métodos candidatos no coinciden exactamente"
#: c.opt:384
msgid "Warn when synthesis behavior differs from Cfront"
-msgstr "Avisa cuando el comportamiento de síntesis difiera de Cfront"
+msgstr "Avisar cuando el comportamiento de síntesis difiera de Cfront"
#: c.opt:388 common.opt:142
msgid "Do not suppress warnings from system headers"
-msgstr "No suprime los avisos de los encabezados del sistema"
+msgstr "No suprimir los avisos de los encabezados del sistema"
#: c.opt:392
msgid "Warn about features not present in traditional C"
-msgstr "Avisa sobre características no presentes en C tradicional"
+msgstr "Avisar sobre características no presentes en C tradicional"
#: c.opt:396
msgid "Warn if trigraphs are encountered that might affect the meaning of the program"
-msgstr "Avisa si se encuentran trigrafos que puedan afectar el significado del programa"
+msgstr "Avisar si se encuentran trigrafos que puedan afectar el significado del programa"
#: c.opt:400
msgid "Warn about @selector()s without previously declared methods"
-msgstr "Avisa sobre @selector()es sin métodos declarados previamente"
+msgstr "Avisar sobre @selector()es sin métodos declarados previamente"
#: c.opt:404
msgid "Warn if an undefined macro is used in an #if directive"
-msgstr "Avisa si se usa una macro indefinida en una directiva #if"
+msgstr "Avisar si se usa una macro indefinida en una directiva #if"
#: c.opt:408
msgid "Warn about unrecognized pragmas"
-msgstr "Avisa sobre pragmas no reconocidos"
+msgstr "Avisar sobre pragmas no reconocidos"
#: c.opt:412
msgid "Warn about macros defined in the main file that are not used"
-msgstr "Avisa sobre macros definidas en el fichero principal que no se usan"
+msgstr "Avisar sobre macros definidas en el fichero principal que no se usan"
#: c.opt:416
msgid "Do not warn about using variadic macros when -pedantic"
-msgstr "No avisa sobre el uso de macros variadic cuando se use -pedantic"
+msgstr "No avisar sobre el uso de macros variadic cuando se use -pedantic"
#: c.opt:420
msgid "Give strings the type \"array of char\""
-msgstr "Da a las cadenas el tipo \"matriz de char\""
+msgstr "Dar a las cadenas el tipo \"matriz de char\""
#: c.opt:424
-#, fuzzy
msgid "Warn when a pointer differs in signedness in an assignment"
-msgstr "Avisa cuando un puntero difiere en signo en una asignación."
+msgstr "Avisar cuando un puntero difiere en signo en una asignación"
#: c.opt:428
-#, fuzzy
msgid "A synonym for -std=c89 (for C) or -std=c++98 (for C++)"
-msgstr "Un sinónimo para -std=c89 (para C) o -std=c++98 (para C++)."
+msgstr "Un sinónimo para -std=c89 (para C) o -std=c++98 (para C++)"
#: c.opt:436
msgid "Enforce class member access control semantics"
-msgstr "Cumple las semánticas de control de acceso de miembros de clase"
+msgstr "Cumplir las semánticas de control de acceso de miembros de clase"
#: c.opt:443
msgid "Change when template instances are emitted"
-msgstr "Cambia cuando se emitan las instancias de la plantilla"
+msgstr "Cambiar cuando se emitan las instancias de la plantilla"
#: c.opt:447
msgid "Recognize the \"asm\" keyword"
-msgstr "Reconoce la palabra clave \"asm\""
+msgstr "Reconocer la palabra clave \"asm\""
#: c.opt:451
msgid "Recognize built-in functions"
-msgstr "Reconoce funciones internas"
+msgstr "Reconocer funciones internas"
#: c.opt:458
msgid "Check the return value of new"
-msgstr "Revisa el valor de devolución de new"
+msgstr "Revisar el valor de devolución de new"
#: c.opt:462
msgid "Allow the arguments of the '?' operator to have different types"
-msgstr "Permite que los argumentos del operador '?' tengan tipos diferentes"
+msgstr "Permitir que los argumentos del operador '?' tengan tipos diferentes"
#: c.opt:466
msgid "Reduce the size of object files"
-msgstr "Reduce el tamaño de los ficheros objeto"
+msgstr "Reducir el tamaño de los ficheros objeto"
#: c.opt:470
msgid "Make string literals \"const char[]\" not \"char[]\""
-msgstr "Hace que las cadenas literales sean \"const char[]\" en lugar de \"char[]\""
+msgstr "Hacer que las cadenas literales sean \"const char[]\" en lugar de \"char[]\""
#: c.opt:474
-#, fuzzy
msgid "Use class <name> for constant strings"
-msgstr "-fconst-string-class=<nombre>\tUsa la clase <nombre> para cadenas constantes"
+msgstr "Usar la clase <nombre> para cadenas constantes"
#: c.opt:478
msgid "Inline member functions by default"
-msgstr "Hace inline por defecto a las funciones miembro"
+msgstr "Hacer inline por defecto a las funciones miembro"
#: c.opt:482
msgid "Permit '$' as an identifier character"
-msgstr "Permite '$' como un identificador de carácter"
+msgstr "Permitir '$' como un identificador de carácter"
#: c.opt:489
msgid "Generate code to check exception specifications"
-msgstr "Genera código para revisar excepciones de especificaciones"
+msgstr "Generar código para revisar excepciones de especificaciones"
#: c.opt:496
-#, fuzzy
msgid "Convert all strings and character constants to character set <cset>"
-msgstr "-fexec-charset=<cset>\tConvierte todas las constantes de cadenas y carácter al conjunto de caracteres <cset>"
+msgstr "Convertir todas las constantes de cadenas y carácter al conjunto de caracteres <cset>"
#: c.opt:500
-#, fuzzy
msgid "Permit universal character names (\\u and \\U) in identifiers"
-msgstr "universal-character-name `\\u%04x' no es válido en el identificador"
+msgstr "Permitir los nombres de cáracteres universales (\\u y \\U) en los identificadores"
#: c.opt:504
-#, fuzzy
msgid "Specify the default character set for source files"
-msgstr "-finput-charset=<cset>\tEspecifica el conjunto de caracteres por defecto para los ficheros fuente."
+msgstr "Especificar el conjunto de caracteres por defecto para los ficheros fuente"
#: c.opt:521
msgid "Scope of for-init-statement variables is local to the loop"
@@ -12804,108 +12521,107 @@ msgstr "El ámbito de las variables de la declaración de inicio-de-for es local p
#: c.opt:525
msgid "Do not assume that standard C libraries and \"main\" exist"
-msgstr "No asume que existen las bibliotecas C estándard y \"main\""
+msgstr "No asumir que existen las bibliotecas C estándard y \"main\""
#: c.opt:529
msgid "Recognize GNU-defined keywords"
-msgstr "Reconoce las palabras claves definidas por GNU"
+msgstr "Reconocer las palabras claves definidas por GNU"
#: c.opt:533
msgid "Generate code for GNU runtime environment"
-msgstr "Genera código para el ambiente de tiempo de ejecución GNU"
+msgstr "Generar código para el ambiente de tiempo de ejecución GNU"
#: c.opt:546
msgid "Assume normal C execution environment"
-msgstr "Asume el ambiente normal de ejecución C"
+msgstr "Asumir el ambiente normal de ejecución C"
#: c.opt:550
msgid "Enable support for huge objects"
-msgstr "Activa el soporte para objetos enormes"
+msgstr "Activar el soporte para objetos enormes"
#: c.opt:554
msgid "Export functions even if they can be inlined"
-msgstr "Exporta funciones aún si pueden ser inline"
+msgstr "Exportar funciones aún si pueden ser inline"
#: c.opt:558
msgid "Emit implicit instantiations of inline templates"
-msgstr "Emite instanciaciones implícitas de plantillas inline"
+msgstr "Emitir instanciaciones implícitas de plantillas inline"
#: c.opt:562
msgid "Emit implicit instantiations of templates"
-msgstr "Emite instanciaciones implícitas de plantillas"
+msgstr "Emitir instanciaciones implícitas de plantillas"
#: c.opt:566
-#, fuzzy
msgid "Inject friend functions into enclosing namespace"
-msgstr "Integrar las funciones simples en sus invocadores"
+msgstr "Inyectar las funciones friend dentro de espacios de nombres cerrados"
#: c.opt:573
msgid "Don't warn about uses of Microsoft extensions"
-msgstr "No avisa sobre los usos de extensiones Microsoft"
+msgstr "No avisar sobre los usos de extensiones Microsoft"
#: c.opt:583
msgid "Generate code for NeXT (Apple Mac OS X) runtime environment"
-msgstr "Genera código para el ambiente de tiempo de ejecución NeXT (Apple Mac OS X)"
+msgstr "Generar código para el ambiente de tiempo de ejecución NeXT (Apple Mac OS X)"
#: c.opt:587
msgid "Assume that receivers of Objective-C messages may be nil"
-msgstr "Asume que los receptores de mensajes de Objective-C pueden ser nil"
+msgstr "Asumir que los receptores de mensajes de Objective-C pueden ser nil"
#: c.opt:599
msgid "Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed"
-msgstr ""
+msgstr "Generar métodos Objective-C especiales para inicializar/destruir i-variables de C++ que no son POD, si es necesario"
#: c.opt:603
msgid "Allow fast jumps to the message dispatcher"
-msgstr ""
+msgstr "Permitir saltos rápidos al despachador de mensajes"
#: c.opt:609
msgid "Enable Objective-C exception and synchronization syntax"
-msgstr "Activa la sintaxis de excepción y sincronización de Objective-C"
+msgstr "Activar la sintaxis de excepción y sincronización de Objective-C"
#: c.opt:613
msgid "Enable garbage collection (GC) in Objective-C/Objective-C++ programs"
-msgstr ""
+msgstr "Activar la recolección de basura (GC) en programas Objective-C/Objective-C++"
#: c.opt:618
msgid "Enable Objective-C setjmp exception handling runtime"
-msgstr "Activa el manejo de excepciones setjmp en tiempo de ejecución de Objective-C"
+msgstr "Activar el manejo de excepciones setjmp en tiempo de ejecución de Objective-C"
#: c.opt:622
msgid "Recognize C++ kewords like \"compl\" and \"xor\""
-msgstr "Reconoce palabras clave de C++ como \"compl\" y \"xor\""
+msgstr "Reconocer palabras clave de C++ como \"compl\" y \"xor\""
#: c.opt:626
msgid "Enable optional diagnostics"
-msgstr "Activa los diagnósticos opcionales"
+msgstr "Activar los diagnósticos opcionales"
#: c.opt:633
msgid "Look for and use PCH files even when preprocessing"
-msgstr "Busca y utiliza ficheros PCH aún cuando se esté preprocesando"
+msgstr "Buscar y utilizar ficheros PCH aún cuando se esté preprocesando"
#: c.opt:637
msgid "Downgrade conformance errors to warnings"
-msgstr "Degrada los errores de concordancia a advertencias"
+msgstr "Degradar los errores de concordancia a advertencias"
#: c.opt:641
msgid "Treat the input file as already preprocessed"
-msgstr "Trata al fichero de entrada como previamente preprocesado"
+msgstr "Tratar al fichero de entrada como previamente preprocesado"
#: c.opt:645
msgid "Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime"
-msgstr "Usa el modo Fix-and-Continue para indicar que los ficheros objeto se pueden intercambiar en tiempo de ejecución"
+msgstr "Usar el modo Fix-and-Continue para indicar que los ficheros objeto se pueden intercambiar en tiempo de ejecución"
#: c.opt:649
msgid "Enable automatic template instantiation"
-msgstr "Activa la instanciación automática de plantillas"
+msgstr "Activar la instanciación automática de plantillas"
#: c.opt:653
msgid "Generate run time type descriptor information"
-msgstr "Genera información de descriptor de tipo en tiempo de ejecución"
+msgstr "Generar información de descriptor de tipo en tiempo de ejecución"
#: c.opt:657
msgid "Use the same size for double as for float"
-msgstr "Usa el mismo tamaño para double que para float"
+msgstr "Usar el mismo tamaño para double que para float"
#: c.opt:665
msgid "Force the underlying type for \"wchar_t\" to be \"unsigned short\""
@@ -12913,146 +12629,135 @@ msgstr "Fuerza que el tipo debajo de \"wchar_t\" sea \"unsigned short\""
#: c.opt:669
msgid "When \"signed\" or \"unsigned\" is not given make the bitfield signed"
-msgstr "Cuando no se proporciona \"signed\" o \"unsigned\" hace signed el campo de bits"
+msgstr "Cuando no se proporcione \"signed\" o \"unsigned\" hacer signed el campo de bits"
#: c.opt:673
msgid "Make \"char\" signed by default"
-msgstr "Hace que \"char\" sea signed por defecto"
+msgstr "Hacer que \"char\" sea signed por defecto"
#: c.opt:680
msgid "Display statistics accumulated during compilation"
-msgstr "Muestra las estadísticas acumuladas durante la compilación"
+msgstr "Mostrar las estadísticas acumuladas durante la compilación"
#: c.opt:687
-#, fuzzy
msgid "Distance between tab stops for column reporting"
-msgstr "-ftabstop=<número>\tDistancia entre topes de tabulador para reportes en columnas"
+msgstr "Distancia entre topes de tabulador para reportes en columnas"
#: c.opt:691
-#, fuzzy
msgid "Specify maximum template instantiation depth"
-msgstr "-ftemplate-depth-<número>\tEspecifica la profundidad máxima de instanciación"
+msgstr "Especificar la profundidad máxima de instanciación de plantillas"
#: c.opt:698
-#, fuzzy
msgid "Do not generate thread-safe code for initializing local statics"
-msgstr "-fno-threadsafe-statics\tNo genera código seguro en hilos para inicializar statics locales."
+msgstr "No genera código seguro en hilos para inicializar statics locales"
#: c.opt:702
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"
+msgstr "Cuando no se proporcione \"signed\" o \"unsigned\" hacer unsigned el campo de bits"
#: c.opt:706
msgid "Make \"char\" unsigned by default"
-msgstr "Hace que \"char\" sea unsigned por defecto"
+msgstr "Hacer que \"char\" sea unsigned por defecto"
#: c.opt:710
msgid "Use __cxa_atexit to register destructors"
-msgstr "Usa __cxa_atexit para registrar destructores"
+msgstr "Usar __cxa_atexit para registrar destructores"
#: c.opt:714
msgid "Marks all inlined methods as having hidden visibility"
-msgstr "Marca todos los métodos inlined como que tienen visibilidad hidden"
+msgstr "Marcar todos los métodos inlined como que tienen visibilidad hidden"
#: c.opt:718
msgid "Discard unused virtual functions"
-msgstr "Descarta funciones virtual sin usar"
+msgstr "Descartar funciones virtual sin usar"
#: c.opt:722
msgid "Implement vtables using thunks"
-msgstr "Implementa vtables usando thunks"
+msgstr "Implementar vtables usando thunks"
#: c.opt:726
msgid "Emit common-like symbols as weak symbols"
-msgstr "Emite símbolos comunes como símbolos débiles"
+msgstr "Emitir símbolos comunes como símbolos débiles"
#: c.opt:730
-#, fuzzy
msgid "Convert all wide strings and character constants to character set <cset>"
-msgstr "-fwide-exec-charset=<cset>\tConvierte todas las cadenas anchas y constantes de cáracter al conjunto de caracteres <cset>"
+msgstr "Convertir todas las cadenas anchas y constantes de cáracter al conjunto de caracteres <cset>"
#: c.opt:734
msgid "Generate a #line directive pointing at the current working directory"
-msgstr "Genera una directiva #line que apunte al directorio de trabajo actual"
+msgstr "Generar una directiva #line que apunte al directorio de trabajo actual"
#: c.opt:738
msgid "Emit cross referencing information"
-msgstr "Emite información de referencia cruzada"
+msgstr "Emitir información de referencia cruzada"
#: c.opt:742
msgid "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode"
-msgstr "Genera la búsqueda no estricta de clases (a través de objc_getClass()) para usarlas en el modo Zero-Link"
+msgstr "Generar la búsqueda no estricta de clases (a través de objc_getClass()) para usarlas en el modo Zero-Link"
#: c.opt:746
msgid "Dump declarations to a .decl file"
-msgstr "Vuelca declaraciones a un fichero .decl"
+msgstr "Volcar declaraciones a un fichero .decl"
#: c.opt:750 c.opt:778
-#, fuzzy
msgid "Add <dir> to the end of the system include path"
-msgstr "-idirafter <dir>\tAgrega el <dir>ectorio al final de la ruta de inclusión del sistema"
+msgstr "Agregar el <dir>ectorio al final de la ruta de inclusión del sistema"
#: c.opt:754
-#, fuzzy
msgid "Accept definition of macros in <file>"
-msgstr "-imacros <fich>\tAcepta la definición de macros en el <fich>ero"
+msgstr "Aceptar la definición de macros en el <fich>ero"
#: c.opt:758
-#, fuzzy
msgid "Include the contents of <file> before other files"
-msgstr "-include <fich>\tIncluye los contenidos del <fichero> antes de otros ficheros"
+msgstr "Incluir los contenidos del <fichero> antes de otros ficheros"
#: c.opt:762
-#, fuzzy
msgid "Specify <path> as a prefix for next two options"
-msgstr "-iprefix <ruta>\tEspecifica la <ruta> como un prefijo para las siguientes dos opciones"
+msgstr "Especificar la <ruta> como un prefijo para las siguientes dos opciones"
#: c.opt:766
-#, fuzzy
msgid "Set <dir> to be the system root directory"
-msgstr "-isysroot <dir>\tEstablece el <dir>ectorio como el directorio raíz del sistema"
+msgstr "Establecer el <dir>ectorio como el directorio raíz del sistema"
#: c.opt:770
-#, fuzzy
msgid "Add <dir> to the start of the system include path"
-msgstr "-isystem <dir>\tAgrega el <dir>ectorio al inicio de la ruta de inclusión del sistema"
+msgstr "Agregar el <dir>ectorio al inicio de la ruta de inclusión del sistema"
#: c.opt:774
-#, fuzzy
msgid "Add <dir> to the end of the quote include path"
-msgstr "-iquote <dir>\tAgrega el <dir>ectorio al final de la ruta de inclusión de citas"
+msgstr "Agregar el <dir>ectorio al final de la ruta de inclusión de citas"
#: c.opt:795
msgid "Do not search standard system include directories (those specified with -isystem will still be used)"
-msgstr "No busca directorios de inclusión del sistema por defecto (aquellos especificados con -isystem aún serán utilizados)"
+msgstr "No buscar directorios de inclusión del sistema por defecto (aquellos especificados con -isystem aún serán utilizados)"
#: c.opt:799
msgid "Do not search standard system include directories for C++"
-msgstr "No busca directorios de inclusión del sistema por defecto para C++"
+msgstr "No buscar directorios de inclusión del sistema por defecto para C++"
#: c.opt:815
msgid "Generate C header of platform-specific features"
-msgstr "Genera encabezado C de características específicas de la plataforma"
+msgstr "Generar encabezado C de características específicas de la plataforma"
#: c.opt:819
msgid "Print a checksum of the executable for PCH validity checking, and stop"
-msgstr ""
+msgstr "Mostrar una suma de comprobación del ejecutable para revisión de validación de PCH, y terminar"
#: c.opt:823
msgid "Remap file names when including files"
-msgstr "Remapea nombres de fichero cuando incluyen ficheros"
+msgstr "Remapear nombres de fichero cuando incluyen ficheros"
#: c.opt:827
msgid "Conform to the ISO 1998 C++ standard"
-msgstr "Conforme al estándard ISO 1998 C++"
+msgstr "Conformar al estándard ISO 1998 C++"
#: c.opt:831 c.opt:859
msgid "Conform to the ISO 1990 C standard"
-msgstr "Conforme al estándard ISO 1990 C"
+msgstr "Conformar al estándard ISO 1990 C"
#: c.opt:835 c.opt:867
msgid "Conform to the ISO 1999 C standard"
-msgstr "Conforme al estándard ISO 1999 C"
+msgstr "Conformar al estándard ISO 1999 C"
#: c.opt:839
msgid "Deprecated in favor of -std=c99"
@@ -13060,15 +12765,15 @@ msgstr "Obsoleto en favor de -std=c99"
#: c.opt:843
msgid "Conform to the ISO 1998 C++ standard with GNU extensions"
-msgstr "Conforme al estándard ISO 1998 C++ con extensiones GNU"
+msgstr "Conformar al estándard ISO 1998 C++ con extensiones GNU"
#: c.opt:847
msgid "Conform to the ISO 1990 C standard with GNU extensions"
-msgstr "Conforme al estándard ISO 1990 C con extensiones GNU"
+msgstr "Conformar al estándard ISO 1990 C con extensiones GNU"
#: c.opt:851
msgid "Conform to the ISO 1999 C standard with GNU extensions"
-msgstr "Conforme al estándard ISO 1999 C con extensiones GNU"
+msgstr "Conformar al estándard ISO 1999 C con extensiones GNU"
#: c.opt:855
msgid "Deprecated in favor of -std=gnu99"
@@ -13076,7 +12781,7 @@ msgstr "Obsoleto en favor de -std=gnu99"
#: c.opt:863
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"
+msgstr "Conformar al estándard ISO 1990 C como se enmendó en 1994"
#: c.opt:871
msgid "Deprecated in favor of -std=iso9899:1999"
@@ -13084,512 +12789,487 @@ msgstr "Obsoleto en favor de -std=iso9899:1999"
#: c.opt:875
msgid "Enable traditional preprocessing"
-msgstr "Habilita el preprocesamiento tradicional"
+msgstr "Habilitar el preprocesamiento tradicional"
#: c.opt:879
-#, fuzzy
msgid "Support ISO C trigraphs"
-msgstr "-trigraphs\tSoporte para los trigrafos de ISO C"
+msgstr "Soporte para los trigrafos de ISO C"
#: c.opt:883
msgid "Do not predefine system-specific and GCC-specific macros"
-msgstr "No predefine macros específicas del sistema y específica de GCC"
+msgstr "No predefinir macros específicas del sistema y específica de GCC"
#: c.opt:887
msgid "Enable verbose output"
-msgstr "Activa la salida detallada"
+msgstr "Activar la salida detallada"
#: common.opt:28
msgid "Display this information"
-msgstr "Muestra esta información"
+msgstr "Mostrar esta información"
#: common.opt:32
-#, fuzzy
msgid "Set parameter <param> to value. See below for a complete list of parameters"
-msgstr "--param <param>=<valor>\tEstablece el parámetro <param> al valor. Vea a continuación para una lista completa de parámetros"
+msgstr "Establecer el parámetro <param> al valor. Vea a continuación para una lista completa de parámetros"
#: common.opt:42
-#, fuzzy
msgid "Put global and static data smaller than <number> bytes into a special section (on some targets)"
-msgstr "-G<número>\tColoca los datos globales y estáticos más pequeños que <número> bytes en una sección especial (en algunos objetivos)"
+msgstr "Colocar los datos globales y estáticos más pequeños que <número> bytes en una sección especial (en algunos objetivos)"
#: common.opt:46
-#, fuzzy
msgid "Set optimization level to <number>"
-msgstr "-O<número>\tEstablece el nivel de optimización a <número>"
+msgstr "Establecer el nivel de optimización a <número>"
#: common.opt:50
msgid "Optimize for space rather than speed"
-msgstr "Optimiza para espacio en lugar de velocidad"
+msgstr "Optimizar para espacio en lugar de velocidad"
#: common.opt:54
msgid "This switch is deprecated; use -Wextra instead"
-msgstr "Esta opción es obsoleta; utilice en su lugar -Wextra"
+msgstr "Esta opción es obsoleta; utilizar en su lugar -Wextra"
#: common.opt:58
msgid "Warn about returning structures, unions or arrays"
-msgstr "Avisa sobre la devolución de estructuras, unions o matrices"
+msgstr "Avisar sobre la devolución de estructuras, unions o matrices"
#: common.opt:62
-#, fuzzy
msgid "Warn about inappropriate attribute usage"
-msgstr "Avisa sobre la aritmética de punteros de funciones"
+msgstr "Avisar sobre la aritmética de punteros de funciones"
#: common.opt:66
msgid "Warn about pointer casts which increase alignment"
-msgstr "Avisa sobre conversión de punteros que incremente la alineación"
+msgstr "Avisar sobre conversión de punteros que incremente la alineación"
#: common.opt:70
msgid "Warn about uses of __attribute__((deprecated)) declarations"
-msgstr "Avisa sobre usos de declaraciones __attribute__((obsoleto))"
+msgstr "Avisar sobre usos de declaraciones __attribute__((obsoleto))"
#: common.opt:74
msgid "Warn when an optimization pass is disabled"
-msgstr "Avisa cuando se desactivó un paso de optimización"
+msgstr "Avisar cuando se desactivó un paso de optimización"
#: common.opt:78
msgid "Treat all warnings as errors"
-msgstr "Trata todos los avisos como errores"
+msgstr "Tratar todos los avisos como errores"
#: common.opt:82
msgid "Print extra (possibly unwanted) warnings"
-msgstr "Muestra avisos extra (posiblemente no deseados)"
+msgstr "Mostrar avisos extra (posiblemente no deseados)"
#: common.opt:86
msgid "Exit on the first error occurred"
-msgstr "Termina cuando suceda el primer error"
+msgstr "Terminar cuando suceda el primer error"
#: common.opt:90
msgid "Warn when an inlined function cannot be inlined"
-msgstr "Avisa cuando una función inline no puede ser inline"
+msgstr "Avisar cuando una función inline no puede ser inline"
#: common.opt:94
-#, fuzzy
msgid "Warn if an object is larger than <number> bytes"
-msgstr "-Wlarger-than-<número>\tAvisa si un objeto es más grande que <número> bytes"
+msgstr "Avisar si un objeto es más grande que <número> bytes"
#: common.opt:98
msgid "Warn if the loop cannot be optimized due to nontrivial assumptions."
-msgstr ""
+msgstr "Avisar si el ciclo no se puede optimizar debido a presunciones no triviales."
#: common.opt:102
msgid "Warn about functions which might be candidates for __attribute__((noreturn))"
-msgstr "Avisa sobre funciones que pueden ser candidatas para __attribute((noreturn))"
+msgstr "Avisar sobre funciones que pueden ser candidatas para __attribute((noreturn))"
#: common.opt:106
msgid "Warn when the packed attribute has no effect on struct layout"
-msgstr "Avisa cuando el atributo packed no tiene efecto en la disposición de un struct"
+msgstr "Avisar cuando el atributo packed no tiene efecto en la disposición de un struct"
#: common.opt:110
msgid "Warn when padding is required to align structure members"
-msgstr "Avisa cuando se requiere relleno para alinear a los miembros de una estructura"
+msgstr "Avisar cuando se requiere relleno para alinear a los miembros de una estructura"
#: common.opt:114
msgid "Warn when one local variable shadows another"
-msgstr "Avisa cuando una variable local oscurece otra"
+msgstr "Avisar cuando una variable local oscurece otra"
#: common.opt:118
msgid "Warn when not issuing stack smashing protection for some reason"
-msgstr ""
+msgstr "Avisar cuando no se está usando la protección contra destrucción de la pila por alguna razón"
#: common.opt:122 common.opt:126
msgid "Warn about code which might break strict aliasing rules"
-msgstr "Avisa sobre código que pueda romper las reglas estrictas de aliases"
+msgstr "Avisar sobre código que pueda romper las reglas estrictas de aliases"
#: common.opt:130
msgid "Warn about enumerated switches, with no default, missing a case"
-msgstr "Avisa sobre switches enumerados, sin valor por defecto, que carezcan de un case"
+msgstr "Avisar sobre switches enumerados, sin valor por defecto, que carezcan de un case"
#: common.opt:134
msgid "Warn about enumerated switches missing a \"default:\" statement"
-msgstr "Avisa sobre switches enumerados que carezcan de una declaración \"default:\""
+msgstr "Avisar sobre switches enumerados que carezcan de una declaración \"default:\""
#: common.opt:138
msgid "Warn about all enumerated switches missing a specific case"
-msgstr "Avisa sobre todos los switches enumerados que carezcan de un case específico"
+msgstr "Avisar sobre todos los switches enumerados que carezcan de un case específico"
#: common.opt:146
msgid "Warn about uninitialized automatic variables"
-msgstr "Avisa sobre variables automáticas sin inicializar"
+msgstr "Avisar sobre variables automáticas sin inicializar"
#: common.opt:150
msgid "Warn about code that will never be executed"
-msgstr "Avisa sobre código que nunca se ejecutará"
+msgstr "Avisar sobre código que nunca se ejecutará"
#: common.opt:154
msgid "Enable all -Wunused- warnings"
-msgstr "Activa todos los avisos -Wunused-"
+msgstr "Activar todos los avisos -Wunused-"
#: common.opt:158
msgid "Warn when a function is unused"
-msgstr "Avisa cuando no se use una función"
+msgstr "Avisar cuando no se use una función"
#: common.opt:166
msgid "Warn when a function parameter is unused"
-msgstr "Avisa cuando no se use un parámetro de una función"
+msgstr "Avisar cuando no se use un parámetro de una función"
#: common.opt:170
msgid "Warn when an expression value is unused"
-msgstr "Avisa cuando no se use un valor de una expresión"
+msgstr "Avisar cuando no se use un valor de una expresión"
#: common.opt:174
msgid "Warn when a variable is unused"
-msgstr "Avisa cuando no se use una variable"
+msgstr "Avisar cuando no se use una variable"
#: common.opt:178
-#, fuzzy
msgid "Warn when a register variable is declared volatile"
-msgstr "la variable de instancia %qs es declarada privada"
+msgstr "Avisar cuando una variable de registro es declarada volatile"
#: common.opt:182
-#, fuzzy
msgid "Emit declaration information into <file>"
-msgstr "-aux-info <fichero>\tEmite la información de declaraciones en el <fichero>"
+msgstr "Emitir la información de declaraciones en el <fichero>"
#: common.opt:195
-#, fuzzy
msgid "Enable dumps from specific passes of the compiler"
-msgstr "-d<letras>\tActiva los volcados de pasos específicos del compilador"
+msgstr "Activar los volcados de pasos específicos del compilador"
#: common.opt:199
-#, fuzzy
msgid "Set the file basename to be used for dumps"
-msgstr "-dumpbase <fichero>\tEstablece el nombre base a usar para los volcados"
+msgstr "Establecer el nombre base a usar para los volcados"
#: common.opt:217
msgid "Align the start of functions"
-msgstr "Alínea el inicio de las funciones"
+msgstr "Alinear el inicio de las funciones"
#: common.opt:224
msgid "Align labels which are only reached by jumping"
-msgstr "Alínea las etiquetas que solamente se alcanzan saltando"
+msgstr "Alinear las etiquetas que solamente se alcanzan saltando"
#: common.opt:231
msgid "Align all labels"
-msgstr "Alínea todas las etiquetas"
+msgstr "Alinear todas las etiquetas"
#: common.opt:238
msgid "Align the start of loops"
-msgstr "Alínea el inicio de los ciclos"
+msgstr "Alinear el inicio de los ciclos"
#: common.opt:251
msgid "Specify that arguments may alias each other and globals"
-msgstr "Especifica que los argumentos pueden ser alias de cada otro y de los globales"
+msgstr "Especificar que los argumentos pueden ser alias de cada otro y de los globales"
#: common.opt:255
msgid "Assume arguments may alias globals but not each other"
-msgstr "Asume que los argumentos pueden ser alias de globales pero no de cada otro"
+msgstr "Asumir que los argumentos pueden ser alias de globales pero no de cada otro"
#: common.opt:259
msgid "Assume arguments alias neither each other nor globals"
-msgstr "Asume que los argumentos no pueden ser alias de globales o de cada otro"
+msgstr "Asumir que los argumentos no pueden ser alias de globales o de cada otro"
#: common.opt:263
msgid "Generate unwind tables that are exact at each instruction boundary"
-msgstr "Genera tablas de desenredo que sean exactas en cada límite de instrucción"
+msgstr "Generar tablas de desenredo que sean exactas en cada límite de instrucción"
#: common.opt:271
msgid "Generate code to check bounds before indexing arrays"
-msgstr "Genera código para revisar los límites antes de indizar matrices"
+msgstr "Generar código para revisar los límites antes de indizar matrices"
#: common.opt:275
msgid "Replace add, compare, branch with branch on count register"
-msgstr "Reemplaza add, compare, branch con branch en la cuenta de registros"
+msgstr "Reemplazar add, compare, branch con branch en la cuenta de registros"
#: common.opt:279
msgid "Use profiling information for branch probabilities"
-msgstr "Usa la información de análisis de perfil para las probabilidades de ramificación"
+msgstr "Usar la información de análisis de perfil para las probabilidades de ramificación"
#: common.opt:283
msgid "Perform branch target load optimization before prologue / epilogue threading"
-msgstr "Realiza optimización de carga de ramificación objetivo antes del hilo prólogo / epílogo"
+msgstr "Realizar optimización de carga de ramificación objetivo antes del hilo prólogo / epílogo"
#: common.opt:287
msgid "Perform branch target load optimization after prologue / epilogue threading"
-msgstr "Realiza optimización de carga de ramificación objetivo después del hilo prólogo / epílogo"
+msgstr "Realizar optimización de carga de ramificación objetivo después del hilo prólogo / epílogo"
#: common.opt:291
msgid "Restrict target load migration not to re-use registers in any basic block"
-msgstr "Restringe que la migración de carga de objetivos no reuse registros en ningún bloque básico"
+msgstr "Restringir que la migración de carga de objetivos no reuse registros en ningún bloque básico"
#: common.opt:295
-#, fuzzy
msgid "Mark <register> as being preserved across functions"
-msgstr "-fcall-saved-<registro>\tMarca el <registro> como preservado entre funciones"
+msgstr "Marca el <registro> como preservado entre funciones"
#: common.opt:299
-#, fuzzy
msgid "Mark <register> as being corrupted by function calls"
-msgstr "-fcall-used-<registro>\tMarca el <registro> como corrupto para llamadas de función"
+msgstr "Marcar el <registro> como corrupto para llamadas de función"
#: common.opt:306
msgid "Save registers around function calls"
-msgstr "Guarda registros alrededor de llamadas de función"
+msgstr "Guardar registros alrededor de llamadas de función"
#: common.opt:310
msgid "Do not put uninitialized globals in the common section"
-msgstr "No pone globales sin inicializar en la sección común"
+msgstr "No poner globales sin inicializar en la sección común"
#: common.opt:314
msgid "Perform a register copy-propagation optimization pass"
-msgstr "Realiza el paso de optimización de copia-propagación de registros"
+msgstr "Realizar el paso de optimización de copia-propagación de registros"
#: common.opt:318
msgid "Perform cross-jumping optimization"
-msgstr "Realiza optimizaciones de saltos cruzados"
+msgstr "Realizar optimizaciones de saltos cruzados"
#: common.opt:322
msgid "When running CSE, follow jumps to their targets"
-msgstr "Cuando se esté ejecutando CSE, sigue a los saltos a sus objetivos"
+msgstr "Cuando se esté ejecutando CSE, seguir los saltos a sus objetivos"
#: common.opt:326
msgid "When running CSE, follow conditional jumps"
-msgstr "Cuando se esté ejecutando CSE, sigue a los saltos condicionales"
+msgstr "Cuando se esté ejecutando CSE, seguir los saltos condicionales"
#: common.opt:330
msgid "Omit range reduction step when performing complex division"
-msgstr "Omite el paso de reducción de rango al realizar divisiones complejas"
+msgstr "Omitir el paso de reducción de rango al realizar divisiones complejas"
#: common.opt:334
msgid "Place data items into their own section"
-msgstr "Coloca los elementos de datos en su propia sección"
+msgstr "Colocar los elementos de datos en su propia sección"
#: common.opt:340
msgid "Defer popping functions args from stack until later"
-msgstr "Posterga la extracción de argumentos de funciones de la pila hasta más tarde"
+msgstr "Postergar la extracción de argumentos de funciones de la pila hasta más tarde"
#: common.opt:344
msgid "Attempt to fill delay slots of branch instructions"
-msgstr "Intenta rellenar las ranuras de retraso de las instrucciones de ramificación"
+msgstr "Intentar rellenar las ranuras de retraso de las instrucciones de ramificación"
#: common.opt:348
msgid "Delete useless null pointer checks"
-msgstr "Borra las revisiones de punteros nulos sin uso"
+msgstr "Borrar las revisiones de punteros nulos sin uso"
#: common.opt:352
-#, fuzzy
msgid "How 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"
+msgstr "Indicar que tan seguido se debe emitir la ubicación del código al inicio de los diagnósticos con corte de línea"
#: common.opt:356
msgid "Amend appropriate diagnostic messages with the command line option that controls them"
-msgstr ""
+msgstr "Asociar adecuadamente los mensajes de diagnóstico con la opción de línea de orden que los controla"
#: common.opt:360
-#, fuzzy
msgid "Dump various compiler internals to a file"
-msgstr "-fdump-<tipo>\tVuelca varios internos del compilador a un fichero"
+msgstr "Volcar varios internos del compilador a un fichero"
#: common.opt:364
msgid "Suppress output of instruction numbers and line number notes in debugging dumps"
-msgstr "Suprime la salida de notas de números de instrucción y números de linea en los volcados de depuración"
+msgstr "Suprimir la salida de notas de números de instrucción y números de linea en los volcados de depuración"
#: common.opt:368
-#, fuzzy
msgid "Perform early inlining"
-msgstr "Realiza el pelado de ciclos"
+msgstr "Realizar el inlining temprano"
#: common.opt:372
msgid "Perform DWARF2 duplicate elimination"
-msgstr "Realiza la eliminación de DWARF2 duplicados"
+msgstr "Realizar la eliminación de DWARF2 duplicados"
#: common.opt:376 common.opt:380
msgid "Perform unused type elimination in debug info"
-msgstr "Realiza eliminación de tipos sin uso en la información de depuración"
+msgstr "Realizar eliminación de tipos sin uso en la información de depuración"
#: common.opt:384
msgid "Enable exception handling"
-msgstr "Activa el manejo de excepciones"
+msgstr "Activar el manejo de excepciones"
#: common.opt:388
msgid "Perform a number of minor, expensive optimizations"
-msgstr "Realiza un número de optimizaciones menores y costosas"
+msgstr "Realizar un número de optimizaciones menores y costosas"
#: common.opt:395
msgid "Assume no NaNs or infinities are generated"
-msgstr "Asume que no se generan NaNs o infinitos"
+msgstr "Asumer que no se generan NaNs o infinitos"
#: common.opt:399
-#, fuzzy
msgid "Mark <register> as being unavailable to the compiler"
-msgstr "-ffixed-<registro>\tMarca el <registro> como no disponible para el compilador"
+msgstr "Marcar el <registro> como no disponible para el compilador"
#: common.opt:403
msgid "Don't allocate floats and doubles in extended-precision registers"
-msgstr "No aloja floats y doubles en registros de precisión extendida"
+msgstr "No alojar floats y doubles en registros de precisión extendida"
#: common.opt:409
msgid "Copy memory address constants into registers before use"
-msgstr "Copia las constantes de direcciones de memoria en registros antes de usarlos"
+msgstr "Copiar las constantes de direcciones de memoria en registros antes de usarlos"
#: common.opt:415
msgid "Copy memory operands into registers before use"
-msgstr "Copia los operandos de memoria en registros antes de usarlos"
+msgstr "Copiar los operandos de memoria en registros antes de usarlos"
#: common.opt:422
msgid "Allow function addresses to be held in registers"
-msgstr "Permite que las direcciones de las funciones se conservern en registros"
+msgstr "Permitir que las direcciones de las funciones se conservern en registros"
#: common.opt:426
msgid "Place each function into its own section"
-msgstr "Coloca cada función en su propia sección"
+msgstr "Colocar cada función en su propia sección"
#: common.opt:430
msgid "Perform global common subexpression elimination"
-msgstr "Realiza la eliminación de subexpresiones comunes globales"
+msgstr "Realizar la eliminación de subexpresiones comunes globales"
#: common.opt:434
msgid "Perform enhanced load motion during global common subexpression elimination"
-msgstr "Realiza el movimiento de la carga mejorada durante la eliminación de subexpresiones comunes globales"
+msgstr "Realizar el movimiento de la carga mejorada durante la eliminación de subexpresiones comunes globales"
#: common.opt:438
msgid "Perform store motion after global common subexpression elimination"
-msgstr "Realiza el movimiento de guardado después de la eliminación de subexpresiones comunes globales"
+msgstr "Realizar el movimiento de guardado después de la eliminación de subexpresiones comunes globales"
#: common.opt:442
msgid "Perform redundant load after store elimination in global common subexpression"
-msgstr "Realiza la carga redundante después de la eliminación de almacenamiento en las subexpresiones comunes globales"
+msgstr "Realizar la carga redundante después de la eliminación de almacenamiento en las subexpresiones comunes globales"
#: common.opt:447
msgid "Perform global common subexpression elimination after register allocation"
-msgstr "Realiza la eliminación de subexpresiones comunes globales despúes del alojamiento de registros"
+msgstr "Realizar la eliminación de subexpresiones comunes globales despúes del alojamiento de registros"
#: common.opt:452
msgid "Enable guessing of branch probabilities"
-msgstr "Activa la predicción de probabilidades de ramificación"
+msgstr "Activar la predicción de probabilidades de ramificación"
#: common.opt:460
msgid "Process #ident directives"
-msgstr "Procesa directivas #ident"
+msgstr "Procesar directivas #ident"
#: common.opt:464
msgid "Perform conversion of conditional jumps to branchless equivalents"
-msgstr "Realiza la conversión de saltos condicionales a equivalentes sin ramificación"
+msgstr "Realizar la conversión de saltos condicionales a equivalentes sin ramificación"
#: common.opt:468
msgid "Perform conversion of conditional jumps to conditional execution"
-msgstr "Realiza la conversión de saltos condicionales a ejecución condicional"
+msgstr "Realizar la conversión de saltos condicionales a ejecución condicional"
#: common.opt:476
msgid "Do not generate .size directives"
-msgstr "No genera directivas .size"
+msgstr "No generar directivas .size"
#: common.opt:485
msgid "Pay attention to the \"inline\" keyword"
-msgstr "Pone atención a la palabra clave \"inline\""
+msgstr "Poner atención a la palabra clave \"inline\""
#: common.opt:489
msgid "Integrate simple functions into their callers"
msgstr "Integrar las funciones simples en sus invocadores"
#: common.opt:493
-#, fuzzy
msgid "Integrate functions called once into their callers"
-msgstr "Integrar las funciones simples en sus invocadores"
+msgstr "Integrar las funciones llamadas una vez en sus invocadores"
#: common.opt:500
-#, fuzzy
msgid "Limit the size of inlined functions to <number>"
-msgstr "-finline-limit=<número>\tLimita el tamaño de las funciones inline a <número>"
+msgstr "Limitar el tamaño de las funciones inline a <número>"
#: common.opt:504
msgid "Instrument function entry and exit with profiling calls"
-msgstr "Instrumenta funciones de entrada y salida con llamadas de análisis de perfil"
+msgstr "Instrumentar funciones de entrada y salida con llamadas de análisis de perfil"
#: common.opt:508
-#, fuzzy
msgid "Perform Interprocedural constant propagation"
-msgstr "Activar la propagación de las constantes condicionales SSA"
+msgstr "Realizar la propagación interprocedural de las constantes"
#: common.opt:512
-#, fuzzy
msgid "Discover pure and const functions"
-msgstr "Descarta funciones virtual sin usar"
+msgstr "Descubrir funciones pure y const"
#: common.opt:516
msgid "Discover readonly and non addressable static variables"
-msgstr ""
+msgstr "Descubrir variables estáticas de sólo lectura y no direccionables"
#: common.opt:520
msgid "Type based escape and alias analysis"
-msgstr ""
+msgstr "Análisis de alias y escape basado en tipos"
#: common.opt:524
msgid "Optimize induction variables on trees"
-msgstr "Optimiza la inducción de variables en los árboles"
+msgstr "Optimizar la inducción de variables en los árboles"
#: common.opt:528
-#, fuzzy
msgid "Use jump tables for sufficiently large switch statements"
-msgstr "la etiqueta case no se encuentra dentro de una declaración switch"
+msgstr "Usar tablas de salto para las declaraciones switch suficientemente grandes"
#: common.opt:532
msgid "Generate code for functions even if they are fully inlined"
-msgstr "Genera código para las funciones aún si están completamente inline"
+msgstr "Generar código para las funciones aún si están completamente inline"
#: common.opt:536
msgid "Emit static const variables even if they are not used"
-msgstr "Emite variables static const aún si no se usan"
+msgstr "Emitir variables static const aún si no se usan"
#: common.opt:540
msgid "Give external symbols a leading underscore"
-msgstr "Da a los símbolos externos un subrayado inicial"
+msgstr "Dar a los símbolos externos un subrayado inicial"
#: common.opt:544
msgid "Perform loop optimizations"
-msgstr "Realiza optimizaciones de ciclo"
+msgstr "Realizar optimizaciones de ciclo"
#: common.opt:548
msgid "Perform loop optimizations using the new loop optimizer"
-msgstr "Realiza optimizaciones de ciclo usando el nuevo optimizador de ciclo"
+msgstr "Realizar optimizaciones de ciclo usando el nuevo optimizador de ciclo"
#: common.opt:552
msgid "Set errno after built-in math functions"
-msgstr "Establece errno después de las funciones matemáticas internas"
+msgstr "Establecer errno después de las funciones matemáticas internas"
#: common.opt:556
msgid "Report on permanent memory allocation"
-msgstr "Reporta el alojamiento en memoria permanente"
+msgstr "Reportar el alojamiento en memoria permanente"
#: common.opt:563
msgid "Attempt to merge identical constants and constant variables"
-msgstr "Intenta mezclar constantes idénticas y variables constantes"
+msgstr "Intentar mezclar constantes idénticas y variables constantes"
#: common.opt:567
msgid "Attempt to merge identical constants across compilation units"
msgstr "Intentar mezclar constantes idénticas a través de las unidades de compilación"
#: common.opt:571
-#, fuzzy
msgid "Limit 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"
+msgstr "Limitar los diagnósticos a <número> caracteres por línea. 0 suprime el corte de línea"
#: common.opt:575
msgid "Perform SMS based modulo scheduling before the first scheduling pass"
-msgstr "Realiza calendarización SMS basada en módulo antes del primer paso de calendarización"
+msgstr "Realizar calendarización SMS basada en módulo antes del primer paso de calendarización"
#: common.opt:579
msgid "Move loop invariant computations out of loops"
-msgstr "Mueve las computaciones invariantes de ciclo fuera de los ciclos"
+msgstr "Mover las computaciones invariantes de ciclo fuera de los ciclos"
#: common.opt:583
-#, fuzzy
msgid "Add mudflap bounds-checking instrumentation for single-threaded program"
-msgstr "Agrega instrumentación mudflap de revisión de límites para programas de un solo hilo."
+msgstr "Agregar instrumentación mudflap de revisión de límites para programas de un solo hilo"
#: common.opt:587
-#, fuzzy
msgid "Add mudflap bounds-checking instrumentation for multi-threaded program"
-msgstr "Agrega instrumentación mudflap de revisión de límites para programas multi-hilo."
+msgstr "Agregar instrumentación mudflap de revisión de límites para programas multi-hilo"
#: common.opt:591
-#, fuzzy
msgid "Ignore read operations when inserting mudflap instrumentation"
-msgstr "Ignora operaciones de lectura al insertar instrumentación mudflap."
+msgstr "Ignorar operaciones de lectura al insertar instrumentación mudflap"
#: common.opt:595
msgid "Enable/Disable the traditional scheduling in loops that already passed modulo scheduling"
-msgstr "Activa/Desactiva la calendarización tradicional en ciclos que ya pasaron la calendarización módulo"
+msgstr "Activar/Desactivar la calendarización tradicional en ciclos que ya pasaron la calendarización módulo"
#: common.opt:599
msgid "Support synchronous non-call exceptions"
@@ -13597,7 +13277,7 @@ msgstr "Soporte para excepciones síncronas no de llamadas"
#: common.opt:603
msgid "When possible do not generate stack frames"
-msgstr "Cuando sea posible no genera marcos de pila"
+msgstr "Cuando sea posible no generar marcos de pila"
#: common.opt:607
msgid "Do the full register move optimization pass"
@@ -13605,89 +13285,87 @@ msgstr "Hacer el paso completo de optimización de movimiento de registros"
#: common.opt:611
msgid "Optimize sibling and tail recursive calls"
-msgstr "Optimiza las llamadas recursivas hermanadas y de extremo"
+msgstr "Optimizar las llamadas recursivas hermanadas y de extremo"
#: common.opt:615
msgid "Pack structure members together without holes"
-msgstr "Empaqueta juntos a los miembros de la estructura sin agujeros"
+msgstr "Empaquetar juntos a los miembros de la estructura sin agujeros"
#: common.opt:619
-#, fuzzy
msgid "Set initial maximum structure member alignment"
-msgstr "-fpack-struct=<número>\tEstablece la alineación inicial máxima de estructuras miembro"
+msgstr "Establecer la alineación inicial máxima de estructuras miembro"
#: common.opt:623
msgid "Return small aggregates in memory, not registers"
-msgstr "Devuelve los agregados small en memoria, no en registros"
+msgstr "Devolver los agregados small en memoria, no en registros"
#: common.opt:627
msgid "Perform loop peeling"
-msgstr "Realiza el pelado de ciclos"
+msgstr "Realizar el pelado de ciclos"
#: common.opt:631
msgid "Enable machine specific peephole optimizations"
-msgstr "Activa las optimizaciones de mirilla específicas de la máquina"
+msgstr "Activar las optimizaciones de mirilla específicas de la máquina"
#: common.opt:635
msgid "Enable an RTL peephole pass before sched2"
-msgstr "Activa un paso de mirilla RTL antes de sched2"
+msgstr "Activar un paso de mirilla RTL antes de sched2"
#: common.opt:639
msgid "Generate position-independent code if possible (large mode)"
-msgstr "Genera código independiente de posición si es posible (modo large)"
+msgstr "Generar código independiente de posición si es posible (modo large)"
#: common.opt:643
msgid "Generate position-independent code for executables if possible (large mode)"
-msgstr "Genera código independiente de posición para ejecutables si es posible (modo large)"
+msgstr "Generar código independiente de posición para ejecutables si es posible (modo large)"
#: common.opt:647
msgid "Generate position-independent code if possible (small mode)"
-msgstr "Genera código independiente de posición si es posible (modo small)"
+msgstr "Generar código independiente de posición si es posible (modo small)"
#: common.opt:651
msgid "Generate position-independent code for executables if possible (small mode)"
-msgstr "Genera código independiente de posición para ejecutables si es posible (modo small)"
+msgstr "Generar código independiente de posición para ejecutables si es posible (modo small)"
#: common.opt:655
msgid "Generate prefetch instructions, if available, for arrays in loops"
-msgstr "Genera instrucciones de precargado, si están disponibles, para matrices en ciclos"
+msgstr "Generar instrucciones de precargado, si están disponibles, para matrices en ciclos"
#: common.opt:659
msgid "Enable basic program profiling code"
-msgstr "Activa el código básico de análisis de perfil del programa"
+msgstr "Activar el código básico de análisis de perfil del programa"
#: common.opt:663
msgid "Insert arc-based program profiling code"
-msgstr "Inserta código de análisis de perfil de programa basado en arc"
+msgstr "Insertar código de análisis de perfil de programa basado en arc"
#: common.opt:667
msgid "Enable common options for generating profile info for profile feedback directed optimizations"
-msgstr "Activa las opciones comunes para generar información de análisis de perfil para optimizaciones dirigidas por retroalimentación de perfil"
+msgstr "Activar las opciones comunes para generar información de análisis de perfil para optimizaciones dirigidas por retroalimentación de perfil"
#: common.opt:671
msgid "Enable common options for performing profile feedback directed optimizations"
-msgstr "Activa las opciones comunes para realizar optimizaciones dirigidas por retroalimentación de perfil"
+msgstr "Activar las opciones comunes para realizar optimizaciones dirigidas por retroalimentación de perfil"
#: common.opt:675
msgid "Insert code to profile values of expressions"
-msgstr "Inserta código para perfilar valores de expresiones"
+msgstr "Insertar código para perfilar valores de expresiones"
#: common.opt:682
-#, fuzzy
msgid "Make compile reproducible using <string>"
-msgstr "-frandom-seed=<cadena>\tHace que se pueda reproducir la compilación utilizando la <cadena>"
+msgstr "Hacer que se pueda reproducir la compilación utilizando la <cadena>"
#: common.opt:686
msgid "Return small aggregates in registers"
-msgstr "Devuelve agregados small en registros"
+msgstr "Devolver agregados small en registros"
#: common.opt:690
msgid "Enables a register move optimization"
-msgstr "Permite una optimización de movimiento de registros"
+msgstr "Permitir una optimización de movimiento de registros"
#: common.opt:694
msgid "Perform a register renaming optimization pass"
-msgstr "Realiza el paso de optimización de renombrado de registros"
+msgstr "Realizar el paso de optimización de renombrado de registros"
#: common.opt:698
msgid "Reorder basic blocks to improve code placement"
@@ -13695,382 +13373,364 @@ msgstr "Reordenar los bloques básicos para mejorar la ubicación del código"
#: common.opt:702
msgid "Reorder basic blocks and partition into hot and cold sections"
-msgstr "Reordena los bloques básicos y particionar en secciones caliente y fría"
+msgstr "Reordenar los bloques básicos y particionar en secciones caliente y fría"
#: common.opt:706
msgid "Reorder functions to improve code placement"
-msgstr "Reordena las funciones para mejorar la ubicación del código"
+msgstr "Reordenar las funciones para mejorar la ubicación del código"
#: common.opt:710
msgid "Add a common subexpression elimination pass after loop optimizations"
-msgstr "Ejecuta un paso de eliminación de subexpresión común después de las optimizaciones de ciclos"
+msgstr "Ejecutar un paso de eliminación de subexpresión común después de las optimizaciones de ciclos"
#: common.opt:714
msgid "Run the loop optimizer twice"
-msgstr "Ejecuta el optimizador de ciclos dos veces"
+msgstr "Ejecutar el optimizador de ciclos dos veces"
#: common.opt:718
msgid "Disable optimizations that assume default FP rounding behavior"
-msgstr "Desactiva las optimizaciones que asumen la conducta de un FP que redondea por defecto"
+msgstr "Desactivar las optimizaciones que asumen la conducta de un FP que redondea por defecto"
#: common.opt:722
msgid "Enable scheduling across basic blocks"
-msgstr "Activa la calendarización entre bloques básicos"
+msgstr "Activar la calendarización entre bloques básicos"
#: common.opt:726
msgid "Allow speculative motion of non-loads"
-msgstr "Permite el movimiento especulativo de ninguna carga"
+msgstr "Permitir el movimiento especulativo de ninguna carga"
#: common.opt:730
msgid "Allow speculative motion of some loads"
-msgstr "Permite el movimiento especulativo de algunas cargas"
+msgstr "Permitir el movimiento especulativo de algunas cargas"
#: common.opt:734
msgid "Allow speculative motion of more loads"
-msgstr "Permite el movimiento especulativo de más cargas"
+msgstr "Permitir el movimiento especulativo de más cargas"
#: common.opt:738
-#, fuzzy
msgid "Set the verbosity level of the scheduler"
-msgstr "-fsched-verbose=<número>\tEstablece el nivel de detalle del calendarizador"
+msgstr "Establecer el nivel de detalle del calendarizador"
#: common.opt:742
msgid "If scheduling post reload, do superblock scheduling"
-msgstr "Si se calendariza después de la recarga, hace calendarización de superbloque"
+msgstr "Si se calendariza después de la recarga, hacer calendarización de superbloque"
#: common.opt:746
msgid "If scheduling post reload, do trace scheduling"
-msgstr "Si se calendariza después de la recarga, hace trazado de calendarización"
+msgstr "Si se calendariza después de la recarga, hacer trazado de calendarización"
#: common.opt:750
msgid "Reschedule instructions before register allocation"
-msgstr "Recalendariza las instrucciones antes del alojamiento de registros"
+msgstr "Recalendarizar las instrucciones antes del alojamiento de registros"
#: common.opt:754
msgid "Reschedule instructions after register allocation"
-msgstr "Recalendariza las instrucciones después del alojamiento de registros"
+msgstr "Recalendarizar las instrucciones después del alojamiento de registros"
#: common.opt:760
msgid "Allow premature scheduling of queued insns"
-msgstr "Permite la calendarización prematura de insns encoladas"
+msgstr "Permitir la calendarización prematura de insns encoladas"
#: common.opt:764
-#, fuzzy
msgid "Set number of queued insns that can be prematurely scheduled"
-msgstr "-fsched-stalled-insns=<número>\tEstablece el número de insns encoladas que se pueden calendarizar prematuramente"
+msgstr "Establecer el número de insns encoladas que se pueden calendarizar prematuramente"
#: common.opt:772 common.opt:776
msgid "Set dependence distance checking in premature scheduling of queued insns"
-msgstr "Establece la revisión de distancia de dependencias en la calendarización prematura de insns encoladas"
+msgstr "Establecer la revisión de distancia de dependencias en la calendarización prematura de insns encoladas"
#: common.opt:780
msgid "Mark data as shared rather than private"
-msgstr "Marca datos como compartidos en lugar de privados"
+msgstr "Marcar datos como compartidos en lugar de privados"
#: common.opt:784
msgid "Show column numbers in diagnostics, when available. Default on"
-msgstr ""
+msgstr "Mostrar los números de columna en los diagnósticos, cuando estén disponible. Activado por defecto"
#: common.opt:788
msgid "Disable optimizations observable by IEEE signaling NaNs"
-msgstr "Desactiva optimizaciones observables con IEEE señalando NaNs"
+msgstr "Desactivar optimizaciones observables con IEEE señalando NaNs"
#: common.opt:792
msgid "Convert floating point constants to single precision constants"
-msgstr "Convierte constantes de coma flotante a constantes de precisión simple"
+msgstr "Convertir constantes de coma flotante a constantes de precisión simple"
#: common.opt:796
-#, fuzzy
msgid "Split lifetimes of induction variables when loops are unrolled"
-msgstr "Divide tiempos de vida de las variables de inducción cuando se desenrollen los ciclos."
+msgstr "Dividir los tiempos de vida de las variables de inducción cuando se desenrollen los ciclos"
#: common.opt:800
-#, fuzzy
msgid "Apply variable expansion when loops are unrolled"
-msgstr "Aplica la expansión de variables cuando se desenrollan los ciclos."
+msgstr "Aplicar la expansión de variables cuando se desenrollan los ciclos"
#: common.opt:806
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"
#: common.opt:813
-#, fuzzy
msgid "Trap if the stack goes past <register>"
-msgstr "-fstack-limit-register=<registro>\tCaptura si la pila pasa del <registro>"
+msgstr "Capturar si la pila pasa del <registro>"
#: common.opt:817
-#, fuzzy
msgid "Trap if the stack goes past symbol <name>"
-msgstr "-fstack-limit-symbol=<name>\tCaptura si la pila pasa del símbolo <nombre>"
+msgstr "Capturar si la pila pasa del símbolo <nombre>"
#: common.opt:821
msgid "Use propolice as a stack protection method"
-msgstr ""
+msgstr "Usar propolice como un método de protección de pila"
#: common.opt:825
msgid "Use a stack protection method for every function"
-msgstr ""
+msgstr "Usar un método de protección de pila para cada función"
#: common.opt:829
msgid "Perform strength reduction optimizations"
-msgstr "Realiza optimizaciones de reducción de fuerza"
+msgstr "Realizar optimizaciones de reducción de fuerza"
#: common.opt:837
msgid "Assume strict aliasing rules apply"
-msgstr "Asume que se aplican las reglas estrictas de alias"
+msgstr "Asumir que se aplican las reglas estrictas de alias"
#: common.opt:841
msgid "Check for syntax errors, then stop"
-msgstr "Busca errores de sintaxis, y entonces detenerse"
+msgstr "Buscar errores de sintaxis, y entonces detenerse"
#: common.opt:845
msgid "Create data files needed by \"gcov\""
-msgstr "Crea ficheros de datos necesarios para \"gcov\""
+msgstr "Crear ficheros de datos necesarios para \"gcov\""
#: common.opt:849
msgid "Perform jump threading optimizations"
-msgstr "Realiza optimizaciones de hilado de saltos"
+msgstr "Realizar optimizaciones de hilado de saltos"
#: common.opt:853
msgid "Report the time taken by each compiler pass"
-msgstr "Reporta el tiempo tomado por cada paso del compilador"
+msgstr "Reportar el tiempo tomado por cada paso del compilador"
#: common.opt:857
-#, fuzzy
msgid "Set the default thread-local storage code generation model"
-msgstr "-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]\tIndica el modelo de generación de código por defecto para almacenamiento thread-local"
+msgstr "Establecer el modelo de generación de código por defecto para almacenamiento thread-local"
#: common.opt:861
msgid "Perform superblock formation via tail duplication"
-msgstr "Realiza la formación de superbloques a través de la duplicación de colas"
+msgstr "Realizar la formación de superbloques a través de la duplicación de colas"
#: common.opt:868
msgid "Assume floating-point operations can trap"
-msgstr "Asume que las operaciones de coma flotante pueden capturar"
+msgstr "Asumir que las operaciones de coma flotante pueden capturar"
#: common.opt:872
msgid "Trap for signed overflow in addition, subtraction and multiplication"
-msgstr "Atrapa desbordamientos signed en adición, sustracción y multiplicación"
+msgstr "Atrapar desbordamientos signed en adición, sustracción y multiplicación"
#: common.opt:876
msgid "Enable SSA-CCP optimization on trees"
-msgstr "Activa las optimizaciones SSA-CCP en árboles"
+msgstr "Activar las optimizaciones SSA-CCP en árboles"
#: common.opt:880
-#, fuzzy
msgid "Enable SSA-CCP optimization for stores and loads"
-msgstr "Activa las optimizaciones SSA-CCP en árboles"
+msgstr "Activar las optimizaciones SSA-CCP en árboles para almacenamientos y cargas"
#: common.opt:884
msgid "Enable loop header copying on trees"
-msgstr "Activa la copia de encabezado de ciclo en árboles"
+msgstr "Activar la copia de encabezado de ciclo en árboles"
#: common.opt:888
msgid "Coalesce memory temporaries in the SSA->normal pass"
-msgstr "Coalesce temporales de memoria en el paso SSA->normal"
+msgstr "Coalescer temporales de memoria en el paso SSA->normal"
#: common.opt:892
-#, fuzzy
msgid "Replace SSA temporaries with better names in copies"
-msgstr "Reemplaza temporales SSA con mejores nombres en las copias."
+msgstr "Reemplazar temporales SSA con mejores nombres en las copias"
#: common.opt:896
-#, fuzzy
msgid "Enable copy propagation on trees"
-msgstr "Activa la vectorización de ciclos en árboles"
+msgstr "Activa la propagación de copia en árboles"
#: common.opt:900
-#, fuzzy
msgid "Enable copy propagation for stores and loads"
-msgstr "Activa las optimizaciones de ciclo a nivel de árbol"
+msgstr "Activa la propagación de copia para almacenamientos y cargas"
#: common.opt:904
msgid "Enable SSA dead code elimination optimization on trees"
-msgstr "Activa la optimización de eliminación de código muerto SSA en árboles"
+msgstr "Activar la optimización de eliminación de código muerto SSA en árboles"
#: common.opt:908
msgid "Enable dominator optimizations"
-msgstr "Activa las optimizaciones dominadoras"
+msgstr "Activar las optimizaciones dominadoras"
#: common.opt:912
msgid "Enable dead store elimination"
-msgstr "Activa la eliminación de almacenamiento muerto"
+msgstr "Activar la eliminación de almacenamiento muerto"
#: common.opt:916
msgid "Enable Full Redundancy Elimination (FRE) on trees"
-msgstr "Activa la Eliminación de Redundancia Completa en árboles"
+msgstr "Activar la Eliminación de Redundancia Completa en árboles"
#: common.opt:920
msgid "Enable loop invariant motion on trees"
-msgstr "Permite movimiento invariante de ciclo en árboles"
+msgstr "Permitir movimiento invariante de ciclo en árboles"
#: common.opt:924
msgid "Enable linear loop transforms on trees"
-msgstr "Activa las transformaciones lineales de ciclos en árboles"
+msgstr "Activar las transformaciones lineales de ciclos en árboles"
#: common.opt:928
msgid "Create canonical induction variables in loops"
-msgstr "Crea variables de inducción canónica en los ciclos"
+msgstr "Crear variables de inducción canónica en los ciclos"
#: common.opt:932
msgid "Enable loop optimizations on tree level"
-msgstr "Activa las optimizaciones de ciclo a nivel de árbol"
+msgstr "Activar las optimizaciones de ciclo a nivel de árbol"
#: common.opt:936
msgid "Enable SSA-PRE optimization on trees"
-msgstr "Activa las optimizaciones SSA-PRE en árboles"
+msgstr "Activar las optimizaciones SSA-PRE en árboles"
#: common.opt:940
msgid "Perform structural alias analysis"
-msgstr ""
+msgstr "Realizar análisis de aliases estructural"
#: common.opt:944
-#, fuzzy
msgid "Enable SSA code sinking on trees"
-msgstr "Activa las optimizaciones SSA-CCP en árboles"
+msgstr "Activar el hundimiento de código SSA en árboles"
#: common.opt:948
msgid "Perform scalar replacement of aggregates"
-msgstr "Realiza reemplazo escalar de agregados"
+msgstr "Realizar reemplazo escalar de agregados"
#: common.opt:952
msgid "Replace temporary expressions in the SSA->normal pass"
-msgstr "Reemplaza expresiones temporales en el paso SSA->normal"
+msgstr "Reemplazar expresiones temporales en el paso SSA->normal"
#: common.opt:956
-#, fuzzy
msgid "Perform live range splitting during the SSA->normal pass"
-msgstr "Realiza división de rango vivo durante el paso SSA->normal."
+msgstr "Realizar división de rango vivo durante el paso SSA->normal"
#: common.opt:960
-#, fuzzy
msgid "Perform Value Range Propagation on trees"
-msgstr "Realiza el paso de optimización de copia-propagación de registros"
+msgstr "Realizar la Propagación de Rango Valor en árboles"
#: common.opt:964
msgid "Compile whole compilation unit at a time"
-msgstr "Compila la unidad de compilación completa a la vez"
+msgstr "Compilar la unidad de compilación completa a la vez"
#: common.opt:968
msgid "Perform loop unrolling when iteration count is known"
-msgstr "Realiza el desenrollamiento del ciclo cuando se conoce la cuenta de iteración"
+msgstr "Realizar el desenrollamiento del ciclo cuando se conoce la cuenta de iteración"
#: common.opt:972
msgid "Perform loop unrolling for all loops"
-msgstr "Realiza el desenrollamiento del ciclo para todos los ciclos"
+msgstr "Realizar el desenrollamiento del ciclo para todos los ciclos"
#: common.opt:979
msgid "Allow loop optimizations to assume that the loops behave in normal way"
-msgstr ""
+msgstr "Permitir que las optimizaciones de ciclo asuman que los ciclos se comportan normalmente"
#: common.opt:987
msgid "Allow math optimizations that may violate IEEE or ISO standards"
-msgstr "Permite optimizaciones matemáticas que pueden violar los estándares IEEE ó ISO"
+msgstr "Permitir optimizaciones matemáticas que pueden violar los estándares IEEE ó ISO"
#: common.opt:991
msgid "Perform loop unswitching"
-msgstr "Realiza la eliminación de opciones del ciclo"
+msgstr "Realizar la eliminación de opciones del ciclo"
#: common.opt:995
msgid "Just generate unwind tables for exception handling"
-msgstr "Sólo genera tablas de desenredo para manejo de excepciones"
+msgstr "Sólo generar tablas de desenredo para manejo de excepciones"
#: common.opt:999
msgid "Perform variable tracking"
-msgstr "Realiza seguimiento de variables"
+msgstr "Realizar seguimiento de variables"
#: common.opt:1003
msgid "Enable loop vectorization on trees"
-msgstr "Activa la vectorización de ciclos en árboles"
+msgstr "Activar la vectorización de ciclos en árboles"
#: common.opt:1007
-#, fuzzy
msgid "Enable loop versioning when doing loop vectorization on trees"
-msgstr "Activa la vectorización de ciclos en árboles"
+msgstr "Activar las versiones de ciclo cuando se hace vectorización de ciclos en árboles"
#: common.opt:1011
-#, fuzzy
msgid "Set the verbosity level of the vectorizer"
-msgstr "-ftree-vectorizer-verbose=<número>\tEstablece el nivel de detalle del vectorizador"
+msgstr "Establecer el nivel de detalle del vectorizador"
#: common.opt:1021
msgid "Add extra commentary to assembler output"
-msgstr "Agrega comentarios extra a la salida de ensamblador"
+msgstr "Agregar comentarios extra a la salida de ensamblador"
#: common.opt:1025
msgid "Set the default symbol visibility"
-msgstr ""
+msgstr "Establecer la visibilidad de símbolos por defecto"
#: common.opt:1030
msgid "Use expression value profiles in optimizations"
-msgstr "Usa perfiles de valor de expresión en las optimizaciones"
+msgstr "Usar perfiles de valor de expresión en las optimizaciones"
#: common.opt:1034
msgid "Construct webs and split unrelated uses of single variable"
-msgstr "Construye redes y dividir usos no relacionados de una sola variable"
+msgstr "Construir redes y dividir usos no relacionados de una sola variable"
#: common.opt:1038
-#, fuzzy
msgid "Perform whole program optimizations"
-msgstr "Realiza optimizaciones de ciclo"
+msgstr "Realizar optimizaciones del programa completo"
# wraps around? No entiendo bien. cfuga
#: common.opt:1042
msgid "Assume signed arithmetic overflow wraps around"
-msgstr "Asume que el desbordamiento aritmético con signo se envuelve"
+msgstr "Asumir que el desbordamiento aritmético con signo se envuelve"
#: common.opt:1046
msgid "Put zero initialized data in the bss section"
-msgstr "Pone datos inicializados a cero en la sección bss"
+msgstr "Poner datos inicializados a cero en la sección bss"
#: common.opt:1050
msgid "Generate debug information in default format"
-msgstr "Genera información de depuración en el formato por defecto"
+msgstr "Generar información de depuración en el formato por defecto"
#: common.opt:1054
msgid "Generate debug information in COFF format"
-msgstr "Genera información de depuración en el formato COFF"
+msgstr "Generar información de depuración en el formato COFF"
#: common.opt:1058
msgid "Generate debug information in DWARF v2 format"
-msgstr "Genera información de depuración en el formato DWARF v2"
+msgstr "Generar información de depuración en el formato DWARF v2"
#: common.opt:1062
msgid "Generate debug information in default extended format"
-msgstr "Genera información de depuración en el formato extendido por defecto"
+msgstr "Generar información de depuración en el formato extendido por defecto"
#: common.opt:1066
msgid "Generate debug information in STABS format"
-msgstr "Genera información de depuración en el formato STABS"
+msgstr "Generar información de depuración en el formato STABS"
#: common.opt:1070
msgid "Generate debug information in extended STABS format"
-msgstr "Genera información de depuración en el formato STABS extendido"
+msgstr "Generar información de depuración en el formato STABS extendido"
#: common.opt:1074
msgid "Generate debug information in VMS format"
-msgstr "Genera información de depuración en el formato VMS"
+msgstr "Generar información de depuración en el formato VMS"
#: common.opt:1078
msgid "Generate debug information in XCOFF format"
-msgstr "Genera información de depuración en el formato XCOFF"
+msgstr "Generar información de depuración en el formato XCOFF"
#: common.opt:1082
msgid "Generate debug information in extended XCOFF format"
-msgstr "Genera información de depuración en el formato XCOFF extendido"
+msgstr "Generar información de depuración en el formato XCOFF extendido"
#: common.opt:1086
-#, fuzzy
msgid "Place output into <file>"
-msgstr "-o <fichero>\tColoca la salida en el <fichero>"
+msgstr "Colocar la salida en el <fichero>"
#: common.opt:1090
msgid "Enable function profiling"
-msgstr "Activa el análisis de perfil de las funciones"
+msgstr "Activar el análisis de perfil de las funciones"
#: common.opt:1094
msgid "Issue warnings needed for strict compliance to the standard"
-msgstr "Activa los avisos necesarios para cumplir estrictamente con el estándard"
+msgstr "Activar los avisos necesarios para cumplir estrictamente con el estándard"
#: common.opt:1098
msgid "Like -pedantic but issue them as errors"
@@ -14078,15 +13738,15 @@ msgstr "Como -pedantic pero los muestra como errores"
#: common.opt:1102
msgid "Do not display functions compiled or elapsed time"
-msgstr "No muestra las funciones compiladas o el tiempo transcurrido"
+msgstr "No mostrar las funciones compiladas o el tiempo transcurrido"
#: common.opt:1106
msgid "Display the compiler's version"
-msgstr "Muestra la versión del compilador"
+msgstr "Mostrar la versión del compilador"
#: common.opt:1110
msgid "Suppress warnings"
-msgstr "Suprime avisos"
+msgstr "Suprimir avisos"
#: attribs.c:175
#, gcc-internal-format
@@ -14109,9 +13769,9 @@ msgid "%qs attribute only applies to function types"
msgstr "el atributo %qs se aplica solamente a tipos de funciones"
#: bb-reorder.c:1872
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "multiple hot/cold transitions found (bb %i)"
-msgstr "declaraciones múltiples para el método `%s'"
+msgstr "se encontraron múltiples transiciones caliente/frío (bb %i)"
#: bt-load.c:1504
#, gcc-internal-format
@@ -14266,19 +13926,19 @@ msgid "second parameter of %<va_start%> not last named argument"
msgstr "el segundo parámetro de %<va_start%> no es el último argumento nombrado"
#: builtins.c:9880
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hfirst argument of %D must be a pointer, second integer constant"
-msgstr "el bit de inicio en POS debe ser una constante entera"
+msgstr "%Hel primer argumento de %D debe ser un puntero, el segundo una constante entera"
#: builtins.c:9893
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hlast argument of %D is not integer constant between 0 and 3"
-msgstr "el argumento de `asm' no es una cadena constante"
+msgstr "%Hel último argumento de %D es una constante no entera entre 0 y 3"
#: builtins.c:9939 builtins.c:10092 builtins.c:10160
#, gcc-internal-format
msgid "%Hcall to %D will always overflow destination buffer"
-msgstr ""
+msgstr "%Hla llamada a %D siempre desbordará el almacenamiento temporal destino"
#: c-common.c:831
#, gcc-internal-format
@@ -14342,9 +14002,9 @@ msgid "overflow in implicit constant conversion"
msgstr "desbordamiento en la conversión implícita de constante"
#: c-common.c:1185
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "operation on %qE may be undefined"
-msgstr "la operación sobre %qs puede no estar definida"
+msgstr "la operación sobre %qE puede estar indefinida"
#: c-common.c:1471
#, gcc-internal-format
@@ -14531,9 +14191,9 @@ 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:4095
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qE attribute ignored for field of type %qT"
-msgstr "se ignora el atributo %qE en tipos"
+msgstr "se ignora el atributo %qE para el campo de tipo %qT"
#: c-common.c:4106 c-common.c:4125 c-common.c:4143 c-common.c:4170
#: c-common.c:4189 c-common.c:4212 c-common.c:4233 c-common.c:4258
@@ -14542,14 +14202,14 @@ msgstr "se ignora el atributo %qE en tipos"
#: c-common.c:4879 c-common.c:4975 c-common.c:5041 c-common.c:5059
#: c-common.c:5105 c-common.c:5175 c-common.c:5199 c-common.c:5498
#: c-common.c:5521 c-common.c:5560
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qE attribute ignored"
-msgstr "se ignora el atributo %qs"
+msgstr "se ignora el atributo %qE"
#: c-common.c:4313
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qE attribute have effect only on public objects"
-msgstr "%Jel atributo %qE sólo se aplica a funciones"
+msgstr "el atributo %qE sólo tiene efecto en objetos públicos"
#: c-common.c:4520
#, gcc-internal-format
@@ -14597,14 +14257,14 @@ 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:4656
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "section of %q+D conflicts with previous declaration"
-msgstr "%Jla sección de %qD causa conflictos con la declaración previa"
+msgstr "la sección de %q+D causa conflictos con la declaración previa"
#: c-common.c:4665
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "section attribute not allowed for %q+D"
-msgstr "%Jno se permite un atributo de sección para %qD"
+msgstr "no se permite un atributo de sección para %q+D"
#: c-common.c:4671
#, gcc-internal-format
@@ -14627,14 +14287,14 @@ msgid "requested alignment is too large"
msgstr "la alineación solicitada es demasiado grande"
#: c-common.c:4739
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "alignment may not be specified for %q+D"
-msgstr "%Jla alineación puede no estar especificada para %qD"
+msgstr "la alineación puede no estar especificada para %q+D"
#: c-common.c:4777
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D defined both normally and as an alias"
-msgstr "%J%qD definido normalmente y como un alias"
+msgstr "%q+D definido normalmente y como un alias"
#: c-common.c:4793
#, gcc-internal-format
@@ -14644,12 +14304,12 @@ msgstr "el argumento de alias no es una cadena"
#: c-common.c:4844
#, gcc-internal-format
msgid "%Jweakref attribute must appear before alias attribute"
-msgstr ""
+msgstr "%Jel atributo weakref debe aparecer antes de los atributos de alias"
#: c-common.c:4872
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qE attribute ignored on non-class types"
-msgstr "se ignora el atributo %qs en tipos que no son clases"
+msgstr "se ignora el atributo %qE en tipos que no son clases"
#: c-common.c:4885
#, gcc-internal-format
@@ -14687,24 +14347,24 @@ msgid "%Jcan%'t set %qE attribute after definition"
msgstr "%Jno se puede establecer el atributo %qE después de la definición"
#: c-common.c:5173
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qE attribute ignored for %qE"
-msgstr "se ignora el atributo %qs para %qs"
+msgstr "se ignora el atributo %qE para %qE"
#: c-common.c:5228
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid vector type for attribute %qE"
-msgstr "tipo vector inválido para el atributo %qs"
+msgstr "tipo vector inválido para el atributo %qE"
#: c-common.c:5234
#, gcc-internal-format
msgid "vector size not an integral multiple of component size"
-msgstr ""
+msgstr "el tamaño del vector no es un entero múltiple de tamaño del componente"
#: c-common.c:5240
#, gcc-internal-format
msgid "zero vector size"
-msgstr ""
+msgstr "vector de tamaño cero"
#: c-common.c:5248
#, gcc-internal-format
@@ -14732,9 +14392,9 @@ msgid "nonnull argument references non-pointer operand (argument %lu, operand %l
msgstr "un argumento que no es nulo hace referencia a un operando que no es puntero (argumento %lu, operando %lu)"
#: c-common.c:5381 c-common.c:5404
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "not enough variable arguments to fit a sentinel"
-msgstr "no hay suficientes argumentos para ajustar un centinela"
+msgstr "no hay suficientes argumentos variables para ajustar un centinela"
#: c-common.c:5425
#, gcc-internal-format
@@ -14757,14 +14417,14 @@ msgid "cleanup argument not a function"
msgstr "el argumento de limpieza no es una función"
#: c-common.c:5578
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qE attribute requires prototypes with named arguments"
-msgstr "el atributo %qs requiere prototipos con argumentos nombrados"
+msgstr "el atributo %qE requiere prototipos con argumentos nombrados"
#: c-common.c:5589
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qE attribute only applies to variadic functions"
-msgstr "el atributo %qs se aplica solamente a funciones variadic"
+msgstr "el atributo %qE se aplica solamente a funciones variadic"
#: c-common.c:5600
#, gcc-internal-format
@@ -14846,9 +14506,9 @@ msgid "conversion to non-scalar type requested"
msgstr "se solicitó conversión a tipo no escalar"
#: c-decl.c:564
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "array %q+D assumed to have one element"
-msgstr "%Jse asume que la matriz %qD tiene un elemento"
+msgstr "se asume que la matriz %q+D tiene un elemento"
#: c-decl.c:669
#, gcc-internal-format
@@ -14856,34 +14516,34 @@ msgid "GCC supports only %u nested scopes"
msgstr "GCC tiene soporte sólo para %u ámbitos anidados"
#: c-decl.c:755 cp/decl.c:354 java/decl.c:1700
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "label %q+D used but not defined"
-msgstr "se usa la etiqueta %qD pero no está definida"
+msgstr "se usa la etiqueta %q+D pero no está definida"
#: c-decl.c:761 cp/decl.c:365 java/decl.c:1705
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "label %q+D defined but not used"
-msgstr "se define la etiqueta %qD pero no se usa"
+msgstr "se define la etiqueta %q+D pero no se usa"
#: c-decl.c:763
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "label %q+D declared but not defined"
-msgstr "%Jla etiqueta %qD está declarada pero no está definida"
+msgstr "se declara la etiqueta %q+D pero no está definida"
#: c-decl.c:798
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "nested function %q+D declared but never defined"
-msgstr "%Jla función anidada %qD está declarada pero nunca se definió"
+msgstr "se declara la función anidada %q+D pero nunca se definió"
#: c-decl.c:812 cp/decl.c:559
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "unused variable %q+D"
-msgstr "%Jvariable %qD sin uso"
+msgstr "variable %q+D sin usar"
#: c-decl.c:816
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "type of array %q+D completed incompatibly with implicit initialization"
-msgstr "%Jel tipo de la matriz %qD se completó de forma incompatible con la inicialización implícita"
+msgstr "el tipo de la matriz %q+D se completó de forma incompatible con la inicialización implícita"
#: c-decl.c:1050
#, gcc-internal-format
@@ -14896,180 +14556,180 @@ msgid "an argument type that has a default promotion can%'t match an empty param
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:1092
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "prototype for %q+D declares more arguments than previous old-style definition"
-msgstr "%Jel prototipo para %qD declara más argumentos que la definición anterior de estilo antiguo"
+msgstr "el prototipo para %q+D declara más argumentos que la definición anterior de estilo antiguo"
#: c-decl.c:1098
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "prototype for %q+D declares fewer arguments than previous old-style definition"
-msgstr "%Jel prototipo para %qD declara menos argumentos que la definición anterior de estilo antiguo"
+msgstr "el prototipo para %q+D declara menos argumentos que la definición anterior de estilo antiguo"
#: c-decl.c:1107
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "prototype for %q+D declares argument %d with incompatible type"
-msgstr "%Jel prototipo para %qD declara el argumento %d con un tipo incompatible"
+msgstr "el prototipo para %q+D 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:1120
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "prototype for %q+D follows non-prototype definition"
-msgstr "%Jel prototipo para %qD a continuación de una definición que no es prototipo"
+msgstr "el prototipo para %q+D a continuación de una definición que no es prototipo"
#: c-decl.c:1135
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "previous definition of %q+D was here"
-msgstr "%Jla definición previa de %qD estaba aquí"
+msgstr "la definición previa de %q+D estaba aquí"
#: c-decl.c:1137
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "previous implicit declaration of %q+D was here"
-msgstr "%Jla declaración implícita previa de %qD estaba aquí"
+msgstr "la declaración implícita previa de %q+D estaba aquí"
#: c-decl.c:1139
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "previous declaration of %q+D was here"
-msgstr "%Jla declaración previa de %qD estaba aquí"
+msgstr "la declaración previa de %q+D estaba aquí"
#: c-decl.c:1179
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D redeclared as different kind of symbol"
-msgstr "%q#D redeclarado como un tipo diferente de símbolo"
+msgstr "%q+D redeclarado como un tipo diferente de símbolo"
#: c-decl.c:1183
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "built-in function %q+D declared as non-function"
-msgstr "%Jla función interna %qD no es declarada como función"
+msgstr "la función interna %q+D no es declarada como función"
#: c-decl.c:1186 c-decl.c:1302 c-decl.c:1926
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "declaration of %q+D shadows a built-in function"
-msgstr "%Jla declaración de %qD oscurece una función interna"
+msgstr "la declaración de %q+D oscurece una función interna"
#: c-decl.c:1195
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "redeclaration of enumerator %q+D"
-msgstr "%Jredeclaración del enumerador %qD"
+msgstr "redeclaración del enumerador %q+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:1216
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "conflicting types for built-in function %q+D"
-msgstr "%Jtipos en conflicto para la función interna %qD"
+msgstr "tipos en conflicto para la función interna %q+D"
#: c-decl.c:1240 c-decl.c:1253 c-decl.c:1263
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "conflicting types for %q+D"
-msgstr "%Jtipos en conflicto para %qD"
+msgstr "tipos en conflicto para %q+D"
#: c-decl.c:1261
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "conflicting type qualifiers for %q+D"
-msgstr "%Jcalificadores de tipos en conflicto para %qD"
+msgstr "calificadores de tipos en conflicto para %q+D"
#. Allow OLDDECL to continue in use.
#: c-decl.c:1278
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "redefinition of typedef %q+D"
-msgstr "%Jredefinición de la definición de tipo %qD"
+msgstr "redefinición de la definición de tipo %q+D"
#: c-decl.c:1326 c-decl.c:1404
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "redefinition of %q+D"
-msgstr "%Jredefinición de %qD"
+msgstr "redefinición de %q+D"
#: c-decl.c:1361 c-decl.c:1442
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "static declaration of %q+D follows non-static declaration"
-msgstr "%Jla declaración static de %qD a continuación de una no static"
+msgstr "la declaración static de %q+D a continuación de una no static"
#: c-decl.c:1371 c-decl.c:1378 c-decl.c:1431 c-decl.c:1439
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "non-static declaration of %q+D follows static declaration"
-msgstr "%Jla declaración no static de %qD a continuación de una static"
+msgstr "la declaración no static de %q+D a continuación de una static"
#: c-decl.c:1391
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "thread-local declaration of %q+D follows non-thread-local declaration"
-msgstr "%Jla declaración thread-local de %qD a continuación de una que no es thread-local"
+msgstr "la declaración thread-local de %q+D a continuación de una que no es thread-local"
#: c-decl.c:1394
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "non-thread-local declaration of %q+D follows thread-local declaration"
-msgstr "%Jla declaración que no es thread-local de %qD a continuación de una thread-local"
+msgstr "la declaración que no es thread-local de %q+D a continuación de una thread-local"
#: c-decl.c:1424
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "extern declaration of %q+D follows declaration with no linkage"
-msgstr "%Jla declaración extern de %qD a continuación de una declaración sin enlazado"
+msgstr "la declaración extern de %q+D a continuación de una declaración sin enlazado"
#: c-decl.c:1460
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "declaration of %q+D with no linkage follows extern declaration"
-msgstr "%Jla declaración de %qD sin enlazado a continuación de una declaración extern"
+msgstr "la declaración de %q+D sin enlazado a continuación de una declaración extern"
#: c-decl.c:1466
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "redeclaration of %q+D with no linkage"
-msgstr "%Jdeclaración previa de %qD sin enlazado"
+msgstr "redeclaración de %q+D sin enlazado"
#: c-decl.c:1480
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "redeclaration of %q+D with different visibility (old visibility preserved)"
-msgstr "%Jredeclaración de %qD con visibilidad diferente (se preserva la visibilidad anterior)"
+msgstr "redeclaración de %q+D con visibilidad diferente (se preserva la visibilidad anterior)"
#: c-decl.c:1491
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "inline declaration of %qD follows declaration with attribute noinline"
-msgstr "%Jla declaración inline de %qD a continuación de una declaración con atributo noinline"
+msgstr "la declaración inline de %qD a continuación de una declaración con atributo noinline"
#: c-decl.c:1498
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "declaration of %q+D with attribute noinline follows inline declaration "
-msgstr "%Jla declaración de %qD con atributo noinline a continuación de la declaración inline "
+msgstr "la declaración de %q+D con atributo noinline a continuación de la declaración inline "
#: c-decl.c:1513
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D declared inline after being called"
-msgstr "%J%qD declarado inline antes de ser llamado"
+msgstr "%q+D declarado inline antes de ser llamado"
#: c-decl.c:1518
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D declared inline after its definition"
-msgstr "%J%qD declarado inline después de su definición"
+msgstr "%q+D declarado inline después de su definición"
#: c-decl.c:1537
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "redefinition of parameter %q+D"
-msgstr "%Jredefinición del parámetro %qD"
+msgstr "redefinición del parámetro %q+D"
#: c-decl.c:1564
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "redundant redeclaration of %q+D"
-msgstr "%Jdeclaración redundante de %qD"
+msgstr "redeclaración redundante de %q+D"
#: c-decl.c:1913
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "declaration of %q+D shadows previous non-variable"
-msgstr "%Jla declaración de %qD oscurece a una declaración previa que no es variable"
+msgstr "la declaración de %q+D oscurece a una declaración previa que no es variable"
#: c-decl.c:1918
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "declaration of %q+D shadows a parameter"
-msgstr "la declaración de %q#D oscurece un parámetro"
+msgstr "la declaración de %q+D oscurece un parámetro"
#: c-decl.c:1921
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "declaration of %q+D shadows a global declaration"
-msgstr "la declaración de %qD oscurece a una declaración global"
+msgstr "la declaración de %q+D oscurece a una declaración global"
#: c-decl.c:1931
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "declaration of %q+D shadows a previous local"
-msgstr "la declaración de %qD oscurece a una declaración local previa"
+msgstr "la declaración de %q+D oscurece a una declaración local previa"
#: c-decl.c:1934 cp/name-lookup.c:954 cp/name-lookup.c:985
#: cp/name-lookup.c:993
@@ -15098,24 +14758,24 @@ msgid "incompatible implicit declaration of function %qD"
msgstr "declaración implícita incompatible de la función %qD"
#: c-decl.c:2426
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%qE undeclared here (not in a function)"
-msgstr "%qE no se declaró aquí (no en una función)"
+msgstr "%H%qE no se declaró aquí (no en una función)"
#: c-decl.c:2431
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%qE undeclared (first use in this function)"
-msgstr "%qE no se declaró aquí (primer uso en esta función)"
+msgstr "%H%qE no se declaró aquí (primer uso en esta función)"
#: c-decl.c:2435
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H(Each undeclared identifier is reported only once"
-msgstr "(Cada identificador no declarado solamente se reporta una vez"
+msgstr "%H(Cada identificador no declarado solamente se reporta una vez"
#: c-decl.c:2436
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Hfor each function it appears in.)"
-msgstr "para cada funcion en la que aparece.)"
+msgstr "%Hara cada funcion en la que aparece.)"
#: c-decl.c:2474 cp/decl.c:2134
#, gcc-internal-format
@@ -15123,9 +14783,9 @@ msgid "label %qE referenced outside of any function"
msgstr "la etiqueta %qE es referenciada fuera de cualquier función"
#: c-decl.c:2516
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "duplicate label declaration %qE"
-msgstr "declaración duplicada de la etiqueta %qs"
+msgstr "declaración duplicada de la etiqueta %qE"
#: c-decl.c:2552
#, gcc-internal-format
@@ -15143,14 +14803,14 @@ msgid "%Jjump into scope of identifier with variably modified type"
msgstr "%Jjump en el ámbito de un identificador con tipo modificado variablemente"
#: c-decl.c:2579
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Htraditional C lacks a separate namespace for labels, identifier %qE conflicts"
-msgstr "%HC tradicional carece de un espacio de nombres separado para etiquetas, el identificador %qs tiene conflictos con"
+msgstr "%HC tradicional carece de un espacio de nombres separado para etiquetas, el identificador %qE tiene conflictos con"
#: c-decl.c:2654
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%qE defined as wrong kind of tag"
-msgstr "%H%qs definido como un tipo erróneo de etiqueta"
+msgstr "%H%qE definido como un tipo erróneo de etiqueta"
#: c-decl.c:2869
#, gcc-internal-format
@@ -15228,9 +14888,9 @@ msgid "static or type qualifiers in abstract declarator"
msgstr "static o calificador de tipo en un declarador abstracto"
#: c-decl.c:3142
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D is usually a function"
-msgstr "%J%qD generalmente es una función"
+msgstr "%q+D generalmente es una función"
#: c-decl.c:3151 cp/decl.c:3706 cp/decl2.c:825
#, gcc-internal-format
@@ -15254,39 +14914,39 @@ msgid "variable %qD has initializer but incomplete type"
msgstr "la variable %qD tiene inicializador pero de tipo de dato incompleto"
#: c-decl.c:3263 c-decl.c:5885 cp/decl.c:3745 cp/decl.c:10133
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "inline function %q+D given attribute noinline"
-msgstr "%Jse le dió a la función inline %qD un atributo noinline"
+msgstr "se le dió a la función inline %q+D un atributo noinline"
#: c-decl.c:3335
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "initializer fails to determine size of %q+D"
-msgstr "el inicializador no puede determinar el tamaño de %qD"
+msgstr "el inicializador no puede determinar el tamaño de %q+D"
#: c-decl.c:3340
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "array size missing in %q+D"
-msgstr "falta el tamaño de la matriz en %qD"
+msgstr "falta el tamaño de la matriz en %q+D"
#: c-decl.c:3352
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "zero or negative size array %q+D"
-msgstr "%Jmatriz %qD de tamaño cero o negativo"
+msgstr "matriz %q+D de tamaño cero o negativo"
#: c-decl.c:3407 varasm.c:1646
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "storage size of %q+D isn%'t known"
-msgstr "no se conoce el tamaño de almacenamiento de %qD"
+msgstr "no se conoce el tamaño de almacenamiento de %q+D"
#: c-decl.c:3417
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "storage size of %q+D isn%'t constant"
-msgstr "el tamaño de almacenamiento de %qD no es constante"
+msgstr "el tamaño de almacenamiento de %q+D no es constante"
#: c-decl.c:3464
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "ignoring asm-specifier for non-static local variable %q+D"
-msgstr "%Jse ignora el especificador asm para la variable local no estática %qD"
+msgstr "se ignora el especificador asm para la variable local no estática %q+D"
#: c-decl.c:3492 fortran/f95-lang.c:667
#, gcc-internal-format
@@ -15507,9 +15167,9 @@ msgid "ISO C forbids qualified function types"
msgstr "ISO C prohíbe los tipos de función calificados"
#: c-decl.c:4444
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "typedef %q+D declared %<inline%>"
-msgstr "%Jla variable %qD se declaró como %<inline%>"
+msgstr "la definición de tipo %q+D se declaró como %<inline%>"
#: c-decl.c:4474
#, gcc-internal-format
@@ -15527,9 +15187,9 @@ msgid "attributes in parameter array declarator ignored"
msgstr "se ignoran los atributos en los declaradores de parámetros de matriz"
#: c-decl.c:4558
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "parameter %q+D declared %<inline%>"
-msgstr "%Jel parámetro %qD se declaró %<inline%>"
+msgstr "el parámetro %q+D se declaró %<inline%>"
#: c-decl.c:4571
#, gcc-internal-format
@@ -15562,9 +15222,9 @@ msgid "variable previously declared %<static%> redeclared %<extern%>"
msgstr "variable previamente declarada como %<static%> redeclarada como %<extern%>"
#: c-decl.c:4712
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "variable %q+D declared %<inline%>"
-msgstr "%Jla variable %qD se declaró como %<inline%>"
+msgstr "la variable %q+D se declaró como %<inline%>"
#. A mere warning is sure to result in improper semantics
#. at runtime. Don't bother to allow this to compile.
@@ -15587,9 +15247,9 @@ 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:4848
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "parameter %u (%q+D) has incomplete type"
-msgstr "%Jel parámetro %u (%qD) tiene tipo incompleto"
+msgstr "el parámetro %u (%q+D) tiene tipo incompleto"
#: c-decl.c:4851
#, gcc-internal-format
@@ -15597,9 +15257,9 @@ msgid "%Jparameter %u has incomplete type"
msgstr "%Jel parámetro %u tiene tipo incompleto"
#: c-decl.c:4860
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "parameter %u (%q+D) has void type"
-msgstr "%Jel parámetro %u (%qD) tiene tipo void"
+msgstr "el parámetro %u (%q+D) tiene tipo void"
#: c-decl.c:4863
#, gcc-internal-format
@@ -15617,9 +15277,9 @@ msgid "%<void%> must be the only parameter"
msgstr "%<void%> debe ser el único parámetro"
#: c-decl.c:4955
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "parameter %q+D has just a forward declaration"
-msgstr "%Jel parámetro %qD sólo tiene una declaración posterior"
+msgstr "el parámetro %q+D sólo tiene una declaración posterior"
#. The %s will be one of 'struct', 'union', or 'enum'.
#: c-decl.c:5000
@@ -15639,24 +15299,24 @@ msgid "its scope is only this definition or declaration, which is probably not w
msgstr "su ámbito es solamente esta definición o declaración, lo cual probablemente no sea lo que desea"
#: c-decl.c:5142
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "redefinition of %<union %E%>"
-msgstr "redefinición de %<union %s%>'"
+msgstr "redefinición de %<union %E%>"
#: c-decl.c:5144
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "redefinition of %<struct %E%>"
-msgstr "redefinición de %<struct %s%>"
+msgstr "redefinición de %<struct %E%>"
#: c-decl.c:5149
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "nested redefinition of %<union %E%>"
-msgstr "redefinición anidada de %<union %s%>"
+msgstr "redefinición anidada de %<union %E%>"
#: c-decl.c:5151
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "nested redefinition of %<struct %E%>"
-msgstr "redefinición anidada de %<struct %s%>"
+msgstr "redefinición anidada de %<struct %E%>"
#: c-decl.c:5222 cp/decl.c:3506
#, gcc-internal-format
@@ -15669,9 +15329,9 @@ msgid "ISO C doesn%'t support unnamed structs/unions"
msgstr "ISO C no tiene soporte para structs/unions sin nombre"
#: c-decl.c:5269 c-decl.c:5285
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "duplicate member %q+D"
-msgstr "%Jmiembro duplicado %qD"
+msgstr "miembro duplicado %q+D"
#: c-decl.c:5324
#, gcc-internal-format
@@ -15719,15 +15379,15 @@ msgid "union cannot be made transparent"
msgstr "union no se puede hacer transparente"
#: c-decl.c:5591
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "nested redefinition of %<enum %E%>"
-msgstr "redefinición anidada de %<enum %s%>"
+msgstr "redefinición anidada de %<enum %E%>"
#. This enum is a named one that has been declared already.
#: c-decl.c:5598
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "redeclaration of %<enum %E%>"
-msgstr "redeclaración de %<enum %s%>"
+msgstr "redeclaración de %<enum %E%>"
#: c-decl.c:5661
#, gcc-internal-format
@@ -15765,54 +15425,54 @@ msgid "return type defaults to %<int%>"
msgstr "el tipo de devolución por defecto es %<int%>"
#: c-decl.c:5971
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "no previous prototype for %q+D"
-msgstr "%Jno hay un prototipo previo para %qD"
+msgstr "no hay un prototipo previo para %q+D"
#: c-decl.c:5980
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D was used with no prototype before its definition"
-msgstr "%Jse usó %qD sin prototipo antes de su definición"
+msgstr "se usó %q+D sin prototipo antes de su definición"
#: c-decl.c:5986
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "no previous declaration for %q+D"
-msgstr "%Jno hay declaración previa para %qD"
+msgstr "no hay declaración previa para %q+D"
#: c-decl.c:5996
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D was used with no declaration before its definition"
-msgstr "%Jse usó %qD sin declaración antes de su definición"
+msgstr "se usó %q+D sin declaración antes de su definición"
#: c-decl.c:6028 c-decl.c:6545
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "return type of %q+D is not %<int%>"
-msgstr "%Jel tipo de devolución de %qD no es %<int%>"
+msgstr "el tipo de devolución de %q+D no es %<int%>"
#: c-decl.c:6043
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "first argument of %q+D should be %<int%>"
-msgstr "%Jel primer argumento de %qD debe ser %<int%>"
+msgstr "el primer argumento de %q+D debe ser %<int%>"
#: c-decl.c:6051
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "second argument of %q+D should be %<char **%>"
-msgstr "%Jel segundo argumento de %qD debe ser %<char **%>"
+msgstr "el segundo argumento de %q+D debe ser %<char **%>"
#: c-decl.c:6060
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "third argument of %q+D should probably be %<char **%>"
-msgstr "%Jel tercer argumento de %qD debería ser %<char **%>"
+msgstr "el tercer argumento de %q+D debería ser %<char **%>"
#: c-decl.c:6070
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D takes only zero or two arguments"
-msgstr "%J%qD sólo toma cero o dos argumentos"
+msgstr "%q+D sólo toma cero o dos argumentos"
#: c-decl.c:6073
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D is normally a non-static function"
-msgstr "%J%qD generalmente es una función no estática"
+msgstr "%q+D generalmente es una función no estática"
#: c-decl.c:6119
#, gcc-internal-format
@@ -15840,34 +15500,34 @@ msgid "%Jparameter name missing from parameter list"
msgstr "%Jfalta el nombre del parámetro de la lista de parámetros"
#: c-decl.c:6203
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D declared as a non-parameter"
-msgstr "%J%qD declarado como un no-parámetro"
+msgstr "%q+D declarado como un no-parámetro"
#: c-decl.c:6208
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "multiple parameters named %q+D"
-msgstr "%Jmúltiples parámetros nombrados %qD"
+msgstr "múltiples parámetros nombrados %q+D"
#: c-decl.c:6216
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "parameter %q+D declared with void type"
-msgstr "%Jel parámetro %qD se declaró con tipo void"
+msgstr "el parámetro %q+D se declaró con tipo void"
#: c-decl.c:6233 c-decl.c:6235
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "type of %q+D defaults to %<int%>"
-msgstr "%Jel tipo de %qD es %<int%> por defecto"
+msgstr "el tipo de %q+D es %<int%> por defecto"
#: c-decl.c:6254
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "parameter %q+D has incomplete type"
-msgstr "%Jel parámetro %qD tiene tipo incompleto"
+msgstr "el parámetro %q+D tiene tipo incompleto"
#: c-decl.c:6260
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "declaration for parameter %q+D but no such parameter"
-msgstr "%Jexiste la declaración para el parámetro %qD pero no hay tal parámetro"
+msgstr "existe la declaración para el parámetro %q+D pero no hay tal parámetro"
#: c-decl.c:6310
#, gcc-internal-format
@@ -15923,14 +15583,14 @@ msgid "%<for%> loop initial declaration used outside C99 mode"
msgstr "se usó la declaración inicial del ciclo %<for%> fuera del modo C99"
#: c-decl.c:6721
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "declaration of static variable %q+D in %<for%> loop initial declaration"
-msgstr "%Jdeclaración de la variable static %qD en la declaración inicial del ciclo %<for%>"
+msgstr "declaración de la variable static %q+D en la declaración inicial del ciclo %<for%>"
#: c-decl.c:6724
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "declaration of %<extern%> variable %q+D in %<for%> loop initial declaration"
-msgstr "%Jdeclaración de la variable %<extern%> %qD en la declaración inicial del ciclo %<for%>"
+msgstr "declaración de la variable %<extern%> %q+D en la declaración inicial del ciclo %<for%>"
#: c-decl.c:6729
#, gcc-internal-format
@@ -15948,14 +15608,14 @@ msgid "%<enum %E%> declared in %<for%> loop initial declaration"
msgstr "%<enum %E%> declarado en la declaración inicial del ciclo %<for%>"
#: c-decl.c:6741
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "declaration of non-variable %q+D in %<for%> loop initial declaration"
-msgstr "%J declaración de %qD que no es variable en la declaración inicial del ciclo %<for%>"
+msgstr "declaración de %q+D que no es variable en la declaración inicial del ciclo %<for%>"
#: c-decl.c:7025 c-decl.c:7176 c-decl.c:7386
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "duplicate %qE"
-msgstr "%qs duplicado"
+msgstr "%qE duplicado"
#: c-decl.c:7048 c-decl.c:7185 c-decl.c:7288
#, gcc-internal-format
@@ -16088,14 +15748,14 @@ msgid "both %<complex%> and %<_Bool%> in declaration specifiers"
msgstr "se usaron al mismo tiempo %<complex%> y %<_Bool%> en los especificadores de declaración"
#: c-decl.c:7305
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qE fails to be a typedef or built in type"
-msgstr "%qs falla al ser un typedef o un tipo interno del compilador"
+msgstr "%qE falla al ser un typedef o un tipo interno del compilador"
#: c-decl.c:7337
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qE is not at beginning of declaration"
-msgstr "%qs no está al inicio de la declaración"
+msgstr "%qE no está al inicio de la declaración"
#: c-decl.c:7351
#, gcc-internal-format
@@ -16128,9 +15788,9 @@ msgid "multiple storage classes in declaration specifiers"
msgstr "múltiples clases de almacenamiento en los especificadores de declaración"
#: c-decl.c:7398
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%<__thread%> used with %qE"
-msgstr "se usó %<__thread%> con %qs"
+msgstr "se usó %<__thread%> con %qE"
#: c-decl.c:7452
#, gcc-internal-format
@@ -16143,9 +15803,9 @@ msgid "ISO C does not support complex integer types"
msgstr "ISO C no da soporte a tipos enteros complejos"
#: c-decl.c:7597 toplev.c:822
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+F used but never defined"
-msgstr "%Jse usa %qF pero nunca se definió"
+msgstr "se usa %q+F pero nunca se definió"
#: c-format.c:97 c-format.c:206
#, gcc-internal-format
@@ -16168,9 +15828,9 @@ msgid "unrecognized format specifier"
msgstr "no se reconoce el especificador de formato"
#: c-format.c:198
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qE is an unrecognized format function type"
-msgstr "%qs es un formato de tipo de función no reconocido"
+msgstr "%qE es un formato de tipo de función no reconocido"
#: c-format.c:212
#, gcc-internal-format
@@ -16444,9 +16104,9 @@ msgid "%<__gcc_host_wide_int__%> is not defined as %<long%> or %<long long%>"
msgstr "%<__gcc_host_wide_int__%> no está definido como %<long%> o %<long long%>"
#: c-format.c:2438
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%<locus%> is not defined as a type"
-msgstr "%<location_t%> no está definido como un tipo"
+msgstr "%<locus%> no está definido como un tipo"
#: c-format.c:2491
#, gcc-internal-format
@@ -16535,19 +16195,19 @@ msgid "traditional C rejects string constant concatenation"
msgstr "C tradicional rechaza la concatenación de constantes de cadenas"
#: c-objc-common.c:81
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+F can never be inlined because it is suppressed using -fno-inline"
-msgstr "%Jla función %qF nunca puede ser inlined porque se suprime al usar -fno-inline"
+msgstr "la función %q+F nunca puede ser inlined porque se suprime al usar -fno-inline"
#: c-objc-common.c:91
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+F can never be inlined because it might not be bound within this unit of translation"
-msgstr "%Jla función %qF nunca puede ser inlined porque puede no estar ligada dentro de esta unidad de traducción"
+msgstr "la función %q+F nunca puede ser inlined porque puede no estar ligada dentro de esta unidad de traducción"
#: c-objc-common.c:99
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+F can never be inlined because it uses attributes conflicting with inlining"
-msgstr "%Jla función %qF nunca puede ser inlined porque utiliza atributos que causan conflictos con el inlining"
+msgstr "la función %q+F nunca puede ser inlined porque utiliza atributos que causan conflictos con el inlining"
#: c-opts.c:147
#, gcc-internal-format
@@ -16590,9 +16250,9 @@ msgid "obsolete option -I- used, please use -iquote instead"
msgstr "se usó la opción obsoleta -I-, por favor utilice -iquote en su lugar"
#: c-opts.c:492
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "argument %qs to %<-Wnormalized%> not recognized"
-msgstr "no se reconoce la cadena de lenguaje %<\"%E\"%>"
+msgstr "no se reconoce el argumento %qs para %<-Wnormalized%>"
#: c-opts.c:576
#, gcc-internal-format
@@ -16685,9 +16345,9 @@ msgid "ISO C does not allow extra %<;%> outside of a function"
msgstr "ISO C no permite %<;%> extra fuera de una función"
#: c-parser.c:1145
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "expected declaration specifiers"
-msgstr "declaración repetida de la unidad `%s'"
+msgstr "se esperaba la declaración de especificadores"
#: c-parser.c:1193
#, gcc-internal-format
@@ -16697,7 +16357,7 @@ msgstr "la definición de datos no tiene tipo o clase de almacenamiento"
#: c-parser.c:1247
#, gcc-internal-format
msgid "expected %<,%> or %<;%>"
-msgstr ""
+msgstr "se esperaba %<,%> o %<;%>"
#. This can appear in many cases looking nothing like a
#. function definition, so we don't give a more specific
@@ -16705,7 +16365,7 @@ msgstr ""
#: c-parser.c:1254 c-parser.c:1271
#, gcc-internal-format
msgid "expected %<=%>, %<,%>, %<;%>, %<asm%> or %<__attribute__%>"
-msgstr ""
+msgstr "se esperaba %<=%>, %<,%>, %<;%>, %<asm%> o %<__attribute__%>"
#: c-parser.c:1263
#, gcc-internal-format
@@ -16718,9 +16378,9 @@ msgstr "ISO C prohíbe las funciones anidadas"
#: c-parser.c:5422 c-parser.c:5447 c-parser.c:5575 c-parser.c:5604
#: c-parser.c:5612 c-parser.c:5640 c-parser.c:5654 c-parser.c:5867
#: c-parser.c:5966
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "expected identifier"
-msgstr "se esperaba un nombre de tipo"
+msgstr "se esperaba un identificador"
#: c-parser.c:1635 cp/parser.c:10272
#, gcc-internal-format
@@ -16730,12 +16390,12 @@ msgstr "coma al final de la lista de enumeradores"
#: c-parser.c:1641
#, gcc-internal-format
msgid "expected %<,%> or %<}%>"
-msgstr ""
+msgstr "se esperaba %<,%> o %<}%>"
#: c-parser.c:1655 c-parser.c:1825 c-parser.c:5729
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "expected %<{%>"
-msgstr "%<;%> extra"
+msgstr "se esperaba %<{%>"
#: c-parser.c:1664
#, gcc-internal-format
@@ -16743,9 +16403,9 @@ msgid "ISO C forbids forward references to %<enum%> types"
msgstr "ISO C prohíbe las declaraciones posteriores para tipos %<enum%>"
#: c-parser.c:1767
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "expected class name"
-msgstr "se esperaba un nombre de tipo"
+msgstr "se esperaba un nombre de clase"
#: c-parser.c:1786 c-parser.c:5514
#, gcc-internal-format
@@ -16758,14 +16418,14 @@ msgid "no semicolon at end of struct or union"
msgstr "no hay punto y coma al final del struct o union"
#: c-parser.c:1811
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "expected %<;%>"
-msgstr "%<;%> extra"
+msgstr "se esperaba %<;%>"
#: c-parser.c:1888 c-parser.c:2815
#, gcc-internal-format
msgid "expected specifier-qualifier-list"
-msgstr ""
+msgstr "se esperaba una lista de calificadores-especificadores"
#: c-parser.c:1898
#, gcc-internal-format
@@ -16775,12 +16435,12 @@ msgstr "ISO C prohíbe declaraciones de miembros con no miembros"
#: c-parser.c:1967
#, gcc-internal-format
msgid "expected %<,%>, %<;%> or %<}%>"
-msgstr ""
+msgstr "se esperaba %<,%>, %<;%> o %<}%>"
#: c-parser.c:1974
#, gcc-internal-format
msgid "expected %<:%>, %<,%>, %<;%>, %<}%> or %<__attribute__%>"
-msgstr ""
+msgstr "se esperaba %<:%>, %<,%>, %<;%>, %<}%> o %<__attribute__%>"
#: c-parser.c:2023
#, gcc-internal-format
@@ -16790,7 +16450,7 @@ msgstr "%<typeof%> aplicado a un campo de bits"
#: c-parser.c:2242
#, gcc-internal-format
msgid "expected identifier or %<(%>"
-msgstr ""
+msgstr "se esperaba un identificador o %<(%>"
#: c-parser.c:2435
#, gcc-internal-format
@@ -16798,9 +16458,9 @@ msgid "ISO C requires a named argument before %<...%>"
msgstr "ISO C requiere un argumento con nombre antes de %<...%>"
#: c-parser.c:2537
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "expected declaration specifiers or %<...%>"
-msgstr "la declaración del nivel superior de %qs especifica %<auto%>"
+msgstr "se esperaba la declaración de especificadores o %<...%>"
#: c-parser.c:2587
#, gcc-internal-format
@@ -16808,9 +16468,9 @@ msgid "wide string literal in %<asm%>"
msgstr "literal de cadena ancha en %<asm%>"
#: c-parser.c:2593
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "expected string literal"
-msgstr "cadena literal sin terminar"
+msgstr "se esperaba una cadena literal"
#: c-parser.c:2907
#, gcc-internal-format
@@ -16838,9 +16498,9 @@ msgid "obsolete use of designated initializer without %<=%>"
msgstr "uso obsoleto del inicializador designado sin %<=%>"
#: c-parser.c:3104
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "expected %<=%>"
-msgstr "%<;%> extra"
+msgstr "se esperaba %<=%>"
#: c-parser.c:3241
#, gcc-internal-format
@@ -16848,14 +16508,14 @@ msgid "ISO C forbids label declarations"
msgstr "ISO C prohíbe las declaraciones etiquetadas"
#: c-parser.c:3246 c-parser.c:3255
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "expected declaration or statement"
-msgstr "declaración repetida del autómata `%s'"
+msgstr "se esperaba una declaración"
#: c-parser.c:3275 c-parser.c:3303
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%HISO C90 forbids mixed declarations and code"
-msgstr "ISO C90 prohíbe las declaraciones mezcladas y código"
+msgstr "%HISO C90 prohíbe las declaraciones mezcladas y código"
#: c-parser.c:3319
#, gcc-internal-format
@@ -16865,21 +16525,21 @@ msgstr "la etiqueta al final de una declaración compuesta"
#: c-parser.c:3362
#, gcc-internal-format
msgid "expected %<:%> or %<...%>"
-msgstr ""
+msgstr "se esperaba %<:%> o %<...%>"
#: c-parser.c:3498
#, gcc-internal-format
msgid "expected identifier or %<*%>"
-msgstr ""
+msgstr "se esperaba un identificador o %<*%>"
#. Avoid infinite loop in error recovery:
#. c_parser_skip_until_found stops at a closing nesting
#. delimiter without consuming it, but here we need to consume
#. it to proceed further.
#: c-parser.c:3560
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "expected statement"
-msgstr "se esperaba un nombre de tipo"
+msgstr "se esperaba una declaración"
#: c-parser.c:3894
#, gcc-internal-format
@@ -16902,9 +16562,9 @@ msgid "%<sizeof%> applied to a bit-field"
msgstr "%<sizeof%> aplicado a un campo de bits"
#: c-parser.c:4816 c-parser.c:5157 c-parser.c:5179
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "expected expression"
-msgstr "expresión de dirección inesperada"
+msgstr "se esperaba una expresión"
#: c-parser.c:4842
#, gcc-internal-format
@@ -16982,9 +16642,9 @@ msgid "use #include instead"
msgstr "use #include en su lugar"
#: c-pch.c:467
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s: couldn%'t open PCH file: %m"
-msgstr "%s: no se puede abrir el fichero PCH: %m\n"
+msgstr "%s: no se puede abrir el fichero PCH: %m"
#: c-pch.c:472
#, gcc-internal-format
@@ -17057,9 +16717,9 @@ 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:263
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "applying #pragma weak %q+D after first use results in unspecified behavior"
-msgstr "%Jla aplicación de #pragma weak %qD después del primer uso resulta en conducta no especificada"
+msgstr "la aplicación de #pragma weak %q+D después del primer uso resulta en conducta no especificada"
#: c-pragma.c:337 c-pragma.c:342
#, gcc-internal-format
@@ -17127,9 +16787,9 @@ msgid "#pragma GCC visibility must be followed by push or pop"
msgstr "el #pragma GCC visibility debe ser seguido por push o pop"
#: c-pragma.c:623
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "no matching push for %<#pragma GCC visibility pop%>"
-msgstr "No hay un push coincidente para %<#pragma GCC visibility pop%>"
+msgstr "no hay un push coincidente para %<#pragma GCC visibility pop%>"
#: c-pragma.c:635 c-pragma.c:661
#, gcc-internal-format
@@ -17152,9 +16812,9 @@ msgid "junk at end of %<#pragma GCC visibility%>"
msgstr "basura al final de %<#pragma GCC visibility%>"
#: c-typeck.c:157
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qD has an incomplete type"
-msgstr "%qs tiene un tipo de dato incompleto"
+msgstr "%qD tiene un tipo de dato incompleto"
#: c-typeck.c:178 cp/call.c:2693
#, gcc-internal-format
@@ -17172,15 +16832,15 @@ msgid "invalid use of array with unspecified bounds"
msgstr "uso inválido de matrices con límites sin especificar"
#: c-typeck.c:200
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid use of undefined type %<%s %E%>"
-msgstr "uso inválido del tipo indefinido %<%s %s%>"
+msgstr "uso inválido del tipo indefinido %<%s %E%>"
#. If this type has a typedef-name, the TYPE_NAME is a TYPE_DECL.
#: c-typeck.c:204
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid use of incomplete typedef %qD"
-msgstr "uso inválido del typedef incompleto %qs"
+msgstr "uso inválido del typedef incompleto %qD"
#: c-typeck.c:431 c-typeck.c:456
#, gcc-internal-format
@@ -17203,14 +16863,14 @@ msgid "arithmetic on pointer to an incomplete type"
msgstr "aritmética en puntero a un tipo de dato incompleto"
#: c-typeck.c:1726
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qT has no member named %qE"
-msgstr "%qD no tiene un miembro llamado %qE"
+msgstr "%qT no tiene un miembro llamado %qE"
#: c-typeck.c:1761
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "request for member %qE in something not a structure or union"
-msgstr "petición del miembro %qs en algo que no es una estructura o unión"
+msgstr "petición del miembro %qE en algo que no es una estructura o unión"
#: c-typeck.c:1792
#, gcc-internal-format
@@ -17446,44 +17106,44 @@ msgid "decrement of pointer to unknown structure"
msgstr "decremento de puntero a estructura desconocida"
#: c-typeck.c:3003
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "assignment of read-only member %qD"
-msgstr "asignación del miembro de sólo lectura %qs"
+msgstr "asignación del miembro de sólo lectura %qD"
#: c-typeck.c:3004
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "increment of read-only member %qD"
-msgstr "incremento del miembro de sólo lectura %qs"
+msgstr "incremento del miembro de sólo lectura %qD"
#: c-typeck.c:3005
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "decrement of read-only member %qD"
-msgstr "decremento del miembro de sólo lectura %qs"
+msgstr "decremento del miembro de sólo lectura %qD"
#: c-typeck.c:3006
#, gcc-internal-format
msgid "read-only member %qD used as %<asm%> output"
-msgstr ""
+msgstr "se usó el miembro de sólo lectura %qD como salida %<asm%>"
#: c-typeck.c:3010
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "assignment of read-only variable %qD"
-msgstr "asignación de la variable de sólo lectura %qs"
+msgstr "asignación de la variable de sólo lectura %qD"
#: c-typeck.c:3011
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "increment of read-only variable %qD"
-msgstr "incremento de la variable de sólo lectura %qs"
+msgstr "incremento de la variable de sólo lectura %qD"
#: c-typeck.c:3012
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "decrement of read-only variable %qD"
-msgstr "decremento de la variable de sólo lectura %qs"
+msgstr "decremento de la variable de sólo lectura %qD"
#: c-typeck.c:3013
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "read-only variable %qD used as %<asm%> output"
-msgstr "la variable %q#D que no es local usa un tipo anónimo"
+msgstr "se usó la variable de sólo lectura %qD como salida %<asm%>"
#: c-typeck.c:3016
#, gcc-internal-format
@@ -17501,9 +17161,9 @@ msgid "decrement of read-only location"
msgstr "decremento de la ubicación de sólo lectura"
#: c-typeck.c:3019
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "read-only location used as %<asm%> output"
-msgstr "ubicación de sólo lectura modificada por 'asm'"
+msgstr "se usó una ubicación de sólo lectura como salida %<asm%>"
#: c-typeck.c:3054
#, gcc-internal-format
@@ -17688,29 +17348,29 @@ 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:3916
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "request for implicit conversion from %qT to %qT not permitted in C++"
-msgstr " para la conversión de %qT a %qT"
+msgstr "no se permite la petición para la conversión implícita de %qT a %qT en C++"
#: c-typeck.c:3929
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "argument %d of %qE might be a candidate for a format attribute"
-msgstr "la función puede ser un candidato posible para el atributo de formato %qs"
+msgstr "el argumento %d de %qE puede ser un candidato para un atributo de formato"
#: c-typeck.c:3935
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "assignment left-hand side might be a candidate for a format attribute"
-msgstr "Avisa por funciones que pueden ser candidatas para atributos de formato"
+msgstr "el lado izquierdo de la asignación puede ser un candidato para un atributo de formato"
#: c-typeck.c:3940
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "initialization left-hand side might be a candidate for a format attribute"
-msgstr "la función puede ser un candidato posible para el atributo de formato %qs"
+msgstr "el lado izquierdo de la inicialización puede ser un candidato para un atributo de formato"
#: c-typeck.c:3945
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "return type might be a candidate for a format attribute"
-msgstr "la función puede ser un candidato posible para el atributo de formato %qs"
+msgstr "el tipo de devolución puede ser un candidato para un atributo de formato"
#: c-typeck.c:3970
#, gcc-internal-format
@@ -17843,9 +17503,9 @@ msgid "opaque vector types cannot be initialized"
msgstr "no se pueden inicializar los tipos de vector opacos"
#: c-typeck.c:5551
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "unknown field %qE specified in initializer"
-msgstr "campo %qs desconocido especificado en el inicializador"
+msgstr "se especificó el campo desconocido %qE en el inicializador"
#: c-typeck.c:6445
#, gcc-internal-format
@@ -18060,12 +17720,12 @@ msgstr "la llamada a la función tiene valor agregado"
#: cfgexpand.c:1597
#, gcc-internal-format
msgid "not protecting local variables: variable length buffer"
-msgstr ""
+msgstr "no se protegen las variables locales: almacenamiento temporal de longitud variable"
#: cfgexpand.c:1599
#, gcc-internal-format
msgid "not protecting function: no buffer at least %d bytes long"
-msgstr ""
+msgstr "no se protegen la función: no hay un almacenamiento temporal de por lo menos %d bytes de tamaño"
#: cfghooks.c:90
#, gcc-internal-format
@@ -18108,9 +17768,9 @@ 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:2045
-#, fuzzy, gcc-internal-format
+#, gcc-internal-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"
+msgstr "cantidad errónea de bordes de ramificación después del salto incondicional %i"
#: cfghooks.c:173 cfghooks.c:184
#, gcc-internal-format
@@ -18133,74 +17793,74 @@ msgid "verify_flow_info failed"
msgstr "falló verify_flow_info"
#: cfghooks.c:288
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s does not support redirect_edge_and_branch"
-msgstr "%s no tiene soporte para redirect_edge_and_branch."
+msgstr "%s no tiene soporte para redirect_edge_and_branch"
#: cfghooks.c:306
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s does not support redirect_edge_and_branch_force"
-msgstr "%s no tiene soporte para redirect_edge_and_branch_force."
+msgstr "%s no tiene soporte para redirect_edge_and_branch_force"
#: cfghooks.c:324
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s does not support split_block"
-msgstr "%s no tiene soporte para split_block."
+msgstr "%s no tiene soporte para split_block"
#: cfghooks.c:360
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s does not support move_block_after"
-msgstr "%s no tiene soporte para move_block_after."
+msgstr "%s no tiene soporte para move_block_after"
#: cfghooks.c:373
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s does not support delete_basic_block"
-msgstr "%s no tiene soporte para delete_basic_block."
+msgstr "%s no tiene soporte para delete_basic_block"
#: cfghooks.c:405
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s does not support split_edge"
-msgstr "%s no tiene soporte para split_edge."
+msgstr "%s no tiene soporte para split_edge"
#: cfghooks.c:466
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s does not support create_basic_block"
-msgstr "%s no tiene soporte para create_basic_block."
+msgstr "%s no tiene soporte para create_basic_block"
#: cfghooks.c:494
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s does not support can_merge_blocks_p"
-msgstr "%s no tiene soporte para can_merge_blocks_p."
+msgstr "%s no tiene soporte para can_merge_blocks_p"
#: cfghooks.c:505
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s does not support predict_edge"
-msgstr "%s no tiene soporte para predict_edge."
+msgstr "%s no tiene soporte para predict_edge"
#: cfghooks.c:514
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s does not support predicted_by_p"
-msgstr "%s no tiene soporte para predicted_by_p."
+msgstr "%s no tiene soporte para predicted_by_p"
#: cfghooks.c:528
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s does not support merge_blocks"
-msgstr "%s no tiene soporte para merge_blocks."
+msgstr "%s no tiene soporte para merge_blocks"
#: cfghooks.c:573
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s does not support make_forwarder_block"
-msgstr "%s no tiene soporte para make_forwarder_block."
+msgstr "%s no tiene soporte para make_forwarder_block"
#: cfghooks.c:678
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s does not support can_duplicate_block_p"
-msgstr "%s no tiene soporte para can_duplicate_block_p."
+msgstr "%s no tiene soporte para can_duplicate_block_p"
#: cfghooks.c:706
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s does not support duplicate_block"
-msgstr "%s no tiene soporte para duplicate_block."
+msgstr "%s no tiene soporte para duplicate_block"
#: cfghooks.c:774
#, gcc-internal-format
@@ -18218,89 +17878,89 @@ msgid "%s does not support flow_call_edges_add"
msgstr "%s no tiene soporte para flow_call_edges_add"
#: cfgloop.c:1088
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "size of loop %d should be %d, not %d"
-msgstr "El tamaño del ciclo %d debe ser %d, no %d."
+msgstr "el tamaño del ciclo %d debe ser %d, no %d"
#: cfgloop.c:1105
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "bb %d do not belong to loop %d"
-msgstr "Bb %d no pertenece al ciclo %d."
+msgstr "el bb %d no pertenece al ciclo %d"
#: cfgloop.c:1122
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "loop %d's header does not have exactly 2 entries"
-msgstr "El encabezado del ciclo %d no tiene exactamente 2 entradas."
+msgstr "el encabezado del ciclo %d no tiene exactamente 2 entradas"
#: cfgloop.c:1129
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "loop %d's latch does not have exactly 1 successor"
-msgstr "El cerrojo del ciclo %d no tiene 1 sucesor exactamente."
+msgstr "el cerrojo del ciclo %d no tiene 1 sucesor exactamente"
#: cfgloop.c:1134
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "loop %d's latch does not have header as successor"
-msgstr "El cerrojo del ciclo %d no tiene un encabezado como sucesor."
+msgstr "el cerrojo del ciclo %d no tiene un encabezado como sucesor"
#: cfgloop.c:1139
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "loop %d's latch does not belong directly to it"
-msgstr "El cerrojo del ciclo %d no pertenece directamente a él."
+msgstr "el cerrojo del ciclo %d no pertenece directamente a él"
#: cfgloop.c:1145
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "loop %d's header does not belong directly to it"
-msgstr "El encabezado del ciclo %d no pertenece directamente a él."
+msgstr "el encabezado del ciclo %d no pertenece directamente a él"
#: cfgloop.c:1151
-#, fuzzy, gcc-internal-format
+#, gcc-internal-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."
+msgstr "el cerrojo del ciclo %d está marcado como parte de una región irreducible"
#: cfgloop.c:1184
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "basic block %d should be marked irreducible"
-msgstr "El bloque básico %d se debe marcar como irreducible."
+msgstr "el bloque básico %d se debe marcar como irreducible"
#: cfgloop.c:1190
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "basic block %d should not be marked irreducible"
-msgstr "El bloque básico %d no se debe marcar como irreducible."
+msgstr "el bloque básico %d no se debe marcar como irreducible"
#: cfgloop.c:1198
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "edge from %d to %d should be marked irreducible"
-msgstr "El borde de %d a %d se debe marcar como irreducible."
+msgstr "el borde de %d a %d se debe marcar como irreducible"
#: cfgloop.c:1205
-#, fuzzy, gcc-internal-format
+#, gcc-internal-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."
+msgstr "el borde de %d a %d no se debe marcar como irreducible"
#: cfgloop.c:1240
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "wrong single exit %d->%d recorded for loop %d"
-msgstr "Salida única %d->%d errónea grabada para el ciclo %d."
+msgstr "salida única %d->%d errónea grabada para el ciclo %d"
#: cfgloop.c:1244
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "right exit is %d->%d"
-msgstr "La salida correcta es %d->%d."
+msgstr "la salida correcta es %d->%d"
#: cfgloop.c:1261
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "single exit not recorded for loop %d"
-msgstr "No se grabó la salida única para el ciclo %d."
+msgstr "no se grabó la salida única para el ciclo %d"
#: cfgloop.c:1268
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "loop %d should not have single exit (%d -> %d)"
-msgstr "El ciclo %d no debe tener una salida única (%d -> %d)."
+msgstr "el ciclo %d no debe tener una salida única (%d -> %d)"
#: cfgrtl.c:1931
#, gcc-internal-format
msgid "BB_RTL flag not set for block %d"
-msgstr ""
+msgstr "no se estableció la bandera BB_RTL para el bloque %d"
#: cfgrtl.c:1937
#, gcc-internal-format
@@ -18323,39 +17983,39 @@ 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:2002
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "fallthru edge crosses section boundary (bb %i)"
-msgstr "El borde de caída cruza el límite de la sección (bb %i)"
+msgstr "el borde de caída cruza el límite de la sección (bb %i)"
#: cfgrtl.c:2027
-#, fuzzy, gcc-internal-format
+#, gcc-internal-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"
+msgstr "falta la nota REG_EH_REGION al final de bb %i"
#: cfgrtl.c:2035
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "too many outgoing branch edges from bb %i"
-msgstr "Demasiados bordes de ramificación de salida de bb %i"
+msgstr "demasiados bordes de ramificación de salida de bb %i"
#: cfgrtl.c:2040
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "fallthru edge after unconditional jump %i"
-msgstr "Borde de caída después del salto incondicional %i"
+msgstr "borde de caída después del salto incondicional %i"
#: cfgrtl.c:2051
-#, fuzzy, gcc-internal-format
+#, gcc-internal-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"
+msgstr "cantidad errónea de bordes de ramificación después del salto condicional %i"
#: cfgrtl.c:2057
-#, fuzzy, gcc-internal-format
+#, gcc-internal-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"
+msgstr "bordes de llamada para una insn que no es llamada en bb %i"
#: cfgrtl.c:2066
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "abnormal edges for no purpose in bb %i"
-msgstr "Bordes anormales sin ningún propósito en bb %i"
+msgstr "bordes anormales sin ningún propósito en bb %i"
#: cfgrtl.c:2078
#, gcc-internal-format
@@ -18385,7 +18045,7 @@ msgstr "en el bloque básico %d:"
#: cfgrtl.c:2166
#, gcc-internal-format
msgid "bb prediction set for block %i, but it is not used in RTL land"
-msgstr ""
+msgstr "se estableció la predicción bb para el bloque %i, pero no se usó en el mundo RTL"
#: cfgrtl.c:2184
#, gcc-internal-format
@@ -18418,74 +18078,74 @@ msgid "%D renamed after being referenced in assembly"
msgstr "se renombró %D después de ser referenciado en el ensamblado"
#: cgraphunit.c:664
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "aux field set for edge %s->%s"
-msgstr "Campo aux establecido para el borde %s->%s"
+msgstr "campo aux establecido para el borde %s->%s"
#: cgraphunit.c:670
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "Execution count is negative"
-msgstr "la cuenta de desplazamiento a la izquierda es negativa"
+msgstr "La cuenta de ejecución es negativa"
#: cgraphunit.c:677
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "caller edge count is negative"
-msgstr "la cuenta de desplazamiento a la izquierda es negativa"
+msgstr "la cuenta de borde llamador es negativa"
#: cgraphunit.c:686
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "inlined_to pointer is wrong"
-msgstr "El puntero inlined_to está mal"
+msgstr "el puntero inlined_to está mal"
#: cgraphunit.c:691
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "multiple inline callers"
-msgstr "Múltiples llamantes a inline"
+msgstr "múltiples llamantes inline"
#: cgraphunit.c:698
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "inlined_to pointer set for noninline callers"
-msgstr "Se estableció el puntero inlined_to para llamantes no-inline"
+msgstr "se estableció el puntero inlined_to para llamantes no-inline"
#: cgraphunit.c:704
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "inlined_to pointer is set but no predecesors found"
-msgstr "Se estableció el puntero inlined_to, pero no se encontraron predecesores"
+msgstr "se estableció el puntero inlined_to, pero no se encontraron predecesores"
#: cgraphunit.c:709
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "inlined_to pointer refers to itself"
-msgstr "El puntero inlined_to se refiere a sí mismo"
+msgstr "el puntero inlined_to se refiere a sí mismo"
#: cgraphunit.c:719
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "node not found in DECL_ASSEMBLER_NAME hash"
-msgstr "No se encontró un nodo en el hash DECL_ASSEMBLER_NAME"
+msgstr "no se encontró un nodo en el hash DECL_ASSEMBLER_NAME"
#: cgraphunit.c:747
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "shared call_stmt:"
-msgstr "call_expr compartida:"
+msgstr "call_stmt compartida:"
#: cgraphunit.c:753
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "edge points to wrong declaration:"
-msgstr "Puntos de borde para una declaración errónea:"
+msgstr "puntos de borde para una declaración errónea:"
#: cgraphunit.c:762
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "missing callgraph edge for call stmt:"
-msgstr "Falta el borde de callgraph para la expresión de llamada:"
+msgstr "falta el borde de callgraph para la llamada stmt:"
#: cgraphunit.c:779
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "edge %s->%s has no corresponding call_stmt"
-msgstr "El borde %s->%s no tiene un call_expr correspondiente"
+msgstr "el borde %s->%s no tiene un call_stmt correspondiente"
#: cgraphunit.c:791
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "verify_cgraph_node failed"
-msgstr "falló verify_cgraph_node."
+msgstr "falló verify_cgraph_node"
#: cgraphunit.c:1028
#, gcc-internal-format
@@ -18493,9 +18153,9 @@ msgid "failed to reclaim unneeded function"
msgstr "falló al reclamar una función innecesaria"
#: cgraphunit.c:1308
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "nodes with no released memory found"
-msgstr "Se encontraron nodos sin memoria liberada."
+msgstr "se encontraron nodos sin memoria liberada"
#: collect2.c:1172
#, gcc-internal-format
@@ -18573,9 +18233,9 @@ msgid "%qs is version %q.*s, expected version %q.*s"
msgstr "%qs es versión %q.*s, se esperaba la versión %q.*s"
#: coverage.c:274 coverage.c:282
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "coverage mismatch for function %u while reading execution counters"
-msgstr "no coincide la cobertura para la función %u al leer los contadores de ejecución."
+msgstr "no coincide la cobertura para la función %u al leer los contadores de ejecución"
#: coverage.c:276 coverage.c:359
#, gcc-internal-format
@@ -18603,14 +18263,14 @@ msgid "%qs is corrupted"
msgstr "%qs está corrupto"
#: coverage.c:348
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "no coverage for function %qs found"
-msgstr "no se encontró cobertura para la función %qs."
+msgstr "no se encontró cobertura para la función %qs"
#: coverage.c:356 coverage.c:364
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "coverage mismatch for function %qs while reading counter %qs"
-msgstr "no coincide la cobertura para la función %qs al leer el contador %qs."
+msgstr "no coincide la cobertura para la función %qs al leer el contador %qs"
#: coverage.c:529
#, gcc-internal-format
@@ -18643,19 +18303,19 @@ msgid "ENTRY does not dominate bb %d"
msgstr "ENTRY no domina bb %d"
#: dwarf2out.c:3533
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "DW_LOC_OP %s not implemented"
-msgstr "DW_LOC_OP %s no está implementado\n"
+msgstr "DW_LOC_OP %s no está implementado"
#: emit-rtl.c:2269
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid rtl sharing found in the insn"
-msgstr "Se encontró una compartición de rtl inválida en insn"
+msgstr "se encontró una compartición de rtl inválida en la insn"
#: emit-rtl.c:2271
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "shared rtx"
-msgstr "Rtx compartido"
+msgstr "rtx compartido"
#: emit-rtl.c:2273 flow.c:492 flow.c:517 flow.c:539
#, gcc-internal-format
@@ -18690,37 +18350,37 @@ msgstr "no se da soporte a __builtin_eh_return en este objetivo"
#: except.c:3771 except.c:3780
#, gcc-internal-format
msgid "region_array is corrupted for region %i"
-msgstr ""
+msgstr "region_array está corrupta para la región %i"
#: except.c:3785
#, gcc-internal-format
msgid "outer block of region %i is wrong"
-msgstr ""
+msgstr "el bloque más externo de la región %i es erróneo"
#: except.c:3790
#, gcc-internal-format
msgid "region %i may contain throw and is contained in region that may not"
-msgstr ""
+msgstr "la región %i puede contener throw y está contenida en una región que puede no contenerlo"
#: except.c:3796
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "negative nesting depth of region %i"
-msgstr "longitud negativa de la cadena"
+msgstr "profundidad de anidamiento negativa de la región %i"
#: except.c:3816
#, gcc-internal-format
msgid "tree list ends on depth %i"
-msgstr ""
+msgstr "la lista de árbol termina en la profundidad %i"
#: except.c:3821
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "array does not match the region tree"
-msgstr "la conversión no coincide con el tipo de la función"
+msgstr "la matriz no coincide con el árbol de región"
#: except.c:3827
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "verify_eh_tree failed"
-msgstr "falló verify_name_tags"
+msgstr "falló verify_eh_tree"
#: explow.c:1212
#, gcc-internal-format
@@ -18753,14 +18413,14 @@ msgid "fold check: original tree changed by fold"
msgstr "fold check: el árbol original cambió por un pliegue"
#: function.c:491
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Jtotal size of local objects too large"
-msgstr "%Jel tamaño de la variable %qD es demasiado grande"
+msgstr "%Jel tamaño de los objetos locales es demasiado grande"
#: function.c:838 varasm.c:1674
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "size of variable %q+D is too large"
-msgstr "%Jel tamaño de la variable %qD es demasiado grande"
+msgstr "el tamaño de la variable %q+D es demasiado grande"
#: function.c:1548
#, gcc-internal-format
@@ -18768,14 +18428,14 @@ msgid "impossible constraint in %<asm%>"
msgstr "restricción imposible en %<asm%>"
#: function.c:3506
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "variable %q+D might be clobbered by %<longjmp%> or %<vfork%>"
-msgstr "%Jla variable %qD puede ser sobreescrita por %<longjmp%> o %<vfork%>"
+msgstr "la variable %q+D puede ser sobreescrita por %<longjmp%> o %<vfork%>"
#: function.c:3527
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "argument %q+D might be clobbered by %<longjmp%> or %<vfork%>"
-msgstr "%Jel argumento %qD puede ser sobreescrito por %<longjmp%> o %<vfork%>"
+msgstr "el argumento %q+D puede ser sobreescrito por %<longjmp%> o %<vfork%>"
#: function.c:3922
#, gcc-internal-format
@@ -18783,9 +18443,9 @@ msgid "function returns an aggregate"
msgstr "la función devuelve un agregado"
#: function.c:4314
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "unused parameter %q+D"
-msgstr "%Jparámetro %qD sin uso"
+msgstr "parámetro %q+D sin uso"
#: gcc.c:1243
#, gcc-internal-format
@@ -18836,14 +18496,14 @@ msgid "spec failure: unrecognized spec option '%c'"
msgstr "falla en spec: opción de especificación '%c' no reconocida"
#: gcc.c:6188
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
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."
+msgstr "falla de especificación: más de un argumento para SYSROOT_SUFFIX_SPEC"
#: gcc.c:6211
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
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."
+msgstr "falla de especificación: más de un argumento para SYSROOT_HEADERS_SUFFIX_SPEC"
#: gcc.c:6300
#, gcc-internal-format
@@ -18919,12 +18579,12 @@ msgid "can't write PCH file"
msgstr "no se puede escribir el fichero PCH"
#: ggc-zone.c:2288 ggc-zone.c:2299
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "can't seek PCH file: %m"
-msgstr "no se puede extender el fichero PCH: %m"
+msgstr "no se puede buscar en el fichero PCH: %m"
#: ggc-zone.c:2302
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "can't write PCH fle: %m"
msgstr "no se puede escribir el fichero PCH: %m"
@@ -18971,9 +18631,9 @@ msgid "command line option \"%s\" is valid for %s but not for %s"
msgstr "la opción de línea de comando \"%s\" es válida para %s pero no para %s"
#: opts.c:315
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "command line option %qs is not supported by this configuration"
-msgstr "%s no tiene soporte en esta configuración"
+msgstr "la opción de línea de comando %qs no tiene soporte en esta configuración"
#: opts.c:359
#, gcc-internal-format
@@ -19001,14 +18661,14 @@ msgid "-freorder-blocks-and-partition does not work with exceptions"
msgstr "-freorder-blocks-and-partition no funciona con excepciones"
#: opts.c:696
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "-freorder-blocks-and-partition does not support unwind info"
-msgstr "-freorder-blocks-and-partition no funciona con excepciones"
+msgstr "-freorder-blocks-and-partition no tiene soporte para información de desenrollo"
#: opts.c:710
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "-freorder-blocks-and-partition does not work on this architecture"
-msgstr "-freorder-blocks-and-partition no funciona con excepciones"
+msgstr "-freorder-blocks-and-partition no funciona en esta arquitectura"
#: opts.c:878
#, gcc-internal-format
@@ -19016,7 +18676,7 @@ msgid "structure alignment must be a small power of two, not %d"
msgstr "la alineación de la estructura debe ser una potencia pequeña de dos, no %d"
#: opts.c:936
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "unrecognized visibility value \"%s\""
msgstr "no se reconoce el valor de visibilidad \"%s\""
@@ -19033,7 +18693,7 @@ msgstr "tls-model \"%s\" desconocido"
#: opts.c:1058
#, gcc-internal-format
msgid "-f[no-]force-mem is nop and option will be removed in 4.2"
-msgstr ""
+msgstr "-f[no-]force-mem no funciona y se eliminará la opción en 4.2"
#: opts.c:1081
#, gcc-internal-format
@@ -19400,31 +19060,31 @@ msgid "variable-size type declared outside of any function"
msgstr "tipo de tamaño variable declarado fuera de cualquier función"
#: stor-layout.c:462
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "size of %q+D is %d bytes"
-msgstr "%Jel tamaño de %qD es de %d bytes"
+msgstr "el tamaño de %q+D es de %d bytes"
#: stor-layout.c:464
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "size of %q+D is larger than %wd bytes"
-msgstr "%Jel tamaño de %qD es mayor que %d bytes"
+msgstr "el tamaño de %q+D es mayor que %wd bytes"
#: stor-layout.c:881
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "packed attribute causes inefficient alignment for %q+D"
-msgstr "%Jel atributo packed causa una alineación ineficiente para %qD"
+msgstr "el atributo packed causa una alineación ineficiente para %q+D"
#: stor-layout.c:884
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "packed attribute is unnecessary for %q+D"
-msgstr "%Jel atributo packed es innecesario para %qD"
+msgstr "el atributo packed es innecesario para %q+D"
#. No, we need to skip space before this field.
#. Bump the cumulative size to multiple of field alignment.
#: stor-layout.c:899
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "padding struct to align %q+D"
-msgstr "%Jestructura de relleno para alinear %qD"
+msgstr "estructura de relleno para alinear %q+D"
#: stor-layout.c:1302
#, gcc-internal-format
@@ -19452,9 +19112,9 @@ msgid "packed attribute is unnecessary"
msgstr "no es necesario el atributo packed"
#: stor-layout.c:1849
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "alignment of array elements is greater than element size"
-msgstr "%Jla alineación de %qD es mayor que la alineación máxima del fichero objeto. Se usa %d"
+msgstr "la alineación de los elementos de la matriz es mayor que el tamaño de los elementos"
#: targhooks.c:98
#, gcc-internal-format
@@ -19492,14 +19152,14 @@ 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:824
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+F declared %<static%> but never defined"
-msgstr "%J%qF se declaró %<static%> pero nunca se definió"
+msgstr "%q+F se declaró %<static%> pero nunca se definió"
#: toplev.c:849
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D defined but not used"
-msgstr "%Jse definió %qD pero no se usa"
+msgstr "se definió %q+D pero no se usa"
#: toplev.c:892 toplev.c:916
#, gcc-internal-format
@@ -19602,14 +19262,14 @@ msgid "-ffunction-sections may affect debugging on some targets"
msgstr "-ffunction-sections podría afectar la depuración en algunos objetivos"
#: toplev.c:1780
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "-fstack-protector not supported for this target"
-msgstr "no se da soporte a -fdata-sections para este objetivo"
+msgstr "no se da soporte a -fstack-protector para este objetivo"
#: toplev.c:1793
#, gcc-internal-format
msgid "unwind tables currently requires a frame pointer for correctness"
-msgstr ""
+msgstr "las tablas de desenredo actualmenter requieren un puntero a marco para ser correctas"
#: toplev.c:1898
#, gcc-internal-format
@@ -19634,7 +19294,7 @@ msgstr "hay un nombre SSA en la lista libre, pero aún está referenciado"
#: tree-cfg.c:3181
#, gcc-internal-format
msgid "ASSERT_EXPR with an always-false condition"
-msgstr ""
+msgstr "ASSERT_EXPR con una condición que es siempre falsa"
#: tree-cfg.c:3191
#, gcc-internal-format
@@ -19644,17 +19304,17 @@ msgstr "registro GIMPLE modificado con BIT_FIELD_REF"
#: tree-cfg.c:3226
#, gcc-internal-format
msgid "invariant not recomputed when ADDR_EXPR changed"
-msgstr ""
+msgstr "no se recomputa el invariante cuando cambia ADDR_EXPR"
#: tree-cfg.c:3232
#, gcc-internal-format
msgid "constant not recomputed when ADDR_EXPR changed"
-msgstr ""
+msgstr "no se recomputa la constante cuando cambia ADDR_EXPR"
#: tree-cfg.c:3237
#, gcc-internal-format
msgid "side effects not recomputed when ADDR_EXPR changed"
-msgstr ""
+msgstr "no se recomputan los efectos laterales cuando cambia ADDR_EXPR"
#: tree-cfg.c:3253
#, gcc-internal-format
@@ -19667,34 +19327,34 @@ msgid "non-boolean used in condition"
msgstr "se usó un modo no-booleano en la condición"
#: tree-cfg.c:3268
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid conditional operand"
-msgstr "operando const_double inválido"
+msgstr "operando condicional inválido"
#: tree-cfg.c:3323
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid reference prefix"
-msgstr "Prefijo de referencia inválido."
+msgstr "prefijo de referencia inválido"
#: tree-cfg.c:3388
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "is not a valid GIMPLE statement"
-msgstr "No es una declaración GIMPLE válida"
+msgstr "no es una declaración GIMPLE válida"
#: tree-cfg.c:3408
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "statement marked for throw, but doesn%'t"
-msgstr "Se marcó la sentencia para throw, pero no lo hace."
+msgstr "se marcó la sentencia para throw, pero no lo hace"
#: tree-cfg.c:3413
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "statement marked for throw in middle of block"
-msgstr "Se marcó la sentencia para throw en medio del bloque."
+msgstr "se marcó la sentencia para throw en medio del bloque"
#: tree-cfg.c:3508
#, gcc-internal-format
msgid "bb_for_stmt (phi) is set to a wrong basic block"
-msgstr ""
+msgstr "se estableción bb_for_stmt (phi) a un bloque básico erróneo"
#: tree-cfg.c:3523
#, gcc-internal-format
@@ -19702,121 +19362,119 @@ msgid "PHI def is not a GIMPLE value"
msgstr "La definición de PHI no es un valor GIMPLE"
#: tree-cfg.c:3539 tree-cfg.c:3562
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "incorrect sharing of tree nodes"
-msgstr "Compartición incorrecta de nodos de árbol"
+msgstr "compartición incorrecta de nodos de árbol"
#: tree-cfg.c:3553
#, gcc-internal-format
msgid "bb_for_stmt (stmt) is set to a wrong basic block"
-msgstr ""
+msgstr "se estableción bb_for_stmt (stmt) a un bloque básico erróneo"
#: tree-cfg.c:3571
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "verify_stmts failed"
-msgstr "falló verify_stmts."
+msgstr "falló verify_stmts"
#: tree-cfg.c:3592
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "ENTRY_BLOCK has a statement list associated with it"
-msgstr "ENTRY_BLOCK tiene una lista de sentencias asociadas con él\n"
+msgstr "ENTRY_BLOCK tiene una lista de sentencias asociadas con él"
#: tree-cfg.c:3598
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "EXIT_BLOCK has a statement list associated with it"
-msgstr "EXIT_BLOCK tiene una lista de sentencias asociadas con él\n"
+msgstr "EXIT_BLOCK tiene una lista de sentencias asociadas con él"
#: tree-cfg.c:3605
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "fallthru to exit from bb %d"
-msgstr "Salida a través para salir del bb %d\n"
+msgstr "salida a través para salir del bb %d"
#: tree-cfg.c:3627
-#, fuzzy, gcc-internal-format
+#, gcc-internal-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"
+msgstr "la etiqueta %s que no es local no es la primera en una secuencia de etiquetas en el bb %d"
#: tree-cfg.c:3636
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "label %s to block does not match in bb %d"
-msgstr "La etiqueta %s para bloquear no coincide con el bb %d\n"
+msgstr "la etiqueta %s para el bloque no coincide con el bb %d"
#: tree-cfg.c:3645
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "label %s has incorrect context in bb %d"
-msgstr "La etiqueta %s tiene un contexto incorrecto en el bb %d\n"
+msgstr "la etiqueta %s tiene un contexto incorrecto en el bb %d"
#: tree-cfg.c:3659
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "control flow in the middle of basic block %d"
-msgstr "Control de flujo insn en el medio del bloque básico %d\n"
+msgstr "control de flujo enmedio del bloque básico %d"
#: tree-cfg.c:3669
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "label %s in the middle of basic block %d"
-msgstr "Etiqueta %s en el medio del bloque básico %d\n"
+msgstr "etiqueta %s enmedio del bloque básico %d"
#: tree-cfg.c:3688
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "fallthru edge after a control statement in bb %d"
-msgstr "Borde de caída después de una sentencia de control en bb %d \n"
+msgstr "borde de caída después de una sentencia de control en bb %d"
#: tree-cfg.c:3703
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "structured COND_EXPR at the end of bb %d"
-msgstr "COND_EXPR estructurado al final de bb %d\n"
+msgstr "COND_EXPR estructurado al final del bb %d"
#: tree-cfg.c:3716 tree-cfg.c:3754 tree-cfg.c:3767 tree-cfg.c:3838
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "wrong outgoing edge flags at end of bb %d"
-msgstr "Banderas de borde de salida erróneas al final de bb %d\n"
+msgstr "banderas de borde de salida erróneas al final del bb %d"
#: tree-cfg.c:3724
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%<then%> label does not match edge at end of bb %d"
-msgstr "La etiqueta %<then%> no coincide con el borde al final de bb %d\n"
+msgstr "la etiqueta %<then%> no coincide con el borde al final del bb %d"
#: tree-cfg.c:3732
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%<else%> label does not match edge at end of bb %d"
-msgstr "La etiqueta %<else%> no coincide con el borde al final de bb %d\n"
+msgstr "la etiqueta %<else%> no coincide con el borde al final del bb %d"
#: tree-cfg.c:3742
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "explicit goto at end of bb %d"
-msgstr "Goto explícito al final de bb %d\n"
+msgstr "goto explícito al final del bb %d"
#: tree-cfg.c:3772
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "return edge does not point to exit in bb %d"
-msgstr "El borde de devolución no apunta a salir en bb %d\n"
+msgstr "el borde de devolución no apunta a exit en el bb %d"
#: tree-cfg.c:3805
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "found default case not at end of case vector"
-msgstr "Se encontró un case por defecto que no está al final del vector case"
+msgstr "se encontró un case por defecto que no está al final del vector case"
#: tree-cfg.c:3811
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "case labels not sorted:"
-msgstr ""
-"Las etiquetas case no están ordenadas\n"
-" "
+msgstr "Las etiquetas case no están ordenadas:"
#: tree-cfg.c:3822
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "no default case found at end of case vector"
-msgstr "No se encontró un case por defecto al final del vector case"
+msgstr "no se encontró un case por defecto al final del vector case"
#: tree-cfg.c:3830
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "extra outgoing edge %d->%d"
-msgstr "Borde de salida extra %d->%d\n"
+msgstr "borde de salida extra %d->%d"
#: tree-cfg.c:3852
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "missing edge %i->%i"
-msgstr "Falta el borde %i->%i"
+msgstr "falta el borde %i->%i"
#: tree-cfg.c:5146 tree-cfg.c:5150
#, gcc-internal-format
@@ -19844,86 +19502,86 @@ msgid "ignoring unknown option %q.*s in %<-fdump-%s%>"
msgstr "se ignora la opción desconocida %q.*s en %<-fdump-%s%>"
#: tree-eh.c:1767
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "EH edge %i->%i is missing"
-msgstr "falta el argumento para '-%s'"
+msgstr "falta el borde EH %i->%i"
#: tree-eh.c:1772
#, gcc-internal-format
msgid "EH edge %i->%i miss EH flag"
-msgstr ""
+msgstr "falta la bandera EH para el borde EH %i->%i"
#. ??? might not be mistake.
#: tree-eh.c:1778
#, gcc-internal-format
msgid "EH edge %i->%i has duplicated regions"
-msgstr ""
+msgstr "el borde EH %i->%i tiene regiones duplicadas"
#: tree-eh.c:1812
#, gcc-internal-format
msgid "BB %i can not throw but has EH edges"
-msgstr ""
+msgstr "el BB %i no puede hacer throw pero tiene bordes EH"
#: tree-eh.c:1819
#, gcc-internal-format
msgid "BB %i last statement has incorrectly set region"
-msgstr ""
+msgstr "la última sentencia del BB %i tiene establecida incorrectamente la región"
#: tree-eh.c:1830
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "unnecessary EH edge %i->%i"
-msgstr "Falta el borde %i->%i"
+msgstr "borde EH %i->%i innecesario"
#: tree-inline.c:1381
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+F can never be inlined because it uses alloca (override using the always_inline attribute)"
-msgstr "%Jla función %qF nunca puede ser inlined porque usa alloca (forzar usando el atributo always_inline)"
+msgstr "la función %q+F nunca puede ser inlined porque usa alloca (forzar usando el atributo always_inline)"
#: tree-inline.c:1393
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+F can never be inlined because it uses setjmp"
-msgstr "%Jla función %qF nunca puede ser inlined porque usa setjmp"
+msgstr "la función %q+F nunca puede ser inlined porque usa setjmp"
#: tree-inline.c:1407
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+F can never be inlined because it uses variable argument lists"
-msgstr "%Jla función %qF nunca puede ser inlined porque usa listas variables de argumentos"
+msgstr "la función %q+F nunca puede ser inlined porque usa listas variables de argumentos"
#: tree-inline.c:1418
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+F can never be inlined because it uses setjmp-longjmp exception handling"
-msgstr "%Jla función %qF nunca puede ser inlined porque usa manejo de excepciones setjmp-longjmp"
+msgstr "la función %q+F nunca puede ser inlined porque usa manejo de excepciones setjmp-longjmp"
#: tree-inline.c:1425
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+F can never be inlined because it uses non-local goto"
-msgstr "%Jla función %qF nunca puede ser inlined porque contiene un goto que no es local"
+msgstr "la función %q+F nunca puede ser inlined porque contiene un goto que no es local"
#: tree-inline.c:1436
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+F can never be inlined because it uses __builtin_return or __builtin_apply_args"
-msgstr "%Jla función %qF nunca puede ser inlined porque usa __builtin_return o __builtin_apply_args"
+msgstr "la función %q+F nunca puede ser inlined porque usa __builtin_return o __builtin_apply_args"
#: tree-inline.c:1455
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+F can never be inlined because it contains a computed goto"
-msgstr "%Jla función %qF nunca puede ser inlined porque contiene un goto calculado"
+msgstr "la función %q+F nunca puede ser inlined porque contiene un goto calculado"
#: tree-inline.c:1469
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+F can never be inlined because it receives a non-local goto"
-msgstr "%Jla función %qF nunca puede ser inlined porque recibe un goto que no es local"
+msgstr "la función %q+F nunca puede ser inlined porque recibe un goto que no es local"
#: tree-inline.c:1494
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+F can never be inlined because it uses variable sized variables"
-msgstr "%Jla función %qF nunca puede ser inlined porque usa variables de tamaño variable"
+msgstr "la función %q+F nunca puede ser inlined porque usa variables de tamaño variable"
# ¿Cómo traducir inlining de forma correcta? cfuga
#: tree-inline.c:2033 tree-inline.c:2043
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "inlining failed in call to %q+F: %s"
-msgstr "%Jel 'inlining' falló en la llamada a %qF: %s"
+msgstr "el 'inlining' falló en la llamada a %q+F: %s"
#: tree-inline.c:2034 tree-inline.c:2045
#, gcc-internal-format
@@ -19951,14 +19609,14 @@ msgid "mudflap: this language is not supported"
msgstr "mudflap: este lenguaje no tiene soporte"
#: tree-optimize.c:478
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "size of return value of %q+D is %u bytes"
-msgstr "%Jel tamaño del valor de devolución de %qD es de %u bytes"
+msgstr "el tamaño del valor de devolución de %q+D es de %u bytes"
#: tree-optimize.c:481
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "size of return value of %q+D is larger than %wd bytes"
-msgstr "%Jel tamaño del valor de devolución de %qD es más grande que %wd bytes"
+msgstr "el tamaño del valor de devolución de %q+D es más grande que %wd bytes"
#: tree-outof-ssa.c:614 tree-outof-ssa.c:629 tree-outof-ssa.c:643
#: tree-outof-ssa.c:665 tree-outof-ssa.c:1120 tree-outof-ssa.c:1872
@@ -19993,9 +19651,9 @@ msgid "unimplemented functionality"
msgstr "funcionalidad sin implementar"
#: tree-ssa-loop-niter.c:1035
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%H%s"
-msgstr "%s"
+msgstr "%H%s"
#: tree-ssa-operands.c:1328
#, gcc-internal-format
@@ -20003,39 +19661,39 @@ msgid "internal error"
msgstr "error interno"
#: tree-ssa.c:111
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "expected an SSA_NAME object"
-msgstr "Se esperaba un objeto SSA_NAME"
+msgstr "se esperaba un objeto SSA_NAME"
#: tree-ssa.c:117
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "type mismatch between an SSA_NAME and its symbol"
-msgstr "No coinciden los tipos entre un SSA_NAME y su símbolo."
+msgstr "no coinciden los tipos entre un SSA_NAME y su símbolo"
#: tree-ssa.c:123
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "found an SSA_NAME that had been released into the free pool"
-msgstr "Se encontró un SSA_NAME que fue liberado en el conjunto libre"
+msgstr "se encontró un SSA_NAME que fue liberado en el conjunto libre"
#: tree-ssa.c:129
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "found a virtual definition for a GIMPLE register"
-msgstr "Se encontró una definición virtual para un registro GIMPLE"
+msgstr "se encontró una definición virtual para un registro GIMPLE"
#: tree-ssa.c:135
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "found a real definition for a non-register"
-msgstr "Se encontró una definición real para uno que no es registro"
+msgstr "se encontró una definición real para uno que no es registro"
#: tree-ssa.c:142
#, gcc-internal-format
msgid "found real variable when subvariables should have appeared"
-msgstr ""
+msgstr "se encontró una variable real cuando deberían aparacer subvariables"
#: tree-ssa.c:171
#, gcc-internal-format
msgid "SSA_NAME created in two different blocks %i and %i"
-msgstr "Se creó SSA_NAME en dos bloques diferentes %i y %i"
+msgstr "se creó SSA_NAME en dos bloques diferentes %i y %i"
#: tree-ssa.c:180
#, gcc-internal-format
@@ -20043,44 +19701,44 @@ msgid "SSA_NAME_DEF_STMT is wrong"
msgstr "SSA_NAME_DEF_STMT es erróneo"
#: tree-ssa.c:238
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "missing definition"
-msgstr "Falta la definición"
+msgstr "falta la definición"
#: tree-ssa.c:244
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "definition in block %i does not dominate use in block %i"
-msgstr "La definición en el bloque %i no domina el uso en el bloque %i"
+msgstr "la definición en el bloque %i no domina el uso en el bloque %i"
#: tree-ssa.c:252
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "definition in block %i follows the use"
-msgstr "Una definición en el bloque %i a continuación del uso"
+msgstr "una definición en el bloque %i a continuación del uso"
#: tree-ssa.c:259
#, gcc-internal-format
msgid "SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set"
-msgstr "Se debe establecer SSA_NAME_OCCURS_IN_ABNORMAL_PHI"
+msgstr "se debe establecer SSA_NAME_OCCURS_IN_ABNORMAL_PHI"
#: tree-ssa.c:267
#, gcc-internal-format
msgid "no immediate_use list"
-msgstr ""
+msgstr "no hay una lista immediate_use"
#: tree-ssa.c:279
#, gcc-internal-format
msgid "wrong immediate use list"
-msgstr ""
+msgstr "lista de uso inmediato errónea"
#: tree-ssa.c:312
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "incoming edge count does not match number of PHI arguments"
-msgstr "La cuenta de borde de entrada no coincide con el número de argumentos PHI\n"
+msgstr "la cuenta de borde de entrada no coincide con el número de argumentos PHI"
#: tree-ssa.c:327
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "PHI argument is missing for edge %d->%d"
-msgstr "Falta un argumento PHI para el borde %d->%d\n"
+msgstr "Falta un argumento PHI para el borde %d->%d"
#: tree-ssa.c:336
#, gcc-internal-format
@@ -20088,54 +19746,54 @@ msgid "PHI argument is not SSA_NAME, or invariant"
msgstr "el argumento PHI no es SSA_NAME, o invariante"
#: tree-ssa.c:348
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "wrong edge %d->%d for PHI argument"
-msgstr "Borde erróneo %d->%d para el argumento PHI\n"
+msgstr "borde erróneo %d->%d para el argumento PHI"
#: tree-ssa.c:397
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "non-addressable variable inside an alias set"
-msgstr "Variable no direccionable dentro de un conjunto de alias."
+msgstr "variable no direccionable dentro de un conjunto de alias"
#: tree-ssa.c:413
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "addressable variable that is an alias tag but is not in any alias set"
-msgstr "Variable direccionable que es una etiqueta de alias pero no está en ningún conjunto de alias."
+msgstr "variable direccionable que es una etiqueta de alias pero no está en ningún conjunto de alias"
#: tree-ssa.c:423
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "verify_flow_insensitive_alias_info failed"
-msgstr "falló verify_flow_insensitive_alias_info."
+msgstr "falló verify_flow_insensitive_alias_info"
#: tree-ssa.c:465
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "dereferenced pointers should have a name or a type tag"
-msgstr "Los punteros dereferenciados deben tener un nombre o una etiqueta de tipo"
+msgstr "los punteros dereferenciados deben tener un nombre o una etiqueta de tipo"
#: tree-ssa.c:472
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "pointers with a memory tag, should have points-to sets"
-msgstr "Los punteros con una etiqueta de memoria deben tener punteros a conjuntos o apuntar a malloc"
+msgstr "los punteros con una etiqueta de memoria, deben tener conjuntos punteros-a"
#: tree-ssa.c:480
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "pointer escapes but its name tag is not call-clobbered"
-msgstr "El puntero escapa pero su etiqueta de nombre no es sobreescrita en la llamada."
+msgstr "el puntero escapa pero su etiqueta de nombre no es sobreescrita en la llamada"
#: tree-ssa.c:489
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "verify_flow_sensitive_alias_info failed"
-msgstr "falló verify_flow_sensitive_alias_info."
+msgstr "falló verify_flow_sensitive_alias_info"
#: tree-ssa.c:566
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
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"
+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:582
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "two different pointers with identical points-to sets but different name tags"
-msgstr "Dos punteros diferentes con punteros a conjuntos idénticos pero diferentes etiquetas de nombre"
+msgstr "dos punteros diferentes con contuntos punteros-a idénticos pero diferentes etiquetas de nombre"
#: tree-ssa.c:614
#, gcc-internal-format
@@ -20143,29 +19801,29 @@ msgid "verify_name_tags failed"
msgstr "falló verify_name_tags"
#: tree-ssa.c:685
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "AUX pointer initialized for edge %d->%d"
-msgstr "se inicializó el puntero AUX para el borde %d->%d\n"
+msgstr "se inicializó el puntero AUX para el borde %d->%d"
#: tree-ssa.c:708
#, gcc-internal-format
msgid "stmt (%p) marked modified after optimization pass : "
-msgstr ""
+msgstr "se modificó el stmt (%p) marcado después del paso de optimización : "
#: tree-ssa.c:726
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "statement makes a memory store, but has no V_MAY_DEFS nor V_MUST_DEFS"
-msgstr "La sentencia hizo almacenamientos con alias, pero no tiene V_MAY_DEFS"
+msgstr "la sentencia hizo un almacenamiento de memoria, pero no tiene V_MAY_DEFS ni V_MUST_DEFS"
#: tree-ssa.c:737
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "statement makes aliased stores, but has no V_MAY_DEFS"
-msgstr "La sentencia hizo almacenamientos con alias, pero no tiene V_MAY_DEFS"
+msgstr "la sentencia hizo almacenamientos con alias, pero no tiene V_MAY_DEFS"
#: tree-ssa.c:776
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "verify_ssa failed"
-msgstr "falló verify_ssa."
+msgstr "falló verify_ssa"
#. We only do data flow with SSA_NAMEs, so that's all we
#. can warn about.
@@ -20180,24 +19838,24 @@ msgid "%H%qD may be used uninitialized in this function"
msgstr "%Hpuede ser que se utilice %qD sin inicializar en esta función"
#: tree-vect-transform.c:561
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "no support for induction"
-msgstr "no hay soporte para reducción/inducción"
+msgstr "no hay soporte para inducción"
#: tree.c:3497
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D already declared with dllexport attribute: dllimport ignored"
-msgstr "%J'%D' se redeclara sin el atributo dllimport después de ser referenciado con enlazado dllimport"
+msgstr "%q+D se declaró anteriormente con el atributo dllimport: se ignora dllimport"
#: tree.c:3509
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D redeclared without dllimport attribute after being referenced with dll linkage"
-msgstr "%J'%D' se redeclara sin el atributo dllimport después de ser referenciado con enlazado dllimport"
+msgstr "%q+D se redeclara sin el atributo dllimport después de ser referenciado con enlazado dllimport"
#: tree.c:3525 config/i386/winnt-cxx.c:70
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D redeclared without dllimport attribute: previous dllimport ignored"
-msgstr "%J'%D' se redeclara sin el atributo dllimport después de ser referenciado con enlazado dllimport"
+msgstr "%q+D se redeclara sin el atributo dllimport: se ignora el dllimport previo"
#: tree.c:3577 config/darwin.c:1236 config/arm/arm.c:2890
#: config/arm/arm.c:2918 config/avr/avr.c:4656 config/h8300/h8300.c:5282
@@ -20209,24 +19867,24 @@ msgid "%qs attribute ignored"
msgstr "se ignora el atributo %qs"
#: tree.c:3596
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "inline function %q+D declared as dllimport: attribute ignored"
-msgstr "%Hla función inline '%D' se declara como dllimport: se ignora el atributo."
+msgstr "la función inline %q+D se declara como dllimport: se ignora el atributo."
#: tree.c:3604
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+D definition is marked dllimport"
-msgstr "%Jla definición de la función %qD está marcada como dllimport."
+msgstr "la definición de la función %q+D se marca como dllimport"
#: tree.c:3612 config/sh/symbian.c:431
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "variable %q+D definition is marked dllimport"
-msgstr "%Jla definición de la variable %qD está marcada como dllimport."
+msgstr "la definición de la variable %q+D se marca como dllimport"
#: tree.c:3635 config/sh/symbian.c:506
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "external linkage required for symbol %q+D because of %qs attribute"
-msgstr "%Jse requiere enlazado externo para el símbolo %qD debido al atributo %qs."
+msgstr "se requiere enlazado externo para el símbolo %q+D debido al atributo %qs"
#: tree.c:5029
#, gcc-internal-format
@@ -20254,9 +19912,9 @@ msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
msgstr "revisión de árbol: se esperaba la clase %qs, se tiene %qs (%s) en %s, en %s:%d"
#: tree.c:6075
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "tree check: expected tree that contains %qs structure, have %qs in %s, at %s:%d"
-msgstr "revisión de árbol: se esperaba la clase %qs, se tiene %qs (%s) en %s, en %s:%d"
+msgstr "revisión de árbol: se esperaba un árbol que contenga la estructura %qs, se tiene %qs en %s, en %s:%d"
#: tree.c:6089
#, gcc-internal-format
@@ -20276,32 +19934,32 @@ msgstr "revisión de árbol: acceso del operando %d de %s con %d operandos en %s,
#: value-prof.c:101
#, gcc-internal-format
msgid "%HCorrupted value profile: %s profiler overall count (%d) does not match BB count (%d)"
-msgstr ""
+msgstr "%HValor de perfil corrupto: %s la cuenta general del perfilador (%d) no coincide con la cuenta BB (%d)"
#: varasm.c:470
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%+D causes a section type conflict"
-msgstr "%J%D causa un conflicto de tipo de sección"
+msgstr "%+D causa un conflicto de tipo de sección"
#: varasm.c:930 varasm.c:938
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "register name not specified for %q+D"
-msgstr "%Jno se especifica un nombre de registro para %qD"
+msgstr "no se especifica un nombre de registro para %q+D"
#: varasm.c:940
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid register name for %q+D"
-msgstr "%Jnombre de registro inválido para %qD"
+msgstr "nombre de registro inválido para %q+D"
#: varasm.c:942
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "data type of %q+D isn%'t suitable for a register"
-msgstr "%Jel tipo de datos de %qD no es adecuado para un registro"
+msgstr "el tipo de datos de %q+D no es adecuado para un registro"
#: varasm.c:945
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "register specified for %q+D isn%'t suitable for data type"
-msgstr "%Jel registro especificado por %qD no es adecuado para el tipo de datos"
+msgstr "el registro especificado por %q+D no es adecuado para el tipo de datos"
#: varasm.c:955
#, gcc-internal-format
@@ -20311,12 +19969,12 @@ msgstr "la variable de registro global tiene el valor inicial"
#: varasm.c:959
#, gcc-internal-format
msgid "optimization may eliminate reads and/or writes to register variables"
-msgstr ""
+msgstr "la optimización puede eliminar lecturas y/o escrituras a variables de registro"
#: varasm.c:997
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "register name given for non-register variable %q+D"
-msgstr "%Jnombre de registro dado para una variable %qD que no es registro"
+msgstr "nombre de registro dado para una variable %q+D que no es registro"
#: varasm.c:1074
#, gcc-internal-format
@@ -20329,9 +19987,9 @@ msgid "global constructors not supported on this target"
msgstr "no se da soporte a constructores globales en este objetivo"
#: varasm.c:1697
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "alignment of %q+D is greater than maximum object file alignment. Using %d"
-msgstr "%Jla alineación de %qD es mayor que la alineación máxima del fichero objeto. Se usa %d"
+msgstr "la alineación de %q+D es mayor que la alineación máxima del fichero objeto. Se usa %d"
#: varasm.c:1736
#, gcc-internal-format
@@ -20339,14 +19997,14 @@ msgid "thread-local COMMON data not implemented"
msgstr "los datos COMMON thread-local no están implentados"
#: varasm.c:1761
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "requested alignment for %q+D is greater than implemented alignment of %wu"
-msgstr "%Jla alineación solicitada para %qD es mayor que la alineación implementada de %d"
+msgstr "la alineación solicitada para %q+D es mayor que la alineación implementada de %wu"
#: varasm.c:3933
#, gcc-internal-format
msgid "no-op convert from %wd to %wd bytes in initializer"
-msgstr ""
+msgstr "conversión no realizada de %wd a %wd bytes en el inicializador"
#: varasm.c:3977
#, gcc-internal-format
@@ -20364,24 +20022,24 @@ msgid "invalid initial value for member %qs"
msgstr "valor inicial inválido para el miembro %qs"
#: varasm.c:4451 varasm.c:4495
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "weak declaration of %q+D must precede definition"
-msgstr "%Jla declaración débil de %qD debe preceder a la definición"
+msgstr "la declaración débil de %q+D debe preceder a la definición"
#: varasm.c:4459
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "weak declaration of %q+D after first use results in unspecified behavior"
-msgstr "%Jla declaración débil de %qD después del primer uso resulta en una conducta no especificada"
+msgstr "la declaración débil de %q+D después del primer uso resulta en una conducta no especificada"
#: varasm.c:4493
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "weak declaration of %q+D must be public"
-msgstr "%Jla declaración débil de %qD debe ser public"
+msgstr "la declaración débil de %q+D debe ser public"
#: varasm.c:4502
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "weak declaration of %q+D not supported"
-msgstr "%Jla declaración débil de %qD no tiene soporte"
+msgstr "la declaración débil de %q+D no tiene soporte"
#: varasm.c:4532
#, gcc-internal-format
@@ -20389,24 +20047,24 @@ msgid "only weak aliases are supported in this configuration"
msgstr "sólo los aliases débiles tienen soporte en esta configuración"
#: varasm.c:4762
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%Jweakref is not supported in this configuration"
-msgstr "-m%s no tiene soporte en esta configuración"
+msgstr "%Jweakref no tiene soporte en esta configuración"
#: varasm.c:4835
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D aliased to undefined symbol %qs"
-msgstr "%J%qD es un alias del símbolo sin definir %qE"
+msgstr "%q+D es un alias del símbolo sin definir %qs"
#: varasm.c:4840
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D aliased to external symbol %qs"
-msgstr "%J%qD es un alias del símbolo externo %qE"
+msgstr "%q+D es un alias del símbolo externo %qs"
#: varasm.c:4879
#, gcc-internal-format
msgid "weakref %q+D ultimately targets itself"
-msgstr ""
+msgstr "la referencia débil %q+D finalmente apunta a sí misma"
#: varasm.c:4892
#, gcc-internal-format
@@ -20440,9 +20098,9 @@ msgstr "error de dominio del vector %s %s, en %s en %s:%u"
#. Print an error message for unrecognized stab codes.
#: xcoffout.c:187
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "no sclass for %s stab (0x%x)"
-msgstr "no hay sclass para el stab %s (0x%x)\n"
+msgstr "no hay sclass para el stab %s (0x%x)"
#: config/darwin-c.c:86
#, gcc-internal-format
@@ -20488,7 +20146,7 @@ msgstr "la inclusión del submarco de trabajo %s tiene conflicto con el marco de
#: config/darwin-c.c:577
#, gcc-internal-format
msgid "Unknown value %qs of -mmacosx-version-min"
-msgstr ""
+msgstr "Valor %qs desconocido de -mmacosx-version-min"
#: config/darwin.c:1350
#, gcc-internal-format
@@ -20496,9 +20154,9 @@ msgid "internal and protected visibility attributes not supported in this config
msgstr "los atributos de visibilidad internal y protected no tienen soporte en esta configuración; se ignoran"
#: config/host-darwin.c:63
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "couldn't unmap pch_address_space: %m"
-msgstr "no se puede hacer unmap de pch_address_space: %m\n"
+msgstr "no se puede hacer unmap de pch_address_space: %m"
#: config/sol2-c.c:94 config/sol2-c.c:110
#, gcc-internal-format
@@ -20556,9 +20214,9 @@ msgid "junk at end of %<#pragma fini%>"
msgstr "basura al final de %<#pragma fini%>"
#: config/sol2.c:54
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "ignoring %<#pragma align%> for explicitly aligned %q+D"
-msgstr "%Jse ignora %<#pragma align%> para %<%D%> que está alineado explícitamente"
+msgstr "se ignora %<#pragma align%> para %q+D que está alineado explícitamente"
#. Mach-O supports 'weak imports', and 'weak definitions' in coalesced
#. sections. machopic_select_section ensures that weak variables go in
@@ -20572,9 +20230,9 @@ msgstr "las definiciones de alias no tienen soporte en Mach-O; ignoradas"
#. No profiling.
#: config/vx-common.h:83
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "profiler support for VxWorks"
-msgstr "soporte de análisis de perfil para WindISS"
+msgstr "soporte de análisis de perfil para VxWorks"
#: config/windiss.h:37
#, gcc-internal-format
@@ -20769,14 +20427,14 @@ msgid "-mfloat-abi=hard and VFP"
msgstr "-mfloat-abi=hard y VFP"
#: config/arm/arm.c:1241
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid thread pointer option: -mtp=%s"
-msgstr "opción coma flotante inválida: -mfpu-%s"
+msgstr "opción de puntero a hilo inválida: -mtp=%s"
#: config/arm/arm.c:1254
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "can not use -mtp=cp15 with -mthumb"
-msgstr "no se puede usar typeid sin -fno-rtti"
+msgstr "no se puede usar -mtp=cp15 con -mthumb"
#: config/arm/arm.c:1268
#, gcc-internal-format
@@ -20831,14 +20489,14 @@ 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:165 config/mcore/mcore.c:2898
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "initialized variable %q+D is marked dllimport"
-msgstr "%Jla variable inicializada '%D' está marcada como dllimport"
+msgstr "la variable inicializada %q+D está marcada como dllimport"
#: config/arm/pe.c:174
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "static variable %q+D is marked dllimport"
-msgstr "%Jla variable estática '%D' está marcada como dllimport"
+msgstr "la variable estática %q+D está marcada como dllimport"
#: config/avr/avr.c:531
#, gcc-internal-format
@@ -20851,14 +20509,14 @@ 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:4693
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qs appears to be a misspelled interrupt handler"
-msgstr "`%s' parece ser un manejador de interrupciones mal escrito"
+msgstr "%qs parece ser un manejador de interrupciones mal escrito"
#: config/avr/avr.c:4701
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qs appears to be a misspelled signal handler"
-msgstr "`%s' parece ser un manejador de señales mal escrito"
+msgstr "%qs parece ser un manejador de señales mal escrito"
#: config/avr/avr.c:4770
#, gcc-internal-format
@@ -20876,9 +20534,9 @@ msgid "trampolines not supported"
msgstr "los trampolines no tienen soporte"
#: config/bfin/bfin.c:1815 config/m68k/m68k.c:294
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "-mshared-library-id=%s is not between 0 and %d"
-msgstr "-mshared-library-id=%d no está entre 0 y %d"
+msgstr "-mshared-library-id=%s no está entre 0 y %d"
#: config/bfin/bfin.c:1835
#, gcc-internal-format
@@ -20891,14 +20549,14 @@ msgid "multiple function type attributes specified"
msgstr "se especificaron múltiples atributos de tipo de función"
#: config/bfin/bfin.c:2794
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "`%s' attribute only applies to functions"
-msgstr "el atributo %qs se aplica solamente a funciones"
+msgstr "el atributo `%s' se aplica solamente a funciones"
#: config/bfin/bfin.c:2805
#, gcc-internal-format
msgid "can't apply both longcall and shortcall attributes to the same function"
-msgstr ""
+msgstr "no se pueden aplicar los atributos longcall y shortcall al mismo tiempo a la misma función"
#: config/c4x/c4x-c.c:72
#, gcc-internal-format
@@ -20942,12 +20600,12 @@ msgstr "el ISR %s requiere de %d words de variables locales, el máximo es 32767"
#: config/cris/cris.c:435
#, gcc-internal-format
msgid "MULT case in cris_op_str"
-msgstr ""
+msgstr "case MULT en cris_op_str"
#: config/cris/cris.c:813
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid use of ':' modifier"
-msgstr "operando inválido para el modificador 'b'"
+msgstr "uso inválido del modificador ':'"
#: config/cris/cris.c:986
#, gcc-internal-format
@@ -20960,9 +20618,9 @@ msgid "internal error: sideeffect-insn affecting main effect"
msgstr "error interno: insn colateral afectando al efecto principal"
#: config/cris/cris.c:1552
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "unknown cc_attr value"
-msgstr "reubicación unspec desconocida"
+msgstr "valor cc_attr desconocido"
#. If we get here, the caller got its initial tests wrong.
#: config/cris/cris.c:1903
@@ -20996,14 +20654,14 @@ 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:2416
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "Unknown src"
-msgstr "Operador intrínseco desconocido"
+msgstr "Fuente desconocida"
#: config/cris/cris.c:2477
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "Unknown dest"
-msgstr "modo insn desconocido"
+msgstr "Destino desconocido"
#: config/cris/cris.c:2762
#, gcc-internal-format
@@ -21013,7 +20671,7 @@ msgstr "marco de la pila demasiado grande: %d bytes"
#: config/cris/cris.c:3214 config/cris/cris.c:3241
#, gcc-internal-format
msgid "expand_binop failed in movsi got"
-msgstr ""
+msgstr "falló expand_binop en movsi got"
#: config/cris/cris.c:3322
#, gcc-internal-format
@@ -21062,7 +20720,7 @@ msgstr "emitiendo un operando PIC, pero el registro PIC aún no está preparado"
#: config/cris/cris.h:44
#, gcc-internal-format
msgid "CRIS-port assertion failed: "
-msgstr ""
+msgstr "falló la aserción del transporte CRIS: "
#. Node: Caller Saves
#. (no definitions)
@@ -21076,14 +20734,14 @@ msgid "no FUNCTION_PROFILER for CRIS"
msgstr "no hay FUNCTION_PROFILER para CRIS"
#: config/crx/crx.h:355
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "Profiler support for CRX"
-msgstr "soporte de análisis de perfil para WindISS"
+msgstr "soporte de análisis de perfil para CRX"
#: config/crx/crx.h:366
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "Trampoline support for CRX"
-msgstr "los trampolines no tienen soporte"
+msgstr "Soporte de trampolines para CRX"
#: config/frv/frv.c:8623
#, gcc-internal-format
@@ -21248,7 +20906,7 @@ msgstr "-mbranch-cost=%d no está entre 0 y 5"
#: config/i386/i386.c:1535
#, gcc-internal-format
msgid "-mlarge-data-threshold=%d is negative"
-msgstr ""
+msgstr "-mlarge-data-threshold=%d es negativo"
#: config/i386/i386.c:1547
#, gcc-internal-format
@@ -21268,7 +20926,7 @@ msgstr "la convención de llamadas -mrtd no tiene soporte en el modo de 64 bit"
#: config/i386/i386.c:1616
#, gcc-internal-format
msgid "-msseregparm used without SSE enabled"
-msgstr ""
+msgstr "se usó -msseregparm sin SSE activado"
#: config/i386/i386.c:1628 config/i386/i386.c:1639
#, gcc-internal-format
@@ -21288,7 +20946,7 @@ msgstr "valor erróneo (%s) para el interruptor -mfpmath="
#: config/i386/i386.c:1673
#, gcc-internal-format
msgid "unwind tables currently require either a frame pointer or -maccumulate-outgoing-args for correctness"
-msgstr ""
+msgstr "actualmente las tablas de desenredo requieren un puntero de marco o -maccumulate-outgoing-args para ser correctas"
#: config/i386/i386.c:2043 config/i386/i386.c:2085
#, gcc-internal-format
@@ -21306,9 +20964,9 @@ msgid "argument to %qs attribute larger than %d"
msgstr "el argumento para el atributo %qs es más grande que %d"
#: config/i386/i386.c:2077 config/i386/i386.c:2112
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "fastcall and cdecl attributes are not compatible"
-msgstr "los atributos fastcall y stdcall no son compatibles"
+msgstr "los atributos fastcall y cdecl no son compatibles"
#: config/i386/i386.c:2081
#, gcc-internal-format
@@ -21316,24 +20974,24 @@ msgid "fastcall and stdcall attributes are not compatible"
msgstr "los atributos fastcall y stdcall no son compatibles"
#: config/i386/i386.c:2095 config/i386/i386.c:2108
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "stdcall and cdecl attributes are not compatible"
-msgstr "los atributos fastcall y stdcall no son compatibles"
+msgstr "los atributos stdcall y cdecl no son compatibles"
#: config/i386/i386.c:2099
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "stdcall and fastcall attributes are not compatible"
-msgstr "los atributos fastcall y stdcall no son compatibles"
+msgstr "los atributos stdcall y fastcall no son compatibles"
#: config/i386/i386.c:2234
#, gcc-internal-format
msgid "Calling %qD with attribute sseregparm without SSE/SSE2 enabled"
-msgstr ""
+msgstr "Se llama a %qD con el atributo sseregparm sin activar SSE/SSE2"
#: config/i386/i386.c:2237
#, gcc-internal-format
msgid "Calling %qT with attribute sseregparm without SSE/SSE2 enabled"
-msgstr ""
+msgstr "Se llama a %qT con el atributo sseregparm sin activar SSE/SSE2"
#: config/i386/i386.c:2962
#, gcc-internal-format
@@ -21361,9 +21019,9 @@ 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:3572
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "MMX vector return without MMX enabled changes the ABI"
-msgstr "el argumento de vector MMX sin MMX activado cambia la ABI"
+msgstr "la devolución del vector MMX sin MMX activado cambia la ABI"
#: config/i386/i386.c:6933
#, gcc-internal-format
@@ -21376,9 +21034,9 @@ msgid "unsupported operand size for extended register"
msgstr "tamaño de operando sin soporte para el registro extendido"
#: config/i386/i386.c:15206 config/rs6000/rs6000.c:7157
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "selector must be an integer constant in the range 0..%wi"
-msgstr "el selector debe ser una constante entera en el rango 0..%i"
+msgstr "el selector debe ser una constante entera en el rango 0..%wi"
#: config/i386/i386.c:15544
#, gcc-internal-format
@@ -21393,12 +21051,12 @@ msgstr "se ignora el atributo incompatible %qs"
#: config/i386/winnt-cxx.c:74
#, gcc-internal-format
msgid "key method %q+D of dllimport'd class defined"
-msgstr ""
+msgstr "se definió el método clave %q+D de la clase dllimportada"
#: config/i386/winnt-cxx.c:95 config/sh/symbian.c:173
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "definition of static data member %q+D of dllimport'd class"
-msgstr "%Hla definición del dato miembro static '%D' es de la clase dllimport."
+msgstr "la definición del dato miembro static %q+D de la clase dllimportada"
#: config/i386/winnt.c:74
#, gcc-internal-format
@@ -21406,14 +21064,14 @@ msgid "%qs attribute only applies to variables"
msgstr "el atributo %qs solamente se aplica a variables"
#: config/i386/winnt.c:103
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qs attribute applies only to initialized variables with external linkage"
-msgstr "el atributo %qs solamente se aplica a variables"
+msgstr "el atributo %qs solamente se aplica a variables sin inicializar con enlazado externo"
#: config/i386/winnt.c:214
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "inconsistent dll linkage for %q+D, dllexport assumed"
-msgstr "%Jenlazado de dll inconsistente para '%D', se asume dllexport."
+msgstr "enlazado de dll inconsistente para %q+D, se asume dllexport"
#: config/i386/winnt.c:254 config/sh/symbian.c:273
#, gcc-internal-format
@@ -21421,9 +21079,9 @@ msgid "%qs declared as both exported to and imported from a DLL"
msgstr "%qs se declara como exportado a e importado de una DLL al mismo tiempo"
#: config/i386/winnt.c:549
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D causes a section type conflict"
-msgstr "%J%D causa un conflicto de tipo de sección"
+msgstr "%q+D causa un conflicto de tipo de sección"
#: config/i386/cygming.h:166
#, gcc-internal-format
@@ -21456,9 +21114,9 @@ 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:521
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "address area of %q+D conflicts with previous declaration"
-msgstr "%Jel área de direcciones de '%s' en conflicto con una declaración previa"
+msgstr "el área de dirección de %q+D en conflicto con una declaración previa"
#: config/ia64/ia64.c:528
#, gcc-internal-format
@@ -21476,14 +21134,14 @@ msgid "%s-%s is an empty range"
msgstr "%s-%s es un rango vacío"
#: config/ia64/ia64.c:5084
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "bad value %<%s%> for -mtls-size= switch"
-msgstr "valor erróneo (%s) para el interruptor -mtls-size="
+msgstr "valor erróneo %<%s%> para el interruptor -mtls-size="
#: config/ia64/ia64.c:5112
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "bad value %<%s%> for -mtune= switch"
-msgstr "valor erróneo (%s) para el interruptor -mtune="
+msgstr "valor erróneo %<%s%> para el interruptor -mtune="
#: config/ia64/ia64.c:5131
#, gcc-internal-format
@@ -21491,9 +21149,9 @@ msgid "not yet implemented: latency-optimized inline square root"
msgstr "no se ha implementado aún: raíz cuadrada inline optimizada para latencia"
#: config/iq2000/iq2000.c:1808
-#, fuzzy, gcc-internal-format
+#, gcc-internal-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."
+msgstr "gp_offset (%ld) o end_offset (%ld) es menor a cero"
#: config/iq2000/iq2000.c:2589
#, gcc-internal-format
@@ -21517,24 +21175,24 @@ msgid "PRINT_OPERAND null pointer"
msgstr "PRINT_OPERAND puntero nulo"
#: config/m32c/m32c-pragma.c:64
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "junk at end of #pragma GCC memregs [0..16]"
-msgstr "basura al final de #pragma %s"
+msgstr "basura al final de #pragma GCC memregs [0..16]"
#: config/m32c/m32c-pragma.c:71
#, gcc-internal-format
msgid "#pragma GCC memregs must precede any function decls"
-msgstr ""
+msgstr "#pragma GCC memregs debe preceder a cualquier declaración de función"
#: config/m32c/m32c-pragma.c:82 config/m32c/m32c-pragma.c:89
#, gcc-internal-format
msgid "#pragma GCC memregs takes a number [0..16]"
-msgstr ""
+msgstr "#pragma GCC memregs toma un número [0..16]"
#: config/m32c/m32c.c:412
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid target memregs value '%d'"
-msgstr "valor de --param %qs inválido"
+msgstr "valor de memregs objetivo '%d' inválido"
#: config/m68hc11/m68hc11.c:279
#, gcc-internal-format
@@ -21557,9 +21215,9 @@ msgid "cannot specify both -msep-data and -mid-shared-library"
msgstr "no se pueden especificar -msep-data y -mid-shared-library al mismo tiempo"
#: config/m68k/m68k.c:333
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "-fPIC is not currently supported on the 68000 or 68010"
-msgstr "-fPIC actualmente no tiene soporte en el 68000 o 68010\n"
+msgstr "-fPIC actualmente no tiene soporte en el 68000 o 68010"
#: config/m68k/m68k.c:640 config/rs6000/rs6000.c:13646
#, gcc-internal-format
@@ -21567,9 +21225,9 @@ msgid "stack limit expression is not supported"
msgstr "no se da soporte a la expresión del límite de la pila"
#: config/mips/mips.c:4584
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "-%s conflicts with the other architecture options, which specify a %s processor"
-msgstr "-mips%s tiene conflictos con las otras opciones de la arquitectura, las cuales especifican un procesador MIPS%d"
+msgstr "-%s tiene conflictos con las otras opciones de la arquitectura, las cuales especifican un procesador %s"
#: config/mips/mips.c:4600
#, gcc-internal-format
@@ -21623,9 +21281,9 @@ msgid "-mips3d/-mpaired-single must be used with -mips64"
msgstr "-mips3d/-mpaired-single se deben usar con -mips64"
#: config/mips/mips.c:4816
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "-mips16 and -mdsp cannot be used together"
-msgstr "no se pueden usar juntos -mapcs-26 y -mapcs-32"
+msgstr "no se pueden usar juntos -mips16 y -mdsp"
#: config/mips/mips.c:5332
#, gcc-internal-format
@@ -21663,9 +21321,9 @@ msgid "the cpu name must be lower case"
msgstr "el nombre de cpu debe estar en minúsculas"
#: config/mips/mips.c:10214
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid argument to builtin function"
-msgstr "argumento inválido para %<__builtin_return_address%>"
+msgstr "argumento inválido para la función interna"
#. Output assembler code to FILE to increment profiler label # LABELNO
#. for profiling a function entry.
@@ -21711,14 +21369,14 @@ msgid "MMIX Internal: Missing %qc case in mmix_print_operand"
msgstr "MMIX Interno: Falta un case %qc en mmix_print_operand"
#: config/mmix/mmix.c:1894
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "stack frame not a multiple of 8 bytes: %wd"
-msgstr "el marco de pila no es un múltiplo de 8 bytes: %d"
+msgstr "el marco de pila no es un múltiplo de 8 bytes: %wd"
#: config/mmix/mmix.c:2130
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "stack frame not a multiple of octabyte: %wd"
-msgstr "el marco de pila no es un múltiplo de octabyte: %d"
+msgstr "el marco de pila no es un múltiplo de octabyte: %wd"
#: config/mmix/mmix.c:2470 config/mmix/mmix.c:2534
#, gcc-internal-format
@@ -21728,17 +21386,17 @@ msgstr "MMIX Interno: %s no es un int desplazable"
#: config/mt/mt.c:311
#, gcc-internal-format
msgid "info pointer NULL"
-msgstr ""
+msgstr "el puntero de información es NULL"
#: config/pa/pa.c:459
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "PIC code generation is not supported in the portable runtime model"
-msgstr "La generación de código PIC no tiene soporte en el modelo transportable de tiempo de ejecución\n"
+msgstr "La generación de código PIC no tiene soporte en el modelo transportable de tiempo de ejecución"
#: config/pa/pa.c:464
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "PIC code generation is not compatible with fast indirect calls"
-msgstr "La generación de código PIC no es compatible con las llamadas rápidas indirectas\n"
+msgstr "La generación de código PIC no es compatible con las llamadas rápidas indirectas"
#: config/pa/pa.c:469
#, gcc-internal-format
@@ -21820,14 +21478,14 @@ msgid "junk at end of #pragma longcall"
msgstr "basura al final de #pragma longcall"
#: config/rs6000/rs6000-c.c:2530
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "passing arg %d of %qE discards qualifiers frompointer target type"
msgstr "el paso del argumento %d de %qE descarta los calificadores del tipo del destino del puntero"
#: config/rs6000/rs6000-c.c:2573
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid parameter combination for AltiVec intrinsic"
-msgstr "combinación de parámetros inválida para el intrínseco AltiVec %qs"
+msgstr "combinación de parámetros inválida para el intrínseco AltiVec"
# FIXME: ¿Traducción correcta al español de little endian? cfuga
#: config/rs6000/rs6000.c:1254
@@ -21878,12 +21536,12 @@ msgstr "Usando ABI de darwin antiguo"
#: config/rs6000/rs6000.c:1787
#, gcc-internal-format
msgid "Using IBM extended precision long double"
-msgstr ""
+msgstr "Usando long double de precisión extendida de IBM"
#: config/rs6000/rs6000.c:1792
#, gcc-internal-format
msgid "Using IEEE extended precision long double"
-msgstr ""
+msgstr "Usando long double de precisión extendida de IEEE"
#: config/rs6000/rs6000.c:1797
#, gcc-internal-format
@@ -21891,9 +21549,9 @@ msgid "unknown ABI specified: '%s'"
msgstr "ABI especificada desconocida: '%s'"
#: config/rs6000/rs6000.c:1824
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid option for -mfloat-gprs: '%s'"
-msgstr "opción inválida para -mfloat-gprs"
+msgstr "opción inválida para -mfloat-gprs: '%s'"
#: config/rs6000/rs6000.c:1834
#, gcc-internal-format
@@ -21916,14 +21574,14 @@ msgid "GCC vector returned by reference: non-standard ABI extension with no comp
msgstr "Se devolvió un vector GCC por referencia: extensión de ABI no estándard sin garantía de compatibilidad"
#: config/rs6000/rs6000.c:4298
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
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."
+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:4544
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
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."
+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:5400
#, gcc-internal-format
@@ -21963,7 +21621,7 @@ msgstr "el argumento para %qs debe ser una literal sin signo de 2-bit"
#: config/rs6000/rs6000.c:7245
#, gcc-internal-format
msgid "unresolved overload for Altivec builtin %qF"
-msgstr ""
+msgstr "sobrecarga sin resolver para el interno Altivec %qF"
#: config/rs6000/rs6000.c:7327
#, gcc-internal-format
@@ -22036,9 +21694,9 @@ msgid "-maix64 requires PowerPC64 architecture remain enabled"
msgstr "-maix64 requiere que la arquitectura PowerPC64 permanezca activada"
#: config/rs6000/aix43.h:50 config/rs6000/aix52.h:49
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "soft-float and long-double-128 are incompatible"
-msgstr "-mrelocatable y -mcall-%s son incompatibles"
+msgstr "soft-float y long-double-128 son incompatibles"
#: config/rs6000/aix43.h:54 config/rs6000/aix51.h:47 config/rs6000/aix52.h:53
#, gcc-internal-format
@@ -22147,14 +21805,14 @@ msgid "-mcall-aixdesc must be big endian"
msgstr "-mcall-aixdesc debe ser big endian"
#: config/rs6000/sysv4.h:215
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "-msecure-plt not supported by your assembler"
-msgstr "MCU %qs sólo tiene soporte para ensamblador"
+msgstr "-msecure-plt no tiene soporte en su ensamblador"
#: config/rs6000/sysv4.h:220
#, gcc-internal-format
msgid "-msoft-float and -mlong-double-128 not supported"
-msgstr ""
+msgstr "-msoft-float y -mlong-double-128 no tienen soporte"
#: config/rs6000/sysv4.h:234
#, gcc-internal-format
@@ -22172,19 +21830,19 @@ msgid "stack size must be an exact power of 2"
msgstr "el tamaño de la pila debe ser una potencia exacta de 2"
#: config/s390/s390.c:1391
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "z/Architecture mode not supported on %s"
-msgstr "el modo z/Architecture no tiene soporte en %s."
+msgstr "el modo z/Architecture no tiene soporte en %s"
#: config/s390/s390.c:1393
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "64-bit ABI not supported in ESA/390 mode"
-msgstr "la ABI de 64-bit no tiene soporte en el modo ESA/390."
+msgstr "la ABI de 64-bit no tiene soporte en el modo ESA/390"
#: config/s390/s390.c:1404
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "-mbackchain -mpacked-stack -mhard-float are not supported in combination"
-msgstr "no hay soporte para -mbackchain -mpacked-stack -mhard-float en combinación."
+msgstr "no hay soporte para -mbackchain -mpacked-stack -mhard-float en combinación"
#: config/s390/s390.c:1410
#, gcc-internal-format
@@ -22197,9 +21855,9 @@ msgid "stack size must be greater than the stack guard value"
msgstr "el tamaño de la pila debe ser mayor que el valor de la guardia de pila"
#: config/s390/s390.c:1414
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "stack size must not be greater than 64k"
-msgstr "el tamaño de la pila debe ser mayor que el valor de la guardia de pila"
+msgstr "el tamaño de la pila no debe ser mayor a 64k"
#: config/s390/s390.c:1417
#, gcc-internal-format
@@ -22207,9 +21865,9 @@ msgid "-mstack-guard implies use of -mstack-size"
msgstr "-mstack-guard implica el uso de -mstack-size"
#: config/s390/s390.c:6566
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
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."
+msgstr "el tamaño total de las variables locales excede el límite de la arquitectura"
#: config/s390/s390.c:7153
#, gcc-internal-format
@@ -22256,37 +21914,37 @@ msgstr "el argumento del atributo %qs no es una constante entera"
#: config/sh/sh.c:9673
#, gcc-internal-format
msgid "r0 needs to be available as a call-clobbered register"
-msgstr ""
+msgstr "r0 necesita estar disponible como un registro sobreescrito por llamada"
#: config/sh/sh.c:9694
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "Need a second call-clobbered general purpose register"
-msgstr "Usa el registro BK como un registro de propósito general"
+msgstr "Se necesita un segundo registro de propósito general sobreescrito por llamada"
#: config/sh/sh.c:9702
#, gcc-internal-format
msgid "Need a call-clobbered target register"
-msgstr ""
+msgstr "Se necesita un registro objetivo sobreescrito por llamada"
#: config/sh/symbian.c:147
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+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 "la función %q+D se define después de una declaración previa como dllimport: se ignora el atributo"
#: config/sh/symbian.c:159
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "inline function %q+D is declared as dllimport: attribute ignored"
-msgstr "%Jla función inline '%D' se declara como dllimport: se ignora el atributo."
+msgstr "la función inline %q+D se declara como dllimport: se ignora el atributo"
#: config/sh/symbian.c:280
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "failure in redeclaration of %q+D: dllimport'd symbol lacks external linkage"
-msgstr "%Jfalla en la redeclaración de '%D': el símbolo dllimport carece de enlazado externo."
+msgstr "falla en la redeclaración de %q+D: el símbolo dllimportado carece de enlazado externo"
#: config/sh/symbian.c:326
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s %q+D %s after being referenced with dllimport linkage"
-msgstr "%H%s '%D' %s después de ser referenciado con enlazado dllimport."
+msgstr "%s %q+D %s después de ser referenciado con enlazado dllimport"
#: config/sh/symbian.c:892 cp/tree.c:2335
#, gcc-internal-format
@@ -22295,18 +21953,18 @@ msgstr "revisión lang_*: falló en %s, en %s:%d"
#. FIXME
#: config/sh/netbsd-elf.h:95
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "unimplemented-shmedia profiling"
-msgstr "funcionalidad sin implementar"
+msgstr "funcionalidad shmedia sin implementar"
#. There are no delay slots on SHmedia.
#. Relaxation isn't yet supported for SHmedia
#. After reload, if conversion does little good but can cause ICEs: - find_if_block doesn't do anything for SH because we don't have conditional execution patterns. (We use conditional move patterns, which are handled differently, and only before reload). - find_cond_trap doesn't do anything for the SH because we #. don't have conditional traps. - find_if_case_1 uses redirect_edge_and_branch_force in the only path that does an optimization, and this causes an ICE when branch targets are in registers. - find_if_case_2 doesn't do anything for the SHmedia after reload except when it can redirect a tablejump - and that's rather rare.
#. -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:611
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "profiling is still experimental for this target"
-msgstr "No se da soporte a análisis de perfil en este objetivo."
+msgstr "el análisis de perfil aún es experimental en este objetivo"
#. Only the sh64-elf assembler fully supports .quad properly.
#. User supplied - leave it alone.
@@ -22317,7 +21975,7 @@ msgstr "No se da soporte a análisis de perfil en este objetivo."
#: config/sh/sh.h:676
#, gcc-internal-format
msgid "ignoring -fschedule-insns because of exception handling bug"
-msgstr ""
+msgstr "se ignora -fschedule-insns debido a un error de manejo de excepciones"
#: config/sparc/sparc.c:643
#, gcc-internal-format
@@ -22335,19 +21993,19 @@ msgid "-mcmodel= is not supported on 32 bit systems"
msgstr "-mcmodel= no tiene soporte en sistemas de 32 bit"
#: config/stormy16/stormy16.c:497
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "constant halfword load operand out of range"
-msgstr "El operando de carga de una constante halfword está fuera de rango."
+msgstr "el operando de carga de una constante halfword está fuera de rango"
#: config/stormy16/stormy16.c:507
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "constant arithmetic operand out of range"
-msgstr "El operando de una constante aritmética está fuera de rango."
+msgstr "el operando de una constante aritmética está fuera de rango"
#: config/stormy16/stormy16.c:1108
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "local variable memory requirements exceed capacity"
-msgstr "Los requerimientos de memoria para variables locales excede la capacidad."
+msgstr "los requerimientos de memoria para variables locales excede la capacidad"
#: config/stormy16/stormy16.c:1274
#, gcc-internal-format
@@ -22370,9 +22028,9 @@ msgid "%<__BELOW100__%> attribute only applies to variables"
msgstr "el atributo %<__BELOW100__%> solamente se aplica a variables"
#: config/stormy16/stormy16.c:2270
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "__BELOW100__ attribute not allowed with auto storage class"
-msgstr "no se permite el atributo __BELOW100__ con una clase de auto almacenamiento."
+msgstr "no se permite el atributo __BELOW100__ con una clase de auto almacenamiento"
#: config/v850/v850-c.c:67
#, gcc-internal-format
@@ -22447,7 +22105,7 @@ msgstr "basura al final del #pragma ghs endzda"
#: config/v850/v850.c:172
#, gcc-internal-format
msgid "value passed to %<-m%s%> is too large"
-msgstr ""
+msgstr "el valor pasado a %<-m%s%> es demasiado grande"
#: config/v850/v850.c:2147
#, gcc-internal-format
@@ -22455,14 +22113,14 @@ 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:2158
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "data area of %q+D conflicts with previous declaration"
-msgstr "%Jel área de datos de '%D' en conflicto con una declaración previa"
+msgstr "el área de datos de %q+D en conflicto con una declaración previa"
#: config/v850/v850.c:2288
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "bogus JR construction: %d"
-msgstr "construcción JR ambigua: %d\n"
+msgstr "construcción JR ambigua: %d"
#: config/v850/v850.c:2306 config/v850/v850.c:2415
#, gcc-internal-format
@@ -22475,24 +22133,24 @@ msgid "bogus JARL construction: %d\n"
msgstr "construcción JARL ambigua: %d\n"
#: config/v850/v850.c:2694
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "bogus DISPOSE construction: %d"
-msgstr "construcción DISPOSE ambigua: %d\n"
+msgstr "construcción DISPOSE ambigua: %d"
#: config/v850/v850.c:2713
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "too much stack space to dispose of: %d"
-msgstr "Demasiado espacio de pila para disponer de él: %d"
+msgstr "demasiado espacio de pila para disponer de él: %d"
#: config/v850/v850.c:2815
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "bogus PREPEARE construction: %d"
-msgstr "construcción PREPARE ambigua: %d\n"
+msgstr "construcción PREPARE ambigua: %d"
#: config/v850/v850.c:2834
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "too much stack space to prepare: %d"
-msgstr "Demasiado espacio de pila para preparar: %d"
+msgstr "demasiado espacio de pila para preparar: %d"
#: config/xtensa/xtensa.c:1505
#, gcc-internal-format
@@ -22550,9 +22208,9 @@ msgid "%s %T <conversion>"
msgstr "%s %T <conversión>"
#: cp/call.c:2404
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s %+#D <near match>"
-msgstr "%J%s %+#D <coincidencia cercana>"
+msgstr "%s %+#D <coincidencia cercana>"
#: cp/call.c:2406 cp/pt.c:1327
#, gcc-internal-format
@@ -22743,9 +22401,9 @@ 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 %qD no se ha decodificado aún"
#: cp/call.c:4621
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "argument of function call might be a candidate for a format attribute"
-msgstr "Avisa por funciones que pueden ser candidatas para atributos de formato"
+msgstr "el argumento de la llamada a función puede ser un candidato para un atributos de formato"
#: cp/call.c:4758
#, gcc-internal-format
@@ -22843,29 +22501,29 @@ 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:1054
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "repeated using declaration %q+D"
-msgstr "para la declaración de plantilla %qD"
+msgstr "se repitió usando la declaración %q+D"
#: cp/class.c:1056
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "using declaration %q+D conflicts with a previous using declaration"
-msgstr "%Jla sección de %qD causa conflictos con la declaración previa"
+msgstr "la declaración using %q+D causa conflictos con la declaración using previa"
#: cp/class.c:1061
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+#D cannot be overloaded"
-msgstr "no se pueden sobrecargar %q#D y %q#D"
+msgstr "no se puede sobrecargar %q+#D"
#: cp/class.c:1062
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "with %q+#D"
-msgstr " %q#D"
+msgstr "con %q+#D"
#: cp/class.c:1124
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "conflicting access specifications for method %q+D, ignored"
-msgstr "especificaciones de acceso en conflicto para el método %qD, ignorado"
+msgstr "especificaciones de acceso en conflicto para el método %q+D, ignorado"
#: cp/class.c:1127
#, gcc-internal-format
@@ -22873,19 +22531,19 @@ msgid "conflicting access specifications for field %qE, ignored"
msgstr "especificaciones de acceso en conflicto para el campo %qE, ignorado"
#: cp/class.c:1188 cp/class.c:1196
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D invalid in %q#T"
-msgstr "%qD inválido en %q#T"
+msgstr "%q+D inválido en %q#T"
#: cp/class.c:1189
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " because of local method %q+#D with same name"
-msgstr " debido al método local %q#D con el mismo nombre"
+msgstr " debido al método local %q+#D con el mismo nombre"
#: cp/class.c:1197
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " because of local member %q+#D with same name"
-msgstr " debido al miembro local %q#D con el mismo nombre"
+msgstr " debido al miembro local %q+#D con el mismo nombre"
#: cp/class.c:1239
#, gcc-internal-format
@@ -22915,74 +22573,74 @@ 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:2419
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D was hidden"
-msgstr "%qD estaba escondido"
+msgstr "%q+D estaba escondido"
#: cp/class.c:2420
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " by %q+D"
-msgstr " por %qD"
+msgstr " por %q+D"
#: cp/class.c:2461 cp/decl2.c:1072
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+#D invalid; an anonymous union can only have non-static data members"
-msgstr "%q#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:2467 cp/decl2.c:1078
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "private member %q+#D in anonymous union"
-msgstr "miembro privado %q#D en union anónima"
+msgstr "miembro privado %q+#D en union anónima"
#: cp/class.c:2469 cp/decl2.c:1080
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "protected member %q+#D in anonymous union"
-msgstr "miembro protegido %q#D en union anónima"
+msgstr "miembro protegido %q+#D en union anónima"
#: cp/class.c:2635
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "bit-field %q+#D with non-integral type"
-msgstr "campo de bits %q#D con tipo no entero"
+msgstr "campo de bits %q+#D con tipo no entero"
#: cp/class.c:2652
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "bit-field %q+D width not an integer constant"
-msgstr "la anchura del campo de bits %qD no es una constante entera"
+msgstr "la anchura del campo de bits %q+D no es una constante entera"
#: cp/class.c:2657
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "negative width in bit-field %q+D"
-msgstr "anchura negativa en el campo de bit %qD"
+msgstr "anchura negativa en el campo de bit %q+D"
#: cp/class.c:2662
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "zero width for bit-field %q+D"
-msgstr "anchura cero para el campo de bits %qD"
+msgstr "anchura cero para el campo de bits %q+D"
#: cp/class.c:2668
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "width of %q+D exceeds its type"
-msgstr "la anchura de %qD excede su tipo"
+msgstr "la anchura de %q+D excede su tipo"
#: cp/class.c:2677
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D is too small to hold all values of %q#T"
-msgstr "%qD es demasiado pequeño para guardar todos los valores de %q#T"
+msgstr "%q+D es demasiado pequeño para contener todos los valores de %q#T"
#: cp/class.c:2736
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "member %q+#D with constructor not allowed in union"
-msgstr "no se permite el miembro %q#D con constructor en la union"
+msgstr "no se permite el miembro %q+#D con constructor en la union"
#: cp/class.c:2739
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "member %q+#D with destructor not allowed in union"
-msgstr "no se permite el miembro %q#D con destructor en la union"
+msgstr "no se permite el miembro %q+#D con destructor en la union"
#: cp/class.c:2741
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "member %q+#D with copy assignment operator not allowed in union"
-msgstr "no se permite el miembro %q#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:2764
#, gcc-internal-format
@@ -22990,49 +22648,49 @@ msgid "multiple fields in union %qT initialized"
msgstr "múltiples campos inicializados en la unión %qT"
#: cp/class.c:2826
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "ignoring packed attribute on unpacked non-POD field %q+#D"
-msgstr "se ignoran los atributos empacados en el campo %q#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:2886
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D may not be static because it is a member of a union"
-msgstr "%qD no debe ser static porque es el miembro de una unión"
+msgstr "%q+D no debe ser static porque es el miembro de una unión"
#: cp/class.c:2891
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D may not have reference type %qT because it is a member of a union"
-msgstr "%qD no puede tener el tipo de referencia %qT porque es el miembro de una unión"
+msgstr "%q+D no puede tener el tipo de referencia %qT porque es el miembro de una unión"
#: cp/class.c:2900
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "field %q+D in local class cannot be static"
-msgstr "el campo %qD en la clase local no puede ser static"
+msgstr "el campo %q+D en la clase local no puede ser static"
#: cp/class.c:2906
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "field %q+D invalidly declared function type"
-msgstr "el campo %qD es declarado inválidamente como un tipo de función"
+msgstr "el campo %q+D es declarado inválidamente como un tipo de función"
#: cp/class.c:2912
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "field %q+D invalidly declared method type"
-msgstr "el campo %qD es declarado inválidamente como un tipo de método"
+msgstr "el campo %q+D es declarado inválidamente como un tipo de método"
#: cp/class.c:2944
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "non-static reference %q+#D in class without a constructor"
-msgstr "referencia %q#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:2991
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "non-static const member %q+#D in class without a constructor"
-msgstr "miembro const %q#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:3006
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "field %q+#D with same name as class"
-msgstr "campo %q#D con el mismo nombre que la clase"
+msgstr "campo %q+#D con el mismo nombre que la clase"
#: cp/class.c:3039
#, gcc-internal-format
@@ -23065,9 +22723,9 @@ msgid "class %qT will be considered nearly empty in a future version of GCC"
msgstr "la clase %qT se considerará casi vacía en una versión futura de GCC"
#: cp/class.c:3698
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "initializer specified for non-virtual method %q+D"
-msgstr "se especificó un inicializador para el método no virtual %qD"
+msgstr "se especificó un inicializador para el método no virtual %q+D"
#: cp/class.c:4360
#, gcc-internal-format
@@ -23097,14 +22755,14 @@ msgid "the offset of %qD may not be ABI-compliant and may change in a future ver
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:4715
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "offset of %q+D is not ABI-compliant and may change in a future version of GCC"
-msgstr "el desplazamiento de %qD no cumple con la ABI y puede cambiar en una versión futura de GCC"
+msgstr "el desplazamiento de %q+D no cumple con la ABI y puede cambiar en una versión futura de GCC"
#: cp/class.c:4724
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D contains empty classes which may cause base classes to be placed at different locations in a future version of 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"
+msgstr "%q+D contiene clases vacías las cuales pueden causar que las clases base se coloquen en diferentes ubicaciones en una versión futura de GCC"
#: cp/class.c:4783
#, gcc-internal-format
@@ -23315,9 +22973,9 @@ msgid "%qD was declared %<extern%> and later %<static%>"
msgstr "%qD se declaró %<extern%> y después %<static%>"
#: cp/decl.c:1003 cp/decl.c:1508 objc/objc-act.c:2920 objc/objc-act.c:7487
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "previous declaration of %q+D"
-msgstr "declaración previa de %qD"
+msgstr "declaración previa de %q+D"
#: cp/decl.c:1036
#, gcc-internal-format
@@ -23325,29 +22983,29 @@ msgid "declaration of %qF throws different exceptions"
msgstr "la declaración de %qF arroja excepciones diferentes"
#: cp/decl.c:1037
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "from previous declaration %q+F"
-msgstr "declaración previa de %qD"
+msgstr "de la declaración previa de %q+F"
#: cp/decl.c:1089
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+D redeclared as inline"
-msgstr "%Jla función %qD es redeclarada como inline"
+msgstr "la función %q+D es redeclarada como inline"
#: cp/decl.c:1091
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "previous declaration of %q+D with attribute noinline"
-msgstr "%Jdeclaración previa de %qD con el atributo noinline"
+msgstr "declaración previa de %q+D con el atributo noinline"
#: cp/decl.c:1098
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "function %q+D redeclared with attribute noinline"
-msgstr "%Jfunción %qD redeclarada con el atributo noinline"
+msgstr "función %q+D redeclarada con el atributo noinline"
#: cp/decl.c:1100
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "previous declaration of %q+D was inline"
-msgstr "%Jla declaración previa de %qD era inline"
+msgstr "la declaración previa de %q+D era inline"
#: cp/decl.c:1123 cp/decl.c:1196
#, gcc-internal-format
@@ -23380,9 +23038,9 @@ msgid "%q#D redeclared as different kind of symbol"
msgstr "%q#D redeclarado como un tipo diferente de símbolo"
#: cp/decl.c:1267
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "previous declaration of %q+#D"
-msgstr "declaración previa de %q#D"
+msgstr "declaración previa de %q+#D"
#: cp/decl.c:1286
#, gcc-internal-format
@@ -23390,14 +23048,14 @@ msgid "declaration of template %q#D"
msgstr "redeclaración de la plantilla %q#D"
#: cp/decl.c:1287 cp/name-lookup.c:509
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "conflicts with previous declaration %q+#D"
-msgstr "causa conflictos con la declaración previa %q#D"
+msgstr "causa conflictos con la declaración previa %q+#D"
#: cp/decl.c:1301 cp/decl.c:1317
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "ambiguates old declaration %q+#D"
-msgstr "hace ambigua la declaración antigua %q#D"
+msgstr "hace ambigua la declaración antigua %q+#D"
#: cp/decl.c:1309
#, gcc-internal-format
@@ -23405,9 +23063,9 @@ msgid "declaration of C function %q#D conflicts with"
msgstr "la declaración de la función C %q#D tiene conflictos con"
#: cp/decl.c:1311
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "previous declaration %q+#D here"
-msgstr "declaración previa de %q#D aquí"
+msgstr "declaración previa de %q+#D aquí"
#: cp/decl.c:1324
#, gcc-internal-format
@@ -23415,9 +23073,9 @@ msgid "conflicting declaration %q#D"
msgstr "declaraciones de %q#D en conflicto"
#: cp/decl.c:1325
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D has a previous declaration as %q#D"
-msgstr "%qD tiene una declaración previa como %q#D"
+msgstr "%q+D tiene una declaración previa como %q#D"
#. [namespace.alias]
#.
@@ -23432,25 +23090,25 @@ msgid "declaration of namespace %qD conflicts with"
msgstr "la declaración del espacio de nombres %qD tiene conflictos con"
#: cp/decl.c:1378
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "previous declaration of namespace %q+D here"
-msgstr "declaración previa del espacio de nombres %qD aquí"
+msgstr "declaración previa del espacio de nombres %q+D aquí"
#: cp/decl.c:1389
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+#D previously defined here"
-msgstr "se definió %q#D previamente aquí"
+msgstr "se definió %q+#D previamente aquí"
#: cp/decl.c:1390
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+#D previously declared here"
-msgstr "se declaró %q#D previamente aquí"
+msgstr "se declaró %q+#D previamente aquí"
#. Prototype decl follows defn w/o prototype.
#: cp/decl.c:1399
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "prototype for %q+#D"
-msgstr "el prototipo para %q#D"
+msgstr "el prototipo para %q+#D"
#: cp/decl.c:1400
#, gcc-internal-format
@@ -23458,9 +23116,9 @@ msgid "%Jfollows non-prototype definition here"
msgstr "%Ja continuación de la definición del no prototipo aquí"
#: cp/decl.c:1412
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "previous declaration of %q+#D with %qL linkage"
-msgstr "declaración previa de %q#D con el enlace %qL"
+msgstr "declaración previa de %q+#D con el enlace %qL"
#: cp/decl.c:1414
#, gcc-internal-format
@@ -23473,9 +23131,9 @@ msgid "default argument given for parameter %d of %q#D"
msgstr "argumento por defecto dado para el parámetro %d de %q#D"
#: cp/decl.c:1439 cp/decl.c:1445
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "after previous specification in %q+#D"
-msgstr "después de la especificación previa en %q#D"
+msgstr "después de la especificación previa en %q+#D"
#: cp/decl.c:1454
#, gcc-internal-format
@@ -23506,9 +23164,9 @@ msgid "explicit specialization of %qD after first use"
msgstr "especialización explícita de %qD después del primer uso"
#: cp/decl.c:1838
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D: visibility attribute ignored because it"
-msgstr "%J%qD: se ignora el atributo de visibilidad porque"
+msgstr "%q+D: se ignora el atributo de visibilidad porque"
#: cp/decl.c:1840
#, gcc-internal-format
@@ -23531,14 +23189,14 @@ msgid "%H from here"
msgstr "%H desde aquí"
#: cp/decl.c:2240
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " crosses initialization of %q+#D"
-msgstr " cruza la inicialización de %q#D"
+msgstr " cruza la inicialización de %q+#D"
#: cp/decl.c:2242 cp/decl.c:2356
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " enters scope of non-POD %q+#D"
-msgstr " entra en el ámbito de %q#D que no es POD"
+msgstr " entra en el ámbito de %q+#D que no es POD"
#: cp/decl.c:2261 cp/decl.c:2360
#, gcc-internal-format
@@ -23551,9 +23209,9 @@ msgid " enters catch block"
msgstr " entra al bloque catch"
#: cp/decl.c:2340
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "jump to label %q+D"
-msgstr "salto a la etiqueta %qD"
+msgstr "salto a la etiqueta %q+D"
#: cp/decl.c:2341
#, gcc-internal-format
@@ -23567,9 +23225,9 @@ msgid "%J enters catch block"
msgstr "%J entra al bloque de captura"
#: cp/decl.c:2354
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " skips initialization of %q+#D"
-msgstr " salta la inicialización de %q#D"
+msgstr " salta la inicialización de %q+#D"
#: cp/decl.c:2388
#, gcc-internal-format
@@ -23602,9 +23260,9 @@ msgid "template parameters do not match template"
msgstr "los parámetros de la plantilla no coinciden con la plantilla"
#: cp/decl.c:2765 cp/friend.c:317 cp/friend.c:325
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D declared here"
-msgstr "%qD declarado aquí"
+msgstr "%q+D declarado aquí"
#: cp/decl.c:3439
#, gcc-internal-format
@@ -23612,19 +23270,19 @@ msgid "%Jan anonymous union cannot have function members"
msgstr "%Jun union anónimo no puede tener funciones miembro"
#: cp/decl.c:3457
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "member %q+#D with constructor not allowed in anonymous aggregate"
-msgstr "no se permite el miembro %q#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:3460
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "member %q+#D with destructor not allowed in anonymous aggregate"
-msgstr "no se permite el miembro %q#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:3463
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "member %q+#D with copy assignment operator not allowed in anonymous aggregate"
-msgstr "no se permite el miembro %q#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:3488
#, gcc-internal-format
@@ -23672,14 +23330,14 @@ msgid "qualifiers can only be specified for objects and functions"
msgstr "los calificadores sólo se pueden especificar para objetos y funciones"
#: cp/decl.c:3590
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "attribute ignored in declaration of %q+#T"
-msgstr "atributo ignorado en la declaración de %q#T"
+msgstr "atributo ignorado en la declaración de %q+#T"
#: cp/decl.c:3591
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "attribute for %q+#T must follow the %qs keyword"
-msgstr "el atributo para %q#T debe seguir a la palabra clave %qs"
+msgstr "el atributo para %q+#T debe seguir a la palabra clave %qs"
#: cp/decl.c:3711
#, gcc-internal-format
@@ -23775,9 +23433,9 @@ msgid "storage size of %qD isn't constant"
msgstr "el tamaño de almacenamiento de %qD no es constante"
#: cp/decl.c:4131
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
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 %q#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:4134
#, gcc-internal-format
@@ -23795,9 +23453,9 @@ msgid "name %qD used in a GNU-style designated initializer for an array"
msgstr "el nombre %qD se utiliza en un inicializador designado en estilo GNU para una matriz"
#: cp/decl.c:4282
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid type %qT as initializer for a vector of type %qT"
-msgstr "Inicializador de matriz inválido para el tipo %qs que no es matriz"
+msgstr "tipo %qT inválido como inicializador para un vector de tipo %qT"
#: cp/decl.c:4324
#, gcc-internal-format
@@ -23815,14 +23473,14 @@ msgid "%qT has no non-static data member named %qD"
msgstr "%qT no tiene un dato miembro que no es static llamado %qD"
#: cp/decl.c:4393
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "braces around scalar initializer for type %qT"
-msgstr "llaves alrededor del inicializador escalar para %qT"
+msgstr "llaves alrededor del inicializador escalar para el tipo %qT"
#: cp/decl.c:4471
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "missing braces around initializer for %qT"
-msgstr "faltan llaves alrededor del inicializador"
+msgstr "faltan llaves alrededor del inicializador para %qT"
#: cp/decl.c:4526
#, gcc-internal-format
@@ -23885,9 +23543,9 @@ msgid "%qD is thread-local and so cannot be dynamically initialized"
msgstr "q%D es thread-local y por lo tanto no se puede inicializar dinámicamente"
#: cp/decl.c:5021
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qD cannot be initialized by a non-constant expression when being declared"
-msgstr "%qD no puede aparece en una expresion constante"
+msgstr "%qD no se puede inicializar con una expresion no constante al ser declarado"
#: cp/decl.c:5611
#, gcc-internal-format
@@ -23915,19 +23573,19 @@ msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in %s decla
msgstr "especificadores de función %<const%> y %<volatile%> en %qD inválidos en la declaración %s"
#: cp/decl.c:5642
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D declared as a friend"
-msgstr "%qD declarado como un friend"
+msgstr "%q+D declarado como un friend"
#: cp/decl.c:5648
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D declared with an exception specification"
-msgstr "%qD declarado con una excepción de especificación"
+msgstr "%q+D declarado con una excepción de especificación"
#: cp/decl.c:5682
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "definition of %qD is not in namespace enclosing %qT"
-msgstr "la declaración de %qD no está en un espacio de nombres alrededor de %qD"
+msgstr "la definición de %qD no está en un espacio de nombres que contenga a %qT"
#: cp/decl.c:5742
#, gcc-internal-format
@@ -23976,9 +23634,9 @@ msgid "non-local function %q#D uses anonymous type"
msgstr "la función %q#D que no es local usa un tipo anónimo"
#: cp/decl.c:5878 cp/decl.c:6148
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+#D does not refer to the unqualified type, so it is not used for linkage"
-msgstr "%q#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:5884
#, gcc-internal-format
@@ -24346,14 +24004,14 @@ msgid "member functions are implicitly friends of their class"
msgstr "las funciones miembros son implícitamente friends de su clase"
#: cp/decl.c:7584
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "extra qualification %<%T::%> on member %qs"
-msgstr "se ignora la calificación extra %<%T::%> en el miembro %qs"
+msgstr "calificación extra %<%T::%> en el miembro %qs"
#: cp/decl.c:7595
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "cannot define member function %<%T::%s%> within %<%T%>"
-msgstr "no se puede declarar la función miembro %<%T::%s%> dentro de %<%T%>"
+msgstr "no se puede definir la función miembro %<%T::%s%> dentro de %<%T%>"
#: cp/decl.c:7596
#, gcc-internal-format
@@ -24489,9 +24147,9 @@ msgid "%qD cannot be declared virtual, since it is always static"
msgstr "%qD no se puede declarar virtual, ya que siempre es static"
#: cp/decl.c:8044
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "expected qualified name in friend declaration for destructor %qD"
-msgstr "calificación explícita en la declaración de `%D'"
+msgstr "se esperaba un nombre calificado en la declaración friend para el destructor %qD"
#: cp/decl.c:8054
#, gcc-internal-format
@@ -24748,9 +24406,9 @@ msgid "using typedef-name %qD after %qs"
msgstr "usando el nombre de definición de tipo %qD después de %qs"
#: cp/decl.c:9227
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D has a previous declaration here"
-msgstr "%qD tiene una declaración previa aquí"
+msgstr "%q+D tiene una declaración previa aquí"
#: cp/decl.c:9235
#, gcc-internal-format
@@ -24758,9 +24416,9 @@ msgid "%qT referred to as %qs"
msgstr "se refiere a %qT como %qs"
#: cp/decl.c:9236 cp/decl.c:9243
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+T has a previous declaration here"
-msgstr "%qT tiene una declaración previa aquí"
+msgstr "%q+T tiene una declaración previa aquí"
#: cp/decl.c:9242
#, gcc-internal-format
@@ -24982,9 +24640,9 @@ msgid "%qD is already defined in %qT"
msgstr "%qD ya está definido en %qT"
#: cp/decl2.c:892
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "initializer specified for static member function %qD"
-msgstr "se especificó un inicializador para la función no-miembro %qD"
+msgstr "se especificó un inicializador para la función miembro estática %qD"
#: cp/decl2.c:915
#, gcc-internal-format
@@ -25052,9 +24710,9 @@ msgid "%<operator delete%> takes type %qT as first parameter"
msgstr "%<operator delete%> toma el tipo %qT como primer argumento"
#: cp/decl2.c:3065
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "inline function %q+D used but never defined"
-msgstr "se usa la función inline %qD pero nunca se definió"
+msgstr "se usa la función inline %q+D pero nunca se definió"
#: cp/decl2.c:3219
#, gcc-internal-format
@@ -25218,9 +24876,9 @@ msgid "%Juninitialized member %qD with %<const%> type %qT"
msgstr "%Jmiembro %qD sin inicializar con tipo %qT %<const%>"
#: cp/init.c:527
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D will be initialized after"
-msgstr "%qD se inicializará después de"
+msgstr "%q+D se inicializará después de"
#: cp/init.c:530
#, gcc-internal-format
@@ -25228,9 +24886,9 @@ msgid "base %qT will be initialized after"
msgstr "la base %qT se inicializará después de"
#: cp/init.c:533
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " %q+#D"
-msgstr " %q#D"
+msgstr " %q+#D"
#: cp/init.c:535
#, gcc-internal-format
@@ -25293,14 +24951,14 @@ msgid "%qD is both a direct base and an indirect virtual base"
msgstr "%qD es tanto una base directa como una base virtual indirecta"
#: cp/init.c:1022
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "type %qT is not a direct or virtual base of %qT"
-msgstr "el tipo %qD no es una base directa o virtual de %qT"
+msgstr "el tipo %qT no es una base directa o virtual de %qT"
#: cp/init.c:1025
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "type %qT is not a direct base of %qT"
-msgstr "el tipo %qD no es una base directa de %qT"
+msgstr "el tipo %qT no es una base directa de %qT"
#: cp/init.c:1105
#, gcc-internal-format
@@ -25388,9 +25046,9 @@ msgid "call to Java constructor with %qs undefined"
msgstr "llamado a constructor Java con %qs sin definir"
#: cp/init.c:1964
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "no suitable %qD found in class %qT"
-msgstr "No se definió la variable %qs en la clase %qs"
+msgstr "no se encontró un %qD adecuado en la clase %qT"
#: cp/init.c:1969
#, gcc-internal-format
@@ -25544,9 +25202,9 @@ msgstr "redeclaración de %<wchar_t%> como %qT"
#.
#. This function shall not be overloaded.
#: cp/name-lookup.c:727
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid redeclaration of %q+D"
-msgstr "redeclaración inválida de %qD"
+msgstr "redeclaración inválida de %q+D"
#: cp/name-lookup.c:728
#, gcc-internal-format
@@ -25559,9 +25217,9 @@ msgid "type mismatch with previous external decl of %q#D"
msgstr "no coinciden los tipos con la declaración externa previa de %q#D"
#: cp/name-lookup.c:817
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "previous external decl of %q+#D"
-msgstr "declaración externa previa de %q#D"
+msgstr "declaración externa previa de %q+#D"
#: cp/name-lookup.c:908
#, gcc-internal-format
@@ -25569,9 +25227,9 @@ msgid "extern declaration of %q#D doesn't match"
msgstr "la declaración extern de %q#D no coincide"
#: cp/name-lookup.c:909
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "global declaration %q+#D"
-msgstr "con la declaración global %q#D"
+msgstr "la declaración global %q+#D"
#: cp/name-lookup.c:946 cp/name-lookup.c:953
#, gcc-internal-format
@@ -25600,14 +25258,14 @@ msgid "name lookup of %qD changed"
msgstr "la búsqueda de nombre de %qD cambió"
#: cp/name-lookup.c:1115
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " matches this %q+D under ISO standard rules"
-msgstr " coincide con este %qD bajo las reglas de ISO estándard"
+msgstr " coincide con este %q+D bajo las reglas de ISO estándard"
#: cp/name-lookup.c:1117
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " matches this %q+D under old rules"
-msgstr " coincide con este %qD bajo las reglas antiguas"
+msgstr " coincide con este %q+D bajo las reglas antiguas"
#: cp/name-lookup.c:1135 cp/name-lookup.c:1143
#, gcc-internal-format
@@ -25615,14 +25273,14 @@ msgid "name lookup of %qD changed for new ISO %<for%> scoping"
msgstr "la búsqueda de nombre de %qD cambió por el nuevo alcance ISO de %<for%>"
#: cp/name-lookup.c:1137
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " cannot use obsolete binding at %q+D because it has a destructor"
-msgstr " no se puede usar la asignación obsoleta en %qD porque tiene un destructor"
+msgstr " no se puede usar la asignación obsoleta en %q+D porque tiene un destructor"
#: cp/name-lookup.c:1145
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " using obsolete binding at %q+D"
-msgstr " usando la asignación obsoleta en %qD"
+msgstr " usando la asignación obsoleta en %q+D"
#: cp/name-lookup.c:1198
#, gcc-internal-format
@@ -25650,9 +25308,9 @@ msgid "%q#D conflicts with previous using declaration %q#D"
msgstr "%q#D causa conflicto con la declaración previa en uso %q#D"
#: cp/name-lookup.c:1921
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "previous non-function declaration %q+#D"
-msgstr "la declaración previa %q#D que no es función"
+msgstr "la declaración previa %q+#D que no es función"
#: cp/name-lookup.c:1922
#, gcc-internal-format
@@ -25699,24 +25357,24 @@ msgid "using-declaration for non-member at class scope"
msgstr "declaración de uso para un no miembro en el ámbito de la clase"
#: cp/name-lookup.c:2750
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%<%T::%D%> names destructor"
-msgstr "%qD nombra al constructor"
+msgstr "%<%T::%D%> nombra al destructor"
#: cp/name-lookup.c:2755
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%<%T::%D%> names constructor"
-msgstr "%qD nombra al constructor"
+msgstr "%<%T::%D%> nombra al constructor"
#: cp/name-lookup.c:2760
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%<%T::%D%> names constructor in %qT"
-msgstr "%qD nombra al constructor"
+msgstr "%<%T::%D%> nombra al constructor en %qT"
#: cp/name-lookup.c:2809
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "no members matching %<%T::%D%> in %q#T"
-msgstr "no hay miembros que coincidan con %qD en %q#T"
+msgstr "no hay miembros que coincidan con %<%T::%D%> en %q#T"
#: cp/name-lookup.c:2877
#, gcc-internal-format
@@ -25724,9 +25382,9 @@ msgid "declaration of %qD not in a namespace surrounding %qD"
msgstr "la declaración de %qD no está en un espacio de nombres alrededor de %qD"
#: cp/name-lookup.c:2885
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "explicit qualification in declaration of %qD"
-msgstr "calificación explícita en la declaración de `%D'"
+msgstr "calificación explícita en la declaración de %qD"
#: cp/name-lookup.c:2925
#, gcc-internal-format
@@ -25781,14 +25439,14 @@ msgid "%qD undeclared in namespace %qD"
msgstr "%qD no declarado en el espacio de nombres %qD"
#: cp/name-lookup.c:4255
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D is not a function,"
-msgstr "%qD no es una función,"
+msgstr "%q+D no es una función,"
#: cp/name-lookup.c:4256
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " conflict with %q+D"
-msgstr " tiene conflicto con %qD"
+msgstr " tiene conflicto con %q+D"
#: cp/name-lookup.c:5090
#, gcc-internal-format
@@ -25927,9 +25585,9 @@ msgid "local variable %qD may not appear in this context"
msgstr "la variable local %qD no puede aparecer en este contexto"
#: cp/parser.c:3433
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "declaration of %<~%T%> as member of %qT"
-msgstr "la declaración de %qD como miembro de %qT"
+msgstr "la declaración de %<~%T%> como miembro de %qT"
#: cp/parser.c:3446
#, gcc-internal-format
@@ -25942,9 +25600,9 @@ msgid "reference to %qD is ambiguous"
msgstr "la referencia a %qD es ambigua"
#: cp/parser.c:3697 cp/typeck.c:1878 cp/typeck.c:1898
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qD is not a template"
-msgstr "%qE no es una plantilla"
+msgstr "%qD no es una plantilla"
#: cp/parser.c:4088
#, gcc-internal-format
@@ -25952,9 +25610,9 @@ msgid "ISO C++ forbids compound-literals"
msgstr "ISO C++ prohíbe literales compuestos"
#: cp/parser.c:4420
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qE does not have class type"
-msgstr "%qE no nombra a un tipo"
+msgstr "%qE no tiene un tipo de clase"
#: cp/parser.c:5019
#, gcc-internal-format
@@ -26086,9 +25744,9 @@ msgid "type attributes are honored only at type definition"
msgstr "las definiciones de atributos solamente se honran en las definiciones de tipo"
#: cp/parser.c:10364
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qD is not a namespace-name"
-msgstr "%qT no es un espacio de nombres"
+msgstr "%qD no es un nombre de espacio de nombres"
#. [namespace.udecl]
#.
@@ -26129,9 +25787,9 @@ msgid "invalid use of constructor as a template"
msgstr "uso inválido del constructor como una plantilla"
#: cp/parser.c:11495
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "use %<%T::%D%> instead of %<%T::%D%> to name the constructor in a qualified name"
-msgstr "use %<%T::%D%> en lugar de %<%T::%T%> para nombrar el constructor en un nombre calificado"
+msgstr "use %<%T::%D%> en lugar de %<%T::%D%> para nombrar el constructor en un nombre calificado"
#: cp/parser.c:11723
#, gcc-internal-format
@@ -26174,9 +25832,9 @@ msgid "an explicit specialization must be preceded by %<template <>%>"
msgstr "una especialización explícita debe ser precedida por %<template <>%>"
#: cp/parser.c:13212
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "previous definition of %q+#T"
-msgstr "definición previa de %q#T"
+msgstr "definición previa de %q+#T"
#: cp/parser.c:13443
#, gcc-internal-format
@@ -26272,22 +25930,22 @@ msgstr "%<template%> (para eliminar ambigüedades) sólo se permite dentro de plan
#: cp/parser.c:16481 cp/parser.c:17404 cp/parser.c:17535
#, gcc-internal-format
msgid "misplaced %<@%D%> Objective-C++ construct"
-msgstr ""
+msgstr "constructor Objective-C++ %<@%D%> mal colocado"
#: cp/parser.c:16622
#, gcc-internal-format
msgid "%<@encode%> must specify a type as an argument"
-msgstr ""
+msgstr "%<@encode%> debe especificar un tipo como un argumento"
#: cp/parser.c:16937
#, gcc-internal-format
msgid "invalid Objective-C++ selector name"
-msgstr ""
+msgstr "nombre de selector Objective-C++ inválido"
#: cp/parser.c:17268
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "identifier expected after %<@protocol%>"
-msgstr "Se esperaba un identificador"
+msgstr "se esperaba un identificador después de %<@protocol%>"
#: cp/parser.c:17558
#, gcc-internal-format
@@ -26320,14 +25978,14 @@ msgid "specialization of %qD in different namespace"
msgstr "especialización de %qD en un espacio de nombres diferente"
#: cp/pt.c:669 cp/pt.c:759
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " from definition of %q+#D"
-msgstr " de la definición de %q#D"
+msgstr " de la definición de %q+#D"
#: cp/pt.c:686
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "explicit instantiation of %qD in namespace %qD (which does not enclose namespace %qD)"
-msgstr "la declaración de %qD en %qD la cual no incluye a %qD"
+msgstr "instanciación explícita de %qD en el espacio de nombres %qD (el cual no incluye el espacio de nombres %qD)"
#: cp/pt.c:726
#, gcc-internal-format
@@ -26435,14 +26093,14 @@ msgid "no member function %qD declared in %qT"
msgstr "la función no miembro %qD se declaró en %qT"
#: cp/pt.c:2258
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "declaration of %q+#D"
-msgstr "la declaración de %q#D"
+msgstr "la declaración de %q+#D"
#: cp/pt.c:2259
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " shadows template parm %q+#D"
-msgstr " oscurece el parámetro de plantilla %q#D"
+msgstr " oscurece el parámetro de plantilla %q+#D"
#: cp/pt.c:2662
#, gcc-internal-format
@@ -26538,9 +26196,9 @@ 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:3281
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "previous declaration %q+D"
-msgstr "declaración previa de %qD"
+msgstr "declaración previa de %q+D"
#: cp/pt.c:3282
#, gcc-internal-format
@@ -26548,9 +26206,9 @@ 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:3301
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "template parameter %q+#D"
-msgstr "parámetro de plantilla %q#D"
+msgstr "parámetro de plantilla %q+#D"
#: cp/pt.c:3302
#, gcc-internal-format
@@ -26677,9 +26335,9 @@ 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:4027
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "provided for %q+D"
-msgstr "provisto por %qD"
+msgstr "provisto por %q+D"
#: cp/pt.c:4057
#, gcc-internal-format
@@ -26692,9 +26350,9 @@ msgid "non-template type %qT used as a template"
msgstr "se usa el tipo %qT que no es plantilla como una plantilla"
#: cp/pt.c:4414
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "for template declaration %q+D"
-msgstr "para la declaración de plantilla %qD"
+msgstr "para la declaración de plantilla %q+D"
#: cp/pt.c:5064
#, gcc-internal-format
@@ -26702,9 +26360,9 @@ msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-
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:6612
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "instantiation of %q+D as type %qT"
-msgstr "instanciación de %qD como tipo %qT"
+msgstr "instanciación de %q+D como tipo %qT"
#: cp/pt.c:6791
#, gcc-internal-format
@@ -26712,9 +26370,9 @@ msgid "invalid parameter type %qT"
msgstr "tipo de parámetro %qT inválido"
#: cp/pt.c:6793
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "in declaration %q+D"
-msgstr "en la declaración %qD"
+msgstr "en la declaración %q+D"
#: cp/pt.c:6866
#, gcc-internal-format
@@ -26732,9 +26390,9 @@ msgid "creating pointer to member function of non-class type %qT"
msgstr "creando un puntero a función miembro del tipo %qT que no es clase"
#: cp/pt.c:7076
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "creating array with negative size (%qE)"
-msgstr "creando la matriz con tamaño cero (%qE)"
+msgstr "creando la matriz con tamaño negativo (%qE)"
#: cp/pt.c:7293
#, gcc-internal-format
@@ -26757,9 +26415,9 @@ msgid "creating pointer to member reference type %qT"
msgstr "creando un puntero al miembro de referencia de tipo %qT"
#: cp/pt.c:7344
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "creating pointer to member of type void"
-msgstr "creando un puntero al miembro de referencia de tipo %qT"
+msgstr "creando un puntero al miembro de tipo void"
#: cp/pt.c:7411
#, gcc-internal-format
@@ -26907,9 +26565,9 @@ msgid "explicit instantiation of %qD but no definition available"
msgstr "instanciación explícita de %qD pero no hay una definición disponible"
#: cp/pt.c:11892
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use -ftemplate-depth-NN to increase the maximum)"
-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"
+msgstr "la profundidad de instanciación de la plantilla excede el máximo de %d al instanciar %q+D, posiblemente de la generación de tabla virtual (use -ftemplate-depth-NN para incrementar el máximo)"
#: cp/pt.c:12165
#, gcc-internal-format
@@ -26967,46 +26625,46 @@ msgid "%qT is an inaccessible base of %qT"
msgstr "%qT es una base inaccesible de %qT"
#: cp/search.c:1846
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "deprecated covariant return type for %q+#D"
-msgstr "tipo de devolución covariante obsoleto para %q#D"
+msgstr "tipo de devolución covariante obsoleto para %q+#D"
#: cp/search.c:1848 cp/search.c:1863 cp/search.c:1868
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " overriding %q+#D"
-msgstr " sustituyendo %q#D"
+msgstr " sustituyendo %q+#D"
#: cp/search.c:1862
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid covariant return type for %q+#D"
-msgstr "tipo de devolución covariante inválido para %q#D"
+msgstr "tipo de devolución covariante inválido para %q+#D"
#: cp/search.c:1867
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "conflicting return type specified for %q+#D"
-msgstr "tipos de devolución en conflicto especificados para %q#D"
+msgstr "tipos de devolución en conflicto especificados para %q+#D"
#: cp/search.c:1877
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "looser throw specifier for %q+#F"
-msgstr "especificador throw más flexible para %q#F"
+msgstr "especificador throw más flexible para %q+#F"
#: cp/search.c:1878
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " overriding %q+#F"
-msgstr " sustituyendo %q#F"
+msgstr " sustituyendo %q+#F"
#. A static member function cannot match an inherited
#. virtual member function.
#: cp/search.c:1971
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+#D cannot be declared"
-msgstr "%q#D no se puede declarar"
+msgstr "%q+#D no se puede declarar"
#: cp/search.c:1972
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " since %q+#D declared in base class"
-msgstr " ya que se declaró %q#D en la clase base"
+msgstr " ya que se declaró %q+#D en la clase base"
#: cp/semantics.c:1240
#, gcc-internal-format
@@ -27014,14 +26672,14 @@ msgid "type of asm operand %qE could not be determined"
msgstr "no se puede determinar el tipo del operando asm %qE"
#: cp/semantics.c:1359
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid use of member %q+D in static member function"
-msgstr "uso inválido del miembro %qD en la función miembro static"
+msgstr "uso inválido del miembro %q+D en la función miembro static"
#: cp/semantics.c:1361
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid use of non-static data member %q+D"
-msgstr "uso inválido del dato miembro no static %qD"
+msgstr "uso inválido del dato miembro no static %q+D"
#: cp/semantics.c:1362 cp/semantics.c:1401
#, gcc-internal-format
@@ -27029,9 +26687,9 @@ msgid "from this location"
msgstr "desde esta ubicación"
#: cp/semantics.c:1400
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "object missing in reference to %q+D"
-msgstr "falta un objeto en la referencia a %qD"
+msgstr "falta un objeto en la referencia a %q+D"
#: cp/semantics.c:1866
#, gcc-internal-format
@@ -27134,9 +26792,9 @@ msgid "use of parameter from containing function"
msgstr "uso de parámetro desde la función contenedora"
#: cp/semantics.c:2510
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid " %q+#D declared here"
-msgstr " %q#D declarado aquí"
+msgstr " %q+#D declarado aquí"
#: cp/semantics.c:2548
#, gcc-internal-format
@@ -27481,14 +27139,14 @@ 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:3691
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "invalid use of %qE to form a pointer-to-member-function"
-msgstr "uso inválido de %qE 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"
#: cp/typeck.c:3694
#, gcc-internal-format
msgid " a qualified-id is required"
-msgstr ""
+msgstr " se requiere un id calificado"
#: cp/typeck.c:3699
#, gcc-internal-format
@@ -27693,9 +27351,9 @@ msgid "cannot convert %qT to %qT in %s"
msgstr "no se puede convertir %qT a %qT en %s"
#: cp/typeck.c:6084
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%s might be a candidate for a format attribute"
-msgstr "la función puede ser un candidato posible para el atributo de formato %qs"
+msgstr "%s puede ser un candidato para un atributo de formato"
#: cp/typeck.c:6157 cp/typeck.c:6159
#, gcc-internal-format
@@ -27713,14 +27371,14 @@ msgid "reference to non-lvalue returned"
msgstr "se devolvió una referencia a un valor que no es l-valor"
#: cp/typeck.c:6228
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "reference to local variable %q+D returned"
-msgstr "se devolvió una referencia a la variable local %qD"
+msgstr "se devolvió una referencia a la variable local %q+D"
#: cp/typeck.c:6231
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "address of local variable %q+D returned"
-msgstr "se devolvió la dirección de la variable local %qD"
+msgstr "se devolvió la dirección de la variable local %q+D"
#: cp/typeck.c:6265
#, gcc-internal-format
@@ -27807,9 +27465,9 @@ msgid "%J because the following virtual functions are pure within %qT:"
msgstr "%J porque las siguientes funciones virtual son puras en %qT:"
#: cp/typeck2.c:326
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "\t%+#D"
-msgstr "%J\t%#D"
+msgstr "\t%+#D"
#: cp/typeck2.c:333
#, gcc-internal-format
@@ -27835,12 +27493,12 @@ msgstr "matriz de enteros inicializada con una cadena no ancha"
#: cp/typeck2.c:717
#, gcc-internal-format
msgid "cannot initialize aggregate of type %qT with a compound literal"
-msgstr ""
+msgstr "no se puede inicializar el agregado del tipo %qT con una literal compuesta"
#: cp/typeck2.c:791 cp/typeck2.c:889
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "non-trivial designated initializers not supported"
-msgstr "inicializadores etiquetados como no triviales"
+msgstr "no hay soporte para inicializadores designados como no triviales"
#: cp/typeck2.c:911 cp/typeck2.c:925
#, gcc-internal-format
@@ -27863,7 +27521,7 @@ msgid "member %qD is uninitialized reference"
msgstr "el miembro %qD es una referencia sin inicializar"
#: cp/typeck2.c:975
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "no field %qD found in union being initialized"
msgstr "no existe el campo %qD en la union que se está inicializando"
@@ -28061,9 +27719,9 @@ msgid "Can't reassign a value to the final variable %qs"
msgstr "No se puede reasignar un valor a la variable final %qs"
#: java/check-init.c:518 java/check-init.c:531
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "variable %qD may not have been initialized"
-msgstr "la variable %qs puede no haber sido inicializada"
+msgstr "la variable %qD puede no haber sido inicializada"
#: java/check-init.c:948
#, gcc-internal-format
@@ -28101,14 +27759,14 @@ msgid "%Jabstract method in non-abstract class"
msgstr "%Jmétodo abstracto en una clase que no es abstracta"
#: java/class.c:2377
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "non-static method %q+D overrides static method"
-msgstr "%Jel método '%D' que no es estático anula al método estático"
+msgstr "el método %q+D que no es estático anula al método estático"
#: java/decl.c:1328
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%q+D used prior to declaration"
-msgstr "se usa `%#D' previo a la declaración"
+msgstr "se usa %q+D previo a la declaración"
#: java/decl.c:1369
#, gcc-internal-format
@@ -28121,9 +27779,9 @@ msgid "declaration of %qs shadows a symbol from the parameter list"
msgstr "la declaración de %qs oscurece un símbolo de la lista de parámetros"
#: java/decl.c:1833
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "In %+D: overlapped variable and exception ranges at %d"
-msgstr "%JEn %D: variable sobreescrita y rangos de excepción en %d"
+msgstr "En %+D: variable sobreescrita y rangos de excepción en %d"
#: java/decl.c:1896
#, gcc-internal-format
@@ -28131,9 +27789,9 @@ msgid "bad type in parameter debug info"
msgstr "tipo erróneo en la información de parámetros de depuración"
#: java/decl.c:1905
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "bad PC range for debug info for local %q+D"
-msgstr "%Jrango de PC erróneo para la información de depuración para '%D' local"
+msgstr "rango de PC erróneo para la información de depuración para %q+D local"
#: java/expr.c:369
#, gcc-internal-format
@@ -28201,19 +27859,19 @@ msgid "mismatching signature for field '%s' in '%s'"
msgstr "no coincide la firma para el campo '%s' en '%s'"
#: java/expr.c:2712
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "assignment to final field %q+D not in field's class"
-msgstr "%Jla asignación para el campo final '%D' no está en el campo de la clase"
+msgstr "la asignación para el campo final %q+D no está en el campo de la clase"
#: java/expr.c:2717
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "assignment to final static field %q+D not in class initializer"
-msgstr "%Jla asignación para el campo final estático %qD no está en el inicializador de la clase"
+msgstr "la asignación para el campo final estático %q+D no está en el inicializador de la clase"
#: java/expr.c:2726
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "assignment to final field %q+D not in constructor"
-msgstr "%Jla asignación al campo final '%D' no está en el constructor"
+msgstr "la asignación al campo final %q+D no está en el constructor"
#: java/expr.c:2916
#, gcc-internal-format
@@ -28365,7 +28023,7 @@ msgstr "el %<java.lang.Object%> que se encontró en %qs no tiene el atributo espe
#: java/jcf-parse.c:846
#, gcc-internal-format
msgid "%Hduplicate class will only be compiled once"
-msgstr ""
+msgstr "%Hla clase duplicadas sólo se compilará una vez"
#: java/jcf-parse.c:900
#, gcc-internal-format
@@ -28544,29 +28202,29 @@ msgid "method definition not in @implementation context"
msgstr "la definición de método no está en el contexto @implementation"
#: objc/objc-act.c:1174
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "comparison of distinct Objective-C types lacks a cast"
-msgstr "la comparación de diferentes tipos de puntero carece de una conversión"
+msgstr "la comparación de tipos Objective-C distintos carece de una conversión"
#: objc/objc-act.c:1178
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "initialization from distinct Objective-C type"
-msgstr "inicialización desde un tipo de puntero incompatible"
+msgstr "inicialización desde un tipo Objective-C distinto"
#: objc/objc-act.c:1182
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "assignment from distinct Objective-C type"
-msgstr "asignación desde un tipo de puntero incompatible"
+msgstr "asignación desde un tipo Objective-C distinto"
#: objc/objc-act.c:1186
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "distinct Objective-C type in return"
-msgstr "tipos incompatibles en la devolución"
+msgstr "tipo Objective-C distinto en la devolución"
#: objc/objc-act.c:1190
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "passing argument %d of %qE from distinct Objective-C type"
-msgstr "se pasa el argumento %d de %qE desde un tipo de puntero incompatible"
+msgstr "se pasa el argumento %d de %qE desde un tipo Objective-C distinto"
#: objc/objc-act.c:1345
#, gcc-internal-format
@@ -28633,27 +28291,27 @@ msgstr "%qs redeclarado como un tipo diferente de símbolo"
#: objc/objc-act.c:3192
#, gcc-internal-format
msgid "strong-cast assignment has been intercepted"
-msgstr ""
+msgstr "se ha interceptado una asignación strong-cast"
#: objc/objc-act.c:3234
#, gcc-internal-format
msgid "strong-cast may possibly be needed"
-msgstr ""
+msgstr "tal vez se necesite strong-cast"
#: objc/objc-act.c:3244
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "instance variable assignment has been intercepted"
-msgstr "la variable de instancia %qs es de tamaño desconocido"
+msgstr "se ha interceptado una asignación de variable de instancia"
#: objc/objc-act.c:3263
#, gcc-internal-format
msgid "pointer arithmetic for garbage-collected objects not allowed"
-msgstr ""
+msgstr "no se permite la aritmética de punteros para los objetos capturados por el recolector de basura"
#: objc/objc-act.c:3269
#, gcc-internal-format
msgid "global/static variable assignment has been intercepted"
-msgstr ""
+msgstr "se ha interceptado una asignación de variable global/estática"
#: objc/objc-act.c:3452
#, gcc-internal-format
@@ -28686,9 +28344,9 @@ msgid "%<@throw%> (rethrow) used outside of a @catch block"
msgstr "se usó %<@throw%> (rethrow) fuera de un bloque @catch"
#: objc/objc-act.c:4311
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "type %q+D does not have a known size"
-msgstr "%Jel tipo '%D' no tiene un tamaño conocido"
+msgstr "el tipo %q+D no tiene un tamaño conocido"
#: objc/objc-act.c:4944
#, gcc-internal-format
@@ -28795,14 +28453,14 @@ msgid "instance variable %qs has unknown size"
msgstr "la variable de instancia %qs es de tamaño desconocido"
#: objc/objc-act.c:7068
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "type %qs has no default constructor to call"
-msgstr "el tipo %qs tiene un constructor definido por el usuario"
+msgstr "el tipo %qs tiene un constructor para llamar por defecto"
#: objc/objc-act.c:7074
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "destructor for %qs shall not be run either"
-msgstr "el destructor para la clase extranjera %qT no puede ser un miembro"
+msgstr "el destructor para %qs no debe se ejecutado por"
#. Vtable pointers are Real Bad(tm), since Obj-C cannot
#. initialize them.
@@ -28920,7 +28578,7 @@ msgstr "[super ...] debe aparecer en el contexto de un método"
#: objc/objc-act.c:8780
#, gcc-internal-format
msgid "method possibly missing a [super dealloc] call"
-msgstr ""
+msgstr "posiblemente el método carece de una llamada [super dealloc]"
#: objc/objc-act.c:9408
#, gcc-internal-format
@@ -28953,31 +28611,698 @@ msgid "Address of register variable %qD requested."
msgstr "Se solicitó la dirección de la variable de registro %qD."
#: treelang/treetree.c:1214
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
msgid "%qD attribute ignored"
-msgstr "se ignora el atributo %qs"
+msgstr "se ignora el atributo %qD"
+
+#~ msgid "syntax error: cannot back up"
+#~ msgstr "error sintáctico: no se puede regresar"
+
+#~ msgid "memory exhausted"
+#~ msgstr "memoria agotada"
+
+#~ msgid "syntax error, unexpected %s"
+#~ msgstr "error sintáctico, %s inesperado"
+
+#~ msgid "syntax error, unexpected %s, expecting %s"
+#~ msgstr "error sintáctico, %s inesperado, se esperaba %s"
+
+#~ msgid "syntax error, unexpected %s, expecting %s or %s"
+#~ msgstr "error sintáctico, %s inesperado, se esperaba %s o %s"
+
+#~ msgid "syntax error, unexpected %s, expecting %s or %s or %s"
+#~ msgstr "error sintáctico, %s inesperado, se esperaba %s o %s o %s"
+
+#~ msgid "syntax error, unexpected %s, expecting %s or %s or %s or %s"
+#~ msgstr "error sintáctico, %s inesperado, se esperaba %s o %s o %s o %s"
#~ msgid "syntax error"
#~ msgstr "error sintáctico"
-#~ msgid "syntax error: cannot back up"
-#~ msgstr "error sintáctico: no se puede regresar"
+#~ msgid "Variable '%s' at %L cannot appear in an initialization expression"
+#~ msgstr "La variable '%s' en %L no puede aparecer en una expresión de inicialización"
-#~ msgid "syntax error; also virtual memory exhausted"
-#~ msgstr "error sintáctico; también se agotó la memoria"
+#~ msgid "Unequal ranks %d and %d in pointer assignment at %L"
+#~ msgstr "Rangos %d y %d desiguales en la asignación de puntero en %L"
-#~ msgid "parser stack overflow"
-#~ msgstr "desbordamiento de la pila del decodificador"
+#~ msgid "REC tag at %L is incompatible with internal file"
+#~ msgstr "La etiqueta REC en %L es incompatible con el fichero interno"
+
+#~ msgid "Internal file at %L is incompatible with namelist"
+#~ msgstr "El fichero interno en %L es incompatible con la lista de nombres"
+
+#~ msgid "ADVANCE tag at %L is incompatible with internal file"
+#~ msgstr "La etiqueta ADVANCE en %L es incompatible con el fichero interno"
+
+#~ msgid "REC tag at %L is incompatible with END tag"
+#~ msgstr "La etiqueta REC en %L es incompatible con la etiqueta END"
+
+#~ msgid "END tag at %L is incompatible with list directed format (*)"
+#~ msgstr "La etiqueta END en %L es incompatible con el formato dirigido por lista (*)"
+
+#~ msgid "REC tag at %L is incompatible with namelist"
+#~ msgstr "La etiqueta REC en %L es incompatible con la lista de nombres"
+
+#~ msgid "ADVANCE tag at %L is incompatible with list directed format (*)"
+#~ msgstr "La etiqueta ADVANCE en %L es incompatible con el formato dirigido por lista (*)"
+
+#~ msgid "EOR tag at %L requires an ADVANCE tag"
+#~ msgstr "La etiqueta EOR en %L requere una etiqueta ADVANCE"
+
+#~ msgid "SIZE tag at %L requires an ADVANCE tag"
+#~ msgstr "La etiqueta SIZE en %L requere una etiqueta ADVANCE"
+
+#~ msgid "Namelist followed by I/O list at %C"
+#~ msgstr "Una lista de nombres a continuación de una lista de E/S en %C"
+
+#~ msgid "Internal file '%s' at %L is INTENT(IN)"
+#~ msgstr "El fichero interno '%s' en %L es INTENT(IN)"
+
+#~ msgid "io-unit in %s statement at %C must be an internal file in a PURE procedure"
+#~ msgstr "La unidad e/s en la declaración %s en %C debe ser un fichero interno en un procedimiento PURE"
+
+#~ msgid "STOP code out of range at %C"
+#~ msgstr "El código STOP está fuera de rango en %C"
+
+#~ msgid "Ignoring statement label of zero at %C"
+#~ msgstr "Se ignora la declaración de etiqueta de cero en %C"
+
+#~ msgid "Empty set of digits in binary constant at %C"
+#~ msgstr "Conjunto vacío de dígitos en la constante binaria en %C"
+
+#~ msgid "Empty set of digits in hexadecimal constant at %C"
+#~ msgstr "Conjunto vacío de dígitos en la constante hexadecimal en %C"
+
+#~ msgid "Illegal character in binary constant at %C"
+#~ msgstr "Carácter ilegal en la constante binaria en %C"
+
+#~ msgid "Illegal character in hexadecimal constant at %C"
+#~ msgstr "Carácter ilegal en la constante hexadecimal en %C"
+
+#~ msgid "FORALL Iteration variable at %L must be INTEGER"
+#~ msgstr "La variable de iteración FORALL en %L debe ser INTEGER"
+
+#~ msgid "Module array '%s' at %L cannot be automatic or assumed shape"
+#~ msgstr "La matriz de módulo '%s' en %L no puede ser automática ni de forma asumida"
+
+#~ msgid "Missing term"
+#~ msgstr "Falta el término"
+
+#~ msgid "';' expected"
+#~ msgstr "se esperaba ';'"
#~ msgid "parse error"
#~ msgstr "error de decodificación"
+#~ msgid "syntax error; also virtual memory exhausted"
+#~ msgstr "error sintáctico; también se agotó la memoria"
+
#~ msgid "parse error; also virtual memory exhausted"
#~ msgstr "error de decodificación; también se agotó la memoria"
#~ msgid "parse error: cannot back up"
#~ msgstr "error de decodificación: no se puede regresar"
+#~ msgid "Missing name"
+#~ msgstr "Falta el nombre"
+
+#~ msgid "'*' expected"
+#~ msgstr "se esperaba '*'"
+
+#~ msgid "Class or interface declaration expected"
+#~ msgstr "se esperaba una declaración de clase o interfaz"
+
+#~ msgid "Missing class name"
+#~ msgstr "Falta el nombre de la clase"
+
+#~ msgid "'{' expected"
+#~ msgstr "Se esperaba '{'"
+
+#~ msgid "Missing super class name"
+#~ msgstr "No se encuentra el nombre de la super clase"
+
+#~ msgid "Missing interface name"
+#~ msgstr "No se encuentra el nombre de la interfaz"
+
+#~ msgid "Missing variable initializer"
+#~ msgstr "Falta el inicializador de la variable"
+
+#~ msgid "Invalid declaration"
+#~ msgstr "Declaración inválida"
+
+#~ msgid "']' expected"
+#~ msgstr "Se esperaba ']'"
+
+#~ msgid "Unbalanced ']'"
+#~ msgstr "']' desbalanceado"
+
+#~ msgid "Invalid method declaration, method name required"
+#~ msgstr "Declaración de método inválida, se requiere un nombre de método"
+
+#~ msgid "Identifier expected"
+#~ msgstr "Se esperaba un identificador"
+
+#~ msgid "Invalid method declaration, return type required"
+#~ msgstr "Declaración de método inválida, se requiere un tipo de devolución"
+
+#~ msgid "')' expected"
+#~ msgstr "Se esperaba ')'"
+
+#~ msgid "Missing formal parameter term"
+#~ msgstr "Falta el término de parámetro formal"
+
+#~ msgid "Missing identifier"
+#~ msgstr "Falta el identificador"
+
+#~ msgid "Missing class type term"
+#~ msgstr "Falta el término de tipo de clase"
+
+#~ msgid "Invalid interface type"
+#~ msgstr "Tipo de interfaz inválido"
+
+#~ msgid "':' expected"
+#~ msgstr "Se esperaba ':'"
+
+#~ msgid "Invalid expression statement"
+#~ msgstr "Declaración de expresión inválida"
+
+#~ msgid "'(' expected"
+#~ msgstr "Se esperaba '('"
+
+#~ msgid "Missing term or ')'"
+#~ msgstr "Falta término o ')'"
+
+#~ msgid "Missing or invalid constant expression"
+#~ msgstr "Expresión constante faltante o inválida"
+
+#~ msgid "Missing term and ')' expected"
+#~ msgstr "Faltan término y ')' esperados"
+
+#~ msgid "Invalid control expression"
+#~ msgstr "Expresión de control inválida"
+
+#~ msgid "Invalid update expression"
+#~ msgstr "Expresión de actualización inválida"
+
+#~ msgid "Invalid init statement"
+#~ msgstr "Declaración de inicio inválida"
+
+#~ msgid "Missing term or ')' expected"
+#~ msgstr "Faltan término o ')' esperados"
+
+#~ msgid "'class' or 'this' expected"
+#~ msgstr "Se esperaba 'class' o 'this'"
+
+#~ msgid "'class' expected"
+#~ msgstr "Se esperaba 'class'"
+
+#~ msgid "')' or term expected"
+#~ msgstr "Se esperaba ')' o término"
+
+#~ msgid "'[' expected"
+#~ msgstr "Se esperaba '['"
+
+#~ msgid "Field expected"
+#~ msgstr "Se esperaba un campo"
+
+#~ msgid "Missing term and ']' expected"
+#~ msgstr "Faltan término y ']' esperados"
+
+#~ msgid "']' expected, invalid type expression"
+#~ msgstr "Se esperaba ']', expresión de tipo inválida"
+
+#~ msgid "Invalid type expression"
+#~ msgstr "Expresión de tipo inválida"
+
+#~ msgid "Invalid reference type"
+#~ msgstr "Tipo de referencia inválido"
+
+#~ msgid "Constructor invocation must be first thing in a constructor"
+#~ msgstr "La invocación del constructor debe ser el primer elemento en un constructor"
+
+#~ msgid "Only constructors can invoke constructors"
+#~ msgstr "Solamente los constructores pueden invocar constructores"
+
+#~ msgid "Generate multiply instructions"
+#~ msgstr "Generar instrucciones multiply"
+
+#~ msgid "duplicate %<friend%>"
+#~ msgstr "%<friend%> duplicado"
+
+#~ msgid "Ambiguous class: %qs and %qs"
+#~ msgstr "Clase ambigua: %qs y %qs"
+
+#~ msgid "Modifier %qs declared twice"
+#~ msgstr "Modificador %qs declarado dos veces"
+
+#~ msgid "Discouraged form of returned type specification"
+#~ msgstr "Forma no recomendada para especificación de tipo devuelto"
+
+#~ msgid "Can't define static initializer in class %qs. Static initializer can only be defined in top-level classes"
+#~ 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"
+
+#~ msgid "An empty declaration is a deprecated feature that should not be used"
+#~ msgstr "Una declaración vacía es una característica obsoleta que no se debe usar"
+
+#~ msgid ": %qs JDK1.1(TM) feature"
+#~ msgstr ": %qs es una característica de JDK1.1(MR)"
+
+#~ msgid ""
+#~ "%s.\n"
+#~ "%s"
+#~ msgstr ""
+#~ "%s.\n"
+#~ "%s"
+
+#~ msgid "Missing return statement"
+#~ msgstr "Falta la declaración de devolución"
+
+#~ msgid "Unreachable statement"
+#~ msgstr "Declaración inalcanzable"
+
+#~ msgid "Can't access %s field %<%s.%s%> from %qs"
+#~ msgstr "No se puede accesar %s al campo %<%s.%s%> desde %qs"
+
+#~ msgid "%s %qs already defined in %s:%d"
+#~ msgstr "%s %qs ya está definido en %s:%d"
+
+#~ msgid "Variable %qs is already defined in this method and was declared %<%s %s%> at line %d"
+#~ msgstr "La variable %qs ya está definida en este método y se declaró %<%s %s%> en la línea %d"
+
+#~ msgid "Interface %qs repeated"
+#~ msgstr "Interfaz %qs repetida"
+
+#~ msgid "%s name %qs clashes with imported type %qs"
+#~ msgstr "%s el nombre %qs choca con el tipo importado %qs"
+
+#~ msgid "Public %s %qs must be defined in a file called %<%s.java%>"
+#~ msgstr "El %s %qs público se debe definir en un fichero llamado %<%s.java%>"
+
+#~ msgid "Inner class %qs can't be static. Static classes can only occur in interfaces and top-level classes"
+#~ 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"
+
+#~ 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 "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"
+
+#~ msgid "Qualifier must be a reference"
+#~ msgstr "El calificador debe ser una referencia"
+
+#~ msgid "Cyclic inheritance involving %s"
+#~ msgstr "Herencia cíclica que involucra a %s"
+
+#~ msgid "Redundant use of %<abstract%> modifier. Interface %qs is implicitly abstract"
+#~ msgstr "Uso redundante del modificador %<abstract%>. La interfaz %qs es implícitamente abstracta"
+
+#~ msgid "Class %qs can't be declared both abstract and final"
+#~ msgstr "La clase %qs no se puede declarar como abstract y final al mismo tiempo"
+
+#~ msgid "%<java.lang.Object%> can't extend anything"
+#~ msgstr "%<java.lang.Object%> no puede extender nada"
+
+#~ msgid "Duplicate variable declaration: %<%s %s%> was %<%s %s%> (%s:%d)"
+#~ msgstr "Declaración de variable duplicada: %<%s %s%> era %<%s %s%> (%s:%d)"
+
+#~ msgid "Field %qs can't be static in inner class %qs unless it is final"
+#~ msgstr "El campo %qs no puede ser estático en la clase interna %qs a menos que sea final"
+
+#~ msgid "Class %qs must be declared abstract to define abstract method %qs"
+#~ msgstr "La clase %qs se debe declarar abstracta para definir el método abstracto %qs"
+
+#~ msgid "native method %qs can't be strictfp"
+#~ msgstr "el método nativo %qs no puede ser strictfp"
+
+#~ msgid "method %qs can't be transient"
+#~ msgstr "el método %qs no puede ser transient"
+
+#~ msgid "method %qs can't be volatile"
+#~ msgstr "el método %qs no puede ser volatile"
+
+#~ msgid "Method %qs can't be static in inner class %qs. Only members of interfaces and top-level classes can be static"
+#~ 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"
+
+#~ msgid "%s method %qs can't have a body defined"
+#~ msgstr "%s el método %qs no puede tener un cuerpo definido"
+
+#~ msgid "Non native and non abstract method %qs must have a body defined"
+#~ msgstr "El método %qs que no es nativo ni abstracto debe tener un cuerpo definido"
+
+#~ msgid "%s: recursive invocation of constructor %qs"
+#~ msgstr "%s: invocación recursiva del constructor %qs"
+
+#~ msgid "Inconsistent member declaration. At most one of %<public%>, %<private%>, or %<protected%> may be specified"
+#~ msgstr "Declaración inconsistente de miembro. Se debe especificar por lo menos uno de %<public%>, %<private%>, o %<protected%>"
+
+#~ msgid "Inconsistent member declaration. At most one of %<final%> or %<volatile%> may be specified"
+#~ msgstr "Declaración inconsistente de miembro. Se debe especificar por lo menos uno de %<final%> o %<volatile%>"
+
+#~ msgid "Variable %qs is used more than once in the argument list of method %qs"
+#~ msgstr "La variable %qs se usa más de una vez en la lista de argumentos del método %qs"
+
+#~ msgid "%s %qs can't implement/extend %s %qs"
+#~ msgstr "%s %qs no puede implementar/extender %s %qs"
+
+#~ msgid "Class %qs can't subclass %s %qs"
+#~ msgstr "La clase %qs no puede hacer subclase a %s %qs"
+
+#~ msgid "Can't subclass final classes: %s"
+#~ msgstr "No se puede hacer subclase de clases finales: %s"
+
+#~ msgid "Cyclic class inheritance%s"
+#~ msgstr "Herencia%s con ciclo de clase"
+
+#~ msgid "Superclass %qs of class %qs not found"
+#~ msgstr "No se encontró la superclase %qs de la clase %qs"
+
+#~ msgid "Type %qs not found in declaration of field %qs"
+#~ msgstr "No se encontró el tipo %qs en la declaración del campo %qs"
+
+#~ msgid "Type %qs not found in the declaration of the argument %qs of method %qs"
+#~ msgstr "No se encontró el tipo %qs en la declaración del argumento %qs del método %qs"
+
+#~ msgid "Type %qs not found in the declaration of the return type of method %qs"
+#~ msgstr "No se encontró el tipo %qs en la declaración del tipo de devolución del método %qs"
+
+#~ msgid "Superinterface %qs of %s %qs not found"
+#~ msgstr "No se encontró la superinterfaz %qs de %s %qs"
+
+#~ msgid "Type %qs not found in the declaration of the local variable %qs"
+#~ msgstr "No se encontró el tipo %qs en la declaración de la variable local %qs"
+
+#~ msgid "Class %qs not found in %<throws%>"
+#~ msgstr "No se encuentró la clase %qs en %<throws%>"
+
+#~ msgid "Duplicate %s declaration %qs"
+#~ msgstr "Declaración %s %qs duplicada"
+
+#~ 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 "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"
+
+#~ msgid "Class %qs in %<throws%> clause must be a subclass of class %<java.lang.Throwable%>"
+#~ msgstr "La clase %qs en la cláusula %<throws%> debe ser una subclase de la clase %<java.lang.Throwable%>"
+
+#~ msgid "Class %qs must override %qs with a public method in order to implement interface %qs"
+#~ msgstr "La clase %qs debe sobreescribir a %qs con un método público para implementar la interfaz %qs"
+
+#~ msgid "Method %qs was defined with return type %qs in class %qs"
+#~ msgstr "Se definió el método %qs con tipo de devolución %qs en la clase %qs"
+
+#~ msgid "%s methods can't be overridden. Method %qs is %s in class %qs"
+#~ msgstr "Los métodos %s no se pueden sobreescribir. El método %qs es %s en la clase %qs"
+
+#~ msgid "Instance methods can't be overridden by a static method. Method %qs is an instance method in class %qs"
+#~ 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"
+
+#~ msgid "Methods can't be overridden to be more private. Method %qs is not %s in class %qs"
+#~ msgstr "Los métodos no se pueden sobreescribir para hacerlos más privados. El método %qs no es %s en la clase %qs"
+
+#~ 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 "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"
+
+#~ msgid "Interface %qs inherits method %qs from interface %qs. This method is redefined with a different return type in interface %qs"
+#~ 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"
+
+#~ msgid "Class or interface %qs not found in import"
+#~ msgstr "No se encuentra la clase o interfaz %qs en la importación"
+
+#~ msgid "malformed .zip archive in CLASSPATH: %s"
+#~ msgstr "archivo .zip malformado en CLASSPATH: %s"
+
+#~ 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 %qs. Revise la variable de ambiente CLASSPATH y el acceso a los archivos"
+
+#~ msgid "Package %qs not found in import"
+#~ msgstr "No se encuentra el paquete %qs en la importación"
+
+#~ msgid "Type %qs also potentially defined in package %qs"
+#~ msgstr "El tipo %qs también está potencialmente definido en el paquete %qs"
+
+#~ msgid "Nested %s %s is %s; cannot be accessed from here"
+#~ msgstr "El %s %s anidado es %s; no se puede accesar desde aquí"
+
+#~ msgid "Can't access %s %qs. Only public classes and interfaces in other packages can be accessed"
+#~ msgstr "No se puede accesar %s %qs. Sólo se pueden accesar las clases públicas y las interfaces en otros paquetes"
+
+#~ msgid "Only %<final%> is allowed as a local variables modifier"
+#~ msgstr "Sólo se permite %<final%> como un modificador de variables local"
+
+#~ msgid "No constructor matching %qs found in class %qs"
+#~ msgstr "No se encontró un constructor que coincida con %qs en la clase %qs"
+
+#~ msgid "Can't reference %qs before the superclass constructor has been called"
+#~ msgstr "No se puede referenciar a %qs antes que se llame el constructor de la superclase"
+
+#~ msgid "Local variable %qs can't be accessed from within the inner class %qs unless it is declared final"
+#~ msgstr "No se puede accesar la variable local %qs desde la clase interna %qs a menos que se declare final"
+
+#~ msgid "Undefined variable %qs"
+#~ msgstr "No se definió la variable %qs"
+
+#~ msgid "Can't make a static reference to nonstatic variable %qs in class %qs"
+#~ msgstr "No se puede hacer una referencia estática a la variable %qs que no es estática en la clase %qs"
+
+#~ msgid "No enclosing instance for inner class %qs is in scope%s"
+#~ msgstr "No se encontró una instancia terminal para la clase interna %qs que está en ámbito%s"
+
+#~ msgid "Keyword %<this%> used outside allowed context"
+#~ msgstr "Se usó la palabra clave %<this%> fuera del contexto permitido"
+
+#~ msgid "Can't reference %<this%> before the superclass constructor has been called"
+#~ msgstr "No se puede referenciar %<this%> antes de que se llame al constructor de la superclase"
+
+#~ msgid "Can't use variable %<%s.this%>: type %qs isn't an outer type of type %qs"
+#~ msgstr "No se puede usar la variable %<%s.this%>: el tipo %qs no es un tipo externo del tipo %qs"
+
+#~ msgid "Keyword %<super%> used outside allowed context"
+#~ msgstr "Se usó la palabra clave %<super%> fuera del contexto permitido"
+
+#~ msgid "No variable %qs defined in class %qs"
+#~ msgstr "No se definió la variable %qs en la clase %qs"
+
+#~ msgid "Undefined variable or class name: %qs"
+#~ msgstr "Variable o nombre de clase sin definir: %qs"
+
+#~ msgid "Can't use type %qs as a qualifier"
+#~ msgstr "No se puede usar %qs como un calificador"
+
+#~ msgid "Attempt to reference field %qs in %<%s %s%>"
+#~ msgstr "Se intentó referenciar el campo %qs en %<%s %s%>"
+
+#~ msgid "No variable %qs defined in type %qs"
+#~ msgstr "No se definió la variable %qs en el tipo %qs"
+
+#~ msgid "Attempt to reference field %<new%> in a %qs"
+#~ msgstr "Se intentó referenciar el campo %<new%> en un %qs"
+
+#~ msgid "The class %qs has been deprecated"
+#~ msgstr "La clase %qs es obsoleta"
+
+#~ msgid "The %s %qs in class %qs has been deprecated"
+#~ msgstr "El %s %qs en la clase %qs es obsoleto"
+
+#~ msgid "Can't invoke a method on primitive type %qs"
+#~ msgstr "No se puede invocar un método en el tipo primitivo %qs"
+
+#~ msgid "Can't make static reference to method %qs in interface %qs"
+#~ msgstr "No se puede hacer una referencia estática al método %qs en la interfaz %qs"
+
+#~ msgid "Can't make static reference to method %<%s %s%> in class %qs"
+#~ msgstr "No se puede hacer una referencia al método %<%s %s%> en la clase %qs"
+
+#~ msgid "Can't invoke super constructor on java.lang.Object"
+#~ msgstr "No se puede invocar al super constructor en java.lang.Object"
+
+#~ msgid "Class %qs not found in type declaration"
+#~ msgstr "No se encontró la clase %qs en la declaración de tipo"
+
+#~ msgid "Class %qs is an abstract class. It can't be instantiated"
+#~ msgstr "La clase %qs es una clase abstracta. No se puede instanciar"
+
+#~ msgid "No method named %qs in scope"
+#~ msgstr "No hay un método llamado %qs en el ámbito"
+
+#~ msgid "Can't access %s %s %<%s.%s%> from %qs"
+#~ msgstr "No se puede accesar %s %s %<%s.%s%> desde %qs"
+
+#~ msgid "Can't find %s %<%s(%s)%> in type %qs%s"
+#~ msgstr "No se puede encontrar %s %<%s(%s)%> en el tipo %qs%s"
+
+#~ msgid "Constant expression required"
+#~ msgstr "Se requiere una expresión constante"
+
+#~ msgid "Incompatible type for case. Can't convert %qs to %<int%>"
+#~ msgstr "Tipo incompatible para el case. No se puede convertir %qs a %<int%>"
+
+#~ msgid "Duplicate case label: %<default%>"
+#~ msgstr "Valor de case duplicado: %<default%>"
+
+#~ msgid "Incompatible type for %<+=%>. Can't convert %qs to %<java.lang.String%>"
+#~ msgstr "Tipo incompatible para %<+=%>. No se puede convertir %qs a %<java.lang.String%>"
+
+#~ msgid "missing static field %qs"
+#~ msgstr "falta el campo static %qs"
+
+#~ msgid "not a static field %qs"
+#~ msgstr "%qs no es un campo static"
+
+#~ msgid "Can't reference %<this%> or %<super%> before the superclass constructor has been called"
+#~ msgstr "No se puede referenciar %<this%> o %<super%> antes que se llame al constructor de la superclase"
+
+#~ msgid "No case for %s"
+#~ msgstr "No hay case para %s"
+
+#~ msgid "Invalid left hand side of assignment"
+#~ msgstr "La parte izquierda de la asignación es inválida"
+
+#~ msgid "Incompatible type for %s. Can't convert %qs to %qs"
+#~ msgstr "Tipo incompatible para el argumento %s. No se puede convertir %qs a %qs"
+
+#~ msgid "Incompatible type for %s. Explicit cast needed to convert %qs to %qs"
+#~ msgstr "Tipo incompatible para %s. Se necesita una conversión explícita para convertir %qs a %qs"
+
+#~ msgid "Constant expression %qs too wide for narrowing primitive conversion to %qs"
+#~ msgstr "La expresión constante %qs es demasiado ancha para la conversión primitiva que estrecha a %qs"
+
+#~ msgid "unregistered operator %s"
+#~ msgstr "operador %s sin registrar"
+
+#~ msgid "Evaluating this expression will result in an arithmetic exception being thrown"
+#~ msgstr "La evaluación de esta expresión resultará en que se arroje una excepción aritmética"
+
+#~ msgid "Incompatible type for %qs. Explicit cast needed to convert shift distance from %qs to integral"
+#~ msgstr "Tipo incompatible para %qs. Se requiere una conversión explícita para convertir la distancia de desplazamiento de %qs a integral"
+
+#~ msgid "Incompatible type for %qs. Can't convert shift distance from %qs to integral"
+#~ msgstr "Tipo incompatible para %qs. No se puede convertir la distancia de desplazamiento de %qs a integral"
+
+#~ msgid "Invalid argument %qs for %<instanceof%>"
+#~ msgstr "Argumento %qs inválido para %<instanceof%>"
+
+#~ msgid "Impossible for %qs to be instance of %qs"
+#~ msgstr "Es imposible para %qs que sea instancia de %qs"
+
+#~ msgid "Incompatible type for %qs. Can't convert %qs to %qs"
+#~ msgstr "Tipo incompatible para %qs. No se puede convertir %qs a %qs"
+
+#~ msgid "Invalid argument type %qs to %qs"
+#~ msgstr "Tipo de argumento %qs a %qs inválido"
+
+#~ msgid "Invalid cast from %qs to %qs"
+#~ msgstr "Conversión inválida de %qs a %qs"
+
+#~ msgid "%<[]%> can only be applied to arrays. It can't be applied to %qs"
+#~ msgstr "%<[]%> sólo se puede aplicar a matrices. No se puede aplicar a %qs"
+
+#~ msgid "Incompatible type for %<[]%>. Explicit cast needed to convert %qs to %<int%>"
+#~ msgstr "Tipo incompatible para %<[]%>. Se necesita una conversión explícita para convertir %qs a %<int%>"
+
+#~ msgid "Incompatible type for %<[]%>. Can't convert %qs to %<int%>"
+#~ msgstr "Tipo incompatible para %<[]%>. No se puede convertir %qs a %<int%>"
+
+#~ msgid "Incompatible type for dimension in array creation expression. %s convert %qs to %<int%>"
+#~ msgstr "Tipo incompatible para la dimensión en la expresión de creación de matriz. %s convierte %qs a %<int%>"
+
+#~ msgid "Invalid array initializer for non-array type %qs"
+#~ msgstr "Inicializador de matriz inválido para el tipo %qs que no es matriz"
+
+#~ msgid "Incompatible type for array. %s convert %qs to %qs"
+#~ msgstr "Tipo incompatible para matriz. %s convierte %qs a %qs"
+
+#~ msgid "%<return%> inside instance initializer"
+#~ msgstr "%<return%> dentro de un inicializador de instancia"
+
+#~ msgid "%<return%> inside static initializer"
+#~ msgstr "%<return%> dentro de un inicializador estático"
+
+#~ msgid "%<return%> with%s value from %<%s %s%>"
+#~ msgstr "%<return%> con%s valor de %<%s %s%>"
+
+#~ msgid "%<return%> with value from constructor %qs"
+#~ msgstr "%<return%> con valor del constructor %qs"
+
+#~ msgid "Incompatible type for %<if%>. Can't convert %qs to %<boolean%>"
+#~ msgstr "Tipo incompatible para %<if%>. No se puede convertir %qs a %<boolean%>"
+
+#~ msgid "Declaration of %qs shadows a previous label declaration"
+#~ msgstr "La declaración de %qs oscurece a una declaración de etiqueta previa"
+
+#~ msgid "This is the location of the previous declaration of label %qs"
+#~ msgstr "Esta es la ubicación de la declaración previa de la etiqueta %qs"
+
+#~ msgid "No label definition found for %qs"
+#~ msgstr "No se encontró una definición de etiqueta para %qs"
+
+#~ msgid "%<continue%> must be in loop"
+#~ msgstr "%<continue%> debe estar dentro de un ciclo"
+
+#~ msgid "continue label %qs does not name a loop"
+#~ msgstr "la etiqueta continue %qs no nombra un ciclo"
+
+#~ msgid "%<break%> must be in loop or switch"
+#~ msgstr "%<break%> debe estar dentro de un ciclo o switch"
+
+#~ msgid "Incompatible type for loop conditional. Can't convert %qs to %<boolean%>"
+#~ msgstr "Tipo incompatible para condicional de ciclo. No se puede convertir %qs a %<boolean%>"
+
+#~ msgid "Incompatible type for %<switch%>. Can't convert %qs to %<int%>"
+#~ msgstr "Tipo incompatible para %<switch%>. No se puede convertir %qs a %<int%>"
+
+#~ msgid "duplicate case label: %<"
+#~ msgstr "etiqueta de case duplicada: %<"
+
+#~ msgid "%>"
+#~ msgstr "%>"
+
+#~ msgid "original label is here"
+#~ msgstr "la etiqueta original está aquí"
+
+#~ msgid "Can't catch class %qs. Catch clause parameter type must be a subclass of class %<java.lang.Throwable%>"
+#~ 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%>"
+
+#~ msgid "%<catch%> not reached because of the catch clause at line %d"
+#~ msgstr "No se alcanzó %<catch%> por la cláusula catch en la línea %d"
+
+#~ msgid "Incompatible type for %<synchronized%>. Can't convert %qs to %<java.lang.Object%>"
+#~ msgstr "Tipo incompatible para %<synchronized%>. No se puede convertir %qs a %<java.lang.Object%>"
+
+#~ msgid "Can't throw %qs; it must be a subclass of class %<java.lang.Throwable%>"
+#~ msgstr "No se puede arrojar %qs; debe ser una subclase de la clase %<java.lang.Throwable%>"
+
+#~ msgid "Checked exception %qs can't be thrown in instance initializer (not all declared constructor are declaring it in their %<throws%> clause)"
+#~ 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%>)"
+
+#~ msgid "Checked exception %qs can't be caught by any of the catch clause(s) of the surrounding %<try%> block"
+#~ 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"
+
+#~ msgid "Checked exception %qs can't be thrown in initializer"
+#~ msgstr "La excepción revisada %qs no se puede arrojar en el inicializador"
+
+#~ msgid "Checked exception %qs isn't thrown from a %<try%> block"
+#~ msgstr "La excepción revisada %qs no se arroja desde un bloque %<try%>"
+
+#~ msgid "Checked exception %qs doesn't match any of current method's %<throws%> declaration(s)"
+#~ msgstr "La excepción revisada %qs no coincide con ninguno de los métodos actuales de la(s) declaración(es) %<throws%>"
+
+#~ msgid "Exception %qs can't be thrown in initializer"
+#~ msgstr "La excepción %qs no se puede arrojar en el inicializador"
+
+#~ msgid "Exception %qs must be caught, or it must be declared in the %<throws%> clause of %qs"
+#~ msgstr "La excepción %qs se debe capturar, o se debe declarar en la cláusula %<throws%> de %qs"
+
+#~ msgid "Incompatible type for %<?:%>. Can't convert %qs to %<boolean%>"
+#~ msgstr "Tipo incompatible para %<?:%>. No se puede convertir %qs a %<boolean%>"
+
+#~ msgid "Incompatible type for %<?:%>. Can't convert %qs to %qs"
+#~ msgstr "Tipo incompatible para %<?:%>. No se puede convertir %qs a %qs"
+
+#~ msgid "Discouraged redundant use of %qs modifier in declaration of %s"
+#~ msgstr "Uso redundante no recomendado del modificador %qs en la declaración de %s"
+
+#~ msgid "Discouraged redundant use of %qs modifier in declaration of %s %qs"
+#~ msgstr "Uso redundante no recomendado del modificador %qs en la declaración de %s %qs"
+
+#~ msgid "parser stack overflow"
+#~ msgstr "desbordamiento de la pila del decodificador"
+
#~ 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"
@@ -29835,9 +30160,6 @@ msgstr "se ignora el atributo %qs"
#~ msgid " also declared as %q#D here"
#~ msgstr " también declarado como %q#D aquí"
-#~ msgid "duplicate %<friend%>"
-#~ msgstr "%<friend%> duplicado"
-
#~ msgid "missing %<>%> to terminate the template argument list"
#~ msgstr "falta un %<>%> para terminar la lista de argumentos de plantilla"
@@ -29916,123 +30238,6 @@ msgstr "se ignora el atributo %qs"
#~ msgid "static access to object of type %<id%>"
#~ msgstr "acceso estático al objeto de tipo %<id%>"
-#~ msgid "Missing term"
-#~ msgstr "Falta el término"
-
-#~ msgid "';' expected"
-#~ msgstr "se esperaba ';'"
-
-#~ msgid "Missing name"
-#~ msgstr "Falta el nombre"
-
-#~ msgid "'*' expected"
-#~ msgstr "se esperaba '*'"
-
-#~ msgid "Class or interface declaration expected"
-#~ msgstr "se esperaba una declaración de clase o interfaz"
-
-#~ msgid "Missing class name"
-#~ msgstr "Falta el nombre de la clase"
-
-#~ msgid "'{' expected"
-#~ msgstr "Se esperaba '{'"
-
-#~ msgid "Missing super class name"
-#~ msgstr "No se encuentra el nombre de la super clase"
-
-#~ msgid "Missing interface name"
-#~ msgstr "No se encuentra el nombre de la interfaz"
-
-#~ msgid "Missing variable initializer"
-#~ msgstr "Falta el inicializador de la variable"
-
-#~ msgid "']' expected"
-#~ msgstr "Se esperaba ']'"
-
-#~ msgid "Unbalanced ']'"
-#~ msgstr "']' desbalanceado"
-
-#~ msgid "Invalid method declaration, method name required"
-#~ msgstr "Declaración de método inválida, se requiere un nombre de método"
-
-#~ msgid "Invalid method declaration, return type required"
-#~ msgstr "Declaración de método inválida, se requiere un tipo de devolución"
-
-#~ msgid "')' expected"
-#~ msgstr "Se esperaba ')'"
-
-#~ msgid "Missing identifier"
-#~ msgstr "Falta el identificador"
-
-#~ msgid "Missing class type term"
-#~ msgstr "Falta el término de tipo de clase"
-
-#~ msgid "Invalid interface type"
-#~ msgstr "Tipo de interfaz inválido"
-
-#~ msgid "':' expected"
-#~ msgstr "Se esperaba ':'"
-
-#~ msgid "Invalid expression statement"
-#~ msgstr "Declaración de expresión inválida"
-
-#~ msgid "'(' expected"
-#~ msgstr "Se esperaba '('"
-
-#~ msgid "Missing term or ')'"
-#~ msgstr "Falta término o ')'"
-
-#~ msgid "Missing or invalid constant expression"
-#~ msgstr "Expresión constante faltante o inválida"
-
-#~ msgid "Missing term and ')' expected"
-#~ msgstr "Faltan término y ')' esperados"
-
-#~ msgid "Invalid control expression"
-#~ msgstr "Expresión de control inválida"
-
-#~ msgid "Invalid update expression"
-#~ msgstr "Expresión de actualización inválida"
-
-#~ msgid "Invalid init statement"
-#~ msgstr "Declaración de inicio inválida"
-
-#~ msgid "Missing term or ')' expected"
-#~ msgstr "Faltan término o ')' esperados"
-
-#~ msgid "'class' or 'this' expected"
-#~ msgstr "Se esperaba 'class' o 'this'"
-
-#~ msgid "'class' expected"
-#~ msgstr "Se esperaba 'class'"
-
-#~ msgid "')' or term expected"
-#~ msgstr "Se esperaba ')' o término"
-
-#~ msgid "'[' expected"
-#~ msgstr "Se esperaba '['"
-
-#~ msgid "Field expected"
-#~ msgstr "Se esperaba un campo"
-
-#~ msgid "Missing term and ']' expected"
-#~ msgstr "Faltan término y ']' esperados"
-
-#~ msgid "']' expected, invalid type expression"
-#~ msgstr "Se esperaba ']', expresión de tipo inválida"
-
-#~ msgid "Invalid type expression"
-#~ msgstr "Expresión de tipo inválida"
-
-#~ msgid "Invalid reference type"
-#~ msgstr "Tipo de referencia inválido"
-
-#~ msgid "Constructor invocation must be first thing in a constructor"
-#~ msgstr "La invocación del constructor debe ser el primer elemento en un constructor"
-
-#~ msgid "Only constructors can invoke constructors"
-#~ msgstr "Solamente los constructores pueden invocar constructores"
-
#~ msgid "--classpath=<path>\tSet class path"
#~ msgstr "--classpath=<ruta>\tEstablece la ruta de clases"
@@ -30044,433 +30249,6 @@ msgstr "se ignora el atributo %qs"
#~ "-fmax-identifier-length=<n>\n"
#~ "Máxima longitud de identificador."
-#~ msgid "Ambiguous class: %qs and %qs"
-#~ msgstr "Clase ambigua: %qs y %qs"
-
-#~ msgid "Modifier %qs declared twice"
-#~ msgstr "Modificador %qs declarado dos veces"
-
-#~ msgid "Discouraged form of returned type specification"
-#~ msgstr "Forma no recomendada para especificación de tipo devuelto"
-
-#~ msgid "Can't define static initializer in class %qs. Static initializer can only be defined in top-level classes"
-#~ 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"
-
-#~ msgid "An empty declaration is a deprecated feature that should not be used"
-#~ msgstr "Una declaración vacía es una característica obsoleta que no se debe usar"
-
-#~ msgid ": %qs JDK1.1(TM) feature"
-#~ msgstr ": %qs es una característica de JDK1.1(MR)"
-
-#~ msgid ""
-#~ "%s.\n"
-#~ "%s"
-#~ msgstr ""
-#~ "%s.\n"
-#~ "%s"
-
-#~ msgid "Missing return statement"
-#~ msgstr "Falta la declaración de devolución"
-
-#~ msgid "Unreachable statement"
-#~ msgstr "Declaración inalcanzable"
-
-#~ msgid "Can't access %s field %<%s.%s%> from %qs"
-#~ msgstr "No se puede accesar %s al campo %<%s.%s%> desde %qs"
-
-#~ msgid "Variable %qs is already defined in this method and was declared %<%s %s%> at line %d"
-#~ msgstr "La variable %qs ya está definida en este método y se declaró %<%s %s%> en la línea %d"
-
-#~ msgid "Interface %qs repeated"
-#~ msgstr "Interfaz %qs repetida"
-
-#~ msgid "%s name %qs clashes with imported type %qs"
-#~ msgstr "%s el nombre %qs choca con el tipo importado %qs"
-
-#~ msgid "Public %s %qs must be defined in a file called %<%s.java%>"
-#~ msgstr "El %s %qs público se debe definir en un fichero llamado %<%s.java%>"
-
-#~ msgid "Inner class %qs can't be static. Static classes can only occur in interfaces and top-level classes"
-#~ 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"
-
-#~ 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 "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"
-
-#~ msgid "Qualifier must be a reference"
-#~ msgstr "El calificador debe ser una referencia"
-
-#~ msgid "Cyclic inheritance involving %s"
-#~ msgstr "Herencia cíclica que involucra a %s"
-
-#~ msgid "Redundant use of %<abstract%> modifier. Interface %qs is implicitly abstract"
-#~ msgstr "Uso redundante del modificador %<abstract%>. La interfaz %qs es implícitamente abstracta"
-
-#~ msgid "Class %qs can't be declared both abstract and final"
-#~ msgstr "La clase %qs no se puede declarar como abstract y final al mismo tiempo"
-
-#~ msgid "%<java.lang.Object%> can't extend anything"
-#~ msgstr "%<java.lang.Object%> no puede extender nada"
-
-#~ msgid "Duplicate variable declaration: %<%s %s%> was %<%s %s%> (%s:%d)"
-#~ msgstr "Declaración de variable duplicada: %<%s %s%> era %<%s %s%> (%s:%d)"
-
-#~ msgid "Field %qs can't be static in inner class %qs unless it is final"
-#~ msgstr "El campo %qs no puede ser estático en la clase interna %qs a menos que sea final"
-
-#~ msgid "Class %qs must be declared abstract to define abstract method %qs"
-#~ msgstr "La clase %qs se debe declarar abstracta para definir el método abstracto %qs"
-
-#~ msgid "native method %qs can't be strictfp"
-#~ msgstr "el método nativo %qs no puede ser strictfp"
-
-#~ msgid "method %qs can't be transient"
-#~ msgstr "el método %qs no puede ser transient"
-
-#~ msgid "method %qs can't be volatile"
-#~ msgstr "el método %qs no puede ser volatile"
-
-#~ msgid "Method %qs can't be static in inner class %qs. Only members of interfaces and top-level classes can be static"
-#~ 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"
-
-#~ msgid "%s method %qs can't have a body defined"
-#~ msgstr "%s el método %qs no puede tener un cuerpo definido"
-
-#~ msgid "Non native and non abstract method %qs must have a body defined"
-#~ msgstr "El método %qs que no es nativo ni abstracto debe tener un cuerpo definido"
-
-#~ msgid "%s: recursive invocation of constructor %qs"
-#~ msgstr "%s: invocación recursiva del constructor %qs"
-
-#~ msgid "Inconsistent member declaration. At most one of %<public%>, %<private%>, or %<protected%> may be specified"
-#~ msgstr "Declaración inconsistente de miembro. Se debe especificar por lo menos uno de %<public%>, %<private%>, o %<protected%>"
-
-#~ msgid "Inconsistent member declaration. At most one of %<final%> or %<volatile%> may be specified"
-#~ msgstr "Declaración inconsistente de miembro. Se debe especificar por lo menos uno de %<final%> o %<volatile%>"
-
-#~ msgid "Variable %qs is used more than once in the argument list of method %qs"
-#~ msgstr "La variable %qs se usa más de una vez en la lista de argumentos del método %qs"
-
-#~ msgid "%s %qs can't implement/extend %s %qs"
-#~ msgstr "%s %qs no puede implementar/extender %s %qs"
-
-#~ msgid "Class %qs can't subclass %s %qs"
-#~ msgstr "La clase %qs no puede hacer subclase a %s %qs"
-
-#~ msgid "Can't subclass final classes: %s"
-#~ msgstr "No se puede hacer subclase de clases finales: %s"
-
-#~ msgid "Cyclic class inheritance%s"
-#~ msgstr "Herencia%s con ciclo de clase"
-
-#~ msgid "Superclass %qs of class %qs not found"
-#~ msgstr "No se encontró la superclase %qs de la clase %qs"
-
-#~ msgid "Type %qs not found in declaration of field %qs"
-#~ msgstr "No se encontró el tipo %qs en la declaración del campo %qs"
-
-#~ msgid "Type %qs not found in the declaration of the argument %qs of method %qs"
-#~ msgstr "No se encontró el tipo %qs en la declaración del argumento %qs del método %qs"
-
-#~ msgid "Type %qs not found in the declaration of the return type of method %qs"
-#~ msgstr "No se encontró el tipo %qs en la declaración del tipo de devolución del método %qs"
-
-#~ msgid "Superinterface %qs of %s %qs not found"
-#~ msgstr "No se encontró la superinterfaz %qs de %s %qs"
-
-#~ msgid "Type %qs not found in the declaration of the local variable %qs"
-#~ msgstr "No se encontró el tipo %qs en la declaración de la variable local %qs"
-
-#~ msgid "Class %qs not found in %<throws%>"
-#~ msgstr "No se encuentró la clase %qs en %<throws%>"
-
-#~ 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 "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"
-
-#~ msgid "Class %qs in %<throws%> clause must be a subclass of class %<java.lang.Throwable%>"
-#~ msgstr "La clase %qs en la cláusula %<throws%> debe ser una subclase de la clase %<java.lang.Throwable%>"
-
-#~ msgid "Class %qs must override %qs with a public method in order to implement interface %qs"
-#~ msgstr "La clase %qs debe sobreescribir a %qs con un método público para implementar la interfaz %qs"
-
-#~ msgid "Method %qs was defined with return type %qs in class %qs"
-#~ msgstr "Se definió el método %qs con tipo de devolución %qs en la clase %qs"
-
-#~ msgid "%s methods can't be overridden. Method %qs is %s in class %qs"
-#~ msgstr "Los métodos %s no se pueden sobreescribir. El método %qs es %s en la clase %qs"
-
-#~ msgid "Instance methods can't be overridden by a static method. Method %qs is an instance method in class %qs"
-#~ 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"
-
-#~ msgid "Methods can't be overridden to be more private. Method %qs is not %s in class %qs"
-#~ msgstr "Los métodos no se pueden sobreescribir para hacerlos más privados. El método %qs no es %s en la clase %qs"
-
-#~ 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 "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"
-
-#~ msgid "Interface %qs inherits method %qs from interface %qs. This method is redefined with a different return type in interface %qs"
-#~ 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"
-
-#~ msgid "Class or interface %qs not found in import"
-#~ msgstr "No se encuentra la clase o interfaz %qs en la importación"
-
-#~ msgid "malformed .zip archive in CLASSPATH: %s"
-#~ msgstr "archivo .zip malformado en CLASSPATH: %s"
-
-#~ 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 %qs. Revise la variable de ambiente CLASSPATH y el acceso a los archivos"
-
-#~ msgid "Package %qs not found in import"
-#~ msgstr "No se encuentra el paquete %qs en la importación"
-
-#~ msgid "Type %qs also potentially defined in package %qs"
-#~ msgstr "El tipo %qs también está potencialmente definido en el paquete %qs"
-
-#~ msgid "Nested %s %s is %s; cannot be accessed from here"
-#~ msgstr "El %s %s anidado es %s; no se puede accesar desde aquí"
-
-#~ msgid "Can't access %s %qs. Only public classes and interfaces in other packages can be accessed"
-#~ msgstr "No se puede accesar %s %qs. Sólo se pueden accesar las clases públicas y las interfaces en otros paquetes"
-
-#~ msgid "Only %<final%> is allowed as a local variables modifier"
-#~ msgstr "Sólo se permite %<final%> como un modificador de variables local"
-
-#~ msgid "No constructor matching %qs found in class %qs"
-#~ msgstr "No se encontró un constructor que coincida con %qs en la clase %qs"
-
-#~ msgid "Can't reference %qs before the superclass constructor has been called"
-#~ msgstr "No se puede referenciar a %qs antes que se llame el constructor de la superclase"
-
-#~ msgid "Local variable %qs can't be accessed from within the inner class %qs unless it is declared final"
-#~ msgstr "No se puede accesar la variable local %qs desde la clase interna %qs a menos que se declare final"
-
-#~ msgid "Undefined variable %qs"
-#~ msgstr "No se definió la variable %qs"
-
-#~ msgid "Can't make a static reference to nonstatic variable %qs in class %qs"
-#~ msgstr "No se puede hacer una referencia estática a la variable %qs que no es estática en la clase %qs"
-
-#~ msgid "No enclosing instance for inner class %qs is in scope%s"
-#~ msgstr "No se encontró una instancia terminal para la clase interna %qs que está en ámbito%s"
-
-#~ msgid "Keyword %<this%> used outside allowed context"
-#~ msgstr "Se usó la palabra clave %<this%> fuera del contexto permitido"
-
-#~ msgid "Can't reference %<this%> before the superclass constructor has been called"
-#~ msgstr "No se puede referenciar %<this%> antes de que se llame al constructor de la superclase"
-
-#~ msgid "Can't use variable %<%s.this%>: type %qs isn't an outer type of type %qs"
-#~ msgstr "No se puede usar la variable %<%s.this%>: el tipo %qs no es un tipo externo del tipo %qs"
-
-#~ msgid "Keyword %<super%> used outside allowed context"
-#~ msgstr "Se usó la palabra clave %<super%> fuera del contexto permitido"
-
-#~ msgid "Undefined variable or class name: %qs"
-#~ msgstr "Variable o nombre de clase sin definir: %qs"
-
-#~ msgid "Can't use type %qs as a qualifier"
-#~ msgstr "No se puede usar %qs como un calificador"
-
-#~ msgid "Attempt to reference field %qs in %<%s %s%>"
-#~ msgstr "Se intentó referenciar el campo %qs en %<%s %s%>"
-
-#~ msgid "No variable %qs defined in type %qs"
-#~ msgstr "No se definió la variable %qs en el tipo %qs"
-
-#~ msgid "Attempt to reference field %<new%> in a %qs"
-#~ msgstr "Se intentó referenciar el campo %<new%> en un %qs"
-
-#~ msgid "The class %qs has been deprecated"
-#~ msgstr "La clase %qs es obsoleta"
-
-#~ msgid "The %s %qs in class %qs has been deprecated"
-#~ msgstr "El %s %qs en la clase %qs es obsoleto"
-
-#~ msgid "Can't invoke a method on primitive type %qs"
-#~ msgstr "No se puede invocar un método en el tipo primitivo %qs"
-
-#~ msgid "Can't make static reference to method %qs in interface %qs"
-#~ msgstr "No se puede hacer una referencia estática al método %qs en la interfaz %qs"
-
-#~ msgid "Can't make static reference to method %<%s %s%> in class %qs"
-#~ msgstr "No se puede hacer una referencia al método %<%s %s%> en la clase %qs"
-
-#~ msgid "Can't invoke super constructor on java.lang.Object"
-#~ msgstr "No se puede invocar al super constructor en java.lang.Object"
-
-#~ msgid "Class %qs not found in type declaration"
-#~ msgstr "No se encontró la clase %qs en la declaración de tipo"
-
-#~ msgid "Class %qs is an abstract class. It can't be instantiated"
-#~ msgstr "La clase %qs es una clase abstracta. No se puede instanciar"
-
-#~ msgid "No method named %qs in scope"
-#~ msgstr "No hay un método llamado %qs en el ámbito"
-
-#~ msgid "Can't access %s %s %<%s.%s%> from %qs"
-#~ msgstr "No se puede accesar %s %s %<%s.%s%> desde %qs"
-
-#~ msgid "Can't find %s %<%s(%s)%> in type %qs%s"
-#~ msgstr "No se puede encontrar %s %<%s(%s)%> en el tipo %qs%s"
-
-#~ msgid "Incompatible type for case. Can't convert %qs to %<int%>"
-#~ msgstr "Tipo incompatible para el case. No se puede convertir %qs a %<int%>"
-
-#~ msgid "Incompatible type for %<+=%>. Can't convert %qs to %<java.lang.String%>"
-#~ msgstr "Tipo incompatible para %<+=%>. No se puede convertir %qs a %<java.lang.String%>"
-
-#~ msgid "missing static field %qs"
-#~ msgstr "falta el campo static %qs"
-
-#~ msgid "not a static field %qs"
-#~ msgstr "%qs no es un campo static"
-
-#~ msgid "Can't reference %<this%> or %<super%> before the superclass constructor has been called"
-#~ msgstr "No se puede referenciar %<this%> o %<super%> antes que se llame al constructor de la superclase"
-
-#~ msgid "No case for %s"
-#~ msgstr "No hay case para %s"
-
-#~ msgid "Incompatible type for %s. Can't convert %qs to %qs"
-#~ msgstr "Tipo incompatible para el argumento %s. No se puede convertir %qs a %qs"
-
-#~ msgid "Incompatible type for %s. Explicit cast needed to convert %qs to %qs"
-#~ msgstr "Tipo incompatible para %s. Se necesita una conversión explícita para convertir %qs a %qs"
-
-#~ msgid "Constant expression %qs too wide for narrowing primitive conversion to %qs"
-#~ msgstr "La expresión constante %qs es demasiado ancha para la conversión primitiva que estrecha a %qs"
-
-#~ msgid "Evaluating this expression will result in an arithmetic exception being thrown"
-#~ msgstr "La evaluación de esta expresión resultará en que se arroje una excepción aritmética"
-
-#~ msgid "Incompatible type for %qs. Explicit cast needed to convert shift distance from %qs to integral"
-#~ msgstr "Tipo incompatible para %qs. Se requiere una conversión explícita para convertir la distancia de desplazamiento de %qs a integral"
-
-#~ msgid "Incompatible type for %qs. Can't convert shift distance from %qs to integral"
-#~ msgstr "Tipo incompatible para %qs. No se puede convertir la distancia de desplazamiento de %qs a integral"
-
-#~ msgid "Invalid argument %qs for %<instanceof%>"
-#~ msgstr "Argumento %qs inválido para %<instanceof%>"
-
-#~ msgid "Impossible for %qs to be instance of %qs"
-#~ msgstr "Es imposible para %qs que sea instancia de %qs"
-
-#~ msgid "Incompatible type for %qs. Can't convert %qs to %qs"
-#~ msgstr "Tipo incompatible para %qs. No se puede convertir %qs a %qs"
-
-#~ msgid "Invalid argument type %qs to %qs"
-#~ msgstr "Tipo de argumento %qs a %qs inválido"
-
-#~ msgid "Invalid cast from %qs to %qs"
-#~ msgstr "Conversión inválida de %qs a %qs"
-
-#~ msgid "%<[]%> can only be applied to arrays. It can't be applied to %qs"
-#~ msgstr "%<[]%> sólo se puede aplicar a matrices. No se puede aplicar a %qs"
-
-#~ msgid "Incompatible type for %<[]%>. Explicit cast needed to convert %qs to %<int%>"
-#~ msgstr "Tipo incompatible para %<[]%>. Se necesita una conversión explícita para convertir %qs a %<int%>"
-
-#~ msgid "Incompatible type for %<[]%>. Can't convert %qs to %<int%>"
-#~ msgstr "Tipo incompatible para %<[]%>. No se puede convertir %qs a %<int%>"
-
-#~ msgid "Incompatible type for dimension in array creation expression. %s convert %qs to %<int%>"
-#~ msgstr "Tipo incompatible para la dimensión en la expresión de creación de matriz. %s convierte %qs a %<int%>"
-
-#~ msgid "Incompatible type for array. %s convert %qs to %qs"
-#~ msgstr "Tipo incompatible para matriz. %s convierte %qs a %qs"
-
-#~ msgid "%<return%> inside instance initializer"
-#~ msgstr "%<return%> dentro de un inicializador de instancia"
-
-#~ msgid "%<return%> inside static initializer"
-#~ msgstr "%<return%> dentro de un inicializador estático"
-
-#~ msgid "%<return%> with%s value from %<%s %s%>"
-#~ msgstr "%<return%> con%s valor de %<%s %s%>"
-
-#~ msgid "%<return%> with value from constructor %qs"
-#~ msgstr "%<return%> con valor del constructor %qs"
-
-#~ msgid "Incompatible type for %<if%>. Can't convert %qs to %<boolean%>"
-#~ msgstr "Tipo incompatible para %<if%>. No se puede convertir %qs a %<boolean%>"
-
-#~ msgid "Declaration of %qs shadows a previous label declaration"
-#~ msgstr "La declaración de %qs oscurece a una declaración de etiqueta previa"
-
-#~ msgid "This is the location of the previous declaration of label %qs"
-#~ msgstr "Esta es la ubicación de la declaración previa de la etiqueta %qs"
-
-#~ msgid "No label definition found for %qs"
-#~ msgstr "No se encontró una definición de etiqueta para %qs"
-
-#~ msgid "%<continue%> must be in loop"
-#~ msgstr "%<continue%> debe estar dentro de un ciclo"
-
-#~ msgid "continue label %qs does not name a loop"
-#~ msgstr "la etiqueta continue %qs no nombra un ciclo"
-
-#~ msgid "%<break%> must be in loop or switch"
-#~ msgstr "%<break%> debe estar dentro de un ciclo o switch"
-
-#~ msgid "Incompatible type for loop conditional. Can't convert %qs to %<boolean%>"
-#~ msgstr "Tipo incompatible para condicional de ciclo. No se puede convertir %qs a %<boolean%>"
-
-#~ msgid "Incompatible type for %<switch%>. Can't convert %qs to %<int%>"
-#~ msgstr "Tipo incompatible para %<switch%>. No se puede convertir %qs a %<int%>"
-
-#~ msgid "duplicate case label: %<"
-#~ msgstr "etiqueta de case duplicada: %<"
-
-#~ msgid "%>"
-#~ msgstr "%>"
-
-#~ msgid "original label is here"
-#~ msgstr "la etiqueta original está aquí"
-
-#~ msgid "Can't catch class %qs. Catch clause parameter type must be a subclass of class %<java.lang.Throwable%>"
-#~ 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%>"
-
-#~ msgid "%<catch%> not reached because of the catch clause at line %d"
-#~ msgstr "No se alcanzó %<catch%> por la cláusula catch en la línea %d"
-
-#~ msgid "Incompatible type for %<synchronized%>. Can't convert %qs to %<java.lang.Object%>"
-#~ msgstr "Tipo incompatible para %<synchronized%>. No se puede convertir %qs a %<java.lang.Object%>"
-
-#~ msgid "Can't throw %qs; it must be a subclass of class %<java.lang.Throwable%>"
-#~ msgstr "No se puede arrojar %qs; debe ser una subclase de la clase %<java.lang.Throwable%>"
-
-#~ msgid "Checked exception %qs can't be thrown in instance initializer (not all declared constructor are declaring it in their %<throws%> clause)"
-#~ 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%>)"
-
-#~ msgid "Checked exception %qs can't be caught by any of the catch clause(s) of the surrounding %<try%> block"
-#~ 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"
-
-#~ msgid "Checked exception %qs can't be thrown in initializer"
-#~ msgstr "La excepción revisada %qs no se puede arrojar en el inicializador"
-
-#~ msgid "Checked exception %qs isn't thrown from a %<try%> block"
-#~ msgstr "La excepción revisada %qs no se arroja desde un bloque %<try%>"
-
-#~ msgid "Checked exception %qs doesn't match any of current method's %<throws%> declaration(s)"
-#~ msgstr "La excepción revisada %qs no coincide con ninguno de los métodos actuales de la(s) declaración(es) %<throws%>"
-
-#~ msgid "Exception %qs can't be thrown in initializer"
-#~ msgstr "La excepción %qs no se puede arrojar en el inicializador"
-
-#~ msgid "Exception %qs must be caught, or it must be declared in the %<throws%> clause of %qs"
-#~ msgstr "La excepción %qs se debe capturar, o se debe declarar en la cláusula %<throws%> de %qs"
-
-#~ msgid "Incompatible type for %<?:%>. Can't convert %qs to %<boolean%>"
-#~ msgstr "Tipo incompatible para %<?:%>. No se puede convertir %qs a %<boolean%>"
-
-#~ msgid "Incompatible type for %<?:%>. Can't convert %qs to %qs"
-#~ msgstr "Tipo incompatible para %<?:%>. No se puede convertir %qs a %qs"
-
-#~ msgid "Discouraged redundant use of %qs modifier in declaration of %s"
-#~ msgstr "Uso redundante no recomendado del modificador %qs en la declaración de %s"
-
-#~ msgid "Discouraged redundant use of %qs modifier in declaration of %s %qs"
-#~ msgstr "Uso redundante no recomendado del modificador %qs en la declaración de %s %qs"
-
#~ msgid "Bad namelist IO basetype (%d)"
#~ msgstr "Lista de nombres de tipo base ES errónea (%d)"
@@ -30963,9 +30741,6 @@ msgstr "se ignora el atributo %qs"
#~ msgid "too many decimal points in number"
#~ msgstr "demasiados puntos decimales en el número"
-#~ msgid "invalid digit \"%c\" in octal constant"
-#~ msgstr "dígito \"%c\" inválido en la constante octal"
-
#~ msgid "use of C99 hexadecimal floating constant"
#~ msgstr "uso de una constante de coma flotante hexadecimal C99"
@@ -32090,9 +31865,6 @@ msgstr "se ignora el atributo %qs"
#~ msgid "\\x used at %0 with no following hex digits"
#~ msgstr "se usó \\x en %0 sin dígitos hexadecimales a continuación"
-#~ msgid "Hex escape at %0 out of range"
-#~ msgstr "Secuencia de escape hexadecimal en %0 fuera de rango"
-
#~ msgid "Escape sequence at %0 out of range for character"
#~ msgstr "Secuencia de escape en %0 fuera de rango para el carácter"
@@ -32535,6 +32307,9 @@ msgstr "se ignora el atributo %qs"
#~ msgid "Intrinsic `%A' is passed as actual argument at %0 but not explicitly declared INTRINSIC"
#~ msgstr "Se pasa el intrínseco `%A' como un argumento actual en %0 pero no está declarado explícitamente INTRINSIC"
+#~ msgid "External procedure `%A' is passed as actual argument at %0 but not explicitly declared EXTERNAL"
+#~ msgstr "Se pasa el procedimiento externo como un argumento actual en %0 pero no está declarado explícitamente EXTERNAL"
+
#~ msgid "Character `%A' (for example) is upper-case in symbol name at %0"
#~ msgstr "El carácter `%A' (por ejemplo) está en mayúsculas en el nombre de símbolo en %0"
@@ -34152,9 +33927,6 @@ msgstr "se ignora el atributo %qs"
#~ msgid "ISO C++ forbids label declarations"
#~ msgstr "ISO C++ prohíbe declaraciones etiquetadas"
-#~ msgid "label must be followed by statement"
-#~ msgstr "la etiqueta debe ser seguida de una declaración"
-
#~ msgid "must have at least one catch per try block"
#~ msgstr "se debe tener por lo menos un catch por cada bloque try"
@@ -35432,9 +35204,6 @@ msgstr "se ignora el atributo %qs"
#~ msgid "this is the first entry for that value"
#~ msgstr "esta es la primera entrada para ese valor"
-#~ msgid "CASE value out of range"
-#~ msgstr "el valor de CASE está fuera de rango"
-
#~ msgid "empty range"
#~ msgstr "rango vacío"
@@ -36399,9 +36168,6 @@ msgstr "se ignora el atributo %qs"
#~ msgid "syntax error - missing mode"
#~ msgstr "error sintáctico - modo faltante"
-#~ msgid "syntax error - expected a module or end of file"
-#~ msgstr "error sintáctico - se esperaba un módulo o el final del fichero"
-
#~ msgid " `%s', which depends on ..."
#~ msgstr " `%s', el cual depende de ..."
@@ -36934,9 +36700,6 @@ msgstr "se ignora el atributo %qs"
#~ msgid "Invalid hexadecimal digit(s) found in string of digits at %0"
#~ msgstr "Se encontró(aron) (un) dígito(s) hexadecimal(es) inválidos en la cadena de dígitos en %0"
-#~ msgid "Invalid hexadecimal constant at %0"
-#~ msgstr "Constante hexadecimal inválida en %0"
-
#~ msgid "Invalid octal digit(s) found in string of digits at %0"
#~ msgstr "Se encontró(aron) (un) dígito(s) octal(es) inválidos en la cadena de dígitos en %0"
diff --git a/gcc/po/sv.po b/gcc/po/sv.po
index 63b286db491..3ca1a49b364 100644
--- a/gcc/po/sv.po
+++ b/gcc/po/sv.po
@@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: gcc 4.1.0\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
"POT-Creation-Date: 2006-02-28 00:11-0800\n"
-"PO-Revision-Date: 2006-03-11 11:59+0100\n"
+"PO-Revision-Date: 2006-04-18 11:42+0200\n"
"Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"MIME-Version: 1.0\n"
@@ -475,9 +475,8 @@ msgid "function not considered for inlining"
msgstr "funktionen inte beaktad för inline:ing"
#: cgraph.c:307 cgraphunit.c:597 ipa-inline.c:289
-#, fuzzy
msgid "function not inlinable"
-msgstr "funktion \"%s\" kan inte deklareras som \"mutable\""
+msgstr "funktionen kan inte inline:as"
#: collect2.c:373 gcc.c:6765
#, c-format
@@ -520,9 +519,9 @@ msgid "%d frame table(s) found\n"
msgstr "%d ramtabell(er) hittade\n"
#: collect2.c:1487
-#, fuzzy, c-format
+#, c-format
msgid "can't get program status"
-msgstr "%s: %s: kan inte få status: %s\n"
+msgstr "kan inte ta programstatus"
#: collect2.c:1537
#, c-format
@@ -530,7 +529,7 @@ msgid "[cannot find %s]"
msgstr "[kan inte hitta %s]"
#: collect2.c:1552
-#, fuzzy, c-format
+#, c-format
msgid "cannot find '%s'"
msgstr "kan inte hitta \"%s\""
@@ -574,7 +573,7 @@ msgid "fini function found in object %s"
msgstr "fini-funktion funnen i objekt %s"
#: collect2.c:2221
-#, fuzzy, c-format
+#, c-format
msgid "can't open ldd output"
msgstr "kan inte öppna ldd-utdata"
@@ -628,9 +627,9 @@ msgid "%s:%d: confused by earlier errors, bailing out\n"
msgstr "%s:%d: förvirrar av tidigare fel, hoppar ut\n"
#: diagnostic.c:246
-#, fuzzy, c-format
+#, c-format
msgid "compilation terminated due to -Wfatal-errors.\n"
-msgstr "kompilering avslutad.\n"
+msgstr "kompilering avslutad på grund av -Wfatal-errors.\n"
#: diagnostic.c:255
#, c-format
@@ -662,9 +661,8 @@ msgid "could not split insn"
msgstr "gick inte att dela instruktion"
#: final.c:2828
-#, fuzzy
msgid "invalid 'asm': "
-msgstr "ogiltig \"asm\": %s"
+msgstr "ogiltig \"asm\": "
#: final.c:3011
#, c-format
@@ -677,9 +675,9 @@ msgid "unterminated assembly dialect alternative"
msgstr "oavslutat assemblerdialektalternativ"
#: final.c:3087
-#, fuzzy, c-format
+#, c-format
msgid "operand number missing after %%-letter"
-msgstr "Nummer saknas efter %s"
+msgstr "operandnummer saknas efter %%-tecken"
#: final.c:3090 final.c:3131
#, c-format
@@ -743,9 +741,9 @@ msgid "specs %%include syntax malformed after %ld characters"
msgstr "specifikationers %%include-syntax felaktig efter %ld tecken"
#: gcc.c:2062
-#, fuzzy, c-format
+#, c-format
msgid "could not find specs file %s\n"
-msgstr "Kunde inte öppna källkodsfil %s.\n"
+msgstr "kunde inte hitta specs-filen %s\n"
#: gcc.c:2079 gcc.c:2087 gcc.c:2096 gcc.c:2105
#, c-format
@@ -815,9 +813,8 @@ msgid "failed to get exit status"
msgstr "misslyckades att få slutstatus"
#: gcc.c:2854
-#, fuzzy
msgid "failed to get process times"
-msgstr "kunde inte hitta klassen \"%s\""
+msgstr "kunde inte ta processtider"
#: gcc.c:2877
#, c-format
@@ -901,9 +898,8 @@ msgstr ""
" multipla biblioteks sökkataloger\n"
#: gcc.c:3060
-#, 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"
+msgstr " -print-multi-os-directory Visa den relativa sökvägen til OS-bibliotek\n"
#: gcc.c:3061
msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n"
@@ -918,23 +914,20 @@ msgid " -Wl,<options> Pass comma-separated <options> on to the linke
msgstr " -Wl,<flaggor> Skicka kommaseparerade <flaggor> till länkaren\n"
#: gcc.c:3064
-#, fuzzy
msgid " -Xassembler <arg> Pass <arg> on to the assembler\n"
-msgstr " -Xlinker <arg> Skicka <arg> vidare till länkaren\n"
+msgstr " -Xassembler <arg> Skicka <arg> vidare till assemblern\n"
#: gcc.c:3065
-#, fuzzy
msgid " -Xpreprocessor <arg> Pass <arg> on to the preprocessor\n"
-msgstr " -Xlinker <arg> Skicka <arg> vidare till länkaren\n"
+msgstr " -Xpreprocessor <arg> Skicka <arg> vidare till preprocessorn\n"
#: gcc.c:3066
msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
msgstr " -Xlinker <arg> Skicka <arg> vidare till länkaren\n"
#: gcc.c:3067
-#, fuzzy
msgid " -combine Pass multiple source files to compiler at once\n"
-msgstr " -quiet Visa inte kompilerade funktioner eller tiden som förbrukats\n"
+msgstr " -combine Skicka flera källkodsfiler till kompilatorn på en gång\n"
#: gcc.c:3068
msgid " -save-temps Do not delete intermediate files\n"
@@ -949,9 +942,8 @@ msgid " -time Time the execution of each subprocess\n"
msgstr " -time Mät tiden det tar att exekvera varje barnprocess\n"
#: gcc.c:3071
-#, 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"
+msgstr " -specs=<fil> Ersätt inbyggda specs med innehållet i <fil>\n"
#: gcc.c:3072
msgid " -std=<standard> Assume that the input sources are for <standard>\n"
@@ -1004,7 +996,6 @@ msgid " -o <file> Place the output into <file>\n"
msgstr " -o <fil> Placera utdata i <fil>\n"
#: gcc.c:3085
-#, fuzzy
msgid ""
" -x <language> Specify the language of the following input files\n"
" Permissible languages include: c c++ assembler none\n"
@@ -1012,9 +1003,9 @@ msgid ""
" guessing the language based on the file's extension\n"
msgstr ""
" -x <språk> Specificera språk för de följande källkodsfilerna\n"
-" Tillåtna språk är bland annat: c c++ assembler none\n"
-" 'none' innebär att man använder standardmetoden,\n"
-" att man gissar språk beroende på filändelse\n"
+" Bland tillåtna språk finns: c c++ assembler none\n"
+" \"none\" innebär att man använder standardmetoden\n"
+" att gissa språk beroende på filens ändelse\n"
#: gcc.c:3092
#, c-format
@@ -1063,32 +1054,32 @@ msgstr ""
"\n"
#: gcc.c:3526
-#, fuzzy, c-format
+#, c-format
msgid "argument to '-Xlinker' is missing"
msgstr "argument till \"-Xlinker\" saknas"
#: gcc.c:3534
-#, fuzzy, c-format
+#, c-format
msgid "argument to '-Xpreprocessor' is missing"
-msgstr "argument till \"-specs\" saknas"
+msgstr "argument till \"-Xpreprocessor\" saknas"
#: gcc.c:3541
-#, fuzzy, c-format
+#, c-format
msgid "argument to '-Xassembler' is missing"
-msgstr "argument till \"-Xlinker\" saknas"
+msgstr "argument till \"-Xassembler\" saknas"
#: gcc.c:3548
-#, fuzzy, c-format
+#, c-format
msgid "argument to '-l' is missing"
-msgstr "argument till \"-x\" saknas"
+msgstr "argument till \"-l\" saknas"
#: gcc.c:3569
-#, fuzzy, c-format
+#, c-format
msgid "argument to '-specs' is missing"
msgstr "argument till \"-specs\" saknas"
#: gcc.c:3583
-#, fuzzy, c-format
+#, c-format
msgid "argument to '-specs=' is missing"
msgstr "argument till \"-specs=\" saknas"
@@ -1098,17 +1089,17 @@ msgid "'-%c' must come at the start of the command line"
msgstr "\"-%c\" måste komma vid början av kommandoraden"
#: gcc.c:3630
-#, fuzzy, c-format
+#, c-format
msgid "argument to '-B' is missing"
msgstr "argument till \"-B\" saknas"
#: gcc.c:4016
-#, fuzzy, c-format
+#, c-format
msgid "argument to '-x' is missing"
msgstr "argument till \"-x\" saknas"
#: gcc.c:4044
-#, fuzzy, c-format
+#, c-format
msgid "argument to '-%s' is missing"
msgstr "argument till \"-%s\" saknas"
@@ -1128,19 +1119,19 @@ msgid "%s\n"
msgstr "%s\n"
#: gcc.c:4751
-#, fuzzy, c-format
+#, c-format
msgid "spec '%s' has invalid '%%0%c'"
-msgstr "bitfält \"%s\" har en icke godkänd typ"
+msgstr "spec \"%s\" har ogiltig \"%%0%c\""
#: gcc.c:4948
-#, fuzzy, c-format
+#, c-format
msgid "spec '%s' has invalid '%%W%c"
-msgstr "bitfält \"%s\" har en icke godkänd typ"
+msgstr "spec \"%s\" har ogiltig \"%%W%c\""
#: gcc.c:4979
-#, fuzzy, c-format
+#, c-format
msgid "spec '%s' has invalid '%%x%c'"
-msgstr "bitfält \"%s\" har en icke godkänd typ"
+msgstr "spec \"%s\" har ogiltig \"%%x%c\""
#: gcc.c:5201
#, c-format
@@ -1148,14 +1139,14 @@ msgid "Processing spec %c%s%c, which is '%s'\n"
msgstr "Bearbetar specifikation %c%s%c, som är \"%s\"\n"
#: gcc.c:5343
-#, fuzzy, c-format
+#, c-format
msgid "unknown spec function '%s'"
-msgstr "okänt maskinläge `%s'"
+msgstr "okänd spec-funktion \"%s\""
#: gcc.c:5362
-#, fuzzy, c-format
+#, c-format
msgid "error in args to spec function '%s'"
-msgstr "för många argument till funktionen \"%s\""
+msgstr "fel i argument till spec-funktionen \"%s\""
#: gcc.c:5410
#, c-format
@@ -1164,9 +1155,9 @@ msgstr "felaktigt specifikationsfunktionsnamn"
#. )
#: gcc.c:5413
-#, fuzzy, c-format
+#, c-format
msgid "no arguments for spec function"
-msgstr "för få argument till funktion"
+msgstr "inga argument till spec-funktion"
#: gcc.c:5432
#, c-format
@@ -1208,9 +1199,9 @@ msgstr ""
"Instruktioner för bugrapportering, se:\n"
#: gcc.c:6381
-#, fuzzy, c-format
+#, c-format
msgid "Target: %s\n"
-msgstr "bibliotek: %s\n"
+msgstr "Mål: %s\n"
#: gcc.c:6382
#, c-format
@@ -1233,9 +1224,9 @@ msgid "gcc driver version %s executing gcc version %s\n"
msgstr "gcc-driver version %s kör gcc version %s\n"
#: gcc.c:6417
-#, fuzzy, c-format
+#, c-format
msgid "no input files"
-msgstr "Inga indatafiler"
+msgstr "inga indatafiler"
#: gcc.c:6466
#, c-format
@@ -1243,14 +1234,14 @@ msgid "cannot specify -o with -c or -S with multiple files"
msgstr "det går inte att ange -o med -c eller -S med flera filer"
#: gcc.c:6500
-#, fuzzy, c-format
+#, c-format
msgid "spec '%s' is invalid"
-msgstr "typedef \"%s\" är initierad"
+msgstr "spec \"%s\" är ogiltig"
#: gcc.c:6965
-#, fuzzy, c-format
+#, c-format
msgid "multilib spec '%s' is invalid"
-msgstr "typedef \"%s\" är initierad"
+msgstr "multilib-spec \"%s\" är ogiltig"
#: gcc.c:7157
#, c-format
@@ -1258,9 +1249,9 @@ msgid "multilib exclusions '%s' is invalid"
msgstr "multilib_exclusions \"%s\" är ogiltig"
#: gcc.c:7215 gcc.c:7356
-#, fuzzy, c-format
+#, c-format
msgid "multilib select '%s' is invalid"
-msgstr "parameter \"%s\" är initierad"
+msgstr "multilib-val \"%s\" är ogiltigt"
#: gcc.c:7394
#, c-format
@@ -1268,19 +1259,19 @@ msgid "multilib exclusion '%s' is invalid"
msgstr "multilib_exclusions \"%s\" är ogiltig"
#: gcc.c:7653 gcc.c:7658
-#, fuzzy, c-format
+#, c-format
msgid "invalid version number `%s'"
-msgstr "Ogiltig flagga \"%s\""
+msgstr "ogiltigt versionsnummer \"%s\""
#: gcc.c:7701
-#, fuzzy, c-format
+#, c-format
msgid "too few arguments to %%:version-compare"
-msgstr "för få argument till funktion"
+msgstr "för få argument till %%:version-compare"
#: gcc.c:7707
-#, fuzzy, c-format
+#, c-format
msgid "too many arguments to %%:version-compare"
-msgstr "för många argument till funktion"
+msgstr "för många argument till %%:version-compare"
#: gcc.c:7748
#, c-format
@@ -1297,21 +1288,23 @@ msgstr ""
"\n"
#: gcov.c:389
-#, fuzzy, c-format
+#, c-format
msgid ""
"Print code coverage information.\n"
"\n"
-msgstr "inte tillräcklig typinformation"
+msgstr ""
+"Skriv ut kodtäckningsinformation.\n"
+"\n"
#: gcov.c:390
-#, fuzzy, c-format
+#, c-format
msgid " -h, --help Print this help, then exit\n"
-msgstr " --help Visa den här informatationen\n"
+msgstr " -h, --help Visa denna hjälp, avsluta sedan\n"
#: gcov.c:391
-#, fuzzy, c-format
+#, c-format
msgid " -v, --version Print version number, then exit\n"
-msgstr " -V <version> Kör gcc version <version>, om den är installerad\n"
+msgstr " -v, --version Skriv ut versionsnummer, avsluta sedan\n"
#: gcov.c:392
#, c-format
@@ -1333,9 +1326,9 @@ msgstr ""
" för procentsatser\n"
#: gcov.c:396
-#, fuzzy, c-format
+#, c-format
msgid " -n, --no-output Do not create an output file\n"
-msgstr " -save-temps Radera inte temporära filer\n"
+msgstr " -n, --no-output Skapa ingen utdatafil\n"
#: gcov.c:397
#, c-format
@@ -1369,14 +1362,16 @@ msgid " -u, --unconditional-branches Show unconditional branch counts too\n"
msgstr " -u, --unconditional-branches Visa antal ovillkorliga hopp också\n"
#: gcov.c:403
-#, fuzzy, c-format
+#, c-format
msgid ""
"\n"
"For bug reporting instructions, please see:\n"
"%s.\n"
msgstr ""
"\n"
-"Instruktioner för bugrapportering, se:\n"
+"För att rapporrtera fel, se:\n"
+"%s.\n"
+"Fel på översättningen rapporteras till <tp-sv@listor.tp-sv.se>\n"
#: gcov.c:413
#, c-format
@@ -1397,39 +1392,39 @@ msgstr ""
"\n"
#: gcov.c:507
-#, fuzzy, c-format
+#, c-format
msgid "%s:no functions found\n"
-msgstr "hittar ingen cmd_strings"
+msgstr "%s:ingen funktion funnen\n"
#: gcov.c:528 gcov.c:556 fortran/dump-parse-tree.c:68
-#, fuzzy, c-format
+#, c-format
msgid "\n"
-msgstr ":\n"
+msgstr "\n"
#: gcov.c:543
-#, fuzzy, c-format
+#, c-format
msgid "%s:creating '%s'\n"
-msgstr "Skapar %s.\n"
+msgstr "%s:skapar \"%s\"\n"
#: gcov.c:547
-#, fuzzy, c-format
+#, c-format
msgid "%s:error writing output file '%s'\n"
-msgstr "fel vid skrivning till %s"
+msgstr "%s:fel när utdatafilen \"%s\" skrevs\n"
#: gcov.c:552
-#, fuzzy, c-format
+#, c-format
msgid "%s:could not open output file '%s'\n"
-msgstr "Kunde inte öppna utdatafil %s.\n"
+msgstr "%s:kunde inte öppna utdatafilen \"%s\"\n"
#: gcov.c:703
-#, fuzzy, c-format
+#, c-format
msgid "%s:cannot open graph file\n"
-msgstr "%s: kan inte öppna som COFF-fil"
+msgstr "%s: kan inte öppna graffil\n"
#: gcov.c:709
-#, fuzzy, c-format
+#, c-format
msgid "%s:not a gcov graph file\n"
-msgstr "%s: är inte en COFF-fil"
+msgstr "%s:inte en gcov-graffil\n"
#: gcov.c:722
#, c-format
@@ -1447,14 +1442,14 @@ msgid "%s:corrupted\n"
msgstr "%s:trasig\n"
#: gcov.c:966
-#, fuzzy, c-format
+#, c-format
msgid "%s:cannot open data file\n"
-msgstr "%s: kan inte öppna som COFF-fil"
+msgstr "%s:kan inte öppna datafilen\n"
#: gcov.c:971
-#, fuzzy, c-format
+#, c-format
msgid "%s:not a gcov data file\n"
-msgstr "%s: är inte en COFF-fil"
+msgstr "%s:inte en gcov-datafil\n"
#: gcov.c:984
#, c-format
@@ -1467,9 +1462,9 @@ msgid "%s:stamp mismatch with graph file\n"
msgstr "%s:stämpel stämmer inte med graffil\n"
#: gcov.c:1016
-#, fuzzy, c-format
+#, c-format
msgid "%s:unknown function '%u'\n"
-msgstr "I funktion `%s':"
+msgstr "%s:okänd funktion \"%u\"\n"
#: gcov.c:1029
#, c-format
@@ -1502,9 +1497,9 @@ msgid "%s:graph is unsolvable for '%s'\n"
msgstr "%s:graf är olösbar för \"%s\"\n"
#: gcov.c:1373
-#, fuzzy, c-format
+#, c-format
msgid "%s '%s'\n"
-msgstr "%s: %s"
+msgstr "%s: \"%s\"\n"
#: gcov.c:1376
#, c-format
@@ -1512,9 +1507,9 @@ msgid "Lines executed:%s of %d\n"
msgstr "Körda rader:%s av %d\n"
#: gcov.c:1380
-#, fuzzy, c-format
+#, c-format
msgid "No executable lines\n"
-msgstr "Inga körbara källkodsrader i funktion %s\n"
+msgstr "Inga körbara rader\n"
#: gcov.c:1386
#, c-format
@@ -1527,9 +1522,9 @@ msgid "Taken at least once:%s of %d\n"
msgstr "Tagna minst en gång:%s av %d\n"
#: gcov.c:1396
-#, fuzzy, c-format
+#, c-format
msgid "No branches\n"
-msgstr "Inga hopp i fil %s\n"
+msgstr "Inga grenar\n"
#: gcov.c:1398
#, c-format
@@ -1537,24 +1532,24 @@ msgid "Calls executed:%s of %d\n"
msgstr "Gjorda anrop:%s av %d\n"
#: gcov.c:1402
-#, fuzzy, c-format
+#, c-format
msgid "No calls\n"
-msgstr "Inga anrop i fil %s\n"
+msgstr "Inga anrop\n"
#: gcov.c:1543
-#, fuzzy, c-format
+#, c-format
msgid "%s:no lines for '%s'\n"
-msgstr "%s före \"%s\""
+msgstr "%s:inga rader för \"%s\"\n"
#: gcov.c:1738
-#, fuzzy, c-format
+#, c-format
msgid "call %2d returned %s\n"
-msgstr "anrop %d aldrig utfört\n"
+msgstr "anrop %2d returnerade %s\n"
#: gcov.c:1743
-#, fuzzy, c-format
+#, c-format
msgid "call %2d never executed\n"
-msgstr "anrop %d aldrig utfört\n"
+msgstr "anrop %2d aldrig utfört\n"
#: gcov.c:1748
#, c-format
@@ -1562,24 +1557,24 @@ msgid "branch %2d taken %s%s\n"
msgstr "hopp %2d tjort %s%s\n"
#: gcov.c:1752
-#, fuzzy, c-format
+#, c-format
msgid "branch %2d never executed\n"
-msgstr "anrop %d aldrig utfört\n"
+msgstr "gren %2d aldrig utförd\n"
#: gcov.c:1757
-#, fuzzy, c-format
+#, c-format
msgid "unconditional %2d taken %s\n"
-msgstr "okänt registernamn: %s"
+msgstr "ovillkorligt hopp %2d taget %s\n"
#: gcov.c:1760
-#, fuzzy, c-format
+#, c-format
msgid "unconditional %2d never executed\n"
-msgstr "anrop %d aldrig utfört\n"
+msgstr "ovillkorligt hopp %2d aldrig utfört\n"
#: gcov.c:1792
-#, fuzzy, c-format
+#, c-format
msgid "%s:cannot open source file\n"
-msgstr "%s: kan inte öppna som COFF-fil"
+msgstr "%s:kan inte öppna källkodsfil\n"
#: gcov.c:1802
#, c-format
@@ -1593,9 +1588,8 @@ msgstr "GCSE avslagen"
#. Return if there's nothing to do, or it is too expensive.
#: gcse.c:6526
-#, fuzzy
msgid "jump bypassing disabled"
-msgstr "flaggan -g är avslagen."
+msgstr "passage av hopp avslaget"
#. Opening quotation mark.
#: intl.c:58
@@ -1616,9 +1610,8 @@ msgid "--param max-inline-insns-single limit reached"
msgstr "gränsen --param max-inline-insns-single nådd"
#: ipa-inline.c:314
-#, fuzzy
msgid "--param max-inline-insns-auto limit reached"
-msgstr "gränsen --param max-inline-insns-single nådd"
+msgstr "gränsen --param max-inline-insns-auto nådd"
#: ipa-inline.c:340 ipa-inline.c:766
msgid "recursive inlining"
@@ -1637,14 +1630,14 @@ msgid "At top level:"
msgstr "På toppnivå:"
#: langhooks.c:512
-#, fuzzy, c-format
+#, c-format
msgid "In member function %qs:"
-msgstr "I funktion `%s':"
+msgstr "I medlemsfunktion %qs:"
#: langhooks.c:516
-#, fuzzy, c-format
+#, c-format
msgid "In function %qs:"
-msgstr "I funktion `%s':"
+msgstr "I funktion %qs:"
#: loop-iv.c:2709 tree-ssa-loop-niter.c:1026
msgid "assuming that the loop is not infinite"
@@ -1692,9 +1685,9 @@ msgid "The --param option recognizes the following as parameters:\n"
msgstr "Flaggan --param accepterar följande som parametrar:\n"
#: protoize.c:583
-#, fuzzy, c-format
+#, c-format
msgid "%s: error writing file '%s': %s\n"
-msgstr "fel vid skrivning till %s"
+msgstr "%s: fel vid skrivning till fil \"%s\": %s\n"
#: protoize.c:627
#, c-format
@@ -1707,19 +1700,19 @@ msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B <dirname> ] [ filename ... ]'\n"
msgstr "%s: användning '%s [ -VqfnkNlgC ] [ -B <katalognamn> ] [ filnamn ... ]'\n"
#: protoize.c:731
-#, fuzzy, c-format
+#, c-format
msgid "%s: warning: no read access for file '%s'\n"
msgstr "%s: varning: ingen läsrättighet för fil \"%s\"\n"
#: protoize.c:739
-#, fuzzy, c-format
+#, c-format
msgid "%s: warning: no write access for file '%s'\n"
msgstr "%s: varning: ingen skrivrättighet för fil \"%s\"\n"
#: protoize.c:747
-#, fuzzy, c-format
+#, c-format
msgid "%s: warning: no write access for dir containing '%s'\n"
-msgstr "%s: varning: ingen skrivrättighet för fil \"%s\"\n"
+msgstr "%s: varning: ingen skrivrättighet för katalog som innehåller \"%s\"\n"
#. Catch cases like /.. where we try to backup to a
#. point above the absolute root of the logical file
@@ -1744,14 +1737,14 @@ msgstr ""
"%s: ödesdigert fel: fil med extra information trasig vid rad %d\n"
#: protoize.c:1632
-#, fuzzy, c-format
+#, c-format
msgid "%s:%d: declaration of function '%s' takes different forms\n"
-msgstr "tidigare deklaration av \"%s\""
+msgstr "%s:%d: deklarationen av funktionen \"%s\" tar olika former\n"
#: protoize.c:1887
-#, fuzzy, c-format
+#, c-format
msgid "%s: compiling '%s'\n"
-msgstr "%s: kompilerar `%s'\n"
+msgstr "%s: kompilerar \"%s\"\n"
#: protoize.c:1910
#, c-format
@@ -1769,49 +1762,49 @@ msgid "%s: %s exited with status %d\n"
msgstr "%s: %s avslutade med status %d\n"
#: protoize.c:1972
-#, fuzzy, c-format
+#, c-format
msgid "%s: warning: missing SYSCALLS file '%s'\n"
-msgstr "%s: varning: ingen skrivrättighet för fil \"%s\"\n"
+msgstr "%s: varning: ingen SYSCALLS-fil \"%s\"\n"
#: protoize.c:1981 protoize.c:2010
-#, fuzzy, c-format
+#, c-format
msgid "%s: can't read aux info file '%s': %s\n"
-msgstr "%s: kan inte radera fil \"%s\": %s\n"
+msgstr "%s: kan inte läsa fil med övrig info \"%s\": %s\n"
#: protoize.c:2026 protoize.c:2054
-#, fuzzy, c-format
+#, c-format
msgid "%s: can't get status of aux info file '%s': %s\n"
-msgstr "%s: kan inte radera fil \"%s\": %s\n"
+msgstr "%s: kan inte ta status på fil med övrig info \"%s\": %s\n"
#: protoize.c:2082
-#, fuzzy, c-format
+#, c-format
msgid "%s: can't open aux info file '%s' for reading: %s\n"
-msgstr "%s: kan inte öppna fil `%s' för läsning: %s\n"
+msgstr "%s: kan inte öppna fil med övrig info \"%s\" för läsning: %s\n"
#: protoize.c:2100
-#, fuzzy, c-format
+#, c-format
msgid "%s: error reading aux info file '%s': %s\n"
-msgstr "%s: varning: ingen läsrättighet för fil \"%s\"\n"
+msgstr "%s: fel när fil med övrig info lästes \"%s\": %s\n"
#: protoize.c:2113
-#, fuzzy, c-format
+#, c-format
msgid "%s: error closing aux info file '%s': %s\n"
-msgstr "%s: kan inte länka fil \"%s\" till \"%s\": %s\n"
+msgstr "%s: fel när fil med övrig info stängdes \"%s\": %s\n"
#: protoize.c:2129
-#, fuzzy, c-format
+#, c-format
msgid "%s: can't delete aux info file '%s': %s\n"
-msgstr "%s: kan inte radera fil \"%s\": %s\n"
+msgstr "%s: kan inte radera fil med övrig info \"%s\": %s\n"
#: protoize.c:2211 protoize.c:4180
-#, fuzzy, c-format
+#, c-format
msgid "%s: can't delete file '%s': %s\n"
msgstr "%s: kan inte radera fil \"%s\": %s\n"
#: protoize.c:2289
-#, fuzzy, c-format
+#, c-format
msgid "%s: warning: can't rename file '%s' to '%s': %s\n"
-msgstr "%s: varning: kan inte döpa om fil \"%s\" till \"%s\": %s\n"
+msgstr "%s: varning: kan inte ändra namn på filen \"%s\" till \"%s\": %s\n"
#: protoize.c:2411
#, c-format
@@ -1829,9 +1822,9 @@ msgid "%s: conflict list for '%s' follows:\n"
msgstr "%s: konfliktlista för \"%s\" följer:\n"
#: protoize.c:2450
-#, fuzzy, c-format
+#, c-format
msgid "%s: warning: using formals list from %s(%d) for function '%s'\n"
-msgstr "%s: varning: ingen läsrättighet för fil \"%s\"\n"
+msgstr "%s: varning: använder formella listor från %s(%d) för funktionen \"%s\"\n"
#: protoize.c:2490
#, c-format
@@ -1839,14 +1832,14 @@ msgid "%s: %d: '%s' used but missing from SYSCALLS\n"
msgstr "%s: %d: \"%s\" anvnänds men saknas i SYSCALLS\n"
#: protoize.c:2496
-#, fuzzy, c-format
+#, c-format
msgid "%s: %d: warning: no extern definition for '%s'\n"
-msgstr "%s: varning: ingen skrivrättighet för fil \"%s\"\n"
+msgstr "%s: %d: varning: ingen externdefinition för \"%s\"\n"
#: protoize.c:2526
-#, fuzzy, c-format
+#, c-format
msgid "%s: warning: no static definition for '%s' in file '%s'\n"
-msgstr "%s: varning: ingen skrivrättighet för fil \"%s\"\n"
+msgstr "%s: varning: ingen statisk definition för \"%s\" i filen \"%s\"\n"
#: protoize.c:2532
#, c-format
@@ -1864,21 +1857,23 @@ msgid "%s: %d: warning: varargs function declaration not converted\n"
msgstr "%s: %d: varning: varargs-funktionsdeklaration konverterades inte\n"
#: protoize.c:2915
-#, fuzzy, c-format
+#, c-format
msgid "%s: declaration of function '%s' not converted\n"
-msgstr "tidigare deklaration av \"%s\""
+msgstr "%s: deklarationen av funktionen \"%s\" inte konverterad\n"
#: protoize.c:3038
-#, fuzzy, c-format
+#, c-format
msgid "%s: warning: too many parameter lists in declaration of '%s'\n"
-msgstr "flera lagringsklasser i deklaration av \"%s\""
+msgstr "%s: varning: för många parameterlistor i deklarationen av \"%s\"\n"
#: protoize.c:3059
-#, fuzzy, c-format
+#, c-format
msgid ""
"\n"
"%s: warning: too few parameter lists in declaration of '%s'\n"
-msgstr "två eller fler datatyper i deklaration av \"%s\""
+msgstr ""
+"\n"
+"%s: varning: för få parameterlistor i deklarationen av \"%s\"\n"
#: protoize.c:3155
#, c-format
@@ -1886,9 +1881,9 @@ msgid "%s: %d: warning: found '%s' but expected '%s'\n"
msgstr "%s: %d: varning: fann \"%s\" men förväntde \"%s\"\n"
#: protoize.c:3330
-#, fuzzy, c-format
+#, c-format
msgid "%s: local declaration for function '%s' not inserted\n"
-msgstr "omdeklaration av \"%s\""
+msgstr "%s: lokal deklaration för funktionen \"%s\" inte infogad\n"
#: protoize.c:3357
#, c-format
@@ -1900,14 +1895,14 @@ msgstr ""
"%s: %d: varning: kan inte lägga till deklaration av \"%s\" i makroanrop\n"
#: protoize.c:3429
-#, fuzzy, c-format
+#, c-format
msgid "%s: global declarations for file '%s' not inserted\n"
-msgstr "omdeklaration av \"%s\""
+msgstr "%s: globala deklarationer för filen \"%s\" inte infogade\n"
#: protoize.c:3518 protoize.c:3548
-#, fuzzy, c-format
+#, c-format
msgid "%s: definition of function '%s' not converted\n"
-msgstr "omdefiniering av \"union %s\""
+msgstr "%s: definitionen av funktionen \"%s\" inte konverterad\n"
#: protoize.c:3537
#, c-format
@@ -1915,9 +1910,9 @@ msgid "%s: %d: warning: definition of %s not converted\n"
msgstr "%s: %d: varning: definition av %s konverterades inte\n"
#: protoize.c:3863
-#, fuzzy, c-format
+#, c-format
msgid "%s: found definition of '%s' at %s(%d)\n"
-msgstr "omdefiniering av \"%s\""
+msgstr "%s: fann defintion av \"%s\" vid %s(%d)\n"
#. If we make it here, then we did not know about this
#. function definition.
@@ -1932,61 +1927,63 @@ msgid "%s: function definition not converted\n"
msgstr "%s: funktionsdefinition inte konverterad\n"
#: protoize.c:3940
-#, fuzzy, c-format
+#, c-format
msgid "%s: '%s' not converted\n"
-msgstr "MCU \"%s\" stöds inte"
+msgstr "%s: \"%s\" inte konverterad\n"
#: protoize.c:3948
-#, fuzzy, c-format
+#, c-format
msgid "%s: would convert file '%s'\n"
-msgstr "%s: kan inte radera fil \"%s\": %s\n"
+msgstr "%s: skulle konvertera filen \"%s\"\n"
#: protoize.c:3951
-#, fuzzy, c-format
+#, c-format
msgid "%s: converting file '%s'\n"
-msgstr "%s: kan inte länka fil \"%s\" till \"%s\": %s\n"
+msgstr "%s: konverterar filen \"%s\"\n"
#: protoize.c:3961
-#, fuzzy, c-format
+#, c-format
msgid "%s: can't get status for file '%s': %s\n"
-msgstr "%s: kan inte radera fil \"%s\": %s\n"
+msgstr "%s: kan inte ta status på filen \"%s\": %s\n"
#: protoize.c:4003
-#, fuzzy, c-format
+#, c-format
msgid "%s: can't open file '%s' for reading: %s\n"
-msgstr "%s: kan inte öppna fil `%s' för läsning: %s\n"
+msgstr "%s: kan inte öppna filen \"%s\" för läsning: %s\n"
#: protoize.c:4018
-#, fuzzy, c-format
+#, c-format
msgid ""
"\n"
"%s: error reading input file '%s': %s\n"
-msgstr "%s: kan inte länka fil \"%s\" till \"%s\": %s\n"
+msgstr ""
+"\n"
+"%s: fel när infilen \"%s\" lästes: %s\n"
#: protoize.c:4052
-#, fuzzy, c-format
+#, c-format
msgid "%s: can't create/open clean file '%s': %s\n"
-msgstr "%s: kan inte radera fil \"%s\": %s\n"
+msgstr "%s: kan inte skapa/öppna en tom fil \"%s\": %s\n"
#: protoize.c:4157
-#, fuzzy, c-format
+#, c-format
msgid "%s: warning: file '%s' already saved in '%s'\n"
-msgstr "%s: varning: ingen läsrättighet för fil \"%s\"\n"
+msgstr "%s: varning: filen \"%s\" redan sparad i \"%s\"\n"
#: protoize.c:4165
-#, fuzzy, c-format
+#, c-format
msgid "%s: can't link file '%s' to '%s': %s\n"
-msgstr "%s: kan inte länka fil \"%s\" till \"%s\": %s\n"
+msgstr "%s: kan inte länka filen \"%s\" till \"%s\": %s\n"
#: protoize.c:4195
-#, fuzzy, c-format
+#, c-format
msgid "%s: can't create/open output file '%s': %s\n"
-msgstr "Kan inte öppna utdatafil \"%s\""
+msgstr "%s: kan inte skapa/öppna utdatafil \"%s\": %s\n"
#: protoize.c:4228
-#, fuzzy, c-format
+#, c-format
msgid "%s: can't change mode of file '%s': %s\n"
-msgstr "%s: kan inte radera fil \"%s\": %s\n"
+msgstr "%s: kan inte ändra rättigheterna på filen \"%s\": %s\n"
#: protoize.c:4404
#, c-format
@@ -1999,9 +1996,8 @@ msgid "%s: input file names must have .c suffixes: %s\n"
msgstr "%s: indatafilnamn måste ha ändelsen .c: %s\n"
#: reload.c:3734
-#, fuzzy
msgid "unable to generate reloads for:"
-msgstr "Välj CPU att generera kod för"
+msgstr "kan inte generera omläsningar för:"
#: reload1.c:1901
msgid "this is the insn:"
@@ -2014,18 +2010,16 @@ msgstr "kunde inte hitta något spillregister"
#. It's the compiler's fault.
#: reload1.c:6737
-#, fuzzy
msgid "VOIDmode on an output"
-msgstr "I/O-fel vid utmatning"
+msgstr "VOIDmode vid utmatning"
#: reload1.c:7710
msgid "Failure trying to reload:"
msgstr ""
#: rtl-error.c:128
-#, fuzzy
msgid "unrecognizable insn:"
-msgstr "ej igenkänd flagga `-%s'"
+msgstr "okänd instruktion:"
#: rtl-error.c:130
msgid "insn does not satisfy its constraints:"
@@ -2080,19 +2074,18 @@ msgid "collect: relinking\n"
msgstr "collect: länkar om\n"
#: toplev.c:583
-#, fuzzy, c-format
+#, c-format
msgid "unrecoverable error"
-msgstr "internt fel"
+msgstr "fel som inte går att återhämta ifrån"
#: toplev.c:1115
-#, fuzzy, c-format
+#, c-format
msgid ""
"%s%s%s version %s (%s)\n"
"%s\tcompiled by GNU C version %s.\n"
msgstr ""
"%s%s%s version %s (%s)\n"
-"%s\tkompilerad av GNU C version %s.\n"
-"%s%s%s version %s (%s) kompilerad av CC.\n"
+"%s\tkompilerad med GNU C version %s.\n"
#: toplev.c:1117
#, c-format
@@ -2113,14 +2106,13 @@ msgid "options enabled: "
msgstr "aktiverade flaggor: "
#: toplev.c:1331
-#, fuzzy, c-format
+#, c-format
msgid "created and used with differing settings of '%s'"
-msgstr "skapad och använd med olika inställningar av \"-m%s\""
+msgstr "skapad och använd med olika inställningar av \"%s\""
#: toplev.c:1333
-#, fuzzy
msgid "out of memory"
-msgstr "inget minne"
+msgstr "slut på minne"
#: toplev.c:1348
msgid "created and used with different settings of -fpic"
@@ -2140,22 +2132,18 @@ msgstr "ursprunligen indirekt funktionsanrop beaktas inte för ineline:ing"
#. End:
#.
#: diagnostic.def:1
-#, fuzzy
msgid "fatal error: "
-msgstr "internt fel: "
+msgstr "ödesdigert fel: "
#: diagnostic.def:2
-#, fuzzy
msgid "internal compiler error: "
-msgstr "internt fel: "
+msgstr "internt kompilatorfel: "
#: diagnostic.def:3
-#, fuzzy
msgid "error: "
-msgstr "internt fel: "
+msgstr "fel: "
#: diagnostic.def:4
-#, fuzzy
msgid "sorry, unimplemented: "
msgstr "ledsen, inte implementerat: "
@@ -2180,14 +2168,12 @@ msgid "The maximum number of fields in a structure variable without direct struc
msgstr ""
#: params.def:57
-#, fuzzy
msgid "The maximum structure size (in bytes) for which GCC will use by-element copies"
-msgstr "Den maximala poststorlek (i byte) vid vilken GCC gör blockkopiering"
+msgstr "Den maximala poststorlek (i byte) vid vilken GCC använder elementvis kopiering"
#: params.def:66
-#, fuzzy
msgid "The maximum number of structure fields for which GCC will use by-element copies"
-msgstr "Den maximala poststorlek (i byte) vid vilken GCC gör blockkopiering"
+msgstr "Den maximala antalet postfält (i byte) vid vilken GCC använder elementvis kopiering"
#: params.def:78
msgid "The threshold ratio between instantiated fields and the total structure size"
@@ -2222,9 +2208,8 @@ msgid "Inline recursively only when the probability of call being executed excee
msgstr ""
#: params.def:139
-#, 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 "Om -fvariable-expansion-in-unroller är på, det maximala antalet gånger som en enskild variable kommer expanderas under slingutrullning"
+msgstr "Om -fvariable-expansion-in-unroller är på, det maximala antalet gånger som en enskild variabel kommer expanderas under slingutrullning"
#: params.def:150
msgid "The maximum number of instructions to consider to fill a delay slot"
@@ -2247,18 +2232,16 @@ msgid "Maximal growth due to inlining of large function (in percent)"
msgstr "Maximal på grund av inline:ing av stora funktioner (i procent)"
#: params.def:184
-#, fuzzy
msgid "The size of translation unit to be considered large"
-msgstr "Storleken på en funktionskropp för att betraktas som stor"
+msgstr "Storleken på en översättningsenhet för att betraktas som stor"
#: params.def:188
msgid "how much can given compilation unit grow because of the inlining (in percent)"
msgstr "Hur mycket kan en given kompileringsenhet växa på grund av inline:ingen (i procent)"
#: params.def:192
-#, fuzzy
msgid "expense of call operation relative to ordinary arithmetic operations"
-msgstr "Kostnad för anropsoperationer jämfört med vanliga aritmetiska operationer"
+msgstr "kostnad för anropsoperation jämfört med vanliga aritmetiska operationer"
#: params.def:199
msgid "The maximum amount of memory to be allocated by GCSE"
@@ -2269,15 +2252,13 @@ msgid "The maximum number of passes to make when doing GCSE"
msgstr "Det maximala antalet pass som görs under GCSE"
#: params.def:214
-#, fuzzy
msgid "The threshold ratio for performing partial redundancy elimination after reload"
-msgstr "Tröskelförhållandet för att utföra partiell redundanselimination efter omläsning."
+msgstr "Tröskelförhållandet för att utföra partiell redundanselimination efter omläsning"
# Undrar om jag fattat syftningen i "critical edges execution count" rätt!
#: params.def:221
-#, fuzzy
msgid "The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload"
-msgstr "Tröskelförhållandet av antal beräkningar av kritiska bågar som tillåter att göra redundanseliminering efter omläsning."
+msgstr "Tröskelförhållandet av antal beräkningar av kritiska bågar som tillåter att göra redundanseliminering efter omläsning"
#: params.def:232
msgid "The maximum number of instructions to consider to unroll in a loop"
@@ -2334,7 +2315,6 @@ msgid "A factor for tuning the upper bound that swing modulo scheduler uses for
msgstr "En faktor för att trimma den övre gränsen som pendlingsmolduloschemaläggaren använder för att schemalägga en slinga"
#: params.def:301
-#, fuzzy
msgid "The number of cycles the swing modulo scheduler considers when checking conflicts using DFA"
msgstr "Antalet cykler som pendlingsschemaläggaren beaktar när den söker efter konflikter med DFA"
@@ -2351,9 +2331,8 @@ msgid "Select fraction of the maximal frequency of executions of basic block in
msgstr "Välj andel av den maximala exekveringsfrekvensen av grundblock i funktion givet grundblock måste ha för att anses hett"
#: params.def:330
-#, fuzzy
msgid "The maximum number of loop iterations we predict statically"
-msgstr "Det maximala antalet instruktioner vid autmatisk inline:ing"
+msgstr "Det maximala antalet slingiterationer vi förutsäger statiskt"
#: params.def:334
msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is available"
@@ -2407,15 +2386,13 @@ msgstr ""
msgid "The minimum cost of an expensive expression in the loop invariant motion"
msgstr "Den minsta kostnaden av ett dyrt uttryck vid flyttning av slinginvariant"
-# Osäker
#: params.def:404
msgid "Bound on number of candidates below that all candidates are considered in iv optimizations"
-msgstr "Gräns på antalet kanditater nedan för att alla kandidater övervägs i iv-optimeringar"
+msgstr "Gräns på antalet kanditater under vilken alla kandidater övervägs i iv-optimeringar"
#: params.def:412
-#, fuzzy
msgid "Bound on number of iv uses in loop optimized in iv optimizations"
-msgstr "Utför optimering för svansrekursion"
+msgstr "Gräns på antal iv-användningar i en sling optimerad i iv-optimeringar"
#: params.def:420
msgid "If number of candidates in the set is smaller, we always try to remove unused ivs during its optimization"
@@ -2438,9 +2415,8 @@ msgid "The maximum memory locations recorded by cselib"
msgstr "Det maximala antalet minnesplatser noterade av cselib"
#: params.def:446
-#, fuzzy
msgid "The maximum memory locations recorded by flow"
-msgstr "Det maximala antalet minnesplatser noterade av cselib"
+msgstr "Det maximala antalet minnesplatser noterade av flow"
#: params.def:459
msgid "Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap"
@@ -2455,9 +2431,8 @@ msgid "The maximum number of instructions to search backward when looking for eq
msgstr "Det största antalet instruktioner att söka bakåt för att leta efter ekvivalent omläsning"
#: params.def:477
-#, fuzzy
msgid "The maximum number of virtual operands allowed to represent aliases before triggering alias grouping"
-msgstr "Det maximala antalet tillåtna virtuella operander för att representera alias för aliasgruppering utlöses."
+msgstr "Det maximala antalet tillåtna virtuella operander för att representera alias före aliasgruppering utlöses"
#: params.def:482
msgid "The maximum number of blocks in a region to be considered for interblock scheduling"
@@ -2468,23 +2443,20 @@ msgid "The maximum number of insns in a region to be considered for interblock s
msgstr "Det maximala antalet instruktioner i en region för att övervägas för interblockschemaläggning"
#: params.def:492
-#, fuzzy
msgid "The minimum probability of reaching a source block for interblock speculative scheduling"
-msgstr "Det maximala antalet block i en region som övervägs för interblockschemaläggning"
+msgstr "Det minsta sannolikheten för att nå ett källkodsblock för spekulativ schemaläggning mellan block"
#: params.def:497
msgid "The maximum number of RTL nodes that can be recorded as combiner's last value"
msgstr "Det maximala antalet RTL-noder som kan noteras som kombinerarens sista värde"
#: params.def:505
-#, fuzzy
msgid "The upper bound for sharing integer constants"
-msgstr "uppräkningsvärde för \"%s\" är inte en heltalskonstant"
+msgstr "Övre gränsen för att dela heltalskonstanter"
#: params.def:524
-#, fuzzy
msgid "Minimum number of virtual mappings to consider switching to full virtual renames"
-msgstr "Det maximala antalet instruktioner att överväga för att fylla ett fördröjningsutrymme"
+msgstr "Minsta antalet virtuella översättningar för att beakta övergång till fullständig virtuell omnamning"
#: params.def:529
msgid "Ratio between virtual mappings and virtual symbols to do full virtual renames"
@@ -2508,9 +2480,9 @@ msgid "invalid %%H value"
msgstr "ogiltigt %%H-värde"
#: config/alpha/alpha.c:5105 config/bfin/bfin.c:1191
-#, fuzzy, c-format
+#, c-format
msgid "invalid %%J value"
-msgstr "ogiltigt värde %%B"
+msgstr "ogiltigt %%J-värde"
#: config/alpha/alpha.c:5135 config/ia64/ia64.c:4603
#, c-format
@@ -2588,24 +2560,24 @@ msgid "invalid %%xn code"
msgstr "ogiltig %%xn-kod"
#: config/arc/arc.c:1726 config/m32r/m32r.c:1805
-#, fuzzy, c-format
+#, c-format
msgid "invalid operand to %%R code"
-msgstr "ogiltig operand för %R"
+msgstr "ogiltig operand för %%R-kod"
#: config/arc/arc.c:1758 config/m32r/m32r.c:1828
-#, fuzzy, c-format
+#, c-format
msgid "invalid operand to %%H/%%L code"
-msgstr "ogiltig operand för %H/%L"
+msgstr "ogiltig operand för %%H/%%L-kod"
#: config/arc/arc.c:1780 config/m32r/m32r.c:1899
-#, fuzzy, c-format
+#, c-format
msgid "invalid operand to %%U code"
-msgstr "ogiltig operand för %U"
+msgstr "ogiltig operand för %%U-kod"
#: config/arc/arc.c:1791
-#, fuzzy, c-format
+#, c-format
msgid "invalid operand to %%V code"
-msgstr "ogiltig operand för %V"
+msgstr "ogiltig operand för %%V-kod"
#. Unknown flag.
#. Undocumented flag.
@@ -2615,32 +2587,32 @@ msgid "invalid operand output code"
msgstr "ogiltig operand i utmatningskod"
#: config/arm/arm.c:10906 config/arm/arm.c:10924
-#, fuzzy, c-format
+#, c-format
msgid "predicated Thumb instruction"
-msgstr "Använd bitfältsinstruktioner"
+msgstr "förutsade Thumb-instruktion"
#: config/arm/arm.c:10912
-#, fuzzy, c-format
+#, c-format
msgid "predicated instruction in conditional sequence"
-msgstr "typfel i villkorsuttryck"
+msgstr "förutsade instruktion i villkorlig sekvens"
#: config/arm/arm.c:11020 config/arm/arm.c:11030 config/arm/arm.c:11040
#: config/arm/arm.c:11066 config/arm/arm.c:11084 config/arm/arm.c:11119
#: config/arm/arm.c:11138 config/arm/arm.c:11153 config/arm/arm.c:11179
#: config/arm/arm.c:11186 config/arm/arm.c:11193
-#, fuzzy, c-format
+#, c-format
msgid "invalid operand for code '%c'"
-msgstr "ogiltig operand för %V"
+msgstr "ogiltig operand för kod \"%c\""
#: config/arm/arm.c:11079
-#, fuzzy, c-format
+#, c-format
msgid "instruction never exectued"
-msgstr "anrop %d aldrig utfört\n"
+msgstr "instruktionen aldrig utförd"
#: config/arm/arm.c:11204
-#, fuzzy, c-format
+#, c-format
msgid "missing operand"
-msgstr "saknas '(' efter predikat"
+msgstr "operand saknas"
#: config/avr/avr.c:1116
msgid "bad address, not (reg+disp):"
@@ -2651,19 +2623,16 @@ msgid "bad address, not post_inc or pre_dec:"
msgstr "felaktig adress, inte post_inc eller pre_dec:"
#: config/avr/avr.c:1134
-#, fuzzy
msgid "internal compiler error. Bad address:"
-msgstr "Internt kompilatorfel i %s, vid %s:%d"
+msgstr "internt kompilatorfel. Felaktig adress:"
#: config/avr/avr.c:1147
-#, fuzzy
msgid "internal compiler error. Unknown mode:"
-msgstr "Internt kompilatorfel i %s, vid %s:%d"
+msgstr "internt kompilatorfel. Okänt läge:"
#: config/avr/avr.c:1770 config/avr/avr.c:2453
-#, fuzzy
msgid "invalid insn:"
-msgstr "ogiltig #line"
+msgstr "ogiltig instruktion:"
#: config/avr/avr.c:1804 config/avr/avr.c:1890 config/avr/avr.c:1939
#: config/avr/avr.c:1967 config/avr/avr.c:2062 config/avr/avr.c:2231
@@ -2673,28 +2642,26 @@ msgstr "felaktig instruktion:"
#: config/avr/avr.c:1986 config/avr/avr.c:2147 config/avr/avr.c:2302
#: config/avr/avr.c:2665
-#, fuzzy
msgid "unknown move insn:"
-msgstr "okänt registernamn: %s"
+msgstr "okänd move-instruktion:"
#: config/avr/avr.c:2895
msgid "bad shift insn:"
msgstr "felaktig skiftinstruktion:"
#: config/avr/avr.c:3011 config/avr/avr.c:3459 config/avr/avr.c:3845
-#, fuzzy
msgid "internal compiler error. Incorrect shift:"
-msgstr "Internt kompilatorfel i %s, vid %s:%d"
+msgstr "internt kompilatorfel. Felaktig skift:"
#: config/bfin/bfin.c:1153
-#, fuzzy, c-format
+#, c-format
msgid "invalid %%j value"
-msgstr "ogiltigt värde %%B"
+msgstr "ogiltigt %%j-värde"
#: config/bfin/bfin.c:1272
-#, fuzzy, c-format
+#, c-format
msgid "invalid const_double operand"
-msgstr "ogiltig %%-kod"
+msgstr "ogiltig const_double-operand"
#: config/c4x/c4x.c:1584
msgid "using CONST_DOUBLE for address"
@@ -2774,9 +2741,8 @@ msgid "c4x_operand_subword: address not offsettable"
msgstr "c4x_operand_subword: adress kan inte ha avstånd"
#: config/c4x/c4x.c:4101
-#, fuzzy
msgid "c4x_rptb_rpts_p: Repeat block top label moved"
-msgstr "c4x_rptb_rpts_p: Repeteringsblocks toppetikett flyttad\n"
+msgstr "c4x_rptb_rpts_p: Repeteringsblocks toppetikett flyttad"
#. Use `%s' to print the string in case there are any escape
#. characters in the message.
@@ -2799,68 +2765,56 @@ msgid "unexpected base-type in cris_print_base"
msgstr "oväntat bastyp i cris_print_base"
#: config/cris/cris.c:674
-#, fuzzy
msgid "invalid operand for 'b' modifier"
-msgstr "ogiltig operand för %V"
+msgstr "ogiltig operand för \"b\"-modifierare"
#: config/cris/cris.c:691
-#, fuzzy
msgid "invalid operand for 'o' modifier"
-msgstr "ogiltig operand för %V"
+msgstr "ogiltig operand för \"o\"-modifierare"
#: config/cris/cris.c:710
-#, fuzzy
msgid "invalid operand for 'O' modifier"
-msgstr "ogiltig operand för %V"
+msgstr "ogiltig operand för \"O\"-modifierare"
#: config/cris/cris.c:743
-#, fuzzy
msgid "invalid operand for 'p' modifier"
-msgstr "ogiltig operand för %V"
+msgstr "ogiltig operand för \"p\"-modifierare"
#: config/cris/cris.c:782
-#, fuzzy
msgid "invalid operand for 'z' modifier"
-msgstr "ogiltig operand för %V"
+msgstr "ogiltig operand för \"z\"-modifierare"
#: config/cris/cris.c:836 config/cris/cris.c:866
-#, fuzzy
msgid "invalid operand for 'H' modifier"
-msgstr "ogiltig operand för %V"
+msgstr "ogiltig operand för \"H\"-modifierare"
#: config/cris/cris.c:842
msgid "bad register"
msgstr "felaktigt register"
#: config/cris/cris.c:887
-#, fuzzy
msgid "invalid operand for 'e' modifier"
-msgstr "ogiltig operand för %V"
+msgstr "ogiltig operand för \"e\"-modifierare"
#: config/cris/cris.c:904
-#, fuzzy
msgid "invalid operand for 'm' modifier"
-msgstr "ogiltig operand för %V"
+msgstr "ogiltig operand för \"m\"-modifierare"
#: config/cris/cris.c:929
-#, fuzzy
msgid "invalid operand for 'A' modifier"
-msgstr "ogiltig operand för %V"
+msgstr "ogiltig operand för \"A\"-modifierare"
#: config/cris/cris.c:952
-#, fuzzy
msgid "invalid operand for 'D' modifier"
-msgstr "ogiltig operand för %V"
+msgstr "ogiltig operand för \"D\"-modifierare"
#: config/cris/cris.c:966
-#, fuzzy
msgid "invalid operand for 'T' modifier"
-msgstr "ogiltig operand för %V"
+msgstr "ogiltig operand för \"T\"-modifierare"
#: config/cris/cris.c:975
-#, fuzzy
msgid "invalid operand modifier letter"
-msgstr "ogiltig operand för %V"
+msgstr "ogiltig operand för modifierarebokstav"
#: config/cris/cris.c:1032
msgid "unexpected multiplicative operand"
@@ -2871,14 +2825,12 @@ msgid "unexpected operand"
msgstr "oväntad operand"
#: config/cris/cris.c:1085 config/cris/cris.c:1095
-#, fuzzy
msgid "unrecognized address"
-msgstr "Känner inte igen registernamn \"%s\""
+msgstr "okänd adress"
#: config/cris/cris.c:2021
-#, fuzzy
msgid "unrecognized supposed constant"
-msgstr "ej igenkänd flagga `-%s'"
+msgstr "okänd förmodad konstant"
#: config/cris/cris.c:2396 config/cris/cris.c:2460
msgid "unexpected side-effects in address"
@@ -2916,9 +2868,9 @@ msgid "fr30_print_operand: unrecognized %%B code"
msgstr "fr30_print_operand: okänd %%B-kod"
#: config/fr30/fr30.c:537
-#, fuzzy, c-format
+#, c-format
msgid "fr30_print_operand: invalid operand to %%A code"
-msgstr "ogiltig operand för %V"
+msgstr "fr30_print_operand: ogiltig operand för %%A-kod"
#: config/fr30/fr30.c:554
#, c-format
@@ -2942,20 +2894,17 @@ msgid "fr30_print_operand: unhandled MEM"
msgstr "fr30_print_operand: ohanterad MEM"
#: config/frv/frv.c:2541
-#, fuzzy
msgid "bad insn to frv_print_operand_address:"
-msgstr "Felaktig instruktion till frv_print_operand_address:"
+msgstr "felaktig instruktion till frv_print_operand_address:"
#: config/frv/frv.c:2552
-#, fuzzy
msgid "bad register to frv_print_operand_memory_reference_reg:"
-msgstr "Felaktigt register till frv_print_operand_memory_reference_reg:"
+msgstr "felaktigt register till frv_print_operand_memory_reference_reg:"
#: config/frv/frv.c:2591 config/frv/frv.c:2601 config/frv/frv.c:2610
#: config/frv/frv.c:2631 config/frv/frv.c:2636
-#, fuzzy
msgid "bad insn to frv_print_operand_memory_reference:"
-msgstr "Felaktig instruktion till frv_print_operand_memory_reference:"
+msgstr "felaktig instruktion till frv_print_operand_memory_reference:"
#: config/frv/frv.c:2722
#, c-format
@@ -2963,79 +2912,64 @@ msgid "bad condition code"
msgstr "felaktig villkorskod"
#: config/frv/frv.c:2797
-#, fuzzy
msgid "bad insn in frv_print_operand, bad const_double"
-msgstr "Felaktig instruktion i frv_print_operand, felaktig const_double"
+msgstr "felaktig instruktion i frv_print_operand, felaktig const_double"
#: config/frv/frv.c:2858
-#, fuzzy
msgid "bad insn to frv_print_operand, 'e' modifier:"
-msgstr "ogiltig operand för %V"
+msgstr "felaktig instruktion till frv_print_operand, \"e\"-modifierare:"
#: config/frv/frv.c:2866
-#, fuzzy
msgid "bad insn to frv_print_operand, 'F' modifier:"
-msgstr "ogiltig operand för %V"
+msgstr "felaktig instruktion till frv_print_operand, \"F\"-modifierare:"
#: config/frv/frv.c:2882
-#, fuzzy
msgid "bad insn to frv_print_operand, 'f' modifier:"
-msgstr "ogiltig operand för %V"
+msgstr "felaktig instruktion till frv_print_operand, \"f\"-modifierare:"
#: config/frv/frv.c:2896
-#, fuzzy
msgid "bad insn to frv_print_operand, 'g' modifier:"
-msgstr "ogiltig operand för %V"
+msgstr "felaktig instruktion till frv_print_operand, \"g\"-modifierare:"
#: config/frv/frv.c:2944
-#, fuzzy
msgid "bad insn to frv_print_operand, 'L' modifier:"
-msgstr "ogiltig operand för %V"
+msgstr "felaktig instruktion till frv_print_operand, \"L\"-modifierare:"
#: config/frv/frv.c:2957
-#, fuzzy
msgid "bad insn to frv_print_operand, 'M/N' modifier:"
-msgstr "Felaktig instruktion till frv_print_operand, 'M/N'-modifierare:"
+msgstr "felaktig instruktion till frv_print_operand, \"M/N\"-modifierare:"
#: config/frv/frv.c:2978
-#, fuzzy
msgid "bad insn to frv_print_operand, 'O' modifier:"
-msgstr "ogiltig operand för %V"
+msgstr "felaktig instruktion till frv_print_operand, \"O\"-modifierare:"
#: config/frv/frv.c:2996
-#, fuzzy
msgid "bad insn to frv_print_operand, P modifier:"
-msgstr "Felaktig instruktion till frv_print_operand, P-modifierare:"
+msgstr "felaktig instruktion till frv_print_operand, P-modifierare:"
#: config/frv/frv.c:3016
-#, fuzzy
msgid "bad insn in frv_print_operand, z case"
-msgstr "Felaktig instruktion i frv_print_operand, z-fall"
+msgstr "felaktig instruktion i frv_print_operand, z-fall"
#: config/frv/frv.c:3047
-#, fuzzy
msgid "bad insn in frv_print_operand, 0 case"
-msgstr "Felaktig instruktion i frv_print_operand, 0-fall"
+msgstr "felaktig instruktion i frv_print_operand, 0-fall"
#: config/frv/frv.c:3052
-#, fuzzy
msgid "frv_print_operand: unknown code"
-msgstr "ogiltig operand för %V"
+msgstr "frv_print_operand: okänd kod"
#: config/frv/frv.c:4421
-#, fuzzy
msgid "bad output_move_single operand"
-msgstr "Felaktig operand till output_move_single"
+msgstr "felaktig operand till output_move_single"
#: config/frv/frv.c:4548
-#, fuzzy
msgid "bad output_move_double operand"
-msgstr "Felaktig operand till output_move_double"
+msgstr "felaktig operand till output_move_double"
#: config/frv/frv.c:4690
-#, fuzzy
msgid "bad output_condmove_single operand"
-msgstr "Felaktig operand till output_condmove_single"
+msgstr "felaktig operand till output_condmove_single"
#. This macro is a C statement to print on `stderr' a string describing the
#. particular machine description choice. Every machine description should
@@ -3062,36 +2996,35 @@ msgid "operand is neither a constant nor a condition code, invalid operand code
msgstr "operand är varken en konstant eller en villkorskod, ogiltig operandkod \"c\""
#: config/i386/i386.c:7321
-#, fuzzy, c-format
+#, c-format
msgid "invalid operand code '%c'"
-msgstr "ogiltig operand för %V"
+msgstr "ogiltig operandkod \"%c\""
#: config/i386/i386.c:7364
-#, fuzzy, c-format
+#, c-format
msgid "invalid constraints for operand"
-msgstr "ogiltig %%-kod"
+msgstr "ogiltig begränsning för operand"
#: config/i386/i386.c:12958
-#, fuzzy
msgid "unknown insn mode"
-msgstr "okänt maskinläge `%s'"
+msgstr "okänt instruktionsläge"
#. 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, c-format
+#, c-format
msgid "environment variable DJGPP not defined"
-msgstr "Omgivningsvariabel DJGPP är inte definierad."
+msgstr "omgivningsvariabeln DJGPP är inte definierad"
#: config/i386/xm-djgpp.h:64
-#, fuzzy, c-format
+#, c-format
msgid "environment variable DJGPP points to missing file '%s'"
-msgstr "Omgivningsvariabel DJGPP pekar på fil \"%s\" som saknas"
+msgstr "omgivningsvariabeln DJGPP pekar på fil \"%s\" som saknas"
#: config/i386/xm-djgpp.h:67
-#, fuzzy, c-format
+#, c-format
msgid "environment variable DJGPP points to corrupt file '%s'"
-msgstr "Omgivningsvariabel DJGPP pekar på fil \"%s\" som är trasig"
+msgstr "omgivningsvariabeln DJGPP pekar på fil \"%s\" som är trasig"
#: config/ia64/ia64.c:4653
#, c-format
@@ -3099,24 +3032,21 @@ msgid "ia64_print_operand: unknown code"
msgstr "ia64_print_operand: okänd kod"
#: config/ia64/ia64.c:9013
-#, fuzzy
msgid "invalid conversion from %<__fpreg%>"
-msgstr "konvertering från NaN till int"
+msgstr "ogiltig konvertering från %<__fpreg%>"
#: config/ia64/ia64.c:9016
-#, fuzzy
msgid "invalid conversion to %<__fpreg%>"
-msgstr "ogiltig mottagartyp \"%s\""
+msgstr "ogiltig konvertering till %<__fpreg%>"
#: config/ia64/ia64.c:9029 config/ia64/ia64.c:9040
-#, fuzzy
msgid "invalid operation on %<__fpreg%>"
-msgstr "ogiltig operand för %R"
+msgstr "ogiltig operation på %<__fpreg%>"
#: config/iq2000/iq2000.c:3125
-#, fuzzy, c-format
+#, c-format
msgid "invalid %%P operand"
-msgstr "ogiltigt %%P-värde"
+msgstr "ogiltig %%P-operand"
#: config/iq2000/iq2000.c:3133 config/rs6000/rs6000.c:10350
#, c-format
@@ -3129,28 +3059,28 @@ msgid "invalid use of %%d, %%x, or %%X"
msgstr "ogiltig användning av %%d, %%x eller %%x"
#: config/m32r/m32r.c:1775
-#, fuzzy, c-format
+#, c-format
msgid "invalid operand to %%s code"
-msgstr "ogiltig operand för %R"
+msgstr "ogiltig operand till %%s-kod"
#: config/m32r/m32r.c:1782
-#, fuzzy, c-format
+#, c-format
msgid "invalid operand to %%p code"
-msgstr "ogiltig operand för %R"
+msgstr "ogiltig operand till %%p-kod"
#: config/m32r/m32r.c:1837
msgid "bad insn for 'A'"
msgstr "felaktig instruktion för \"A\""
#: config/m32r/m32r.c:1884
-#, fuzzy, c-format
+#, c-format
msgid "invalid operand to %%T/%%B code"
-msgstr "ogiltig operand för %H/%L"
+msgstr "ogiltig operand till %%T/%%B-kod"
#: config/m32r/m32r.c:1907
-#, fuzzy, c-format
+#, c-format
msgid "invalid operand to %%N code"
-msgstr "ogiltig operand för %R"
+msgstr "ogiltig operand till %%N-kod"
#: config/m32r/m32r.c:1940
msgid "pre-increment address is not a register"
@@ -3170,9 +3100,8 @@ msgid "bad address"
msgstr "felaktig adress"
#: config/m32r/m32r.c:2049
-#, fuzzy
msgid "lo_sum not of register"
-msgstr "Skicka argument i register"
+msgstr "lo_sum inte från register"
#. !!!! SCz wrong here.
#: config/m68hc11/m68hc11.c:3189 config/m68hc11/m68hc11.c:3567
@@ -3181,28 +3110,24 @@ msgstr "move-instruktion inte hanterad"
#: config/m68hc11/m68hc11.c:3413 config/m68hc11/m68hc11.c:3497
#: config/m68hc11/m68hc11.c:3770
-#, fuzzy
msgid "invalid register in the move instruction"
-msgstr "Använd inte divisionsinstruktionen"
+msgstr "felaktigt register i move-instruktionen"
#: config/m68hc11/m68hc11.c:3447
-#, fuzzy
msgid "invalid operand in the instruction"
-msgstr "ogiltig operand för %V"
+msgstr "ogiltig operand i instruktionen"
#: config/m68hc11/m68hc11.c:3744
-#, fuzzy
msgid "invalid register in the instruction"
-msgstr "ogiltigt flagga \"%s\" i line-direktiv"
+msgstr "ogiltigt register i instruktionen"
#: config/m68hc11/m68hc11.c:3777
msgid "operand 1 must be a hard register"
msgstr "operand 1 måste vara ett hårt register"
#: config/m68hc11/m68hc11.c:3791
-#, fuzzy
msgid "invalid rotate insn"
-msgstr "ogiltigt format på #line"
+msgstr "ogiltigt rotate-instruktion"
#: config/m68hc11/m68hc11.c:4215
msgid "registers IX, IY and Z used in the same INSN"
@@ -3221,34 +3146,34 @@ msgid "mips_debugger_offset called with non stack/frame/arg pointer"
msgstr "mips_debugger_offset anropad med en icke-stack/ram/arg-pekare"
#: config/mips/mips.c:5415
-#, fuzzy, c-format
+#, c-format
msgid "PRINT_OPERAND, invalid insn for %%C"
-msgstr "PRINT_OPERAND_ADDRESS, null-pekare"
+msgstr "PRINT_OPERAND, ogiltig instruktion för %%C"
#: config/mips/mips.c:5432
-#, fuzzy, c-format
+#, c-format
msgid "PRINT_OPERAND, invalid insn for %%N"
-msgstr "PRINT_OPERAND_ADDRESS, null-pekare"
+msgstr "PRINT_OPERAND, ogiltig instruktion för %%N"
#: config/mips/mips.c:5441
-#, fuzzy, c-format
+#, c-format
msgid "PRINT_OPERAND, invalid insn for %%F"
-msgstr "PRINT_OPERAND_ADDRESS, null-pekare"
+msgstr "PRINT_OPERAND, ogiltig instruktion för %%F"
#: config/mips/mips.c:5450
-#, fuzzy, c-format
+#, c-format
msgid "PRINT_OPERAND, invalid insn for %%W"
-msgstr "PRINT_OPERAND_ADDRESS, null-pekare"
+msgstr "PRINT_OPERAND, ogiltig instruktion för %%W"
#: config/mips/mips.c:5471
-#, fuzzy, c-format
+#, c-format
msgid "invalid %%Y value"
-msgstr "ogiltigt värde %%B"
+msgstr "ogiltigt %%Y-värde"
#: config/mips/mips.c:5488 config/mips/mips.c:5496
-#, fuzzy, c-format
+#, c-format
msgid "PRINT_OPERAND, invalid insn for %%q"
-msgstr "PRINT_OPERAND_ADDRESS, null-pekare"
+msgstr "PRINT_OPERAND, ogiltig instruktion för %%q"
#: config/mips/mips.c:5565
msgid "PRINT_OPERAND, invalid operand for relocation"
@@ -3292,23 +3217,20 @@ msgid "MMIX Internal: What is the CC of this?"
msgstr "MMIX-internt: Vad är CC:t för detta?"
#: config/mmix/mmix.c:2725
-#, fuzzy
msgid "MMIX Internal: This is not a constant:"
-msgstr "fältinitierare är ej konstant"
+msgstr "MMIX-internt: Detta är inte en konstant:"
#: config/mt/mt.c:298
msgid "mt_final_prescan_insn, invalid insn #1"
msgstr ""
#: config/mt/mt.c:369
-#, fuzzy
msgid "PRINT_OPERAND_ADDRESS, 2 regs"
-msgstr "PRINT_OPERAND_ADDRESS, null-pekare"
+msgstr "PRINT_OPERAND_ADDRESS, 2 register"
#: config/mt/mt.c:393
-#, fuzzy
msgid "PRINT_OPERAND_ADDRESS, invalid insn #1"
-msgstr "PRINT_OPERAND_ADDRESS, null-pekare"
+msgstr "PRINT_OPERAND_ADDRESS, ogiltig instruktion nr 1"
#: config/rs6000/host-darwin.c:87
#, c-format
@@ -3386,88 +3308,84 @@ msgid "invalid %%v value"
msgstr "ogiltig %%v-kod"
#: config/rs6000/rs6000.c:19104
-#, fuzzy
msgid "AltiVec argument passed to unprototyped function"
-msgstr "för få argument till funktion"
+msgstr "AltiVec-argument skickat till funktion utan prototyp"
#: config/s390/s390.c:4488
-#, fuzzy, c-format
+#, c-format
msgid "cannot decompose address"
-msgstr "Kan inte dekomponera adress."
+msgstr "kan inte dekomponera adress."
#: config/s390/s390.c:4698
msgid "UNKNOWN in print_operand !?"
msgstr "OKÄND i print_operand!?"
#: config/sh/sh.c:746
-#, fuzzy, c-format
+#, c-format
msgid "invalid operand to %%R"
-msgstr "ogiltig operand för %R"
+msgstr "ogiltig operand till %%R"
#: config/sh/sh.c:773
-#, fuzzy, c-format
+#, c-format
msgid "invalid operand to %%S"
-msgstr "ogiltig operand för %R"
+msgstr "ogiltig operand till %%R"
#: config/sh/sh.c:7679
-#, fuzzy
msgid "created and used with different architectures / ABIs"
-msgstr "skapad och använd med olika inställningar av -fpie"
+msgstr "skapad och använd med olika arkitekturer/ABI:er"
#: config/sh/sh.c:7681
-#, fuzzy
msgid "created and used with different ABIs"
-msgstr "skapad och använd med olika inställningar av -fpic"
+msgstr "skapad och använd med olika ABI:er"
#: config/sh/sh.c:7683
-#, fuzzy
msgid "created and used with different endianness"
-msgstr "skapad och använd med olika inställningar av -fpie"
+msgstr "skapad och använd med olika byteordning"
#: config/sparc/sparc.c:6626 config/sparc/sparc.c:6632
-#, fuzzy, c-format
+#, c-format
msgid "invalid %%Y operand"
-msgstr "ogiltig %%-kod"
+msgstr "ogiltig %%Y-operand"
#: config/sparc/sparc.c:6702
-#, fuzzy, c-format
+#, c-format
msgid "invalid %%A operand"
-msgstr "ogiltig %%-kod"
+msgstr "ogiltig %%A-operand"
#: config/sparc/sparc.c:6712
-#, fuzzy, c-format
+#, c-format
msgid "invalid %%B operand"
-msgstr "ogiltigt värde %%B"
+msgstr "ogiltig %%B-operand"
#: config/sparc/sparc.c:6751
-#, fuzzy, c-format
+#, c-format
msgid "invalid %%c operand"
-msgstr "ogiltig %%-kod"
+msgstr "ogiltig %%c-operand"
#: config/sparc/sparc.c:6752
-#, fuzzy, c-format
+#, c-format
msgid "invalid %%C operand"
-msgstr "ogiltigt %%C-värde"
+msgstr "ogiltig %%C-operand"
#: config/sparc/sparc.c:6773
-#, fuzzy, c-format
+#, c-format
msgid "invalid %%d operand"
-msgstr "ogiltig %%-kod"
+msgstr "ogiltig %%d-operand"
#: config/sparc/sparc.c:6774
-#, fuzzy, c-format
+#, c-format
msgid "invalid %%D operand"
-msgstr "ogiltig %%-kod"
+msgstr "ogiltig %%D-operand"
#: config/sparc/sparc.c:6790
-#, fuzzy, c-format
+#, c-format
msgid "invalid %%f operand"
-msgstr "ogiltig %%-kod"
+msgstr "ogiltig %%f-operand"
#: config/sparc/sparc.c:6804
-#, fuzzy, c-format
+#, c-format
msgid "invalid %%s operand"
-msgstr "ogiltig %%-kod"
+msgstr "ogiltig %%s-operand"
#: config/sparc/sparc.c:6858
#, c-format
@@ -3480,9 +3398,9 @@ msgid "floating point constant not a valid immediate operand"
msgstr "flyttalskonstant inte en giltig omdedebar operand"
#: config/stormy16/stormy16.c:1764 config/stormy16/stormy16.c:1835
-#, fuzzy, c-format
+#, c-format
msgid "'B' operand is not constant"
-msgstr "fältinitierare är ej konstant"
+msgstr "\"B\"-operand är ej konstant"
#: config/stormy16/stormy16.c:1791
#, c-format
@@ -3490,9 +3408,9 @@ msgid "'B' operand has multiple bits set"
msgstr "\"B\"-operand har flera bitar satta"
#: config/stormy16/stormy16.c:1817
-#, fuzzy, c-format
+#, c-format
msgid "'o' operand is not constant"
-msgstr "fältinitierare är ej konstant"
+msgstr "\"o\"-operand är ej konstant"
#: config/stormy16/stormy16.c:1849
#, c-format
@@ -3513,44 +3431,40 @@ msgid "bad test"
msgstr "felaktig test"
#: config/xtensa/xtensa.c:1635
-#, fuzzy, c-format
+#, c-format
msgid "invalid %%D value"
-msgstr "ogiltigt värde %%B"
+msgstr "ogiltigt %%D-värde"
#: config/xtensa/xtensa.c:1672
-#, fuzzy
msgid "invalid mask"
-msgstr "ogiltigt #pragma %s"
+msgstr "ogiltigt mask"
#: config/xtensa/xtensa.c:1698
-#, fuzzy, c-format
+#, c-format
msgid "invalid %%x value"
-msgstr "ogiltigt värde %%B"
+msgstr "ogiltigt %%x-värde"
#: config/xtensa/xtensa.c:1705
-#, fuzzy, c-format
+#, c-format
msgid "invalid %%d value"
-msgstr "ogiltigt värde %%B"
+msgstr "ogiltigt %%d-värde"
#: config/xtensa/xtensa.c:1726 config/xtensa/xtensa.c:1736
-#, fuzzy, c-format
+#, c-format
msgid "invalid %%t/%%b value"
-msgstr "ogiltigt %%s-värde"
+msgstr "ogiltigt %%t/%%b-värde"
#: config/xtensa/xtensa.c:1778
-#, fuzzy
msgid "invalid address"
-msgstr "ogiltig kod"
+msgstr "ogiltig adress"
#: config/xtensa/xtensa.c:1803
-#, fuzzy
msgid "no register in address"
-msgstr "okänt registernamn: %s"
+msgstr "inget register i adress"
#: config/xtensa/xtensa.c:1811
-#, fuzzy
msgid "address offset not a constant"
-msgstr "efterfrågad minnesjustering är inte konstant"
+msgstr "adressavstånd inte en konstant"
#: cp/call.c:2441
msgid "candidates are:"
@@ -3565,17 +3479,15 @@ msgid "candidate 2:"
msgstr "kandidat 2:"
#: cp/decl2.c:695
-#, fuzzy
msgid "candidates are: %+#D"
-msgstr "kandidater är:"
+msgstr "kandidater är: %+#D"
#: cp/decl2.c:697
-#, fuzzy
msgid "candidate is: %+#D"
-msgstr "kandidat 2:"
+msgstr "kandidat är: %+#D"
#: cp/g++spec.c:238 java/jvspec.c:417
-#, fuzzy, c-format
+#, c-format
msgid "argument to '%s' missing\n"
msgstr "argument till \"%s\" saknas\n"
@@ -3584,9 +3496,8 @@ msgid "Arithmetic OK at %L"
msgstr ""
#: fortran/arith.c:144
-#, fuzzy
msgid "Arithmetic overflow at %L"
-msgstr "Anta spill vid teckenaritmetik slår runt"
+msgstr "Aritmetiskt spill vid %L"
#: fortran/arith.c:147
msgid "Arithmetic underflow at %L"
@@ -3609,9 +3520,8 @@ msgid "Integer outside symmetric range implied by Standard Fortran at %L"
msgstr ""
#: fortran/arith.c:1384
-#, fuzzy
msgid "Elemental binary operation"
-msgstr "Slå på automatisk mallinstansiering"
+msgstr "Elementär binär operation"
#: fortran/arith.c:1920
#, no-c-format
@@ -3660,14 +3570,14 @@ msgid "Enumerator exceeds the C integer type at %C"
msgstr ""
#: fortran/array.c:97
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected array subscript at %C"
-msgstr "fältindex har typen \"char\""
+msgstr "Förväntade vektorindex vid %C"
#: fortran/array.c:124
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected array subscript stride at %C"
-msgstr "fältindex har typen \"char\""
+msgstr "Förväntade intervall av vektorindex vid %C"
#: fortran/array.c:167
#, no-c-format
@@ -3720,9 +3630,9 @@ msgid "Array specification at %C has more than %d dimensions"
msgstr ""
#: fortran/array.c:627
-#, fuzzy, no-c-format
+#, no-c-format
msgid "duplicated initializer"
-msgstr "ogiltig initierare"
+msgstr "dubblerad initierare"
#: fortran/array.c:720
#, no-c-format
@@ -3740,9 +3650,9 @@ msgid "New in Fortran 2003: [...] style array constructors at %C"
msgstr ""
#: fortran/array.c:891
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Empty array constructor at %C is not allowed"
-msgstr "Min-/maxinstruktioner inte tillåtna"
+msgstr "Tom vektorkonstruerare vid %C är inte tillåtet"
#: fortran/array.c:976
#, no-c-format
@@ -3755,9 +3665,9 @@ msgid "Iterator step at %L cannot be zero"
msgstr ""
#: fortran/check.c:44
-#, fuzzy, no-c-format
+#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be %s"
-msgstr "argumentet till \"__builtin_args_info\" måste vara konstant"
+msgstr "\"%s\"-argumentet till inbyggd \"%s\" vid %L måste vara %s"
#: fortran/check.c:60
#, no-c-format
@@ -3775,14 +3685,14 @@ msgid "'%s' argument of '%s' intrinsic at %L must be REAL or COMPLEX"
msgstr ""
#: fortran/check.c:118
-#, fuzzy, no-c-format
+#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be a constant"
-msgstr "argumentet till \"__builtin_eh_return_regno\" måste vara konstant"
+msgstr "\"%s\"-argumentet till inbyggd \"%s\" vid %L måste vara en konstant"
#: fortran/check.c:126
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid kind for %s at %L"
-msgstr "konvertering från NaN till int"
+msgstr "Ogiltig sort på %s vid %L"
#: fortran/check.c:146
#, no-c-format
@@ -3795,14 +3705,14 @@ msgid "'%s' argument of '%s' intrinsic at %L must be a logical array"
msgstr ""
#: fortran/check.c:180
-#, fuzzy, no-c-format
+#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be an array"
-msgstr "argumentet till \"__builtin_eh_return_regno\" måste vara konstant"
+msgstr "\"%s\"-argumentet till inbyggd \"%s\" vid %L måste vara en vektor"
#: fortran/check.c:195
-#, fuzzy, no-c-format
+#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be a scalar"
-msgstr "argumentet till \"__builtin_eh_return_regno\" måste vara konstant"
+msgstr "\"%s\"-argumentet till inbyggd \"%s\" vid %L måste vara en skalär"
#: fortran/check.c:210
#, no-c-format
@@ -3906,9 +3816,9 @@ msgid "'%s' argument of '%s' intrinsic at %L must be a non-derived type"
msgstr ""
#: fortran/check.c:1336
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Intrinsic '%s' at %L must have at least two arguments"
-msgstr "\"%s\" tar bara noll eller två argument"
+msgstr "Inbyggd \"%s\" vid %L måste ha åtminstone två argument"
#: fortran/check.c:1370
#, no-c-format
@@ -3956,9 +3866,9 @@ msgid "'shape' argument of 'reshape' intrinsic at %L has more than %d elements"
msgstr ""
#: fortran/check.c:1952
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Missing arguments to %s intrinsic at %L"
-msgstr "Saknar argument till flaggan \"%s\""
+msgstr "Saknar argument till inbyggd %s vid %L"
#: fortran/check.c:1993
#, no-c-format
@@ -3966,14 +3876,14 @@ msgid "'source' argument of 'shape' intrinsic at %L must not be an assumed size
msgstr ""
#: fortran/check.c:2055
-#, fuzzy, no-c-format
+#, no-c-format
msgid "'%s' argument of '%s' intrinsic at %L must be less than rank %d"
-msgstr "kan inte sätta attributet \"%s\" efter definitionen"
+msgstr "\"%s\"-argumentet till inbyggd \"%s\" vid %L måste vara av lägre ordning än %d"
#: fortran/check.c:2512 fortran/check.c:2532
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Too many arguments to %s at %L"
-msgstr "för många argument till funktionen \"%s\""
+msgstr "För många argument till %s vid %L"
#: fortran/check.c:2660 fortran/check.c:3022 fortran/check.c:3046
#, no-c-format
@@ -3986,14 +3896,14 @@ msgid "'%s' argument of '%s' intrinsic at %L must be INTEGER or LOGICAL"
msgstr ""
#: fortran/data.c:63
-#, fuzzy, no-c-format
+#, no-c-format
msgid "non-constant array in DATA statement %L."
-msgstr "ickekonstant vetkorindex i initierare"
+msgstr "ickekonstant vetkorindex i DATA-sats %L."
#: fortran/data.c:327
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Extension: re-initialization of '%s' at %L"
-msgstr "omdefiniering av \"%s\""
+msgstr "Utökning: ominitiering av \"%s\" vid %L"
#: fortran/decl.c:208
#, no-c-format
@@ -4031,9 +3941,9 @@ msgid "Syntax error in character length specification at %C"
msgstr ""
#: fortran/decl.c:623
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Procedure '%s' at %C is already defined at %L"
-msgstr "kunde inte hitta klassen \"%s\""
+msgstr "Proceduren \"%s\" vid %C är redan definierad vid %L"
#: fortran/decl.c:633
#, no-c-format
@@ -4051,9 +3961,9 @@ msgid "Initializer not allowed for COMMON variable '%s' at %C"
msgstr ""
#: fortran/decl.c:824
-#, fuzzy, no-c-format
+#, no-c-format
msgid "PARAMETER at %L is missing an initializer"
-msgstr "initierare saknas"
+msgstr "PARAMETER vid %L saknar en initierare"
#: fortran/decl.c:835
#, no-c-format
@@ -4096,25 +4006,24 @@ msgid "Duplicate array spec for Cray pointee at %C."
msgstr ""
#: fortran/decl.c:1167
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Function name '%s' not allowed at %C"
-msgstr "attributet \"section\" är inte tillåten för \"%s\""
+msgstr "Funktionsnamnet \"%s\" är inte tillåtet vid %C"
#: fortran/decl.c:1183
#, no-c-format
msgid "Extension: Old-style initialization at %C"
msgstr ""
-# fixme: vad är %s
#: fortran/decl.c:1199
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Initialization at %C isn't for a pointer variable"
-msgstr "%s skapar pekare från heltal utan typkonvertering"
+msgstr "Initieringen vid %C är inte för en pekarvariabel"
#: fortran/decl.c:1207
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Pointer initialization requires a NULL() at %C"
-msgstr "initiering"
+msgstr "Pekarinitiering kräver en NULL() vid %C"
#: fortran/decl.c:1214
#, no-c-format
@@ -4127,9 +4036,9 @@ msgid "Pointer initialization at %C requires '=>', not '='"
msgstr ""
#: fortran/decl.c:1236
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected an initialization expression at %C"
-msgstr "initiering"
+msgstr "Ett initieringsuttryck förväntades vid %C"
#: fortran/decl.c:1243
#, no-c-format
@@ -4142,19 +4051,19 @@ msgid "ENUMERATOR %L not initialized with integer expression"
msgstr ""
#: fortran/decl.c:1324 fortran/decl.c:1333
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Old-style type declaration %s*%d not supported at %C"
-msgstr "-fdata-sections stöds inte för AIX"
+msgstr "Gammaldags typdeklaration %s*%d stöds inte vid %C"
#: fortran/decl.c:1338
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Nonstandard type declaration %s*%d at %C"
-msgstr "två eller fler datatyper i deklaration av \"%s\""
+msgstr "Typdeklaration ej enligt standard %s*%d vid %C"
#: fortran/decl.c:1372
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected initialization expression at %C"
-msgstr "initiering"
+msgstr "Initieringsuttryck förvändatdes vid %C"
#: fortran/decl.c:1378
#, no-c-format
@@ -4162,14 +4071,14 @@ msgid "Expected scalar initialization expression at %C"
msgstr ""
#: fortran/decl.c:1396
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Kind %d not supported for type %s at %C"
-msgstr "\"%s\" stöds inte av %s"
+msgstr "Sorten %d stöds inte för typen %s vid %C"
#: fortran/decl.c:1405
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Missing right paren at %C"
-msgstr "Saknar argument till flaggan \"%s\""
+msgstr "Saknad högerparentes vid %C"
#: fortran/decl.c:1494 fortran/decl.c:1537
#, no-c-format
@@ -4192,14 +4101,14 @@ msgid "BYTE type used at %C is not available on the target machine"
msgstr ""
#: fortran/decl.c:1647
-#, fuzzy, no-c-format
+#, no-c-format
msgid "DOUBLE COMPLEX at %C does not conform to the Fortran 95 standard"
-msgstr "Följ standarden ISO 1990 C"
+msgstr "DOUBLE COMPLEX vid %C följer inte standarden för Fortran 95"
#: fortran/decl.c:1670
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Type name '%s' at %C is ambiguous"
-msgstr "%s: flaggan \"%s\" är tvetydig\n"
+msgstr "Typnamnet \"%s\" vid %C är tvetydigt"
#: fortran/decl.c:1736
#, no-c-format
@@ -4222,24 +4131,24 @@ msgid "Enumerator cannot have attributes %C"
msgstr ""
#: fortran/decl.c:2013
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Missing dimension specification at %C"
-msgstr "\"%s\" definierades tidigare här"
+msgstr "Dimensionsspecifikation saknas vid %C"
#: fortran/decl.c:2095
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Duplicate %s attribute at %L"
-msgstr "upprepning av \"restrict\""
+msgstr "Dubblerade %s-attribut vid %L"
#: fortran/decl.c:2112
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Attribute at %L is not allowed in a TYPE definition"
-msgstr "attributet \"%s\" fungerar bara på funktioner"
+msgstr "Attribut vid %L är inte tillåtet i en TYPE-definition"
#: fortran/decl.c:2126
-#, fuzzy, no-c-format
+#, no-c-format
msgid "%s attribute at %L is not allowed outside of a MODULE"
-msgstr "attributet \"section\" är inte tillåten för \"%s\""
+msgstr "%s-attribut vid %L är inte tillåtet utanför en MODULE"
#. Now we have an error, which we signal, and then fix up
#. because the knock-on is plain and simple confusing.
@@ -4249,9 +4158,9 @@ msgid "Derived type at %C has not been previously defined and so cannot appear i
msgstr ""
#: fortran/decl.c:2294
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Syntax error in data declaration at %C"
-msgstr "två eller fler datatyper i deklaration av \"%s\""
+msgstr "Syntaxfel i datadeklaration vid %C"
#: fortran/decl.c:2440
#, no-c-format
@@ -4284,14 +4193,14 @@ msgid "Expected formal argument list in function definition at %C"
msgstr ""
#: fortran/decl.c:2586
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Unexpected junk after function declaration at %C"
-msgstr "motstridande deklarationer av \"%s\""
+msgstr "Oväntat skräp efter funktionsdeklaration vid %C"
#: fortran/decl.c:2607
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Function '%s' at %C already has a type of %s"
-msgstr "Funktionsbörjan justeras till denna 2-potens"
+msgstr "Funktionen \"%s\" vid %C har redan typen %s"
#: fortran/decl.c:2678
#, no-c-format
@@ -4349,9 +4258,9 @@ msgid "ENTRY statement at %C cannot appear within a contained subprogram"
msgstr ""
#: fortran/decl.c:2731
-#, fuzzy, no-c-format
+#, no-c-format
msgid "ENTRY statement at %C cannot appear in a contained procedure"
-msgstr "spill i konstant uttryck"
+msgstr "ENTRY-sats vid %C kan inte förekomma i en innesluten procedur"
#: fortran/decl.c:2812
#, no-c-format
@@ -4550,14 +4459,14 @@ msgid "%-5d "
msgstr ""
#: fortran/dump-parse-tree.c:55
-#, fuzzy, c-format
+#, c-format
msgid " "
-msgstr " TOTALT :"
+msgstr " "
#: fortran/dump-parse-tree.c:79 fortran/dump-parse-tree.c:597
-#, fuzzy, c-format
+#, c-format
msgid "(%s "
-msgstr "%s "
+msgstr "(%s "
#: fortran/dump-parse-tree.c:92 fortran/dump-parse-tree.c:844
#: fortran/dump-parse-tree.c:881 fortran/dump-parse-tree.c:891
@@ -4579,9 +4488,9 @@ msgid "("
msgstr ""
#: fortran/dump-parse-tree.c:112
-#, fuzzy, c-format
+#, c-format
msgid "%s = "
-msgstr "%s "
+msgstr "%s = "
#: fortran/dump-parse-tree.c:116
#, c-format
@@ -4595,9 +4504,9 @@ msgid " "
msgstr ""
#: fortran/dump-parse-tree.c:137 fortran/dump-parse-tree.c:312
-#, fuzzy, c-format
+#, c-format
msgid "()"
-msgstr "©"
+msgstr "()"
#: fortran/dump-parse-tree.c:141
#, c-format
@@ -4605,9 +4514,9 @@ msgid "(%d"
msgstr ""
#: fortran/dump-parse-tree.c:155
-#, fuzzy, c-format
+#, c-format
msgid " %s "
-msgstr " %s"
+msgstr " %s "
#: fortran/dump-parse-tree.c:182
#, c-format
@@ -4626,14 +4535,14 @@ msgid "UNKNOWN"
msgstr ""
#: fortran/dump-parse-tree.c:252
-#, fuzzy, c-format
+#, c-format
msgid " %% %s"
-msgstr "%s: %s"
+msgstr " %% %s"
#: fortran/dump-parse-tree.c:324 fortran/dump-parse-tree.c:381
-#, fuzzy, c-format
+#, c-format
msgid "''"
-msgstr "\""
+msgstr "''"
#: fortran/dump-parse-tree.c:326
#, c-format
@@ -4641,9 +4550,9 @@ msgid "%c"
msgstr ""
#: fortran/dump-parse-tree.c:333
-#, fuzzy, c-format
+#, c-format
msgid "%s("
-msgstr "%s"
+msgstr "%s("
#: fortran/dump-parse-tree.c:339
#, c-format
@@ -4672,9 +4581,9 @@ msgid ".true."
msgstr ""
#: fortran/dump-parse-tree.c:364
-#, fuzzy, c-format
+#, c-format
msgid ".false."
-msgstr "fclose"
+msgstr ".false."
#: fortran/dump-parse-tree.c:391
#, c-format
@@ -4687,9 +4596,9 @@ msgid "???"
msgstr ""
#: fortran/dump-parse-tree.c:415 fortran/dump-parse-tree.c:701
-#, fuzzy, c-format
+#, c-format
msgid "%s:"
-msgstr "%s"
+msgstr "%s:"
#: fortran/dump-parse-tree.c:425
#, c-format
@@ -4792,19 +4701,19 @@ msgid "parens"
msgstr ""
#: fortran/dump-parse-tree.c:504
-#, fuzzy, c-format
+#, c-format
msgid "%s["
-msgstr "%s"
+msgstr "%s["
#: fortran/dump-parse-tree.c:510
-#, fuzzy, c-format
+#, c-format
msgid "%s[["
-msgstr "%s"
+msgstr "%s[["
#: fortran/dump-parse-tree.c:531
-#, fuzzy, c-format
+#, c-format
msgid "(%s %s %s %s"
-msgstr "%s: %s: "
+msgstr "(%s %s %s %s"
#: fortran/dump-parse-tree.c:537
#, c-format
@@ -4932,9 +4841,9 @@ msgid "Array spec:"
msgstr ""
#: fortran/dump-parse-tree.c:649
-#, fuzzy, c-format
+#, c-format
msgid "Generic interfaces:"
-msgstr "Använd Cygwin-interfacet"
+msgstr "Generella gränssnitt:"
#: fortran/dump-parse-tree.c:651 fortran/dump-parse-tree.c:675
#: fortran/dump-parse-tree.c:704 fortran/dump-parse-tree.c:1044
@@ -4944,9 +4853,9 @@ msgid " %s"
msgstr " %s"
#: fortran/dump-parse-tree.c:657
-#, fuzzy, c-format
+#, c-format
msgid "result: %s"
-msgstr "bibliotek: %s\n"
+msgstr "resultat: %s"
#: fortran/dump-parse-tree.c:663
#, c-format
@@ -4964,9 +4873,9 @@ msgid " [Alt Return]"
msgstr ""
#: fortran/dump-parse-tree.c:684
-#, fuzzy, c-format
+#, c-format
msgid "Formal namespace"
-msgstr "användning ab `%s' i mall"
+msgstr "Formell namnrymd"
#: fortran/dump-parse-tree.c:742
#, c-format
@@ -4984,9 +4893,9 @@ msgid "symtree: %s Ambig %d"
msgstr ""
#: fortran/dump-parse-tree.c:766
-#, fuzzy, c-format
+#, c-format
msgid " from namespace %s"
-msgstr "okänt #pragma namespace %s"
+msgstr " från namnrymden %s"
#: fortran/dump-parse-tree.c:810
#, c-format
@@ -5014,9 +4923,9 @@ msgid "LABEL ASSIGN "
msgstr ""
#: fortran/dump-parse-tree.c:831
-#, fuzzy, c-format
+#, c-format
msgid " %d"
-msgstr " %s"
+msgstr " %d"
#: fortran/dump-parse-tree.c:835
#, c-format
@@ -5059,9 +4968,9 @@ msgid "IF "
msgstr ""
#: fortran/dump-parse-tree.c:898
-#, fuzzy, c-format
+#, c-format
msgid " %d, %d, %d"
-msgstr "%s: %s: "
+msgstr " %d, %d, %d"
#: fortran/dump-parse-tree.c:915
#, c-format
@@ -5367,9 +5276,9 @@ msgid " FMT=%d"
msgstr ""
#: fortran/dump-parse-tree.c:1400
-#, fuzzy, c-format
+#, c-format
msgid " NML=%s"
-msgstr " %s"
+msgstr " NML=%s"
#: fortran/dump-parse-tree.c:1414
#, c-format
@@ -5432,9 +5341,9 @@ msgid "procedure name = %s"
msgstr ""
#: fortran/dump-parse-tree.c:1532
-#, fuzzy, c-format
+#, c-format
msgid "Operator interfaces for %s:"
-msgstr "ingen superklass deklarerad i interface för \"%s\""
+msgstr "Operatorgränssnitt för %s:"
#: fortran/dump-parse-tree.c:1541
#, c-format
@@ -5447,9 +5356,9 @@ msgid "CONTAINS\n"
msgstr ""
#: fortran/error.c:137
-#, fuzzy, no-c-format
+#, no-c-format
msgid "In file %s:%d\n"
-msgstr "I funktion `%s':"
+msgstr "I filen %s:%d\n"
#: fortran/error.c:152
#, no-c-format
@@ -5457,29 +5366,26 @@ msgid " Included at %s:%d\n"
msgstr ""
#: fortran/error.c:204
-#, fuzzy, no-c-format
+#, no-c-format
msgid "<During initialization>\n"
-msgstr "initiering"
+msgstr "<Under initiering>\n"
#: fortran/error.c:479 fortran/error.c:519 fortran/error.c:545
-#, fuzzy
msgid "Warning:"
-msgstr "varning: "
+msgstr "Varning:"
#: fortran/error.c:521 fortran/error.c:595 fortran/error.c:619
-#, fuzzy
msgid "Error:"
-msgstr "internt fel: "
+msgstr "Fel:"
#: fortran/error.c:640
-#, fuzzy
msgid "Fatal Error:"
-msgstr "internt fel: "
+msgstr "Ödesdigert fel:"
#: fortran/error.c:659
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Internal Error at (1):"
-msgstr "internt fel"
+msgstr "Internt fel vid (1):"
#: fortran/expr.c:258
#, c-format
@@ -5487,14 +5393,14 @@ msgid "Constant expression required at %C"
msgstr ""
#: fortran/expr.c:261
-#, fuzzy, c-format
+#, c-format
msgid "Integer expression required at %C"
-msgstr "fältinitierare är ej konstant"
+msgstr "Heltalsuttryck krävs vid %C"
#: fortran/expr.c:266
-#, fuzzy, c-format
+#, c-format
msgid "Integer value too large in expression at %C"
-msgstr "heltalsspill i uttryck"
+msgstr "För stort heltalsvärde i uttryck vid %C"
#: fortran/expr.c:1274
#, no-c-format
@@ -5552,14 +5458,14 @@ msgid "Parameter '%s' at %L has not been declared or is a variable, which does n
msgstr ""
#: fortran/expr.c:1583
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Initialization expression didn't reduce %C"
-msgstr "initiering"
+msgstr "Initieringsuttryck kunde inte reduceras %C"
#: fortran/expr.c:1627
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Specification function '%s' at %L cannot be a statement function"
-msgstr "konstruerare kan inte vara en statisk medlemsfunktion\""
+msgstr "Secifikationsfunktionen \"%s\" vid %L kan inte vara en satsfunktion"
#: fortran/expr.c:1634
#, no-c-format
@@ -5587,9 +5493,9 @@ msgid "Dummy argument '%s' at %L cannot be INTENT(OUT)"
msgstr ""
#: fortran/expr.c:1732
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Variable '%s' cannot appear in the expression at %L"
-msgstr "spill i konstant uttryck"
+msgstr "Variabeln \"%s\" kan inte förekomma i uttrycket vid %L"
#: fortran/expr.c:1780
#, no-c-format
@@ -5602,9 +5508,9 @@ msgid "Expression at %L must be scalar"
msgstr ""
#: fortran/expr.c:1814
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Incompatible ranks in %s at %L"
-msgstr "inkompatibla typer i %s"
+msgstr "Inkompatibla ordningar i %s vid %L"
#: fortran/expr.c:1828
#, no-c-format
@@ -5622,14 +5528,14 @@ msgid "'%s' in the assignment at %L cannot be an l-value since it is a procedure
msgstr ""
#: fortran/expr.c:1876
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Incompatible ranks %d and %d in assignment at %L"
-msgstr "inkompatibla typer i %s"
+msgstr "Inkompatibla ordningar %d och %d i tilldelning vid %L"
#: fortran/expr.c:1883
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Variable type is UNKNOWN in assignment at %L"
-msgstr "inkompatibla typer i %s"
+msgstr "Variabeltypen är OKÄND i tilldelning vid %L"
#: fortran/expr.c:1890
#, no-c-format
@@ -5651,9 +5557,9 @@ msgid "Array assignment"
msgstr ""
#: fortran/expr.c:1931
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Incompatible types in assignment at %L, %s to %s"
-msgstr "inkompatibla typer i %s"
+msgstr "Inkompatibla typer i tilldelning vid %L, %s till %s"
#: fortran/expr.c:1954
#, no-c-format
@@ -5676,9 +5582,9 @@ msgid "Bad pointer object in PURE procedure at %L"
msgstr ""
#: fortran/expr.c:1992
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Different types in pointer assignment at %L"
-msgstr "inkompatibla typer i %s"
+msgstr "Olika typer i pekartilldelning vid %L"
#: fortran/expr.c:1999
#, no-c-format
@@ -5686,14 +5592,14 @@ msgid "Different kind type parameters in pointer assignment at %L"
msgstr ""
#: fortran/expr.c:2006
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Different ranks in pointer assignment at %L"
-msgstr "inkompatibla typer i %s"
+msgstr "Olika ordning i pekartilldelning vid %L"
#: fortran/expr.c:2020
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Different character lengths in pointer assignment at %L"
-msgstr "inkompatibla typer i %s"
+msgstr "Olika teckenlängder i pekartilldelning vid %L"
#: fortran/expr.c:2028
#, no-c-format
@@ -5731,7 +5637,7 @@ msgid ""
msgstr ""
#: fortran/gfortranspec.c:374
-#, fuzzy, c-format
+#, c-format
msgid "argument to '%s' missing"
msgstr "argument till \"%s\" saknas"
@@ -5761,9 +5667,9 @@ msgid "Syntax error: Trailing garbage in END INTERFACE statement at %C"
msgstr ""
#: fortran/interface.c:273
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected a nameless interface at %C"
-msgstr "Oväntad typ på \"id\" (%s)"
+msgstr "Förväntade ett namnlöst gränssnitt vid %C"
#: fortran/interface.c:284
#, no-c-format
@@ -5871,9 +5777,9 @@ msgid "Actual argument for '%s' cannot be an assumed-size array at %L"
msgstr ""
#: fortran/interface.c:1274
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Actual argument for '%s' must be a pointer at %L"
-msgstr "första argumentet till \"%s\" skall vara \"int\""
+msgstr "Aktuellt argument till \"%s\" skall vara en pekare vid %L"
#: fortran/interface.c:1284
#, no-c-format
@@ -5881,9 +5787,9 @@ msgid "Actual argument at %L must be definable to match dummy INTENT = OUT/INOUT
msgstr ""
#: fortran/interface.c:1305
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Missing actual argument for argument '%s' at %L"
-msgstr "Saknar argument till flaggan \"%s\""
+msgstr "Aktuellt argument saknas för argument \"%s\" vid %L"
#: fortran/interface.c:1490
#, no-c-format
@@ -5921,9 +5827,9 @@ msgid "Entity '%s' at %C is already present in the interface"
msgstr ""
#: fortran/intrinsic.c:2720
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Too many arguments in call to '%s' at %L"
-msgstr "för många argument till funktionen \"%s\""
+msgstr "För många argument i anrop till \"%s\" vid %L"
#: fortran/intrinsic.c:2734
#, no-c-format
@@ -5936,9 +5842,9 @@ msgid "Argument '%s' is appears twice in call to '%s' at %L"
msgstr ""
#: fortran/intrinsic.c:2755
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Missing actual argument '%s' in call to '%s' at %L"
-msgstr "Saknar argument till flaggan \"%s\""
+msgstr "Aktuellt argument \"%s\" saknas i anrop till \"%s\" vid %L"
#: fortran/intrinsic.c:2814
#, no-c-format
@@ -5966,19 +5872,19 @@ msgid "Subroutine call to intrinsic '%s' at %L is not PURE"
msgstr ""
#: fortran/intrinsic.c:3402
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Extension: Conversion from %s to %s at %L"
-msgstr "konvertering från NaN till int"
+msgstr "Utökning: Konvertering från %s till %s vid %L"
#: fortran/intrinsic.c:3405
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Conversion from %s to %s at %L"
-msgstr "konvertering från NaN till int"
+msgstr "Konvertering från %s till %s vid %L"
#: fortran/intrinsic.c:3453
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Can't convert %s to %s at %L"
-msgstr "kan inte konvertera till en pekartyp"
+msgstr "Kan inte konvertera %s till %s vid %L"
#: fortran/io.c:415
msgid "Positive width required"
@@ -5989,24 +5895,20 @@ msgid "Period required"
msgstr ""
#: fortran/io.c:417
-#, fuzzy
msgid "Nonnegative width required"
-msgstr "negativ storlek i bitfält \"%s\""
+msgstr "Ickenegativ bredd krävs"
#: fortran/io.c:418
-#, fuzzy
msgid "Unexpected element"
-msgstr "oväntad operand"
+msgstr "Oväntat element"
#: fortran/io.c:419
-#, fuzzy
msgid "Unexpected end of format string"
-msgstr "icke terminerad formatsträng"
+msgstr "Oväntat slut på formatsträng"
#: fortran/io.c:436
-#, fuzzy
msgid "Missing leading left parenthesis"
-msgstr "heltalsspill i uttryck"
+msgstr "Inledande vänsterparentes saknas"
#: fortran/io.c:474
msgid "Expected P edit descriptor"
@@ -6029,9 +5931,8 @@ msgid "Extension: $ descriptor at %C"
msgstr ""
#: fortran/io.c:512
-#, fuzzy
msgid "$ must be the last specifier"
-msgstr "ogiltigt typargument"
+msgstr "$ måste vara den sista specifceraren"
#: fortran/io.c:557
msgid "Repeat count cannot follow P descriptor"
@@ -6047,9 +5948,9 @@ msgid "Extension: Missing comma at %C"
msgstr ""
#: fortran/io.c:788 fortran/io.c:791
-#, fuzzy, no-c-format
+#, no-c-format
msgid "%s in format string at %C"
-msgstr "icke terminerad formatsträng"
+msgstr "%s i formatsträng vid %C"
#: fortran/io.c:832
#, no-c-format
@@ -6057,14 +5958,14 @@ msgid "Format statement in module main block at %C."
msgstr ""
#: fortran/io.c:838
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Missing format label at %C"
-msgstr "Filnamn saknas efter %s"
+msgstr "Formatetikett saknas vid %C"
#: fortran/io.c:896 fortran/io.c:920
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Duplicate %s specification at %C"
-msgstr "tidigare deklaration av \"%s\""
+msgstr "Dubblerad %s-specifikation vid %C"
#: fortran/io.c:927
#, no-c-format
@@ -6077,14 +5978,14 @@ msgid "Variable tag cannot be assigned in PURE procedure at %C"
msgstr ""
#: fortran/io.c:971
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Duplicate %s label specification at %C"
-msgstr "dubbel deklaration av etikett \"%s\""
+msgstr "Dubblerad %s-etikettspecifikation vid %C"
#: fortran/io.c:993
-#, fuzzy, no-c-format
+#, no-c-format
msgid "%s tag at %L must be of type %s"
-msgstr "%s har ingen medlem med namn \"%s\""
+msgstr "%s-tagg vid %L måste ha typen %s"
#: fortran/io.c:1004
#, no-c-format
@@ -6162,14 +6063,14 @@ msgid "Fortran 2003: FLUSH statement at %C"
msgstr ""
#: fortran/io.c:1615
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Duplicate UNIT specification at %C"
-msgstr "tidigare deklaration av \"%s\""
+msgstr "Dubblerad UNIT-specifikation vid %C"
#: fortran/io.c:1671
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Duplicate format specification at %C"
-msgstr "tidigare deklaration av \"%s\""
+msgstr "Dubblerad formatspecifikation vid %C"
#: fortran/io.c:1688
#, no-c-format
@@ -6177,9 +6078,9 @@ msgid "Symbol '%s' in namelist '%s' is INTENT(IN) at %C"
msgstr ""
#: fortran/io.c:1724
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Duplicate NML specification at %C"
-msgstr "tidigare deklaration av \"%s\""
+msgstr "Dubblerad NML-specifikation vid %C"
#: fortran/io.c:1733
#, no-c-format
@@ -6207,24 +6108,24 @@ msgid "External IO UNIT cannot be an array at %L"
msgstr ""
#: fortran/io.c:1858
-#, fuzzy, no-c-format
+#, no-c-format
msgid "ERR tag label %d at %L not defined"
-msgstr "etikett \"%s\" använd men inte definierad"
+msgstr "ERR-taggetikett %d vid %L inte definierad"
#: fortran/io.c:1870
-#, fuzzy, no-c-format
+#, no-c-format
msgid "END tag label %d at %L not defined"
-msgstr "etikett \"%s\" använd men inte definierad"
+msgstr "END-taggetikett %d vid %L inte definierad"
#: fortran/io.c:1882
-#, fuzzy, no-c-format
+#, no-c-format
msgid "EOR tag label %d at %L not defined"
-msgstr "etikett \"%s\" använd men inte definierad"
+msgstr "EOR-taggetikett %d vid %L inte definierad"
#: fortran/io.c:1892
-#, fuzzy, no-c-format
+#, no-c-format
msgid "FORMAT label %d at %L not defined"
-msgstr "etikett \"%s\" använd men inte definierad"
+msgstr "FORMAT-etikett %d vid %L inte definierad"
#: fortran/io.c:2013
#, no-c-format
@@ -6237,9 +6138,9 @@ msgid "Expected variable in READ statement at %C"
msgstr ""
#: fortran/io.c:2050
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected expression in %s statement at %C"
-msgstr "ISO C förbjuder intervalluttryck i switch-satser"
+msgstr "Förväntade uttryck i %s-sats vid %C"
#: fortran/io.c:2061
#, no-c-format
@@ -6258,9 +6159,9 @@ msgstr ""
#. A general purpose syntax error.
#: fortran/io.c:2147 fortran/io.c:2515 fortran/gfortran.h:1666
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Syntax error in %s statement at %C"
-msgstr "syntaxfel vid token \"%s\""
+msgstr "Syntaxfel i %s-sats vid %C"
#: fortran/io.c:2364
#, no-c-format
@@ -6308,9 +6209,9 @@ msgid "Integer too large at %C"
msgstr ""
#: fortran/match.c:239 fortran/parse.c:329
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Too many digits in statement label at %C"
-msgstr "ogiltigt typargument"
+msgstr "För många siffror i satsetikett vid %C"
#: fortran/match.c:245 fortran/parse.c:332
#, no-c-format
@@ -6318,9 +6219,9 @@ msgid "Statement label at %C is zero"
msgstr ""
#: fortran/match.c:278
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Label name '%s' at %C is ambiguous"
-msgstr "%s: flaggan \"%s\" är tvetydig\n"
+msgstr "Etikettnamnet \"%s\" vid %C är tvetydigt"
#: fortran/match.c:284
#, no-c-format
@@ -6373,9 +6274,9 @@ msgid "Obsolete: arithmetic IF statement at %C"
msgstr ""
#: fortran/match.c:986
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Syntax error in IF-expression at %C"
-msgstr "heltalsspill i uttryck"
+msgstr "Syntaxfel i IF-uttryck vid %C"
#: fortran/match.c:998
#, no-c-format
@@ -6418,19 +6319,19 @@ msgid "Name '%s' in %s statement at %C is not a loop name"
msgstr ""
#: fortran/match.c:1375
-#, fuzzy, no-c-format
+#, no-c-format
msgid "%s statement at %C is not within a loop"
-msgstr "continue-sats som inte är i en loop"
+msgstr "%s-sats vid %C är inte inne i en slinga"
#: fortran/match.c:1378
-#, fuzzy, no-c-format
+#, no-c-format
msgid "%s statement at %C is not within loop '%s'"
-msgstr "break-sats som inte är i en loop eller switch"
+msgstr "%s-sats vid %C är inte i slingan \"%s\""
#: fortran/match.c:1435
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Too many digits in STOP code at %C"
-msgstr "för många argument till funktionen \"%s\""
+msgstr "För många siffror i STOP-kod vid %C"
#: fortran/match.c:1488
#, no-c-format
@@ -6558,9 +6459,9 @@ msgid "Namelist group name '%s' at %C already is USE associated and cannot be re
msgstr ""
#: fortran/match.c:2555
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Assumed size array '%s' in namelist '%s'at %C is not allowed."
-msgstr "Min-/maxinstruktioner inte tillåtna"
+msgstr "Vektor \"%s\" med underförstådd storlek i namnlistan \"%s\" vid %C är inte tillåtet."
#: fortran/match.c:2561
#, no-c-format
@@ -6628,9 +6529,9 @@ msgid "Syntax error in FORALL iterator at %C"
msgstr ""
#: fortran/matchexp.c:29
-#, fuzzy, c-format
+#, c-format
msgid "Syntax error in expression at %C"
-msgstr "heltalsspill i uttryck"
+msgstr "Syntaxfel i uttryck vid %C"
#: fortran/matchexp.c:73
#, no-c-format
@@ -6648,9 +6549,9 @@ msgid "Expected a right parenthesis in expression at %C"
msgstr ""
#: fortran/matchexp.c:302
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expected exponent in expression at %C"
-msgstr "heltalsspill i uttryck"
+msgstr "Förväntade exponent i uttryck vid %C"
#: fortran/matchexp.c:338 fortran/matchexp.c:442
#, no-c-format
@@ -6683,19 +6584,16 @@ msgid "Module %s at line %d column %d: %s"
msgstr ""
#: fortran/module.c:887
-#, fuzzy
msgid "Unexpected EOF"
-msgstr "oväntad operand"
+msgstr "Oväntat filslut"
#: fortran/module.c:919
-#, fuzzy
msgid "Unexpected end of module in string constant"
-msgstr "konvertering från NaN till int"
+msgstr "Oväntat slut på modul i strängkonstant"
#: fortran/module.c:973
-#, fuzzy
msgid "Integer overflow"
-msgstr "heltalsspill i uttryck"
+msgstr "Heltalsspill"
#: fortran/module.c:1004
msgid "Name too long"
@@ -6706,9 +6604,8 @@ msgid "Bad name"
msgstr ""
#: fortran/module.c:1155
-#, fuzzy
msgid "Expected name"
-msgstr "Ange MCU-namnet"
+msgstr "Förväntade ett namn"
#: fortran/module.c:1158
msgid "Expected left parenthesis"
@@ -6723,19 +6620,17 @@ msgid "Expected integer"
msgstr ""
#: fortran/module.c:1167
-#, fuzzy
msgid "Expected string"
-msgstr "oväntad operand"
+msgstr "Förväntade en sträng"
#: fortran/module.c:1191
-#, fuzzy
msgid "find_enum(): Enum not found"
-msgstr "Kan inte hitta filen \"%s\""
+msgstr "find_enum(): Enum finns inte"
#: fortran/module.c:1206
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Error writing modules file: %s"
-msgstr "fel vid skrivning till %s"
+msgstr "Fel när modulfil skrevs: %s"
#: fortran/module.c:1565
msgid "Expected attribute bit name"
@@ -6750,23 +6645,20 @@ msgid "Error converting integer"
msgstr ""
#: fortran/module.c:2349
-#, fuzzy
msgid "Expected real string"
-msgstr "icke terminerad formatsträng"
+msgstr "Förväntade reell sträng"
#: fortran/module.c:2496
msgid "Expected expression type"
msgstr ""
#: fortran/module.c:2542
-#, fuzzy
msgid "Bad operator"
-msgstr "ogiltig %%-kod"
+msgstr "Felaktig operator"
#: fortran/module.c:2628
-#, fuzzy
msgid "Bad type in constant expression"
-msgstr "spill i konstant uttryck"
+msgstr "Felaktig typ i konstantuttryck"
#: fortran/module.c:2665
#, no-c-format
@@ -6789,24 +6681,23 @@ msgid "Intrinsic operator '%s' referenced at %L not found in module '%s'"
msgstr ""
#: fortran/module.c:3702
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Can't open module file '%s' for writing at %C: %s"
-msgstr "%s: kan inte öppna fil `%s' för läsning: %s\n"
+msgstr "Kan inte öppna modulfilen \"%s\" för skrivning vid %C: %s"
#: fortran/module.c:3727
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Error writing module file '%s' for writing: %s"
-msgstr "fel vid skrivning till %s"
+msgstr "Fel när modulfilen \"%s\" skrevs: %s"
#: fortran/module.c:3748
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Can't open module file '%s' for reading at %C: %s"
-msgstr "%s: kan inte öppna fil `%s' för läsning: %s\n"
+msgstr "Kan inte öppna modulfilen \"%s\" för läsning: %s"
#: fortran/module.c:3762
-#, fuzzy
msgid "Unexpected end of module"
-msgstr "oväntad PIC-symbol"
+msgstr "Oväntat modulslut"
#: fortran/module.c:3770
#, no-c-format
@@ -6874,9 +6765,9 @@ msgid "Ignoring statement label in empty statement at %C"
msgstr ""
#: fortran/parse.c:421
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Zero is not a valid statement label at %C"
-msgstr "ogiltigt typargument"
+msgstr "Noll är inte en giltig satsetikett vid %C"
#: fortran/parse.c:440
#, no-c-format
@@ -6903,19 +6794,16 @@ msgid "arithmetic IF"
msgstr ""
#: fortran/parse.c:743
-#, fuzzy
msgid "attribute declaration"
-msgstr "omdeklaration av \"%s\""
+msgstr "attributdeklaration"
#: fortran/parse.c:773
-#, fuzzy
msgid "data declaration"
-msgstr "tom deklaration"
+msgstr "datadeklaration"
#: fortran/parse.c:782
-#, fuzzy
msgid "derived type declaration"
-msgstr "tom deklaration"
+msgstr "härledd typdeklaration"
#: fortran/parse.c:861
msgid "block IF"
@@ -6926,14 +6814,12 @@ msgid "implied END DO"
msgstr ""
#: fortran/parse.c:937
-#, fuzzy
msgid "assignment"
-msgstr "utelämnad tilldelning"
+msgstr "tilldelning"
#: fortran/parse.c:940
-#, fuzzy
msgid "pointer assignment"
-msgstr "ogiltigt lvalue i tilldelning"
+msgstr "pekartilldelning"
#: fortran/parse.c:949
msgid "simple IF"
@@ -7128,14 +7014,14 @@ msgid "Two main PROGRAMs at %L and %C"
msgstr ""
#: fortran/primary.c:91
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Missing kind-parameter at %C"
-msgstr "Filnamn saknas efter %s"
+msgstr "Sortparameter saknas vid %C"
#: fortran/primary.c:214
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Integer kind %d at %C not available"
-msgstr "funktionskroppen inte tillgänglig"
+msgstr "Heltalssort %d vid %C inte tillgänglig"
#: fortran/primary.c:222
#, no-c-format
@@ -7163,14 +7049,14 @@ msgid "Extension: Hexadecimal constant at %C uses non-standard syntax."
msgstr ""
#: fortran/primary.c:367
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Empty set of digits in BOZ constant at %C"
-msgstr "spill i konstant uttryck"
+msgstr "Tom siffermängd i BOZ-konstant vid %C"
#: fortran/primary.c:373
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Illegal character in BOZ constant at %C"
-msgstr "utfyllnadstecken i strfmon-format"
+msgstr "Otillåtet tecken i BOZ-konstant vid %C"
#: fortran/primary.c:395
#, no-c-format
@@ -7253,9 +7139,9 @@ msgid "Error converting PARAMETER constant in complex constant at %C"
msgstr ""
#: fortran/primary.c:1242
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Syntax error in COMPLEX constant at %C"
-msgstr "spill i konstant uttryck"
+msgstr "Syntaxfel i COMPLEX-konstant vid %C"
#: fortran/primary.c:1424
#, no-c-format
@@ -7273,9 +7159,9 @@ msgid "Missing keyword name in actual argument list at %C"
msgstr ""
#: fortran/primary.c:1536
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Syntax error in argument list at %C"
-msgstr "ogiltigt typargument"
+msgstr "Syntaxfel i argumentlista vid %C"
#: fortran/primary.c:1623
#, no-c-format
@@ -7313,14 +7199,14 @@ msgid "Function '%s' requires an argument list at %C"
msgstr ""
#: fortran/primary.c:2195
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Missing argument list in function '%s' at %C"
-msgstr "Saknar argument till flaggan \"%s\""
+msgstr "Argumentlista saknas i funktionen \"%s\" vid %C"
#: fortran/primary.c:2223
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Symbol at %C is not appropriate for an expression"
-msgstr "flyttalsspill i uttryck"
+msgstr "Symbol vid %C passar inte som uttryck"
#: fortran/primary.c:2293
#, no-c-format
@@ -7428,9 +7314,9 @@ msgid "The upper bound in the last dimension must appear in the reference to the
msgstr ""
#: fortran/resolve.c:781 fortran/resolve.c:3615 fortran/resolve.c:4281
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Label %d referenced at %L is never defined"
-msgstr "etikett %s är refererad till utanför en funktion"
+msgstr "Etikett %d som refereras vid %L är aldrig definierad"
#: fortran/resolve.c:808
#, no-c-format
@@ -7448,9 +7334,9 @@ msgid "ELEMENTAL non-INTRINSIC procedure '%s' is not allowed as an actual argume
msgstr ""
#: fortran/resolve.c:845
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Symbol '%s' at %L is ambiguous"
-msgstr "%s: flaggan \"%s\" är tvetydig\n"
+msgstr "Symbolen \"%s\" vid %L är tvetydig"
#: fortran/resolve.c:974
#, no-c-format
@@ -7468,9 +7354,9 @@ msgid "Function '%s' at %L is INTRINSIC but is not compatible with an intrinsic"
msgstr ""
#: fortran/resolve.c:1068
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Unable to resolve the specific function '%s' at %L"
-msgstr "för många argument till funktionen \"%s\""
+msgstr "Kan inte slå upp den specifika funktionen \"%s\" vid %L"
#: fortran/resolve.c:1124 fortran/resolve.c:5889
#, no-c-format
@@ -7537,9 +7423,9 @@ msgid "'%s' at %L has a type, which is not consistent with the CALL at %L"
msgstr ""
#: fortran/resolve.c:1656
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Shapes for operands at %L and %L are not conformable"
-msgstr "shared och mdll är inkompatibla"
+msgstr "Formerna för operanderna vid %L och %L är inte konforma"
#: fortran/resolve.c:1713
#, c-format
@@ -7567,9 +7453,8 @@ msgid "Operand of .NOT. operator at %%L is %s"
msgstr ""
#: fortran/resolve.c:1786
-#, fuzzy
msgid "COMPLEX quantities cannot be compared at %L"
-msgstr "\"%s\" svarar inte på \"%s\""
+msgstr "COMPLEX-kvantiteter kan inte jämföras vid %L"
#: fortran/resolve.c:1812
#, c-format
@@ -7602,9 +7487,9 @@ msgid "Illegal stride of zero at %L"
msgstr ""
#: fortran/resolve.c:2043
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Array reference at %L is out of bounds"
-msgstr "%s: flaggan \"%s\" är tvetydig\n"
+msgstr "Vektorreferens vid %L är utanför gränsen"
#: fortran/resolve.c:2064
#, no-c-format
@@ -7771,9 +7656,9 @@ msgid "CASE label at %L overlaps with CASE label at %L"
msgstr ""
#: fortran/resolve.c:3233
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Expression in CASE statement at %L must be of type %s"
-msgstr "uttryckssats har inkomplett typ"
+msgstr "uttryck i CASE-sats vid %L måste vara av typ %s"
#: fortran/resolve.c:3244
#, no-c-format
@@ -7871,9 +7756,9 @@ msgid "Unsupported statement inside WHERE at %L"
msgstr ""
#: fortran/resolve.c:3856
-#, fuzzy, no-c-format
+#, no-c-format
msgid "expresion reference type error at %L"
-msgstr "returnerar referens till en temporär"
+msgstr "Typfel i utrycksreferens vid %L"
#: fortran/resolve.c:3888
#, no-c-format
@@ -8011,39 +7896,39 @@ msgid "'%s' at %L must have constant character length in this context"
msgstr ""
#: fortran/resolve.c:4636
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Allocatable '%s' at %L cannot have an initializer"
-msgstr "objekt med variabel storlek kan inte initieras"
+msgstr "Allokerbar \"%s\" vid %L kan inte ha en initerare"
#: fortran/resolve.c:4639
-#, fuzzy, no-c-format
+#, no-c-format
msgid "External '%s' at %L cannot have an initializer"
-msgstr "objekt med variabel storlek kan inte initieras"
+msgstr "Extern \"%s\" vid %L kan inte ha en initerare"
#: fortran/resolve.c:4642
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Dummy '%s' at %L cannot have an initializer"
-msgstr "objekt med variabel storlek kan inte initieras"
+msgstr "Atrapp-\"%s\" vid %L kan inteha en initerare"
#: fortran/resolve.c:4645
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Intrinsic '%s' at %L cannot have an initializer"
-msgstr "objekt med variabel storlek kan inte initieras"
+msgstr "Inbyggd \"%s\" vid %L kan inte ha en initerare"
#: fortran/resolve.c:4648
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Function result '%s' at %L cannot have an initializer"
-msgstr "objekt med variabel storlek kan inte initieras"
+msgstr "Funktionsresultat \"%s\" vid %L kan inte ha en initierare"
#: fortran/resolve.c:4651
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Automatic array '%s' at %L cannot have an initializer"
-msgstr "objekt med variabel storlek kan inte initieras"
+msgstr "Automatisk vektor \"%s\" vid %L kan inte ha en initierare"
#: fortran/resolve.c:4671
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Object '%s' at %L must have the SAVE attribute %s"
-msgstr "\"%s\" tar bara noll eller två argument"
+msgstr "Objekt \"%s\" vid %L måste ha SAVE-attributet %s"
#: fortran/resolve.c:4704
#, no-c-format
@@ -8056,9 +7941,9 @@ msgid "'%s' is of a PRIVATE type and cannot be a dummy argument of '%s', which i
msgstr ""
#: fortran/resolve.c:4738
-#, fuzzy, no-c-format
+#, no-c-format
msgid "External object '%s' at %L may not have an initializer"
-msgstr "objekt med variabel storlek kan inte initieras"
+msgstr "Externt objekt \"%s\" vid %L kan inte ha en initierare"
#: fortran/resolve.c:4757
#, no-c-format
@@ -8066,9 +7951,9 @@ msgid "CHARACTER(*) function '%s' at %L cannot be array-valued"
msgstr ""
#: fortran/resolve.c:4761
-#, fuzzy, no-c-format
+#, no-c-format
msgid "CHARACTER(*) function '%s' at %L cannot be pointer-valued"
-msgstr "objekt med variabel storlek kan inte initieras"
+msgstr "CHARACTER(*)-funktion \"%s\" vid %L kan inte ha pekarvärde"
#: fortran/resolve.c:4765
#, no-c-format
@@ -8146,9 +8031,9 @@ msgid "PRIVATE symbol '%s' cannot be member of PUBLIC namelist at %L"
msgstr ""
#: fortran/resolve.c:5091
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Intrinsic at %L does not exist"
-msgstr "språk %s känns inte igen"
+msgstr "Inbyggd konstruktion vid %L existerar inte"
#: fortran/resolve.c:5166
#, no-c-format
@@ -8171,14 +8056,14 @@ msgid "DATA statement at %L has more values than variables"
msgstr ""
#: fortran/resolve.c:5503
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Label %d at %L defined but not used"
-msgstr "etikett \"%s\" definierad men inte använd"
+msgstr "Etiketten %d vid %L är definierad men inte använd"
#: fortran/resolve.c:5508
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Label %d at %L defined but cannot be used"
-msgstr "etikett \"%s\" definierad men inte använd"
+msgstr "Etiketten %d vid %L är definierad men kan inte användas"
#: fortran/resolve.c:5592
#, no-c-format
@@ -8261,19 +8146,19 @@ msgid "File '%s' is being included recursively"
msgstr ""
#: fortran/scanner.c:1084
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Can't open file '%s'"
-msgstr "Kan inte öppna utdatafil \"%s\""
+msgstr "Kan inte öppna filen \"%s\""
#: fortran/scanner.c:1093
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Can't open included file '%s'"
-msgstr "Kan inte öppna utdatafil \"%s\""
+msgstr "Kan inte öppna inkluderad fil \"%s\""
#: fortran/scanner.c:1195
-#, fuzzy, c-format
+#, c-format
msgid "%s:%3d %s\n"
-msgstr "%s: %s"
+msgstr "%s:%3d %s\n"
#: fortran/simplify.c:101
#, no-c-format
@@ -8286,9 +8171,9 @@ msgid "KIND parameter of %s at %L must be an initialization expression"
msgstr ""
#: fortran/simplify.c:130
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid KIND parameter of %s at %L"
-msgstr "ogiltigt parametervärde \"%s\""
+msgstr "Ogiltig KIND-parameter %s vid %L"
#: fortran/simplify.c:227
#, no-c-format
@@ -8331,9 +8216,9 @@ msgid "Argument of IACHAR at %L must be of length one"
msgstr ""
#: fortran/simplify.c:1235
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid second argument of IBCLR at %L"
-msgstr "ogiltigt typargument till \"%s\""
+msgstr "Ogiltigt andra argument till IBCLR vid %L"
#: fortran/simplify.c:1243
#, no-c-format
@@ -8341,14 +8226,14 @@ msgid "Second argument of IBCLR exceeds bit size at %L"
msgstr ""
#: fortran/simplify.c:1270
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid second argument of IBITS at %L"
-msgstr "ogiltigt typargument till \"%s\""
+msgstr "Ogiltigt andra argument till IBITS vid %L"
#: fortran/simplify.c:1276
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid third argument of IBITS at %L"
-msgstr "ogiltigt typargument till \"%s\""
+msgstr "Ogiltigt tredje argument till IBITS vid %L"
#: fortran/simplify.c:1287
#, no-c-format
@@ -8356,9 +8241,9 @@ msgid "Sum of second and third arguments of IBITS exceeds bit size at %L"
msgstr ""
#: fortran/simplify.c:1335
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid second argument of IBSET at %L"
-msgstr "ogiltigt typargument till \"%s\""
+msgstr "Ogiltigt andra argument till IBSET vid %L"
#: fortran/simplify.c:1343
#, no-c-format
@@ -8381,9 +8266,9 @@ msgid "Argument of INT at %L is not a valid type"
msgstr ""
#: fortran/simplify.c:1662
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid second argument of ISHFT at %L"
-msgstr "ogiltigt typargument till \"%s\""
+msgstr "Ogiltigt andra argument till ISHFT vid %L"
#: fortran/simplify.c:1678
#, no-c-format
@@ -8391,14 +8276,14 @@ msgid "Magnitude of second argument of ISHFT exceeds bit size at %L"
msgstr ""
#: fortran/simplify.c:1742
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid second argument of ISHFTC at %L"
-msgstr "ogiltigt typargument till \"%s\""
+msgstr "Ogiltigt andra argument till ISHFTC vid %L"
#: fortran/simplify.c:1752
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid third argument of ISHFTC at %L"
-msgstr "ogiltigt typargument till \"%s\""
+msgstr "Ogiltigt tredje argument till ISHFTC vid %L"
#: fortran/simplify.c:1767
#, no-c-format
@@ -8411,9 +8296,9 @@ msgid "Argument of KIND at %L is a DERIVED type"
msgstr ""
#: fortran/simplify.c:1908
-#, fuzzy, no-c-format
+#, no-c-format
msgid "DIM argument at %L is out of bounds"
-msgstr "argumentet till \"asm\" är inte en konstant sträng"
+msgstr "DIM-argument vid %L är utanför gränsen"
#: fortran/simplify.c:2038
#, no-c-format
@@ -8456,14 +8341,14 @@ msgid "Second argument of NEAREST at %L may not be zero"
msgstr ""
#: fortran/simplify.c:2708
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Invalid second argument of REPEAT at %L"
-msgstr "ogiltigt typargument till \"%s\""
+msgstr "Ogiltigt andra argument till REPEAT vid %L"
#: fortran/simplify.c:2782
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Integer too large in shape specification at %L"
-msgstr "tidigare deklaration av \"%s\""
+msgstr "För stort heltal i formspecifikation vid %L"
#: fortran/simplify.c:2792
#, no-c-format
@@ -8541,14 +8426,14 @@ msgid "Symbol '%s' at %L has no IMPLICIT type"
msgstr ""
#: fortran/symbol.c:304
-#, fuzzy, no-c-format
+#, no-c-format
msgid "%s attribute not allowed in BLOCK DATA program unit at %L"
-msgstr "attributet \"section\" är inte tillåten för \"%s\""
+msgstr "%s-attribut är inte tillåtet i programenheten BLOCK DATA vid %L"
#: fortran/symbol.c:506 fortran/symbol.c:997
-#, fuzzy, no-c-format
+#, no-c-format
msgid "%s attribute conflicts with %s attribute at %L"
-msgstr "attributet \"%s\" är inte applicerbart på typer"
+msgstr "%s-attribut i konflikt med %s-attribut vid %L"
#: fortran/symbol.c:509
#, no-c-format
@@ -8571,9 +8456,9 @@ msgid "Cannot change attributes of symbol at %L after it has been used"
msgstr ""
#: fortran/symbol.c:592
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Duplicate %s attribute specified at %L"
-msgstr "inbyggd funktion \"%s\" deklarerad som icke-funktion"
+msgstr "Dubblerade %s-attribut angivna vid %L"
#: fortran/symbol.c:733
#, no-c-format
@@ -8581,14 +8466,14 @@ msgid "Cray Pointee at %L appears in multiple pointer() statements."
msgstr ""
#: fortran/symbol.c:765
-#, fuzzy, no-c-format
+#, no-c-format
msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
-msgstr "attributet \"section\" kan inte anges för lokala variabler"
+msgstr "SAVE-attribut vid %L kan inte anges i en PURE-procedur"
#: fortran/symbol.c:773
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Duplicate SAVE attribute specified at %L"
-msgstr "inbyggd funktion \"%s\" deklarerad som icke-funktion"
+msgstr "Dubblerat SAVE-attribut angivet vid %L"
#: fortran/symbol.c:1027
#, no-c-format
@@ -8626,9 +8511,9 @@ msgid "Component '%s' at %C already declared at %L"
msgstr ""
#: fortran/symbol.c:1361
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Symbol '%s' at %C is ambiguous"
-msgstr "%s: flaggan \"%s\" är tvetydig\n"
+msgstr "Symbolen \"%s\" vid %C är tvetydig"
#: fortran/symbol.c:1393
#, no-c-format
@@ -8636,9 +8521,9 @@ msgid "Derived type '%s' at %C is being used before it is defined"
msgstr ""
#: fortran/symbol.c:1421
-#, fuzzy, no-c-format
+#, no-c-format
msgid "'%s' at %C is not a member of the '%s' structure"
-msgstr "%s har ingen medlem med namn \"%s\""
+msgstr "\"%s\" vid %C är inte en medlem av posten \"%s\""
#: fortran/symbol.c:1427
#, no-c-format
@@ -8692,9 +8577,9 @@ msgid "Named COMMON block '%s' at %L shall be of the same size"
msgstr ""
#: fortran/trans-common.c:629
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Bad array reference at %L"
-msgstr "kan inte deklarera referenser till referenser"
+msgstr "Felaktig vektorreferens vid %L"
#: fortran/trans-common.c:637
#, no-c-format
@@ -8740,24 +8625,22 @@ msgid "Array bound mismatch"
msgstr ""
#: fortran/trans-const.c:161
-#, fuzzy
msgid "Array reference out of bounds"
-msgstr "returnerar referens till en temporär"
+msgstr "Vekturreferens utanför gränserna"
#: fortran/trans-const.c:164
-#, fuzzy
msgid "Incorrect function return value"
-msgstr "\"noreturn\"-funktion returnerar ett icke-void värde"
+msgstr "Felaktigt returvärde för funktion"
#: fortran/trans-decl.c:438
-#, fuzzy, no-c-format
+#, no-c-format
msgid "storage size not known"
-msgstr "lagringsstorlek på \"%s\" är okänd"
+msgstr "lagringsstorlek okänd"
#: fortran/trans-decl.c:445
-#, fuzzy, no-c-format
+#, no-c-format
msgid "storage size not constant"
-msgstr "lagringsstorlek på \"%s\" är inte konstant"
+msgstr "lagringsstorlek är inte konstant"
#: fortran/trans-io.c:533
msgid "Assigned label is not a format label"
@@ -8785,9 +8668,9 @@ msgstr ""
#. FIXME: i18n bug here. Order of prints should not be
#. fixed.
#: java/gjavah.c:916
-#, fuzzy, c-format
+#, c-format
msgid "ignored method '"
-msgstr "I metod `%s':"
+msgstr "ignorerad metod \""
#: java/gjavah.c:918
#, c-format
@@ -8800,9 +8683,9 @@ msgid "Try '"
msgstr "Försök med \""
#: java/gjavah.c:2356
-#, fuzzy, c-format
+#, c-format
msgid " --help' for more information.\n"
-msgstr "inte tillräcklig typinformation"
+msgstr " --help\" för mer information.\n"
#: java/gjavah.c:2363
#, c-format
@@ -8824,29 +8707,29 @@ msgid ""
msgstr "Generera C eller C++-huvudfiler från .class-filer\n"
#: java/gjavah.c:2365
-#, fuzzy, c-format
+#, c-format
msgid " -stubs Generate an implementation stub file\n"
-msgstr " -pipe Använd rör istället för temporära filer\n"
+msgstr " -stubs Generera en implementationsstubbfil\n"
#: java/gjavah.c:2366
-#, fuzzy, c-format
+#, c-format
msgid " -jni Generate a JNI header or stub\n"
-msgstr " -W Slå på extra varningar\n"
+msgstr " -jni Generera ett JNI-huvud eller -stubbe\n"
#: java/gjavah.c:2367
-#, fuzzy, c-format
+#, c-format
msgid " -force Always overwrite output files\n"
-msgstr " -o <fil> Skriv utdata i <fil> \n"
+msgstr " -force Skriv alltid över utdatafiler\n"
#: java/gjavah.c:2368
-#, fuzzy, c-format
+#, c-format
msgid " -old Unused compatibility option\n"
-msgstr " --help Visa den här informatationen\n"
+msgstr " -old Oanvänd kompatibilitetsflagga\n"
#: java/gjavah.c:2369
-#, fuzzy, c-format
+#, c-format
msgid " -trace Unused compatibility option\n"
-msgstr " --help Visa den här informatationen\n"
+msgstr " -trace Oanvänd kompatibilitetsflagga\n"
#: java/gjavah.c:2370
#, c-format
@@ -8879,9 +8762,9 @@ msgid " --classpath PATH Set path to find .class files\n"
msgstr " --classpath SÖKVÄG Ange sökväg för att hitta .class-filer\n"
#: java/gjavah.c:2378 java/jcf-dump.c:913
-#, fuzzy, c-format
+#, c-format
msgid " -IDIR Append directory to class path\n"
-msgstr " -B <katalog> Lägg till <katalog> till kompilatorns sökvägar\n"
+msgstr " -IKAT Lägg till katalog till klassökvägen\n"
#: java/gjavah.c:2379 java/jcf-dump.c:914
#, c-format
@@ -8899,9 +8782,9 @@ msgid " -d DIRECTORY Set output directory name\n"
msgstr " -d KATALOG Ange namn på utdatakatalog\n"
#: java/gjavah.c:2382 java/jcf-dump.c:916 java/jv-scan.c:115
-#, fuzzy, c-format
+#, c-format
msgid " -o FILE Set output file name\n"
-msgstr " -o <fil> Skriv utdata i <fil> \n"
+msgstr " -o FIL Ange utdatafilnamn\n"
#: java/gjavah.c:2383
#, c-format
@@ -8909,19 +8792,19 @@ msgid " -td DIRECTORY Set temporary directory name\n"
msgstr " -td KATALOG Ange namn på temporärkatalog\n"
#: java/gjavah.c:2385 java/jcf-dump.c:918 java/jv-scan.c:117
-#, fuzzy, c-format
+#, c-format
msgid " --help Print this help, then exit\n"
-msgstr " --help Visa den här informatationen\n"
+msgstr " --help Visa den här hjälpen, avsluta sedan\n"
#: java/gjavah.c:2386 java/jcf-dump.c:919 java/jv-scan.c:118
-#, fuzzy, c-format
+#, c-format
msgid " --version Print version number, then exit\n"
-msgstr " -V <version> Kör gcc version <version>, om den är installerad\n"
+msgstr " --version Skriv versionsnummer, avsluta sedan\n"
#: java/gjavah.c:2387 java/jcf-dump.c:920
-#, fuzzy, c-format
+#, c-format
msgid " -v, --verbose Print extra information while running\n"
-msgstr " -V <version> Kör gcc version <version>, om den är installerad\n"
+msgstr " -v, --verbose Skriv extra information under körning\n"
#: java/gjavah.c:2389
#, c-format
@@ -8942,28 +8825,29 @@ msgstr ""
" undertryck ordinarie utdata\n"
#: java/gjavah.c:2393
-#, fuzzy, c-format
+#, c-format
msgid " -MD Print all dependencies to stdout\n"
-msgstr " --help Visa den här informatationen\n"
+msgstr " -MD Skriv alla beroenden till standard ut\n"
#: java/gjavah.c:2394
-#, fuzzy, c-format
+#, c-format
msgid " -MMD Print non-system dependencies to stdout\n"
-msgstr " --help Visa den här informatationen\n"
+msgstr " -MMD Skriv beroenden utom systemberoenden till standard ut\n"
#: java/gjavah.c:2397 java/jcf-dump.c:922 java/jv-scan.c:120
-#, fuzzy, c-format
+#, c-format
msgid ""
"For bug reporting instructions, please see:\n"
"%s.\n"
msgstr ""
-"\n"
-"Instruktioner för bugrapportering, se:\n"
+"För felrapporteringsinstruktioner se:\n"
+"%s.\n"
+"Fel i översättningen rapporteras till <tp-sv@listor.tp-sv.se>\n"
#: java/gjavah.c:2581
-#, fuzzy, c-format
+#, c-format
msgid "Processing %s\n"
-msgstr "fel vid stängning av %s"
+msgstr "Barbetar %s\n"
# Det är en klass som hittas
#: java/gjavah.c:2591
@@ -8972,14 +8856,14 @@ msgid "Found in %s\n"
msgstr "Hittad i %s\n"
#: java/jcf-dump.c:829
-#, fuzzy, c-format
+#, c-format
msgid "Not a valid Java .class file.\n"
-msgstr "\"%s\" är inte ett giltigt filnamn"
+msgstr "Inte en giltig Java-.class-fil.\n"
#: java/jcf-dump.c:835
-#, fuzzy, c-format
+#, c-format
msgid "error while parsing constant pool\n"
-msgstr "%s före strängkonstant"
+msgstr "fel under tolkning av konstantpool\n"
#: java/jcf-dump.c:841 java/jcf-parse.c:759
#, gcc-internal-format
@@ -8987,14 +8871,14 @@ msgid "error in constant pool entry #%d\n"
msgstr "fel i konstantpoolpost nummer %d\n"
#: java/jcf-dump.c:851
-#, fuzzy, c-format
+#, c-format
msgid "error while parsing fields\n"
-msgstr "fel vid stängning av %s"
+msgstr "fel under tolkning av fält\n"
#: java/jcf-dump.c:857
-#, fuzzy, c-format
+#, c-format
msgid "error while parsing methods\n"
-msgstr "fel vid skrivning till %s"
+msgstr "fel vid tolkning av metoder\n"
#: java/jcf-dump.c:863
#, c-format
@@ -9025,14 +8909,14 @@ msgstr ""
"\n"
#: java/jcf-dump.c:909
-#, fuzzy, c-format
+#, c-format
msgid " -c Disassemble method bodies\n"
-msgstr " -W Slå på extra varningar\n"
+msgstr " -c Deassemblera metodkroppar\n"
#: java/jcf-dump.c:910
-#, fuzzy, c-format
+#, c-format
msgid " --javap Generate output in 'javap' format\n"
-msgstr " --help Visa den här informatationen\n"
+msgstr " --javap Generera utdata i \"javap\"-format\n"
#: java/jcf-dump.c:950 java/jcf-dump.c:1018
#, c-format
@@ -9040,9 +8924,9 @@ msgid "jcf-dump: no classes specified\n"
msgstr "jcf-dump: inga klasser angivna\n"
#: java/jcf-dump.c:1038
-#, fuzzy, c-format
+#, c-format
msgid "Cannot open '%s' for output.\n"
-msgstr "kan inte öppna fil %s för skrivning"
+msgstr "Kan inte öppna fil \"%s\" för utmatning.\n"
#: java/jcf-dump.c:1084
#, c-format
@@ -9083,9 +8967,9 @@ msgid " --no-assert Don't recognize the assert keyword\n"
msgstr " --no-assert Känn inte igen nyckelordet assert\n"
#: java/jv-scan.c:110
-#, fuzzy, c-format
+#, c-format
msgid " --complexity Print cyclomatic complexity of input file\n"
-msgstr " -o <fil> Skriv utdata i <fil> \n"
+msgstr " --complexity Skriv ut cyklomatisk komplexitet av infiler\n"
#: java/jv-scan.c:111
#, c-format
@@ -9108,9 +8992,9 @@ msgid " --list-filename Print input filename when listing class names\n
msgstr " --list-filename Skriv ut infilsnamnet när klassnamn listas\n"
#: java/jv-scan.c:257
-#, fuzzy, c-format
+#, c-format
msgid "%s: error: "
-msgstr "parsningsfel"
+msgstr "%s: fel: "
#: java/jv-scan.c:269 java/jv-scan.c:280
#, c-format
@@ -9123,14 +9007,14 @@ msgid "Usage: %s [OPTIONS]... CLASSNAMEmain [OUTFILE]\n"
msgstr "Använding: %s [FLAGGOR]... KLASSNAMNmain [UTFIL]\n"
#: java/jvgenmain.c:101
-#, fuzzy, c-format
+#, c-format
msgid "%s: Cannot open output file: %s\n"
-msgstr "Kunde inte öppna utdatafil %s.\n"
+msgstr "%s: Kan inte öppna utfil: %s\n"
#: java/jvgenmain.c:138
-#, fuzzy, c-format
+#, c-format
msgid "%s: Failed to close output file %s\n"
-msgstr "Kunde inte öppna utdatafil %s.\n"
+msgstr "%s: Misslyckades med att stänga utfil %s\n"
#: java/jvspec.c:420
#, c-format
@@ -9138,9 +9022,9 @@ msgid "can't specify '-D' without '--main'\n"
msgstr "får inte ange \"-D\" utan \"--main\"\n"
#: java/jvspec.c:423
-#, fuzzy, c-format
+#, c-format
msgid "'%s' is not a valid class name"
-msgstr "\"%s\" är inte ett giltigt filnamn"
+msgstr "\"%s\" är inte ett giltigt klassnamn"
#: java/jvspec.c:429
#, c-format
@@ -9172,30 +9056,25 @@ msgid "the m210 does not have little endian support"
msgstr "m210 har inte stöd för \"little endian\""
#: config/lynx.h:71
-#, fuzzy
msgid "cannot use mthreads and mlegacy-threads together"
-msgstr "mthreads och mlegacy-threads kan inte användas tillsammans."
+msgstr "mthreads och mlegacy-threads kan inte användas tillsammans"
#: config/lynx.h:96
-#, fuzzy
msgid "cannot use mshared and static together"
-msgstr "mshared och static kan inte användas tillsammans."
+msgstr "mshared och static kan inte användas tillsammans"
#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22
#: config/sparc/sol2-bi.h:169 config/sparc/sol2-bi.h:174
-#, fuzzy
msgid "does not support multilib"
-msgstr "ISO C89 stöder inte typen complex"
+msgstr "stödjer inte multilib"
#: config/mips/r3900.h:35
-#, fuzzy
msgid "-mhard-float not supported"
-msgstr "-mhard-float stöds inte."
+msgstr "-mhard-float stöds inte"
#: config/mips/r3900.h:37
-#, fuzzy
msgid "-msingle-float and -msoft-float cannot both be specified"
-msgstr "-msingle-float och -msoft-float kan inte båda anges."
+msgstr "-msingle-float och -msoft-float kan inte båda anges"
#: config/i386/cygwin.h:29
msgid "mno-cygwin and mno-win32 are not compatible"
@@ -9206,9 +9085,8 @@ msgid "shared and mdll are not compatible"
msgstr "shared och mdll är inkompatibla"
#: config/vax/netbsd-elf.h:42
-#, fuzzy
msgid "the -shared option is not currently supported for VAX ELF"
-msgstr "inbyggd funktion \"%s\" stöds inte för närvarande"
+msgstr "flaggan -shared stöds för närvarande inte för VAX ELF"
#: config/vax/vax.h:50 config/vax/vax.h:51
msgid "profiling not supported with -mg\n"
@@ -9227,19 +9105,16 @@ msgid "may not use both -EB and -EL"
msgstr "får inte använda både -EB och -EL"
#: config/i386/sco5.h:189
-#, fuzzy
msgid "-pg not supported on this platform"
-msgstr "attributet \"section\" stöds inte för denna målarkitektur"
+msgstr "-pg stöds inte på denna plattform"
#: config/i386/sco5.h:190
-#, fuzzy
msgid "-p and -pp specified - pick one"
-msgstr "-I- angiven två gånger"
+msgstr "-p och -pp angivna - välj en"
#: config/i386/sco5.h:264
-#, fuzzy
msgid "-G and -static are mutually exclusive"
-msgstr "-pedantic och -traditional är ömsesidigt uteslutande"
+msgstr "-G och -static är ömsesidigt uteslutande"
#: config/rs6000/darwin.h:105
msgid " conflicting code gen style switches are used"
@@ -9254,41 +9129,34 @@ msgid "-c or -S required for Ada"
msgstr "-c eller -S krävs för Ada"
#: gcc.c:767
-#, fuzzy
msgid "GCC does not support -C or -CC without -E"
-msgstr "GNU C stödjer inte -C utan -E"
+msgstr "GCC stödjer inte -C eller -CC utan -E"
#: gcc.c:961
-#, fuzzy
msgid "-E or -x required when input is from standard input"
-msgstr "-E krävs när indata tas från standard input"
+msgstr "-E eller -x krävs när indata tas från standard in"
#: config/s390/tpf.h:125
-#, fuzzy
msgid "static is not supported on TPF-OS"
-msgstr "-pipe stöds inte"
+msgstr "static stöds inte på TPF-OS"
#: config/sh/sh.h:460
-#, fuzzy
msgid "SH2a does not support little-endian"
-msgstr "-mstring stöds inte på \"little endian\"-system"
+msgstr "SH2a stödjer inte omvänd byteordning (\"little endian\")"
#: config/sparc/linux64.h:206 config/sparc/linux64.h:217
#: config/sparc/netbsd-elf.h:126 config/sparc/netbsd-elf.h:145
#: config/sparc/sol2-bi.h:197 config/sparc/sol2-bi.h:207
-#, fuzzy
msgid "may not use both -m32 and -m64"
-msgstr "får inte använda både -mfp64 och -m4650"
+msgstr "går inte att använda både -m64 och -m64"
#: config/vxworks.h:66
-#, fuzzy
msgid "-Xbind-now and -Xbind-lazy are incompatible"
-msgstr "-fjni och -femit-class-file är inkompatibla"
+msgstr "-Xbind-now och -Xbind-lazy är inkompatibla"
#: config/i386/nwld.h:35
-#, fuzzy
msgid "Static linking is not supported.\n"
-msgstr "-pipe stöds inte"
+msgstr "Statisk länkning stöds inte.\n"
#: java/lang-specs.h:34
msgid "-fjni and -femit-class-files are incompatible"
@@ -9335,9 +9203,8 @@ msgid "-private_bundle not allowed with -dynamiclib"
msgstr "-private_bundle är inte tillåten med -dynamiclib"
#: java/lang.opt:66
-#, fuzzy
msgid "Warn if a deprecated compiler feature, class, method, or field is used"
-msgstr "Varna om tveksamma deklarationer av main"
+msgstr "Varna om en kompilatorfunktion, klass, metod eller fält som avrådes ifrån används"
#: java/lang.opt:70
msgid "Warn if deprecated empty statements are found"
@@ -9352,9 +9219,8 @@ msgid "Warn if modifiers are specified when not necessary"
msgstr ""
#: java/lang.opt:82
-#, fuzzy
msgid "Deprecated; use --classpath instead"
-msgstr "Denna flagga avrådes ifrån, använd -Wextra istället"
+msgstr "Avrådes, använd -classpath istället"
#: java/lang.opt:86
msgid "Permit the use of the assert keyword"
@@ -9365,9 +9231,8 @@ msgid "Replace system path"
msgstr ""
#: java/lang.opt:112
-#, fuzzy
msgid "Generate checks for references to NULL"
-msgstr "Generera kod för en DLL"
+msgstr "Generera kontroller av referenser till NULL"
#: java/lang.opt:116
msgid "Set class path"
@@ -9378,18 +9243,16 @@ msgid "Output a class file"
msgstr ""
#: java/lang.opt:127
-#, fuzzy
msgid "Alias for -femit-class-file"
-msgstr "Alias för -mfloat-abi=soft"
+msgstr "Alias för -femit-class-file"
#: java/lang.opt:131
msgid "Choose input encoding (defaults from your locale)"
msgstr ""
#: java/lang.opt:135
-#, fuzzy
msgid "Set the extension directory path"
-msgstr " --extdirs SÖKVÄG Ange katalogsökväg för ändelser\n"
+msgstr "Ange katalogsökväg för utäkningar"
#: java/lang.opt:139
msgid "Input file is a file with a list of filenames to compile"
@@ -9420,14 +9283,12 @@ msgid "Enable assignability checks for stores into object arrays"
msgstr ""
#: java/lang.opt:173
-#, fuzzy
msgid "Generate code for the Boehm GC"
-msgstr "Genrera kod för M*Core M340"
+msgstr "Genrera kod för Boehm GC"
#: java/lang.opt:177
-#, fuzzy
msgid "Call a library routine to do integer divisions"
-msgstr "Använd inte divisionsinstruktionen"
+msgstr "Anropa en biblioteksrutin för att göra heltalsdivisioner"
#: java/lang.opt:181
msgid "Generated should be loaded by bootstrap loader"
@@ -9446,38 +9307,32 @@ msgid "Put MODULE files in 'directory'"
msgstr ""
#: fortran/lang.opt:42
-#, fuzzy
msgid "Warn about possible aliasing of dummy arguments"
-msgstr "Varna om eventuellt saknade parenteser"
+msgstr "Varna om eventuell aliasning av atrappargument"
#: fortran/lang.opt:46
-#, fuzzy
msgid "Warn about implicit conversion"
-msgstr "Varna om implicita funktionsdeklarationer"
+msgstr "Varna om implicita konverteringar"
#: fortran/lang.opt:50
-#, fuzzy
msgid "Warn about calls with implicit interface"
-msgstr "Varna om implicita funktionsdeklarationer"
+msgstr "Varna om anrop med implicit gränssnitt"
#: fortran/lang.opt:54
-#, fuzzy
msgid "Warn about truncated source lines"
-msgstr "Varna om ej typkonverterad NULL används som vaktpost"
+msgstr "Varna om avhuggna källkodsrader"
#: fortran/lang.opt:58
msgid "Warn about usage of non-standard intrinsics"
msgstr ""
#: fortran/lang.opt:62
-#, fuzzy
msgid "Warn about \"suspicious\" constructs"
-msgstr "Varna om tveksamma deklarationer av main"
+msgstr "Varna om \"misstänkta\" konstruktioner"
#: fortran/lang.opt:66
-#, fuzzy
msgid "Warn about underflow of numerical constant expressions"
-msgstr "spill i konstant uttryck"
+msgstr "Varna om underspill i numeriska konstantuttryck"
#: fortran/lang.opt:70 common.opt:162
msgid "Warn when a label is unused"
@@ -9516,19 +9371,16 @@ msgid "Allow dollar signs in entity names"
msgstr ""
#: fortran/lang.opt:106
-#, fuzzy
msgid "Display the code tree after parsing"
-msgstr " --help Visa den här informatationen\n"
+msgstr "Visa kodträdet efter tolkning"
#: fortran/lang.opt:110
-#, fuzzy
msgid "Use f2c calling convention"
-msgstr "Använd normal anropskonvention"
+msgstr "Använd f2c:s anropskonvention"
#: fortran/lang.opt:114
-#, fuzzy
msgid "Assume that the source file is fixed form"
-msgstr "Anta att pekare inte har alias"
+msgstr "Anta att källkodsfilen är i fast format"
#: fortran/lang.opt:118
msgid "Assume that the source file is free form"
@@ -9539,9 +9391,8 @@ msgid "Append underscores to externally visible names"
msgstr ""
#: fortran/lang.opt:126
-#, fuzzy
msgid "Use the Cray Pointer extension"
-msgstr "Använd Cygwin-interfacet"
+msgstr "Använd Cray-pekarutökningen"
#: fortran/lang.opt:130
msgid "Append a second underscore if the name already contains an underscore"
@@ -9580,9 +9431,8 @@ msgid "Set default accessibility of module entities to PRIVATE"
msgstr ""
#: fortran/lang.opt:166
-#, fuzzy
msgid "Don't generate code, just do syntax and semantics checking"
-msgstr "Generera kod för \"big endian\""
+msgstr "Generera inte kod, gör bara syntax- och semantikkontroller"
#: fortran/lang.opt:170
msgid "Try to layout derived types as compact as possible"
@@ -9593,28 +9443,24 @@ msgid "Copy array sections into a contiguous block on procedure entry"
msgstr ""
#: fortran/lang.opt:178
-#, fuzzy
msgid "Treat the input file as preprocessed"
-msgstr "Betrakta indatafilen som redan preprocessad"
+msgstr "Behandla indatafilen som redan preprocessad"
#: fortran/lang.opt:182
msgid "Set the kind for a real with the 'q' exponent to 'n'"
msgstr ""
#: fortran/lang.opt:186
-#, fuzzy
msgid "Stop on following floating point exceptions"
-msgstr "Inline:a inte flyttalsdivision"
+msgstr "Stanna vid följande flyttalsundantag"
#: fortran/lang.opt:190
-#, fuzzy
msgid "Conform to the ISO Fortran 95 standard"
-msgstr "Följ standarden ISO 1990 C"
+msgstr "Följ standarden ISO Fortran 95"
#: fortran/lang.opt:194
-#, fuzzy
msgid "Conform to the ISO Fortran 2003 standard"
-msgstr "Följ standarden ISO 1999 C"
+msgstr "Följ standarden ISO Fortran 2003"
#: fortran/lang.opt:198
msgid "Conform nothing in particular"
@@ -9629,14 +9475,12 @@ msgid "Use the narrowest integer type possible for enumeration types"
msgstr "Använd den smalaste möjliga heltalstypen för uppräkningstyper"
#: fortran/lang.opt:210
-#, fuzzy
msgid "Use little-endian format for unformatted files"
-msgstr "Använd \"little endian\" byteordning för data"
+msgstr "Använd omvänd byteordning (little endian) för oformaterade filer"
#: fortran/lang.opt:214
-#, fuzzy
msgid "Use big-endian format for unformatted files"
-msgstr "Använd \"big endian\" byteordning"
+msgstr "Använd rak byteordning (big endian) för oformaterade filer"
#: fortran/lang.opt:218
msgid "Use native format for unformatted files"
@@ -9651,9 +9495,8 @@ msgid "Trace lexical analysis"
msgstr ""
#: treelang/lang.opt:34
-#, fuzzy
msgid "Trace the parsing process"
-msgstr "Sikta på processorn AM33"
+msgstr "Följ tolkningsprocessen"
#: config/alpha/alpha.opt:24 config/i386/i386.opt:186
msgid "Do not use hardware fp"
@@ -9720,14 +9563,12 @@ msgid "Emit 32-bit relocations to the small data areas"
msgstr "Avge 32-bitars omlokaliseringar till de små dataareorna"
#: config/alpha/alpha.opt:91
-#, fuzzy
msgid "Emit direct branches to local functions"
-msgstr "Inga hopp i funktionen %s\n"
+msgstr "Mata ut direkta hopp till lokala funktioner"
#: config/alpha/alpha.opt:95
-#, fuzzy
msgid "Emit indirect branches to local functions"
-msgstr "Inga hopp i funktionen %s\n"
+msgstr "Mata ut indirekta hopp till lokala funktioner"
#: config/alpha/alpha.opt:99
msgid "Emit rdval instead of rduniq for thread pointer"
@@ -9735,15 +9576,13 @@ msgstr "Avge rdval istället för rduniq för trådpekare"
#: config/alpha/alpha.opt:103 config/s390/s390.opt:56
#: config/sparc/long-double-switch.opt:24
-#, fuzzy
msgid "Use 128-bit long double"
-msgstr "Använd 128 bit long double"
+msgstr "Använd 128-bitars long double"
#: config/alpha/alpha.opt:107 config/s390/s390.opt:60
#: config/sparc/long-double-switch.opt:28
-#, fuzzy
msgid "Use 64-bit long double"
-msgstr "Använd 64 bits long double"
+msgstr "Använd 64-bitars long double"
#: config/alpha/alpha.opt:111
msgid "Use features of and schedule given CPU"
@@ -9775,24 +9614,20 @@ msgid "Specify bit size of immediate TLS offsets"
msgstr "Ange bitstorlek på omedelbara TLS-avstånd"
#: config/frv/frv.opt:24
-#, fuzzy
msgid "Use 4 media accumulators"
-msgstr "Använd ackumulerande multiplikation"
+msgstr "Använd 4 mediaackumulatorer"
#: config/frv/frv.opt:28
-#, fuzzy
msgid "Use 8 media accumulators"
-msgstr "Använd ackumulerande multiplikation"
+msgstr "Använd 8 mediaackumulatorer"
#: config/frv/frv.opt:32
-#, fuzzy
msgid "Enable label alignment optimizations"
-msgstr "inkompatibla typer i %s"
+msgstr "Aktivera optimeringar av etikettjustering"
#: config/frv/frv.opt:36
-#, fuzzy
msgid "Dynamically allocate cc registers"
-msgstr "Allokera inte BK-registret"
+msgstr "Allokera dynamiskt cc-register"
#: config/frv/frv.opt:43
msgid "Set the cost of branches"
@@ -9803,37 +9638,32 @@ msgid "Enable conditional execution other than moves/scc"
msgstr ""
#: config/frv/frv.opt:51
-#, fuzzy
msgid "Change the maximum length of conditionally-executed sequences"
-msgstr "Den maximala längden på sökvägar som övervägs i cse"
+msgstr "Ändra den maximala längden på villkorligt utförda sekvenser"
#: config/frv/frv.opt:55
msgid "Change the number of temporary registers that are available to conditionally-executed sequences"
msgstr ""
#: config/frv/frv.opt:59
-#, fuzzy
msgid "Enable conditional moves"
-msgstr "Aktivera traditionell preprocessning"
+msgstr "Aktivera villkorliga flyttningar"
#: config/frv/frv.opt:63
-#, fuzzy
msgid "Set the target CPU type"
-msgstr "Ange namnet på målprocessorn"
+msgstr "Ange typen av mål-CPU"
#: config/frv/frv.opt:85
-#, fuzzy
msgid "Use fp double instructions"
-msgstr "Använd bitfältsinstruktioner"
+msgstr "Använd fp-double-instruktioner"
#: config/frv/frv.opt:89
msgid "Change the ABI to allow double word insns"
msgstr ""
#: config/frv/frv.opt:93
-#, fuzzy
msgid "Enable Function Descriptor PIC mode"
-msgstr " -p Slå på funktionsprofilering\n"
+msgstr "Aktivera funktionsbeskrivar-PIC-läge"
#: config/frv/frv.opt:97
msgid "Just use icc0/fcc0"
@@ -9865,43 +9695,36 @@ msgid "Use hardware floating point"
msgstr "Använd hårdvaruflyttal"
#: config/frv/frv.opt:125
-#, fuzzy
msgid "Enable inlining of PLT in function calls"
-msgstr "kan inte inline:a funktion \"main\""
+msgstr "Aktivera inline:ing av PLT i funktionsanrop"
#: config/frv/frv.opt:129
-#, fuzzy
msgid "Enable PIC support for building libraries"
-msgstr "Aktivera stöd för stora objekt"
+msgstr "Aktivera PIC-stöd för att bygga bibliotek"
#: config/frv/frv.opt:133
msgid "Follow the EABI linkage requirements"
msgstr ""
#: config/frv/frv.opt:137
-#, fuzzy
msgid "Disallow direct calls to global functions"
-msgstr "Inga hopp i funktionen %s\n"
+msgstr "Tillåt inte direkta anrop till globala funktioner"
#: config/frv/frv.opt:141
-#, fuzzy
msgid "Use media instructions"
-msgstr "Använd bitfältsinstruktioner"
+msgstr "Använd mediainstruktioner"
#: config/frv/frv.opt:145
-#, fuzzy
msgid "Use multiply add/subtract instructions"
-msgstr "Använd ackumulerande fp-multiplikationsinstruktioner"
+msgstr "Använd multiplicerande addera-/subtraherafunktioner"
#: config/frv/frv.opt:149
-#, fuzzy
msgid "Enable optimizing &&/|| in conditional execution"
-msgstr "typfel i villkorsuttryck"
+msgstr "Aktivera optimering av &&/|| i villkorliga uttryck"
#: config/frv/frv.opt:153
-#, fuzzy
msgid "Enable nested conditional execution optimizations"
-msgstr "Slå på automatisk mallinstansiering"
+msgstr "Aktivera nästade optimeringar av villkorlig exekvering"
#: config/frv/frv.opt:158
msgid "Do not mark ABI switches in e_flags"
@@ -9912,9 +9735,8 @@ msgid "Remove redundant membars"
msgstr ""
#: config/frv/frv.opt:166
-#, fuzzy
msgid "Pack VLIW instructions"
-msgstr "Använd bitfältsinstruktioner"
+msgstr "Packa VLIW-instruktioner"
#: config/frv/frv.opt:170
msgid "Enable setting GPRs to the result of comparisons"
@@ -9933,9 +9755,8 @@ msgid "Assume a large TLS segment"
msgstr ""
#: config/frv/frv.opt:186
-#, fuzzy
msgid "Do not assume a large TLS segment"
-msgstr "Generera inte kod för stackkontroll"
+msgstr "Anta inte ett stort TLS-segment"
#: config/frv/frv.opt:191
msgid "Cause gas to print tomcat statistics"
@@ -9970,19 +9791,16 @@ msgid "Return pointers in both a0 and d0"
msgstr ""
#: config/s390/tpf.opt:24
-#, fuzzy
msgid "Enable TPF-OS tracing code"
-msgstr "Aktivera spårningskod för OS:et tpf"
+msgstr "Aktivera TPF-OS-spårningskod"
#: config/s390/tpf.opt:28
-#, fuzzy
msgid "Specify main object for TPF-OS"
-msgstr "Ange maximalt antal iterationer för RPTS"
+msgstr "Ange huvudobjekt för TPF-OS"
#: config/s390/s390.opt:24
-#, fuzzy
msgid "31 bit ABI"
-msgstr "Använd 64-bitars ABI"
+msgstr "31-bitars ABI"
#: config/s390/s390.opt:28
#, fuzzy
diff --git a/gcc/po/zh_TW.po b/gcc/po/zh_TW.po
new file mode 100644
index 00000000000..4eaff768d6a
--- /dev/null
+++ b/gcc/po/zh_TW.po
@@ -0,0 +1,28574 @@
+# Traditional Chinese translation for gcc.
+# Copyright (C) 2005, 06 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gcc package.
+# Meng Jie <zuxyhere@eastday.com>, 2005.
+# Wei-Lun Chao <chaoweilun@pcmail.com.tw>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gcc 4.1.0\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2006-02-28 00:11-0800\n"
+"PO-Revision-Date: 2006-03-28 09:19+0800\n"
+"Last-Translator: Wei-Lun Chao <chaoweilun@pcmail.com.tw>\n"
+"Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: c-decl.c:3739
+msgid "<anonymous>"
+msgstr "<anonymous>"
+
+#: c-format.c:343 c-format.c:367
+msgid "' ' flag"
+msgstr "「 ã€æ——標"
+
+#: c-format.c:343 c-format.c:367
+msgid "the ' ' printf flag"
+msgstr "「 ã€printf 旗標"
+
+#: c-format.c:344 c-format.c:368 c-format.c:402 c-format.c:414 c-format.c:471
+msgid "'+' flag"
+msgstr "「+ã€æ——標"
+
+#: c-format.c:344 c-format.c:368 c-format.c:402 c-format.c:414
+msgid "the '+' printf flag"
+msgstr "「+ã€printf 旗標"
+
+#: c-format.c:345 c-format.c:369 c-format.c:415 c-format.c:447
+msgid "'#' flag"
+msgstr "「#ã€æ——標"
+
+#: c-format.c:345 c-format.c:369 c-format.c:415
+msgid "the '#' printf flag"
+msgstr "「#ã€printf 旗標"
+
+#: c-format.c:346 c-format.c:370 c-format.c:445
+msgid "'0' flag"
+msgstr "「0ã€æ——標"
+
+#: c-format.c:346 c-format.c:370
+msgid "the '0' printf flag"
+msgstr "「0ã€printf 旗標"
+
+#: c-format.c:347 c-format.c:371 c-format.c:444 c-format.c:474
+msgid "'-' flag"
+msgstr "「-ã€æ——標"
+
+#: c-format.c:347 c-format.c:371
+msgid "the '-' printf flag"
+msgstr "「-ã€printf 旗標"
+
+#: c-format.c:348 c-format.c:428
+msgid "''' flag"
+msgstr "「'ã€æ——標"
+
+#: c-format.c:348
+msgid "the ''' printf flag"
+msgstr "「'ã€printf 旗標"
+
+#: c-format.c:349 c-format.c:429
+msgid "'I' flag"
+msgstr "「Iã€æ——標"
+
+#: c-format.c:349
+msgid "the 'I' printf flag"
+msgstr "「Iã€printf 旗標"
+
+#: c-format.c:350 c-format.c:372 c-format.c:426 c-format.c:448 c-format.c:475
+#: c-format.c:1601 config/sol2-c.c:46
+msgid "field width"
+msgstr "欄ä½å¯¬"
+
+#: c-format.c:350 c-format.c:372 config/sol2-c.c:46
+msgid "field width in printf format"
+msgstr "printf æ ¼å¼çš„欄ä½å¯¬åº¦"
+
+#: c-format.c:351 c-format.c:373 c-format.c:404 c-format.c:417
+msgid "precision"
+msgstr "精度"
+
+#: c-format.c:351 c-format.c:373 c-format.c:404 c-format.c:417
+msgid "precision in printf format"
+msgstr "printf æ ¼å¼çš„精度"
+
+#: c-format.c:352 c-format.c:374 c-format.c:405 c-format.c:418 c-format.c:427
+#: c-format.c:478 config/sol2-c.c:47
+msgid "length modifier"
+msgstr "長度修飾符"
+
+#: c-format.c:352 c-format.c:374 c-format.c:405 c-format.c:418
+#: config/sol2-c.c:47
+msgid "length modifier in printf format"
+msgstr "printf æ ¼å¼çš„長度修飾符"
+
+#: c-format.c:403 c-format.c:416
+msgid "'q' flag"
+msgstr "「qã€æ——標"
+
+#: c-format.c:403 c-format.c:416
+msgid "the 'q' diagnostic flag"
+msgstr "「qã€è¨ºæ–·æ——標"
+
+#: c-format.c:424
+msgid "assignment suppression"
+msgstr "å–消賦值"
+
+#: c-format.c:424
+msgid "the assignment suppression scanf feature"
+msgstr "scanf çš„å–消賦值特性"
+
+#: c-format.c:425
+msgid "'a' flag"
+msgstr "「aã€æ——標"
+
+#: c-format.c:425
+msgid "the 'a' scanf flag"
+msgstr "「aã€scanf 旗標"
+
+#: c-format.c:426
+msgid "field width in scanf format"
+msgstr "scanf æ ¼å¼çš„欄ä½å¯¬"
+
+#: c-format.c:427
+msgid "length modifier in scanf format"
+msgstr "scanf æ ¼å¼çš„長度修飾符"
+
+#: c-format.c:428
+msgid "the ''' scanf flag"
+msgstr "「'ã€scanf 旗標"
+
+#: c-format.c:429
+msgid "the 'I' scanf flag"
+msgstr "「Iã€scanf 旗標"
+
+#: c-format.c:443
+msgid "'_' flag"
+msgstr "「_ã€æ——標"
+
+#: c-format.c:443
+msgid "the '_' strftime flag"
+msgstr "「_ã€strftime 旗標"
+
+#: c-format.c:444
+msgid "the '-' strftime flag"
+msgstr "「-ã€strftime 旗標"
+
+#: c-format.c:445
+msgid "the '0' strftime flag"
+msgstr "「0ã€strftime 旗標"
+
+#: c-format.c:446 c-format.c:470
+msgid "'^' flag"
+msgstr "「^ã€æ——標"
+
+#: c-format.c:446
+msgid "the '^' strftime flag"
+msgstr "「^ã€strftime 旗標"
+
+#: c-format.c:447
+msgid "the '#' strftime flag"
+msgstr "「#ã€strftime 旗標"
+
+#: c-format.c:448
+msgid "field width in strftime format"
+msgstr "strftime æ ¼å¼çš„欄ä½å¯¬åº¦"
+
+#: c-format.c:449
+msgid "'E' modifier"
+msgstr "「Eã€ä¿®é£¾ç¬¦"
+
+#: c-format.c:449
+msgid "the 'E' strftime modifier"
+msgstr "「Eã€strftime 修飾符"
+
+#: c-format.c:450
+msgid "'O' modifier"
+msgstr "「Oã€ä¿®é£¾ç¬¦"
+
+#: c-format.c:450
+msgid "the 'O' strftime modifier"
+msgstr "「Oã€strftime 修飾符"
+
+#: c-format.c:451
+msgid "the 'O' modifier"
+msgstr "「Oã€ä¿®é£¾ç¬¦"
+
+#: c-format.c:469
+msgid "fill character"
+msgstr "å¡«å……å­—å…ƒ"
+
+#: c-format.c:469
+msgid "fill character in strfmon format"
+msgstr "strfmon æ ¼å¼çš„å¡«å……å­—å…ƒ"
+
+#: c-format.c:470
+msgid "the '^' strfmon flag"
+msgstr "「^ã€strfmon 旗標"
+
+#: c-format.c:471
+msgid "the '+' strfmon flag"
+msgstr "「+ã€strfmon 旗標"
+
+#: c-format.c:472
+msgid "'(' flag"
+msgstr "「(ã€æ——標"
+
+#: c-format.c:472
+msgid "the '(' strfmon flag"
+msgstr "「(ã€strfmon 旗標"
+
+#: c-format.c:473
+msgid "'!' flag"
+msgstr "「!ã€æ——標"
+
+#: c-format.c:473
+msgid "the '!' strfmon flag"
+msgstr "「!ã€strfmon 旗標"
+
+#: c-format.c:474
+msgid "the '-' strfmon flag"
+msgstr "「-ã€strfmon 旗標"
+
+#: c-format.c:475
+msgid "field width in strfmon format"
+msgstr "strfmon æ ¼å¼çš„欄ä½å¯¬åº¦"
+
+#: c-format.c:476
+msgid "left precision"
+msgstr "左精度"
+
+#: c-format.c:476
+msgid "left precision in strfmon format"
+msgstr "strfmon æ ¼å¼çš„左精度"
+
+#: c-format.c:477
+msgid "right precision"
+msgstr "å³ç²¾åº¦"
+
+#: c-format.c:477
+msgid "right precision in strfmon format"
+msgstr "strfmon æ ¼å¼çš„å³ç²¾åº¦"
+
+#: c-format.c:478
+msgid "length modifier in strfmon format"
+msgstr "strfmon æ ¼å¼çš„長度修飾符"
+
+#: c-format.c:1703
+msgid "field precision"
+msgstr "欄ä½ç²¾åº¦"
+
+#: c-incpath.c:70
+#, c-format
+msgid "ignoring duplicate directory \"%s\"\n"
+msgstr "忽略é‡è¤‡çš„目錄「%sã€\n"
+
+#: c-incpath.c:73
+#, c-format
+msgid " as it is a non-system directory that duplicates a system directory\n"
+msgstr " 因為它是一個é‡è¤‡äº†ç³»çµ±ç›®éŒ„çš„éžç³»çµ±ç›®éŒ„\n"
+
+#: c-incpath.c:77
+#, c-format
+msgid "ignoring nonexistent directory \"%s\"\n"
+msgstr "忽略ä¸å­˜åœ¨çš„目錄「%sã€\n"
+
+#: c-incpath.c:286
+#, c-format
+msgid "#include \"...\" search starts here:\n"
+msgstr "#include \"...\" æœå°‹å¾žé€™è£¡é–‹å§‹ï¼š\n"
+
+#: c-incpath.c:290
+#, c-format
+msgid "#include <...> search starts here:\n"
+msgstr "#include <...> æœå°‹å¾žé€™è£¡é–‹å§‹ï¼š\n"
+
+#: c-incpath.c:295
+#, c-format
+msgid "End of search list.\n"
+msgstr "æœå°‹æ¸…å–®çµæŸã€‚\n"
+
+#: c-opts.c:1339
+msgid "<built-in>"
+msgstr "<built-in>"
+
+#: c-opts.c:1355
+msgid "<command line>"
+msgstr "<command line>"
+
+#: c-typeck.c:2226 c-typeck.c:4592 c-typeck.c:4594 c-typeck.c:4602
+#: c-typeck.c:4632 c-typeck.c:6011
+msgid "initializer element is not constant"
+msgstr "åˆå§‹å€¼è¨­å®šå…ƒç´ ä¸æ˜¯å¸¸æ•¸"
+
+#: c-typeck.c:4398
+msgid "array initialized from parenthesized string constant"
+msgstr "用括號中的字串常數åˆå§‹åŒ–陣列"
+
+#: c-typeck.c:4458 cp/typeck2.c:672
+#, gcc-internal-format
+msgid "char-array initialized from wide string"
+msgstr "用寬字串åˆå§‹åŒ– char 陣列"
+
+#: c-typeck.c:4463
+msgid "wchar_t-array initialized from non-wide string"
+msgstr "用窄字串åˆå§‹åŒ– wchar_t 陣列"
+
+#: c-typeck.c:4481 cp/typeck2.c:692
+#, gcc-internal-format
+msgid "initializer-string for array of chars is too long"
+msgstr "用以åˆå§‹åŒ–字元陣列的字串太長"
+
+#: c-typeck.c:4487
+msgid "array of inappropriate type initialized from string constant"
+msgstr "用字串常數åˆå§‹åŒ–的陣列類型ä¸åˆé©"
+
+#. ??? This should not be an error when inlining calls to
+#. unprototyped functions.
+#: c-typeck.c:4551 c-typeck.c:4050 cp/typeck.c:1398
+#, gcc-internal-format
+msgid "invalid use of non-lvalue array"
+msgstr "å°éžå·¦å€¼é™£åˆ—的無效使用"
+
+#: c-typeck.c:4575
+msgid "array initialized from non-constant array expression"
+msgstr "用éžå¸¸æ•¸çš„陣列é‹ç®—å¼åˆå§‹åŒ–陣列"
+
+#: c-typeck.c:4639 c-typeck.c:6015
+#, gcc-internal-format
+msgid "initializer element is not computable at load time"
+msgstr "åˆå§‹å€¼è¨­å®šä¸­çš„元素在載入時無法被計算出"
+
+#. 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-typeck.c:4650 c-decl.c:3181 c-decl.c:3196
+#, gcc-internal-format
+msgid "variable-sized object may not be initialized"
+msgstr "å¯è®Šå¤§å°çš„物件ä¸èƒ½è¢«åˆå§‹åŒ–"
+
+#: c-typeck.c:4654
+msgid "invalid initializer"
+msgstr "無效的åˆå§‹å€¼è¨­å®š"
+
+#: c-typeck.c:5128
+msgid "extra brace group at end of initializer"
+msgstr "åˆå§‹å€¼è¨­å®šé …末尾有多餘的大括號組"
+
+#: c-typeck.c:5148
+msgid "missing braces around initializer"
+msgstr "åˆå§‹å€¼è¨­å®šå‘¨åœç¼ºå°‘大括號"
+
+#: c-typeck.c:5209
+msgid "braces around scalar initializer"
+msgstr "標é‡åˆå§‹åŒ–帶大括號"
+
+#: c-typeck.c:5266
+msgid "initialization of flexible array member in a nested context"
+msgstr "在巢狀的上下文中åˆå§‹åŒ–彈性陣列æˆå“¡"
+
+#: c-typeck.c:5268
+msgid "initialization of a flexible array member"
+msgstr "å°å½ˆæ€§é™£åˆ—æˆå“¡çš„åˆå§‹åŒ–"
+
+#: c-typeck.c:5295
+msgid "missing initializer"
+msgstr "缺少åˆå§‹å€¼è¨­å®š"
+
+#: c-typeck.c:5317
+msgid "empty scalar initializer"
+msgstr "空的標é‡åˆå§‹å€¼è¨­å®šé …"
+
+#: c-typeck.c:5322
+msgid "extra elements in scalar initializer"
+msgstr "標é‡åˆå§‹åŒ–設定中有多餘元素"
+
+#: c-typeck.c:5426 c-typeck.c:5486
+msgid "array index in non-array initializer"
+msgstr "在éžé™£åˆ—åˆå§‹å€¼è¨­å®šé …中出ç¾é™£åˆ—索引"
+
+#: c-typeck.c:5431 c-typeck.c:5539
+msgid "field name not in record or union initializer"
+msgstr "欄ä½åä¸åœ¨è¨˜éŒ„或è¯åˆåˆå§‹åŒ–設定中"
+
+#: c-typeck.c:5477
+msgid "array index in initializer not of integer type"
+msgstr "åˆå§‹å€¼è¨­å®šä¸­é™£åˆ—索引ä¸æ˜¯æ•´åž‹"
+
+#: c-typeck.c:5482 c-typeck.c:5484
+msgid "nonconstant array index in initializer"
+msgstr "åˆå§‹å€¼è¨­å®šä¸­é™£åˆ—索引ä¸æ˜¯å¸¸æ•¸"
+
+#: c-typeck.c:5488 c-typeck.c:5491
+msgid "array index in initializer exceeds array bounds"
+msgstr "åˆå§‹åŒ–時陣列索引越界"
+
+#: c-typeck.c:5502
+msgid "empty index range in initializer"
+msgstr "åˆå§‹å€¼è¨­å®šé …中索引範åœç‚ºç©º"
+
+#: c-typeck.c:5511
+msgid "array index range in initializer exceeds array bounds"
+msgstr "åˆå§‹å€¼è¨­å®šä¸­è³‡æ–™ç´¢å¼•ç¯„åœè¶…出陣列邊界"
+
+#: c-typeck.c:5586 c-typeck.c:5607 c-typeck.c:6079
+msgid "initialized field with side-effects overwritten"
+msgstr "帶副作用的欄ä½åˆå§‹åŒ–設定被覆寫"
+
+#: c-typeck.c:6287
+msgid "excess elements in char array initializer"
+msgstr "字元陣列åˆå§‹å€¼è¨­å®šé …中有多餘元素"
+
+#: c-typeck.c:6294 c-typeck.c:6340
+msgid "excess elements in struct initializer"
+msgstr "çµæ§‹åˆå§‹å€¼è¨­å®šé …中有多餘元素"
+
+#: c-typeck.c:6355
+msgid "non-static initialization of a flexible array member"
+msgstr "å°å½ˆæ€§é™£åˆ—æˆå“¡éžéœæ…‹åœ°åˆå§‹åŒ–"
+
+#: c-typeck.c:6423
+msgid "excess elements in union initializer"
+msgstr "è¯åˆåˆå§‹å€¼è¨­å®šé …中有多餘元素"
+
+#: c-typeck.c:6510
+msgid "excess elements in array initializer"
+msgstr "陣列åˆå§‹å€¼è¨­å®šé …中有多餘的元素"
+
+#: c-typeck.c:6540
+msgid "excess elements in vector initializer"
+msgstr "å‘é‡åˆå§‹å€¼è¨­å®šé …中有多餘元素"
+
+#: c-typeck.c:6564
+msgid "excess elements in scalar initializer"
+msgstr "標é‡åˆå§‹å€¼è¨­å®šé …中有多餘元素"
+
+#: cfgrtl.c:2130
+msgid "flow control insn inside a basic block"
+msgstr "基本å€å¡Šå…§æœ‰æµç¨‹æŽ§åˆ¶æŒ‡ä»¤"
+
+#: cfgrtl.c:2208
+msgid "wrong insn in the fallthru edge"
+msgstr "直通邊上的錯誤指令"
+
+#: cfgrtl.c:2250
+msgid "insn outside basic block"
+msgstr "基本å€å¡Šå¤–出ç¾æŒ‡ä»¤"
+
+#: cfgrtl.c:2257
+msgid "return not followed by barrier"
+msgstr "界線之後沒有 return"
+
+#: cgraph.c:300 ipa-inline.c:296
+msgid "function body not available"
+msgstr "函å¼é«”無法使用"
+
+#: cgraph.c:302 cgraphunit.c:594
+msgid "redefined extern inline functions are not considered for inlining"
+msgstr "ä¸è€ƒæ…®å…§è¯é‡å®šç¾©çš„外部內è¯å‡½å¼"
+
+#: cgraph.c:305 cgraphunit.c:599
+msgid "function not considered for inlining"
+msgstr "ä¸è€ƒæ…®å…§è¯å‡½å¼"
+
+#: cgraph.c:307 cgraphunit.c:597 ipa-inline.c:289
+msgid "function not inlinable"
+msgstr "函å¼ä¸èƒ½å…§è¯"
+
+#: collect2.c:373 gcc.c:6765
+#, c-format
+msgid "internal gcc abort in %s, at %s:%d"
+msgstr "gcc 內部放棄 %s,於 %s:%d"
+
+#: collect2.c:872
+#, c-format
+msgid "no arguments"
+msgstr "沒有åƒæ•¸"
+
+#: collect2.c:1246 collect2.c:1394 collect2.c:1429
+#, c-format
+msgid "fopen %s"
+msgstr "fopen %s"
+
+#: collect2.c:1249 collect2.c:1399 collect2.c:1432
+#, c-format
+msgid "fclose %s"
+msgstr "fclose %s"
+
+#: collect2.c:1258
+#, c-format
+msgid "collect2 version %s"
+msgstr "collect2 版本 %s"
+
+#: collect2.c:1348
+#, c-format
+msgid "%d constructor(s) found\n"
+msgstr "找到 %d 個建構å¼\n"
+
+#: collect2.c:1349
+#, c-format
+msgid "%d destructor(s) found\n"
+msgstr "找到 %d 個解構函å¼\n"
+
+#: collect2.c:1350
+#, c-format
+msgid "%d frame table(s) found\n"
+msgstr "找到了 %d 個框架表\n"
+
+#: collect2.c:1487
+#, c-format
+msgid "can't get program status"
+msgstr "無法ç²å–程å¼ç‹€æ…‹"
+
+#: collect2.c:1537
+#, c-format
+msgid "[cannot find %s]"
+msgstr "[找ä¸åˆ° %s]"
+
+#: collect2.c:1552
+#, c-format
+msgid "cannot find '%s'"
+msgstr "找ä¸åˆ°ã€Œ%sã€"
+
+#: collect2.c:1556 collect2.c:2045 collect2.c:2200 gcc.c:2809
+#, c-format
+msgid "pex_init failed"
+msgstr "pex_init 失敗"
+
+#: collect2.c:1591
+#, c-format
+msgid "[Leaving %s]\n"
+msgstr "[離開 %s]\n"
+
+#: collect2.c:1811
+#, c-format
+msgid ""
+"\n"
+"write_c_file - output name is %s, prefix is %s\n"
+msgstr ""
+"\n"
+"write_c_file - 輸出å為 %s,字首為 %s\n"
+
+#: collect2.c:2019
+#, c-format
+msgid "cannot find 'nm'"
+msgstr "找ä¸åˆ° 「nmã€"
+
+#: collect2.c:2066
+#, c-format
+msgid "can't open nm output"
+msgstr "無法開啟 nm 的輸出"
+
+#: collect2.c:2110
+#, c-format
+msgid "init function found in object %s"
+msgstr "在物件 %s ä¸­ç™¼ç¾ init 函å¼"
+
+#: collect2.c:2118
+#, c-format
+msgid "fini function found in object %s"
+msgstr "在物件 %s ä¸­ç™¼ç¾ fini 函å¼"
+
+#: collect2.c:2221
+#, c-format
+msgid "can't open ldd output"
+msgstr "無法開啟 ldd 輸出"
+
+#: collect2.c:2224
+#, c-format
+msgid ""
+"\n"
+"ldd output with constructors/destructors.\n"
+msgstr ""
+"\n"
+"ldd 輸出帶有建構/解構函å¼ã€‚\n"
+
+#: collect2.c:2239
+#, c-format
+msgid "dynamic dependency %s not found"
+msgstr "找ä¸åˆ°å‹•æ…‹ä¾è³´é … %s"
+
+#: collect2.c:2251
+#, c-format
+msgid "unable to open dynamic dependency '%s'"
+msgstr "無法開啟動態ä¾è³´é …「%sã€"
+
+#: collect2.c:2407
+#, c-format
+msgid "%s: not a COFF file"
+msgstr "%s:ä¸æ˜¯ä¸€å€‹ COFF 檔案"
+
+#: collect2.c:2527
+#, c-format
+msgid "%s: cannot open as COFF file"
+msgstr "%s:無法開啟 COFF 檔案"
+
+#: collect2.c:2585
+#, c-format
+msgid "library lib%s not found"
+msgstr "找ä¸åˆ°å‡½å¼åº« lib%s"
+
+#: cppspec.c:106
+#, c-format
+msgid "\"%s\" is not a valid option to the preprocessor"
+msgstr "「%sã€ä¸æ˜¯å‰è™•ç†å™¨çš„有效é¸é …"
+
+#: cppspec.c:128
+#, c-format
+msgid "too many input files"
+msgstr "輸入檔案太多"
+
+#: diagnostic.c:186
+#, c-format
+msgid "%s:%d: confused by earlier errors, bailing out\n"
+msgstr "%s:%d:ä¸èƒ½å¾žå…ˆå‰çš„錯誤中æ¢å¾©ï¼Œé›¢é–‹\n"
+
+#: diagnostic.c:246
+#, c-format
+msgid "compilation terminated due to -Wfatal-errors.\n"
+msgstr "編譯因為 -Wfatal-errors 而中止。\n"
+
+#: diagnostic.c:255
+#, c-format
+msgid ""
+"Please submit a full bug report,\n"
+"with preprocessed source if appropriate.\n"
+"See %s for instructions.\n"
+msgstr ""
+"è«‹æ交一份完整的錯誤報告,\n"
+"如有å¯èƒ½è«‹é™„上經é å…ˆè™•ç†å¾Œçš„來æºæª”案。\n"
+"具體步驟請åƒè¦‹ %s。\n"
+
+#: diagnostic.c:264
+#, c-format
+msgid "compilation terminated.\n"
+msgstr "編譯æ’斷。\n"
+
+#: diagnostic.c:583
+#, c-format
+msgid "Internal compiler error: Error reporting routines re-entered.\n"
+msgstr "內部編譯器錯誤:é‡å…¥éŒ¯èª¤å ±å‘Šç¨‹å¼ã€‚\n"
+
+#: final.c:1110
+msgid "negative insn length"
+msgstr "指令長度為負"
+
+#: final.c:2479
+msgid "could not split insn"
+msgstr "無法分離指令"
+
+#: final.c:2828
+msgid "invalid 'asm': "
+msgstr "無效的「asmã€ï¼š"
+
+#: final.c:3011
+#, c-format
+msgid "nested assembly dialect alternatives"
+msgstr "巢狀的組譯風格指示"
+
+#: final.c:3028 final.c:3040
+#, c-format
+msgid "unterminated assembly dialect alternative"
+msgstr "未çµæŸçš„組譯風格指示"
+
+#: final.c:3087
+#, c-format
+msgid "operand number missing after %%-letter"
+msgstr "%% å­—æ¯å¾Œç¼ºå°‘é‹ç®—元號"
+
+#: final.c:3090 final.c:3131
+#, c-format
+msgid "operand number out of range"
+msgstr "é‹ç®—元號超出範åœ"
+
+#: final.c:3150
+#, c-format
+msgid "invalid %%-code"
+msgstr "無效的 %%-code"
+
+#: final.c:3180
+#, c-format
+msgid "'%%l' operand isn't a label"
+msgstr "「%%lã€é‹ç®—å…ƒä¸æ˜¯ä¸€å€‹æ¨™ç±¤"
+
+#. 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:3281 vmsdbgout.c:487 config/i386/i386.c:6616
+#: config/pdp11/pdp11.c:1700
+#, c-format
+msgid "floating constant misused"
+msgstr "錯誤地使用了浮點常數"
+
+#: final.c:3337 vmsdbgout.c:544 config/i386/i386.c:6692
+#: config/pdp11/pdp11.c:1747
+#, c-format
+msgid "invalid expression as operand"
+msgstr "無效的é‹ç®—å¼åšç‚ºé‹ç®—å…ƒ"
+
+#: flow.c:1699
+msgid "Attempt to delete prologue/epilogue insn:"
+msgstr "試圖刪除å‰è¨€/å°¾è²æŒ‡ä»¤ï¼š"
+
+#: gcc.c:1641
+#, c-format
+msgid "Using built-in specs.\n"
+msgstr "使用內建 specs。\n"
+
+#: gcc.c:1824
+#, c-format
+msgid ""
+"Setting spec %s to '%s'\n"
+"\n"
+msgstr ""
+"å°‡ spec %s 設為「%sã€\n"
+"\n"
+
+#: gcc.c:1939
+#, c-format
+msgid "Reading specs from %s\n"
+msgstr "從 %s è®€å– specs\n"
+
+#: gcc.c:2035 gcc.c:2054
+#, c-format
+msgid "specs %%include syntax malformed after %ld characters"
+msgstr "specs %%include 在 %ld 字元後語法格å¼éŒ¯èª¤"
+
+#: gcc.c:2062
+#, c-format
+msgid "could not find specs file %s\n"
+msgstr "找ä¸åˆ° specs 檔案 %s\n"
+
+#: gcc.c:2079 gcc.c:2087 gcc.c:2096 gcc.c:2105
+#, c-format
+msgid "specs %%rename syntax malformed after %ld characters"
+msgstr "specs %%rename 在 %ld 字元後語法格å¼éŒ¯èª¤"
+
+#: gcc.c:2114
+#, c-format
+msgid "specs %s spec was not found to be renamed"
+msgstr "specs 找ä¸åˆ° %s spec 或已被é‡æ–°å‘½å"
+
+#: gcc.c:2121
+#, c-format
+msgid "%s: attempt to rename spec '%s' to already defined spec '%s'"
+msgstr "%s:試圖將 spec「%sã€é‡æ–°å‘½å為已定義的 spec「%sã€"
+
+#: gcc.c:2126
+#, c-format
+msgid "rename spec %s to %s\n"
+msgstr "å°‡ spec %s é‡æ–°å‘½å為 %s\n"
+
+#: gcc.c:2128
+#, c-format
+msgid ""
+"spec is '%s'\n"
+"\n"
+msgstr ""
+"spec 是「%sã€\n"
+"\n"
+
+#: gcc.c:2141
+#, c-format
+msgid "specs unknown %% command after %ld characters"
+msgstr "specs 在 %ld 字元後出ç¾ä¸æ˜Žçš„ %% 命令"
+
+#: gcc.c:2152 gcc.c:2165
+#, c-format
+msgid "specs file malformed after %ld characters"
+msgstr "specs 在 %ld 字元後檔案格å¼éŒ¯èª¤"
+
+#: gcc.c:2218
+#, c-format
+msgid "spec file has no spec for linking"
+msgstr "spec 檔案沒有å°é€£çµçš„設定"
+
+#: gcc.c:2640
+#, c-format
+msgid "system path '%s' is not absolute"
+msgstr "系統路徑「%sã€ä¸æ˜¯çµ•å°è·¯å¾‘"
+
+#: gcc.c:2703
+#, c-format
+msgid "-pipe not supported"
+msgstr "ä¸æ”¯æ´ -pipe"
+
+#: gcc.c:2765
+#, c-format
+msgid ""
+"\n"
+"Go ahead? (y or n) "
+msgstr ""
+"\n"
+"繼續?(y 或 n) "
+
+#: gcc.c:2848
+msgid "failed to get exit status"
+msgstr "無法ç²å–離開狀態"
+
+#: gcc.c:2854
+msgid "failed to get process times"
+msgstr "無法ç²å–處ç†åºæ™‚é–“"
+
+#: gcc.c:2877
+#, c-format
+msgid ""
+"Internal error: %s (program %s)\n"
+"Please submit a full bug report.\n"
+"See %s for instructions."
+msgstr ""
+"內部錯誤:%s (ç¨‹å¼ %s)\n"
+"è«‹æ交一份完整的錯誤報告。\n"
+"具體步驟請åƒè¦‹ %s。"
+
+#: gcc.c:2905
+#, c-format
+msgid "# %s %.2f %.2f\n"
+msgstr "# %s %.2f %.2f\n"
+
+#: gcc.c:3041
+#, c-format
+msgid "Usage: %s [options] file...\n"
+msgstr "用法:%s [é¸é …] 檔案...\n"
+
+#: gcc.c:3042
+msgid "Options:\n"
+msgstr "é¸é …:\n"
+
+#: gcc.c:3044
+msgid " -pass-exit-codes Exit with highest error code from a phase\n"
+msgstr " -pass-exit-codes 在æŸä¸€éšŽæ®µé›¢é–‹æ™‚回傳最高的錯誤碼\n"
+
+#: gcc.c:3045
+msgid " --help Display this information\n"
+msgstr " --help 顯示此輔助說明\n"
+
+#: gcc.c:3046
+msgid " --target-help Display target specific command line options\n"
+msgstr " --target-help 顯示目標平臺器特定的命令列é¸é …\n"
+
+#: gcc.c:3048
+msgid " (Use '-v --help' to display command line options of sub-processes)\n"
+msgstr " (使用「-v --helpã€é¡¯ç¤ºå­è™•ç†åºçš„命令列åƒæ•¸)\n"
+
+#: gcc.c:3049
+msgid " -dumpspecs Display all of the built in spec strings\n"
+msgstr " -dumpspecs 顯示所有內建 spec 字串\n"
+
+#: gcc.c:3050
+msgid " -dumpversion Display the version of the compiler\n"
+msgstr " -dumpversion 顯示編譯器的版本號\n"
+
+#: gcc.c:3051
+msgid " -dumpmachine Display the compiler's target processor\n"
+msgstr " -dumpmachine 顯示編譯器的目的處ç†å™¨\n"
+
+#: gcc.c:3052
+msgid " -print-search-dirs Display the directories in the compiler's search path\n"
+msgstr " -print-search-dirs 顯示編譯器的æœå°‹è·¯å¾‘\n"
+
+#: gcc.c:3053
+msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n"
+msgstr " -print-libgcc-file-name 顯示編譯器伴隨函å¼åº«çš„å稱\n"
+
+#: gcc.c:3054
+msgid " -print-file-name=<lib> Display the full path to library <lib>\n"
+msgstr " -print-file-name=<函å¼åº«> 顯示 <函å¼åº«> 的完整路徑\n"
+
+#: gcc.c:3055
+msgid " -print-prog-name=<prog> Display the full path to compiler component <prog>\n"
+msgstr " -print-prog-name=<程å¼> 顯示編譯器元件 <程å¼> 的完整路徑\n"
+
+#: gcc.c:3056
+msgid " -print-multi-directory Display the root directory for versions of libgcc\n"
+msgstr " -print-multi-directory 顯示ä¸åŒç‰ˆæœ¬ libgcc 的根目錄\n"
+
+#: gcc.c:3057
+msgid ""
+" -print-multi-lib Display the mapping between command line options and\n"
+" multiple library search directories\n"
+msgstr " -print-multi-lib 顯示命令列é¸é …和多個版本函å¼åº«æœå°‹è·¯å¾‘é–“çš„å°æ‡‰\n"
+
+#: gcc.c:3060
+msgid " -print-multi-os-directory Display the relative path to OS libraries\n"
+msgstr " -print-multi-os-directory 顯示作業系統函å¼åº«çš„相å°è·¯å¾‘\n"
+
+#: gcc.c:3061
+msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n"
+msgstr " -Wa,<é¸é …> 將逗號分隔的 <é¸é …> 傳éžçµ¦çµ„譯器\n"
+
+#: gcc.c:3062
+msgid " -Wp,<options> Pass comma-separated <options> on to the preprocessor\n"
+msgstr " -Wp,<é¸é …> 將逗號分隔的 <é¸é …> 傳éžçµ¦å‰è™•ç†å™¨\n"
+
+#: gcc.c:3063
+msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n"
+msgstr " -Wl,<é¸é …> 將逗號分隔的 <é¸é …> 傳éžçµ¦é€£çµå™¨\n"
+
+#: gcc.c:3064
+msgid " -Xassembler <arg> Pass <arg> on to the assembler\n"
+msgstr " -Xassembler <åƒæ•¸> å°‡ <åƒæ•¸> 傳éžçµ¦çµ„譯器\n"
+
+#: gcc.c:3065
+msgid " -Xpreprocessor <arg> Pass <arg> on to the preprocessor\n"
+msgstr " -Xpreprocessor <åƒæ•¸> å°‡ <åƒæ•¸> 傳éžçµ¦å‰è™•ç†å™¨\n"
+
+#: gcc.c:3066
+msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
+msgstr " -Xlinker <åƒæ•¸> å°‡ <åƒæ•¸> 傳éžçµ¦é€£çµå™¨\n"
+
+#: gcc.c:3067
+msgid " -combine Pass multiple source files to compiler at once\n"
+msgstr " -combine 將多個來æºæª”案一次性傳éžçµ¦çµ„譯器\n"
+
+#: gcc.c:3068
+msgid " -save-temps Do not delete intermediate files\n"
+msgstr " -save-temps ä¸è¦åˆªé™¤ä¸­é–“檔案\n"
+
+#: gcc.c:3069
+msgid " -pipe Use pipes rather than intermediate files\n"
+msgstr " -pipe 使用管é“代替暫時檔案\n"
+
+#: gcc.c:3070
+msgid " -time Time the execution of each subprocess\n"
+msgstr " -time 為æ¯å€‹å­è™•ç†åºè¨ˆæ™‚\n"
+
+#: gcc.c:3071
+msgid " -specs=<file> Override built-in specs with the contents of <file>\n"
+msgstr " -specs=<檔案> 用 <檔案> 的內容覆寫內建的 specs 檔案\n"
+
+#: gcc.c:3072
+msgid " -std=<standard> Assume that the input sources are for <standard>\n"
+msgstr " -std=<標準> 指定輸入來æºæª”案éµå¾ªçš„標準\n"
+
+#: gcc.c:3073
+msgid ""
+" --sysroot=<directory> Use <directory> as the root directory for headers\n"
+" for headers and libraries\n"
+msgstr " --sysroot=<目錄> å°‡ <目錄> åšç‚ºæ¨™é ­æª”案和函å¼åº«æª”案的根目錄\n"
+
+#: gcc.c:3076
+msgid " -B <directory> Add <directory> to the compiler's search paths\n"
+msgstr " -B <目錄> å°‡ <目錄> 加入到編譯器的æœå°‹è·¯å¾‘中\n"
+
+#: gcc.c:3077
+msgid " -b <machine> Run gcc for target <machine>, if installed\n"
+msgstr " -b <機器> 為 gcc 指定目標平臺器(如果有安è£)\n"
+
+#: gcc.c:3078
+msgid " -V <version> Run gcc version number <version>, if installed\n"
+msgstr " -V <版本> 執行指定版本的 gcc(如果有安è£)\n"
+
+#: gcc.c:3079
+msgid " -v Display the programs invoked by the compiler\n"
+msgstr " -v 顯示編譯器呼å«çš„程å¼\n"
+
+#: gcc.c:3080
+msgid " -### Like -v but options quoted and commands not executed\n"
+msgstr " -### 與 -v 類似,但é¸é …被引號括ä½ï¼Œä¸¦ä¸”ä¸åŸ·è¡Œå‘½ä»¤\n"
+
+#: gcc.c:3081
+msgid " -E Preprocess only; do not compile, assemble or link\n"
+msgstr " -E 僅作é å…ˆè™•ç†ï¼Œä¸é€²è¡Œç·¨è­¯ã€çµ„譯和連çµ\n"
+
+#: gcc.c:3082
+msgid " -S Compile only; do not assemble or link\n"
+msgstr " -S 編譯到組åˆèªžè¨€ï¼Œä¸é€²è¡Œçµ„譯和連çµ\n"
+
+#: gcc.c:3083
+msgid " -c Compile and assemble, but do not link\n"
+msgstr " -c 編譯ã€çµ„譯到目的程å¼ç¢¼ï¼Œä¸é€²è¡Œé€£çµ\n"
+
+#: gcc.c:3084
+msgid " -o <file> Place the output into <file>\n"
+msgstr " -o <檔案> 輸出到 <檔案>\n"
+
+#: gcc.c:3085
+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 <語言> 指定其後輸入檔案的語言\n"
+" å…許的語言包括:c c++ assembler none\n"
+" 「noneã€æ„味著æ¢å¾©é è¨­è¡Œç‚ºï¼Œå³æ ¹æ“šæª”案的副檔å猜測\n"
+" 來æºæª”案的語言\n"
+
+#: gcc.c:3092
+#, c-format
+msgid ""
+"\n"
+"Options starting with -g, -f, -m, -O, -W, or --param are automatically\n"
+" passed on to the various sub-processes invoked by %s. In order to pass\n"
+" other options on to these processes the -W<letter> options must be used.\n"
+msgstr ""
+"\n"
+"以 -gã€-fã€-mã€-Oã€-W 或 --param é–‹é ­çš„é¸é …將由 %s 自動傳éžçµ¦å…¶å‘¼å«çš„\n"
+" ä¸åŒå­è™•ç†åºã€‚è‹¥è¦å‘這些處ç†åºå‚³éžå…¶å®ƒé¸é …,必須使用 -W<å­—æ¯> é¸é …。\n"
+
+#: gcc.c:3215
+#, c-format
+msgid "'-%c' option must have argument"
+msgstr "「-%cã€é¸é …必須有一個åƒæ•¸"
+
+#: gcc.c:3237
+#, c-format
+msgid "couldn't run '%s': %s"
+msgstr "無法執行「%sã€ï¼š%s"
+
+#. translate_options () has turned --version into -fversion.
+#: gcc.c:3422
+#, c-format
+msgid "%s (GCC) %s\n"
+msgstr "%s (GCC) %s\n"
+
+#: gcc.c:3424 gcov.c:415 fortran/gfortranspec.c:351 java/gjavah.c:2406
+#: java/jcf-dump.c:931 java/jv-scan.c:129
+msgid "(C)"
+msgstr "(C)"
+
+#: gcc.c:3425 java/gjavah.c:2407 java/jcf-dump.c:932 java/jv-scan.c:130
+#, 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 ""
+"本程å¼æ˜¯è‡ªç”±è»Ÿé«”;請åƒçœ‹ä¾†æºç¨‹å¼ç¢¼çš„版權宣告。本軟體沒有任何擔ä¿ï¼›\n"
+"包括沒有é©éŠ·æ€§å’ŒæŸä¸€å°ˆç”¨ç›®çš„下的é©ç”¨æ€§æ“”ä¿ã€‚\n"
+
+#: gcc.c:3526
+#, c-format
+msgid "argument to '-Xlinker' is missing"
+msgstr "「-Xlinkerã€ç¼ºå°‘引數"
+
+#: gcc.c:3534
+#, c-format
+msgid "argument to '-Xpreprocessor' is missing"
+msgstr "「-Xpreprocessorã€ç¼ºå°‘引數"
+
+#: gcc.c:3541
+#, c-format
+msgid "argument to '-Xassembler' is missing"
+msgstr "「-Xassemblerã€ç¼ºå°‘引數"
+
+#: gcc.c:3548
+#, c-format
+msgid "argument to '-l' is missing"
+msgstr "「-lã€ç¼ºå°‘引數"
+
+#: gcc.c:3569
+#, c-format
+msgid "argument to '-specs' is missing"
+msgstr "「-specsã€ç¼ºå°‘引數"
+
+#: gcc.c:3583
+#, c-format
+msgid "argument to '-specs=' is missing"
+msgstr "「-Xlinkerã€ç¼ºå°‘引數"
+
+#: gcc.c:3621
+#, c-format
+msgid "'-%c' must come at the start of the command line"
+msgstr "「-%cã€å¿…須出ç¾åœ¨å‘½ä»¤åˆ—çš„é–‹é ­"
+
+#: gcc.c:3630
+#, c-format
+msgid "argument to '-B' is missing"
+msgstr "「-Bã€ç¼ºå°‘引數"
+
+#: gcc.c:4016
+#, c-format
+msgid "argument to '-x' is missing"
+msgstr "「-xã€ç¼ºå°‘引數"
+
+#: gcc.c:4044
+#, c-format
+msgid "argument to '-%s' is missing"
+msgstr "「-%sã€ç¼ºå°‘引數"
+
+#: gcc.c:4382
+#, c-format
+msgid "switch '%s' does not start with '-'"
+msgstr "開關「%sã€æœªä»¥ã€Œ-ã€é–‹é ­"
+
+#: gcc.c:4612
+#, c-format
+msgid "spec '%s' invalid"
+msgstr "spec「%sã€ç„¡æ•ˆ"
+
+#: gcc.c:4678
+#, c-format
+msgid "%s\n"
+msgstr "%s\n"
+
+#: gcc.c:4751
+#, c-format
+msgid "spec '%s' has invalid '%%0%c'"
+msgstr "spec「%sã€æœ‰ç„¡æ•ˆçš„「%%0%cã€"
+
+#: gcc.c:4948
+#, c-format
+msgid "spec '%s' has invalid '%%W%c"
+msgstr "spec「%sã€æœ‰ç„¡æ•ˆçš„「%%W%cã€"
+
+#: gcc.c:4979
+#, c-format
+msgid "spec '%s' has invalid '%%x%c'"
+msgstr "spec「%sã€æœ‰ç„¡æ•ˆçš„「%%x%cã€"
+
+#: gcc.c:5201
+#, c-format
+msgid "Processing spec %c%s%c, which is '%s'\n"
+msgstr "è™•ç† spec %c%s%c,å³ã€Œ%sã€\n"
+
+#: gcc.c:5343
+#, c-format
+msgid "unknown spec function '%s'"
+msgstr "ä¸æ˜Žçš„ spec 函å¼ã€Œ%sã€"
+
+#: gcc.c:5362
+#, c-format
+msgid "error in args to spec function '%s'"
+msgstr "給 spec 函å¼ã€Œ%sã€çš„åƒæ•¸ä¸æ­£ç¢º"
+
+#: gcc.c:5410
+#, c-format
+msgid "malformed spec function name"
+msgstr "spec 函å¼åæ ¼å¼éŒ¯èª¤"
+
+#. )
+#: gcc.c:5413
+#, c-format
+msgid "no arguments for spec function"
+msgstr "spec 函å¼æ²’有引數"
+
+#: gcc.c:5432
+#, c-format
+msgid "malformed spec function arguments"
+msgstr "spec 函å¼å¼•æ•¸æ ¼å¼éŒ¯èª¤"
+
+#: gcc.c:5671
+#, c-format
+msgid "braced spec '%s' is invalid at '%c'"
+msgstr "大括號中的 spec「%sã€åœ¨ã€Œ%cã€ä¸­ç„¡æ•ˆ"
+
+#: gcc.c:5759
+#, c-format
+msgid "braced spec body '%s' is invalid"
+msgstr "大括號中的 spec 體「%sã€ç„¡æ•ˆ"
+
+#: gcc.c:6306
+#, c-format
+msgid "install: %s%s\n"
+msgstr "安è£ï¼š%s%s\n"
+
+#: gcc.c:6307
+#, c-format
+msgid "programs: %s\n"
+msgstr "程å¼ï¼š%s\n"
+
+#: gcc.c:6308
+#, c-format
+msgid "libraries: %s\n"
+msgstr "函å¼åº«ï¼š%s\n"
+
+#: gcc.c:6365
+#, c-format
+msgid ""
+"\n"
+"For bug reporting instructions, please see:\n"
+msgstr ""
+"\n"
+"報告程å¼ç¼ºé™·çš„步驟請åƒè¦‹ï¼š\n"
+
+#: gcc.c:6381
+#, c-format
+msgid "Target: %s\n"
+msgstr "目的:%s\n"
+
+#: gcc.c:6382
+#, c-format
+msgid "Configured with: %s\n"
+msgstr "é…置為:%s\n"
+
+#: gcc.c:6396
+#, c-format
+msgid "Thread model: %s\n"
+msgstr "執行緒模型:%s\n"
+
+#: gcc.c:6407
+#, c-format
+msgid "gcc version %s\n"
+msgstr "gcc 版本 %s\n"
+
+#: gcc.c:6409
+#, c-format
+msgid "gcc driver version %s executing gcc version %s\n"
+msgstr "版本為 %s 的 gcc 驅動執行版本為 %s 的gcc\n"
+
+#: gcc.c:6417
+#, c-format
+msgid "no input files"
+msgstr "沒有輸入檔案"
+
+#: gcc.c:6466
+#, c-format
+msgid "cannot specify -o with -c or -S with multiple files"
+msgstr "當有多個檔案時ä¸èƒ½åœ¨å·²æŒ‡å®š -c 或 -S 的情æ³ä¸‹æŒ‡å®š -o"
+
+#: gcc.c:6500
+#, c-format
+msgid "spec '%s' is invalid"
+msgstr "spec「%sã€æ˜¯ç„¡æ•ˆçš„"
+
+#: gcc.c:6965
+#, c-format
+msgid "multilib spec '%s' is invalid"
+msgstr "multilib spec「%sã€ç„¡æ•ˆ"
+
+#: gcc.c:7157
+#, c-format
+msgid "multilib exclusions '%s' is invalid"
+msgstr "multilib 排除「%sã€ç„¡æ•ˆ"
+
+#: gcc.c:7215 gcc.c:7356
+#, c-format
+msgid "multilib select '%s' is invalid"
+msgstr "multilib é¸æ“‡ã€Œ%sã€ç„¡æ•ˆ"
+
+#: gcc.c:7394
+#, c-format
+msgid "multilib exclusion '%s' is invalid"
+msgstr "multilib 排除「%sã€ç„¡æ•ˆ"
+
+#: gcc.c:7653 gcc.c:7658
+#, c-format
+msgid "invalid version number `%s'"
+msgstr "無效的版本號「%sã€"
+
+#: gcc.c:7701
+#, c-format
+msgid "too few arguments to %%:version-compare"
+msgstr "%%:version-compare 的引數太少"
+
+#: gcc.c:7707
+#, c-format
+msgid "too many arguments to %%:version-compare"
+msgstr "%%:version-compare 的引數太多"
+
+#: gcc.c:7748
+#, c-format
+msgid "unknown operator '%s' in %%:version-compare"
+msgstr "%%:version-compare 中有ä¸æ˜Žçš„é‹ç®—元「%sã€"
+
+#: gcov.c:388
+#, c-format
+msgid ""
+"Usage: gcov [OPTION]... SOURCEFILE\n"
+"\n"
+msgstr ""
+"用法:gconv [é¸é …]... 來æºæª”案\n"
+"\n"
+
+#: gcov.c:389
+#, c-format
+msgid ""
+"Print code coverage information.\n"
+"\n"
+msgstr ""
+"顯示程å¼ç¢¼è¦†å¯«è³‡è¨Šã€‚\n"
+"\n"
+
+#: gcov.c:390
+#, c-format
+msgid " -h, --help Print this help, then exit\n"
+msgstr " -h, --help 列å°æ­¤è¼”助並離開\n"
+
+#: gcov.c:391
+#, c-format
+msgid " -v, --version Print version number, then exit\n"
+msgstr " -v, --version 列å°ç‰ˆæœ¬è™Ÿä¸¦é›¢é–‹\n"
+
+#: gcov.c:392
+#, c-format
+msgid " -a, --all-blocks Show information for every basic block\n"
+msgstr " -a, --all-blocks 顯示æ¯å€‹åŸºæœ¬å€å¡Šçš„資訊\n"
+
+#: gcov.c:393
+#, c-format
+msgid " -b, --branch-probabilities Include branch probabilities in output\n"
+msgstr " -b, --branch-probabilities 輸出包å«åˆ†æ”¯æ¦‚率\n"
+
+#: gcov.c:394
+#, c-format
+msgid ""
+" -c, --branch-counts Given counts of branches taken\n"
+" rather than percentages\n"
+msgstr " -c, --branch-counts 給出跳轉的分支數,而ä¸æ˜¯ç™¾åˆ†æ¯”\n"
+
+#: gcov.c:396
+#, c-format
+msgid " -n, --no-output Do not create an output file\n"
+msgstr " -n, --no-output ä¸å»ºç«‹è¼¸å‡ºæª”案\n"
+
+#: gcov.c:397
+#, c-format
+msgid ""
+" -l, --long-file-names Use long output file names for included\n"
+" source files\n"
+msgstr " -l, --long-file-names 為包å«é€²ä¾†çš„來æºæª”案使用長輸出檔案å稱\n"
+
+#: gcov.c:399
+#, c-format
+msgid " -f, --function-summaries Output summaries for each function\n"
+msgstr " -f, --function-summaries 輸出æ¯å€‹å‡½å¼çš„å°çµè³‡è¨Š\n"
+
+#: gcov.c:400
+#, c-format
+msgid " -o, --object-directory DIR|FILE Search for object files in DIR or called FILE\n"
+msgstr " -o, --object-directory DIR|FILE 在 DIR 中æœå°‹ç›®çš„檔案,或æœå°‹å為 FILE 的目的檔案\n"
+
+#: gcov.c:401
+#, c-format
+msgid " -p, --preserve-paths Preserve all pathname components\n"
+msgstr " -p, --preserve-paths ä¿ç•™æ‰€æœ‰è·¯å¾‘å\n"
+
+#: gcov.c:402
+#, c-format
+msgid " -u, --unconditional-branches Show unconditional branch counts too\n"
+msgstr " -u, --unconditional-branches åŒæ™‚顯示無æ¢ä»¶è·³è½‰æ•¸\n"
+
+#: gcov.c:403
+#, c-format
+msgid ""
+"\n"
+"For bug reporting instructions, please see:\n"
+"%s.\n"
+msgstr ""
+"\n"
+"æ交錯誤報告的具體步驟請åƒè¦‹ï¼š\n"
+"%s。\n"
+
+#: gcov.c:413
+#, c-format
+msgid "gcov (GCC) %s\n"
+msgstr "gcov (GCC) %s\n"
+
+#: gcov.c:417
+#, c-format
+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 ""
+"本程å¼æ˜¯è‡ªç”±è»Ÿé«”;請åƒçœ‹ä¾†æºç¨‹å¼ç¢¼çš„版權宣告。本軟體沒有任何擔ä¿ï¼›\n"
+"包括沒有é©éŠ·æ€§å’ŒæŸä¸€å°ˆç”¨ç›®çš„下的é©ç”¨æ€§æ“”ä¿ã€‚\n"
+
+#: gcov.c:507
+#, c-format
+msgid "%s:no functions found\n"
+msgstr "%s:找ä¸åˆ°å‡½å¼\n"
+
+#: gcov.c:528 gcov.c:556 fortran/dump-parse-tree.c:68
+#, c-format
+msgid "\n"
+msgstr "\n"
+
+#: gcov.c:543
+#, c-format
+msgid "%s:creating '%s'\n"
+msgstr "%s:正在建立「%sã€\n"
+
+#: gcov.c:547
+#, c-format
+msgid "%s:error writing output file '%s'\n"
+msgstr "%s:寫入輸出檔案「%sã€æ™‚發生錯誤\n"
+
+#: gcov.c:552
+#, c-format
+msgid "%s:could not open output file '%s'\n"
+msgstr "%s:無法開啟輸出檔案「%sã€\n"
+
+#: gcov.c:703
+#, c-format
+msgid "%s:cannot open graph file\n"
+msgstr "%s:無法開啟圖檔案\n"
+
+#: gcov.c:709
+#, c-format
+msgid "%s:not a gcov graph file\n"
+msgstr "%s:ä¸æ˜¯ä¸€å€‹ gcov 圖檔案\n"
+
+#: gcov.c:722
+#, c-format
+msgid "%s:version '%.4s', prefer '%.4s'\n"
+msgstr "%s:版本「%.4sã€ï¼Œå好「%.4sã€\n"
+
+#: gcov.c:774
+#, c-format
+msgid "%s:already seen blocks for '%s'\n"
+msgstr "%s:已經看到「%sã€çš„å€å¡Š\n"
+
+#: gcov.c:892 gcov.c:1048
+#, c-format
+msgid "%s:corrupted\n"
+msgstr "%s:已æ壞\n"
+
+#: gcov.c:966
+#, c-format
+msgid "%s:cannot open data file\n"
+msgstr "%s:無法開啟資料檔案\n"
+
+#: gcov.c:971
+#, c-format
+msgid "%s:not a gcov data file\n"
+msgstr "%s:ä¸æ˜¯ä¸€å€‹ gcov 資料檔案\n"
+
+#: gcov.c:984
+#, c-format
+msgid "%s:version '%.4s', prefer version '%.4s'\n"
+msgstr "%s:版本「%.4sã€ï¼Œå好版本「%.4sã€\n"
+
+#: gcov.c:990
+#, c-format
+msgid "%s:stamp mismatch with graph file\n"
+msgstr "%s:時間戳記與圖檔案ä¸åŒ¹é…\n"
+
+#: gcov.c:1016
+#, c-format
+msgid "%s:unknown function '%u'\n"
+msgstr "%s:ä¸æ˜Žå‡½å¼ã€Œ%uã€\n"
+
+#: gcov.c:1029
+#, c-format
+msgid "%s:profile mismatch for '%s'\n"
+msgstr "%s:樣本檔案與「%sã€ä¸åŒ¹é…\n"
+
+#: gcov.c:1048
+#, c-format
+msgid "%s:overflowed\n"
+msgstr "%s:溢出\n"
+
+#: gcov.c:1072
+#, c-format
+msgid "%s:'%s' lacks entry and/or exit blocks\n"
+msgstr "%s:「%sã€ç¼ºå°‘å…¥å£/出å£å¡Š\n"
+
+#: gcov.c:1077
+#, c-format
+msgid "%s:'%s' has arcs to entry block\n"
+msgstr "%s:「%sã€æœ‰åŽ»å¾€å…¥å£å¡Šçš„弧\n"
+
+#: gcov.c:1085
+#, c-format
+msgid "%s:'%s' has arcs from exit block\n"
+msgstr "%s:「%sã€æœ‰ä¾†è‡ªå‡ºå£å€å¡Šçš„弧\n"
+
+#: gcov.c:1293
+#, c-format
+msgid "%s:graph is unsolvable for '%s'\n"
+msgstr "%s:圖為「%sã€ä¸å¯è§£\n"
+
+#: gcov.c:1373
+#, c-format
+msgid "%s '%s'\n"
+msgstr "%s「%sã€\n"
+
+#: gcov.c:1376
+#, c-format
+msgid "Lines executed:%s of %d\n"
+msgstr "已執行的列數:%s (共 %d 列)\n"
+
+#: gcov.c:1380
+#, c-format
+msgid "No executable lines\n"
+msgstr "沒有å¯åŸ·è¡Œåˆ—\n"
+
+#: gcov.c:1386
+#, c-format
+msgid "Branches executed:%s of %d\n"
+msgstr "執行的分支:%s (共有 %d 個)\n"
+
+#: gcov.c:1390
+#, c-format
+msgid "Taken at least once:%s of %d\n"
+msgstr "至少執行一次的跳轉:%s(總數為 %d)\n"
+
+#: gcov.c:1396
+#, c-format
+msgid "No branches\n"
+msgstr "沒有跳轉\n"
+
+#: gcov.c:1398
+#, c-format
+msgid "Calls executed:%s of %d\n"
+msgstr "執行的呼å«ï¼š%s(å…± %d)\n"
+
+#: gcov.c:1402
+#, c-format
+msgid "No calls\n"
+msgstr "沒有呼å«\n"
+
+#: gcov.c:1543
+#, c-format
+msgid "%s:no lines for '%s'\n"
+msgstr "%s:「%sã€æ²’有列\n"
+
+#: gcov.c:1738
+#, c-format
+msgid "call %2d returned %s\n"
+msgstr "call %2d 回傳了 %s\n"
+
+#: gcov.c:1743
+#, c-format
+msgid "call %2d never executed\n"
+msgstr "call %2d 從未被執行\n"
+
+#: gcov.c:1748
+#, c-format
+msgid "branch %2d taken %s%s\n"
+msgstr "branch %2d 被執行 %s%s\n"
+
+#: gcov.c:1752
+#, c-format
+msgid "branch %2d never executed\n"
+msgstr "branch %2d 從未被執行\n"
+
+#: gcov.c:1757
+#, c-format
+msgid "unconditional %2d taken %s\n"
+msgstr "unconditional %2d 被執行 %s\n"
+
+#: gcov.c:1760
+#, c-format
+msgid "unconditional %2d never executed\n"
+msgstr "ç„¡æ¢ä»¶ %2d 從未執行\n"
+
+#: gcov.c:1792
+#, c-format
+msgid "%s:cannot open source file\n"
+msgstr "%s:無法開啟來æºæª”案\n"
+
+#: gcov.c:1802
+#, c-format
+msgid "%s:source file is newer than graph file '%s'\n"
+msgstr "%s:來æºæª”案較圖檔案「%sã€æ–°\n"
+
+#. Return if there's nothing to do, or it is too expensive.
+#: gcse.c:694
+msgid "GCSE disabled"
+msgstr "GCSE 被åœç”¨"
+
+#. Return if there's nothing to do, or it is too expensive.
+#: gcse.c:6526
+msgid "jump bypassing disabled"
+msgstr "ç•¥éŽè·³è¶ŠæŒ‡ä»¤è¢«åœç”¨"
+
+#. Opening quotation mark.
+#: intl.c:58
+msgid "`"
+msgstr "「"
+
+#. Closing quotation mark.
+#: intl.c:61
+msgid "'"
+msgstr "ã€"
+
+#: ipa-inline.c:275
+msgid "--param large-function-growth limit reached"
+msgstr "åˆ°é” --param large-function-growth 給定的極值"
+
+#: ipa-inline.c:305
+msgid "--param max-inline-insns-single limit reached"
+msgstr "åˆ°é” --param max-inline-insns-single 給定的極值"
+
+#: ipa-inline.c:314
+msgid "--param max-inline-insns-auto limit reached"
+msgstr "åˆ°é” --param max-inline-insns-single 給定的極值"
+
+#: ipa-inline.c:340 ipa-inline.c:766
+msgid "recursive inlining"
+msgstr "éžè¿´å…§è¯"
+
+#: ipa-inline.c:779
+msgid "call is unlikely"
+msgstr "ä¸å¤ªå¯èƒ½å‘¼å«"
+
+#: ipa-inline.c:850
+msgid "--param inline-unit-growth limit reached"
+msgstr "åˆ°é” --param inline-unit-growth 給定的極值"
+
+#: langhooks.c:507
+msgid "At top level:"
+msgstr "在頂層:"
+
+#: langhooks.c:512
+#, c-format
+msgid "In member function %qs:"
+msgstr "在æˆå“¡å‡½å¼ %qs 中:"
+
+#: langhooks.c:516
+#, c-format
+msgid "In function %qs:"
+msgstr "åœ¨å‡½å¼ %qs 中:"
+
+#: loop-iv.c:2709 tree-ssa-loop-niter.c:1026
+msgid "assuming that the loop is not infinite"
+msgstr "å‡å®šå¾ªç’°æœ‰çª®"
+
+#: loop-iv.c:2710 tree-ssa-loop-niter.c:1027
+msgid "cannot optimize possibly infinite loops"
+msgstr "無法最佳化å¯èƒ½ç„¡çª®çš„循環"
+
+#: loop-iv.c:2718 tree-ssa-loop-niter.c:1031
+msgid "assuming that the loop counter does not overflow"
+msgstr "å‡å®šå¾ªç’°è¨ˆæ•¸ä¸æœƒæº¢å‡º"
+
+#: loop-iv.c:2719 tree-ssa-loop-niter.c:1032
+msgid "cannot optimize loop, the loop counter may overflow"
+msgstr "無法最佳化循環,循環變數å¯èƒ½æº¢å‡º"
+
+#. What to print when a switch has no documentation.
+#: opts.c:90
+msgid "This switch lacks documentation"
+msgstr "此開關缺少å¯ç”¨æ–‡ä»¶"
+
+#: opts.c:1227
+#, c-format
+msgid ""
+"\n"
+"Target specific options:\n"
+msgstr ""
+"\n"
+"目標平臺特定的é¸é …:\n"
+
+#: opts.c:1248
+msgid "The following options are language-independent:\n"
+msgstr "下列é¸é …是與具體語言無關的:\n"
+
+#: opts.c:1255
+#, c-format
+msgid ""
+"The %s front end recognizes the following options:\n"
+"\n"
+msgstr ""
+"%s å‰ç«¯ç¨‹å¼å¯è­˜åˆ¥ä¸‹åˆ—é¸é …:\n"
+"\n"
+
+#: opts.c:1268
+msgid "The --param option recognizes the following as parameters:\n"
+msgstr "--param é¸é …å¯æŽ¥å—以下åƒæ•¸ï¼š\n"
+
+#: protoize.c:583
+#, c-format
+msgid "%s: error writing file '%s': %s\n"
+msgstr "%s:寫入檔案「%sã€æ™‚發生錯誤:%s\n"
+
+#: protoize.c:627
+#, c-format
+msgid "%s: usage '%s [ -VqfnkN ] [ -i <istring> ] [ filename ... ]'\n"
+msgstr "%s:用法「%s [ -VqfnkN ] [ -i <字串> ] [ 檔案å稱 ... ]ã€\n"
+
+#: protoize.c:630
+#, c-format
+msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B <dirname> ] [ filename ... ]'\n"
+msgstr "%s:用法「%s [ -VqfnkNlgC ] [ -B <目錄å> ] [ 檔案å稱 ... ]'\n"
+
+#: protoize.c:731
+#, c-format
+msgid "%s: warning: no read access for file '%s'\n"
+msgstr "%s:警告:沒有檔案「%sã€çš„讀權é™\n"
+
+#: protoize.c:739
+#, c-format
+msgid "%s: warning: no write access for file '%s'\n"
+msgstr "%s:警告:沒有檔案「%sã€çš„寫權é™\n"
+
+#: protoize.c:747
+#, c-format
+msgid "%s: warning: no write access for dir containing '%s'\n"
+msgstr "%s:警告:沒有å°åŒ…å«ã€Œ%sã€çš„目錄的寫權é™\n"
+
+#. Catch cases like /.. where we try to backup to a
+#. point above the absolute root of the logical file
+#. system.
+#: protoize.c:1134
+#, c-format
+msgid "%s: invalid file name: %s\n"
+msgstr "%s:無效的檔案å稱:%s\n"
+
+#: protoize.c:1282
+#, c-format
+msgid "%s: %s: can't get status: %s\n"
+msgstr "%s:%s:ä¸èƒ½ç²å–狀態:%s\n"
+
+#: protoize.c:1303
+#, c-format
+msgid ""
+"\n"
+"%s: fatal error: aux info file corrupted at line %d\n"
+msgstr ""
+"\n"
+"%s:嚴é‡éŒ¯èª¤ï¼šè¼”助資訊檔案的第 %d 列已æ壞\n"
+
+#: protoize.c:1632
+#, c-format
+msgid "%s:%d: declaration of function '%s' takes different forms\n"
+msgstr "%s:%d:函å¼ã€Œ%sã€çš„宣告形å¼ä¸åŒ\n"
+
+#: protoize.c:1887
+#, c-format
+msgid "%s: compiling '%s'\n"
+msgstr "%s:正在編譯「%sã€\n"
+
+#: protoize.c:1910
+#, c-format
+msgid "%s: wait: %s\n"
+msgstr "%s:等待:%s\n"
+
+#: protoize.c:1915
+#, c-format
+msgid "%s: subprocess got fatal signal %d\n"
+msgstr "%s:å­è™•ç†åºæ”¶åˆ°è‡´å‘½ä¿¡è™Ÿ %d\n"
+
+#: protoize.c:1923
+#, c-format
+msgid "%s: %s exited with status %d\n"
+msgstr "%s:%s 以狀態碼 %d 離開\n"
+
+#: protoize.c:1972
+#, c-format
+msgid "%s: warning: missing SYSCALLS file '%s'\n"
+msgstr "%s:警告:缺少 SYSCALLS 檔案「%sã€\n"
+
+#: protoize.c:1981 protoize.c:2010
+#, c-format
+msgid "%s: can't read aux info file '%s': %s\n"
+msgstr "%s:無法讀å–輸助資訊檔案「%sã€ï¼š%s\n"
+
+#: protoize.c:2026 protoize.c:2054
+#, c-format
+msgid "%s: can't get status of aux info file '%s': %s\n"
+msgstr "%s:ä¸èƒ½ç²å–輔助資訊檔案「%sã€çš„狀態:%s\n"
+
+#: protoize.c:2082
+#, c-format
+msgid "%s: can't open aux info file '%s' for reading: %s\n"
+msgstr "%s:無法開啟輔助資訊檔案「%sã€ä»¥ä¾›è®€å‡ºï¼š%s\n"
+
+#: protoize.c:2100
+#, c-format
+msgid "%s: error reading aux info file '%s': %s\n"
+msgstr "%s:讀å–輸助資訊檔案「%sã€æ™‚發生錯誤:%s\n"
+
+#: protoize.c:2113
+#, c-format
+msgid "%s: error closing aux info file '%s': %s\n"
+msgstr "%s:關閉輸助資訊檔案「%sã€æ™‚發生錯誤:%s\n"
+
+#: protoize.c:2129
+#, c-format
+msgid "%s: can't delete aux info file '%s': %s\n"
+msgstr "%s:無法刪除輸助資訊檔案「%sã€ï¼š%s\n"
+
+#: protoize.c:2211 protoize.c:4180
+#, c-format
+msgid "%s: can't delete file '%s': %s\n"
+msgstr "%s:無法刪除檔案「%sã€ï¼š%s\n"
+
+#: protoize.c:2289
+#, c-format
+msgid "%s: warning: can't rename file '%s' to '%s': %s\n"
+msgstr "%s:警告:ä¸èƒ½å°‡æª”案「%sã€é‡æ–°å‘½å為「%sã€ï¼š%s\n"
+
+#: protoize.c:2411
+#, c-format
+msgid "%s: conflicting extern definitions of '%s'\n"
+msgstr "%s:「%sã€æœ‰ç›¸äº’è¡çªçš„外部定義\n"
+
+#: protoize.c:2415
+#, c-format
+msgid "%s: declarations of '%s' will not be converted\n"
+msgstr "%s:「%sã€çš„宣告ä¸æœƒè¢«è½‰åŒ–\n"
+
+#: protoize.c:2417
+#, c-format
+msgid "%s: conflict list for '%s' follows:\n"
+msgstr "%s:「%sã€çš„è¡çªæ¸…單如下:\n"
+
+#: protoize.c:2450
+#, c-format
+msgid "%s: warning: using formals list from %s(%d) for function '%s'\n"
+msgstr "%s:警告:使用來自 %s(%d)çš„åƒæ•¸æ¸…單,為函å¼ã€Œ%sã€\n"
+
+#: protoize.c:2490
+#, c-format
+msgid "%s: %d: '%s' used but missing from SYSCALLS\n"
+msgstr "%s:%d:用到「%sã€ä½†å…¶ä¸¦æœªå‡ºç¾åœ¨ SYSCALLS 中\n"
+
+#: protoize.c:2496
+#, c-format
+msgid "%s: %d: warning: no extern definition for '%s'\n"
+msgstr "%s:%d:警告:沒有「%sã€çš„外部定義\n"
+
+#: protoize.c:2526
+#, c-format
+msgid "%s: warning: no static definition for '%s' in file '%s'\n"
+msgstr "%s:警告:沒有「%sã€çš„éœæ…‹å®šç¾©ï¼Œåœ¨æª”案「%sã€ä¸­\n"
+
+#: protoize.c:2532
+#, c-format
+msgid "%s: multiple static defs of '%s' in file '%s'\n"
+msgstr "%s:「%sã€åœ¨æª”案「%sã€ä¸­æœ‰å¤šå€‹éœæ…‹å®šç¾©\n"
+
+#: protoize.c:2702 protoize.c:2705
+#, c-format
+msgid "%s: %d: warning: source too confusing\n"
+msgstr "%s:%d:警告:來æºæª”案ä¸å¯ç†è§£\n"
+
+#: protoize.c:2900
+#, c-format
+msgid "%s: %d: warning: varargs function declaration not converted\n"
+msgstr "%s:%d:警告:å¯è®Šåƒæ•¸å‡½å¼å®£å‘Šæœªè¢«è½‰åŒ–\n"
+
+#: protoize.c:2915
+#, c-format
+msgid "%s: declaration of function '%s' not converted\n"
+msgstr "%s:函å¼ã€Œ%sã€çš„宣告ä¸æœƒè¢«è½‰åŒ–\n"
+
+#: protoize.c:3038
+#, c-format
+msgid "%s: warning: too many parameter lists in declaration of '%s'\n"
+msgstr "%s:警告:「%sã€çš„宣告中åƒæ•¸æ¸…單太多\n"
+
+#: protoize.c:3059
+#, c-format
+msgid ""
+"\n"
+"%s: warning: too few parameter lists in declaration of '%s'\n"
+msgstr ""
+"\n"
+"%s:警告:「%sã€çš„宣告中åƒæ•¸æ¸…單太少\n"
+
+#: protoize.c:3155
+#, c-format
+msgid "%s: %d: warning: found '%s' but expected '%s'\n"
+msgstr "%s:%d:警告:發ç¾ã€Œ%sã€ä½†éœ€è¦ã€Œ%sã€\n"
+
+#: protoize.c:3330
+#, c-format
+msgid "%s: local declaration for function '%s' not inserted\n"
+msgstr "%s:未æ’入函å¼ã€Œ%sã€çš„局部宣告\n"
+
+#: protoize.c:3357
+#, c-format
+msgid ""
+"\n"
+"%s: %d: warning: can't add declaration of '%s' into macro call\n"
+msgstr ""
+"\n"
+"%s:%d:警告:ä¸èƒ½å°‡ã€Œ%sã€çš„宣告加入到巨集呼å«ä¸­\n"
+
+#: protoize.c:3429
+#, c-format
+msgid "%s: global declarations for file '%s' not inserted\n"
+msgstr "%s:檔案「%sã€çš„全域宣告未被æ’å…¥\n"
+
+#: protoize.c:3518 protoize.c:3548
+#, c-format
+msgid "%s: definition of function '%s' not converted\n"
+msgstr "%s:函å¼ã€Œ%sã€çš„定義ä¸æœƒè¢«è½‰åŒ–\n"
+
+#: protoize.c:3537
+#, c-format
+msgid "%s: %d: warning: definition of %s not converted\n"
+msgstr "%s:%d:警告:%s 的定義未被轉化\n"
+
+#: protoize.c:3863
+#, c-format
+msgid "%s: found definition of '%s' at %s(%d)\n"
+msgstr "%s:找到「%sã€çš„定義,於 %s(%d)\n"
+
+#. If we make it here, then we did not know about this
+#. function definition.
+#: protoize.c:3879
+#, c-format
+msgid "%s: %d: warning: '%s' excluded by preprocessing\n"
+msgstr "%s:%d:警告:「%sã€è¢«é å…ˆè™•ç†æ‰€æŽ’除\n"
+
+#: protoize.c:3882
+#, c-format
+msgid "%s: function definition not converted\n"
+msgstr "%s:函å¼å®šç¾©ä¸æœƒè¢«è½‰åŒ–\n"
+
+#: protoize.c:3940
+#, c-format
+msgid "%s: '%s' not converted\n"
+msgstr "%s:「%sã€æœªè¢«è½‰æ›\n"
+
+#: protoize.c:3948
+#, c-format
+msgid "%s: would convert file '%s'\n"
+msgstr "%s:將è¦è½‰æ›æª”案「%sã€\n"
+
+#: protoize.c:3951
+#, c-format
+msgid "%s: converting file '%s'\n"
+msgstr "%s:轉化檔案「%sã€\n"
+
+#: protoize.c:3961
+#, c-format
+msgid "%s: can't get status for file '%s': %s\n"
+msgstr "%s:ä¸èƒ½ç²å–檔案「%sã€çš„狀態:%s\n"
+
+#: protoize.c:4003
+#, c-format
+msgid "%s: can't open file '%s' for reading: %s\n"
+msgstr "%s:無法開啟檔案「%sã€è®€å…¥ï¼š%s\n"
+
+#: protoize.c:4018
+#, c-format
+msgid ""
+"\n"
+"%s: error reading input file '%s': %s\n"
+msgstr ""
+"\n"
+"%s:讀å–輸入檔案「%sã€æ™‚發生錯誤:%s\n"
+
+#: protoize.c:4052
+#, c-format
+msgid "%s: can't create/open clean file '%s': %s\n"
+msgstr "%s:無法建立/開啟乾淨檔案「%sã€ï¼š%s\n"
+
+#: protoize.c:4157
+#, c-format
+msgid "%s: warning: file '%s' already saved in '%s'\n"
+msgstr "%s:警告:檔案「%sã€å·²è¢«å„²å­˜åœ¨ã€Œ%sã€ä¸­\n"
+
+#: protoize.c:4165
+#, c-format
+msgid "%s: can't link file '%s' to '%s': %s\n"
+msgstr "%s:無法將檔案「%sã€é€£çµè‡³æª”案「%sã€ï¼š%s\n"
+
+#: protoize.c:4195
+#, c-format
+msgid "%s: can't create/open output file '%s': %s\n"
+msgstr "%s:無法建立/開啟輸出檔案「%sã€ï¼š%s\n"
+
+#: protoize.c:4228
+#, c-format
+msgid "%s: can't change mode of file '%s': %s\n"
+msgstr "%s:ä¸èƒ½è®Šæ›´æª”案「%sã€çš„模å¼ï¼š%s\n"
+
+#: protoize.c:4404
+#, c-format
+msgid "%s: cannot get working directory: %s\n"
+msgstr "%s:無法得到工作目錄:%s\n"
+
+#: protoize.c:4502
+#, c-format
+msgid "%s: input file names must have .c suffixes: %s\n"
+msgstr "%s:輸入檔案å稱必須有 .c 字尾:%s\n"
+
+#: reload.c:3734
+msgid "unable to generate reloads for:"
+msgstr "無法產生é‡æ–°è¼‰å…¥ï¼Œç‚ºï¼š"
+
+#: reload1.c:1901
+msgid "this is the insn:"
+msgstr "這是指令:"
+
+#. It's the compiler's fault.
+#: reload1.c:5103
+msgid "could not find a spill register"
+msgstr "找ä¸åˆ°å¯æ¨å‡ºçš„暫存器"
+
+#. It's the compiler's fault.
+#: reload1.c:6737
+msgid "VOIDmode on an output"
+msgstr "輸出有 VOIDmode"
+
+#: reload1.c:7710
+msgid "Failure trying to reload:"
+msgstr "試圖é‡æ–°è¼‰å…¥æ™‚失敗:"
+
+#: rtl-error.c:128
+msgid "unrecognizable insn:"
+msgstr "無法辨識的指令:"
+
+#: rtl-error.c:130
+msgid "insn does not satisfy its constraints:"
+msgstr "指令ä¸æ»¿è¶³å…¶ç´„æŸï¼š"
+
+#: timevar.c:412
+msgid ""
+"\n"
+"Execution times (seconds)\n"
+msgstr ""
+"\n"
+"執行時間(以秒計)\n"
+
+#. Print total time.
+#: timevar.c:470
+msgid " TOTAL :"
+msgstr " 共計 :"
+
+#: timevar.c:499
+#, c-format
+msgid "time in %s: %ld.%06ld (%ld%%)\n"
+msgstr "%s中耗時:%ld.%06ld (%ld%%)\n"
+
+#: tlink.c:384
+#, c-format
+msgid "collect: reading %s\n"
+msgstr "collect:讀入 %s\n"
+
+#: tlink.c:478
+#, c-format
+msgid "removing .rpo file"
+msgstr "刪除 .rpo 檔案"
+
+#: tlink.c:480
+#, c-format
+msgid "renaming .rpo file"
+msgstr "é‡æ–°å‘½å .rpo 檔案"
+
+#: tlink.c:534
+#, c-format
+msgid "collect: recompiling %s\n"
+msgstr "collect:é‡æ–°ç·¨è­¯ %s\n"
+
+#: tlink.c:714
+#, c-format
+msgid "collect: tweaking %s in %s\n"
+msgstr "collect:調整 %s,於 %s\n"
+
+#: tlink.c:764
+#, c-format
+msgid "collect: relinking\n"
+msgstr "collect:é‡æ–°é€£çµ\n"
+
+#: toplev.c:583
+#, c-format
+msgid "unrecoverable error"
+msgstr "ä¸å¯æ¢å¾©éŒ¯èª¤"
+
+#: toplev.c:1115
+#, c-format
+msgid ""
+"%s%s%s version %s (%s)\n"
+"%s\tcompiled by GNU C version %s.\n"
+msgstr ""
+"%s%s%s 版本 %s (%s)\n"
+"%s\t由 GNU C 版本 %s 編譯。\n"
+
+#: toplev.c:1117
+#, c-format
+msgid "%s%s%s version %s (%s) compiled by CC.\n"
+msgstr "由 CC 編譯的 %s%s%s 版本 %s (%s)。\n"
+
+#: toplev.c:1121
+#, c-format
+msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
+msgstr "%s%sGGC 準則:--param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
+
+#: toplev.c:1183
+msgid "options passed: "
+msgstr "傳éžçš„é¸é …:"
+
+#: toplev.c:1212
+msgid "options enabled: "
+msgstr "啟用的é¸é …:"
+
+#: toplev.c:1331
+#, c-format
+msgid "created and used with differing settings of '%s'"
+msgstr "建立和使用時使用了ä¸åŒçš„「%sã€è¨­å®š"
+
+#: toplev.c:1333
+msgid "out of memory"
+msgstr "記憶體ä¸è¶³"
+
+#: toplev.c:1348
+msgid "created and used with different settings of -fpic"
+msgstr "建立和使用時使用了ä¸åŒçš„ -fpic 設定"
+
+#: toplev.c:1350
+msgid "created and used with different settings of -fpie"
+msgstr "建立和使用時使用了ä¸åŒçš„ -fpie 設定"
+
+#: tree-inline.c:2021
+msgid "originally indirect function call not considered for inlining"
+msgstr "原本間接的函å¼å‘¼å«ä¸è¢«è€ƒæ…®å…§è¯"
+
+#.
+#. Local variables:
+#. mode:c
+#. End:
+#.
+#: diagnostic.def:1
+msgid "fatal error: "
+msgstr "åš´é‡éŒ¯èª¤ï¼š"
+
+#: diagnostic.def:2
+msgid "internal compiler error: "
+msgstr "編譯器內部錯誤:"
+
+#: diagnostic.def:3
+msgid "error: "
+msgstr "錯誤:"
+
+#: diagnostic.def:4
+msgid "sorry, unimplemented: "
+msgstr "å°ä¸èµ·ï¼Œå°šæœªå¯¦ä½œï¼š"
+
+#: diagnostic.def:5
+msgid "warning: "
+msgstr "警告:"
+
+#: diagnostic.def:6
+msgid "anachronism: "
+msgstr "時代錯誤:"
+
+#: diagnostic.def:7
+msgid "note: "
+msgstr "附註:"
+
+#: diagnostic.def:8
+msgid "debug: "
+msgstr "除錯:"
+
+#: params.def:48
+msgid "The maximum number of fields in a structure variable without direct structure accesses that GCC will attempt to track separately"
+msgstr "GCC 試圖分別追蹤的ä¸å­˜åœ¨ç›´æŽ¥çµæ§‹å­˜å–çš„çµæ§‹è®Šæ•¸ä¸­çš„欄ä½çš„最大數目"
+
+#: params.def:57
+msgid "The maximum structure size (in bytes) for which GCC will use by-element copies"
+msgstr "GCC 將為其考慮按元素複製的最大的çµæ§‹å¤§å°(以ä½å…ƒçµ„表示)"
+
+#: params.def:66
+msgid "The maximum number of structure fields for which GCC will use by-element copies"
+msgstr "GCC 將為其考慮按元素複製的çµæ§‹æ¬„ä½æœ€å¤§æ•¸é‡"
+
+#: params.def:78
+msgid "The threshold ratio between instantiated fields and the total structure size"
+msgstr "實體化的欄ä½å’Œçµæ§‹ç¸½å¤§å°ä¹‹æ¯”的閾值"
+
+#: params.def:95
+msgid "The maximum number of instructions in a single function eligible for inlining"
+msgstr "單一å¯å…§è¯çš„函å¼é«”最多能包å«çš„指令數"
+
+#: params.def:107
+msgid "The maximum number of instructions when automatically inlining"
+msgstr "自動內è¯æ™‚指令的最大數é‡"
+
+#: params.def:112
+msgid "The maximum number of instructions inline function can grow to via recursive inlining"
+msgstr "由於巢狀內è¯é€ æˆçš„å…§è¯å‡½å¼ç¨‹å¼ç¢¼è†¨è„¹çš„上é™å€¼(指令數)"
+
+#: params.def:117
+msgid "The maximum number of instructions non-inline function can grow to via recursive inlining"
+msgstr "由於巢狀內è¯é€ æˆçš„éžå…§è¯å‡½å¼ç¨‹å¼ç¢¼è†¨è„¹çš„上é™å€¼(指令數)"
+
+#: params.def:122
+msgid "The maximum depth of recursive inlining for inline functions"
+msgstr "å…§è¯å‡½å¼ä¸­å·¢ç‹€å…§è¯çš„最大深度"
+
+#: params.def:127
+msgid "The maximum depth of recursive inlining for non-inline functions"
+msgstr "éžå…§è¯å‡½å¼ä¸­å·¢ç‹€å…§è¯çš„最大深度"
+
+#: params.def:132
+msgid "Inline recursively only when the probability of call being executed exceeds the parameter"
+msgstr "僅當被執行的呼å«çš„概率超éŽæ­¤åƒæ•¸æ™‚方進行éžè¿´åœ°å…§è¯"
+
+#: params.def:139
+msgid "If -fvariable-expansion-in-unroller is used, the maximum number of times that an individual variable will be expanded during loop unrolling"
+msgstr "如果使用了 -fvariable-expansion-in-unroller,å³æŒ‡å–®ä¸€è®Šæ•¸åœ¨å¾ªç’°å±•é–‹æ™‚å¯ä»¥åŒæ™‚被展開的次數"
+
+#: params.def:150
+msgid "The maximum number of instructions to consider to fill a delay slot"
+msgstr "考慮填充入延é²æ§½ä¸­çš„最大指令數"
+
+#: params.def:161
+msgid "The maximum number of instructions to consider to find accurate live register information"
+msgstr "用以發ç¾æº–確的作用中暫存器資訊的最大指令數é‡"
+
+#: params.def:171
+msgid "The maximum length of scheduling's pending operations list"
+msgstr "調度候é¸ä½œæ¥­æ¸…單的最大長度"
+
+#: params.def:176
+msgid "The size of function body to be considered large"
+msgstr "超éŽé€™å€‹å¤§å°çš„函å¼é«”被èªç‚ºæ˜¯å¤§çš„"
+
+#: params.def:180
+msgid "Maximal growth due to inlining of large function (in percent)"
+msgstr "å…§è¯å¤§å‡½å¼é€ æˆçš„程å¼ç¢¼è†¨è„¹çš„上é™(以百分數的形å¼çµ¦å‡º)"
+
+#: params.def:184
+msgid "The size of translation unit to be considered large"
+msgstr "超éŽé€™å€‹å¤§å°çš„翻譯單元被èªç‚ºæ˜¯å¤§çš„"
+
+#: params.def:188
+msgid "how much can given compilation unit grow because of the inlining (in percent)"
+msgstr "給定的編譯單元因內è¯é€ æˆçš„é«”ç©è†¨è„¹ä¸Šé™(以百分數表示)"
+
+#: params.def:192
+msgid "expense of call operation relative to ordinary arithmetic operations"
+msgstr "呼å«ä½œæ¥­ç›¸å°æ–¼æ™®é€šç®—術作業的代價"
+
+#: params.def:199
+msgid "The maximum amount of memory to be allocated by GCSE"
+msgstr "GCSE å¯æŒ‡æ´¾çš„最大記憶體é‡"
+
+#: params.def:204
+msgid "The maximum number of passes to make when doing GCSE"
+msgstr "進行 GCSE 的最多趟數"
+
+#: params.def:214
+msgid "The threshold ratio for performing partial redundancy elimination after reload"
+msgstr "é‡æ–°è¼‰å…¥å¾Œé€²è¡Œéƒ¨åˆ†å†—餘消除的比例閾值"
+
+#: params.def:221
+msgid "The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload"
+msgstr "é‡æ–°è¼‰å…¥å¾Œå…許進行冗餘消除的關éµé‚ŠåŸ·è¡Œæ¬¡æ•¸çš„比例閾值"
+
+#: params.def:232
+msgid "The maximum number of instructions to consider to unroll in a loop"
+msgstr "單一循環中考慮展開的最大指令數"
+
+#: params.def:238
+msgid "The maximum number of instructions to consider to unroll in a loop on average"
+msgstr "單一循環中考慮展開的平å‡æœ€å¤§æŒ‡ä»¤æ•¸"
+
+#: params.def:243
+msgid "The maximum number of unrollings of a single loop"
+msgstr "單一循環最多å¯ä»¥è¢«å±•é–‹çš„次數"
+
+#: params.def:248
+msgid "The maximum number of insns of a peeled loop"
+msgstr "å‰é›¢å¾Œçš„循環所能有的最大指令數"
+
+#: params.def:253
+msgid "The maximum number of peelings of a single loop"
+msgstr "單一循環最大的å‰é›¢æ•¸"
+
+#: params.def:258
+msgid "The maximum number of insns of a completely peeled loop"
+msgstr "一個完全å‰é›¢çš„循環所能有的最大指令數"
+
+#: params.def:263
+msgid "The maximum number of peelings of a single loop that is peeled completely"
+msgstr "一個完全å‰é›¢çš„單一循環最大的å‰é›¢æ•¸"
+
+#: params.def:268
+msgid "The maximum number of insns of a peeled loop that rolls only once"
+msgstr "被å‰é›¢å¾Œåªæ²ç¹žä¸€æ¬¡çš„循環包å«çš„最多指令數"
+
+#: params.def:274
+msgid "The maximum number of insns of an unswitched loop"
+msgstr "去開關後的循環所能有的最大指令數"
+
+#: params.def:279
+msgid "The maximum number of unswitchings in a single loop"
+msgstr "單一循環中考慮去開關的最大指令數"
+
+#: params.def:286
+msgid "Bound on the number of iterations the brute force # of iterations analysis algorithm evaluates"
+msgstr ""
+
+#: params.def:291
+msgid "Maximum number of loops to perform swing modulo scheduling on (mainly for debugging)"
+msgstr ""
+
+#: params.def:297
+msgid "A factor for tuning the upper bound that swing modulo scheduler uses for scheduling a loop"
+msgstr ""
+
+#: params.def:301
+msgid "The number of cycles the swing modulo scheduler considers when checking conflicts using DFA"
+msgstr ""
+
+#: params.def:305
+msgid "A threshold on the average loop count considered by the swing modulo scheduler"
+msgstr ""
+
+#: params.def:310
+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:314
+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:330
+msgid "The maximum number of loop iterations we predict statically"
+msgstr "éœæ…‹é æ¸¬æ™‚的最多循環次數"
+
+#: params.def:334
+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:338
+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:342
+msgid "Maximal code growth caused by tail duplication (in percent)"
+msgstr ""
+
+#: params.def:346
+msgid "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percent)"
+msgstr "當最優邊的åå‘概率å°æ–¼æ­¤é–¾å€¼(以百分數表示)時åœæ­¢åå‘增長"
+
+#: params.def:350
+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:354
+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:360
+msgid "The maximum number of incoming edges to consider for crossjumping"
+msgstr "考慮進行交å‰è·³è½‰çš„最大入邊數é‡"
+
+#: params.def:366
+msgid "The minimum number of matching instructions to consider for crossjumping"
+msgstr "考慮進行交å‰è·³è½‰çš„最å°åŒ¹é…指令數é‡"
+
+#: params.def:372
+msgid "The maximum expansion factor when copying basic blocks"
+msgstr "複製基本å€å¡Šæ™‚最大的展開因å­"
+
+#: params.def:378
+msgid "The maximum number of insns to duplicate when unfactoring computed gotos"
+msgstr ""
+
+#: params.def:384
+msgid "The maximum length of path considered in cse"
+msgstr "公因å¼æ¶ˆåŽ»æ™‚考慮的最大路徑長度"
+
+#: params.def:388
+msgid "The maximum instructions CSE process before flushing"
+msgstr ""
+
+#: params.def:395
+msgid "The minimum cost of an expensive expression in the loop invariant motion"
+msgstr ""
+
+#: params.def:404
+msgid "Bound on number of candidates below that all candidates are considered in iv optimizations"
+msgstr ""
+
+#: params.def:412
+msgid "Bound on number of iv uses in loop optimized in iv optimizations"
+msgstr ""
+
+#: params.def:420
+msgid "If number of candidates in the set is smaller, we always try to remove unused ivs during its optimization"
+msgstr ""
+
+#: params.def:425
+msgid "Bound on size of expressions used in the scalar evolutions analyzer"
+msgstr ""
+
+#: params.def:430
+msgid "Bound on number of runtime checks inserted by the vectorizer's loop versioning"
+msgstr ""
+
+#: params.def:437
+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:442
+msgid "The maximum memory locations recorded by cselib"
+msgstr "cselib å¯æŒ‡æ´¾çš„最大記憶體é‡"
+
+#: params.def:446
+msgid "The maximum memory locations recorded by flow"
+msgstr "flow å¯æŒ‡æ´¾çš„最大記憶體é‡"
+
+#: params.def:459
+msgid "Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap"
+msgstr "引發無用收集的堆展開的最å°å€¼ï¼Œä»¥å å †ç¸½å¤§å°çš„百分比給出"
+
+#: params.def:464
+msgid "Minimum heap size before we start collecting garbage, in kilobytes"
+msgstr "開始無用回收時最å°çš„堆大å°ï¼Œä»¥åƒä½å…ƒçµ„表示"
+
+#: params.def:472
+msgid "The maximum number of instructions to search backward when looking for equivalent reload"
+msgstr "後å‘æœå°‹ä»¥å°‹æ‰¾ç­‰åƒ¹å¤šè¼‰å…¥æ™‚è¦æœå°‹çš„最大指令數é‡"
+
+#: params.def:477
+msgid "The maximum number of virtual operands allowed to represent aliases before triggering alias grouping"
+msgstr ""
+
+#: params.def:482
+msgid "The maximum number of blocks in a region to be considered for interblock scheduling"
+msgstr "一個å€åŸŸä¸­è€ƒæ…®é€²è¡Œå¡Šé–“調度的最大塊數"
+
+#: params.def:487
+msgid "The maximum number of insns in a region to be considered for interblock scheduling"
+msgstr "一個å€åŸŸä¸­è€ƒæ…®é€²è¡Œå¡Šé–“調度的最大指令數"
+
+#: params.def:492
+msgid "The minimum probability of reaching a source block for interblock speculative scheduling"
+msgstr "å€å¡Šé–“é æ¸¬èª¿åº¦æ™‚到é”一個來æºå¡Šçš„最å°æ¦‚率"
+
+#: params.def:497
+msgid "The maximum number of RTL nodes that can be recorded as combiner's last value"
+msgstr ""
+
+#: params.def:505
+msgid "The upper bound for sharing integer constants"
+msgstr "共享整型常數的上界"
+
+#: params.def:524
+msgid "Minimum number of virtual mappings to consider switching to full virtual renames"
+msgstr "考慮切æ›åˆ°å®Œæ•´è™›æ“¬æ›´å的最å°è™›æ“¬æ˜ å°„數"
+
+#: params.def:529
+msgid "Ratio between virtual mappings and virtual symbols to do full virtual renames"
+msgstr ""
+
+#: params.def:534
+msgid "The lower bound for a buffer to be considered for stack smashing protection"
+msgstr ""
+
+#: params.def:552
+msgid "Maximum number of statements allowed in a block that needs to be duplicated when threading jumps"
+msgstr ""
+
+#: params.def:561
+msgid "Maximum number of fields in a structure before pointer analysis treats the structure as a single variable"
+msgstr "在指標分æžä¹‹å‰çš„çµæ§‹è®Šæ•¸ä¸­æ¬„ä½çš„最大數目,將該çµæ§‹è¦–為單一變數"
+
+#: config/alpha/alpha.c:5084
+#, c-format
+msgid "invalid %%H value"
+msgstr "無效 %%H 值"
+
+#: config/alpha/alpha.c:5105 config/bfin/bfin.c:1191
+#, c-format
+msgid "invalid %%J value"
+msgstr "無效 %%J 值"
+
+#: config/alpha/alpha.c:5135 config/ia64/ia64.c:4603
+#, c-format
+msgid "invalid %%r value"
+msgstr "無效 %%r 值"
+
+#: config/alpha/alpha.c:5145 config/rs6000/rs6000.c:10413
+#: config/xtensa/xtensa.c:1691
+#, c-format
+msgid "invalid %%R value"
+msgstr "無效 %%R 值"
+
+#: config/alpha/alpha.c:5151 config/rs6000/rs6000.c:10332
+#: config/xtensa/xtensa.c:1658
+#, c-format
+msgid "invalid %%N value"
+msgstr "無效 %%N 值"
+
+#: config/alpha/alpha.c:5159 config/rs6000/rs6000.c:10360
+#, c-format
+msgid "invalid %%P value"
+msgstr "無效 %%P 值"
+
+#: config/alpha/alpha.c:5167
+#, c-format
+msgid "invalid %%h value"
+msgstr "無效 %%h 值"
+
+#: config/alpha/alpha.c:5175 config/xtensa/xtensa.c:1684
+#, c-format
+msgid "invalid %%L value"
+msgstr "無效 %%L 值"
+
+#: config/alpha/alpha.c:5214 config/rs6000/rs6000.c:10314
+#, c-format
+msgid "invalid %%m value"
+msgstr "無效 %%m 值"
+
+#: config/alpha/alpha.c:5222 config/rs6000/rs6000.c:10322
+#, c-format
+msgid "invalid %%M value"
+msgstr "無效 %%M 值"
+
+#: config/alpha/alpha.c:5266
+#, c-format
+msgid "invalid %%U value"
+msgstr "無效 %%U 值"
+
+#: config/alpha/alpha.c:5278 config/alpha/alpha.c:5292
+#: config/rs6000/rs6000.c:10421
+#, c-format
+msgid "invalid %%s value"
+msgstr "無效 %%s 值"
+
+#: config/alpha/alpha.c:5315
+#, c-format
+msgid "invalid %%C value"
+msgstr "無效 %%C 值"
+
+#: config/alpha/alpha.c:5352 config/rs6000/rs6000.c:10153
+#: config/rs6000/rs6000.c:10171
+#, c-format
+msgid "invalid %%E value"
+msgstr "無效 %%E 值"
+
+#: config/alpha/alpha.c:5377 config/alpha/alpha.c:5425
+#, c-format
+msgid "unknown relocation unspec"
+msgstr "ä¸æ˜Žçš„ä¸å¯é æœŸé‡å®šä½"
+
+#: config/alpha/alpha.c:5386 config/crx/crx.c:1082
+#: config/rs6000/rs6000.c:10735
+#, c-format
+msgid "invalid %%xn code"
+msgstr "無效的 %%xn 程å¼ç¢¼"
+
+#: config/arc/arc.c:1726 config/m32r/m32r.c:1805
+#, c-format
+msgid "invalid operand to %%R code"
+msgstr "%%R 程å¼ç¢¼çš„é‹ç®—元無效"
+
+#: config/arc/arc.c:1758 config/m32r/m32r.c:1828
+#, c-format
+msgid "invalid operand to %%H/%%L code"
+msgstr "%%H/%%L 程å¼ç¢¼çš„é‹ç®—元無效"
+
+#: config/arc/arc.c:1780 config/m32r/m32r.c:1899
+#, c-format
+msgid "invalid operand to %%U code"
+msgstr "%%U 程å¼ç¢¼çš„é‹ç®—元無效"
+
+#: config/arc/arc.c:1791
+#, c-format
+msgid "invalid operand to %%V code"
+msgstr "%%V 程å¼ç¢¼çš„é‹ç®—元無效"
+
+#. Unknown flag.
+#. Undocumented flag.
+#: config/arc/arc.c:1798 config/m32r/m32r.c:1926 config/sparc/sparc.c:6818
+#, c-format
+msgid "invalid operand output code"
+msgstr "無效的é‹ç®—元輸出程å¼ç¢¼"
+
+#: config/arm/arm.c:10906 config/arm/arm.c:10924
+#, c-format
+msgid "predicated Thumb instruction"
+msgstr "é æ¸¬åˆ°çš„ Thumb 指令"
+
+#: config/arm/arm.c:10912
+#, c-format
+msgid "predicated instruction in conditional sequence"
+msgstr "在æ¢ä»¶åºåˆ—中é æ¸¬åˆ°çš„指令"
+
+#: config/arm/arm.c:11020 config/arm/arm.c:11030 config/arm/arm.c:11040
+#: config/arm/arm.c:11066 config/arm/arm.c:11084 config/arm/arm.c:11119
+#: config/arm/arm.c:11138 config/arm/arm.c:11153 config/arm/arm.c:11179
+#: config/arm/arm.c:11186 config/arm/arm.c:11193
+#, c-format
+msgid "invalid operand for code '%c'"
+msgstr "程å¼ç¢¼ã€Œ%cã€çš„é‹ç®—元無效"
+
+#: config/arm/arm.c:11079
+#, c-format
+msgid "instruction never exectued"
+msgstr "指令永é ä¸è¢«åŸ·è¡Œ"
+
+#: config/arm/arm.c:11204
+#, c-format
+msgid "missing operand"
+msgstr "缺少é‹ç®—å…ƒ"
+
+#: config/avr/avr.c:1116
+msgid "bad address, not (reg+disp):"
+msgstr "ä½å€éŒ¯èª¤ï¼Œä¸æ˜¯(reg+disp):"
+
+#: config/avr/avr.c:1123
+msgid "bad address, not post_inc or pre_dec:"
+msgstr "錯誤的ä½å€ï¼Œä¸æ˜¯ post_inc 或 pre_dec:"
+
+#: config/avr/avr.c:1134
+msgid "internal compiler error. Bad address:"
+msgstr "編譯器內部錯誤。錯誤的ä½å€ï¼š"
+
+#: config/avr/avr.c:1147
+msgid "internal compiler error. Unknown mode:"
+msgstr "編譯器內部錯誤。ä¸æ˜Žçš„模å¼ï¼š"
+
+#: config/avr/avr.c:1770 config/avr/avr.c:2453
+msgid "invalid insn:"
+msgstr "無效指令:"
+
+#: config/avr/avr.c:1804 config/avr/avr.c:1890 config/avr/avr.c:1939
+#: config/avr/avr.c:1967 config/avr/avr.c:2062 config/avr/avr.c:2231
+#: config/avr/avr.c:2487 config/avr/avr.c:2599
+msgid "incorrect insn:"
+msgstr "錯誤指令:"
+
+#: config/avr/avr.c:1986 config/avr/avr.c:2147 config/avr/avr.c:2302
+#: config/avr/avr.c:2665
+msgid "unknown move insn:"
+msgstr "無效的 move 指令:"
+
+#: config/avr/avr.c:2895
+msgid "bad shift insn:"
+msgstr "錯誤的 shift 指令"
+
+#: config/avr/avr.c:3011 config/avr/avr.c:3459 config/avr/avr.c:3845
+msgid "internal compiler error. Incorrect shift:"
+msgstr "編譯器內部錯誤。ä¸æ­£ç¢ºçš„移ä½é‡ï¼š"
+
+#: config/bfin/bfin.c:1153
+#, c-format
+msgid "invalid %%j value"
+msgstr "無效的 %%j 值"
+
+#: config/bfin/bfin.c:1272
+#, c-format
+msgid "invalid const_double operand"
+msgstr "無效的 const_double é‹ç®—å…ƒ"
+
+#: config/c4x/c4x.c:1584
+msgid "using CONST_DOUBLE for address"
+msgstr "為ä½å€ä½¿ç”¨ CONST_DOUBLE"
+
+#: config/c4x/c4x.c:1722
+msgid "c4x_address_cost: Invalid addressing mode"
+msgstr "c4x_address_cost:無效的定å€æ¨¡å¼"
+
+#: config/c4x/c4x.c:1857
+#, c-format
+msgid "c4x_print_operand: %%L inconsistency"
+msgstr "c4x_print_operand:%%L ä¸ä¸€è‡´"
+
+#: config/c4x/c4x.c:1863
+#, c-format
+msgid "c4x_print_operand: %%N inconsistency"
+msgstr "c4x_print_operand:%%N ä¸ä¸€è‡´"
+
+#: config/c4x/c4x.c:1904
+#, c-format
+msgid "c4x_print_operand: %%O inconsistency"
+msgstr "c4x_print_operand:%%O ä¸ä¸€è‡´"
+
+#: config/c4x/c4x.c:1999
+msgid "c4x_print_operand: Bad operand case"
+msgstr "c4x_print_operand:錯誤的é‹ç®—元類型"
+
+#: config/c4x/c4x.c:2040
+msgid "c4x_print_operand_address: Bad post_modify"
+msgstr "c4x_print_operand_address:錯誤的後變更"
+
+#: config/c4x/c4x.c:2062
+msgid "c4x_print_operand_address: Bad pre_modify"
+msgstr "c4x_print_operand_address:錯誤的å‰è®Šæ›´"
+
+#: config/c4x/c4x.c:2110 config/c4x/c4x.c:2122 config/c4x/c4x.c:2137
+msgid "c4x_print_operand_address: Bad operand case"
+msgstr "c4x_print_operand_address:錯誤的é‹ç®—元類型"
+
+#: config/c4x/c4x.c:2388
+msgid "c4x_rptb_insert: Cannot find start label"
+msgstr "c4x_rptb_insert:找ä¸åˆ°èµ·å§‹æ¨™ç±¤"
+
+#: config/c4x/c4x.c:2990
+msgid "invalid indirect memory address"
+msgstr "無效的間接記憶體ä½å€"
+
+#: config/c4x/c4x.c:3079
+msgid "invalid indirect (S) memory address"
+msgstr "無效的間接(S)記憶體ä½å€"
+
+#: config/c4x/c4x.c:3414
+msgid "c4x_valid_operands: Internal error"
+msgstr "c4x_valid_operands:內部錯誤"
+
+#: config/c4x/c4x.c:3853
+msgid "c4x_operand_subword: invalid mode"
+msgstr "c4x_operand_subword:無效模å¼"
+
+#: config/c4x/c4x.c:3856
+msgid "c4x_operand_subword: invalid operand"
+msgstr "c4x_operand_subword:無效é‹ç®—å…ƒ"
+
+#. We could handle these with some difficulty.
+#. e.g., *p-- => *(p-=2); *(p+1).
+#: config/c4x/c4x.c:3882
+msgid "c4x_operand_subword: invalid autoincrement"
+msgstr "c4x_operand_subword:無效的自差異"
+
+#: config/c4x/c4x.c:3888
+msgid "c4x_operand_subword: invalid address"
+msgstr "c4x_operand_subword:無效ä½å€"
+
+#: config/c4x/c4x.c:3899
+msgid "c4x_operand_subword: address not offsettable"
+msgstr "c4x_operand_subword:無法å–å移é‡çš„ä½å€"
+
+#: config/c4x/c4x.c:4101
+msgid "c4x_rptb_rpts_p: Repeat block top label moved"
+msgstr "c4x_rptb_rpts_p:é‡è¤‡å¡Šçš„頂層標籤被移動"
+
+#. Use `%s' to print the string in case there are any escape
+#. characters in the message.
+#: config/cris/cris.c:492 fortran/dump-parse-tree.c:84
+#: fortran/dump-parse-tree.c:416 fortran/dump-parse-tree.c:747 c-typeck.c:4351
+#: c-typeck.c:4366 c-typeck.c:4381 final.c:2833 final.c:2835 gcc.c:4664
+#: loop-iv.c:2711 loop-iv.c:2720 rtl-error.c:113 toplev.c:587
+#: tree-ssa-loop-niter.c:1037 cp/parser.c:1970 cp/typeck.c:4292
+#: java/expr.c:402
+#, gcc-internal-format
+msgid "%s"
+msgstr "%s"
+
+#: config/cris/cris.c:544
+msgid "unexpected index-type in cris_print_index"
+msgstr "cris_print_index 中有éžé æœŸçš„索引類型"
+
+#: config/cris/cris.c:558
+msgid "unexpected base-type in cris_print_base"
+msgstr "cris_print_base 中有éžé æœŸçš„基礎類別型"
+
+#: config/cris/cris.c:674
+msgid "invalid operand for 'b' modifier"
+msgstr "「bã€ä¿®é£¾ç¬¦çš„é‹ç®—元無效"
+
+#: config/cris/cris.c:691
+msgid "invalid operand for 'o' modifier"
+msgstr "「oã€ä¿®é£¾ç¬¦çš„é‹ç®—元無效"
+
+#: config/cris/cris.c:710
+msgid "invalid operand for 'O' modifier"
+msgstr "「Oã€ä¿®é£¾ç¬¦çš„é‹ç®—元無效"
+
+#: config/cris/cris.c:743
+msgid "invalid operand for 'p' modifier"
+msgstr "「pã€ä¿®é£¾ç¬¦çš„é‹ç®—元無效"
+
+#: config/cris/cris.c:782
+msgid "invalid operand for 'z' modifier"
+msgstr "「zã€ä¿®é£¾ç¬¦çš„é‹ç®—元無效"
+
+#: config/cris/cris.c:836 config/cris/cris.c:866
+msgid "invalid operand for 'H' modifier"
+msgstr "「Hã€ä¿®é£¾ç¬¦çš„é‹ç®—元無效"
+
+#: config/cris/cris.c:842
+msgid "bad register"
+msgstr "錯誤的暫存器å"
+
+#: config/cris/cris.c:887
+msgid "invalid operand for 'e' modifier"
+msgstr "「eã€ä¿®é£¾ç¬¦çš„é‹ç®—元無效"
+
+#: config/cris/cris.c:904
+msgid "invalid operand for 'm' modifier"
+msgstr "「mã€ä¿®é£¾ç¬¦çš„é‹ç®—元無效"
+
+#: config/cris/cris.c:929
+msgid "invalid operand for 'A' modifier"
+msgstr "「Aã€ä¿®é£¾ç¬¦çš„é‹ç®—元無效"
+
+#: config/cris/cris.c:952
+msgid "invalid operand for 'D' modifier"
+msgstr "「Dã€ä¿®é£¾ç¬¦çš„é‹ç®—元無效"
+
+#: config/cris/cris.c:966
+msgid "invalid operand for 'T' modifier"
+msgstr "「Tã€ä¿®é£¾ç¬¦çš„é‹ç®—元無效"
+
+#: config/cris/cris.c:975
+msgid "invalid operand modifier letter"
+msgstr "無效的é‹ç®—元修飾符字æ¯"
+
+#: config/cris/cris.c:1032
+msgid "unexpected multiplicative operand"
+msgstr "無效的乘性é‹ç®—å…ƒ"
+
+#: config/cris/cris.c:1052
+msgid "unexpected operand"
+msgstr "éžé æœŸçš„é‹ç®—å…ƒ"
+
+#: config/cris/cris.c:1085 config/cris/cris.c:1095
+msgid "unrecognized address"
+msgstr "無法辨識的ä½å€"
+
+#: config/cris/cris.c:2021
+msgid "unrecognized supposed constant"
+msgstr "é æœŸçš„常數無法識別"
+
+#: config/cris/cris.c:2396 config/cris/cris.c:2460
+msgid "unexpected side-effects in address"
+msgstr "ä½å€ä¸­æœ‰éžé æœŸçš„副作用"
+
+#. Can't possibly get a GOT-needing-fixup for a function-call,
+#. right?
+#: config/cris/cris.c:3254
+msgid "Unidentifiable call op"
+msgstr "無法辨識的 call 作業"
+
+#: config/cris/cris.c:3305
+#, c-format
+msgid "PIC register isn't set up"
+msgstr "尚未設定好 PIC 暫存器"
+
+#: config/fr30/fr30.c:464
+#, c-format
+msgid "fr30_print_operand_address: unhandled address"
+msgstr "fr30_print_operand:未處ç†çš„指標"
+
+#: config/fr30/fr30.c:488
+#, c-format
+msgid "fr30_print_operand: unrecognized %%p code"
+msgstr "fr30_print_operand:無法辨識的 %%p 程å¼ç¢¼"
+
+#: config/fr30/fr30.c:508
+#, c-format
+msgid "fr30_print_operand: unrecognized %%b code"
+msgstr "fr30_print_operand:無法辨識的 %%b 程å¼ç¢¼"
+
+#: config/fr30/fr30.c:529
+#, c-format
+msgid "fr30_print_operand: unrecognized %%B code"
+msgstr "fr30_print_operand:無法辨識的 %%B 程å¼ç¢¼"
+
+#: config/fr30/fr30.c:537
+#, c-format
+msgid "fr30_print_operand: invalid operand to %%A code"
+msgstr "fr30_print_operand:%%A 程å¼ç¢¼é‹ç®—元無效"
+
+#: config/fr30/fr30.c:554
+#, c-format
+msgid "fr30_print_operand: invalid %%x code"
+msgstr "fr30_print_operand:無效的 %%x 程å¼ç¢¼"
+
+#: config/fr30/fr30.c:561
+#, c-format
+msgid "fr30_print_operand: invalid %%F code"
+msgstr "fr30_print_operand:無效的 %%F 程å¼ç¢¼"
+
+#: config/fr30/fr30.c:578
+#, c-format
+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
+#, c-format
+msgid "fr30_print_operand: unhandled MEM"
+msgstr "fr30_print_operand:未處ç†çš„ MEM"
+
+#: config/frv/frv.c:2541
+msgid "bad insn to frv_print_operand_address:"
+msgstr "給 frv_print_operand_address 錯誤的指令:"
+
+#: config/frv/frv.c:2552
+msgid "bad register to frv_print_operand_memory_reference_reg:"
+msgstr "給 frv_print_operand_memory_reference_reg 錯誤的暫存器:"
+
+#: config/frv/frv.c:2591 config/frv/frv.c:2601 config/frv/frv.c:2610
+#: config/frv/frv.c:2631 config/frv/frv.c:2636
+msgid "bad insn to frv_print_operand_memory_reference:"
+msgstr "給 frv_print_operand_memory_reference 錯誤的指令:"
+
+#: config/frv/frv.c:2722
+#, c-format
+msgid "bad condition code"
+msgstr "錯誤的æ¢ä»¶ç¢¼"
+
+#: config/frv/frv.c:2797
+msgid "bad insn in frv_print_operand, bad const_double"
+msgstr "frv_print_operand 中ä¸æ­£ç¢ºèª¤æŒ‡ä»¤ï¼ŒéŒ¯èª¤çš„ const_double"
+
+#: config/frv/frv.c:2858
+msgid "bad insn to frv_print_operand, 'e' modifier:"
+msgstr "給 frv_print_operand 錯誤的指令,「eã€ä¿®é£¾ç¬¦ï¼š"
+
+#: config/frv/frv.c:2866
+msgid "bad insn to frv_print_operand, 'F' modifier:"
+msgstr "給 frv_print_operand 錯誤的指令,「Fã€ä¿®é£¾ç¬¦ï¼š"
+
+#: config/frv/frv.c:2882
+msgid "bad insn to frv_print_operand, 'f' modifier:"
+msgstr "給 frv_print_operand 錯誤的指令,「fã€ä¿®é£¾ç¬¦ï¼š"
+
+#: config/frv/frv.c:2896
+msgid "bad insn to frv_print_operand, 'g' modifier:"
+msgstr "給 frv_print_operand 錯誤的指令,「gã€ä¿®é£¾ç¬¦ï¼š"
+
+#: config/frv/frv.c:2944
+msgid "bad insn to frv_print_operand, 'L' modifier:"
+msgstr "給 frv_print_operand 錯誤的指令,「Lã€ä¿®é£¾ç¬¦ï¼š"
+
+#: config/frv/frv.c:2957
+msgid "bad insn to frv_print_operand, 'M/N' modifier:"
+msgstr "給 frv_print_operand 錯誤的指令,「M/Nã€ä¿®é£¾ç¬¦ï¼š"
+
+#: config/frv/frv.c:2978
+msgid "bad insn to frv_print_operand, 'O' modifier:"
+msgstr "給 frv_print_operand 錯誤的指令,「Oã€ä¿®é£¾ç¬¦ï¼š"
+
+#: config/frv/frv.c:2996
+msgid "bad insn to frv_print_operand, P modifier:"
+msgstr "給 frv_print_operand 錯誤的指令,P 修飾符:"
+
+#: config/frv/frv.c:3016
+msgid "bad insn in frv_print_operand, z case"
+msgstr "frv_print_operand 中ä¸æ­£ç¢ºèª¤æŒ‡ä»¤ï¼Œz case"
+
+#: config/frv/frv.c:3047
+msgid "bad insn in frv_print_operand, 0 case"
+msgstr "frv_print_operand 中ä¸æ­£ç¢ºèª¤æŒ‡ä»¤ï¼Œ0 case"
+
+#: config/frv/frv.c:3052
+msgid "frv_print_operand: unknown code"
+msgstr "frv_print_operand:ä¸æ˜Žç¨‹å¼ç¢¼"
+
+#: config/frv/frv.c:4421
+msgid "bad output_move_single operand"
+msgstr "錯誤的 output_move_single é‹ç®—å…ƒ"
+
+#: config/frv/frv.c:4548
+msgid "bad output_move_double operand"
+msgstr "錯誤的 output_move_double é‹ç®—å…ƒ"
+
+#: config/frv/frv.c:4690
+msgid "bad output_condmove_single operand"
+msgstr "錯誤的 output_condmove_single é‹ç®—å…ƒ"
+
+#. 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:329
+#, c-format
+msgid " (frv)"
+msgstr " (frv)"
+
+#: config/i386/i386.c:6686
+#, c-format
+msgid "invalid UNSPEC as operand"
+msgstr "無效的 UNSPEC åšç‚ºé‹ç®—å…ƒ"
+
+#: config/i386/i386.c:7268
+#, c-format
+msgid "operand is neither a constant nor a condition code, invalid operand code 'c'"
+msgstr "é‹ç®—元既ä¸æ˜¯ä¸€å€‹å¸¸æ•¸ä¹Ÿä¸æ˜¯ä¸€å€‹æ¢ä»¶ç¢¼ï¼Œç„¡æ•ˆçš„é‹ç®—元程å¼ç¢¼ã€Œcã€"
+
+#: config/i386/i386.c:7321
+#, c-format
+msgid "invalid operand code '%c'"
+msgstr "無效的é‹ç®—元程å¼ç¢¼ã€Œ%cã€"
+
+#: config/i386/i386.c:7364
+#, c-format
+msgid "invalid constraints for operand"
+msgstr "é‹ç®—元的約æŸç„¡æ•ˆ"
+
+#: config/i386/i386.c:12958
+msgid "unknown insn mode"
+msgstr "ä¸æ˜Žçš„指令模å¼"
+
+#. If the environment variable DJDIR is not defined, then DJGPP is not installed correctly and GCC will quickly become confused with the default prefix settings. Report the problem now so the user doesn't receive deceptive "file not found" error messages later.
+#. DJDIR is automatically defined by the DJGPP environment config file pointed to by the environment variable DJGPP. Examine DJGPP to try and figure out what's wrong.
+#: config/i386/xm-djgpp.h:62
+#, c-format
+msgid "environment variable DJGPP not defined"
+msgstr "沒有定義 DJGPP 環境變數"
+
+#: config/i386/xm-djgpp.h:64
+#, c-format
+msgid "environment variable DJGPP points to missing file '%s'"
+msgstr "環境變數 DJGPP åƒç…§çš„檔案「%sã€ä¸å­˜åœ¨"
+
+#: config/i386/xm-djgpp.h:67
+#, c-format
+msgid "environment variable DJGPP points to corrupt file '%s'"
+msgstr "環境變數 DJGPP åƒç…§çš„檔案「%sã€å·²æ壞"
+
+#: config/ia64/ia64.c:4653
+#, c-format
+msgid "ia64_print_operand: unknown code"
+msgstr "ia64_print_operand:ä¸æ˜Žç¨‹å¼ç¢¼"
+
+#: config/ia64/ia64.c:9013
+msgid "invalid conversion from %<__fpreg%>"
+msgstr "從 %<__fpreg%> 的轉æ›ç„¡æ•ˆ"
+
+#: config/ia64/ia64.c:9016
+msgid "invalid conversion to %<__fpreg%>"
+msgstr "å‘ %<__fpreg%> 的轉æ›ç„¡æ•ˆ"
+
+#: config/ia64/ia64.c:9029 config/ia64/ia64.c:9040
+msgid "invalid operation on %<__fpreg%>"
+msgstr "å° %<__fpreg%> 的作業無效"
+
+#: config/iq2000/iq2000.c:3125
+#, c-format
+msgid "invalid %%P operand"
+msgstr "無效的 %%P é‹ç®—å…ƒ"
+
+#: config/iq2000/iq2000.c:3133 config/rs6000/rs6000.c:10350
+#, c-format
+msgid "invalid %%p value"
+msgstr "無效的 %%p 值"
+
+#: config/iq2000/iq2000.c:3189 config/mips/mips.c:5537
+#, c-format
+msgid "invalid use of %%d, %%x, or %%X"
+msgstr "å° %%dã€%%x 或 %%X 的無效使用"
+
+#: config/m32r/m32r.c:1775
+#, c-format
+msgid "invalid operand to %%s code"
+msgstr "%%s 程å¼ç¢¼çš„é‹ç®—元無效"
+
+#: config/m32r/m32r.c:1782
+#, c-format
+msgid "invalid operand to %%p code"
+msgstr "%%p 程å¼ç¢¼çš„é‹ç®—元無效"
+
+#: config/m32r/m32r.c:1837
+msgid "bad insn for 'A'"
+msgstr "「Aã€çš„指令錯誤"
+
+#: config/m32r/m32r.c:1884
+#, c-format
+msgid "invalid operand to %%T/%%B code"
+msgstr "%%T/%%B 程å¼ç¢¼çš„é‹ç®—元無效"
+
+#: config/m32r/m32r.c:1907
+#, c-format
+msgid "invalid operand to %%N code"
+msgstr "%%N 程å¼ç¢¼çš„é‹ç®—元無效"
+
+#: config/m32r/m32r.c:1940
+msgid "pre-increment address is not a register"
+msgstr "å‰è‡ªå¢žä½å€ä¸æ˜¯ä¸€å€‹æš«å­˜å™¨"
+
+#: config/m32r/m32r.c:1947
+msgid "pre-decrement address is not a register"
+msgstr "å‰è‡ªæ¸›ä½å€ä¸æ˜¯ä¸€å€‹æš«å­˜å™¨"
+
+#: config/m32r/m32r.c:1954
+msgid "post-increment address is not a register"
+msgstr "後自增ä½å€ä¸æ˜¯ä¸€å€‹æš«å­˜å™¨"
+
+#: config/m32r/m32r.c:2030 config/m32r/m32r.c:2044
+#: config/rs6000/rs6000.c:17587
+msgid "bad address"
+msgstr "錯誤ä½å€"
+
+#: config/m32r/m32r.c:2049
+msgid "lo_sum not of register"
+msgstr "lo_sum ä¸æ˜¯æš«å­˜å™¨"
+
+#. !!!! SCz wrong here.
+#: config/m68hc11/m68hc11.c:3189 config/m68hc11/m68hc11.c:3567
+msgid "move insn not handled"
+msgstr "æœªè™•ç† move 指令"
+
+#: config/m68hc11/m68hc11.c:3413 config/m68hc11/m68hc11.c:3497
+#: config/m68hc11/m68hc11.c:3770
+msgid "invalid register in the move instruction"
+msgstr "move 指令中出ç¾ç„¡æ•ˆæš«å­˜å™¨"
+
+#: config/m68hc11/m68hc11.c:3447
+msgid "invalid operand in the instruction"
+msgstr "此指令中é‹ç®—元無效"
+
+#: config/m68hc11/m68hc11.c:3744
+msgid "invalid register in the instruction"
+msgstr "此指令中暫存器無效"
+
+#: config/m68hc11/m68hc11.c:3777
+msgid "operand 1 must be a hard register"
+msgstr "é‹ç®—å…ƒ 1 必須是一個硬體暫存器"
+
+#: config/m68hc11/m68hc11.c:3791
+msgid "invalid rotate insn"
+msgstr "無效的循環移ä½æŒ‡ä»¤"
+
+#: config/m68hc11/m68hc11.c:4215
+msgid "registers IX, IY and Z used in the same INSN"
+msgstr "在相åŒæŒ‡ä»¤ä¸­ä½¿ç”¨æš«å­˜å™¨ IXã€IY å’Œ Z"
+
+#: config/m68hc11/m68hc11.c:4552 config/m68hc11/m68hc11.c:4852
+msgid "cannot do z-register replacement"
+msgstr "ç„¡æ³•å®Œæˆ z 暫存器替æ›"
+
+#: config/m68hc11/m68hc11.c:4915
+msgid "invalid Z register replacement for insn"
+msgstr "無效的 Z 暫存器替æ›"
+
+#: config/mips/mips.c:5205
+msgid "mips_debugger_offset called with non stack/frame/arg pointer"
+msgstr ""
+
+#: config/mips/mips.c:5415
+#, c-format
+msgid "PRINT_OPERAND, invalid insn for %%C"
+msgstr "PRINT_OPERAND,%%C 的指令無效"
+
+#: config/mips/mips.c:5432
+#, c-format
+msgid "PRINT_OPERAND, invalid insn for %%N"
+msgstr "PRINT_OPERAND,%%N 的指令無效"
+
+#: config/mips/mips.c:5441
+#, c-format
+msgid "PRINT_OPERAND, invalid insn for %%F"
+msgstr "PRINT_OPERAND,%%F 的指令無效"
+
+#: config/mips/mips.c:5450
+#, c-format
+msgid "PRINT_OPERAND, invalid insn for %%W"
+msgstr "PRINT_OPERAND,%%W 的指令無效"
+
+#: config/mips/mips.c:5471
+#, c-format
+msgid "invalid %%Y value"
+msgstr "無效的 %%Y 值"
+
+#: config/mips/mips.c:5488 config/mips/mips.c:5496
+#, c-format
+msgid "PRINT_OPERAND, invalid insn for %%q"
+msgstr "PRINT_OPERAND,%%q 指令無效"
+
+#: config/mips/mips.c:5565
+msgid "PRINT_OPERAND, invalid operand for relocation"
+msgstr "PRINT_OPERAND,é‡å®šä½çš„é‹ç®—元無效"
+
+#: config/mmix/mmix.c:1468 config/mmix/mmix.c:1598
+msgid "MMIX Internal: Expected a CONST_INT, not this"
+msgstr "MMIX 內部錯誤:é æœŸçš„是 CONST_INT,ä¸æ˜¯é€™å€‹"
+
+#: config/mmix/mmix.c:1547
+msgid "MMIX Internal: Bad value for 'm', not a CONST_INT"
+msgstr "MMIX 內部錯誤:「mã€å€¼éŒ¯èª¤ï¼Œä¸æ˜¯ä¸€å€‹ CONST_INT"
+
+#: config/mmix/mmix.c:1566
+msgid "MMIX Internal: Expected a register, not this"
+msgstr "MMIX 內部錯誤:需è¦ä¸€å€‹æš«å­˜å™¨ï¼Œä¸æ˜¯é€™å€‹"
+
+#: config/mmix/mmix.c:1576
+msgid "MMIX Internal: Expected a constant, not this"
+msgstr "MMIX 內部錯誤:需è¦ä¸€å€‹å¸¸æ•¸ï¼Œä¸æ˜¯é€™å€‹"
+
+#. We need the original here.
+#: config/mmix/mmix.c:1660
+msgid "MMIX Internal: Cannot decode this operand"
+msgstr "MMIX 內部錯誤:無法解碼此é‹ç®—å…ƒ"
+
+#: config/mmix/mmix.c:1717
+msgid "MMIX Internal: This is not a recognized address"
+msgstr "MMIX 內部錯誤:這ä¸æ˜¯ä¸€å€‹å¯è¾¨è­˜çš„ä½å€"
+
+#: config/mmix/mmix.c:2650
+msgid "MMIX Internal: Trying to output invalidly reversed condition:"
+msgstr "MMIX 內部錯誤:試圖輸出無效地å轉的æ¢ä»¶ï¼š"
+
+#: config/mmix/mmix.c:2657
+msgid "MMIX Internal: What's the CC of this?"
+msgstr "MMIX 內部錯誤:它的比較æ¢ä»¶æ˜¯ä»€éº¼ï¼Ÿ"
+
+#: config/mmix/mmix.c:2661
+msgid "MMIX Internal: What is the CC of this?"
+msgstr "MMIX 內部錯誤:它的比較æ¢ä»¶æ˜¯ä»€éº¼ï¼Ÿ"
+
+#: config/mmix/mmix.c:2725
+msgid "MMIX Internal: This is not a constant:"
+msgstr "MMIX 內部錯誤:這ä¸æ˜¯ä¸€å€‹å¸¸æ•¸ï¼š"
+
+#: config/mt/mt.c:298
+msgid "mt_final_prescan_insn, invalid insn #1"
+msgstr ""
+
+#: config/mt/mt.c:369
+msgid "PRINT_OPERAND_ADDRESS, 2 regs"
+msgstr "PRINT_OPERAND_ADDRESS,兩個暫存器"
+
+#: config/mt/mt.c:393
+msgid "PRINT_OPERAND_ADDRESS, invalid insn #1"
+msgstr "PRINT_OPERAND_ADDRESS,無效指令 #1"
+
+#: config/rs6000/host-darwin.c:87
+#, c-format
+msgid "Out of stack space.\n"
+msgstr "堆疊溢出。\n"
+
+#: config/rs6000/host-darwin.c:108
+#, c-format
+msgid "Try running '%s' in the shell to raise its limit.\n"
+msgstr "嘗試在命令解譯器中執行「%sã€ä»¥æå‡å®ƒçš„極值。\n"
+
+#: config/rs6000/rs6000.c:10180
+#, c-format
+msgid "invalid %%f value"
+msgstr "無效 %%f 值"
+
+#: config/rs6000/rs6000.c:10189
+#, c-format
+msgid "invalid %%F value"
+msgstr "無效 %%F 值"
+
+#: config/rs6000/rs6000.c:10198
+#, c-format
+msgid "invalid %%G value"
+msgstr "無效 %%G 值"
+
+#: config/rs6000/rs6000.c:10233
+#, c-format
+msgid "invalid %%j code"
+msgstr "無效 %%j 程å¼ç¢¼"
+
+#: config/rs6000/rs6000.c:10243
+#, c-format
+msgid "invalid %%J code"
+msgstr "無效 %%J 程å¼ç¢¼"
+
+#: config/rs6000/rs6000.c:10253
+#, c-format
+msgid "invalid %%k value"
+msgstr "無效 %%k 值"
+
+#: config/rs6000/rs6000.c:10273 config/xtensa/xtensa.c:1677
+#, c-format
+msgid "invalid %%K value"
+msgstr "無效 %%K 值"
+
+#: config/rs6000/rs6000.c:10340
+#, c-format
+msgid "invalid %%O value"
+msgstr "無效 %%O 值"
+
+#: config/rs6000/rs6000.c:10387
+#, c-format
+msgid "invalid %%q value"
+msgstr "無效 %%q 值"
+
+#: config/rs6000/rs6000.c:10431
+#, c-format
+msgid "invalid %%S value"
+msgstr "無效 %%S 值"
+
+#: config/rs6000/rs6000.c:10471
+#, c-format
+msgid "invalid %%T value"
+msgstr "無效 %%T 值"
+
+#: config/rs6000/rs6000.c:10481
+#, c-format
+msgid "invalid %%u value"
+msgstr "無效 %%u 值"
+
+#: config/rs6000/rs6000.c:10490 config/xtensa/xtensa.c:1647
+#, c-format
+msgid "invalid %%v value"
+msgstr "無效 %%v 值"
+
+#: config/rs6000/rs6000.c:19104
+msgid "AltiVec argument passed to unprototyped function"
+msgstr "å‚³éž AltiVec 引數給無原型的函å¼"
+
+#: config/s390/s390.c:4488
+#, c-format
+msgid "cannot decompose address"
+msgstr "無法分解ä½å€"
+
+#: config/s390/s390.c:4698
+msgid "UNKNOWN in print_operand !?"
+msgstr "UNKNOWN 出ç¾åœ¨ print_operand 中?ï¼"
+
+#: config/sh/sh.c:746
+#, c-format
+msgid "invalid operand to %%R"
+msgstr "%%R çš„é‹ç®—元無效"
+
+#: config/sh/sh.c:773
+#, c-format
+msgid "invalid operand to %%S"
+msgstr "%%S çš„é‹ç®—元無效"
+
+#: config/sh/sh.c:7679
+msgid "created and used with different architectures / ABIs"
+msgstr "建立和使用時使用了ä¸åŒçš„架構/ABI"
+
+#: config/sh/sh.c:7681
+msgid "created and used with different ABIs"
+msgstr "建立和使用時使用了ä¸åŒçš„ ABI"
+
+#: config/sh/sh.c:7683
+msgid "created and used with different endianness"
+msgstr "建立和使用時使用了ä¸åŒçš„高/低ä½ä½å…ƒçµ„在å‰è¨­å®š"
+
+#: config/sparc/sparc.c:6626 config/sparc/sparc.c:6632
+#, c-format
+msgid "invalid %%Y operand"
+msgstr "無效的 %%Y é‹ç®—å…ƒ"
+
+#: config/sparc/sparc.c:6702
+#, c-format
+msgid "invalid %%A operand"
+msgstr "無效的 %%A é‹ç®—å…ƒ"
+
+#: config/sparc/sparc.c:6712
+#, c-format
+msgid "invalid %%B operand"
+msgstr "無效的 %%B é‹ç®—å…ƒ"
+
+#: config/sparc/sparc.c:6751
+#, c-format
+msgid "invalid %%c operand"
+msgstr "無效的 %%c é‹ç®—å…ƒ"
+
+#: config/sparc/sparc.c:6752
+#, c-format
+msgid "invalid %%C operand"
+msgstr "無效的 %%C é‹ç®—å…ƒ"
+
+#: config/sparc/sparc.c:6773
+#, c-format
+msgid "invalid %%d operand"
+msgstr "無效的 %%d é‹ç®—å…ƒ"
+
+#: config/sparc/sparc.c:6774
+#, c-format
+msgid "invalid %%D operand"
+msgstr "無效的 %%D é‹ç®—å…ƒ"
+
+#: config/sparc/sparc.c:6790
+#, c-format
+msgid "invalid %%f operand"
+msgstr "無效的 %%f é‹ç®—å…ƒ"
+
+#: config/sparc/sparc.c:6804
+#, c-format
+msgid "invalid %%s operand"
+msgstr "無效的 %%s é‹ç®—å…ƒ"
+
+#: config/sparc/sparc.c:6858
+#, c-format
+msgid "long long constant not a valid immediate operand"
+msgstr "long long 常數ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„ç«‹å³æ•¸å€¼é‹ç®—å…ƒ"
+
+#: config/sparc/sparc.c:6861
+#, c-format
+msgid "floating point constant not a valid immediate operand"
+msgstr "浮點常數ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„ç«‹å³æ•¸å€¼é‹ç®—å…ƒ"
+
+#: config/stormy16/stormy16.c:1764 config/stormy16/stormy16.c:1835
+#, c-format
+msgid "'B' operand is not constant"
+msgstr "「Bã€é‹ç®—å…ƒä¸æ˜¯ä¸€å€‹å¸¸æ•¸"
+
+#: config/stormy16/stormy16.c:1791
+#, c-format
+msgid "'B' operand has multiple bits set"
+msgstr "「Bã€é‹ç®—元設定了多個ä½"
+
+#: config/stormy16/stormy16.c:1817
+#, c-format
+msgid "'o' operand is not constant"
+msgstr "「oã€é‹ç®—å…ƒä¸æ˜¯ä¸€å€‹å¸¸æ•¸"
+
+#: config/stormy16/stormy16.c:1849
+#, c-format
+msgid "xstormy16_print_operand: unknown code"
+msgstr "xstormy16_print_operand:ä¸æ˜Žç¨‹å¼ç¢¼"
+
+#: config/v850/v850.c:360
+msgid "const_double_split got a bad insn:"
+msgstr "const_double_split 得到一個錯誤的指令:"
+
+#: config/v850/v850.c:924
+msgid "output_move_single:"
+msgstr "output_move_single:"
+
+#: config/xtensa/xtensa.c:748 config/xtensa/xtensa.c:780
+#: config/xtensa/xtensa.c:789
+msgid "bad test"
+msgstr "錯誤的測試"
+
+#: config/xtensa/xtensa.c:1635
+#, c-format
+msgid "invalid %%D value"
+msgstr "無效的 %%D 值"
+
+#: config/xtensa/xtensa.c:1672
+msgid "invalid mask"
+msgstr "無效é®ç½©"
+
+#: config/xtensa/xtensa.c:1698
+#, c-format
+msgid "invalid %%x value"
+msgstr "無效的 %%x 值"
+
+#: config/xtensa/xtensa.c:1705
+#, c-format
+msgid "invalid %%d value"
+msgstr "無效的 %%d 值"
+
+#: config/xtensa/xtensa.c:1726 config/xtensa/xtensa.c:1736
+#, c-format
+msgid "invalid %%t/%%b value"
+msgstr "無效的 %%t/%%b 值"
+
+#: config/xtensa/xtensa.c:1778
+msgid "invalid address"
+msgstr "無效ä½å€"
+
+#: config/xtensa/xtensa.c:1803
+msgid "no register in address"
+msgstr "ä½å€ä¸­ç„¡æš«å­˜å™¨"
+
+#: config/xtensa/xtensa.c:1811
+msgid "address offset not a constant"
+msgstr "ä½å€å移é‡ä¸æ˜¯ä¸€å€‹å¸¸æ•¸"
+
+#: cp/call.c:2441
+msgid "candidates are:"
+msgstr "å‚™é¸ç‚ºï¼š"
+
+#: cp/call.c:6213
+msgid "candidate 1:"
+msgstr "å‚™é¸ 1:"
+
+#: cp/call.c:6214
+msgid "candidate 2:"
+msgstr "å‚™é¸ 2:"
+
+#: cp/decl2.c:695
+msgid "candidates are: %+#D"
+msgstr "å‚™é¸ç‚ºï¼š%+#D"
+
+#: cp/decl2.c:697
+msgid "candidate is: %+#D"
+msgstr "å‚™é¸ç‚ºï¼š%+#D"
+
+#: cp/g++spec.c:238 java/jvspec.c:417
+#, c-format
+msgid "argument to '%s' missing\n"
+msgstr "「%sã€ç¼ºå°‘引數\n"
+
+#: fortran/arith.c:141
+msgid "Arithmetic OK at %L"
+msgstr "%L 處算術正常"
+
+#: fortran/arith.c:144
+msgid "Arithmetic overflow at %L"
+msgstr "%L 處算術å‘上溢ä½"
+
+#: fortran/arith.c:147
+msgid "Arithmetic underflow at %L"
+msgstr "%L 處算術å‘下溢ä½"
+
+#: fortran/arith.c:150
+msgid "Arithmetic NaN at %L"
+msgstr "%L 處算術 NaN"
+
+#: fortran/arith.c:153
+msgid "Division by zero at %L"
+msgstr "%L 處被零除"
+
+#: fortran/arith.c:156
+msgid "Array operands are incommensurate at %L"
+msgstr "%L 處陣列é‹ç®—元無法被使用"
+
+#: fortran/arith.c:160
+msgid "Integer outside symmetric range implied by Standard Fortran at %L"
+msgstr "%L 處整數超出標準 Fortran éš±å«çš„å°ç¨±ç¯„åœ"
+
+#: fortran/arith.c:1384
+msgid "Elemental binary operation"
+msgstr "基本的二元作業"
+
+#: fortran/arith.c:1920
+#, no-c-format
+msgid "Arithmetic OK converting %s to %s at %L"
+msgstr "從 %s 轉æ›åˆ° %s,在 %L 處:算術正常"
+
+#: fortran/arith.c:1924
+#, no-c-format
+msgid "Arithmetic overflow converting %s to %s at %L"
+msgstr "從 %s 轉æ›åˆ° %s,在 %L 處:算術å‘上溢ä½"
+
+#: fortran/arith.c:1928
+#, no-c-format
+msgid "Arithmetic underflow converting %s to %s at %L"
+msgstr "從 %s 轉æ›åˆ° %s,在 %L 處:算術å‘下溢ä½"
+
+#: fortran/arith.c:1932
+#, no-c-format
+msgid "Arithmetic NaN converting %s to %s at %L"
+msgstr "從 %s 轉æ›åˆ° %s,在 %L 處:算術 NaN"
+
+#: fortran/arith.c:1936
+#, no-c-format
+msgid "Division by zero converting %s to %s at %L"
+msgstr "從 %s 轉æ›åˆ° %s 時被零除,於 %L 處"
+
+#: fortran/arith.c:1940
+#, no-c-format
+msgid "Array operands are incommensurate converting %s to %s at %L"
+msgstr ""
+
+#: fortran/arith.c:1944
+#, no-c-format
+msgid "Integer outside symmetric range implied by Standard Fortran converting %s to %s at %L"
+msgstr ""
+
+#: fortran/arith.c:2277 fortran/arith.c:2312 fortran/arith.c:2349
+#: fortran/arith.c:2399
+#, no-c-format
+msgid "The Hollerith constant at %L is too long to convert to %s"
+msgstr "%L çš„è·å‹’瑞斯常數太長,無法被轉æ›ç‚º %s"
+
+#: fortran/arith.c:2445
+#, no-c-format
+msgid "Enumerator exceeds the C integer type at %C"
+msgstr "%C 處:列舉é‡è¶…éŽ C 整數類型"
+
+#: fortran/array.c:97
+#, no-c-format
+msgid "Expected array subscript at %C"
+msgstr "%C 處需è¦é™£åˆ—下標"
+
+#: fortran/array.c:124
+#, no-c-format
+msgid "Expected array subscript stride at %C"
+msgstr "%C 需è¦é™£åˆ—下標間隔"
+
+#: fortran/array.c:167
+#, no-c-format
+msgid "Invalid form of array reference at %C"
+msgstr "%C 處陣列åƒç…§å½¢å¼ç„¡æ•ˆ"
+
+#: fortran/array.c:172
+#, no-c-format
+msgid "Array reference at %C cannot have more than %d dimensions"
+msgstr "%C 處的任何åƒç…§éƒ½ä¸èƒ½å¤šæ–¼ %d 維"
+
+#: fortran/array.c:224
+#, no-c-format
+msgid "Variable '%s' at %L in this context must be constant"
+msgstr "變數「%sã€åœ¨ %L 處上下文中必須是常數"
+
+#: fortran/array.c:300
+#, no-c-format
+msgid "Expected expression in array specification at %C"
+msgstr "%C 處指定陣列時需è¦é‹ç®—å¼"
+
+#: fortran/array.c:379
+#, no-c-format
+msgid "Bad array specification for an explicitly shaped array at %C"
+msgstr ""
+
+#: fortran/array.c:390
+#, no-c-format
+msgid "Bad array specification for assumed shape array at %C"
+msgstr ""
+
+#: fortran/array.c:403
+#, no-c-format
+msgid "Bad specification for deferred shape array at %C"
+msgstr ""
+
+#: fortran/array.c:407
+#, no-c-format
+msgid "Bad specification for assumed size array at %C"
+msgstr ""
+
+#: fortran/array.c:416
+#, no-c-format
+msgid "Expected another dimension in array declaration at %C"
+msgstr "%C 處陣列宣告需è¦å¦å¤–一維"
+
+#: fortran/array.c:422
+#, no-c-format
+msgid "Array specification at %C has more than %d dimensions"
+msgstr "%C 處陣列指定了多於 %d 的維數"
+
+#: fortran/array.c:627
+#, no-c-format
+msgid "duplicated initializer"
+msgstr "é‡è¤‡çš„åˆå§‹å€¼è¨­å®š"
+
+#: fortran/array.c:720
+#, no-c-format
+msgid "DO-iterator '%s' at %L is inside iterator of the same name"
+msgstr "DO 游標「%sã€åœ¨ %L 處出ç¾åœ¨å¦ä¸€å€‹åŒå游標作用欄ä½å…§"
+
+#: fortran/array.c:822 fortran/array.c:931
+#, no-c-format
+msgid "Syntax error in array constructor at %C"
+msgstr "%C 陣列建構語法錯誤"
+
+#: fortran/array.c:877
+#, no-c-format
+msgid "New in Fortran 2003: [...] style array constructors at %C"
+msgstr "Fortran 2003 中的新特性:%C 處 [...] 風格的陣列建構"
+
+#: fortran/array.c:891
+#, no-c-format
+msgid "Empty array constructor at %C is not allowed"
+msgstr "%C 處的空陣列建構ä¸è¢«å…許"
+
+#: fortran/array.c:976
+#, no-c-format
+msgid "Element in %s array constructor at %L is %s"
+msgstr "%s 陣列建構中的元素在 %L 處是 %s"
+
+#: fortran/array.c:1305
+#, no-c-format
+msgid "Iterator step at %L cannot be zero"
+msgstr "%L 迭代次數ä¸èƒ½ç‚ºé›¶"
+
+#: fortran/check.c:44
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be %s"
+msgstr "引數「%sã€(屬於內建函å¼ã€Œ%sã€ï¼Œä½æ–¼ %L)必須是 %s"
+
+#: fortran/check.c:60
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be a numeric type"
+msgstr "引數「%sã€(屬於內建函å¼ã€Œ%sã€ï¼Œä½æ–¼ %L)必須具有數字類型"
+
+#: fortran/check.c:75 fortran/check.c:661 fortran/check.c:671
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be INTEGER or REAL"
+msgstr "引數「%sã€(屬於內建函å¼ã€Œ%sã€ï¼Œä½æ–¼ %L)必須為整數型或實數型"
+
+#: fortran/check.c:92
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be REAL or COMPLEX"
+msgstr "引數「%sã€(屬於內建函å¼ã€Œ%sã€ï¼Œä½æ–¼ %L)必須為實數型或複數型"
+
+#: fortran/check.c:118
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be a constant"
+msgstr "引數「%sã€(屬於內建函å¼ã€Œ%sã€ï¼Œä½æ–¼ %L)必須是一個常數"
+
+#: fortran/check.c:126
+#, no-c-format
+msgid "Invalid kind for %s at %L"
+msgstr "%s 種別無效,於 %L 處"
+
+#: fortran/check.c:146
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be double precision"
+msgstr "引數「%sã€(屬於內建函å¼ã€Œ%sã€ï¼Œä½æ–¼ %L)必須為雙精度"
+
+#: fortran/check.c:163
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be a logical array"
+msgstr "引數「%sã€(屬於內建函å¼ã€Œ%sã€ï¼Œä½æ–¼ %L)必須是一個é‚輯陣列"
+
+#: fortran/check.c:180
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be an array"
+msgstr "引數「%sã€(屬於內建函å¼ã€Œ%sã€ï¼Œä½æ–¼ %L)必須是一個陣列"
+
+#: fortran/check.c:195
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be a scalar"
+msgstr "引數「%sã€(屬於內建函å¼ã€Œ%sã€ï¼Œä½æ–¼ %L)必須是一個標é‡"
+
+#: fortran/check.c:210
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be the same type and kind as '%s'"
+msgstr "引數「%sã€(屬於內建函å¼ã€Œ%sã€ï¼Œä½æ–¼ %L)必須具有與「%sã€ä¸€æ¨£çš„類型和種別"
+
+#: fortran/check.c:225
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be of rank %d"
+msgstr "引數「%sã€(屬於內建函å¼ã€Œ%sã€ï¼Œä½æ–¼ %L)的秩必須為 %d"
+
+#: fortran/check.c:239
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must not be OPTIONAL"
+msgstr "引數「%sã€(屬於內建函å¼ã€Œ%sã€ï¼Œä½æ–¼ %L)ä¸èƒ½ç‚ºå¯é¸çš„"
+
+#: fortran/check.c:259
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be of kind %d"
+msgstr "引數「%sã€(屬於內建函å¼ã€Œ%sã€ï¼Œä½æ–¼ %L)必須具有種別 %d"
+
+#: fortran/check.c:280
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L cannot be INTENT(IN)"
+msgstr "「%sã€å¼•æ•¸(屬於內建函å¼ã€Œ%sã€)在 %L 處ä¸èƒ½æ˜¯ INTENT(IN)"
+
+#: fortran/check.c:286
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be a variable"
+msgstr "引數「%sã€(屬於內建函å¼ã€Œ%sã€ï¼Œä½æ–¼ %L)必須是一個變數"
+
+#: fortran/check.c:311
+#, no-c-format
+msgid "Missing DIM parameter in intrinsic '%s' at %L"
+msgstr "內建函å¼ã€Œ%sã€åœ¨ %L 處缺少 DIM åƒæ•¸"
+
+#: fortran/check.c:348
+#, no-c-format
+msgid "'dim' argument of '%s' intrinsic at %L is not a valid dimension index"
+msgstr "「%sã€å…§å»ºå‡½å¼çš„「dimã€å¼•æ•¸(æ–¼ %L 處)ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„維數索引"
+
+#: fortran/check.c:433
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be ALLOCATABLE"
+msgstr "引數「%sã€(屬於內建函å¼ã€Œ%sã€ï¼Œä½æ–¼ %L)必須為 ALLOCATABLE"
+
+#: fortran/check.c:454 fortran/check.c:3108
+#, no-c-format
+msgid "'%s' and '%s' arguments of '%s' intrinsic at %L must have the same type"
+msgstr "「%sã€å’Œã€Œ%sã€å¼•æ•¸(屬於「%sã€å…§å»ºå‡½å¼)在 %L 處類型必須相åŒ"
+
+#: fortran/check.c:463 fortran/check.c:941 fortran/check.c:1076
+#: fortran/check.c:1139 fortran/check.c:1364
+#, no-c-format
+msgid "Extension: Different type kinds at %L"
+msgstr "擴充:%L 處類型種別ä¸åŒ"
+
+#: fortran/check.c:488 fortran/check.c:1661
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be a POINTER"
+msgstr "引數「%sã€(屬於內建函å¼ã€Œ%sã€ï¼Œä½æ–¼ %L)必須是一個 POINTER"
+
+#: fortran/check.c:500
+#, no-c-format
+msgid "NULL pointer at %L is not permitted as actual argument of '%s' intrinsic function"
+msgstr "%L çš„ NULL 指標ä¸èƒ½åšç‚ºå…§å»ºå‡½å¼ã€Œ%sã€çš„引數"
+
+#: fortran/check.c:515
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be a POINTER or a TARGET"
+msgstr "引數「%sã€(屬於內建函å¼ã€Œ%sã€ï¼Œä½æ–¼ %L)必須是一個 POINTER 或 TARGET"
+
+#: fortran/check.c:531
+#, no-c-format
+msgid "Array section with a vector subscript at %L shall not be the target of a pointer"
+msgstr "%L 處由å‘é‡ä¸‹æ¨™é¸æ“‡çš„部分陣列ä¸æ‡‰æ˜¯æŒ‡æ¨™çš„目的"
+
+#: fortran/check.c:641 fortran/check.c:743
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must not be present if 'x' is COMPLEX"
+msgstr "當「xã€æ˜¯ COMPLEX 時「%sã€å¼•æ•¸(屬於「%sã€å…§å»ºå‡½å¼ï¼Œåœ¨ %L 處)ä¸èƒ½å­˜åœ¨"
+
+#: fortran/check.c:792 fortran/check.c:1444 fortran/check.c:1452
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be numeric or LOGICAL"
+msgstr "引數「%sã€(屬於內建函å¼ã€Œ%sã€ï¼Œä½æ–¼ %L)必須為數字或 LOGICAL åž‹"
+
+#: fortran/check.c:1046
+#, no-c-format
+msgid "Argument of %s at %L must be of length one"
+msgstr "%s çš„åƒæ•¸(ä½æ–¼ %L)長度必須為 1"
+
+#: fortran/check.c:1098
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be the same kind as '%s'"
+msgstr "引數「%sã€(屬於內建函å¼ã€Œ%sã€ï¼Œä½æ–¼ %L)必須具有與「%sã€ä¸€æ¨£çš„種別"
+
+#: fortran/check.c:1213
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be a non-derived type"
+msgstr "引數「%sã€(屬於內建函å¼ã€Œ%sã€ï¼Œä½æ–¼ %L)ä¸èƒ½æ˜¯è¡ç”Ÿé¡žåž‹"
+
+#: fortran/check.c:1336
+#, no-c-format
+msgid "Intrinsic '%s' at %L must have at least two arguments"
+msgstr "內建函å¼ã€Œ%s〠於 %L 處必須有至少兩個引數"
+
+#: fortran/check.c:1370
+#, no-c-format
+msgid "'a%d' argument of '%s' intrinsic at %L must be %s(%d)"
+msgstr "引數「%sã€(屬於內建函å¼ã€Œ%sã€ï¼Œä½æ–¼ %L)必須是 %s(%d)"
+
+#: fortran/check.c:1395
+#, no-c-format
+msgid "'a1' argument of '%s' intrinsic at %L must be INTEGER or REAL"
+msgstr "「%sã€å…§å»ºå‡½å¼çš„「a1ã€å¼•æ•¸åœ¨ %L 處必須是 INTEGER 或 REAL"
+
+#: fortran/check.c:1473
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be of rank 1 or 2"
+msgstr "引數「%sã€(屬於內建函å¼ã€Œ%sã€ï¼Œä½æ–¼ %L)的秩必須為 1 或 2"
+
+#: fortran/check.c:1682
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be conformable with '%s' argument"
+msgstr "引數「%sã€(屬於內建函å¼ã€Œ%sã€ï¼Œä½æ–¼ %L)必須與「%sã€å¼•æ•¸ç›¸å®¹"
+
+#: fortran/check.c:1709
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be of type REAL or COMPLEX"
+msgstr "「%sã€å¼•æ•¸(屬於內建函å¼ã€Œ%sã€ï¼Œæ–¼ %L 處)的類型必須為 REAL 或 COMPLEX"
+
+#: fortran/check.c:1730
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be of a dummy variable"
+msgstr "引數「%sã€(屬於內建函å¼ã€Œ%sã€ï¼Œä½æ–¼ %L)必須是一個啞元變數"
+
+#: fortran/check.c:1738
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be of an OPTIONAL dummy variable"
+msgstr "「%sã€å¼•æ•¸(屬於「%sã€å…§å»ºå‡½å¼ï¼Œä½æ–¼ %L)必須是一個 OPTIONAL 啞變數"
+
+#: fortran/check.c:1854
+#, no-c-format
+msgid "'shape' argument of 'reshape' intrinsic at %L must be an array of constant size"
+msgstr "「reshapeã€å…§å»ºå‡½å¼çš„「shapeã€å¼•æ•¸åœ¨ %L 處必須是大å°ç‚ºå¸¸æ•¸çš„陣列"
+
+#: fortran/check.c:1864
+#, no-c-format
+msgid "'shape' argument of 'reshape' intrinsic at %L has more than %d elements"
+msgstr "「reshapeã€å…§å»ºå‡½å¼çš„「shapeã€å¼•æ•¸åœ¨ %L 處有多於 %d 個的元素"
+
+#: fortran/check.c:1952
+#, no-c-format
+msgid "Missing arguments to %s intrinsic at %L"
+msgstr "%s 內建函å¼ç¼ºå°‘引數,於 %L 處"
+
+#: fortran/check.c:1993
+#, no-c-format
+msgid "'source' argument of 'shape' intrinsic at %L must not be an assumed size array"
+msgstr "「shapeã€å…§å»ºå‡½å¼çš„「sourceã€å¼•æ•¸åœ¨ %L 處ä¸èƒ½æ˜¯å‡å®šå¤§å°çš„陣列"
+
+#: fortran/check.c:2055
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be less than rank %d"
+msgstr "引數「%sã€(屬於內建函å¼ã€Œ%sã€ï¼Œä½æ–¼ %L)秩必須å°æ–¼ %d"
+
+#: fortran/check.c:2512 fortran/check.c:2532
+#, no-c-format
+msgid "Too many arguments to %s at %L"
+msgstr "çµ¦äºˆå‡½å¼ %s çš„åƒæ•¸å¤ªå¤šï¼Œæ–¼ %L"
+
+#: fortran/check.c:2660 fortran/check.c:3022 fortran/check.c:3046
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be INTEGER or PROCEDURE"
+msgstr "引數「%sã€(屬於內建函å¼ã€Œ%sã€ï¼Œä½æ–¼ %L)必須為 INTEGER 或 PROCEDURE"
+
+#: fortran/check.c:3093 fortran/check.c:3101
+#, no-c-format
+msgid "'%s' argument of '%s' intrinsic at %L must be INTEGER or LOGICAL"
+msgstr "引數「%sã€(屬於內建函å¼ã€Œ%sã€ï¼Œä½æ–¼ %L)必須為 INTEGER 或 LOGICAL"
+
+#: fortran/data.c:63
+#, no-c-format
+msgid "non-constant array in DATA statement %L."
+msgstr "%L DATA 敘述中有éžå¸¸æ•¸é™£åˆ—"
+
+#: fortran/data.c:327
+#, no-c-format
+msgid "Extension: re-initialization of '%s' at %L"
+msgstr "擴充:「%sã€é‡åˆå§‹åŒ–æ–¼ %L"
+
+#: fortran/decl.c:208
+#, no-c-format
+msgid "Host associated variable '%s' may not be in the DATA statement at %C."
+msgstr ""
+
+#: fortran/decl.c:215
+#, no-c-format
+msgid "Extension: initialization of common block variable '%s' in DATA statement at %C"
+msgstr "擴充:DATA 敘述中å°å…¬å…±å¡Šè®Šæ•¸ã€Œ%sã€åœ¨ %C 處åˆå§‹åŒ–"
+
+#: fortran/decl.c:301
+#, no-c-format
+msgid "Symbol '%s' must be a PARAMETER in DATA statement at %C"
+msgstr "DATA 敘述中符號「%sã€å¿…須是一個 PARAMETER,在 %C 處"
+
+#: fortran/decl.c:408
+#, no-c-format
+msgid "Initialization at %C is not allowed in a PURE procedure"
+msgstr "åˆå§‹åŒ–ä¸å…許出ç¾åœ¨ %C 處的 PURE 程åºä¸­"
+
+#: fortran/decl.c:455
+#, no-c-format
+msgid "DATA statement at %C is not allowed in a PURE procedure"
+msgstr "DATA 敘述ä¸å…許出ç¾åœ¨ %C 處的 PURE 程åºä¸­"
+
+#: fortran/decl.c:483
+#, no-c-format
+msgid "Bad INTENT specification at %C"
+msgstr "%C 處錯誤地指定 INTENT"
+
+#: fortran/decl.c:548
+#, no-c-format
+msgid "Syntax error in character length specification at %C"
+msgstr "%C 處指定字元長度時語法錯誤"
+
+#: fortran/decl.c:623
+#, no-c-format
+msgid "Procedure '%s' at %C is already defined at %L"
+msgstr "程åºã€Œ%sã€åœ¨ %C 處已經於 %L 處被宣告"
+
+#: fortran/decl.c:633
+#, no-c-format
+msgid "Procedure '%s' at %C has an explicit interface and must not have attributes declared at %L"
+msgstr "程åºã€Œ%sã€åœ¨ %C 處具有顯å¼ä»‹é¢ï¼Œè€Œä¸”必須在 %L 處ä¸å…·æœ‰å·²å®£å‘Šçš„屬性"
+
+#: fortran/decl.c:805
+#, no-c-format
+msgid "Initializer not allowed for PARAMETER '%s' at %C"
+msgstr "PARAMETER「%sã€åœ¨ %C 處ä¸å…許有åˆå§‹å€¼è¨­å®š"
+
+#: fortran/decl.c:814
+#, no-c-format
+msgid "Initializer not allowed for COMMON variable '%s' at %C"
+msgstr "COMMON 變數「%sã€åœ¨ %C 處ä¸å…許有åˆå§‹å€¼è¨­å®š"
+
+#: fortran/decl.c:824
+#, no-c-format
+msgid "PARAMETER at %L is missing an initializer"
+msgstr "%L 處 PARAMETER 缺少åˆå§‹å€¼è¨­å®š"
+
+#: fortran/decl.c:835
+#, no-c-format
+msgid "Variable '%s' at %C with an initializer already appears in a DATA statement"
+msgstr ""
+
+#: fortran/decl.c:913
+#, no-c-format
+msgid "Component at %C must have the POINTER attribute"
+msgstr "%C 處的元件必須有 POINTER 屬性"
+
+#: fortran/decl.c:922
+#, no-c-format
+msgid "Array component of structure at %C must have explicit or deferred shape"
+msgstr ""
+
+#: fortran/decl.c:951
+#, no-c-format
+msgid "Pointer array component of structure at %C must have a deferred shape"
+msgstr ""
+
+#: fortran/decl.c:961
+#, no-c-format
+msgid "Array component of structure at %C must have an explicit shape"
+msgstr ""
+
+#: fortran/decl.c:987
+#, no-c-format
+msgid "NULL() initialization at %C is ambiguous"
+msgstr "%C 處的 NULL() åˆå§‹åŒ–有歧義"
+
+#: fortran/decl.c:1054
+#, no-c-format
+msgid "Enumerator cannot be array at %C"
+msgstr "%C 處列舉é‡ä¸èƒ½æ˜¯é™£åˆ—"
+
+#: fortran/decl.c:1115 fortran/decl.c:3374
+#, no-c-format
+msgid "Duplicate array spec for Cray pointee at %C."
+msgstr ""
+
+#: fortran/decl.c:1167
+#, no-c-format
+msgid "Function name '%s' not allowed at %C"
+msgstr "函å¼å「%sã€ä¸å…許出ç¾åœ¨ %C 處"
+
+#: fortran/decl.c:1183
+#, no-c-format
+msgid "Extension: Old-style initialization at %C"
+msgstr "擴充:%C 處舊å¼çš„åˆå§‹åŒ–"
+
+#: fortran/decl.c:1199
+#, no-c-format
+msgid "Initialization at %C isn't for a pointer variable"
+msgstr "%C çš„åˆå§‹åŒ–ä¸æ˜¯ç‚ºæŒ‡æ¨™è®Šæ•¸æº–備的"
+
+#: fortran/decl.c:1207
+#, no-c-format
+msgid "Pointer initialization requires a NULL() at %C"
+msgstr "%C 處的指標åˆå§‹åŒ–éœ€è¦ NULL()"
+
+#: fortran/decl.c:1214
+#, no-c-format
+msgid "Initialization of pointer at %C is not allowed in a PURE procedure"
+msgstr "%C 處å°æŒ‡æ¨™çš„åˆå§‹åŒ–ä¸å…許出ç¾åœ¨ PURE 程åºä¸­"
+
+#: fortran/decl.c:1228
+#, no-c-format
+msgid "Pointer initialization at %C requires '=>', not '='"
+msgstr "在 %C 處的指標åˆå§‹åŒ–需è¦ã€Œ=>ã€ï¼Œè€Œä¸æ˜¯ã€Œ=ã€"
+
+#: fortran/decl.c:1236
+#, no-c-format
+msgid "Expected an initialization expression at %C"
+msgstr "%C 處需è¦ä¸€å€‹åˆå§‹åŒ–é‹ç®—å¼"
+
+#: fortran/decl.c:1243
+#, no-c-format
+msgid "Initialization of variable at %C is not allowed in a PURE procedure"
+msgstr "%C 處å°è®Šæ•¸çš„åˆå§‹åŒ–ä¸å…許出ç¾åœ¨ PURE 程åºä¸­"
+
+#: fortran/decl.c:1265
+#, no-c-format
+msgid "ENUMERATOR %L not initialized with integer expression"
+msgstr ""
+
+#: fortran/decl.c:1324 fortran/decl.c:1333
+#, no-c-format
+msgid "Old-style type declaration %s*%d not supported at %C"
+msgstr "舊å¼çš„型態宣告 %s*%d 在 %C 處ä¸è¢«æ”¯æ´"
+
+#: fortran/decl.c:1338
+#, no-c-format
+msgid "Nonstandard type declaration %s*%d at %C"
+msgstr "%C 處éžæ¨™æº–的型態宣告 %s*%d"
+
+#: fortran/decl.c:1372
+#, no-c-format
+msgid "Expected initialization expression at %C"
+msgstr "%C 處需è¦åˆå§‹åŒ–é‹ç®—å¼"
+
+#: fortran/decl.c:1378
+#, no-c-format
+msgid "Expected scalar initialization expression at %C"
+msgstr "%C 處需è¦æ¨™é‡åˆå§‹åŒ–é‹ç®—å¼"
+
+#: fortran/decl.c:1396
+#, no-c-format
+msgid "Kind %d not supported for type %s at %C"
+msgstr "種別 %d 在 %C 處 ä¸ç‚ºé¡žåž‹ %s 所支æ´"
+
+#: fortran/decl.c:1405
+#, no-c-format
+msgid "Missing right paren at %C"
+msgstr "%C 處缺少å³æ‹¬è™Ÿ"
+
+#: fortran/decl.c:1494 fortran/decl.c:1537
+#, no-c-format
+msgid "Kind %d is not a CHARACTER kind at %C"
+msgstr "種別 %d 在 %C 處ä¸æ˜¯ CHARACTER 種別"
+
+#: fortran/decl.c:1531
+#, no-c-format
+msgid "Syntax error in CHARACTER declaration at %C"
+msgstr "%C 的 CHARACTER 宣告語法錯誤"
+
+#: fortran/decl.c:1592
+#, no-c-format
+msgid "Extension: BYTE type at %C"
+msgstr "擴充:%C 處的 BYTE 類型"
+
+#: fortran/decl.c:1598
+#, no-c-format
+msgid "BYTE type used at %C is not available on the target machine"
+msgstr "%C 使用到的 BYTE 類型在目標平臺上ä¸å¯"
+
+#: fortran/decl.c:1647
+#, no-c-format
+msgid "DOUBLE COMPLEX at %C does not conform to the Fortran 95 standard"
+msgstr "%C 處的 DOUBLE COMPLEX 並ä¸éµå¾ª Fortran 95 標準"
+
+#: fortran/decl.c:1670
+#, no-c-format
+msgid "Type name '%s' at %C is ambiguous"
+msgstr "é¡žåž‹å「%sã€(æ–¼ %C 處)有歧義"
+
+#: fortran/decl.c:1736
+#, no-c-format
+msgid "Missing character range in IMPLICIT at %C"
+msgstr ""
+
+#: fortran/decl.c:1782
+#, no-c-format
+msgid "Letters must be in alphabetic order in IMPLICIT statement at %C"
+msgstr "%C 處 IMPLICIT 敘述中的字æ¯å¿…須按åºæŽ’列"
+
+#: fortran/decl.c:1836
+#, no-c-format
+msgid "Empty IMPLICIT statement at %C"
+msgstr "%C IMPLICIT 敘述為空"
+
+#: fortran/decl.c:2000
+#, no-c-format
+msgid "Enumerator cannot have attributes %C"
+msgstr "列舉é‡ä¸èƒ½æœ‰å±¬æ€§ %C"
+
+#: fortran/decl.c:2013
+#, no-c-format
+msgid "Missing dimension specification at %C"
+msgstr "%C 處沒有指定維數"
+
+#: fortran/decl.c:2095
+#, no-c-format
+msgid "Duplicate %s attribute at %L"
+msgstr "é‡è¤‡çš„ %s 屬性,ä½æ–¼ %L"
+
+#: fortran/decl.c:2112
+#, no-c-format
+msgid "Attribute at %L is not allowed in a TYPE definition"
+msgstr ""
+
+#: fortran/decl.c:2126
+#, no-c-format
+msgid "%s attribute at %L is not allowed outside of a MODULE"
+msgstr "%s 屬性(ä½æ–¼ %L)ä¸å…許出ç¾åœ¨ MODULE 以外"
+
+#. Now we have an error, which we signal, and then fix up
+#. because the knock-on is plain and simple confusing.
+#: fortran/decl.c:2264
+#, no-c-format
+msgid "Derived type at %C has not been previously defined and so cannot appear in a derived type definition."
+msgstr "%C 處的è¡ç”Ÿé¡žåž‹å°šæœªè¢«å®šç¾©ï¼Œå› æ­¤ä¸èƒ½å‡ºç¾åœ¨è¡ç”Ÿé¡žåž‹å®šç¾©ä¸­"
+
+#: fortran/decl.c:2294
+#, no-c-format
+msgid "Syntax error in data declaration at %C"
+msgstr "%C 處資料宣告語法錯誤"
+
+#: fortran/decl.c:2440
+#, no-c-format
+msgid "Name '%s' at %C is the name of the procedure"
+msgstr "å稱「%sã€(ä½æ–¼ %C)是一個程åºçš„å稱"
+
+#: fortran/decl.c:2452
+#, no-c-format
+msgid "Unexpected junk in formal argument list at %C"
+msgstr "%C 處åƒæ•¸æ¸…單中有éžé æœŸçš„無用字元"
+
+#: fortran/decl.c:2470
+#, no-c-format
+msgid "Duplicate symbol '%s' in formal argument list at %C"
+msgstr "符號「%sã€åœ¨ %C 處的åƒæ•¸æ¸…單中é‡è¤‡å‡ºç¾"
+
+#: fortran/decl.c:2513
+#, no-c-format
+msgid "Unexpected junk following RESULT variable at %C"
+msgstr "%C 處的 RESULT 變數後有éžé æœŸçš„無用字元"
+
+#: fortran/decl.c:2520
+#, no-c-format
+msgid "RESULT variable at %C must be different than function name"
+msgstr "%C 處 RESULT 變數ä¸èƒ½èˆ‡å‡½å¼åŒå"
+
+#: fortran/decl.c:2575
+#, no-c-format
+msgid "Expected formal argument list in function definition at %C"
+msgstr ""
+
+#: fortran/decl.c:2586
+#, no-c-format
+msgid "Unexpected junk after function declaration at %C"
+msgstr "%C 處的函å¼å®£å‘Šå¾Œæœ‰éžé æœŸçš„無用字元"
+
+#: fortran/decl.c:2607
+#, no-c-format
+msgid "Function '%s' at %C already has a type of %s"
+msgstr "函å¼ã€Œ%sã€(ä½æ–¼ %C)已經具有類型 %s"
+
+#: fortran/decl.c:2678
+#, no-c-format
+msgid "ENTRY statement at %C cannot appear within a PROGRAM"
+msgstr "%C 處的 ENTRY 敘述ä¸èƒ½å‡ºç¾åœ¨ PROGRAM 中"
+
+#: fortran/decl.c:2681
+#, no-c-format
+msgid "ENTRY statement at %C cannot appear within a MODULE"
+msgstr "%C 處的 ENTRY 敘述ä¸èƒ½å‡ºç¾åœ¨ MODULE 中"
+
+#: fortran/decl.c:2685
+#, no-c-format
+msgid "ENTRY statement at %C cannot appear within a BLOCK DATA"
+msgstr "%C 處的 ENTRY 敘述ä¸èƒ½å‡ºç¾åœ¨ BLOCK DATA 中"
+
+#: fortran/decl.c:2689
+#, no-c-format
+msgid "ENTRY statement at %C cannot appear within an INTERFACE"
+msgstr "%C 處的 ENTRY 敘述ä¸èƒ½å‡ºç¾åœ¨ INTERFACE 中"
+
+#: fortran/decl.c:2693
+#, no-c-format
+msgid "ENTRY statement at %C cannot appear within a DERIVED TYPE block"
+msgstr "%C 處的 ENTRY 敘述ä¸èƒ½å‡ºç¾åœ¨ DERIVED TYPE å€å¡Šä¸­"
+
+#: fortran/decl.c:2698
+#, no-c-format
+msgid "ENTRY statement at %C cannot appear within an IF-THEN block"
+msgstr "%C 處的 ENTRY 敘述ä¸èƒ½å‡ºç¾åœ¨ IF-THEN å€å¡Šä¸­"
+
+#: fortran/decl.c:2702
+#, no-c-format
+msgid "ENTRY statement at %C cannot appear within a DO block"
+msgstr "%C 處的 ENTRY 敘述ä¸èƒ½å‡ºç¾åœ¨ DO 中"
+
+#: fortran/decl.c:2706
+#, no-c-format
+msgid "ENTRY statement at %C cannot appear within a SELECT block"
+msgstr "%C 處的 ENTRY 敘述ä¸èƒ½å‡ºç¾åœ¨ SELECT å€å¡Šä¸­"
+
+#: fortran/decl.c:2710
+#, no-c-format
+msgid "ENTRY statement at %C cannot appear within a FORALL block"
+msgstr "%C 處的 ENTRY 敘述ä¸èƒ½å‡ºç¾åœ¨ FORALL å€å¡Šä¸­"
+
+#: fortran/decl.c:2714
+#, no-c-format
+msgid "ENTRY statement at %C cannot appear within a WHERE block"
+msgstr "%C 處的 ENTRY 敘述ä¸èƒ½å‡ºç¾åœ¨ WHERE å€å¡Šä¸­"
+
+#: fortran/decl.c:2718
+#, no-c-format
+msgid "ENTRY statement at %C cannot appear within a contained subprogram"
+msgstr "%C 處的 ENTRY 敘述ä¸èƒ½å‡ºç¾åœ¨å·¢ç‹€çš„å­ç¨‹å¼ä¸­"
+
+#: fortran/decl.c:2731
+#, no-c-format
+msgid "ENTRY statement at %C cannot appear in a contained procedure"
+msgstr "%C 處 ENTRY 敘述ä¸èƒ½å‡ºç¾åœ¨è¢«åŒ…å«çš„程åºä¸­"
+
+#: fortran/decl.c:2812
+#, no-c-format
+msgid "RESULT attribute required in ENTRY statement at %C"
+msgstr "%C 處的 ENTRY æ•˜è¿°éœ€è¦ RESULT 屬性"
+
+#: fortran/decl.c:3053
+#, no-c-format
+msgid "Unexpected END statement at %C"
+msgstr "%C 處éžé æœŸçš„ END 敘述"
+
+#. We would have required END [something]
+#: fortran/decl.c:3062
+#, no-c-format
+msgid "%s statement expected at %L"
+msgstr "éœ€è¦ %s 敘述在 %L 處"
+
+#: fortran/decl.c:3073
+#, no-c-format
+msgid "Expecting %s statement at %C"
+msgstr "éœ€è¦ %s 敘述,於 %C"
+
+#: fortran/decl.c:3087
+#, no-c-format
+msgid "Expected block name of '%s' in %s statement at %C"
+msgstr "需è¦å¡Šå「%sã€åœ¨ã€Œ%sã€é‹ç®—å¼ä¸­ï¼Œæ–¼ %C"
+
+#: fortran/decl.c:3103
+#, no-c-format
+msgid "Expected terminating name at %C"
+msgstr "%C 處需è¦çµæŸå"
+
+#: fortran/decl.c:3112
+#, no-c-format
+msgid "Expected label '%s' for %s statement at %C"
+msgstr "需è¦æ¨™ç±¤ã€Œ%sã€ï¼Œç‚º %s 敘述,於 %C"
+
+#: fortran/decl.c:3167
+#, no-c-format
+msgid "Missing array specification at %L in DIMENSION statement"
+msgstr ""
+
+#: fortran/decl.c:3176
+#, no-c-format
+msgid "Array specification must be deferred at %L"
+msgstr "%L 處陣列指定必須延é²"
+
+#: fortran/decl.c:3253
+#, no-c-format
+msgid "Unexpected character in variable list at %C"
+msgstr "%C 處變數清單中有éžé æœŸçš„無用字元"
+
+#: fortran/decl.c:3290
+#, no-c-format
+msgid "Expected '(' at %C"
+msgstr "在 %C 處需è¦ã€Œ(ã€"
+
+#: fortran/decl.c:3304 fortran/decl.c:3345
+#, no-c-format
+msgid "Expected variable name at %C"
+msgstr "在 %C 處需è¦è®Šæ•¸å"
+
+#: fortran/decl.c:3320
+#, no-c-format
+msgid "Cray pointer at %C must be an integer."
+msgstr "%C 處 Cray 指標必須是一個整數。"
+
+#: fortran/decl.c:3324
+#, no-c-format
+msgid "Cray pointer at %C has %d bytes of precision; memory addresses require %d bytes."
+msgstr "%C 處的 Cray 指標精度為 %d;記憶體ä½å€éœ€è¦ %d ä½å…ƒçµ„"
+
+#: fortran/decl.c:3331
+#, no-c-format
+msgid "Expected \",\" at %C"
+msgstr "在 %C 處需è¦ã€Œ,ã€"
+
+#: fortran/decl.c:3394
+#, no-c-format
+msgid "Expected \")\" at %C"
+msgstr "在 %C 處需è¦ã€Œ)ã€"
+
+#: fortran/decl.c:3406
+#, no-c-format
+msgid "Expected \",\" or end of statement at %C"
+msgstr "在 %C 處需è¦ã€Œ,ã€æˆ–敘述尾"
+
+#: fortran/decl.c:3471
+#, no-c-format
+msgid "Cray pointer declaration at %C requires -fcray-pointer flag."
+msgstr "%C 處的 Cray æŒ‡æ¨™å®£å‘Šéœ€è¦ -fcray-pointer 旗標。"
+
+#: fortran/decl.c:3569
+#, no-c-format
+msgid "Access specification of the %s operator at %C has already been specified"
+msgstr ""
+
+#: fortran/decl.c:3587
+#, no-c-format
+msgid "Access specification of the .%s. operator at %C has already been specified"
+msgstr ""
+
+#: fortran/decl.c:3674
+#, no-c-format
+msgid "Expected variable name at %C in PARAMETER statement"
+msgstr ""
+
+#: fortran/decl.c:3681
+#, no-c-format
+msgid "Expected = sign in PARAMETER statement at %C"
+msgstr "%C 在 PARAMETER æ•˜è¿°ä¸­éœ€è¦ = 符號"
+
+#: fortran/decl.c:3687
+#, no-c-format
+msgid "Expected expression at %C in PARAMETER statement"
+msgstr "%C 在 PARAMETER 敘述中需è¦é‹ç®—å¼"
+
+#: fortran/decl.c:3745
+#, no-c-format
+msgid "Unexpected characters in PARAMETER statement at %C"
+msgstr "%C 處 PARAMETER 敘述中有éžé æœŸçš„å­—å…ƒ"
+
+#: fortran/decl.c:3770
+#, no-c-format
+msgid "Blanket SAVE statement at %C follows previous SAVE statement"
+msgstr ""
+
+#: fortran/decl.c:3783
+#, no-c-format
+msgid "SAVE statement at %C follows blanket SAVE statement"
+msgstr "%C 處 SAVE 敘述跟隨空白 SAVE 敘述"
+
+#: fortran/decl.c:3829
+#, no-c-format
+msgid "Syntax error in SAVE statement at %C"
+msgstr "%C SAVE 敘述語法錯誤"
+
+#: fortran/decl.c:3850
+#, no-c-format
+msgid "MODULE PROCEDURE at %C must be in a generic module interface"
+msgstr ""
+
+#: fortran/decl.c:3910
+#, no-c-format
+msgid "Derived type at %C can only be PRIVATE within a MODULE"
+msgstr ""
+
+#: fortran/decl.c:3923
+#, no-c-format
+msgid "Derived type at %C can only be PUBLIC within a MODULE"
+msgstr ""
+
+#: fortran/decl.c:3934
+#, no-c-format
+msgid "Expected :: in TYPE definition at %C"
+msgstr "%C 在 TYPE å®šç¾©ä¸­éœ€è¦ ::"
+
+#: fortran/decl.c:3951
+#, no-c-format
+msgid "Type name '%s' at %C cannot be the same as an intrinsic type"
+msgstr "類型「%sã€(ä½æ–¼ %C)ä¸èƒ½èˆ‡å…§å»ºé¡žåž‹åŒå"
+
+#: fortran/decl.c:3961
+#, no-c-format
+msgid "Derived type name '%s' at %C already has a basic type of %s"
+msgstr ""
+
+#: fortran/decl.c:3978
+#, no-c-format
+msgid "Derived type definition of '%s' at %C has already been defined"
+msgstr ""
+
+#: fortran/decl.c:4012
+#, no-c-format
+msgid "Cray Pointee at %C cannot be assumed shape array"
+msgstr ""
+
+#: fortran/decl.c:4033
+#, no-c-format
+msgid "New in Fortran 2003: ENUM AND ENUMERATOR at %C"
+msgstr "Fortran 2003 新特性:%C 處的 ENUM AND ENUMERATOR"
+
+#: fortran/decl.c:4057
+#, no-c-format
+msgid "ENUM definition statement expected before %C"
+msgstr ""
+
+#: fortran/decl.c:4090
+#, no-c-format
+msgid "Syntax error in ENUMERATOR definition at %C"
+msgstr "%C 處 ENUMERATOR 定義中語法錯誤"
+
+#: fortran/dump-parse-tree.c:53
+#, c-format
+msgid "%-5d "
+msgstr "%-5d "
+
+#: fortran/dump-parse-tree.c:55
+#, c-format
+msgid " "
+msgstr " "
+
+#: fortran/dump-parse-tree.c:79 fortran/dump-parse-tree.c:597
+#, c-format
+msgid "(%s "
+msgstr "(%s"
+
+#: fortran/dump-parse-tree.c:92 fortran/dump-parse-tree.c:844
+#: fortran/dump-parse-tree.c:881 fortran/dump-parse-tree.c:891
+#, c-format
+msgid "%d"
+msgstr "%d"
+
+#: fortran/dump-parse-tree.c:96 fortran/dump-parse-tree.c:123
+#: fortran/dump-parse-tree.c:166 fortran/dump-parse-tree.c:403
+#: fortran/dump-parse-tree.c:498 fortran/dump-parse-tree.c:584
+#: fortran/dump-parse-tree.c:605
+#, c-format
+msgid ")"
+msgstr ")"
+
+#: fortran/dump-parse-tree.c:106 fortran/dump-parse-tree.c:421
+#, c-format
+msgid "("
+msgstr "("
+
+#: fortran/dump-parse-tree.c:112
+#, c-format
+msgid "%s = "
+msgstr "%s = "
+
+#: fortran/dump-parse-tree.c:116
+#, c-format
+msgid "(arg not-present)"
+msgstr "(沒有引數)"
+
+#: fortran/dump-parse-tree.c:120 fortran/dump-parse-tree.c:397
+#: fortran/dump-parse-tree.c:494
+#, c-format
+msgid " "
+msgstr " "
+
+#: fortran/dump-parse-tree.c:137 fortran/dump-parse-tree.c:312
+#, c-format
+msgid "()"
+msgstr "()"
+
+#: fortran/dump-parse-tree.c:141
+#, c-format
+msgid "(%d"
+msgstr "(%d"
+
+#: fortran/dump-parse-tree.c:155
+#, c-format
+msgid " %s "
+msgstr " %s "
+
+#: fortran/dump-parse-tree.c:182
+#, c-format
+msgid "FULL"
+msgstr "(滿)"
+
+#: fortran/dump-parse-tree.c:213 fortran/dump-parse-tree.c:222
+#: fortran/dump-parse-tree.c:297
+#, c-format
+msgid " , "
+msgstr " , "
+
+#: fortran/dump-parse-tree.c:227
+#, c-format
+msgid "UNKNOWN"
+msgstr "ä¸æ˜Ž"
+
+#: fortran/dump-parse-tree.c:252
+#, c-format
+msgid " %% %s"
+msgstr " %% %s"
+
+#: fortran/dump-parse-tree.c:324 fortran/dump-parse-tree.c:381
+#, c-format
+msgid "''"
+msgstr "''"
+
+#: fortran/dump-parse-tree.c:326
+#, c-format
+msgid "%c"
+msgstr "%c"
+
+#: fortran/dump-parse-tree.c:333
+#, c-format
+msgid "%s("
+msgstr "%s("
+
+#: fortran/dump-parse-tree.c:339
+#, c-format
+msgid "(/ "
+msgstr "(/ "
+
+#: fortran/dump-parse-tree.c:341
+#, c-format
+msgid " /)"
+msgstr " /)"
+
+#: fortran/dump-parse-tree.c:347
+#, c-format
+msgid "NULL()"
+msgstr "#NULL!"
+
+#: fortran/dump-parse-tree.c:357 fortran/dump-parse-tree.c:370
+#: fortran/dump-parse-tree.c:395 fortran/dump-parse-tree.c:401
+#, c-format
+msgid "_%d"
+msgstr "_%d"
+
+#: fortran/dump-parse-tree.c:362
+#, c-format
+msgid ".true."
+msgstr "TRUE()"
+
+#: fortran/dump-parse-tree.c:364
+#, c-format
+msgid ".false."
+msgstr ".false."
+
+#: fortran/dump-parse-tree.c:391
+#, c-format
+msgid "(complex "
+msgstr "複數"
+
+#: fortran/dump-parse-tree.c:407
+#, c-format
+msgid "???"
+msgstr "???"
+
+#: fortran/dump-parse-tree.c:415 fortran/dump-parse-tree.c:701
+#, c-format
+msgid "%s:"
+msgstr "%s:"
+
+#: fortran/dump-parse-tree.c:425
+#, c-format
+msgid "U+ "
+msgstr "U+ "
+
+#: fortran/dump-parse-tree.c:428
+#, c-format
+msgid "U- "
+msgstr "U- "
+
+#: fortran/dump-parse-tree.c:431
+#, c-format
+msgid "+ "
+msgstr "+ "
+
+#: fortran/dump-parse-tree.c:434
+#, c-format
+msgid "- "
+msgstr "- "
+
+#: fortran/dump-parse-tree.c:437
+#, c-format
+msgid "* "
+msgstr "* "
+
+#: fortran/dump-parse-tree.c:440
+#, c-format
+msgid "/ "
+msgstr "/ "
+
+#: fortran/dump-parse-tree.c:443
+#, c-format
+msgid "** "
+msgstr "** "
+
+#: fortran/dump-parse-tree.c:446
+#, c-format
+msgid "// "
+msgstr "// "
+
+#: fortran/dump-parse-tree.c:449
+#, c-format
+msgid "AND "
+msgstr "AND "
+
+#: fortran/dump-parse-tree.c:452
+#, c-format
+msgid "OR "
+msgstr "OR "
+
+#: fortran/dump-parse-tree.c:455
+#, c-format
+msgid "EQV "
+msgstr "EQV "
+
+#: fortran/dump-parse-tree.c:458
+#, c-format
+msgid "NEQV "
+msgstr "NEQV "
+
+#: fortran/dump-parse-tree.c:461
+#, c-format
+msgid "= "
+msgstr "= "
+
+#: fortran/dump-parse-tree.c:464
+#, c-format
+msgid "<> "
+msgstr "<> "
+
+#: fortran/dump-parse-tree.c:467
+#, c-format
+msgid "> "
+msgstr "> "
+
+#: fortran/dump-parse-tree.c:470
+#, c-format
+msgid ">= "
+msgstr ">= "
+
+#: fortran/dump-parse-tree.c:473
+#, c-format
+msgid "< "
+msgstr "< "
+
+#: fortran/dump-parse-tree.c:476
+#, c-format
+msgid "<= "
+msgstr "<= "
+
+#: fortran/dump-parse-tree.c:479
+#, c-format
+msgid "NOT "
+msgstr "NOT "
+
+#: fortran/dump-parse-tree.c:482
+#, c-format
+msgid "parens"
+msgstr ""
+
+#: fortran/dump-parse-tree.c:504
+#, c-format
+msgid "%s["
+msgstr "%s["
+
+#: fortran/dump-parse-tree.c:510
+#, c-format
+msgid "%s[["
+msgstr "%s[["
+
+#: fortran/dump-parse-tree.c:531
+#, c-format
+msgid "(%s %s %s %s"
+msgstr "(%s %s %s %s"
+
+#: fortran/dump-parse-tree.c:537
+#, c-format
+msgid " ALLOCATABLE"
+msgstr " ALLOCATABLE"
+
+#: fortran/dump-parse-tree.c:539 fortran/dump-parse-tree.c:602
+#, c-format
+msgid " DIMENSION"
+msgstr " DIMENSION"
+
+#: fortran/dump-parse-tree.c:541
+#, c-format
+msgid " EXTERNAL"
+msgstr " EXTERNAL"
+
+#: fortran/dump-parse-tree.c:543
+#, c-format
+msgid " INTRINSIC"
+msgstr " INTRINSIC"
+
+#: fortran/dump-parse-tree.c:545
+#, c-format
+msgid " OPTIONAL"
+msgstr " OPTIONAL"
+
+#: fortran/dump-parse-tree.c:547 fortran/dump-parse-tree.c:600
+#, c-format
+msgid " POINTER"
+msgstr " POINTER"
+
+#: fortran/dump-parse-tree.c:549
+#, c-format
+msgid " SAVE"
+msgstr " SAVE"
+
+#: fortran/dump-parse-tree.c:551
+#, c-format
+msgid " TARGET"
+msgstr " TARGET"
+
+#: fortran/dump-parse-tree.c:553
+#, c-format
+msgid " DUMMY"
+msgstr " DUMMY"
+
+#: fortran/dump-parse-tree.c:555
+#, c-format
+msgid " RESULT"
+msgstr " RESULT"
+
+#: fortran/dump-parse-tree.c:557
+#, c-format
+msgid " ENTRY"
+msgstr " ENTRY"
+
+#: fortran/dump-parse-tree.c:560
+#, c-format
+msgid " DATA"
+msgstr " DATA"
+
+#: fortran/dump-parse-tree.c:562
+#, c-format
+msgid " USE-ASSOC"
+msgstr " USE-ASSOC"
+
+#: fortran/dump-parse-tree.c:564
+#, c-format
+msgid " IN-NAMELIST"
+msgstr " IN-NAMELIST"
+
+#: fortran/dump-parse-tree.c:566
+#, c-format
+msgid " IN-COMMON"
+msgstr " IN-COMMON"
+
+#: fortran/dump-parse-tree.c:569
+#, c-format
+msgid " FUNCTION"
+msgstr " FUNCTION"
+
+#: fortran/dump-parse-tree.c:571
+#, c-format
+msgid " SUBROUTINE"
+msgstr " SUBROUTINE"
+
+#: fortran/dump-parse-tree.c:573
+#, c-format
+msgid " IMPLICIT-TYPE"
+msgstr " IMPLICIT-TYPE"
+
+#: fortran/dump-parse-tree.c:576
+#, c-format
+msgid " SEQUENCE"
+msgstr " SEQUENCE"
+
+#: fortran/dump-parse-tree.c:578
+#, c-format
+msgid " ELEMENTAL"
+msgstr " ELEMENTAL"
+
+#: fortran/dump-parse-tree.c:580
+#, c-format
+msgid " PURE"
+msgstr " PURE"
+
+#: fortran/dump-parse-tree.c:582
+#, c-format
+msgid " RECURSIVE"
+msgstr " RECURSIVE"
+
+#: fortran/dump-parse-tree.c:628
+#, c-format
+msgid "symbol %s "
+msgstr "符號 %s"
+
+#: fortran/dump-parse-tree.c:635
+#, c-format
+msgid "value: "
+msgstr "值:"
+
+#: fortran/dump-parse-tree.c:642
+#, c-format
+msgid "Array spec:"
+msgstr "陣列指定:"
+
+#: fortran/dump-parse-tree.c:649
+#, c-format
+msgid "Generic interfaces:"
+msgstr "通用介é¢ï¼š"
+
+#: fortran/dump-parse-tree.c:651 fortran/dump-parse-tree.c:675
+#: fortran/dump-parse-tree.c:704 fortran/dump-parse-tree.c:1044
+#: fortran/dump-parse-tree.c:1050 fortran/dump-parse-tree.c:1535
+#, c-format
+msgid " %s"
+msgstr " %s"
+
+#: fortran/dump-parse-tree.c:657
+#, c-format
+msgid "result: %s"
+msgstr "çµæžœï¼š%s"
+
+#: fortran/dump-parse-tree.c:663
+#, c-format
+msgid "components: "
+msgstr "元件:"
+
+#: fortran/dump-parse-tree.c:670
+#, c-format
+msgid "Formal arglist:"
+msgstr "åƒæ•¸æ¸…單:"
+
+#: fortran/dump-parse-tree.c:677
+#, c-format
+msgid " [Alt Return]"
+msgstr " [替代回傳]"
+
+#: fortran/dump-parse-tree.c:684
+#, c-format
+msgid "Formal namespace"
+msgstr "å½¢å¼å‘½å空間"
+
+#: fortran/dump-parse-tree.c:742
+#, c-format
+msgid "common: /%s/ "
+msgstr "common: /%s/ "
+
+#: fortran/dump-parse-tree.c:750 fortran/dump-parse-tree.c:1471
+#, c-format
+msgid ", "
+msgstr ", "
+
+#: fortran/dump-parse-tree.c:763
+#, c-format
+msgid "symtree: %s Ambig %d"
+msgstr ""
+
+#: fortran/dump-parse-tree.c:766
+#, c-format
+msgid " from namespace %s"
+msgstr " 從命å空間 %s"
+
+#: fortran/dump-parse-tree.c:810
+#, c-format
+msgid "NOP"
+msgstr "NOP"
+
+#: fortran/dump-parse-tree.c:814
+#, c-format
+msgid "CONTINUE"
+msgstr "CONTINUE"
+
+#: fortran/dump-parse-tree.c:818
+#, c-format
+msgid "ENTRY %s"
+msgstr "ENTRY %s"
+
+#: fortran/dump-parse-tree.c:822
+#, c-format
+msgid "ASSIGN "
+msgstr "ASSIGN "
+
+#: fortran/dump-parse-tree.c:829
+#, c-format
+msgid "LABEL ASSIGN "
+msgstr "LABEL ASSIGN "
+
+#: fortran/dump-parse-tree.c:831
+#, c-format
+msgid " %d"
+msgstr " %d"
+
+#: fortran/dump-parse-tree.c:835
+#, c-format
+msgid "POINTER ASSIGN "
+msgstr "POINTER ASSIGN "
+
+#: fortran/dump-parse-tree.c:842
+#, c-format
+msgid "GOTO "
+msgstr "GOTO "
+
+#: fortran/dump-parse-tree.c:851
+#, c-format
+msgid ", ("
+msgstr ", ("
+
+#: fortran/dump-parse-tree.c:865
+#, c-format
+msgid "CALL %s "
+msgstr "CALL %s "
+
+#: fortran/dump-parse-tree.c:870
+#, c-format
+msgid "RETURN "
+msgstr "RETURN "
+
+#: fortran/dump-parse-tree.c:876
+#, c-format
+msgid "PAUSE "
+msgstr "PAUSE "
+
+#: fortran/dump-parse-tree.c:886
+#, c-format
+msgid "STOP "
+msgstr "STOP "
+
+#: fortran/dump-parse-tree.c:896 fortran/dump-parse-tree.c:904
+#, c-format
+msgid "IF "
+msgstr "IF "
+
+#: fortran/dump-parse-tree.c:898
+#, c-format
+msgid " %d, %d, %d"
+msgstr " %d, %d, %d"
+
+#: fortran/dump-parse-tree.c:915
+#, c-format
+msgid "ELSE\n"
+msgstr "ELSE\n"
+
+#: fortran/dump-parse-tree.c:918
+#, c-format
+msgid "ELSE IF "
+msgstr "ELSE IF "
+
+#: fortran/dump-parse-tree.c:928
+#, c-format
+msgid "ENDIF"
+msgstr "ENDIF"
+
+#: fortran/dump-parse-tree.c:933
+#, c-format
+msgid "SELECT CASE "
+msgstr "SELECT CASE "
+
+#: fortran/dump-parse-tree.c:941
+#, c-format
+msgid "CASE "
+msgstr "CASE "
+
+#: fortran/dump-parse-tree.c:957
+#, c-format
+msgid "END SELECT"
+msgstr "END SELECT"
+
+#: fortran/dump-parse-tree.c:961
+#, c-format
+msgid "WHERE "
+msgstr "WHERE "
+
+#: fortran/dump-parse-tree.c:972
+#, c-format
+msgid "ELSE WHERE "
+msgstr "ELSE WHERE "
+
+#: fortran/dump-parse-tree.c:979
+#, c-format
+msgid "END WHERE"
+msgstr "END WHERE"
+
+#: fortran/dump-parse-tree.c:984
+#, c-format
+msgid "FORALL "
+msgstr "FORALL "
+
+#: fortran/dump-parse-tree.c:1009
+#, c-format
+msgid "END FORALL"
+msgstr "END FORALL"
+
+#: fortran/dump-parse-tree.c:1013
+#, c-format
+msgid "DO "
+msgstr "DO "
+
+#: fortran/dump-parse-tree.c:1027 fortran/dump-parse-tree.c:1038
+#, c-format
+msgid "END DO"
+msgstr "END DO"
+
+#: fortran/dump-parse-tree.c:1031
+#, c-format
+msgid "DO WHILE "
+msgstr "DO WHILE "
+
+#: fortran/dump-parse-tree.c:1042
+#, c-format
+msgid "CYCLE"
+msgstr "CYCLE"
+
+#: fortran/dump-parse-tree.c:1048
+#, c-format
+msgid "EXIT"
+msgstr "EXIT"
+
+#: fortran/dump-parse-tree.c:1054
+#, c-format
+msgid "ALLOCATE "
+msgstr "ALLOCATE "
+
+#: fortran/dump-parse-tree.c:1057 fortran/dump-parse-tree.c:1073
+#, c-format
+msgid " STAT="
+msgstr " STAT="
+
+#: fortran/dump-parse-tree.c:1070
+#, c-format
+msgid "DEALLOCATE "
+msgstr "DEALLOCATE "
+
+#: fortran/dump-parse-tree.c:1086
+#, c-format
+msgid "OPEN"
+msgstr "OPEN"
+
+#: fortran/dump-parse-tree.c:1091 fortran/dump-parse-tree.c:1170
+#: fortran/dump-parse-tree.c:1212 fortran/dump-parse-tree.c:1235
+#: fortran/dump-parse-tree.c:1387
+#, c-format
+msgid " UNIT="
+msgstr " UNIT="
+
+#: fortran/dump-parse-tree.c:1096 fortran/dump-parse-tree.c:1175
+#: fortran/dump-parse-tree.c:1217 fortran/dump-parse-tree.c:1246
+#: fortran/dump-parse-tree.c:1404
+#, c-format
+msgid " IOMSG="
+msgstr " IOMSG="
+
+#: fortran/dump-parse-tree.c:1101 fortran/dump-parse-tree.c:1180
+#: fortran/dump-parse-tree.c:1222 fortran/dump-parse-tree.c:1251
+#: fortran/dump-parse-tree.c:1409
+#, c-format
+msgid " IOSTAT="
+msgstr " IOSTAT="
+
+#: fortran/dump-parse-tree.c:1106 fortran/dump-parse-tree.c:1240
+#, c-format
+msgid " FILE="
+msgstr " FILE="
+
+#: fortran/dump-parse-tree.c:1111 fortran/dump-parse-tree.c:1185
+#, c-format
+msgid " STATUS="
+msgstr " STATUS="
+
+#: fortran/dump-parse-tree.c:1116 fortran/dump-parse-tree.c:1281
+#, c-format
+msgid " ACCESS="
+msgstr " ACCESS="
+
+#: fortran/dump-parse-tree.c:1121 fortran/dump-parse-tree.c:1297
+#, c-format
+msgid " FORM="
+msgstr " FORM="
+
+#: fortran/dump-parse-tree.c:1126 fortran/dump-parse-tree.c:1312
+#, c-format
+msgid " RECL="
+msgstr " RECL="
+
+#: fortran/dump-parse-tree.c:1131 fortran/dump-parse-tree.c:1322
+#, c-format
+msgid " BLANK="
+msgstr " BLANK="
+
+#: fortran/dump-parse-tree.c:1136 fortran/dump-parse-tree.c:1327
+#, c-format
+msgid " POSITION="
+msgstr " POSITION="
+
+#: fortran/dump-parse-tree.c:1141 fortran/dump-parse-tree.c:1332
+#, c-format
+msgid " ACTION="
+msgstr " ACTION="
+
+#: fortran/dump-parse-tree.c:1146 fortran/dump-parse-tree.c:1352
+#, c-format
+msgid " DELIM="
+msgstr " DELIM="
+
+#: fortran/dump-parse-tree.c:1151 fortran/dump-parse-tree.c:1357
+#, c-format
+msgid " PAD="
+msgstr " PAD="
+
+#: fortran/dump-parse-tree.c:1156 fortran/dump-parse-tree.c:1362
+#, c-format
+msgid " CONVERT="
+msgstr ""
+
+#: fortran/dump-parse-tree.c:1160 fortran/dump-parse-tree.c:1189
+#: fortran/dump-parse-tree.c:1226 fortran/dump-parse-tree.c:1367
+#: fortran/dump-parse-tree.c:1444
+#, c-format
+msgid " ERR=%d"
+msgstr " ERR=%d"
+
+#: fortran/dump-parse-tree.c:1165
+#, c-format
+msgid "CLOSE"
+msgstr "CLOSE"
+
+#: fortran/dump-parse-tree.c:1193
+#, c-format
+msgid "BACKSPACE"
+msgstr "BACKSPACE"
+
+#: fortran/dump-parse-tree.c:1197
+#, c-format
+msgid "ENDFILE"
+msgstr "ENDFILE"
+
+#: fortran/dump-parse-tree.c:1201
+#, c-format
+msgid "REWIND"
+msgstr "REWIND"
+
+#: fortran/dump-parse-tree.c:1205
+#, c-format
+msgid "FLUSH"
+msgstr "FLUSH"
+
+#: fortran/dump-parse-tree.c:1230
+#, c-format
+msgid "INQUIRE"
+msgstr "INQUIRE"
+
+#: fortran/dump-parse-tree.c:1256
+#, c-format
+msgid " EXIST="
+msgstr " EXIST="
+
+#: fortran/dump-parse-tree.c:1261
+#, c-format
+msgid " OPENED="
+msgstr " OPENED="
+
+#: fortran/dump-parse-tree.c:1266
+#, c-format
+msgid " NUMBER="
+msgstr " NUMBER="
+
+#: fortran/dump-parse-tree.c:1271
+#, c-format
+msgid " NAMED="
+msgstr " NAMED="
+
+#: fortran/dump-parse-tree.c:1276
+#, c-format
+msgid " NAME="
+msgstr " NAME="
+
+#: fortran/dump-parse-tree.c:1286
+#, c-format
+msgid " SEQUENTIAL="
+msgstr " SEQUENTIAL="
+
+#: fortran/dump-parse-tree.c:1292
+#, c-format
+msgid " DIRECT="
+msgstr " DIRECT="
+
+#: fortran/dump-parse-tree.c:1302
+#, c-format
+msgid " FORMATTED"
+msgstr " FORMATTED"
+
+#: fortran/dump-parse-tree.c:1307
+#, c-format
+msgid " UNFORMATTED="
+msgstr " UNFORMATTED="
+
+#: fortran/dump-parse-tree.c:1317
+#, c-format
+msgid " NEXTREC="
+msgstr " NEXTREC="
+
+#: fortran/dump-parse-tree.c:1337
+#, c-format
+msgid " READ="
+msgstr " READ="
+
+#: fortran/dump-parse-tree.c:1342
+#, c-format
+msgid " WRITE="
+msgstr " WRITE="
+
+#: fortran/dump-parse-tree.c:1347
+#, c-format
+msgid " READWRITE="
+msgstr " READWRITE="
+
+#: fortran/dump-parse-tree.c:1371
+#, c-format
+msgid "IOLENGTH "
+msgstr "IOLENGTH "
+
+#: fortran/dump-parse-tree.c:1377
+#, c-format
+msgid "READ"
+msgstr "READ"
+
+#: fortran/dump-parse-tree.c:1381
+#, c-format
+msgid "WRITE"
+msgstr "WRITE"
+
+#: fortran/dump-parse-tree.c:1393
+#, c-format
+msgid " FMT="
+msgstr " FMT="
+
+#: fortran/dump-parse-tree.c:1398
+#, c-format
+msgid " FMT=%d"
+msgstr " FMT=%d"
+
+#: fortran/dump-parse-tree.c:1400
+#, c-format
+msgid " NML=%s"
+msgstr " %s"
+
+#: fortran/dump-parse-tree.c:1414
+#, c-format
+msgid " SIZE="
+msgstr " SIZE="
+
+#: fortran/dump-parse-tree.c:1419
+#, c-format
+msgid " REC="
+msgstr " REC="
+
+#: fortran/dump-parse-tree.c:1424
+#, c-format
+msgid " ADVANCE="
+msgstr " ADVANCE="
+
+#: fortran/dump-parse-tree.c:1435
+#, c-format
+msgid "TRANSFER "
+msgstr "TRANSFER "
+
+#: fortran/dump-parse-tree.c:1440
+#, c-format
+msgid "DT_END"
+msgstr "DT_END"
+
+#: fortran/dump-parse-tree.c:1446
+#, c-format
+msgid " END=%d"
+msgstr " END=%d"
+
+#: fortran/dump-parse-tree.c:1448
+#, c-format
+msgid " EOR=%d"
+msgstr " EOR=%d"
+
+#: fortran/dump-parse-tree.c:1465
+#, c-format
+msgid "Equivalence: "
+msgstr "等價:"
+
+#: fortran/dump-parse-tree.c:1491
+#, c-format
+msgid "Namespace:"
+msgstr "命å空間:"
+
+#: fortran/dump-parse-tree.c:1505
+#, c-format
+msgid " %c-%c: "
+msgstr " %c-%c:"
+
+#: fortran/dump-parse-tree.c:1507
+#, c-format
+msgid " %c: "
+msgstr " %c:"
+
+#: fortran/dump-parse-tree.c:1516
+#, c-format
+msgid "procedure name = %s"
+msgstr "程åºå = %s"
+
+#: fortran/dump-parse-tree.c:1532
+#, c-format
+msgid "Operator interfaces for %s:"
+msgstr "%s çš„é‹ç®—å­ä»‹é¢ï¼š"
+
+#: fortran/dump-parse-tree.c:1541
+#, c-format
+msgid "User operators:\n"
+msgstr "使用者é‹ç®—å­ï¼š\n"
+
+#: fortran/dump-parse-tree.c:1557
+#, c-format
+msgid "CONTAINS\n"
+msgstr "CONTAINS\n"
+
+#: fortran/error.c:137
+#, no-c-format
+msgid "In file %s:%d\n"
+msgstr "在檔案 %s:%d\n"
+
+#: fortran/error.c:152
+#, no-c-format
+msgid " Included at %s:%d\n"
+msgstr " 包å«æ–¼ %s:%d\n"
+
+#: fortran/error.c:204
+#, no-c-format
+msgid "<During initialization>\n"
+msgstr "<在åˆå§‹åŒ–程åºä¸­>\n"
+
+#: fortran/error.c:479 fortran/error.c:519 fortran/error.c:545
+msgid "Warning:"
+msgstr "警告:"
+
+#: fortran/error.c:521 fortran/error.c:595 fortran/error.c:619
+msgid "Error:"
+msgstr "錯誤:"
+
+#: fortran/error.c:640
+msgid "Fatal Error:"
+msgstr "åš´é‡éŒ¯èª¤ï¼š"
+
+#: fortran/error.c:659
+#, no-c-format
+msgid "Internal Error at (1):"
+msgstr "(1)中的內部錯誤:"
+
+#: fortran/expr.c:258
+#, c-format
+msgid "Constant expression required at %C"
+msgstr "%C 處需è¦å¸¸æ•¸é‹ç®—å¼"
+
+#: fortran/expr.c:261
+#, c-format
+msgid "Integer expression required at %C"
+msgstr "%C 處需è¦æ•´æ•¸é‹ç®—å¼"
+
+#: fortran/expr.c:266
+#, c-format
+msgid "Integer value too large in expression at %C"
+msgstr "%C 處é‹ç®—å¼ä¸­æ•´æ•¸å€¼å¤ªå¤§"
+
+#: fortran/expr.c:1274
+#, no-c-format
+msgid "Numeric or CHARACTER operands are required in expression at %L"
+msgstr ""
+
+#: fortran/expr.c:1294
+#, no-c-format
+msgid "Exponent at %L must be INTEGER for an initialization expression"
+msgstr ""
+
+#: fortran/expr.c:1307
+#, no-c-format
+msgid "Concatenation operator in expression at %L must have two CHARACTER operands"
+msgstr ""
+
+#: fortran/expr.c:1314
+#, no-c-format
+msgid "Concat operator at %L must concatenate strings of the same kind"
+msgstr "%L 處的粘貼é‹ç®—å­å¿…須粘貼åŒä¸€ç¨®åˆ¥çš„字串"
+
+#: fortran/expr.c:1324
+#, no-c-format
+msgid ".NOT. operator in expression at %L must have a LOGICAL operand"
+msgstr "%L 處的é‹ç®—å¼ä¸­çš„ .NOT. é‹ç®—å­å¿…須帶 LOGICAL é‹ç®—å…ƒ"
+
+#: fortran/expr.c:1340
+#, no-c-format
+msgid "LOGICAL operands are required in expression at %L"
+msgstr "%L 處的é‹ç®—å¼éœ€è¦ LOGICAL é‹ç®—å…ƒ"
+
+#: fortran/expr.c:1351
+#, no-c-format
+msgid "Only intrinsic operators can be used in expression at %L"
+msgstr "%L 處åªæœ‰å…§å»ºé‹ç®—å­æ‰èƒ½ç”¨æ–¼é‹ç®—å¼ä¸­"
+
+#: fortran/expr.c:1359
+#, no-c-format
+msgid "Numeric operands are required in expression at %L"
+msgstr "%L 處的é‹ç®—å¼éœ€è¦æ•¸å­—é‹ç®—å…ƒ"
+
+#: fortran/expr.c:1423
+#, no-c-format
+msgid "The F95 does not permit the assumed character length variable '%s' in constant expression at %L."
+msgstr ""
+
+#: fortran/expr.c:1476
+#, no-c-format
+msgid "Function '%s' in initialization expression at %L must be an intrinsic function"
+msgstr ""
+
+#: fortran/expr.c:1498
+#, no-c-format
+msgid "Parameter '%s' at %L has not been declared or is a variable, which does not reduce to a constant expression"
+msgstr ""
+
+#: fortran/expr.c:1583
+#, no-c-format
+msgid "Initialization expression didn't reduce %C"
+msgstr "åˆå§‹åŒ–é‹ç®—å¼ä¸èƒ½æ¸›ä½Ž %C"
+
+#: fortran/expr.c:1627
+#, no-c-format
+msgid "Specification function '%s' at %L cannot be a statement function"
+msgstr "指定函å¼ã€Œ%sã€(ä½æ–¼ %L)ä¸èƒ½æ˜¯ä¸€å€‹æ•˜è¿°å‡½å¼"
+
+#: fortran/expr.c:1634
+#, no-c-format
+msgid "Specification function '%s' at %L cannot be an internal function"
+msgstr "指定函å¼ã€Œ%sã€(ä½æ–¼ %L)ä¸èƒ½æ˜¯ä¸€å€‹å…§éƒ¨å‡½å¼"
+
+#: fortran/expr.c:1641
+#, no-c-format
+msgid "Specification function '%s' at %L must be PURE"
+msgstr "指定函å¼ã€Œ%sã€(ä½æ–¼ %L)必須為 PURE"
+
+#: fortran/expr.c:1648
+#, no-c-format
+msgid "Specification function '%s' at %L cannot be RECURSIVE"
+msgstr "指定函å¼ã€Œ%sã€(ä½æ–¼ %L)ä¸èƒ½æ˜¯ RECURSIVE"
+
+#: fortran/expr.c:1705
+#, no-c-format
+msgid "Dummy argument '%s' at %L cannot be OPTIONAL"
+msgstr "啞元「%sã€(ä½æ–¼ %L)ä¸èƒ½æ˜¯ OPTIONAL"
+
+#: fortran/expr.c:1712
+#, no-c-format
+msgid "Dummy argument '%s' at %L cannot be INTENT(OUT)"
+msgstr "「%sã€å•žå…ƒå¼•æ•¸åœ¨ %L 處ä¸èƒ½æ˜¯ INTENT(OUT)"
+
+#: fortran/expr.c:1732
+#, no-c-format
+msgid "Variable '%s' cannot appear in the expression at %L"
+msgstr "變數「%sã€ä¸èƒ½å‡ºç¾åœ¨ %L 處的é‹ç®—å¼ä¸­"
+
+#: fortran/expr.c:1780
+#, no-c-format
+msgid "Expression at %L must be of INTEGER type"
+msgstr "%L 處的é‹ç®—å¼å¿…須具有 INTEGER é¡žåž‹"
+
+#: fortran/expr.c:1786
+#, no-c-format
+msgid "Expression at %L must be scalar"
+msgstr "%L 處的é‹ç®—å¼å¿…須具有標é‡é¡žåž‹"
+
+#: fortran/expr.c:1814
+#, no-c-format
+msgid "Incompatible ranks in %s at %L"
+msgstr "%s 中秩ä¸ç›¸å®¹ï¼Œä½æ–¼ %L"
+
+#: fortran/expr.c:1828
+#, no-c-format
+msgid "different shape for %s at %L on dimension %d (%d/%d)"
+msgstr ""
+
+#: fortran/expr.c:1861
+#, no-c-format
+msgid "Can't assign to INTENT(IN) variable '%s' at %L"
+msgstr ""
+
+#: fortran/expr.c:1868
+#, no-c-format
+msgid "'%s' in the assignment at %L cannot be an l-value since it is a procedure"
+msgstr ""
+
+#: fortran/expr.c:1876
+#, no-c-format
+msgid "Incompatible ranks %d and %d in assignment at %L"
+msgstr "賦值中有ä¸ç›¸å®¹çš„秩 %d å’Œ %d,ä½æ–¼ %L"
+
+#: fortran/expr.c:1883
+#, no-c-format
+msgid "Variable type is UNKNOWN in assignment at %L"
+msgstr "%L 處賦值中的變數類型是 UNKNOWN"
+
+#: fortran/expr.c:1890
+#, no-c-format
+msgid "NULL appears on right-hand side in assignment at %L"
+msgstr "%L 處賦值å³æ‰‹é‚Šå‡ºç¾ NULL"
+
+#: fortran/expr.c:1900
+#, no-c-format
+msgid "Vector assignment to assumed-size Cray Pointee at %L is illegal."
+msgstr ""
+
+#: fortran/expr.c:1909
+#, no-c-format
+msgid "POINTER valued function appears on right-hand side of assignment at %L"
+msgstr "%L 處賦值å³æ‰‹é‚Šå‡ºç¾å€¼ç‚º POINTER 的函å¼"
+
+#: fortran/expr.c:1914
+msgid "Array assignment"
+msgstr "陣列賦值"
+
+#: fortran/expr.c:1931
+#, no-c-format
+msgid "Incompatible types in assignment at %L, %s to %s"
+msgstr "%L 處賦值類型ä¸ç›¸å®¹ï¼Œå¾ž %s 到 %s"
+
+#: fortran/expr.c:1954
+#, no-c-format
+msgid "Pointer assignment target is not a POINTER at %L"
+msgstr ""
+
+#: fortran/expr.c:1962
+#, no-c-format
+msgid "'%s' in the pointer assignment at %L cannot be an l-value since it is a procedure"
+msgstr ""
+
+#: fortran/expr.c:1971
+#, no-c-format
+msgid "Pointer assignment to non-POINTER at %L"
+msgstr "%L 處指標賦給éžæŒ‡æ¨™"
+
+#: fortran/expr.c:1979
+#, no-c-format
+msgid "Bad pointer object in PURE procedure at %L"
+msgstr ""
+
+#: fortran/expr.c:1992
+#, no-c-format
+msgid "Different types in pointer assignment at %L"
+msgstr "%L 處指標賦值時類型ä¸åŒ"
+
+#: fortran/expr.c:1999
+#, no-c-format
+msgid "Different kind type parameters in pointer assignment at %L"
+msgstr ""
+
+#: fortran/expr.c:2006
+#, no-c-format
+msgid "Different ranks in pointer assignment at %L"
+msgstr "%L 處指標賦值時秩ä¸åŒ"
+
+#: fortran/expr.c:2020
+#, no-c-format
+msgid "Different character lengths in pointer assignment at %L"
+msgstr "%L 處指標賦值時字元長度ä¸åŒ"
+
+#: fortran/expr.c:2028
+#, no-c-format
+msgid "Pointer assignment target is neither TARGET nor POINTER at %L"
+msgstr ""
+
+#: fortran/expr.c:2035
+#, no-c-format
+msgid "Bad target in pointer assignment in PURE procedure at %L"
+msgstr ""
+
+#: fortran/expr.c:2041
+#, no-c-format
+msgid "Pointer assignment with vector subscript on rhs at %L"
+msgstr ""
+
+#: fortran/expr.c:2059
+#, no-c-format
+msgid "The upper bound in the last dimension of the assumed_size array on the rhs of the pointer assignment at %L must be set"
+msgstr ""
+
+#: fortran/gfortranspec.c:232
+#, c-format
+msgid "overflowed output arg list for '%s'"
+msgstr ""
+
+#: fortran/gfortranspec.c:352
+#, c-format
+msgid ""
+"GNU Fortran comes with NO WARRANTY, to the extent permitted by law.\n"
+"You may redistribute copies of GNU Fortran\n"
+"under the terms of the GNU General Public License.\n"
+"For more information about these matters, see the file named COPYING\n"
+"\n"
+msgstr ""
+"GNU Fortran 在法律å…許的範åœå…§æ²’有任何擔ä¿ã€‚\n"
+"您å¯ä»¥åœ¨éµå¾ª GNU 通用公共許å¯è­‰çš„å‰æ下分發 GNU Fortran 的副本。\n"
+"有關事宜的詳情請åƒè€ƒå為 COPYING 的檔案\n"
+"\n"
+
+#: fortran/gfortranspec.c:374
+#, c-format
+msgid "argument to '%s' missing"
+msgstr "「%sã€ç¼ºå°‘引數"
+
+#: fortran/gfortranspec.c:378
+#, c-format
+msgid "no input files; unwilling to write output files"
+msgstr ""
+
+#: fortran/gfortranspec.c:530
+#, c-format
+msgid "Driving:"
+msgstr "驅動:"
+
+#: fortran/interface.c:175
+#, no-c-format
+msgid "Syntax error in generic specification at %C"
+msgstr "%C 一般指定語法錯誤"
+
+#: fortran/interface.c:204
+#, no-c-format
+msgid "Syntax error: Trailing garbage in INTERFACE statement at %C"
+msgstr ""
+
+#: fortran/interface.c:262
+#, no-c-format
+msgid "Syntax error: Trailing garbage in END INTERFACE statement at %C"
+msgstr ""
+
+#: fortran/interface.c:273
+#, no-c-format
+msgid "Expected a nameless interface at %C"
+msgstr "%C 需è¦ä¸€å€‹ç„¡å介é¢"
+
+#: fortran/interface.c:284
+#, no-c-format
+msgid "Expected 'END INTERFACE ASSIGNMENT (=)' at %C"
+msgstr "%C 處需è¦ã€ŒEND INTERFACE ASSIGNMENT (=)ã€æˆ–敘述尾"
+
+#: fortran/interface.c:286
+#, no-c-format
+msgid "Expecting 'END INTERFACE OPERATOR (%s)' at %C"
+msgstr "需è¦ã€ŒEND INTERFACE ASSIGNMENT (%s)ã€åœ¨ %C 處"
+
+#: fortran/interface.c:300
+#, no-c-format
+msgid "Expecting 'END INTERFACE OPERATOR (.%s.)' at %C"
+msgstr "需è¦ã€ŒEND INTERFACE ASSIGNMENT (.%s.)ã€åœ¨ %C 處"
+
+#: fortran/interface.c:311
+#, no-c-format
+msgid "Expecting 'END INTERFACE %s' at %C"
+msgstr "需è¦ã€ŒEND INTERFACE %sã€æ–¼ %C 處"
+
+#: fortran/interface.c:523
+#, no-c-format
+msgid "Assignment operator interface at %L must be a SUBROUTINE"
+msgstr ""
+
+#: fortran/interface.c:532
+#, no-c-format
+msgid "Intrinsic operator interface at %L must be a FUNCTION"
+msgstr ""
+
+#: fortran/interface.c:619
+#, no-c-format
+msgid "First argument of defined assignment at %L must be INTENT(IN) or INTENT(INOUT)"
+msgstr "%L 處定義賦值的第一個åƒæ•¸å¿…須是 INTENT(IN) 或 INTENT(INOUT)"
+
+#: fortran/interface.c:623
+#, no-c-format
+msgid "Second argument of defined assignment at %L must be INTENT(IN)"
+msgstr "%L 處定義賦值的第二個åƒæ•¸å¿…須是 INTENT(IN)"
+
+#: fortran/interface.c:629
+#, no-c-format
+msgid "First argument of operator interface at %L must be INTENT(IN)"
+msgstr "%L 處é‹ç®—å­ä»‹é¢çš„第一個åƒæ•¸å¿…須是 INTENT(IN)"
+
+#: fortran/interface.c:633
+#, no-c-format
+msgid "Second argument of operator interface at %L must be INTENT(IN)"
+msgstr "%L 處é‹ç®—å­ä»‹é¢çš„第二個åƒæ•¸å¿…須是 INTENT(IN)"
+
+#: fortran/interface.c:640
+#, no-c-format
+msgid "Operator interface at %L conflicts with intrinsic interface"
+msgstr ""
+
+#: fortran/interface.c:645
+#, no-c-format
+msgid "Operator interface at %L has the wrong number of arguments"
+msgstr ""
+
+#: fortran/interface.c:894
+#, no-c-format
+msgid "Procedure '%s' in %s at %L is neither function nor subroutine"
+msgstr "程åºã€Œ%sã€(在 %s 中,ä½æ–¼ %L) æ—¢ä¸æ˜¯å‡½å¼ä¹Ÿä¸æ˜¯å­è™•ç†åº"
+
+#: fortran/interface.c:948
+#, no-c-format
+msgid "Ambiguous interfaces '%s' and '%s' in %s at %L"
+msgstr "有歧義的介é¢ã€Œ%sã€å’Œã€Œ%sã€åœ¨ %s 中,ä½æ–¼ %L"
+
+#: fortran/interface.c:1197
+#, no-c-format
+msgid "Keyword argument '%s' at %L is not in the procedure"
+msgstr "在 %L 處的關éµå­—引數ä¸åœ¨ç¨‹åºä¸­"
+
+#: fortran/interface.c:1206
+#, no-c-format
+msgid "Keyword argument '%s' at %L is already associated with another actual argument"
+msgstr ""
+
+#: fortran/interface.c:1216
+#, no-c-format
+msgid "More actual than formal arguments in procedure call at %L"
+msgstr ""
+
+#: fortran/interface.c:1229
+#, no-c-format
+msgid "Missing alternate return spec in subroutine call at %L"
+msgstr ""
+
+#: fortran/interface.c:1238
+#, no-c-format
+msgid "Unexpected alternate return spec in subroutine call at %L"
+msgstr ""
+
+#: fortran/interface.c:1250
+#, no-c-format
+msgid "Type/rank mismatch in argument '%s' at %L"
+msgstr "引數「%sã€é¡žåž‹/秩ä¸åŒ¹é…,於 %L 處"
+
+#: fortran/interface.c:1265
+#, no-c-format
+msgid "Actual argument for '%s' cannot be an assumed-size array at %L"
+msgstr ""
+
+#: fortran/interface.c:1274
+#, no-c-format
+msgid "Actual argument for '%s' must be a pointer at %L"
+msgstr "「%sã€çš„引數在 %L 處必須是一個指標"
+
+#: fortran/interface.c:1284
+#, no-c-format
+msgid "Actual argument at %L must be definable to match dummy INTENT = OUT/INOUT"
+msgstr ""
+
+#: fortran/interface.c:1305
+#, no-c-format
+msgid "Missing actual argument for argument '%s' at %L"
+msgstr "åƒæ•¸ã€Œ%sã€åœ¨ %L 處缺少引數"
+
+#: fortran/interface.c:1490
+#, no-c-format
+msgid "Same actual argument associated with INTENT(%s) argument '%s' and INTENT(%s) argument '%s' at %L"
+msgstr ""
+
+#: fortran/interface.c:1531
+#, no-c-format
+msgid "Procedure argument at %L is INTENT(IN) while interface specifies INTENT(%s)"
+msgstr ""
+
+#: fortran/interface.c:1542
+#, no-c-format
+msgid "Procedure argument at %L is local to a PURE procedure and is passed to an INTENT(%s) argument"
+msgstr ""
+
+#: fortran/interface.c:1551
+#, no-c-format
+msgid "Procedure argument at %L is local to a PURE procedure and has the POINTER attribute"
+msgstr ""
+
+#: fortran/interface.c:1576
+#, no-c-format
+msgid "Procedure '%s' called with an implicit interface at %L"
+msgstr "呼å«ç¨‹åºã€Œ%sã€å¸¶éš±å«ä»‹é¢ï¼Œä½æ–¼ %L"
+
+#: fortran/interface.c:1743
+#, no-c-format
+msgid "Function '%s' called in lieu of an operator at %L must be PURE"
+msgstr ""
+
+#: fortran/interface.c:1823
+#, no-c-format
+msgid "Entity '%s' at %C is already present in the interface"
+msgstr ""
+
+#: fortran/intrinsic.c:2720
+#, no-c-format
+msgid "Too many arguments in call to '%s' at %L"
+msgstr "å°ã€Œ%sã€çš„呼å«çµ¦å‡ºçš„åƒæ•¸å¤ªå¤šï¼Œæ–¼ %L 處"
+
+#: fortran/intrinsic.c:2734
+#, no-c-format
+msgid "Can't find keyword named '%s' in call to '%s' at %L"
+msgstr ""
+
+#: fortran/intrinsic.c:2741
+#, no-c-format
+msgid "Argument '%s' is appears twice in call to '%s' at %L"
+msgstr ""
+
+#: fortran/intrinsic.c:2755
+#, no-c-format
+msgid "Missing actual argument '%s' in call to '%s' at %L"
+msgstr "缺少引數「%sã€ï¼Œåœ¨å‘¼å«ã€Œ%sã€æ™‚,ä½æ–¼ %L"
+
+#: fortran/intrinsic.c:2814
+#, no-c-format
+msgid "Type of argument '%s' in call to '%s' at %L should be %s, not %s"
+msgstr ""
+
+#: fortran/intrinsic.c:3118
+#, no-c-format
+msgid "Ranks of arguments to elemental intrinsic '%s' differ at %L"
+msgstr ""
+
+#: fortran/intrinsic.c:3164
+#, no-c-format
+msgid "Intrinsic '%s' at %L is not included in the selected standard"
+msgstr "內建函å¼ã€Œ%sã€(æ–¼ %L 處)ä¸ç‚ºæ‰€é¸æ“‡çš„標準所包å«"
+
+#: fortran/intrinsic.c:3267
+#, no-c-format
+msgid "Extension: Evaluation of nonstandard initialization expression at %L"
+msgstr ""
+
+#: fortran/intrinsic.c:3327
+#, no-c-format
+msgid "Subroutine call to intrinsic '%s' at %L is not PURE"
+msgstr ""
+
+#: fortran/intrinsic.c:3402
+#, no-c-format
+msgid "Extension: Conversion from %s to %s at %L"
+msgstr "擴充:從 %s 到 %s,ä½æ–¼ %L"
+
+#: fortran/intrinsic.c:3405
+#, no-c-format
+msgid "Conversion from %s to %s at %L"
+msgstr "從 %s 轉æ›åˆ° %s,ä½æ–¼ %L"
+
+#: fortran/intrinsic.c:3453
+#, no-c-format
+msgid "Can't convert %s to %s at %L"
+msgstr "ä¸èƒ½å°‡ %s 轉æ›ç‚º %s,於 %L"
+
+#: fortran/io.c:415
+msgid "Positive width required"
+msgstr "需è¦æ­£çš„寬度"
+
+#: fortran/io.c:416
+msgid "Period required"
+msgstr "需è¦åŠå½¢å¥è™Ÿ"
+
+#: fortran/io.c:417
+msgid "Nonnegative width required"
+msgstr "需è¦éžè² çš„寬度"
+
+#: fortran/io.c:418
+msgid "Unexpected element"
+msgstr "éžé æœŸçš„元素"
+
+#: fortran/io.c:419
+msgid "Unexpected end of format string"
+msgstr "éžé æœŸçš„æ ¼å¼å­—串çµå°¾"
+
+#: fortran/io.c:436
+msgid "Missing leading left parenthesis"
+msgstr "缺少å‰å°Žå·¦æ‹¬è™Ÿ"
+
+#: fortran/io.c:474
+msgid "Expected P edit descriptor"
+msgstr "éœ€è¦ P 編譯æ述符號"
+
+#. P requires a prior number.
+#: fortran/io.c:482
+msgid "P descriptor requires leading scale factor"
+msgstr ""
+
+#. X requires a prior number if we're being pedantic.
+#: fortran/io.c:487
+#, no-c-format
+msgid "Extension: X descriptor requires leading space count at %C"
+msgstr ""
+
+#: fortran/io.c:507
+#, no-c-format
+msgid "Extension: $ descriptor at %C"
+msgstr "擴充:%C 處的 $ æ述符號"
+
+#: fortran/io.c:512
+msgid "$ must be the last specifier"
+msgstr "$ 必須是最後一個é™å®šç¬¦"
+
+#: fortran/io.c:557
+msgid "Repeat count cannot follow P descriptor"
+msgstr ""
+
+#: fortran/io.c:620
+msgid "Positive exponent width required"
+msgstr "需è¦æ­£çš„指數寬度"
+
+#: fortran/io.c:721 fortran/io.c:773
+#, no-c-format
+msgid "Extension: Missing comma at %C"
+msgstr "擴充:%C 處缺少逗號"
+
+#: fortran/io.c:788 fortran/io.c:791
+#, no-c-format
+msgid "%s in format string at %C"
+msgstr "%s 出ç¾åœ¨ %C 處的格å¼å­—串中"
+
+#: fortran/io.c:832
+#, no-c-format
+msgid "Format statement in module main block at %C."
+msgstr "%C 處主å€æ®µæ¨¡çµ„中的格å¼æ•˜è¿°ã€‚"
+
+#: fortran/io.c:838
+#, no-c-format
+msgid "Missing format label at %C"
+msgstr "%C 處缺少格å¼æ¨™ç±¤"
+
+#: fortran/io.c:896 fortran/io.c:920
+#, no-c-format
+msgid "Duplicate %s specification at %C"
+msgstr "é‡è¤‡ %s 指定,於 %C"
+
+#: fortran/io.c:927
+#, no-c-format
+msgid "Variable tag cannot be INTENT(IN) at %C"
+msgstr "變數標記在 %C 處ä¸èƒ½æ˜¯ INTENT(IN)"
+
+#: fortran/io.c:934
+#, no-c-format
+msgid "Variable tag cannot be assigned in PURE procedure at %C"
+msgstr ""
+
+#: fortran/io.c:971
+#, no-c-format
+msgid "Duplicate %s label specification at %C"
+msgstr "é‡è¤‡çš„ %s 標籤指定,ä½æ–¼ %C"
+
+#: fortran/io.c:993
+#, no-c-format
+msgid "%s tag at %L must be of type %s"
+msgstr "%s 標記在 %L 處必須具有類型 %s"
+
+#: fortran/io.c:1004
+#, no-c-format
+msgid "Constant expression in FORMAT tag at %L must be of type default CHARACTER"
+msgstr ""
+
+#: fortran/io.c:1017
+#, no-c-format
+msgid "%s tag at %L must be of type %s or %s"
+msgstr "%s 標記在 %L 處必須具有類型 %s 或 %s"
+
+#: fortran/io.c:1025
+#, no-c-format
+msgid "Obsolete: ASSIGNED variable in FORMAT tag at %L"
+msgstr "å·²éŽæ™‚:%L 處 FORMAT 標記中有 ASSIGNED 變數"
+
+#: fortran/io.c:1030
+#, no-c-format
+msgid "Variable '%s' at %L has not been assigned a format label"
+msgstr "變數「%sã€åœ¨ %L 尚未指派到格å¼æ¨™ç±¤"
+
+#: fortran/io.c:1045
+#, no-c-format
+msgid "Extension: Character array in FORMAT tag at %L"
+msgstr ""
+
+#: fortran/io.c:1052
+#, no-c-format
+msgid "Extension: Non-character in FORMAT tag at %L"
+msgstr ""
+
+#: fortran/io.c:1063
+#, no-c-format
+msgid "%s tag at %L must be scalar"
+msgstr "%s 標記在 %L 處必須是標é‡"
+
+#: fortran/io.c:1069
+#, no-c-format
+msgid "Fortran 2003: IOMSG tag at %L"
+msgstr "Fortran 2003:%L 處的 IOMSG 標記"
+
+#: fortran/io.c:1076
+#, no-c-format
+msgid "Fortran 95 requires default INTEGER in IOSTAT tag at %L"
+msgstr "Fortran 95 在 %L 處 IOSTAT 標記中è¦æ±‚é è¨­ INTEGER"
+
+#: fortran/io.c:1084
+#, no-c-format
+msgid "Fortran 95 requires default INTEGER in SIZE tag at %L"
+msgstr "Fortran 95 在 %L 處 SIZE 標記中è¦æ±‚é è¨­ INTEGER"
+
+#: fortran/io.c:1092
+#, no-c-format
+msgid "Extension: CONVERT tag at %L"
+msgstr "擴充:%C 處的 BYTE 類型"
+
+#: fortran/io.c:1261
+#, no-c-format
+msgid "OPEN statement not allowed in PURE procedure at %C"
+msgstr "OPEN 敘述ä¸å…許出ç¾åœ¨ %C 處的 PURE 程åºä¸­"
+
+#: fortran/io.c:1369
+#, no-c-format
+msgid "CLOSE statement not allowed in PURE procedure at %C"
+msgstr "CLOSE 敘述ä¸å…許出ç¾åœ¨ %C 處的 PURE 程åºä¸­"
+
+#: fortran/io.c:1495 fortran/match.c:1457
+#, no-c-format
+msgid "%s statement not allowed in PURE procedure at %C"
+msgstr "OPEN 敘述ä¸å…許出ç¾åœ¨ %C 處的 PURE 程åºä¸­"
+
+#: fortran/io.c:1555
+#, no-c-format
+msgid "Fortran 2003: FLUSH statement at %C"
+msgstr "Fortran 2003:%C 處的 FLUSH 敘述"
+
+#: fortran/io.c:1615
+#, no-c-format
+msgid "Duplicate UNIT specification at %C"
+msgstr "%C 處é‡è¤‡çš„ UNIT 指定"
+
+#: fortran/io.c:1671
+#, no-c-format
+msgid "Duplicate format specification at %C"
+msgstr "%C 處é‡è¤‡çš„æ ¼å¼æŒ‡å®š"
+
+#: fortran/io.c:1688
+#, no-c-format
+msgid "Symbol '%s' in namelist '%s' is INTENT(IN) at %C"
+msgstr "符號「%sã€åœ¨å稱清單「%sã€æ˜¯ INTENT(IN),ä½æ–¼ %C"
+
+#: fortran/io.c:1724
+#, no-c-format
+msgid "Duplicate NML specification at %C"
+msgstr "%C 處é‡è¤‡çš„ NML 指定"
+
+#: fortran/io.c:1733
+#, no-c-format
+msgid "Symbol '%s' at %C must be a NAMELIST group name"
+msgstr ""
+
+#: fortran/io.c:1771
+#, no-c-format
+msgid "END tag at %C not allowed in output statement"
+msgstr "%C 處的 END 標記ä¸å…許出ç¾åœ¨è¼¸å‡ºæ•˜è¿°ä¸­"
+
+#: fortran/io.c:1831
+#, no-c-format
+msgid "UNIT specification at %L must be an INTEGER expression or a CHARACTER variable"
+msgstr "%L 處指定的 UNIT 必須是 INTEGER é‹ç®—å¼æˆ–一個 CHARACTER 變數"
+
+#: fortran/io.c:1840
+#, no-c-format
+msgid "Internal unit with vector subscript at %L"
+msgstr ""
+
+#: fortran/io.c:1848
+#, no-c-format
+msgid "External IO UNIT cannot be an array at %L"
+msgstr "%L 處外部 IO UNIT ä¸èƒ½æ˜¯é™£åˆ—"
+
+#: fortran/io.c:1858
+#, no-c-format
+msgid "ERR tag label %d at %L not defined"
+msgstr "ERR 標記標籤 %d 在 %L 處未定義"
+
+#: fortran/io.c:1870
+#, no-c-format
+msgid "END tag label %d at %L not defined"
+msgstr "END 標記標籤 %d 在 %L 處未定義"
+
+#: fortran/io.c:1882
+#, no-c-format
+msgid "EOR tag label %d at %L not defined"
+msgstr "EOR 標記標籤 %d 在 %L 處未定義"
+
+#: fortran/io.c:1892
+#, no-c-format
+msgid "FORMAT label %d at %L not defined"
+msgstr "FORMAT 標籤 %d 在 %L 處未定義"
+
+#: fortran/io.c:2013
+#, no-c-format
+msgid "Syntax error in I/O iterator at %C"
+msgstr "%C 處 I/O 迭代語法錯誤"
+
+#: fortran/io.c:2044
+#, no-c-format
+msgid "Expected variable in READ statement at %C"
+msgstr "%C READ 敘述需è¦è®Šæ•¸"
+
+#: fortran/io.c:2050
+#, no-c-format
+msgid "Expected expression in %s statement at %C"
+msgstr "éœ€è¦ %s 敘述,於 %C 處"
+
+#: fortran/io.c:2061
+#, no-c-format
+msgid "Variable '%s' in input list at %C cannot be INTENT(IN)"
+msgstr ""
+
+#: fortran/io.c:2070
+#, no-c-format
+msgid "Cannot read to variable '%s' in PURE procedure at %C"
+msgstr ""
+
+#: fortran/io.c:2087
+#, no-c-format
+msgid "Cannot write to internal file unit '%s' at %C inside a PURE procedure"
+msgstr ""
+
+#. A general purpose syntax error.
+#: fortran/io.c:2147 fortran/io.c:2515 fortran/gfortran.h:1666
+#, no-c-format
+msgid "Syntax error in %s statement at %C"
+msgstr "%s 敘述在 %C 處語法錯誤"
+
+#: fortran/io.c:2364
+#, no-c-format
+msgid "PRINT namelist at %C is an extension"
+msgstr "%C 處的 PRINT å稱清單是一個擴充"
+
+#: fortran/io.c:2476
+#, no-c-format
+msgid "Extension: Comma before output item list at %C is an extension"
+msgstr ""
+
+#: fortran/io.c:2485
+#, no-c-format
+msgid "Expected comma in I/O list at %C"
+msgstr "%C 處 I/O 清單中需è¦é€—號"
+
+#: fortran/io.c:2547
+#, no-c-format
+msgid "PRINT statement at %C not allowed within PURE procedure"
+msgstr "%C 處的 PRINT 敘述ä¸å…許出ç¾åœ¨ PURE 程åºä¸­"
+
+#: fortran/io.c:2686 fortran/io.c:2737
+#, no-c-format
+msgid "INQUIRE statement not allowed in PURE procedure at %C"
+msgstr "INQUIRE 敘述ä¸å…許出ç¾åœ¨ %C 處的 PURE 程åºä¸­"
+
+#: fortran/io.c:2713
+#, no-c-format
+msgid "IOLENGTH tag invalid in INQUIRE statement at %C"
+msgstr ""
+
+#: fortran/io.c:2723
+#, no-c-format
+msgid "INQUIRE statement at %L cannot contain both FILE and UNIT specifiers"
+msgstr ""
+
+#: fortran/io.c:2730
+#, no-c-format
+msgid "INQUIRE statement at %L requires either FILE or UNIT specifier"
+msgstr "%L 處的 INQUIRE æ•˜è¿°éœ€è¦ FILE 或 UNIT é™å®šç¬¦"
+
+#: fortran/match.c:179
+#, no-c-format
+msgid "Integer too large at %C"
+msgstr "%C 處整數太大"
+
+#: fortran/match.c:239 fortran/parse.c:329
+#, no-c-format
+msgid "Too many digits in statement label at %C"
+msgstr "%C 處的敘述標籤太多ä½æ•¸"
+
+#: fortran/match.c:245 fortran/parse.c:332
+#, no-c-format
+msgid "Statement label at %C is zero"
+msgstr "%C 處敘述標籤為零"
+
+#: fortran/match.c:278
+#, no-c-format
+msgid "Label name '%s' at %C is ambiguous"
+msgstr "標籤å「%sã€åœ¨ %C 處有歧義"
+
+#: fortran/match.c:284
+#, no-c-format
+msgid "Duplicate construct label '%s' at %C"
+msgstr "é‡è¤‡çš„建構標籤「%sã€å‡ºç¾åœ¨ %C 處"
+
+#: fortran/match.c:408
+#, no-c-format
+msgid "Name at %C is too long"
+msgstr "%C çš„å稱太長"
+
+#: fortran/match.c:525
+#, no-c-format
+msgid "Loop variable at %C cannot be a sub-component"
+msgstr ""
+
+#: fortran/match.c:531
+#, no-c-format
+msgid "Loop variable '%s' at %C cannot be INTENT(IN)"
+msgstr "循環變數「%sã€åœ¨ %C 處ä¸èƒ½æ˜¯ INTENT(IN)"
+
+#: fortran/match.c:538
+#, no-c-format
+msgid "Loop variable at %C cannot have the POINTER attribute"
+msgstr ""
+
+#: fortran/match.c:568
+#, no-c-format
+msgid "Expected a step value in iterator at %C"
+msgstr ""
+
+#: fortran/match.c:580
+#, no-c-format
+msgid "Syntax error in iterator at %C"
+msgstr "%C 處迭代語法錯誤"
+
+#: fortran/match.c:816
+#, no-c-format
+msgid "Invalid form of PROGRAM statement at %C"
+msgstr "%C 處 PROGRAM 敘述格å¼ç„¡æ•ˆ"
+
+#: fortran/match.c:850
+#, no-c-format
+msgid "Cannot assign to a PARAMETER variable at %C"
+msgstr ""
+
+#: fortran/match.c:939 fortran/match.c:1015
+#, no-c-format
+msgid "Obsolete: arithmetic IF statement at %C"
+msgstr "å·²éŽæ™‚:%C 處的算術 IF 敘述"
+
+#: fortran/match.c:986
+#, no-c-format
+msgid "Syntax error in IF-expression at %C"
+msgstr "%C 處 IF é‹ç®—å¼èªžæ³•éŒ¯èª¤"
+
+#: fortran/match.c:998
+#, no-c-format
+msgid "Block label not appropriate for arithmetic IF statement at %C"
+msgstr ""
+
+#: fortran/match.c:1040
+#, no-c-format
+msgid "Block label is not appropriate IF statement at %C"
+msgstr ""
+
+#: fortran/match.c:1111
+#, no-c-format
+msgid "Unclassifiable statement in IF-clause at %C"
+msgstr "%C 處 IF å­å¥ä¸­æœ‰ç„¡æ³•æ­¸é¡žåˆ¥çš„敘述"
+
+#: fortran/match.c:1118
+#, no-c-format
+msgid "Syntax error in IF-clause at %C"
+msgstr "%C 處 IF 敘述語法錯誤"
+
+#: fortran/match.c:1162
+#, no-c-format
+msgid "Unexpected junk after ELSE statement at %C"
+msgstr "%C 處 ELSE 敘述後有éžé æœŸçš„無用字元"
+
+#: fortran/match.c:1168 fortran/match.c:1203
+#, no-c-format
+msgid "Label '%s' at %C doesn't match IF label '%s'"
+msgstr ""
+
+#: fortran/match.c:1197
+#, no-c-format
+msgid "Unexpected junk after ELSE IF statement at %C"
+msgstr ""
+
+#: fortran/match.c:1360
+#, no-c-format
+msgid "Name '%s' in %s statement at %C is not a loop name"
+msgstr "DATA 敘述ä¸å…許出ç¾åœ¨ %C 處 %s 敘述中的å稱「%sã€ä¸æ˜¯å€‹è¿´åœˆå稱"
+
+#: fortran/match.c:1375
+#, no-c-format
+msgid "%s statement at %C is not within a loop"
+msgstr "%s 敘述在 %C 處ä¸åœ¨å¾ªç’°å…§"
+
+#: fortran/match.c:1378
+#, no-c-format
+msgid "%s statement at %C is not within loop '%s'"
+msgstr "%s 敘述在 %C 處ä¸åœ¨å¾ªç’°ã€Œ%sã€å…§"
+
+#: fortran/match.c:1435
+#, no-c-format
+msgid "Too many digits in STOP code at %C"
+msgstr "%C 處 STOP 碼中太多ä½æ•¸"
+
+#: fortran/match.c:1488
+#, no-c-format
+msgid "Obsolete: PAUSE statement at %C"
+msgstr "å·²éŽæ™‚:%C 處的 PAUSE 敘述"
+
+#: fortran/match.c:1537
+#, no-c-format
+msgid "Obsolete: ASSIGN statement at %C"
+msgstr "å·²éŽæ™‚:%C 處的 ASSIGN 敘述"
+
+#: fortran/match.c:1583
+#, no-c-format
+msgid "Obsolete: Assigned GOTO statement at %C"
+msgstr "å·²éŽæ™‚:%C 處賦值 GOTO 敘述"
+
+#: fortran/match.c:1630 fortran/match.c:1682
+#, no-c-format
+msgid "Statement label list in GOTO at %C cannot be empty"
+msgstr ""
+
+#: fortran/match.c:1766
+#, no-c-format
+msgid "Bad allocate-object in ALLOCATE statement at %C for a PURE procedure"
+msgstr ""
+
+#: fortran/match.c:1786
+#, no-c-format
+msgid "STAT variable '%s' of ALLOCATE statement at %C cannot be INTENT(IN)"
+msgstr ""
+
+#: fortran/match.c:1794
+#, no-c-format
+msgid "Illegal STAT variable in ALLOCATE statement at %C for a PURE procedure"
+msgstr ""
+
+#: fortran/match.c:1801 fortran/match.c:1967
+#, no-c-format
+msgid "STAT expression at %C must be a variable"
+msgstr "%C 處的 STAT é‹ç®—å¼å¿…須是一個變數"
+
+#: fortran/match.c:1856
+#, no-c-format
+msgid "Illegal variable in NULLIFY at %C for a PURE procedure"
+msgstr ""
+
+#: fortran/match.c:1934
+#, no-c-format
+msgid "Illegal deallocate-expression in DEALLOCATE at %C for a PURE procedure"
+msgstr ""
+
+#: fortran/match.c:1953
+#, no-c-format
+msgid "STAT variable '%s' of DEALLOCATE statement at %C cannot be INTENT(IN)"
+msgstr ""
+
+#: fortran/match.c:1960
+#, no-c-format
+msgid "Illegal STAT variable in DEALLOCATE statement at %C for a PURE procedure"
+msgstr ""
+
+#: fortran/match.c:2009
+#, no-c-format
+msgid "Alternate RETURN statement at %C is only allowed within a SUBROUTINE"
+msgstr "%C 處的替代 RETURN 敘述åªå…許出ç¾åœ¨ SUBROUTINE 中"
+
+#: fortran/match.c:2040
+#, no-c-format
+msgid "Extension: RETURN statement in main program at %C"
+msgstr ""
+
+#: fortran/match.c:2235
+#, no-c-format
+msgid "Syntax error in common block name at %C"
+msgstr "%C 處公共塊å語法錯誤"
+
+#: fortran/match.c:2271
+#, no-c-format
+msgid "Symbol '%s' at %C is already an external symbol that is not COMMON"
+msgstr "符號「%sã€åœ¨ %C è™•å·²ç¶“æ˜¯å¤–éƒ¨è€Œéž COMMON 符號"
+
+#: fortran/match.c:2318
+#, no-c-format
+msgid "Symbol '%s' at %C is already in a COMMON block"
+msgstr ""
+
+#: fortran/match.c:2330
+#, no-c-format
+msgid "Previously initialized symbol '%s' in blank COMMON block at %C"
+msgstr ""
+
+#: fortran/match.c:2333
+#, no-c-format
+msgid "Previously initialized symbol '%s' in COMMON block '%s' at %C"
+msgstr ""
+
+#: fortran/match.c:2345
+#, no-c-format
+msgid "Derived type variable in COMMON at %C does not have the SEQUENCE attribute"
+msgstr ""
+
+#: fortran/match.c:2368
+#, no-c-format
+msgid "Array specification for symbol '%s' in COMMON at %C must be explicit"
+msgstr ""
+
+#: fortran/match.c:2379
+#, no-c-format
+msgid "Symbol '%s' in COMMON at %C cannot be a POINTER array"
+msgstr ""
+
+#: fortran/match.c:2411
+#, no-c-format
+msgid "Symbol '%s', in COMMON block '%s' at %C is being indirectly equivalenced to another COMMON block '%s'"
+msgstr ""
+
+#: fortran/match.c:2521
+#, no-c-format
+msgid "Namelist group name '%s' at %C already has a basic type of %s"
+msgstr ""
+
+#: fortran/match.c:2528
+#, no-c-format
+msgid "Namelist group name '%s' at %C already is USE associated and cannot be respecified."
+msgstr ""
+
+#: fortran/match.c:2555
+#, no-c-format
+msgid "Assumed size array '%s' in namelist '%s'at %C is not allowed."
+msgstr "%3$C 處å稱清單「%2$sã€ä¸­å‡å®šçš„大å°é™£åˆ—「%1$sã€ä¸è¢«å…許。"
+
+#: fortran/match.c:2561
+#, no-c-format
+msgid "Assumed shape array '%s' in namelist '%s' at %C is an extension."
+msgstr "%3$C 處å稱清單「%2$sã€ä¸­å‡å®šçš„外形陣列「%1$sã€æ˜¯ä¸€å€‹æ“´å……。"
+
+#: fortran/match.c:2689
+#, no-c-format
+msgid "Derived type component %C is not a permitted EQUIVALENCE member"
+msgstr ""
+
+#: fortran/match.c:2698
+#, no-c-format
+msgid "Array reference in EQUIVALENCE at %C cannot be an array section"
+msgstr ""
+
+#: fortran/match.c:2727
+#, no-c-format
+msgid "EQUIVALENCE at %C requires two or more objects"
+msgstr ""
+
+#: fortran/match.c:2741
+#, no-c-format
+msgid "Attempt to indirectly overlap COMMON blocks %s and %s by EQUIVALENCE at %C"
+msgstr ""
+
+#: fortran/match.c:2893
+#, no-c-format
+msgid "Statement function at %L is recursive"
+msgstr "%L 處的敘述函å¼æ˜¯éžè¿´çš„"
+
+#: fortran/match.c:2983
+#, no-c-format
+msgid "Expected initialization expression in CASE at %C"
+msgstr "%C 處 CASE 中需è¦åˆå§‹åŒ–é‹ç®—å¼"
+
+#: fortran/match.c:3010
+#, no-c-format
+msgid "Expected case name of '%s' at %C"
+msgstr "%C 處需è¦ã€Œ%sã€çš„ case å"
+
+#: fortran/match.c:3054
+#, no-c-format
+msgid "Unexpected CASE statement at %C"
+msgstr "%C 處éžé æœŸçš„ CASE 敘述"
+
+#: fortran/match.c:3106
+#, no-c-format
+msgid "Syntax error in CASE-specification at %C"
+msgstr "%C CASE 指定語法錯誤"
+
+#: fortran/match.c:3226
+#, no-c-format
+msgid "ELSEWHERE statement at %C not enclosed in WHERE block"
+msgstr ""
+
+#: fortran/match.c:3257
+#, no-c-format
+msgid "Label '%s' at %C doesn't match WHERE label '%s'"
+msgstr ""
+
+#: fortran/match.c:3352
+#, no-c-format
+msgid "Syntax error in FORALL iterator at %C"
+msgstr "%C 處 FORALL 迭代語法錯誤"
+
+#: fortran/matchexp.c:29
+#, c-format
+msgid "Syntax error in expression at %C"
+msgstr "%C é‹ç®—å¼èªžæ³•éŒ¯èª¤"
+
+#: fortran/matchexp.c:73
+#, no-c-format
+msgid "Bad character '%c' in OPERATOR name at %C"
+msgstr ""
+
+#: fortran/matchexp.c:81
+#, no-c-format
+msgid "The name '%s' cannot be used as a defined operator at %C"
+msgstr "å稱「%sã€åœ¨ %C 處ä¸èƒ½åšç‚ºå·²å®šç¾©çš„é‹ç®—å­"
+
+#: fortran/matchexp.c:160
+#, no-c-format
+msgid "Expected a right parenthesis in expression at %C"
+msgstr "%C 處é‹ç®—å¼ä¸­éœ€è¦å³æ‹¬è™Ÿ"
+
+#: fortran/matchexp.c:302
+#, no-c-format
+msgid "Expected exponent in expression at %C"
+msgstr "%C 處é‹ç®—å¼ä¸­éœ€è¦æŒ‡æ•¸éƒ¨åˆ†"
+
+#: fortran/matchexp.c:338 fortran/matchexp.c:442
+#, no-c-format
+msgid "Extension: Unary operator following arithmetic operator (use parentheses) at %C"
+msgstr ""
+
+#: fortran/misc.c:42
+#, no-c-format
+msgid "Out of memory-- malloc() failed"
+msgstr "記憶體ä¸è¶³ -- malloc() 失敗"
+
+#: fortran/module.c:529
+#, no-c-format
+msgid "Missing generic specification in USE statement at %C"
+msgstr ""
+
+#: fortran/module.c:837
+#, no-c-format
+msgid "Reading module %s at line %d column %d: %s"
+msgstr "讀出模組 %s,於列 %d 行 %d:%s"
+
+#: fortran/module.c:841
+#, no-c-format
+msgid "Writing module %s at line %d column %d: %s"
+msgstr "讀入模組 %s,於列 %d 行 %d:%s"
+
+#: fortran/module.c:845
+#, no-c-format
+msgid "Module %s at line %d column %d: %s"
+msgstr "模組 %s ä½æ–¼åˆ— %d è¡Œ %d:%s"
+
+#: fortran/module.c:887
+msgid "Unexpected EOF"
+msgstr "éžé æœŸçš„檔案çµæŸ"
+
+#: fortran/module.c:919
+msgid "Unexpected end of module in string constant"
+msgstr ""
+
+#: fortran/module.c:973
+msgid "Integer overflow"
+msgstr "整數溢出"
+
+#: fortran/module.c:1004
+msgid "Name too long"
+msgstr "å稱太長"
+
+#: fortran/module.c:1111
+msgid "Bad name"
+msgstr "錯誤的å稱"
+
+#: fortran/module.c:1155
+msgid "Expected name"
+msgstr "需è¦å稱"
+
+#: fortran/module.c:1158
+msgid "Expected left parenthesis"
+msgstr "需è¦å·¦åœ“括號"
+
+#: fortran/module.c:1161
+msgid "Expected right parenthesis"
+msgstr "需è¦å³åœ“括號"
+
+#: fortran/module.c:1164
+msgid "Expected integer"
+msgstr "需è¦æ•´æ•¸"
+
+#: fortran/module.c:1167
+msgid "Expected string"
+msgstr "需è¦å­—串"
+
+#: fortran/module.c:1191
+msgid "find_enum(): Enum not found"
+msgstr "find_enum():找ä¸åˆ°åˆ—舉"
+
+#: fortran/module.c:1206
+#, no-c-format
+msgid "Error writing modules file: %s"
+msgstr "寫入模組檔案時發生錯誤:%s"
+
+#: fortran/module.c:1565
+msgid "Expected attribute bit name"
+msgstr "需è¦å±¬æ€§ä½å"
+
+#: fortran/module.c:2322
+msgid "Expected integer string"
+msgstr "需è¦æ•´æ•¸å­—串"
+
+#: fortran/module.c:2326
+msgid "Error converting integer"
+msgstr "轉æ›æ•´æ•¸æ™‚發生錯誤"
+
+#: fortran/module.c:2349
+msgid "Expected real string"
+msgstr "需è¦å¯¦æ•¸å­—串"
+
+#: fortran/module.c:2496
+msgid "Expected expression type"
+msgstr "需è¦é‹ç®—å¼é¡žåž‹"
+
+#: fortran/module.c:2542
+msgid "Bad operator"
+msgstr "錯誤的é‹ç®—å­"
+
+#: fortran/module.c:2628
+msgid "Bad type in constant expression"
+msgstr "常數é‹ç®—å¼ä¸­é¡žåž‹éŒ¯èª¤"
+
+#: fortran/module.c:2665
+#, no-c-format
+msgid "Namelist %s cannot be renamed by USE association to %s."
+msgstr ""
+
+#: fortran/module.c:3333
+#, no-c-format
+msgid "Symbol '%s' referenced at %L not found in module '%s'"
+msgstr ""
+
+#: fortran/module.c:3341
+#, no-c-format
+msgid "User operator '%s' referenced at %L not found in module '%s'"
+msgstr ""
+
+#: fortran/module.c:3347
+#, no-c-format
+msgid "Intrinsic operator '%s' referenced at %L not found in module '%s'"
+msgstr ""
+
+#: fortran/module.c:3702
+#, no-c-format
+msgid "Can't open module file '%s' for writing at %C: %s"
+msgstr "無法開啟模組檔案「%sã€å¯«å…¥ï¼Œåœ¨ %C 處:%s"
+
+#: fortran/module.c:3727
+#, no-c-format
+msgid "Error writing module file '%s' for writing: %s"
+msgstr "寫入模組檔案「%sã€æ™‚發生錯誤:%s"
+
+#: fortran/module.c:3748
+#, no-c-format
+msgid "Can't open module file '%s' for reading at %C: %s"
+msgstr "無法開啟模組檔案「%sã€è®€å–,在 %C 處:%s"
+
+#: fortran/module.c:3762
+msgid "Unexpected end of module"
+msgstr "éžé æœŸçš„模組çµæŸ"
+
+#: fortran/module.c:3770
+#, no-c-format
+msgid "Can't USE the same module we're building!"
+msgstr ""
+
+#: fortran/options.c:231
+#, no-c-format
+msgid "Reading file '%s' as free form."
+msgstr "將檔案「%sã€æŒ‰è‡ªç”±æ ¼å¼è®€å…¥ã€‚"
+
+#: fortran/options.c:241
+#, no-c-format
+msgid "'-fd-lines-as-comments' has no effect in free form."
+msgstr "「-fd-lines-as-commentsã€åœ¨æ¨¹å½¢å¼ä¸Šä¸èµ·ä½œç”¨ã€‚"
+
+#: fortran/options.c:244
+#, no-c-format
+msgid "'-fd-lines-as-code' has no effect in free form."
+msgstr "「-fd-lines-as-codeã€åœ¨æ¨¹å½¢å¼ä¸Šä¸èµ·ä½œç”¨ã€‚"
+
+#: fortran/options.c:309
+#, c-format
+msgid "gfortran: Only one -M option allowed\n"
+msgstr "gfortran:åªå…許使用一個 -M é¸é …\n"
+
+#: fortran/options.c:315
+#, c-format
+msgid "gfortran: Directory required after -M\n"
+msgstr "gfortran:-M 後需è¦çµ¦å‡ºç›®éŒ„\n"
+
+#: fortran/options.c:355
+#, no-c-format
+msgid "Argument to -ffpe-trap is not valid: %s"
+msgstr "-ffpe-trap çš„åƒæ•¸ç„¡æ•ˆï¼š%s"
+
+#: fortran/options.c:451
+#, no-c-format
+msgid "Fixed line length must be at least seven."
+msgstr "固定格å¼çš„列長至少為七。"
+
+#: fortran/options.c:505
+#, no-c-format
+msgid "Maximum supported idenitifier length is %d"
+msgstr ""
+
+#: fortran/options.c:512
+#, no-c-format
+msgid "Argument to -fqkind isn't a valid real kind"
+msgstr ""
+
+#: fortran/parse.c:294
+#, no-c-format
+msgid "Unclassifiable statement at %C"
+msgstr "%C 敘述無法歸類別"
+
+#: fortran/parse.c:339 fortran/parse.c:413
+#, no-c-format
+msgid "Non-numeric character in statement label at %C"
+msgstr ""
+
+#: fortran/parse.c:351
+#, no-c-format
+msgid "Ignoring statement label in empty statement at %C"
+msgstr ""
+
+#: fortran/parse.c:421
+#, no-c-format
+msgid "Zero is not a valid statement label at %C"
+msgstr "零ä¸æ˜¯ %C 處的一個有效的敘述標籤"
+
+#: fortran/parse.c:440
+#, no-c-format
+msgid "Bad continuation line at %C"
+msgstr "%C 處錯誤的續列"
+
+#: fortran/parse.c:467
+#, no-c-format
+msgid "Statement label in blank line will be ignored at %C"
+msgstr ""
+
+#: fortran/parse.c:492
+#, no-c-format
+msgid "Line truncated at %C"
+msgstr "列在 %C 處被截斷"
+
+#: fortran/parse.c:665
+#, no-c-format
+msgid "FORMAT statement at %L does not have a statement label"
+msgstr "%L 處 FORMAT 敘述沒有敘述標籤"
+
+#: fortran/parse.c:737
+msgid "arithmetic IF"
+msgstr "ç®—è¡“ IF"
+
+#: fortran/parse.c:743
+msgid "attribute declaration"
+msgstr "屬性宣告"
+
+#: fortran/parse.c:773
+msgid "data declaration"
+msgstr "資料宣告"
+
+#: fortran/parse.c:782
+msgid "derived type declaration"
+msgstr "è¡ç”Ÿçš„類型宣告"
+
+#: fortran/parse.c:861
+msgid "block IF"
+msgstr "å€å¡Š IF"
+
+#: fortran/parse.c:870
+msgid "implied END DO"
+msgstr "暗示的 END DO"
+
+#: fortran/parse.c:937
+msgid "assignment"
+msgstr "賦值"
+
+#: fortran/parse.c:940
+msgid "pointer assignment"
+msgstr "指標賦值"
+
+#: fortran/parse.c:949
+msgid "simple IF"
+msgstr "簡單的 IF"
+
+#: fortran/parse.c:1086
+#, no-c-format
+msgid "Unexpected %s statement at %C"
+msgstr "éžé æœŸçš„ %s 敘述於 %C 處"
+
+#: fortran/parse.c:1218
+#, no-c-format
+msgid "%s statement at %C cannot follow %s statement at %L"
+msgstr "%s 敘述在 %C 處ä¸èƒ½è·Ÿéš¨ %s 敘述在 %L 處"
+
+#: fortran/parse.c:1235
+#, no-c-format
+msgid "Unexpected end of file in '%s'"
+msgstr "「%sã€ä¸­éžé æœŸçš„檔案çµå°¾"
+
+#: fortran/parse.c:1288
+#, no-c-format
+msgid "Derived type definition at %C has no components"
+msgstr ""
+
+#: fortran/parse.c:1299
+#, no-c-format
+msgid "PRIVATE statement in TYPE at %C must be inside a MODULE"
+msgstr ""
+
+#: fortran/parse.c:1306
+#, no-c-format
+msgid "PRIVATE statement at %C must precede structure components"
+msgstr ""
+
+#: fortran/parse.c:1314
+#, no-c-format
+msgid "Duplicate PRIVATE statement at %C"
+msgstr "%C 處é‡è¤‡çš„ PRIVATE 敘述"
+
+#: fortran/parse.c:1326
+#, no-c-format
+msgid "SEQUENCE statement at %C must precede structure components"
+msgstr ""
+
+#: fortran/parse.c:1333
+#, no-c-format
+msgid "SEQUENCE attribute at %C already specified in TYPE statement"
+msgstr ""
+
+#: fortran/parse.c:1338
+#, no-c-format
+msgid "Duplicate SEQUENCE statement at %C"
+msgstr "%C 處é‡è¤‡çš„ SEQUENCE 敘述"
+
+#: fortran/parse.c:1362
+#, no-c-format
+msgid "Component %s of SEQUENCE type declared at %C does not have the SEQUENCE attribute"
+msgstr ""
+
+#: fortran/parse.c:1407
+#, no-c-format
+msgid "ENUM declaration at %C has no ENUMERATORS"
+msgstr ""
+
+#: fortran/parse.c:1481
+#, no-c-format
+msgid "Unexpected %s statement in INTERFACE block at %C"
+msgstr "éžé æœŸçš„ %s 敘述出ç¾åœ¨ %C 處的 INTERFACE å€å¡Šä¸­"
+
+#: fortran/parse.c:1508
+#, no-c-format
+msgid "SUBROUTINE at %C does not belong in a generic function interface"
+msgstr ""
+
+#: fortran/parse.c:1513
+#, no-c-format
+msgid "FUNCTION at %C does not belong in a generic subroutine interface"
+msgstr ""
+
+#: fortran/parse.c:1530
+#, no-c-format
+msgid "Unexpected %s statement at %C in INTERFACE body"
+msgstr "éžé æœŸçš„ %s 敘述出ç¾åœ¨ %C 處的 INTERFACE 體中"
+
+#: fortran/parse.c:1602
+#, no-c-format
+msgid "%s statement must appear in a MODULE"
+msgstr "%s 敘述必須出ç¾åœ¨ MODULE 中"
+
+#: fortran/parse.c:1609
+#, no-c-format
+msgid "%s statement at %C follows another accessibility specification"
+msgstr ""
+
+#: fortran/parse.c:1686
+#, no-c-format
+msgid "ELSEWHERE statement at %C follows previous unmasked ELSEWHERE"
+msgstr ""
+
+#: fortran/parse.c:1707
+#, no-c-format
+msgid "Unexpected %s statement in WHERE block at %C"
+msgstr "éžé æœŸçš„ %s 敘述出ç¾åœ¨ %C 處的 WHERE å€å¡Šä¸­"
+
+#: fortran/parse.c:1767
+#, no-c-format
+msgid "Unexpected %s statement in FORALL block at %C"
+msgstr "éžé æœŸçš„ %s 敘述出ç¾åœ¨ %C 處的 FORALL å€å¡Šä¸­"
+
+#: fortran/parse.c:1819
+#, no-c-format
+msgid "ELSE IF statement at %C cannot follow ELSE statement at %L"
+msgstr "%C 處的 ELSE IF 敘述ä¸èƒ½å‡ºç¾åœ¨ %L 處的 ELSE 敘述之後"
+
+#: fortran/parse.c:1837
+#, no-c-format
+msgid "Duplicate ELSE statements at %L and %C"
+msgstr "%L å’Œ %C 處é‡è¤‡çš„ ELSE 敘述"
+
+#: fortran/parse.c:1899
+#, no-c-format
+msgid "Expected a CASE or END SELECT statement following SELECT CASE at %C"
+msgstr ""
+
+#: fortran/parse.c:1957
+#, no-c-format
+msgid "Variable '%s' at %C cannot be redefined inside loop beginning at %L"
+msgstr ""
+
+#: fortran/parse.c:1992
+#, no-c-format
+msgid "End of nonblock DO statement at %C is within another block"
+msgstr ""
+
+#: fortran/parse.c:2001
+#, no-c-format
+msgid "End of nonblock DO statement at %C is interwoven with another DO loop"
+msgstr ""
+
+#: fortran/parse.c:2051
+#, no-c-format
+msgid "Statement label in ENDDO at %C doesn't match DO label"
+msgstr ""
+
+#: fortran/parse.c:2108
+#, no-c-format
+msgid "%s statement at %C cannot terminate a non-block DO loop"
+msgstr ""
+
+#: fortran/parse.c:2247
+#, no-c-format
+msgid "Contained procedure '%s' at %C is already ambiguous"
+msgstr ""
+
+#: fortran/parse.c:2298
+#, no-c-format
+msgid "Unexpected %s statement in CONTAINS section at %C"
+msgstr "éžé æœŸçš„ %s 敘述出ç¾åœ¨ %C 處的 CONTAINS 段中"
+
+#: fortran/parse.c:2383
+#, no-c-format
+msgid "CONTAINS statement at %C is already in a contained program unit"
+msgstr ""
+
+#: fortran/parse.c:2432
+#, no-c-format
+msgid "Global name '%s' at %L is already being used as a %s at %L"
+msgstr ""
+
+#: fortran/parse.c:2453
+#, no-c-format
+msgid "Blank BLOCK DATA at %C conflicts with prior BLOCK DATA at %L"
+msgstr ""
+
+#: fortran/parse.c:2478
+#, no-c-format
+msgid "Unexpected %s statement in BLOCK DATA at %C"
+msgstr "éžé æœŸçš„ %s 敘述出ç¾åœ¨ %C 處的 DATA å€å¡Šä¸­"
+
+#: fortran/parse.c:2521
+#, no-c-format
+msgid "Unexpected %s statement in MODULE at %C"
+msgstr "éžé æœŸçš„ %s 敘述出ç¾åœ¨ %C 處的 MODULE 中"
+
+#. If we see a duplicate main program, shut down. If the second
+#. instance is an implied main program, ie data decls or executable
+#. statements, we're in for lots of errors.
+#: fortran/parse.c:2700
+#, no-c-format
+msgid "Two main PROGRAMs at %L and %C"
+msgstr "%L 和 %C 處有兩個主 PROGRAM"
+
+#: fortran/primary.c:91
+#, no-c-format
+msgid "Missing kind-parameter at %C"
+msgstr "%C 處缺少種別åƒæ•¸"
+
+#: fortran/primary.c:214
+#, no-c-format
+msgid "Integer kind %d at %C not available"
+msgstr "整數種別 %d 在 %C 處無法使用"
+
+#: fortran/primary.c:222
+#, no-c-format
+msgid "Integer too big for its kind at %C"
+msgstr "%C 處的整數å°å…¶ç¨®åˆ¥ä¾†èªªå¤ªå¤§"
+
+#: fortran/primary.c:252
+#, no-c-format
+msgid "Extension: Hollerith constant at %C"
+msgstr "擴充:%C 處的è·å‹’瑞斯常數"
+
+#: fortran/primary.c:264
+#, no-c-format
+msgid "Invalid Hollerith constant: %L must contain at least one character"
+msgstr "無效的è·å‹’瑞斯常數:%L 必須包å«è‡³å°‘一個字元"
+
+#: fortran/primary.c:270
+#, no-c-format
+msgid "Invalid Hollerith constant: Interger kind at %L should be default"
+msgstr "無效的è·å‹’瑞斯常數:%L 的整數種別應當是é è¨­çš„"
+
+#: fortran/primary.c:357
+#, no-c-format
+msgid "Extension: Hexadecimal constant at %C uses non-standard syntax."
+msgstr "擴充:%C 處的å六進ä½å¸¸æ•¸ä½¿ç”¨äº†éžæ¨™æº–語法。"
+
+#: fortran/primary.c:367
+#, no-c-format
+msgid "Empty set of digits in BOZ constant at %C"
+msgstr "%C 處 BOZ 常數中的數字集åˆç‚ºç©º"
+
+#: fortran/primary.c:373
+#, no-c-format
+msgid "Illegal character in BOZ constant at %C"
+msgstr "%C 處 BOZ 常數中有無效字元"
+
+#: fortran/primary.c:395
+#, no-c-format
+msgid "Extension: BOZ constant at %C uses non-standard postfix syntax."
+msgstr "擴充:%C 處的 BOZ 常數使用了éžæ¨™æº–語法。"
+
+#: fortran/primary.c:421
+#, no-c-format
+msgid "Integer too big for integer kind %i at %C"
+msgstr "整數å°å…¶ç¨®åˆ¥ %i 來說太大,於 %C 處"
+
+#: fortran/primary.c:521
+#, no-c-format
+msgid "Missing exponent in real number at %C"
+msgstr "%C 處實數缺少指數部分"
+
+#: fortran/primary.c:578
+#, no-c-format
+msgid "Real number at %C has a 'd' exponent and an explicit kind"
+msgstr ""
+
+#: fortran/primary.c:588
+#, no-c-format
+msgid "Real number at %C has a 'q' exponent and an explicit kind"
+msgstr ""
+
+#: fortran/primary.c:600
+#, no-c-format
+msgid "Invalid real kind %d at %C"
+msgstr "無效的實型種別 %d,在 %C 處"
+
+#: fortran/primary.c:614
+#, no-c-format
+msgid "Real constant overflows its kind at %C"
+msgstr "%C 處實常數å‘上溢ä½å…¶ç¨®åˆ¥"
+
+#: fortran/primary.c:619
+#, no-c-format
+msgid "Real constant underflows its kind at %C"
+msgstr "%C 處實常數å‘下溢ä½å…¶ç¨®åˆ¥"
+
+#: fortran/primary.c:711
+#, no-c-format
+msgid "Syntax error in SUBSTRING specification at %C"
+msgstr "%C SUBSTRING 指定語法錯誤"
+
+#: fortran/primary.c:943
+#, no-c-format
+msgid "Invalid kind %d for CHARACTER constant at %C"
+msgstr "CHARACTER 常數的種別 %d 無效,在 %C 處"
+
+#: fortran/primary.c:964
+#, no-c-format
+msgid "Unterminated character constant beginning at %C"
+msgstr "開始於 %C 的未終çµçš„字元常數"
+
+#: fortran/primary.c:1038
+#, no-c-format
+msgid "Bad kind for logical constant at %C"
+msgstr "%C 處é‚輯常數的種別錯誤"
+
+#: fortran/primary.c:1073
+#, no-c-format
+msgid "Expected PARAMETER symbol in complex constant at %C"
+msgstr ""
+
+#: fortran/primary.c:1079
+#, no-c-format
+msgid "Numeric PARAMETER required in complex constant at %C"
+msgstr ""
+
+#: fortran/primary.c:1085
+#, no-c-format
+msgid "Scalar PARAMETER required in complex constant at %C"
+msgstr ""
+
+#: fortran/primary.c:1115
+#, no-c-format
+msgid "Error converting PARAMETER constant in complex constant at %C"
+msgstr ""
+
+#: fortran/primary.c:1242
+#, no-c-format
+msgid "Syntax error in COMPLEX constant at %C"
+msgstr "%C 處的複常數語法錯誤"
+
+#: fortran/primary.c:1424
+#, no-c-format
+msgid "Keyword '%s' at %C has already appeared in the current argument list"
+msgstr ""
+
+#: fortran/primary.c:1481
+#, no-c-format
+msgid "Expected alternate return label at %C"
+msgstr "%C 處需è¦æ›¿ä»£çš„回傳標籤"
+
+#: fortran/primary.c:1500
+#, no-c-format
+msgid "Missing keyword name in actual argument list at %C"
+msgstr ""
+
+#: fortran/primary.c:1536
+#, no-c-format
+msgid "Syntax error in argument list at %C"
+msgstr "%C 處的åƒæ•¸æ¸…單語法錯誤"
+
+#: fortran/primary.c:1623
+#, no-c-format
+msgid "Expected structure component name at %C"
+msgstr "%C 處需è¦çµæ§‹å…ƒä»¶å"
+
+#: fortran/primary.c:1861
+#, no-c-format
+msgid "Too many components in structure constructor at %C"
+msgstr "%C 處çµæ§‹å»ºæ§‹çš„元件太多"
+
+#: fortran/primary.c:1876
+#, no-c-format
+msgid "Too few components in structure constructor at %C"
+msgstr "%C 處çµæ§‹å»ºæ§‹ä¸­å…ƒä»¶å¤ªå°‘"
+
+#: fortran/primary.c:1894
+#, no-c-format
+msgid "Syntax error in structure constructor at %C"
+msgstr "%C çµæ§‹å»ºæ§‹èªžæ³•éŒ¯èª¤"
+
+#: fortran/primary.c:2007
+#, no-c-format
+msgid "Unexpected use of subroutine name '%s' at %C"
+msgstr "å°å­è™•ç†åºå「%sã€éžé æœŸçš„使用,在 %C 處"
+
+#: fortran/primary.c:2038
+#, no-c-format
+msgid "Statement function '%s' requires argument list at %C"
+msgstr "敘述函å¼ã€Œ%sã€åœ¨ %C 處缺少åƒæ•¸æ¸…å–®"
+
+#: fortran/primary.c:2041
+#, no-c-format
+msgid "Function '%s' requires an argument list at %C"
+msgstr "函å¼ã€Œ%sã€åœ¨ %C 需è¦åƒæ•¸æ¸…å–®"
+
+#: fortran/primary.c:2195
+#, no-c-format
+msgid "Missing argument list in function '%s' at %C"
+msgstr "函å¼ã€Œ%sã€åœ¨ %C 處缺少åƒæ•¸æ¸…å–®"
+
+#: fortran/primary.c:2223
+#, no-c-format
+msgid "Symbol at %C is not appropriate for an expression"
+msgstr "%C 處的符號ä¸é©ç”¨æ–¼é‹ç®—å¼"
+
+#: fortran/primary.c:2293
+#, no-c-format
+msgid "Expected VARIABLE at %C"
+msgstr "%C è™•éœ€è¦ VARIABLE "
+
+#: fortran/resolve.c:102
+#, no-c-format
+msgid "Alternate return specifier in elemental subroutine '%s' at %L is not allowed"
+msgstr ""
+
+#: fortran/resolve.c:106
+#, no-c-format
+msgid "Alternate return specifier in function '%s' at %L is not allowed"
+msgstr ""
+
+#: fortran/resolve.c:120
+#, no-c-format
+msgid "Dummy procedure '%s' of PURE procedure at %L must also be PURE"
+msgstr ""
+
+#: fortran/resolve.c:128
+#, no-c-format
+msgid "Dummy procedure at %L not allowed in ELEMENTAL procedure"
+msgstr "在 %L 處的啞程åºä¸å…許出ç¾åœ¨ ELEMENTAL 程åºä¸­"
+
+#: fortran/resolve.c:172
+#, no-c-format
+msgid "Argument '%s' of pure function '%s' at %L must be INTENT(IN)"
+msgstr "%3$L 處純函å¼ã€Œ%2$sã€çš„引數「%1$sã€å¿…須是 INTENT(IN)"
+
+#: fortran/resolve.c:180
+#, no-c-format
+msgid "Argument '%s' of pure subroutine '%s' at %L must have its INTENT specified"
+msgstr ""
+
+#: fortran/resolve.c:191
+#, no-c-format
+msgid "Argument '%s' of elemental procedure at %L must be scalar"
+msgstr "元素程åºçš„引數「%sã€åœ¨ %L 處必須是標é‡"
+
+#: fortran/resolve.c:199
+#, no-c-format
+msgid "Argument '%s' of elemental procedure at %L cannot have the POINTER attribute"
+msgstr ""
+
+#: fortran/resolve.c:211
+#, no-c-format
+msgid "Argument '%s' of statement function at %L must be scalar"
+msgstr "敘述函å¼çš„引數「%sã€åœ¨ %L 處必須是標é‡"
+
+#: fortran/resolve.c:222
+#, no-c-format
+msgid "Character-valued argument '%s' of statement function at %L must has constant length"
+msgstr ""
+
+#: fortran/resolve.c:283
+#, no-c-format
+msgid "Contained function '%s' at %L has no IMPLICIT type"
+msgstr ""
+
+#: fortran/resolve.c:293
+#, no-c-format
+msgid "Character-valued internal function '%s' at %L must not be assumed length"
+msgstr "字元賦值的內部函å¼ã€Œ%sã€åœ¨ %L 處ä¸å…許被指派長度"
+
+#: fortran/resolve.c:436
+#, no-c-format
+msgid "FUNCTION result %s can't be an array in FUNCTION %s at %L"
+msgstr ""
+
+#: fortran/resolve.c:440
+#, no-c-format
+msgid "ENTRY result %s can't be an array in FUNCTION %s at %L"
+msgstr ""
+
+#: fortran/resolve.c:447
+#, no-c-format
+msgid "FUNCTION result %s can't be a POINTER in FUNCTION %s at %L"
+msgstr ""
+
+#: fortran/resolve.c:451
+#, no-c-format
+msgid "ENTRY result %s can't be a POINTER in FUNCTION %s at %L"
+msgstr ""
+
+#: fortran/resolve.c:489
+#, no-c-format
+msgid "FUNCTION result %s can't be of type %s in FUNCTION %s at %L"
+msgstr ""
+
+#: fortran/resolve.c:494
+#, no-c-format
+msgid "ENTRY result %s can't be of type %s in FUNCTION %s at %L"
+msgstr ""
+
+#: fortran/resolve.c:590
+#, no-c-format
+msgid "The element in the derived type constructor at %L, for pointer component '%s', is %s but should be %s"
+msgstr ""
+
+#: fortran/resolve.c:716
+#, no-c-format
+msgid "The upper bound in the last dimension must appear in the reference to the assumed size array '%s' at %L."
+msgstr ""
+
+#: fortran/resolve.c:781 fortran/resolve.c:3615 fortran/resolve.c:4281
+#, no-c-format
+msgid "Label %d referenced at %L is never defined"
+msgstr "標籤 %d(åƒç…§è‡ª %L)從未被定義"
+
+#: fortran/resolve.c:808
+#, no-c-format
+msgid "Statement function '%s' at %L is not allowed as an actual argument"
+msgstr "敘述函å¼ã€Œ%sã€åœ¨ %L 處ä¸å…許åšç‚ºå¯¦éš›å¼•æ•¸"
+
+#: fortran/resolve.c:815
+#, no-c-format
+msgid "Internal procedure '%s' is not allowed as an actual argument at %L"
+msgstr "內部程åºã€Œ%sã€åœ¨ %L 處ä¸å…許åšç‚ºå¯¦éš›å¼•æ•¸"
+
+#: fortran/resolve.c:821
+#, no-c-format
+msgid "ELEMENTAL non-INTRINSIC procedure '%s' is not allowed as an actual argument at %L"
+msgstr "ELEMENTAL non-INTRINSIC 程åºã€Œ%sã€åœ¨ %L 處ä¸å…許åšç‚ºå¯¦éš›å¼•æ•¸"
+
+#: fortran/resolve.c:845
+#, no-c-format
+msgid "Symbol '%s' at %L is ambiguous"
+msgstr "符號「%sã€(ä½æ–¼ %L)有歧義"
+
+#: fortran/resolve.c:974
+#, no-c-format
+msgid "Generic function '%s' at %L is not an intrinsic function"
+msgstr "通用函å¼ã€Œ%sã€(æ–¼ %L 處)ä¸æ˜¯ä¸€å€‹å…§å»ºå‡½å¼"
+
+#: fortran/resolve.c:984
+#, no-c-format
+msgid "Generic function '%s' at %L is not consistent with a specific intrinsic interface"
+msgstr ""
+
+#: fortran/resolve.c:1022
+#, no-c-format
+msgid "Function '%s' at %L is INTRINSIC but is not compatible with an intrinsic"
+msgstr ""
+
+#: fortran/resolve.c:1068
+#, no-c-format
+msgid "Unable to resolve the specific function '%s' at %L"
+msgstr ""
+
+#: fortran/resolve.c:1124 fortran/resolve.c:5889
+#, no-c-format
+msgid "Function '%s' at %L has no IMPLICIT type"
+msgstr "函å¼ã€Œ%sã€åœ¨ %L 處沒有 IMPLICIT é¡žåž‹"
+
+#. This follows from a slightly odd requirement at 5.1.1.5 in the
+#. standard that allows assumed character length functions to be
+#. declared in interfaces but not used. Picking up the symbol here,
+#. rather than resolve_symbol, accomplishes that.
+#: fortran/resolve.c:1211
+#, no-c-format
+msgid "Function '%s' can be declared in an interface to return CHARACTER(*) but cannot be used at %L"
+msgstr ""
+
+#: fortran/resolve.c:1220
+#, no-c-format
+msgid "Function '%s' is declared CHARACTER(*) and cannot be used at %L since it is not a dummy argument"
+msgstr ""
+
+#: fortran/resolve.c:1329
+#, no-c-format
+msgid "Function reference to '%s' at %L is inside a FORALL block"
+msgstr ""
+
+#: fortran/resolve.c:1335
+#, no-c-format
+msgid "Function reference to '%s' at %L is to a non-PURE procedure within a PURE procedure"
+msgstr ""
+
+#: fortran/resolve.c:1365
+#, no-c-format
+msgid "Subroutine call to '%s' in FORALL block at %L is not PURE"
+msgstr ""
+
+#: fortran/resolve.c:1368
+#, no-c-format
+msgid "Subroutine call to '%s' at %L is not PURE"
+msgstr ""
+
+#: fortran/resolve.c:1430
+#, no-c-format
+msgid "Generic subroutine '%s' at %L is not an intrinsic subroutine"
+msgstr "通用å­è™•ç†åºã€Œ%sã€(æ–¼ %L 處)ä¸æ˜¯ä¸€å€‹å…§å»ºå­è™•ç†åº"
+
+#: fortran/resolve.c:1439
+#, no-c-format
+msgid "Generic subroutine '%s' at %L is not consistent with an intrinsic subroutine interface"
+msgstr ""
+
+#: fortran/resolve.c:1474
+#, no-c-format
+msgid "Subroutine '%s' at %L is INTRINSIC but is not compatible with an intrinsic"
+msgstr ""
+
+#: fortran/resolve.c:1517
+#, no-c-format
+msgid "Unable to resolve the specific subroutine '%s' at %L"
+msgstr ""
+
+#: fortran/resolve.c:1573
+#, no-c-format
+msgid "'%s' at %L has a type, which is not consistent with the CALL at %L"
+msgstr ""
+
+#: fortran/resolve.c:1656
+#, no-c-format
+msgid "Shapes for operands at %L and %L are not conformable"
+msgstr "%L å’Œ %L 處的é‹ç®—元外形ä¸ç›¸å®¹"
+
+#: fortran/resolve.c:1713
+#, c-format
+msgid "Operand of unary numeric operator '%s' at %%L is %s"
+msgstr "å–®ä½å…ƒæ•¸å€¼é‹ç®—å­ã€Œ%sã€(ä½æ–¼ %%L)çš„é‹ç®—元為 %s"
+
+#: fortran/resolve.c:1729
+#, c-format
+msgid "Operands of binary numeric operator '%s' at %%L are %s/%s"
+msgstr "二元數值é‹ç®—å­ã€Œ%sã€(ä½æ–¼ %%L)çš„é‹ç®—元為 %s/%s"
+
+#: fortran/resolve.c:1743
+#, c-format
+msgid "Operands of string concatenation operator at %%L are %s/%s"
+msgstr "字串粘貼é‹ç®—å­(ä½æ–¼ %%L)çš„é‹ç®—元為 %s/%s"
+
+#: fortran/resolve.c:1762
+#, c-format
+msgid "Operands of logical operator '%s' at %%L are %s/%s"
+msgstr "é‚輯é‹ç®—å­ã€Œ%sã€(ä½æ–¼ %%L)çš„é‹ç®—元為 %s/%s"
+
+#: fortran/resolve.c:1776
+#, c-format
+msgid "Operand of .NOT. operator at %%L is %s"
+msgstr "%%L 處的 .NOT. é‹ç®—å­çš„é‹ç®—元為 %s"
+
+#: fortran/resolve.c:1786
+msgid "COMPLEX quantities cannot be compared at %L"
+msgstr "%L 處複數ä¸èƒ½æ¯”較大å°"
+
+#: fortran/resolve.c:1812
+#, c-format
+msgid "Logicals at %%L must be compared with %s instead of %s"
+msgstr "%%L 處é‚輯值必須與 %s 比較,而ä¸æ˜¯ %s"
+
+#: fortran/resolve.c:1817
+#, c-format
+msgid "Operands of comparison operator '%s' at %%L are %s/%s"
+msgstr "比較é‹ç®—å­ã€Œ%sã€(ä½æ–¼ %%L)çš„é‹ç®—元為 %s/%s"
+
+#: fortran/resolve.c:1825
+#, c-format
+msgid "Operand of user operator '%s' at %%L is %s"
+msgstr "使用者é‹ç®—å­ã€Œ%sã€(ä½æ–¼ %%L)çš„é‹ç®—元為 %s"
+
+#: fortran/resolve.c:1828
+#, c-format
+msgid "Operands of user operator '%s' at %%L are %s/%s"
+msgstr "使用者é‹ç®—å­ã€Œ%sã€(ä½æ–¼ %%L)çš„é‹ç®—元為 %s/%s"
+
+#: fortran/resolve.c:1899
+#, no-c-format
+msgid "Inconsistent ranks for operator at %L and %L"
+msgstr "%L å’Œ %L 處的é‹ç®—元秩ä¸ä¸€è‡´"
+
+#: fortran/resolve.c:2022
+#, no-c-format
+msgid "Illegal stride of zero at %L"
+msgstr "%L 零間隔無效"
+
+#: fortran/resolve.c:2043
+#, no-c-format
+msgid "Array reference at %L is out of bounds"
+msgstr "%L 處陣列åƒç…§è¶Šç•Œ"
+
+#: fortran/resolve.c:2064
+#, no-c-format
+msgid "Rightmost upper bound of assumed size array section not specified at %L"
+msgstr ""
+
+#: fortran/resolve.c:2074
+#, no-c-format
+msgid "Rank mismatch in array reference at %L (%d/%d)"
+msgstr "%L 處陣列åƒç…§ä¸­ç§©ä¸åŒ¹é…(%d/%d)"
+
+#: fortran/resolve.c:2102
+#, no-c-format
+msgid "Array index at %L must be scalar"
+msgstr "%L 處陣列索引必須是標é‡"
+
+#: fortran/resolve.c:2108
+#, no-c-format
+msgid "Array index at %L must be of INTEGER type"
+msgstr "%L 處陣列索引必須具有 INTEGER 類型"
+
+#: fortran/resolve.c:2114
+#, no-c-format
+msgid "Extension: REAL array index at %L"
+msgstr "擴充:%L 處的 REAL 陣列索引"
+
+#: fortran/resolve.c:2144
+#, no-c-format
+msgid "Argument dim at %L must be scalar"
+msgstr "%L 引數維數必須是標é‡"
+
+#: fortran/resolve.c:2150
+#, no-c-format
+msgid "Argument dim at %L must be of INTEGER type"
+msgstr "%L 處引數維數必須具有 INTEGER 類型"
+
+#: fortran/resolve.c:2252
+#, no-c-format
+msgid "Array index at %L is an array of rank %d"
+msgstr "%L 處陣列索引是一個秩為 %d 的陣列"
+
+#: fortran/resolve.c:2290
+#, no-c-format
+msgid "Substring start index at %L must be of type INTEGER"
+msgstr "%L 處的å­å­—串起始索引類型必須為 INTEGER"
+
+#: fortran/resolve.c:2297
+#, no-c-format
+msgid "Substring start index at %L must be scalar"
+msgstr "%L 處的å­å­—串起始索引必須是標é‡"
+
+#: fortran/resolve.c:2304
+#, no-c-format
+msgid "Substring start index at %L is less than one"
+msgstr "%L 處的å­å­—串起始索引å°æ–¼ 1"
+
+#: fortran/resolve.c:2317
+#, no-c-format
+msgid "Substring end index at %L must be of type INTEGER"
+msgstr "%L 處的å­å­—串終止索引類型必須為 INTEGER"
+
+#: fortran/resolve.c:2324
+#, no-c-format
+msgid "Substring end index at %L must be scalar"
+msgstr "%L 處的å­å­—串終止索引必須是標é‡"
+
+#: fortran/resolve.c:2332
+#, no-c-format
+msgid "Substring end index at %L is out of bounds"
+msgstr "%L 處的å­å­—串終止索引越界"
+
+#: fortran/resolve.c:2406
+#, no-c-format
+msgid "Component to the right of a part reference with nonzero rank must not have the POINTER attribute at %L"
+msgstr ""
+
+#: fortran/resolve.c:2425
+#, no-c-format
+msgid "Two or more part references with nonzero rank must not be specified at %L"
+msgstr ""
+
+#: fortran/resolve.c:2654
+#, no-c-format
+msgid "%s at %L must be a scalar"
+msgstr "%s (%L 處)必須是一個標é‡"
+
+#: fortran/resolve.c:2662
+#, no-c-format
+msgid "%s at %L must be INTEGER or REAL"
+msgstr "%s (%L 處)必須是 INTEGER 或 REAL"
+
+#: fortran/resolve.c:2665
+#, no-c-format
+msgid "%s at %L must be INTEGER"
+msgstr "%s (%L 處)必須是 INTEGER"
+
+#: fortran/resolve.c:2681
+#, no-c-format
+msgid "Obsolete: REAL DO loop iterator at %L"
+msgstr "å·²éŽæ™‚:%L 處的 REAL DO 循環游標"
+
+#: fortran/resolve.c:2690
+#, no-c-format
+msgid "Cannot assign to loop variable in PURE procedure at %L"
+msgstr "æ–¼ %L 處的 PURE 程åºä¸­ç„¡æ³•æŒ‡å®šè‡³è¿´åœˆè®Šæ•¸"
+
+#: fortran/resolve.c:2714
+#, no-c-format
+msgid "Step expression in DO loop at %L cannot be zero"
+msgstr "步進敘述於 %L 處的 DO 迴圈中ä¸å¯ç‚ºé›¶"
+
+#: fortran/resolve.c:2749
+#, no-c-format
+msgid "FORALL index-name at %L must be a scalar INTEGER"
+msgstr "%L 處 FORALL 索引å稱必須是 INTEGER 標é‡"
+
+#: fortran/resolve.c:2754
+#, no-c-format
+msgid "FORALL start expression at %L must be a scalar INTEGER"
+msgstr "%L 處的 FORALL 啟始敘述必須是 INTEGER 標é‡"
+
+#: fortran/resolve.c:2761
+#, no-c-format
+msgid "FORALL end expression at %L must be a scalar INTEGER"
+msgstr "%L 處的 FORALL çµæŸæ•˜è¿°å¿…須是 INTEGER 標é‡"
+
+#: fortran/resolve.c:2769
+#, no-c-format
+msgid "FORALL stride expression at %L must be a scalar %s"
+msgstr "%L 處的 FORALL 步幅敘述必須是 %s 標é‡"
+
+#: fortran/resolve.c:2774
+#, no-c-format
+msgid "FORALL stride expression at %L cannot be zero"
+msgstr "%L 處的 FORALL 步幅敘述ä¸èƒ½ç‚ºé›¶"
+
+#: fortran/resolve.c:2872
+#, no-c-format
+msgid "Expression in DEALLOCATE statement at %L must be ALLOCATABLE or a POINTER"
+msgstr ""
+
+#: fortran/resolve.c:2972
+#, no-c-format
+msgid "Expression in ALLOCATE statement at %L must be ALLOCATABLE or a POINTER"
+msgstr ""
+
+#: fortran/resolve.c:2997
+#, no-c-format
+msgid "Array specification required in ALLOCATE statement at %L"
+msgstr ""
+
+#: fortran/resolve.c:3026
+#, no-c-format
+msgid "Bad array specification in ALLOCATE statement at %L"
+msgstr ""
+
+#. The cases overlap, or they are the same
+#. element in the list. Either way, we must
+#. issue an error and get the next case from P.
+#. FIXME: Sort P and Q by line number.
+#: fortran/resolve.c:3182
+#, no-c-format
+msgid "CASE label at %L overlaps with CASE label at %L"
+msgstr ""
+
+#: fortran/resolve.c:3233
+#, no-c-format
+msgid "Expression in CASE statement at %L must be of type %s"
+msgstr "%L 處 CASE 敘述中的é‹ç®—å¼å¿…須具有 %s é¡žåž‹"
+
+#: fortran/resolve.c:3244
+#, no-c-format
+msgid "Expression in CASE statement at %L must be kind %d"
+msgstr "%L 處 CASE 敘述中的é‹ç®—å¼ç¨®é¡žå¿…須為 %d"
+
+#: fortran/resolve.c:3256
+#, no-c-format
+msgid "Expression in CASE statement at %L must be scalar"
+msgstr "%L 處 CASE 敘述中的é‹ç®—å¼å¿…須為標é‡"
+
+#: fortran/resolve.c:3302
+#, no-c-format
+msgid "Selection expression in computed GOTO statement at %L must be a scalar integer expression"
+msgstr ""
+
+#: fortran/resolve.c:3320
+#, no-c-format
+msgid "Argument of SELECT statement at %L cannot be %s"
+msgstr "%L 處 SELECT 敘述的引數ä¸èƒ½æ˜¯ %s"
+
+#: fortran/resolve.c:3329
+#, no-c-format
+msgid "Argument of SELECT statement at %L must be a scalar expression"
+msgstr "%L 處 SELECT 敘述中的引數必須為標é‡"
+
+#: fortran/resolve.c:3393
+#, no-c-format
+msgid "The DEFAULT CASE at %L cannot be followed by a second DEFAULT CASE at %L"
+msgstr ""
+
+#: fortran/resolve.c:3420
+#, no-c-format
+msgid "Logical range in CASE statement at %L is not allowed"
+msgstr ""
+
+#: fortran/resolve.c:3431
+#, no-c-format
+msgid "Range specification at %L can never be matched"
+msgstr ""
+
+#: fortran/resolve.c:3534
+#, no-c-format
+msgid "Logical SELECT CASE block at %L has more that two cases"
+msgstr ""
+
+#: fortran/resolve.c:3572
+#, no-c-format
+msgid "Data transfer element at %L cannot have POINTER components"
+msgstr ""
+
+#: fortran/resolve.c:3579
+#, no-c-format
+msgid "Data transfer element at %L cannot have PRIVATE components"
+msgstr ""
+
+#: fortran/resolve.c:3588
+#, no-c-format
+msgid "Data transfer element at %L cannot be a full reference to an assumed-size array"
+msgstr ""
+
+#: fortran/resolve.c:3622
+#, no-c-format
+msgid "Statement at %L is not a valid branch target statement for the branch statement at %L"
+msgstr ""
+
+#: fortran/resolve.c:3631
+#, no-c-format
+msgid "Branch at %L causes an infinite loop"
+msgstr "%L 處的分支導致無窮循環"
+
+#: fortran/resolve.c:3664
+#, no-c-format
+msgid "Label at %L is not in the same block as the GOTO statement at %L"
+msgstr ""
+
+#: fortran/resolve.c:3680
+#, no-c-format
+msgid "Obsolete: GOTO at %L jumps to END of construct at %L"
+msgstr ""
+
+#: fortran/resolve.c:3754
+#, no-c-format
+msgid "WHERE mask at %L has inconsistent shape"
+msgstr ""
+
+#: fortran/resolve.c:3770
+#, no-c-format
+msgid "WHERE assignment target at %L has inconsistent shape"
+msgstr ""
+
+#: fortran/resolve.c:3780 fortran/resolve.c:3979
+#, no-c-format
+msgid "Unsupported statement inside WHERE at %L"
+msgstr "%L 處在 WHERE å…§ä¸æ”¯æ´çš„敘述"
+
+#: fortran/resolve.c:3856
+#, no-c-format
+msgid "expresion reference type error at %L"
+msgstr "%L 處é‹ç®—å¼åƒç…§é¡žåž‹éŒ¯èª¤"
+
+#: fortran/resolve.c:3888
+#, no-c-format
+msgid "Unsupported statement while finding forall index in expression"
+msgstr ""
+
+#: fortran/resolve.c:3935
+#, no-c-format
+msgid "Assignment to a FORALL index variable at %L"
+msgstr "%L è™•å‘ FORALL 索引變數賦值"
+
+#: fortran/resolve.c:3943
+#, no-c-format
+msgid "The FORALL with index '%s' cause more than one assignment to this object at %L"
+msgstr ""
+
+#: fortran/resolve.c:4070
+#, no-c-format
+msgid "An outer FORALL construct already has an index with this name %L"
+msgstr ""
+
+#: fortran/resolve.c:4082 fortran/resolve.c:4085 fortran/resolve.c:4088
+#, no-c-format
+msgid "A FORALL index must not appear in a limit or stride expression in the same FORALL at %L"
+msgstr ""
+
+#: fortran/resolve.c:4131
+#, no-c-format
+msgid "ELSE IF clause at %L requires a scalar LOGICAL expression"
+msgstr ""
+
+#: fortran/resolve.c:4141
+#, no-c-format
+msgid "WHERE/ELSEWHERE clause at %L requires a LOGICAL array"
+msgstr "%L 處的 WHERE/ELSEWHERE å­å¥éœ€è¦ä¸€å€‹ LOGICAL 陣列"
+
+#: fortran/resolve.c:4222
+#, no-c-format
+msgid "ASSIGNED GOTO statement at %L requires an INTEGER variable"
+msgstr ""
+
+#: fortran/resolve.c:4225
+#, no-c-format
+msgid "Variable '%s' has not been assigned a target label at %L"
+msgstr "變數「%sã€åœ¨ %L 尚未指派到目標標籤"
+
+#: fortran/resolve.c:4235
+#, no-c-format
+msgid "Alternate RETURN statement at %L requires an INTEGER return specifier"
+msgstr ""
+
+#: fortran/resolve.c:4247
+#, no-c-format
+msgid "Subroutine '%s' called instead of assignment at %L must be PURE"
+msgstr "%L 處用以å–代賦值的副例程「%sã€å‘¼å«å¿…須是 PURE"
+
+#: fortran/resolve.c:4260
+#, no-c-format
+msgid "Cannot assign to variable '%s' in PURE procedure at %L"
+msgstr ""
+
+#: fortran/resolve.c:4269
+#, no-c-format
+msgid "Right side of assignment at %L is a derived type containing a POINTER in a PURE procedure"
+msgstr ""
+
+#: fortran/resolve.c:4289
+#, no-c-format
+msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
+msgstr ""
+
+#: fortran/resolve.c:4304
+#, no-c-format
+msgid "Arithmetic IF statement at %L requires a numeric expression"
+msgstr ""
+
+#: fortran/resolve.c:4316
+#, no-c-format
+msgid "IF clause at %L requires a scalar LOGICAL expression"
+msgstr ""
+
+#: fortran/resolve.c:4342
+#, no-c-format
+msgid "Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression"
+msgstr ""
+
+#: fortran/resolve.c:4349
+#, no-c-format
+msgid "STAT tag in ALLOCATE statement at %L must be of type INTEGER"
+msgstr ""
+
+#: fortran/resolve.c:4361
+#, no-c-format
+msgid "STAT tag in DEALLOCATE statement at %L must be of type INTEGER"
+msgstr ""
+
+#: fortran/resolve.c:4427
+#, no-c-format
+msgid "FORALL mask clause at %L requires a LOGICAL expression"
+msgstr ""
+
+#: fortran/resolve.c:4503
+#, no-c-format
+msgid "Allocatable array '%s' at %L must have a deferred shape"
+msgstr "å¯æŒ‡æ´¾çš„陣列「%sã€åœ¨ %L 處必須有延é²çš„外形"
+
+#: fortran/resolve.c:4506
+#, no-c-format
+msgid "Scalar object '%s' at %L may not be ALLOCATABLE"
+msgstr ""
+
+#: fortran/resolve.c:4513
+#, no-c-format
+msgid "Array pointer '%s' at %L must have a deferred shape"
+msgstr "陣列指標「%sã€åœ¨ %L 處必須有延é²çš„外形"
+
+#: fortran/resolve.c:4524
+#, no-c-format
+msgid "Array '%s' at %L cannot have a deferred shape"
+msgstr "陣列「%sã€åœ¨ %L 處ä¸èƒ½æœ‰å»¶é²çš„外形"
+
+#: fortran/resolve.c:4579
+#, no-c-format
+msgid "The module or main program array '%s' at %L must have constant shape"
+msgstr "模組或主程å¼é™£åˆ—「%sã€åœ¨ %L 處必須有常態的外形"
+
+#: fortran/resolve.c:4592
+#, no-c-format
+msgid "Entity with assumed character length at %L must be a dummy argument or a PARAMETER"
+msgstr ""
+
+#: fortran/resolve.c:4605
+#, no-c-format
+msgid "'%s' at %L must have constant character length in this context"
+msgstr ""
+
+#: fortran/resolve.c:4636
+#, no-c-format
+msgid "Allocatable '%s' at %L cannot have an initializer"
+msgstr "å¯æŒ‡æ´¾çš„「%sã€åœ¨ %L 處ä¸èƒ½æœ‰åˆå§‹å€¼è¨­å®š"
+
+#: fortran/resolve.c:4639
+#, no-c-format
+msgid "External '%s' at %L cannot have an initializer"
+msgstr "外部「%sã€åœ¨ %L 處ä¸èƒ½æœ‰åˆå§‹å€¼è¨­å®š"
+
+#: fortran/resolve.c:4642
+#, no-c-format
+msgid "Dummy '%s' at %L cannot have an initializer"
+msgstr "啞元「%sã€åœ¨ %L 處ä¸èƒ½æœ‰åˆå§‹å€¼è¨­å®š"
+
+#: fortran/resolve.c:4645
+#, no-c-format
+msgid "Intrinsic '%s' at %L cannot have an initializer"
+msgstr "內建函å¼ã€Œ%sã€åœ¨ %L 處ä¸èƒ½æœ‰åˆå§‹å€¼è¨­å®š"
+
+#: fortran/resolve.c:4648
+#, no-c-format
+msgid "Function result '%s' at %L cannot have an initializer"
+msgstr "函å¼çµæžœã€Œ%sã€åœ¨ %L 處ä¸èƒ½æœ‰åˆå§‹å€¼è¨­å®š"
+
+#: fortran/resolve.c:4651
+#, no-c-format
+msgid "Automatic array '%s' at %L cannot have an initializer"
+msgstr "自動陣列「%sã€åœ¨ %L 處ä¸èƒ½æœ‰åˆå§‹å€¼è¨­å®š"
+
+#: fortran/resolve.c:4671
+#, no-c-format
+msgid "Object '%s' at %L must have the SAVE attribute %s"
+msgstr "%L 處的物件「%sã€å¿…須有 SAVE 屬性 %s"
+
+#: fortran/resolve.c:4704
+#, no-c-format
+msgid "Character-valued statement function '%s' at %L must have constant length"
+msgstr ""
+
+#: fortran/resolve.c:4723
+#, no-c-format
+msgid "'%s' is of a PRIVATE type and cannot be a dummy argument of '%s', which is PUBLIC at %L"
+msgstr ""
+
+#: fortran/resolve.c:4738
+#, no-c-format
+msgid "External object '%s' at %L may not have an initializer"
+msgstr "外部物件「%sã€åœ¨ %L 處ä¸èƒ½æœ‰åˆå§‹å€¼è¨­å®š"
+
+#: fortran/resolve.c:4757
+#, no-c-format
+msgid "CHARACTER(*) function '%s' at %L cannot be array-valued"
+msgstr "CHARACTER(*) 函å¼ã€Œ%sã€(ä½æ–¼ %L)ä¸èƒ½ä»¥é™£åˆ—賦值"
+
+#: fortran/resolve.c:4761
+#, no-c-format
+msgid "CHARACTER(*) function '%s' at %L cannot be pointer-valued"
+msgstr "CHARACTER(*) 函å¼ã€Œ%sã€(ä½æ–¼ %L)ä¸èƒ½ä»¥æŒ‡æ¨™è³¦å€¼"
+
+#: fortran/resolve.c:4765
+#, no-c-format
+msgid "CHARACTER(*) function '%s' at %L cannot be pure"
+msgstr "CHARACTER(*) 函å¼ã€Œ%sã€(ä½æ–¼ %L)ä¸èƒ½æ˜¯ç´”é‡"
+
+#: fortran/resolve.c:4769
+#, no-c-format
+msgid "CHARACTER(*) function '%s' at %L cannot be recursive"
+msgstr ""
+
+#: fortran/resolve.c:4778
+#, no-c-format
+msgid "CHARACTER(*) function '%s' at %L is obsolescent in fortran 95"
+msgstr ""
+
+#: fortran/resolve.c:4803
+#, no-c-format
+msgid "Character length of component '%s' needs to be a constant specification expression at %L."
+msgstr ""
+
+#: fortran/resolve.c:4818
+#, no-c-format
+msgid "The component '%s' is a PRIVATE type and cannot be a component of '%s', which is PUBLIC at %L"
+msgstr ""
+
+#: fortran/resolve.c:4836
+#, no-c-format
+msgid "Component '%s' of '%s' at %L must have constant array bounds."
+msgstr ""
+
+#: fortran/resolve.c:4860
+#, no-c-format
+msgid "Parameter array '%s' at %L cannot be automatic or assumed shape"
+msgstr ""
+
+#: fortran/resolve.c:4872
+#, no-c-format
+msgid "Implicitly typed PARAMETER '%s' at %L doesn't match a later IMPLICIT type"
+msgstr ""
+
+#: fortran/resolve.c:4883
+#, no-c-format
+msgid "Incompatible derived type in PARAMETER at %L"
+msgstr ""
+
+#: fortran/resolve.c:4985
+#, no-c-format
+msgid "Assumed size array at %L must be a dummy argument"
+msgstr "å‡å®šå¤§å°çš„陣列在 %L 處必須是啞引數"
+
+#: fortran/resolve.c:4988
+#, no-c-format
+msgid "Assumed shape array at %L must be a dummy argument"
+msgstr "å‡å®šå¤–形的陣列在 %L 處必須是啞引數"
+
+#: fortran/resolve.c:5001
+#, no-c-format
+msgid "Symbol at %L is not a DUMMY variable"
+msgstr "%L 處的符號ä¸æ˜¯ä¸€å€‹ DUMMY 變數"
+
+#: fortran/resolve.c:5016
+#, no-c-format
+msgid "The derived type '%s' at %L is of type '%s', which has not been defined."
+msgstr ""
+
+#: fortran/resolve.c:5035
+#, no-c-format
+msgid "The INTENT(OUT) dummy argument '%s' at %L is ASSUMED SIZE and so cannot have a default initializer"
+msgstr ""
+
+#: fortran/resolve.c:5067
+#, no-c-format
+msgid "PRIVATE symbol '%s' cannot be member of PUBLIC namelist at %L"
+msgstr ""
+
+#: fortran/resolve.c:5091
+#, no-c-format
+msgid "Intrinsic at %L does not exist"
+msgstr "%L 處的內建函å¼ä¸å­˜åœ¨"
+
+#: fortran/resolve.c:5166
+#, no-c-format
+msgid "BLOCK DATA element '%s' at %L must be in COMMON"
+msgstr ""
+
+#: fortran/resolve.c:5210
+#, no-c-format
+msgid "Nonconstant array section at %L in DATA statement"
+msgstr ""
+
+#: fortran/resolve.c:5223
+#, no-c-format
+msgid "DATA statement at %L has more variables than values"
+msgstr ""
+
+#: fortran/resolve.c:5421
+#, no-c-format
+msgid "DATA statement at %L has more values than variables"
+msgstr ""
+
+#: fortran/resolve.c:5503
+#, no-c-format
+msgid "Label %d at %L defined but not used"
+msgstr "標籤 %d 於 %L 經定義但未被使用"
+
+#: fortran/resolve.c:5508
+#, no-c-format
+msgid "Label %d at %L defined but cannot be used"
+msgstr "標籤 %d 於 %L 經定義但無法被使用"
+
+#: fortran/resolve.c:5592
+#, no-c-format
+msgid "Derived type variable '%s' at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
+msgstr ""
+
+#: fortran/resolve.c:5607
+#, no-c-format
+msgid "Derived type variable '%s' at %L with pointer component(s) cannot be an EQUIVALENCE object"
+msgstr ""
+
+#: fortran/resolve.c:5614
+#, no-c-format
+msgid "Derived type variable '%s' at %L with default initializer cannot be an EQUIVALENCE object"
+msgstr ""
+
+#: fortran/resolve.c:5715
+#, no-c-format
+msgid "Syntax error in EQUIVALENCE statement at %L"
+msgstr "%L 處 EQUIVALENCE 敘述語法錯誤"
+
+#: fortran/resolve.c:5732
+#, no-c-format
+msgid "Initialized objects '%s' and '%s' cannot both be in the EQUIVALENCE statement at %L"
+msgstr ""
+
+#: fortran/resolve.c:5746
+#, no-c-format
+msgid "Common block member '%s' at %L cannot be an EQUIVALENCE object in the pure procedure '%s'"
+msgstr ""
+
+#: fortran/resolve.c:5755
+#, no-c-format
+msgid "Named constant '%s' at %L cannot be an EQUIVALENCE object"
+msgstr ""
+
+#: fortran/resolve.c:5834
+#, no-c-format
+msgid "Array '%s' at %L with non-constant bounds cannot be an EQUIVALENCE object"
+msgstr ""
+
+#: fortran/resolve.c:5845
+#, no-c-format
+msgid "Structure component '%s' at %L cannot be an EQUIVALENCE object"
+msgstr ""
+
+#: fortran/resolve.c:5856
+#, no-c-format
+msgid "Substring at %L has length zero"
+msgstr "%L çš„å­å­—串長度為零"
+
+#: fortran/resolve.c:5899
+#, no-c-format
+msgid "PUBLIC function '%s' at %L cannot be of PRIVATE type '%s'"
+msgstr "PUBLIC 函å¼ã€Œ%sã€åœ¨ %L 處ä¸èƒ½æ˜¯ PRIVATE 類型「%sã€"
+
+#: fortran/resolve.c:5911
+#, no-c-format
+msgid "ENTRY '%s' at %L has no IMPLICIT type"
+msgstr "ENTRY「%sã€åœ¨ %L 處沒有 IMPLICIT é¡žåž‹"
+
+#: fortran/resolve.c:5947
+#, no-c-format
+msgid "Contained procedure '%s' at %L of a PURE procedure must also be PURE"
+msgstr ""
+
+#: fortran/scanner.c:967
+#, no-c-format
+msgid "%s:%d: file %s left but not entered"
+msgstr "%s:%d: 檔案 %s 被留下但未進入"
+
+#: fortran/scanner.c:994
+#, no-c-format
+msgid "%s:%d: Illegal preprocessor directive"
+msgstr "%s:%d:無效的é åŒ…å«æŒ‡ç¤º"
+
+#: fortran/scanner.c:1069
+#, no-c-format
+msgid "File '%s' is being included recursively"
+msgstr "檔案「%sã€è¢«éžè¿´åœ°åŒ…å«"
+
+#: fortran/scanner.c:1084
+#, no-c-format
+msgid "Can't open file '%s'"
+msgstr "無法開啟檔案「%sã€"
+
+#: fortran/scanner.c:1093
+#, no-c-format
+msgid "Can't open included file '%s'"
+msgstr "無法開啟包å«æª”案「%sã€"
+
+#: fortran/scanner.c:1195
+#, c-format
+msgid "%s:%3d %s\n"
+msgstr "%s:%3d %s\n"
+
+#: fortran/simplify.c:101
+#, no-c-format
+msgid "Result of %s overflows its kind at %L"
+msgstr "%s çš„çµæžœåœ¨ %L 處å‘上溢ä½å…¶ç¨®åˆ¥"
+
+#: fortran/simplify.c:120
+#, no-c-format
+msgid "KIND parameter of %s at %L must be an initialization expression"
+msgstr "KIND åƒæ•¸ %s 在 %L 處必須是åˆå§‹åŒ–é‹ç®—å¼"
+
+#: fortran/simplify.c:130
+#, no-c-format
+msgid "Invalid KIND parameter of %s at %L"
+msgstr "%s ä½æ–¼ %L çš„ KIND åƒæ•¸ç„¡æ•ˆ"
+
+#: fortran/simplify.c:227
+#, no-c-format
+msgid "Extended ASCII not implemented: argument of ACHAR at %L must be between 0 and 127"
+msgstr ""
+
+#: fortran/simplify.c:254
+#, no-c-format
+msgid "Argument of ACOS at %L must be between -1 and 1"
+msgstr "%L 處 ACOS çš„åƒæ•¸å¿…須在 -1 å’Œ 1 之間"
+
+#: fortran/simplify.c:276
+#, no-c-format
+msgid "Argument of ACOSH at %L must not be less than 1"
+msgstr "%L 處 ACOSH çš„åƒæ•¸å¿…é ˆä¸å°æ–¼ 1"
+
+#: fortran/simplify.c:503
+#, no-c-format
+msgid "Argument of ASIN at %L must be between -1 and 1"
+msgstr "%L 處 ASIN çš„åƒæ•¸å¿…須在 -1 å’Œ 1 之間"
+
+#: fortran/simplify.c:559
+#, no-c-format
+msgid "Argument of ATANH at %L must be inside the range -1 to 1"
+msgstr "%L 處 ATANH çš„åƒæ•¸å¿…須在 -1 å’Œ 1 之間"
+
+#: fortran/simplify.c:585
+#, no-c-format
+msgid "If first argument of ATAN2 %L is zero, then the second argument must not be zero"
+msgstr "如果 ATAN2 %L 的第一個åƒæ•¸ç‚º 0,第二個åƒæ•¸å¿…é ˆä¸ç‚º 0"
+
+#: fortran/simplify.c:667
+#, no-c-format
+msgid "Bad character in CHAR function at %L"
+msgstr ""
+
+#: fortran/simplify.c:1195
+#, no-c-format
+msgid "Argument of IACHAR at %L must be of length one"
+msgstr "%L 處 IACHAR çš„åƒæ•¸é•·åº¦å¿…須為 1"
+
+#: fortran/simplify.c:1235
+#, no-c-format
+msgid "Invalid second argument of IBCLR at %L"
+msgstr "%L 處 IBCLR 的第二個åƒæ•¸ç„¡æ•ˆ"
+
+#: fortran/simplify.c:1243
+#, no-c-format
+msgid "Second argument of IBCLR exceeds bit size at %L"
+msgstr ""
+
+#: fortran/simplify.c:1270
+#, no-c-format
+msgid "Invalid second argument of IBITS at %L"
+msgstr "%L 處 IBITS 的第二個åƒæ•¸ç„¡æ•ˆ"
+
+#: fortran/simplify.c:1276
+#, no-c-format
+msgid "Invalid third argument of IBITS at %L"
+msgstr "%L 處 IBITS 的第三個åƒæ•¸ç„¡æ•ˆ"
+
+#: fortran/simplify.c:1287
+#, no-c-format
+msgid "Sum of second and third arguments of IBITS exceeds bit size at %L"
+msgstr ""
+
+#: fortran/simplify.c:1335
+#, no-c-format
+msgid "Invalid second argument of IBSET at %L"
+msgstr "%L 處 IBSET 的第二個åƒæ•¸ç„¡æ•ˆ"
+
+#: fortran/simplify.c:1343
+#, no-c-format
+msgid "Second argument of IBSET exceeds bit size at %L"
+msgstr ""
+
+#: fortran/simplify.c:1369
+#, no-c-format
+msgid "Argument of ICHAR at %L must be of length one"
+msgstr "%L 處 ICHAR çš„åƒæ•¸é•·åº¦å¿…須為 1"
+
+#: fortran/simplify.c:1377
+#, no-c-format
+msgid "Argument of ICHAR at %L out of range of this processor"
+msgstr ""
+
+#: fortran/simplify.c:1585
+#, no-c-format
+msgid "Argument of INT at %L is not a valid type"
+msgstr "%L 處 INT 的引數類型無效"
+
+#: fortran/simplify.c:1662
+#, no-c-format
+msgid "Invalid second argument of ISHFT at %L"
+msgstr "%L 處 ISHFT 的第二個åƒæ•¸ç„¡æ•ˆ"
+
+#: fortran/simplify.c:1678
+#, no-c-format
+msgid "Magnitude of second argument of ISHFT exceeds bit size at %L"
+msgstr ""
+
+#: fortran/simplify.c:1742
+#, no-c-format
+msgid "Invalid second argument of ISHFTC at %L"
+msgstr "%L 處 ISHFTC 的第二個åƒæ•¸ç„¡æ•ˆ"
+
+#: fortran/simplify.c:1752
+#, no-c-format
+msgid "Invalid third argument of ISHFTC at %L"
+msgstr "%L 處 ISHFTC 的第三個åƒæ•¸ç„¡æ•ˆ"
+
+#: fortran/simplify.c:1767
+#, no-c-format
+msgid "Magnitude of second argument of ISHFTC exceeds third argument at %L"
+msgstr ""
+
+#: fortran/simplify.c:1837
+#, no-c-format
+msgid "Argument of KIND at %L is a DERIVED type"
+msgstr "%L 處 KIND 的引數具有 DERIVED 類型"
+
+#: fortran/simplify.c:1908
+#, no-c-format
+msgid "DIM argument at %L is out of bounds"
+msgstr "%L 處的 DIM åƒæ•¸è¶Šç•Œ"
+
+#: fortran/simplify.c:2038
+#, no-c-format
+msgid "Argument of LOG at %L cannot be less than or equal to zero"
+msgstr ""
+
+#: fortran/simplify.c:2051
+#, no-c-format
+msgid "Complex argument of LOG at %L cannot be zero"
+msgstr ""
+
+#: fortran/simplify.c:2095
+#, no-c-format
+msgid "Argument of LOG10 at %L cannot be less than or equal to zero"
+msgstr ""
+
+#. Result is processor-dependent.
+#: fortran/simplify.c:2272
+#, no-c-format
+msgid "Second argument MOD at %L is zero"
+msgstr "%L 處 MOD 的第二個åƒæ•¸ç‚º 0"
+
+#. Result is processor-dependent.
+#: fortran/simplify.c:2283
+#, no-c-format
+msgid "Second argument of MOD at %L is zero"
+msgstr "%L 處 MOD 的第二個åƒæ•¸ç‚º 0"
+
+#. Result is processor-dependent. This processor just opts
+#. to not handle it at all.
+#. Result is processor-dependent.
+#: fortran/simplify.c:2331 fortran/simplify.c:2343
+#, no-c-format
+msgid "Second argument of MODULO at %L is zero"
+msgstr "%L 處 MODULO 的第二個åƒæ•¸ç‚º 0"
+
+#: fortran/simplify.c:2400
+#, no-c-format
+msgid "Second argument of NEAREST at %L may not be zero"
+msgstr "%L 處 NEAREST 的第二個åƒæ•¸ä¸èƒ½ç‚º 0"
+
+#: fortran/simplify.c:2708
+#, no-c-format
+msgid "Invalid second argument of REPEAT at %L"
+msgstr "%L 處 REPEAT 的第二個åƒæ•¸ç„¡æ•ˆ"
+
+#: fortran/simplify.c:2782
+#, no-c-format
+msgid "Integer too large in shape specification at %L"
+msgstr "%L 處外形指定中整數太大"
+
+#: fortran/simplify.c:2792
+#, no-c-format
+msgid "Too many dimensions in shape specification for RESHAPE at %L"
+msgstr "%L 為 RESHAPE 指定的維數太多"
+
+#: fortran/simplify.c:2800
+#, no-c-format
+msgid "Shape specification at %L cannot be negative"
+msgstr "%L 處外形指定ä¸èƒ½ç‚ºè² æ•¸"
+
+#: fortran/simplify.c:2810
+#, no-c-format
+msgid "Shape specification at %L cannot be the null array"
+msgstr ""
+
+#: fortran/simplify.c:2834
+#, no-c-format
+msgid "ORDER parameter of RESHAPE at %L is not the same size as SHAPE parameter"
+msgstr ""
+
+#: fortran/simplify.c:2841
+#, no-c-format
+msgid "Error in ORDER parameter of RESHAPE at %L"
+msgstr ""
+
+#: fortran/simplify.c:2851
+#, no-c-format
+msgid "ORDER parameter of RESHAPE at %L is out of range"
+msgstr ""
+
+#: fortran/simplify.c:2860
+#, no-c-format
+msgid "Invalid permutation in ORDER parameter at %L"
+msgstr ""
+
+#: fortran/simplify.c:2917
+#, no-c-format
+msgid "PAD parameter required for short SOURCE parameter at %L"
+msgstr ""
+
+#: fortran/simplify.c:3051
+#, no-c-format
+msgid "Result of SCALE overflows its kind at %L"
+msgstr "%L 處 SCALE çš„çµæžœå‘上溢ä½å…¶ç¨®åˆ¥"
+
+#: fortran/simplify.c:3632
+#, no-c-format
+msgid "Argument of SQRT at %L has a negative value"
+msgstr "%L 處 SQRT çš„åƒæ•¸ç‚ºè² "
+
+#: fortran/symbol.c:111
+#, no-c-format
+msgid "Duplicate IMPLICIT NONE statement at %C"
+msgstr "%C 處 IMPLICIT NONE 敘述é‡è¤‡"
+
+#: fortran/symbol.c:151
+#, no-c-format
+msgid "Letter '%c' already set in IMPLICIT statement at %C"
+msgstr ""
+
+#: fortran/symbol.c:173
+#, no-c-format
+msgid "Cannot specify IMPLICIT at %C after IMPLICIT NONE"
+msgstr ""
+
+#: fortran/symbol.c:184
+#, no-c-format
+msgid "Letter %c already has an IMPLICIT type at %C"
+msgstr "å­—æ¯ %c 在 %C 處已經有了一個 IMPLICIT é¡žåž‹"
+
+#: fortran/symbol.c:232
+#, no-c-format
+msgid "Symbol '%s' at %L has no IMPLICIT type"
+msgstr "符號「%sã€(ä½æ–¼ %L)沒有 IMPLICIT é¡žåž‹"
+
+#: fortran/symbol.c:304
+#, no-c-format
+msgid "%s attribute not allowed in BLOCK DATA program unit at %L"
+msgstr "%s 屬性在 %L 處ä¸å…許出ç¾åœ¨ BLOCAK DATA 程å¼å–®å…ƒä¸­"
+
+#: fortran/symbol.c:506 fortran/symbol.c:997
+#, no-c-format
+msgid "%s attribute conflicts with %s attribute at %L"
+msgstr "%s 屬性與 %s 屬性在 %L 處è¡çª"
+
+#: fortran/symbol.c:509
+#, no-c-format
+msgid "%s attribute conflicts with %s attribute in '%s' at %L"
+msgstr "%s 屬性與 %s 屬性è¡çªï¼Œåœ¨ã€Œ%sã€ä¸­ï¼Œä½æ–¼ %L"
+
+#: fortran/symbol.c:551
+#, no-c-format
+msgid "Cannot change attributes of USE-associated symbol at %L"
+msgstr ""
+
+#: fortran/symbol.c:554
+#, no-c-format
+msgid "Cannot change attributes of USE-associated symbol %s at %L"
+msgstr ""
+
+#: fortran/symbol.c:576
+#, no-c-format
+msgid "Cannot change attributes of symbol at %L after it has been used"
+msgstr ""
+
+#: fortran/symbol.c:592
+#, no-c-format
+msgid "Duplicate %s attribute specified at %L"
+msgstr "é‡è¤‡çš„ %s 屬性在 %L 處被指定"
+
+#: fortran/symbol.c:733
+#, no-c-format
+msgid "Cray Pointee at %L appears in multiple pointer() statements."
+msgstr ""
+
+#: fortran/symbol.c:765
+#, no-c-format
+msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
+msgstr "%L 處 PURE 程åºä¸èƒ½æŒ‡å®š SAVE 屬性"
+
+#: fortran/symbol.c:773
+#, no-c-format
+msgid "Duplicate SAVE attribute specified at %L"
+msgstr "%L 指定了é‡è¤‡çš„ SAVE 屬性"
+
+#: fortran/symbol.c:1027
+#, no-c-format
+msgid "%s procedure at %L is already declared as %s procedure"
+msgstr ""
+
+#: fortran/symbol.c:1062
+#, no-c-format
+msgid "INTENT (%s) conflicts with INTENT(%s) at %L"
+msgstr "INTENT (%s) 與 INTENT(%s) 在 %L è¡çª"
+
+#: fortran/symbol.c:1085
+#, no-c-format
+msgid "ACCESS specification at %L was already specified"
+msgstr ""
+
+#: fortran/symbol.c:1105
+#, no-c-format
+msgid "Symbol '%s' at %L already has an explicit interface"
+msgstr "符號「%sã€åœ¨ %L 處已經有了明確介é¢"
+
+#: fortran/symbol.c:1133
+#, no-c-format
+msgid "Symbol '%s' at %L already has basic type of %s"
+msgstr "符號「%sã€åœ¨ %L 處已經有了基本類型 %s"
+
+#: fortran/symbol.c:1145
+#, no-c-format
+msgid "Symbol '%s' at %L cannot have a type"
+msgstr "符號「%sã€æ–¼ %L 處ä¸èƒ½æœ‰é¡žåž‹"
+
+#: fortran/symbol.c:1283
+#, no-c-format
+msgid "Component '%s' at %C already declared at %L"
+msgstr "元件「%sã€åœ¨ %C 處已經於 %L 處被宣告"
+
+#: fortran/symbol.c:1361
+#, no-c-format
+msgid "Symbol '%s' at %C is ambiguous"
+msgstr "符號「%sã€åœ¨ %C 處有歧義"
+
+#: fortran/symbol.c:1393
+#, no-c-format
+msgid "Derived type '%s' at %C is being used before it is defined"
+msgstr ""
+
+#: fortran/symbol.c:1421
+#, no-c-format
+msgid "'%s' at %C is not a member of the '%s' structure"
+msgstr "「%sã€åœ¨ %C 處ä¸æ˜¯ã€Œ%sã€çµæ§‹çš„æˆå“¡"
+
+#: fortran/symbol.c:1427
+#, no-c-format
+msgid "Component '%s' at %C is a PRIVATE component of '%s'"
+msgstr "元件「%sã€åœ¨ %C 處是「%sã€çš„ PRIVATE 元件"
+
+#: fortran/symbol.c:1571
+#, no-c-format
+msgid "Duplicate statement label %d at %L and %L"
+msgstr "é‡è¤‡çš„敘述標籤 %d 出ç¾åœ¨ %L å’Œ %L 處"
+
+#: fortran/symbol.c:1581
+#, no-c-format
+msgid "Label %d at %C already referenced as branch target"
+msgstr ""
+
+#: fortran/symbol.c:1590
+#, no-c-format
+msgid "Label %d at %C already referenced as a format label"
+msgstr ""
+
+#: fortran/symbol.c:1632
+#, no-c-format
+msgid "Label %d at %C previously used as a FORMAT label"
+msgstr ""
+
+#: fortran/symbol.c:1640
+#, no-c-format
+msgid "Label %d at %C previously used as branch target"
+msgstr ""
+
+#: fortran/symbol.c:1893
+#, no-c-format
+msgid "Name '%s' at %C is an ambiguous reference to '%s' from module '%s'"
+msgstr ""
+
+#: fortran/symbol.c:1896
+#, no-c-format
+msgid "Name '%s' at %C is an ambiguous reference to '%s' from current program unit"
+msgstr ""
+
+#. Symbol is from another namespace.
+#: fortran/symbol.c:2033
+#, no-c-format
+msgid "Symbol '%s' at %C has already been host associated"
+msgstr ""
+
+#: fortran/trans-common.c:331
+#, no-c-format
+msgid "Named COMMON block '%s' at %L shall be of the same size"
+msgstr ""
+
+#: fortran/trans-common.c:629
+#, no-c-format
+msgid "Bad array reference at %L"
+msgstr "%L 處陣列åƒç…§éŒ¯èª¤"
+
+#: fortran/trans-common.c:637
+#, no-c-format
+msgid "Illegal reference type at %L as EQUIVALENCE object"
+msgstr ""
+
+#: fortran/trans-common.c:677
+#, no-c-format
+msgid "Inconsistent equivalence rules involving '%s' at %L and '%s' at %L"
+msgstr ""
+
+#. Aligning this field would misalign a previous field.
+#: fortran/trans-common.c:799
+#, no-c-format
+msgid "The equivalence set for variable '%s' declared at %L violates alignment requirents"
+msgstr ""
+
+#: fortran/trans-common.c:864
+#, no-c-format
+msgid "Equivalence for '%s' does not match ordering of COMMON '%s' at %L"
+msgstr ""
+
+#: fortran/trans-common.c:879
+#, no-c-format
+msgid "The equivalence set for '%s' cause an invalid extension to COMMON '%s' at %L"
+msgstr ""
+
+#. The required offset conflicts with previous alignment
+#. requirements. Insert padding immediately before this
+#. segment.
+#: fortran/trans-common.c:890
+#, no-c-format
+msgid "Padding of %d bytes required before '%s' in COMMON '%s' at %L"
+msgstr ""
+
+#: fortran/trans-common.c:916
+#, no-c-format
+msgid "COMMON '%s' at %L requires %d bytes of padding at start"
+msgstr ""
+
+#: fortran/trans-const.c:158
+msgid "Array bound mismatch"
+msgstr "陣列邊界ä¸åŒ¹é…"
+
+#: fortran/trans-const.c:161
+msgid "Array reference out of bounds"
+msgstr "å°é™£åˆ—çš„åƒç…§è¶…出範åœ"
+
+#: fortran/trans-const.c:164
+msgid "Incorrect function return value"
+msgstr "ä¸æ­£ç¢ºçš„函å¼å›žå‚³å€¼"
+
+#: fortran/trans-decl.c:438
+#, no-c-format
+msgid "storage size not known"
+msgstr "存儲大å°ä¸æ˜Ž"
+
+#: fortran/trans-decl.c:445
+#, no-c-format
+msgid "storage size not constant"
+msgstr "存儲大å°ä¸æ˜¯å¸¸æ•¸"
+
+#: fortran/trans-io.c:533
+msgid "Assigned label is not a format label"
+msgstr "賦值標籤ä¸æ˜¯æ ¼å¼æ¨™ç±¤"
+
+#: fortran/trans-io.c:974
+#, no-c-format
+msgid "INQUIRE statement at %L cannot contain both FILE and UNIT specifiers."
+msgstr ""
+
+#: fortran/trans-stmt.c:163
+msgid "Assigned label is not a target label"
+msgstr "賦值標籤ä¸æ˜¯ç›®çš„標籤"
+
+#. Check the label list.
+#: fortran/trans-stmt.c:179
+msgid "Assigned label is not in the list"
+msgstr ""
+
+#: fortran/trans-stmt.c:319
+#, no-c-format
+msgid "An alternate return at %L without a * dummy argument"
+msgstr "%L ä¸å¸¶ * 啞引數的替代回傳"
+
+#. FIXME: i18n bug here. Order of prints should not be
+#. fixed.
+#: java/gjavah.c:916
+#, c-format
+msgid "ignored method '"
+msgstr "被忽略的方法「"
+
+#: java/gjavah.c:918
+#, c-format
+msgid "' marked virtual\n"
+msgstr "ã€æ¨™è¨˜ç‚ºè™›å‡½å¼\n"
+
+#: java/gjavah.c:2356
+#, c-format
+msgid "Try '"
+msgstr "試試「"
+
+#: java/gjavah.c:2356
+#, c-format
+msgid " --help' for more information.\n"
+msgstr " --helpã€ä»¥å¾—到更多資訊。\n"
+
+#: java/gjavah.c:2363
+#, c-format
+msgid "Usage: "
+msgstr "用法:"
+
+#: java/gjavah.c:2363
+#, c-format
+msgid ""
+" [OPTION]... CLASS...\n"
+"\n"
+msgstr ""
+" [é¸é …]... 類別...\n"
+"\n"
+
+#: java/gjavah.c:2364
+#, c-format
+msgid ""
+"Generate C or C++ header files from .class files\n"
+"\n"
+msgstr ""
+"由 .class 檔案產生 C 或 C++ 標頭檔案\n"
+"\n"
+
+#: java/gjavah.c:2365
+#, c-format
+msgid " -stubs Generate an implementation stub file\n"
+msgstr " -stubs 產生一個åˆæ³•çš„空實作(å ä½æª”案)\n"
+
+#: java/gjavah.c:2366
+#, c-format
+msgid " -jni Generate a JNI header or stub\n"
+msgstr " -jni 產生一個 JNI 頭或å ä½æª”案\n"
+
+#: java/gjavah.c:2367
+#, c-format
+msgid " -force Always overwrite output files\n"
+msgstr " -force 總是覆寫輸出檔案\n"
+
+#: java/gjavah.c:2368
+#, c-format
+msgid " -old Unused compatibility option\n"
+msgstr " -old 未使用的相容é¸é …\n"
+
+#: java/gjavah.c:2369
+#, c-format
+msgid " -trace Unused compatibility option\n"
+msgstr " -trace 未使用的相容é¸é …\n"
+
+#: java/gjavah.c:2370
+#, c-format
+msgid " -J OPTION Unused compatibility option\n"
+msgstr " -J é¸é … 未使用的相容é¸é …\n"
+
+#: java/gjavah.c:2372
+#, c-format
+msgid " -add TEXT Insert TEXT into class body\n"
+msgstr " -add 文字 將文字加入到類別體內\n"
+
+#: java/gjavah.c:2373
+#, c-format
+msgid " -append TEXT Insert TEXT after class declaration\n"
+msgstr " -append 文字 在類別宣告後æ’入文字\n"
+
+#: java/gjavah.c:2374
+#, c-format
+msgid " -friend TEXT Insert TEXT as 'friend' declaration\n"
+msgstr " -friend 文字 將文字åšç‚ºã€Œfriendã€å®£å‘Šæ’å…¥\n"
+
+#: java/gjavah.c:2375
+#, c-format
+msgid " -prepend TEXT Insert TEXT before start of class\n"
+msgstr " -prepend 文字 在類別å‰æ’入文字\n"
+
+#: java/gjavah.c:2377 java/jcf-dump.c:912
+#, c-format
+msgid " --classpath PATH Set path to find .class files\n"
+msgstr " --classpath 路徑 設定尋找 .class 檔案的路徑\n"
+
+#: java/gjavah.c:2378 java/jcf-dump.c:913
+#, c-format
+msgid " -IDIR Append directory to class path\n"
+msgstr " -I目錄 將目錄加入到類別路徑\n"
+
+#: java/gjavah.c:2379 java/jcf-dump.c:914
+#, c-format
+msgid " --bootclasspath PATH Override built-in class path\n"
+msgstr " --bootclasspath PATH 覆寫內建的類別路徑\n"
+
+#: java/gjavah.c:2380 java/jcf-dump.c:915
+#, c-format
+msgid " --extdirs PATH Set extensions directory path\n"
+msgstr " --extdirs 路徑 設定擴充目錄\n"
+
+#: java/gjavah.c:2381
+#, c-format
+msgid " -d DIRECTORY Set output directory name\n"
+msgstr " -d 目錄 設定輸出目錄å\n"
+
+#: java/gjavah.c:2382 java/jcf-dump.c:916 java/jv-scan.c:115
+#, c-format
+msgid " -o FILE Set output file name\n"
+msgstr " -o 檔案 設定輸出檔案å稱\n"
+
+#: java/gjavah.c:2383
+#, c-format
+msgid " -td DIRECTORY Set temporary directory name\n"
+msgstr " -td 目錄 設定暫時檔案目錄\n"
+
+#: java/gjavah.c:2385 java/jcf-dump.c:918 java/jv-scan.c:117
+#, c-format
+msgid " --help Print this help, then exit\n"
+msgstr " --help 列å°æ­¤è¼”助並離開\n"
+
+#: java/gjavah.c:2386 java/jcf-dump.c:919 java/jv-scan.c:118
+#, c-format
+msgid " --version Print version number, then exit\n"
+msgstr " --version 列å°ç‰ˆæœ¬è™Ÿä¸¦é›¢é–‹\n"
+
+#: java/gjavah.c:2387 java/jcf-dump.c:920
+#, c-format
+msgid " -v, --verbose Print extra information while running\n"
+msgstr " -v, --verbose 執行時列å°é™„加資訊\n"
+
+#: java/gjavah.c:2389
+#, c-format
+msgid ""
+" -M Print all dependencies to stdout;\n"
+" suppress ordinary output\n"
+msgstr ""
+" -M 將所有ä¾è³´é …列å°è‡³æ¨™æº–輸出;\n"
+" å–消一般的輸出\n"
+
+#: java/gjavah.c:2391
+#, c-format
+msgid ""
+" -MM Print non-system dependencies to stdout;\n"
+" suppress ordinary output\n"
+msgstr ""
+" -MM å°‡éžç³»çµ±ä¾è³´é …列å°è‡³æ¨™æº–輸出;\n"
+" å–消一般的輸出\n"
+
+#: java/gjavah.c:2393
+#, c-format
+msgid " -MD Print all dependencies to stdout\n"
+msgstr " -MD 將所有ä¾è³´é …列å°è‡³æ¨™æº–輸出\n"
+
+#: java/gjavah.c:2394
+#, c-format
+msgid " -MMD Print non-system dependencies to stdout\n"
+msgstr " -MMD å°‡éžç³»çµ±ä¾è³´é …列å°è‡³æ¨™æº–輸出\n"
+
+#: java/gjavah.c:2397 java/jcf-dump.c:922 java/jv-scan.c:120
+#, c-format
+msgid ""
+"For bug reporting instructions, please see:\n"
+"%s.\n"
+msgstr ""
+"報告程å¼ç¼ºé™·çš„步驟請åƒè¦‹ï¼š\n"
+"%s。\n"
+
+#: java/gjavah.c:2581
+#, c-format
+msgid "Processing %s\n"
+msgstr "æ­£åœ¨è™•ç† %s\n"
+
+#: java/gjavah.c:2591
+#, c-format
+msgid "Found in %s\n"
+msgstr "在 %s 中找到\n"
+
+#: java/jcf-dump.c:829
+#, c-format
+msgid "Not a valid Java .class file.\n"
+msgstr "ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„ Java .class 檔案。\n"
+
+#: java/jcf-dump.c:835
+#, c-format
+msgid "error while parsing constant pool\n"
+msgstr "解æžå¸¸æ•¸æ± æ™‚發生錯誤\n"
+
+#: java/jcf-dump.c:841 java/jcf-parse.c:759
+#, gcc-internal-format
+msgid "error in constant pool entry #%d\n"
+msgstr "常數池æ¢ç›® #%d 發生錯誤\n"
+
+#: java/jcf-dump.c:851
+#, c-format
+msgid "error while parsing fields\n"
+msgstr "解æžæ¬„ä½æ™‚發生錯誤\n"
+
+#: java/jcf-dump.c:857
+#, c-format
+msgid "error while parsing methods\n"
+msgstr "解æžæ–¹æ³•æ™‚發生錯誤\n"
+
+#: java/jcf-dump.c:863
+#, c-format
+msgid "error while parsing final attributes\n"
+msgstr "è§£æž final 屬性時發生錯誤\n"
+
+#: java/jcf-dump.c:900
+#, c-format
+msgid "Try 'jcf-dump --help' for more information.\n"
+msgstr "試用「jcf-dump --helpã€ä»¥ç²å–更多資訊。\n"
+
+#: java/jcf-dump.c:907
+#, c-format
+msgid ""
+"Usage: jcf-dump [OPTION]... CLASS...\n"
+"\n"
+msgstr ""
+"用法:jcf-dump [é¸é …]... 類別...\n"
+"\n"
+
+#: java/jcf-dump.c:908
+#, c-format
+msgid ""
+"Display contents of a class file in readable form.\n"
+"\n"
+msgstr ""
+
+#: java/jcf-dump.c:909
+#, c-format
+msgid " -c Disassemble method bodies\n"
+msgstr " -c å組譯方法體\n"
+
+#: java/jcf-dump.c:910
+#, c-format
+msgid " --javap Generate output in 'javap' format\n"
+msgstr " --javap 產生「javapã€æ ¼å¼çš„輸出\n"
+
+#: java/jcf-dump.c:950 java/jcf-dump.c:1018
+#, c-format
+msgid "jcf-dump: no classes specified\n"
+msgstr "jcf-dump:未指定類別\n"
+
+#: java/jcf-dump.c:1038
+#, c-format
+msgid "Cannot open '%s' for output.\n"
+msgstr "ä¸èƒ½ç‚ºè¼¸å‡ºé–‹å•Ÿã€Œ%sã€ã€‚\n"
+
+#: java/jcf-dump.c:1084
+#, c-format
+msgid "bad format of .zip/.jar archive\n"
+msgstr ".zip/.jar 檔案格å¼éŒ¯èª¤\n"
+
+#: java/jcf-dump.c:1202
+#, c-format
+msgid "Bad byte codes.\n"
+msgstr "錯誤的ä½å…ƒçµ„碼。\n"
+
+#: java/jv-scan.c:100
+#, c-format
+msgid "Try 'jv-scan --help' for more information.\n"
+msgstr "試用「jv-scan --helpã€ä»¥ç²å–更多資訊。\n"
+
+#: java/jv-scan.c:107
+#, c-format
+msgid ""
+"Usage: jv-scan [OPTION]... FILE...\n"
+"\n"
+msgstr ""
+"用法:jv-scan [é¸é …]... 檔案...\n"
+"\n"
+
+#: java/jv-scan.c:108
+#, c-format
+msgid ""
+"Print useful information read from Java source files.\n"
+"\n"
+msgstr ""
+
+#: java/jv-scan.c:109
+#, c-format
+msgid " --no-assert Don't recognize the assert keyword\n"
+msgstr " --no-assert ä¸è­˜åˆ¥ assert é—œéµå­—\n"
+
+#: java/jv-scan.c:110
+#, c-format
+msgid " --complexity Print cyclomatic complexity of input file\n"
+msgstr " --complexity 列å°è¼¸å…¥æª”案的圈複雜度\n"
+
+#: java/jv-scan.c:111
+#, c-format
+msgid " --encoding NAME Specify encoding of input file\n"
+msgstr " --encoding 編碼 指定輸入檔案的編碼\n"
+
+#: java/jv-scan.c:112
+#, c-format
+msgid " --print-main Print name of class containing 'main'\n"
+msgstr " --print-main 列å°åŒ…å«ã€Œmainã€çš„類別的å稱\n"
+
+#: java/jv-scan.c:113
+#, c-format
+msgid " --list-class List all classes defined in file\n"
+msgstr " --list-class 列出檔案中定義的所有類別\n"
+
+#: java/jv-scan.c:114
+#, c-format
+msgid " --list-filename Print input filename when listing class names\n"
+msgstr " --list-filename 列出類別å時也列å°è¼¸å…¥æª”案å稱\n"
+
+#: java/jv-scan.c:257
+#, c-format
+msgid "%s: error: "
+msgstr "%s:錯誤:"
+
+#: java/jv-scan.c:269 java/jv-scan.c:280
+#, c-format
+msgid "%s: warning: "
+msgstr "%s:警告:"
+
+#: java/jvgenmain.c:48
+#, c-format
+msgid "Usage: %s [OPTIONS]... CLASSNAMEmain [OUTFILE]\n"
+msgstr "用法:%s [é¸é …]... main類別å [輸出檔案]\n"
+
+#: java/jvgenmain.c:101
+#, c-format
+msgid "%s: Cannot open output file: %s\n"
+msgstr "%s:無法開啟輸出檔案:%s\n"
+
+#: java/jvgenmain.c:138
+#, c-format
+msgid "%s: Failed to close output file %s\n"
+msgstr "%s:無法關閉輸出檔案 %s\n"
+
+#: java/jvspec.c:420
+#, c-format
+msgid "can't specify '-D' without '--main'\n"
+msgstr "ä¸ä½¿ç”¨ã€Œ--mainã€å‰‡ç„¡æ³•æŒ‡å®šã€Œ-Dã€\n"
+
+#: java/jvspec.c:423
+#, c-format
+msgid "'%s' is not a valid class name"
+msgstr "「%sã€ä¸æ˜¯æœ‰æ•ˆçš„類別å"
+
+#: java/jvspec.c:429
+#, c-format
+msgid "--resource requires -o"
+msgstr "--resource éœ€è¦ -o"
+
+#: java/jvspec.c:443
+#, c-format
+msgid "cannot specify both -C and -o"
+msgstr "ä¸èƒ½åŒæ™‚指定 -C å’Œ -o"
+
+#: java/jvspec.c:455
+#, c-format
+msgid "cannot create temporary file"
+msgstr "無法建立暫時檔案"
+
+#: java/jvspec.c:483
+#, c-format
+msgid "using both @FILE with multiple files not implemented"
+msgstr ""
+
+#: java/jvspec.c:546
+#, c-format
+msgid "cannot specify 'main' class when not linking"
+msgstr "ä¸é€£çµæ™‚無法指定「mainã€é¡žåˆ¥"
+
+#: config/mcore/mcore.h:57
+msgid "the m210 does not have little endian support"
+msgstr "m210 ä¸æ”¯æ´ä½Žä½ä½å…ƒçµ„在å‰"
+
+#: config/lynx.h:71
+msgid "cannot use mthreads and mlegacy-threads together"
+msgstr "ä¸èƒ½åŒæ™‚使用 mthreads å’Œ mlegacy-threads"
+
+#: config/lynx.h:96
+msgid "cannot use mshared and static together"
+msgstr "ä¸èƒ½åŒæ™‚使用 mshared å’Œ static"
+
+#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22
+#: config/sparc/sol2-bi.h:169 config/sparc/sol2-bi.h:174
+msgid "does not support multilib"
+msgstr "ä¸æ”¯æ´ multilib"
+
+#: config/mips/r3900.h:35
+msgid "-mhard-float not supported"
+msgstr "ä¸æ”¯æ´ -mhard-float"
+
+#: config/mips/r3900.h:37
+msgid "-msingle-float and -msoft-float cannot both be specified"
+msgstr "ä¸èƒ½åŒæ™‚指定 -msingle-float å’Œ -msoft-float"
+
+#: config/i386/cygwin.h:29
+msgid "mno-cygwin and mno-win32 are not compatible"
+msgstr "mno-cygwin å’Œ mno-win32 互ä¸ç›¸å®¹"
+
+#: config/i386/cygwin.h:70 config/i386/mingw32.h:58
+msgid "shared and mdll are not compatible"
+msgstr "shared å’Œ mdll 互ä¸ç›¸å®¹"
+
+#: config/vax/netbsd-elf.h:42
+msgid "the -shared option is not currently supported for VAX ELF"
+msgstr "-shared é¸é …ç›®å‰åœ¨ VAX ELF 下ä¸å—支æ´"
+
+#: config/vax/vax.h:50 config/vax/vax.h:51
+msgid "profiling not supported with -mg\n"
+msgstr "å–樣ä¸æ”¯æ´ -mg\n"
+
+#: config/arm/arm.h:141
+msgid "-msoft-float and -mhard_float may not be used together"
+msgstr "-msoft-float å’Œ -mhard_float ä¸èƒ½ä¸€èµ·ä½¿ç”¨"
+
+#: config/arm/arm.h:143
+msgid "-mbig-endian and -mlittle-endian may not be used together"
+msgstr "-mbig-endian å’Œ -mlittle-endian ä¸èƒ½ä¸€èµ·ä½¿ç”¨"
+
+#: config/arc/arc.h:62 config/mips/mips.h:849
+msgid "may not use both -EB and -EL"
+msgstr "ä¸èƒ½åŒæ™‚使用 -EB å’Œ -EL"
+
+#: config/i386/sco5.h:189
+msgid "-pg not supported on this platform"
+msgstr "-pg 在此平å°ä¸Šä¸å—支æ´"
+
+#: config/i386/sco5.h:190
+msgid "-p and -pp specified - pick one"
+msgstr "指定了 -p å’Œ -pp - é¸æ“‡å…¶ä¸­ä¹‹ä¸€"
+
+#: config/i386/sco5.h:264
+msgid "-G and -static are mutually exclusive"
+msgstr "ä¸èƒ½åŒæ™‚使用 -G å’Œ --static é¸é …"
+
+#: config/rs6000/darwin.h:105
+msgid " conflicting code gen style switches are used"
+msgstr " è¡çªçš„程å¼ç¢¼ç”¢ç”Ÿé¸é …"
+
+#: ada/lang-specs.h:34 gcc.c:794 java/jvspec.c:80
+msgid "-pg and -fomit-frame-pointer are incompatible"
+msgstr "-pg å’Œ -fomit-frame-pointer 互ä¸ç›¸å®¹"
+
+#: ada/lang-specs.h:35
+msgid "-c or -S required for Ada"
+msgstr "Ada éœ€è¦ -c 或是 -S"
+
+#: gcc.c:767
+msgid "GCC does not support -C or -CC without -E"
+msgstr "GCC åªå…許 -E 與 -C 或 -CC åˆç”¨"
+
+#: gcc.c:961
+msgid "-E or -x required when input is from standard input"
+msgstr "當輸入來自標準輸入è£ç½®æ™‚ï¼Œéœ€è¦ -E 或 -x"
+
+#: config/s390/tpf.h:125
+msgid "static is not supported on TPF-OS"
+msgstr "TPF-OS ä¸æ”¯æ´ static"
+
+#: config/sh/sh.h:460
+msgid "SH2a does not support little-endian"
+msgstr "SH2a ä¸æ”¯æ´ä½Žä½ä½å…ƒçµ„在å‰"
+
+#: config/sparc/linux64.h:206 config/sparc/linux64.h:217
+#: config/sparc/netbsd-elf.h:126 config/sparc/netbsd-elf.h:145
+#: config/sparc/sol2-bi.h:197 config/sparc/sol2-bi.h:207
+msgid "may not use both -m32 and -m64"
+msgstr "ä¸èƒ½åŒæ™‚使用 -m32 å’Œ -m64"
+
+#: config/vxworks.h:66
+msgid "-Xbind-now and -Xbind-lazy are incompatible"
+msgstr "-Xbind-now 與 -Xbind-lazy ä¸ç›¸å®¹"
+
+#: config/i386/nwld.h:35
+msgid "Static linking is not supported.\n"
+msgstr "ä¸æ”¯æ´éœæ…‹é€£çµã€‚\n"
+
+#: java/lang-specs.h:34
+msgid "-fjni and -femit-class-files are incompatible"
+msgstr "-fjni å’Œ -femit-class-files 互ä¸ç›¸å®¹"
+
+#: java/lang-specs.h:35
+msgid "-fjni and -femit-class-file are incompatible"
+msgstr "-fjni 與 -femit-class-file ä¸ç›¸å®¹"
+
+#: java/lang-specs.h:36 java/lang-specs.h:37
+msgid "-femit-class-file should used along with -fsyntax-only"
+msgstr "-femit-class-file 應當與 -fsyntax-only 一起使用"
+
+#: config/darwin.h:239
+msgid "-current_version only allowed with -dynamiclib"
+msgstr "-current_version åªèƒ½å’Œ -dynamiclib 一起使用"
+
+#: config/darwin.h:241
+msgid "-install_name only allowed with -dynamiclib"
+msgstr "-install_name åªèƒ½å’Œ -dynamiclib 一起使用"
+
+#: config/darwin.h:246
+msgid "-bundle not allowed with -dynamiclib"
+msgstr "-bundle ä¸å…許與 -dynamiclib 一起使用"
+
+#: config/darwin.h:247
+msgid "-bundle_loader not allowed with -dynamiclib"
+msgstr "-bundle_loader ä¸èƒ½å’Œ -dynamiclib 一起使用"
+
+#: config/darwin.h:248
+msgid "-client_name not allowed with -dynamiclib"
+msgstr "-client_name ä¸èƒ½å’Œ -dynamiclib 一起使用"
+
+#: config/darwin.h:253
+msgid "-force_flat_namespace not allowed with -dynamiclib"
+msgstr "-force_flat_namespace ä¸èƒ½å’Œ -dynamiclib 一起使用"
+
+#: config/darwin.h:255
+msgid "-keep_private_externs not allowed with -dynamiclib"
+msgstr "-keep_private_externs ä¸èƒ½å’Œ -dynamiclib 一起使用"
+
+#: config/darwin.h:256
+msgid "-private_bundle not allowed with -dynamiclib"
+msgstr "-private_bundle ä¸èƒ½å’Œ -dynamiclib 一起使用"
+
+#: java/lang.opt:66
+msgid "Warn if a deprecated compiler feature, class, method, or field is used"
+msgstr "當使用éŽæ™‚的編譯器特性,類別,方法或欄ä½æ™‚給出警告"
+
+#: java/lang.opt:70
+msgid "Warn if deprecated empty statements are found"
+msgstr "發ç¾éŽæ™‚的空敘述時給出警告"
+
+#: java/lang.opt:74
+msgid "Warn if .class files are out of date"
+msgstr "當 .class 檔案已éŽæ™‚時給出警告"
+
+#: java/lang.opt:78
+msgid "Warn if modifiers are specified when not necessary"
+msgstr "當指定了ä¸å¿…須的修飾符時給出警告"
+
+#: java/lang.opt:82
+msgid "Deprecated; use --classpath instead"
+msgstr "å·²éŽæ™‚;請改用 --classpath"
+
+#: java/lang.opt:86
+msgid "Permit the use of the assert keyword"
+msgstr "å…許使用 assert é—œéµå­—"
+
+#: java/lang.opt:108
+msgid "Replace system path"
+msgstr "替æ›ç³»çµ±è·¯å¾‘"
+
+#: java/lang.opt:112
+msgid "Generate checks for references to NULL"
+msgstr "檢查åƒç…§ NULL çš„åƒç…§"
+
+#: java/lang.opt:116
+msgid "Set class path"
+msgstr "設定類別路徑"
+
+#: java/lang.opt:123
+msgid "Output a class file"
+msgstr "輸出一個 class 檔案"
+
+#: java/lang.opt:127
+msgid "Alias for -femit-class-file"
+msgstr "-fmit-class-file 的別å"
+
+#: java/lang.opt:131
+msgid "Choose input encoding (defaults from your locale)"
+msgstr "é¸æ“‡è¼¸å…¥ç·¨ç¢¼(é è¨­ä¾†è‡ªæ‚¨çš„å€åŸŸé¸é …)"
+
+#: java/lang.opt:135
+msgid "Set the extension directory path"
+msgstr "設定擴充目錄路徑"
+
+#: java/lang.opt:139
+msgid "Input file is a file with a list of filenames to compile"
+msgstr "輸入檔案是一個檔案å稱清單,指定了需è¦ç·¨è­¯çš„檔案"
+
+#: java/lang.opt:143
+msgid "Always check for non gcj generated classes archives"
+msgstr "ç¸½æ˜¯æª¢æŸ¥éž gcj 產生的類別文件"
+
+#: java/lang.opt:147
+msgid "Assume the runtime uses a hash table to map an object to its synchronization structure"
+msgstr "å‡å®šåŸ·è¡Œæ™‚使用一張雜湊表完æˆå¾žç‰©ä»¶åˆ°å…¶åŒæ­¥çµæ§‹çš„å°æ‡‰"
+
+#: java/lang.opt:151
+msgid "Use offset tables for virtual method calls"
+msgstr "為虛方法呼å«ä½¿ç”¨å移表"
+
+#: java/lang.opt:158
+msgid "Assume native functions are implemented using JNI"
+msgstr "å‡å®šæœ¬åœ°å‡½å¼ä½¿ç”¨ JNI 實作"
+
+#: java/lang.opt:162
+msgid "Enable optimization of static class initialization code"
+msgstr "啟用éœæ…‹é¡žåˆ¥åˆå§‹ç¨‹å¼ç¢¼æœ€ä½³åŒ–"
+
+#: java/lang.opt:169
+msgid "Enable assignability checks for stores into object arrays"
+msgstr ""
+
+#: java/lang.opt:173
+msgid "Generate code for the Boehm GC"
+msgstr "為 Boehm 產生程å¼ç¢¼"
+
+#: java/lang.opt:177
+msgid "Call a library routine to do integer divisions"
+msgstr "呼å«ä¸€å€‹å‡½å¼åº«å­ç¨‹å¼ä¾†å®Œæˆæ•´æ•¸é™¤æ³•"
+
+#: java/lang.opt:181
+msgid "Generated should be loaded by bootstrap loader"
+msgstr ""
+
+#: ada/lang.opt:74
+msgid "Specify options to GNAT"
+msgstr "指定傳éžçµ¦ GNAT çš„é¸é …"
+
+#: fortran/lang.opt:30
+msgid "Add a directory for INCLUDE and MODULE searching"
+msgstr "將一個目錄加入到 INCLUDE å’Œ MODULE æœå°‹è·¯å¾‘中"
+
+#: fortran/lang.opt:34
+msgid "Put MODULE files in 'directory'"
+msgstr "å°‡ MODULE 檔案放入「directoryã€"
+
+#: fortran/lang.opt:42
+msgid "Warn about possible aliasing of dummy arguments"
+msgstr ""
+
+#: fortran/lang.opt:46
+msgid "Warn about implicit conversion"
+msgstr "å°éš±å«è½‰æ›çµ¦å‡ºè­¦å‘Š"
+
+#: fortran/lang.opt:50
+msgid "Warn about calls with implicit interface"
+msgstr "å°å¸¶æœ‰éš±å«ä»‹é¢çš„呼å«çµ¦å‡ºè­¦å‘Š"
+
+#: fortran/lang.opt:54
+msgid "Warn about truncated source lines"
+msgstr "å°è¢«æˆªæ–·çš„來æºæª”案列給出警告"
+
+#: fortran/lang.opt:58
+msgid "Warn about usage of non-standard intrinsics"
+msgstr "用到éžæ¨™æº–的內建函å¼æ™‚給出警告"
+
+#: fortran/lang.opt:62
+msgid "Warn about \"suspicious\" constructs"
+msgstr "å°ã€Œå¯ç–‘ã€çš„建構給出警告"
+
+#: fortran/lang.opt:66
+msgid "Warn about underflow of numerical constant expressions"
+msgstr "數字常數é‹ç®—å¼å‘下溢ä½æ™‚警告"
+
+#: fortran/lang.opt:70 common.opt:162
+msgid "Warn when a label is unused"
+msgstr "有未使用的標籤時警告"
+
+#: fortran/lang.opt:74
+msgid "Do not treat local variables and COMMON blocks as if they were named in SAVE statements"
+msgstr ""
+
+#: fortran/lang.opt:78
+msgid "Specify that backslash in string introduces an escape character"
+msgstr ""
+
+#: fortran/lang.opt:82
+msgid "Set the default double precision kind to an 8 byte wide type"
+msgstr "å°‡é è¨­é›™ç²¾åº¦ç¨®åˆ¥è¨­ç‚º 8 ä½å…ƒçµ„寬"
+
+#: fortran/lang.opt:86
+msgid "Set the default integer kind to an 8 byte wide type"
+msgstr "å°‡é è¨­æ•´æ•¸ç¨®åˆ¥è¨­ç‚º 8 ä½å…ƒçµ„寬"
+
+#: fortran/lang.opt:90
+msgid "Set the default real kind to an 8 byte wide type"
+msgstr "å°‡é è¨­å¯¦åž‹ç¨®åˆ¥è¨­ç‚º 8 ä½å…ƒçµ„寬"
+
+#: fortran/lang.opt:94
+msgid "Ignore 'D' in column one in fixed form"
+msgstr "在固定格å¼ä¸­å¿½ç•¥ç¬¬ä¸€åˆ—的「Dã€"
+
+#: fortran/lang.opt:98
+msgid "Treat lines with 'D' in column one as comments"
+msgstr "將第一行為「Dã€çš„列視作註釋"
+
+#: fortran/lang.opt:102
+msgid "Allow dollar signs in entity names"
+msgstr "å…許在實體å中使用美元符號"
+
+#: fortran/lang.opt:106
+msgid "Display the code tree after parsing"
+msgstr "解æžå¾Œé¡¯ç¤ºç¨‹å¼ç¢¼æ¨¹"
+
+#: fortran/lang.opt:110
+msgid "Use f2c calling convention"
+msgstr "使用 f2c 呼å«ç´„定"
+
+#: fortran/lang.opt:114
+msgid "Assume that the source file is fixed form"
+msgstr "å‡å®šä¾†æºæª”案是固定格å¼çš„"
+
+#: fortran/lang.opt:118
+msgid "Assume that the source file is free form"
+msgstr "å‡å®šä¾†æºæª”案是自由格å¼"
+
+#: fortran/lang.opt:122
+msgid "Append underscores to externally visible names"
+msgstr "為外部å¯è¦‹çš„å稱加入底線"
+
+#: fortran/lang.opt:126
+msgid "Use the Cray Pointer extension"
+msgstr "使用 Cray 指標擴充"
+
+#: fortran/lang.opt:130
+msgid "Append a second underscore if the name already contains an underscore"
+msgstr "當å稱已經包å«ä¸€å€‹åº•ç·šæ™‚加入第二個底線"
+
+#: fortran/lang.opt:134
+msgid "Specify that no implicit typing is allowed, unless overridden by explicit IMPLICIT statements"
+msgstr "ä¸å…許使用隱å«é¡žåž‹ï¼Œé™¤éžæ˜Žç¢ºåœ°ä½¿ç”¨äº† IMPLICIT 敘述"
+
+#: fortran/lang.opt:138
+msgid "Allow arbitrary character line width in fixed mode"
+msgstr "在固定模å¼ä¸‹å…許任æ„的字元列寬"
+
+#: fortran/lang.opt:142
+msgid "Use n as character line width in fixed mode"
+msgstr "在固定模å¼ä¸‹ä»¥ n åšç‚ºå­—元列寬"
+
+#: fortran/lang.opt:146
+msgid "Allow arbitrary character line width in free mode"
+msgstr "在自由模å¼ä¸‹å…許任æ„的字元列寬"
+
+#: fortran/lang.opt:150
+msgid "Use n as character line width in free mode"
+msgstr "在自由模å¼ä¸‹ä»¥ n åšç‚ºå­—元列寬"
+
+#: fortran/lang.opt:154
+msgid "Maximum identifier length"
+msgstr "識別碼的最大長度"
+
+#: fortran/lang.opt:158
+msgid "Size in bytes of the largest array that will be put on the stack"
+msgstr ""
+
+#: fortran/lang.opt:162
+msgid "Set default accessibility of module entities to PRIVATE"
+msgstr ""
+
+#: fortran/lang.opt:166
+msgid "Don't generate code, just do syntax and semantics checking"
+msgstr "ä¸ç”¢ç”Ÿç¨‹å¼ç¢¼ï¼Œåƒ…åšèªžæ³•å’Œèªžç¾©æª¢æŸ¥"
+
+#: fortran/lang.opt:170
+msgid "Try to layout derived types as compact as possible"
+msgstr ""
+
+#: fortran/lang.opt:174
+msgid "Copy array sections into a contiguous block on procedure entry"
+msgstr ""
+
+#: fortran/lang.opt:178
+msgid "Treat the input file as preprocessed"
+msgstr "將輸入檔案當作已經é å…ˆè™•ç†éŽçš„"
+
+#: fortran/lang.opt:182
+msgid "Set the kind for a real with the 'q' exponent to 'n'"
+msgstr ""
+
+#: fortran/lang.opt:186
+msgid "Stop on following floating point exceptions"
+msgstr "在以下浮點異常的情æ³ä¸‹çš„åœæ­¢"
+
+#: fortran/lang.opt:190
+msgid "Conform to the ISO Fortran 95 standard"
+msgstr "éµå¾ª ISO Fortran 95 標準"
+
+#: fortran/lang.opt:194
+msgid "Conform to the ISO Fortran 2003 standard"
+msgstr "éµå¾ª ISO Fortran 2003 標準"
+
+#: fortran/lang.opt:198
+msgid "Conform nothing in particular"
+msgstr "ä¸ç‰¹åˆ¥éµå¾ªä»»ä½•æ¨™æº–"
+
+#: fortran/lang.opt:202
+msgid "Accept extensions to support legacy code"
+msgstr "接å—一定的擴充以支æ´å‚³çµ±çš„程å¼ç¢¼"
+
+#: fortran/lang.opt:206 c.opt:661
+msgid "Use the narrowest integer type possible for enumeration types"
+msgstr "為列舉類型使用盡å¯èƒ½çª„的整數類型"
+
+#: fortran/lang.opt:210
+msgid "Use little-endian format for unformatted files"
+msgstr "使用低ä½ä½å…ƒçµ„æ ¼å¼æ–¼æœªæ ¼å¼çš„檔案"
+
+#: fortran/lang.opt:214
+msgid "Use big-endian format for unformatted files"
+msgstr "使用低ä½ä½å…ƒçµ„æ ¼å¼æ–¼æœªæ ¼å¼çš„檔案"
+
+#: fortran/lang.opt:218
+msgid "Use native format for unformatted files"
+msgstr "使用原生格å¼æ–¼æœªæ ¼å¼çš„檔案"
+
+#: fortran/lang.opt:222
+msgid "Swap endianness for unformatted files"
+msgstr "切æ›ä½å…ƒçµ„æ ¼å¼æ–¼æœªæ ¼å¼çš„檔案"
+
+#: treelang/lang.opt:30
+msgid "Trace lexical analysis"
+msgstr "追蹤解æž"
+
+#: treelang/lang.opt:34
+msgid "Trace the parsing process"
+msgstr "追蹤解æžè™•ç†åº"
+
+#: config/alpha/alpha.opt:24 config/i386/i386.opt:186
+msgid "Do not use hardware fp"
+msgstr "ä¸ä½¿ç”¨ç¡¬é«”浮點單元"
+
+#: config/alpha/alpha.opt:28
+msgid "Use fp registers"
+msgstr "使用浮點暫存器"
+
+#: config/alpha/alpha.opt:32
+msgid "Assume GAS"
+msgstr "å‡å®š GAS"
+
+#: config/alpha/alpha.opt:36
+msgid "Do not assume GAS"
+msgstr "ä¸å‡å®š GAS"
+
+#: config/alpha/alpha.opt:40
+msgid "Request IEEE-conformant math library routines (OSF/1)"
+msgstr "請求與 IEEE 相容的數學函å¼åº«è™•ç†åº(OSF/1)"
+
+#: config/alpha/alpha.opt:44
+msgid "Emit IEEE-conformant code, without inexact exceptions"
+msgstr "ç”¢ç”Ÿç¬¦åˆ IEEE 的程å¼ç¢¼ï¼Œä¸ç”¢ç”Ÿä¸ç²¾ç¢ºçš„異常"
+
+#: config/alpha/alpha.opt:51
+msgid "Do not emit complex integer constants to read-only memory"
+msgstr "ä¸å°‡è¤‡æ•´å¸¸æ•¸å­˜è‡³å”¯è®€è¨˜æ†¶é«”"
+
+#: config/alpha/alpha.opt:55
+msgid "Use VAX fp"
+msgstr "使用 VAX 浮點單元"
+
+#: config/alpha/alpha.opt:59
+msgid "Do not use VAX fp"
+msgstr "ä¸ä½¿ç”¨ VAX 浮點單元"
+
+#: config/alpha/alpha.opt:63
+msgid "Emit code for the byte/word ISA extension"
+msgstr "為ä½å…ƒçµ„/字指令架構擴充產生程å¼ç¢¼"
+
+#: config/alpha/alpha.opt:67
+msgid "Emit code for the motion video ISA extension"
+msgstr "為動態影åƒæŒ‡ä»¤æž¶æ§‹æ“´å……產生程å¼ç¢¼"
+
+#: config/alpha/alpha.opt:71
+msgid "Emit code for the fp move and sqrt ISA extension"
+msgstr "為浮點轉移和平方根指令架構擴充產生程å¼ç¢¼"
+
+#: config/alpha/alpha.opt:75
+msgid "Emit code for the counting ISA extension"
+msgstr "為計數指令架構擴充產生程å¼ç¢¼"
+
+#: config/alpha/alpha.opt:79
+msgid "Emit code using explicit relocation directives"
+msgstr ""
+
+#: config/alpha/alpha.opt:83
+msgid "Emit 16-bit relocations to the small data areas"
+msgstr "為å°è³‡æ–™å€åŸŸç”¢ç”Ÿ 16 ä½é‡å®šä½è³‡è¨Š"
+
+#: config/alpha/alpha.opt:87
+msgid "Emit 32-bit relocations to the small data areas"
+msgstr "為å°è³‡æ–™å€åŸŸç”¢ç”Ÿ 32 ä½å…ƒé‡å®šä½è³‡è¨Š"
+
+#: config/alpha/alpha.opt:91
+msgid "Emit direct branches to local functions"
+msgstr "為局部函å¼ç”¢ç”Ÿç›´æŽ¥åˆ†æ”¯"
+
+#: config/alpha/alpha.opt:95
+msgid "Emit indirect branches to local functions"
+msgstr "為局部函å¼ç”¢ç”Ÿé–“接分支"
+
+#: config/alpha/alpha.opt:99
+msgid "Emit rdval instead of rduniq for thread pointer"
+msgstr ""
+
+#: config/alpha/alpha.opt:103 config/s390/s390.opt:56
+#: config/sparc/long-double-switch.opt:24
+msgid "Use 128-bit long double"
+msgstr "使用 128 ä½ long double"
+
+#: config/alpha/alpha.opt:107 config/s390/s390.opt:60
+#: config/sparc/long-double-switch.opt:28
+msgid "Use 64-bit long double"
+msgstr "使用 64 ä½å…ƒ long double"
+
+#: config/alpha/alpha.opt:111
+msgid "Use features of and schedule given CPU"
+msgstr "使用指定 CPU 的特性並為其調度程å¼ç¢¼"
+
+#: config/alpha/alpha.opt:115
+msgid "Schedule given CPU"
+msgstr "為指定的 CPU 最佳化程å¼ç¢¼"
+
+#: config/alpha/alpha.opt:119
+msgid "Control the generated fp rounding mode"
+msgstr "控制產生的浮點æ¨å…¥æ¨¡å¼"
+
+#: config/alpha/alpha.opt:123
+msgid "Control the IEEE trap mode"
+msgstr "控制 IEEE 陷阱模å¼"
+
+#: config/alpha/alpha.opt:127
+msgid "Control the precision given to fp exceptions"
+msgstr "控制浮點異常的精度"
+
+#: config/alpha/alpha.opt:131
+msgid "Tune expected memory latency"
+msgstr "調整é æœŸè¨˜æ†¶é«”延é²"
+
+#: config/alpha/alpha.opt:135 config/ia64/ia64.opt:93
+#: config/rs6000/sysv4.opt:33
+msgid "Specify bit size of immediate TLS offsets"
+msgstr "指定執行緒局部存儲å移é‡ç«‹å³æ•¸å€¼çš„ä½å¤§å°"
+
+#: config/frv/frv.opt:24
+msgid "Use 4 media accumulators"
+msgstr "使用 4 個多媒體累加器"
+
+#: config/frv/frv.opt:28
+msgid "Use 8 media accumulators"
+msgstr "使用 8 個多媒體累加器"
+
+#: config/frv/frv.opt:32
+msgid "Enable label alignment optimizations"
+msgstr "啟用標籤å°é½Šæœ€ä½³åŒ–"
+
+#: config/frv/frv.opt:36
+msgid "Dynamically allocate cc registers"
+msgstr "動態指派 cc 暫存器"
+
+#: config/frv/frv.opt:43
+msgid "Set the cost of branches"
+msgstr "設定分支的代價"
+
+#: config/frv/frv.opt:47
+msgid "Enable conditional execution other than moves/scc"
+msgstr "啟用æ¢ä»¶åŸ·è¡Œè€Œéž moves/scc"
+
+#: config/frv/frv.opt:51
+msgid "Change the maximum length of conditionally-executed sequences"
+msgstr "變更æ¢ä»¶åŸ·è¡Œåºåˆ—的最大長度"
+
+#: config/frv/frv.opt:55
+msgid "Change the number of temporary registers that are available to conditionally-executed sequences"
+msgstr ""
+
+#: config/frv/frv.opt:59
+msgid "Enable conditional moves"
+msgstr "啟用æ¢ä»¶è½‰ç§»"
+
+#: config/frv/frv.opt:63
+msgid "Set the target CPU type"
+msgstr "指定目的 CPU 的類型"
+
+#: config/frv/frv.opt:85
+msgid "Use fp double instructions"
+msgstr "使用浮點雙精度指令"
+
+#: config/frv/frv.opt:89
+msgid "Change the ABI to allow double word insns"
+msgstr "變更 ABI 以å…許雙字指令"
+
+#: config/frv/frv.opt:93
+msgid "Enable Function Descriptor PIC mode"
+msgstr "啟用函å¼æ述符號 PIC 模å¼"
+
+#: config/frv/frv.opt:97
+msgid "Just use icc0/fcc0"
+msgstr "åªä½¿ç”¨ icc0/fcc0"
+
+#: config/frv/frv.opt:101
+msgid "Only use 32 FPRs"
+msgstr "åªä½¿ç”¨ 32 個浮點暫存器"
+
+#: config/frv/frv.opt:105
+msgid "Use 64 FPRs"
+msgstr "使用 64 個浮點暫存器"
+
+#: config/frv/frv.opt:109
+msgid "Only use 32 GPRs"
+msgstr "åªä½¿ç”¨ 32 個通用暫存器"
+
+#: config/frv/frv.opt:113
+msgid "Use 64 GPRs"
+msgstr "使用 64 個通用暫存器"
+
+#: config/frv/frv.opt:117
+msgid "Enable use of GPREL for read-only data in FDPIC"
+msgstr ""
+
+#: config/frv/frv.opt:121 config/rs6000/rs6000.opt:93
+#: config/pdp11/pdp11.opt:72
+msgid "Use hardware floating point"
+msgstr "使用硬體浮點單元"
+
+#: config/frv/frv.opt:125
+msgid "Enable inlining of PLT in function calls"
+msgstr "為函å¼å‘¼å«å•Ÿç”¨ PLT çš„å…§è¯"
+
+#: config/frv/frv.opt:129
+msgid "Enable PIC support for building libraries"
+msgstr "啟用å°å‡½å¼åº«çš„ PIC 支æ´"
+
+#: config/frv/frv.opt:133
+msgid "Follow the EABI linkage requirements"
+msgstr ""
+
+#: config/frv/frv.opt:137
+msgid "Disallow direct calls to global functions"
+msgstr "ä¸å…許直接呼å«å…¨åŸŸå‡½å¼"
+
+#: config/frv/frv.opt:141
+msgid "Use media instructions"
+msgstr "使用多媒體指令"
+
+#: config/frv/frv.opt:145
+msgid "Use multiply add/subtract instructions"
+msgstr "使用乘加/減指令"
+
+#: config/frv/frv.opt:149
+msgid "Enable optimizing &&/|| in conditional execution"
+msgstr "啟用å°æ¢ä»¶åŸ·è¡Œ && 或 || 的最佳化"
+
+#: config/frv/frv.opt:153
+msgid "Enable nested conditional execution optimizations"
+msgstr "啟用å°å·¢ç‹€æ¢ä»¶åŸ·è¡Œçš„最佳化"
+
+#: config/frv/frv.opt:158
+msgid "Do not mark ABI switches in e_flags"
+msgstr ""
+
+#: config/frv/frv.opt:162
+msgid "Remove redundant membars"
+msgstr "刪除冗餘æˆå“¡"
+
+#: config/frv/frv.opt:166
+msgid "Pack VLIW instructions"
+msgstr "打å°åŒ… VLIW 指令"
+
+#: config/frv/frv.opt:170
+msgid "Enable setting GPRs to the result of comparisons"
+msgstr ""
+
+#: config/frv/frv.opt:174
+msgid "Change the amount of scheduler lookahead"
+msgstr ""
+
+#: config/frv/frv.opt:178 config/pa/pa.opt:105
+msgid "Use software floating point"
+msgstr "使用軟體浮點單元"
+
+#: config/frv/frv.opt:182
+msgid "Assume a large TLS segment"
+msgstr "å‡å®šå¤§çš„執行緒局部存儲段"
+
+#: config/frv/frv.opt:186
+msgid "Do not assume a large TLS segment"
+msgstr "ä¸å‡å®šå¤§çš„ TLS 段"
+
+#: config/frv/frv.opt:191
+msgid "Cause gas to print tomcat statistics"
+msgstr ""
+
+#: config/frv/frv.opt:196
+msgid "Link with the library-pic libraries"
+msgstr ""
+
+#: config/frv/frv.opt:200
+msgid "Allow branches to be packed with other instructions"
+msgstr ""
+
+#: config/mn10300/mn10300.opt:24
+msgid "Target the AM33 processor"
+msgstr "目的為 AM33 處ç†å™¨"
+
+#: config/mn10300/mn10300.opt:28
+msgid "Target the AM33/2.0 processor"
+msgstr "目的為 AM33/2.0 處ç†å™¨"
+
+#: config/mn10300/mn10300.opt:32
+msgid "Work around hardware multiply bug"
+msgstr "為硬體乘法缺陷æ供變通"
+
+#: config/mn10300/mn10300.opt:37
+msgid "Enable linker relaxations"
+msgstr "啟用連çµå™¨é¬†å¼›"
+
+#: config/mn10300/mn10300.opt:41
+msgid "Return pointers in both a0 and d0"
+msgstr "在 a0 和 d0 中回傳指標"
+
+#: config/s390/tpf.opt:24
+msgid "Enable TPF-OS tracing code"
+msgstr "啟用 TPF-OS 追蹤碼"
+
+#: config/s390/tpf.opt:28
+msgid "Specify main object for TPF-OS"
+msgstr "指定 TPF-OS 主è¦ç‰©ä»¶"
+
+#: config/s390/s390.opt:24
+msgid "31 bit ABI"
+msgstr "31 ä½å…ƒ ABI"
+
+#: config/s390/s390.opt:28
+msgid "64 bit ABI"
+msgstr "64 ä½å…ƒ ABI"
+
+#: config/s390/s390.opt:32 config/i386/i386.opt:80
+msgid "Generate code for given CPU"
+msgstr "為給定的 CPU 產生程å¼ç¢¼"
+
+#: config/s390/s390.opt:36
+msgid "Maintain backchain pointer"
+msgstr "維護åéˆæŒ‡æ¨™"
+
+#: config/s390/s390.opt:40
+msgid "Additional debug prints"
+msgstr "é¡å¤–除錯輸出"
+
+#: config/s390/s390.opt:44
+msgid "ESA/390 architecture"
+msgstr "ESA/390 çµæ§‹"
+
+#: config/s390/s390.opt:48
+msgid "Enable fused multiply/add instructions"
+msgstr "啟用èžåˆçš„乘加指令"
+
+#: config/s390/s390.opt:52 config/i386/i386.opt:48 config/i386/i386.opt:118
+msgid "Use hardware fp"
+msgstr "使用硬體浮點單元"
+
+#: config/s390/s390.opt:64
+msgid "Use packed stack layout"
+msgstr "使用緊實的堆疊版é¢è¨­ç½®"
+
+#: config/s390/s390.opt:68
+msgid "Use bras for executable < 64k"
+msgstr ""
+
+#: config/s390/s390.opt:72
+msgid "Don't use hardware fp"
+msgstr "ä¸ä½¿ç”¨ç¡¬é«”浮點單元"
+
+#: config/s390/s390.opt:76
+msgid "Set the max. number of bytes which has to be left to stack size before a trap instruction is triggered"
+msgstr ""
+
+#: config/s390/s390.opt:80
+msgid "Emit extra code in the function prologue in order to trap if the stack size exceeds the given limit"
+msgstr "在函å¼å‰è¨€ä¸­ç”¢ç”Ÿé¡å¤–程å¼ç¢¼ä»¥ç²å–堆疊大å°è¶Šé™"
+
+#: config/s390/s390.opt:84 config/ia64/ia64.opt:97 config/sparc/sparc.opt:96
+#: config/i386/i386.opt:222 config/rs6000/rs6000.opt:203
+msgid "Schedule code for given CPU"
+msgstr "為指定的 CPU 最佳化程å¼ç¢¼"
+
+#: config/s390/s390.opt:88
+msgid "mvcle use"
+msgstr "使用 mvcle"
+
+#: config/s390/s390.opt:92
+msgid "Warn if a function uses alloca or creates an array with dynamic size"
+msgstr "當函å¼ä½¿ç”¨ alloca 來建立彈性陣列時給出警告"
+
+#: config/s390/s390.opt:96
+msgid "Warn if a single function's framesize exceeds the given framesize"
+msgstr "當單一函å¼çš„圖框大å°è¶…éŽçµ¦å®šå€¼æ™‚給出警告"
+
+#: config/s390/s390.opt:100
+msgid "z/Architecture"
+msgstr "z/Architecture"
+
+#: config/ia64/ilp32.opt:3
+msgid "Generate ILP32 code"
+msgstr "產生 ILP32 程å¼ç¢¼"
+
+#: config/ia64/ilp32.opt:7
+msgid "Generate LP64 code"
+msgstr "產生 LP64 程å¼ç¢¼"
+
+#: config/ia64/ia64.opt:3
+msgid "Generate big endian code"
+msgstr "產生高ä½ä½å…ƒçµ„在å‰çš„程å¼ç¢¼"
+
+#: config/ia64/ia64.opt:7
+msgid "Generate little endian code"
+msgstr "產生低ä½ä½å…ƒçµ„在å‰çš„程å¼ç¢¼"
+
+#: config/ia64/ia64.opt:11
+msgid "Generate code for GNU as"
+msgstr "為 GNU as 產生程å¼ç¢¼"
+
+#: config/ia64/ia64.opt:15
+msgid "Generate code for GNU ld"
+msgstr "為 GNU ld 產生程å¼ç¢¼"
+
+#: config/ia64/ia64.opt:19
+msgid "Emit stop bits before and after volatile extended asms"
+msgstr "在 volatile 擴充組譯塊å‰å¾ŒåŠ ä¸Šåœæ­¢ä½"
+
+#: config/ia64/ia64.opt:23
+msgid "Use in/loc/out register names"
+msgstr "使用 in/loc/out 暫存器å"
+
+#: config/ia64/ia64.opt:30
+msgid "Enable use of sdata/scommon/sbss"
+msgstr "啟用 sdata/scommon/sbss"
+
+#: config/ia64/ia64.opt:34
+msgid "Generate code without GP reg"
+msgstr "產生ä¸ä½¿ç”¨ GP 暫存器的程å¼ç¢¼"
+
+#: config/ia64/ia64.opt:38
+msgid "gp is constant (but save/restore gp on indirect calls)"
+msgstr "gp 是常數(但當間接呼å«æ™‚儲存/æ¢å¾© gp)"
+
+#: config/ia64/ia64.opt:42
+msgid "Generate self-relocatable code"
+msgstr "產生自身é‡å®šä½ç¨‹å¼ç¢¼"
+
+#: config/ia64/ia64.opt:46
+msgid "Generate inline floating point division, optimize for latency"
+msgstr "產生內è¯æµ®é»žé™¤æ³•ï¼Œç‚ºæœ€å°å»¶é²æœ€ä½³åŒ–"
+
+#: config/ia64/ia64.opt:50
+msgid "Generate inline floating point division, optimize for throughput"
+msgstr "產生內è¯æµ®é»žé™¤æ³•ï¼Œç‚ºæœ€å¤§åžåé‡æœ€ä½³åŒ–"
+
+#: config/ia64/ia64.opt:57
+msgid "Generate inline integer division, optimize for latency"
+msgstr "產生內è¯çš„整數除法,為最å°å»¶é²æœ€ä½³åŒ–"
+
+#: config/ia64/ia64.opt:61
+msgid "Generate inline integer division, optimize for throughput"
+msgstr "產生內è¯çš„整數除法,為最大åžåé‡æœ€ä½³åŒ–"
+
+#: config/ia64/ia64.opt:65
+msgid "Do not inline integer division"
+msgstr "ä¸å…§è¯æ•´æ•¸é™¤æ³•"
+
+#: config/ia64/ia64.opt:69
+msgid "Generate inline square root, optimize for latency"
+msgstr "產生內è¯çš„平方根,為最å°å»¶é²æœ€ä½³åŒ–"
+
+#: config/ia64/ia64.opt:73
+msgid "Generate inline square root, optimize for throughput"
+msgstr "產生內è¯çš„平方根,為最大åžåé‡æœ€ä½³åŒ–"
+
+#: config/ia64/ia64.opt:77
+msgid "Do not inline square root"
+msgstr "ä¸å…§è¯å¹³æ–¹æ ¹å‡½å¼"
+
+#: config/ia64/ia64.opt:81
+msgid "Enable Dwarf 2 line debug info via GNU as"
+msgstr "啟用經由 GNU as 的 Dwarf 2 列除錯資訊"
+
+#: config/ia64/ia64.opt:85
+msgid "Enable earlier placing stop bits for better scheduling"
+msgstr "åŠæ—©æ”¾ç½®åœæ­¢ä½ï¼Œä»¥å–得更好的調度效果"
+
+#: config/ia64/ia64.opt:89 config/pa/pa.opt:52
+msgid "Specify range of registers to make fixed"
+msgstr ""
+
+#: config/m32c/m32c.opt:25 config/mt/mt.opt:28
+msgid "Use simulator runtime"
+msgstr "使用模擬器執行時"
+
+#: config/m32c/m32c.opt:29
+msgid "Compile code for R8C variants"
+msgstr "為 R8C 變種編譯"
+
+#: config/m32c/m32c.opt:33
+msgid "Compile code for M16C variants"
+msgstr "為 M16C 變種編譯"
+
+#: config/m32c/m32c.opt:37
+msgid "Compile code for M32CM variants"
+msgstr "為 M32CM 變種編譯"
+
+#: config/m32c/m32c.opt:41
+msgid "Compile code for M32C variants"
+msgstr "為 M32C 變種編譯"
+
+#: config/m32c/m32c.opt:45
+msgid "Number of memreg bytes (default: 16, range: 0..16)"
+msgstr "memreg ä½å…ƒçµ„數(é è¨­ï¼š16,範åœï¼š0..16)"
+
+#: config/sparc/little-endian.opt:24
+msgid "Generate code for little-endian"
+msgstr "產生低ä½ä½å…ƒçµ„在å‰çš„程å¼ç¢¼"
+
+#: config/sparc/little-endian.opt:28
+msgid "Generate code for big-endian"
+msgstr "產生高ä½ä½å…ƒçµ„在å‰çš„程å¼ç¢¼"
+
+#: config/sparc/sparc.opt:24 config/sparc/sparc.opt:28
+msgid "Use hardware FP"
+msgstr "使用硬體浮點單元"
+
+#: config/sparc/sparc.opt:32
+msgid "Do not use hardware FP"
+msgstr "ä¸ä½¿ç”¨ç¡¬é«”浮點單元"
+
+#: config/sparc/sparc.opt:36
+msgid "Assume possible double misalignment"
+msgstr "å‡å®šå¯èƒ½çš„å…©ä¸æ­£ç¢ºé½Š"
+
+#: config/sparc/sparc.opt:40
+msgid "Pass -assert pure-text to linker"
+msgstr "å°‡ -assert pure-text 傳éžçµ¦é€£çµå™¨"
+
+#: config/sparc/sparc.opt:44
+msgid "Use ABI reserved registers"
+msgstr "使用 ABI ä¿ç•™çš„暫存器"
+
+#: config/sparc/sparc.opt:48
+msgid "Use hardware quad FP instructions"
+msgstr "使用硬體四浮點指令"
+
+#: config/sparc/sparc.opt:52
+msgid "Do not use hardware quad fp instructions"
+msgstr "ä¸ä½¿ç”¨ç¡¬é«”四浮點指令"
+
+#: config/sparc/sparc.opt:56
+msgid "Compile for V8+ ABI"
+msgstr "為 V8+ ABI 編譯"
+
+#: config/sparc/sparc.opt:60
+msgid "Use UltraSPARC Visual Instruction Set extensions"
+msgstr "使用 UltraSPARC å¯è¦–化指令集"
+
+#: config/sparc/sparc.opt:64
+msgid "Pointers are 64-bit"
+msgstr "指標是 64 ä½å…ƒ"
+
+#: config/sparc/sparc.opt:68
+msgid "Pointers are 32-bit"
+msgstr "指標是 32 ä½å…ƒ"
+
+#: config/sparc/sparc.opt:72
+msgid "Use 64-bit ABI"
+msgstr "使用 64 ä½å…ƒ ABI"
+
+#: config/sparc/sparc.opt:76
+msgid "Use 32-bit ABI"
+msgstr "使用 32 ä½å…ƒ ABI"
+
+#: config/sparc/sparc.opt:80
+msgid "Use stack bias"
+msgstr "使用堆疊å移"
+
+#: config/sparc/sparc.opt:84
+msgid "Use structs on stronger alignment for double-word copies"
+msgstr ""
+
+#: config/sparc/sparc.opt:88
+msgid "Optimize tail call instructions in assembler and linker"
+msgstr "在組譯器和連çµå™¨ä¸­æœ€ä½³åŒ–尾呼å«æŒ‡ä»¤"
+
+#: config/sparc/sparc.opt:92 config/rs6000/rs6000.opt:199
+msgid "Use features of and schedule code for given CPU"
+msgstr "使用指定 CPU 的特性和調度程å¼ç¢¼"
+
+#: config/sparc/sparc.opt:100
+msgid "Use given SPARC-V9 code model"
+msgstr "使用給定的 SPARC-V9 程å¼ç¢¼æ¨¡åž‹"
+
+#: config/m32r/m32r.opt:24
+msgid "Compile for the m32rx"
+msgstr "為 m32rx 編譯"
+
+#: config/m32r/m32r.opt:28
+msgid "Compile for the m32r2"
+msgstr "為 m32r2 編譯"
+
+#: config/m32r/m32r.opt:32
+msgid "Compile for the m32r"
+msgstr "為 m32r 編譯"
+
+#: config/m32r/m32r.opt:36
+msgid "Align all loops to 32 byte boundary"
+msgstr "所有循環å°é½Šåˆ° 32 ä½å…ƒçµ„邊界上"
+
+#: config/m32r/m32r.opt:40
+msgid "Prefer branches over conditional execution"
+msgstr "優先使用分支而ä¸æ˜¯æ¢ä»¶åŸ·è¡Œ"
+
+#: config/m32r/m32r.opt:44
+msgid "Give branches their default cost"
+msgstr "為分支指定é è¨­ä»£åƒ¹"
+
+#: config/m32r/m32r.opt:48
+msgid "Display compile time statistics"
+msgstr "顯示編譯時間統計"
+
+#: config/m32r/m32r.opt:52
+msgid "Specify cache flush function"
+msgstr "指定清空快å–的函å¼"
+
+#: config/m32r/m32r.opt:56
+msgid "Specify cache flush trap number"
+msgstr "指定清空快å–的陷阱號"
+
+#: config/m32r/m32r.opt:60
+msgid "Only issue one instruction per cycle"
+msgstr "æ¯é€±æœŸåªç™¼å‡ºä¸€æ¢æŒ‡ä»¤"
+
+#: config/m32r/m32r.opt:64
+msgid "Allow two instructions to be issued per cycle"
+msgstr "å…許æ¯é€±æœŸç™¼å‡ºå…©æ¢æŒ‡ä»¤"
+
+#: config/m32r/m32r.opt:68
+msgid "Code size: small, medium or large"
+msgstr "程å¼ç¢¼å¤§å°ï¼šå°ã€ä¸­æˆ–大"
+
+#: config/m32r/m32r.opt:72
+msgid "Don't call any cache flush functions"
+msgstr "ä¸å‘¼å«ä»»ä½•æ¸…空快å–的函å¼"
+
+#: config/m32r/m32r.opt:76
+msgid "Don't call any cache flush trap"
+msgstr "ä¸å‘¼å«ä»»ä½•æ¸…空快å–的陷阱"
+
+#: config/m32r/m32r.opt:83
+msgid "Small data area: none, sdata, use"
+msgstr ""
+
+#: config/m68k/m68k.opt:24
+msgid "Generate code for a 520X"
+msgstr "為 520X 產生程å¼ç¢¼"
+
+#: config/m68k/m68k.opt:28
+msgid "Generate code for a 5206e"
+msgstr "為 5206e 產生程å¼ç¢¼"
+
+#: config/m68k/m68k.opt:32
+msgid "Generate code for a 528x"
+msgstr "為 528x 產生程å¼ç¢¼"
+
+#: config/m68k/m68k.opt:36
+msgid "Generate code for a 5307"
+msgstr "為 5307 產生程å¼ç¢¼"
+
+#: config/m68k/m68k.opt:40
+msgid "Generate code for a 5407"
+msgstr "為 5407 產生程å¼ç¢¼"
+
+#: config/m68k/m68k.opt:44 config/m68k/m68k.opt:97
+msgid "Generate code for a 68000"
+msgstr "為 68000 產生程å¼ç¢¼"
+
+#: config/m68k/m68k.opt:48 config/m68k/m68k.opt:101
+msgid "Generate code for a 68020"
+msgstr "為 68020 產生程å¼ç¢¼"
+
+#: config/m68k/m68k.opt:52
+msgid "Generate code for a 68040, without any new instructions"
+msgstr "為 68040 產生程å¼ç¢¼ï¼Œä¸ä½¿ç”¨æ–°æŒ‡ä»¤"
+
+#: config/m68k/m68k.opt:56
+msgid "Generate code for a 68060, without any new instructions"
+msgstr "為 68060 產生程å¼ç¢¼ï¼Œä¸ä½¿ç”¨æ–°æŒ‡ä»¤"
+
+#: config/m68k/m68k.opt:60
+msgid "Generate code for a 68030"
+msgstr "為 68030 產生程å¼ç¢¼"
+
+#: config/m68k/m68k.opt:64
+msgid "Generate code for a 68040"
+msgstr "為 68040 產生程å¼ç¢¼"
+
+#: config/m68k/m68k.opt:68
+msgid "Generate code for a 68060"
+msgstr "為 68060 產生程å¼ç¢¼"
+
+#: config/m68k/m68k.opt:72
+msgid "Generate code for a 68302"
+msgstr "為 68302 產生程å¼ç¢¼"
+
+#: config/m68k/m68k.opt:76
+msgid "Generate code for a 68332"
+msgstr "為 68332 產生程å¼ç¢¼"
+
+#: config/m68k/m68k.opt:81
+msgid "Generate code for a 68851"
+msgstr "為 68851 產生程å¼ç¢¼"
+
+#: config/m68k/m68k.opt:85
+msgid "Generate code that uses 68881 floating-point instructions"
+msgstr "產生使用 68881 浮點指令的程å¼ç¢¼"
+
+#: config/m68k/m68k.opt:89
+msgid "Align variables on a 32-bit boundary"
+msgstr "在 32 ä½å…ƒé‚Šç•Œä¸Šå°é½Šè®Šæ•¸"
+
+#: config/m68k/m68k.opt:93
+msgid "Use the bit-field instructions"
+msgstr "使用ä½å…ƒæ®µæŒ‡ä»¤"
+
+#: config/m68k/m68k.opt:105
+msgid "Generate code for a cpu32"
+msgstr "為 cpu32 產生程å¼ç¢¼"
+
+#: config/m68k/m68k.opt:109
+msgid "Enable ID based shared library"
+msgstr "啟用基於 ID 的共享函å¼åº«"
+
+#: config/m68k/m68k.opt:113
+msgid "Do not use the bit-field instructions"
+msgstr "ä¸ä½¿ç”¨ä½å…ƒæ®µæŒ‡ä»¤"
+
+#: config/m68k/m68k.opt:117
+msgid "Use normal calling convention"
+msgstr "使用一般的呼å«ç´„定"
+
+#: config/m68k/m68k.opt:121
+msgid "Consider type 'int' to be 32 bits wide"
+msgstr "èªç‚ºã€Œintã€é¡žåˆ¥æœ‰ 32 ä½å…ƒå¯¬"
+
+#: config/m68k/m68k.opt:125
+msgid "Generate pc-relative code"
+msgstr "ç”¢ç”Ÿç›¸å° pc 的程å¼ç¢¼"
+
+#: config/m68k/m68k.opt:129
+msgid "Use different calling convention using 'rtd'"
+msgstr "啟用使用「rtdã€çš„ä¸åŒçš„呼å«ç´„定"
+
+#: config/m68k/m68k.opt:133
+msgid "Enable separate data segment"
+msgstr "啟用分離的資料段"
+
+#: config/m68k/m68k.opt:137 config/bfin/bfin.opt:45
+msgid "ID of shared library to build"
+msgstr "å°‡è¦å»ºç«‹çš„共享函å¼åº«çš„ ID"
+
+#: config/m68k/m68k.opt:141
+msgid "Consider type 'int' to be 16 bits wide"
+msgstr "èªç‚ºã€Œintã€é¡žåˆ¥æœ‰ 16 ä½å¯¬"
+
+#: config/m68k/m68k.opt:145
+msgid "Generate code with library calls for floating point"
+msgstr ""
+
+#: config/m68k/m68k.opt:149
+msgid "Do not use unaligned memory references"
+msgstr "ä¸ä½¿ç”¨æœªå°é½Šçš„記憶體åƒç…§"
+
+#: config/m68k/ieee.opt:25 config/i386/i386.opt:122
+msgid "Use IEEE math for fp comparisons"
+msgstr "浮點數間的比較嚴格éµå¾ª IEEE 標準"
+
+#: config/i386/djgpp.opt:26
+msgid "Ignored (obsolete)"
+msgstr "忽略(å·²éŽæ™‚)"
+
+#: config/i386/i386.opt:24
+msgid "sizeof(long double) is 16"
+msgstr "sizeof(long double) 等於 16"
+
+#: config/i386/i386.opt:28
+msgid "Generate 32bit i386 code"
+msgstr "產生 32 ä½å…ƒ i386 程å¼ç¢¼"
+
+#: config/i386/i386.opt:36
+msgid "Support 3DNow! built-in functions"
+msgstr "æ”¯æ´ 3DNow! 內建函å¼"
+
+#: config/i386/i386.opt:44
+msgid "Generate 64bit x86-64 code"
+msgstr "產生 64 ä½å…ƒ x86-64 程å¼ç¢¼"
+
+#: config/i386/i386.opt:52
+msgid "sizeof(long double) is 12"
+msgstr "sizeof(long double) 等於 12"
+
+#: config/i386/i386.opt:56
+msgid "Reserve space for outgoing arguments in the function prologue"
+msgstr "在函å¼åºè¨€ä¸­ç‚ºè¼¸å‡ºå¼•æ•¸é ç•™ç©ºé–“"
+
+#: config/i386/i386.opt:60
+msgid "Align some doubles on dword boundary"
+msgstr "一些雙精度浮點數在雙字邊界上å°é½Š"
+
+#: config/i386/i386.opt:64
+msgid "Function starts are aligned to this power of 2"
+msgstr "函å¼å…¥å£å°é½Šåœ¨ 2 的此次方上"
+
+#: config/i386/i386.opt:68
+msgid "Jump targets are aligned to this power of 2"
+msgstr "跳轉目的å°é½Šåœ¨ 2 的此次方上"
+
+#: config/i386/i386.opt:72
+msgid "Loop code aligned to this power of 2"
+msgstr "循環程å¼ç¢¼å°é½Šåˆ° 2 的此次方上"
+
+#: config/i386/i386.opt:76
+msgid "Align destination of the string operations"
+msgstr "å°é½Šå­—串作業的目的"
+
+#: config/i386/i386.opt:84
+msgid "Use given assembler dialect"
+msgstr "使用給定的組譯風格"
+
+#: config/i386/i386.opt:88
+msgid "Branches are this expensive (1-5, arbitrary units)"
+msgstr "指定分支的代價(1-5,任æ„å–®ä½)"
+
+#: config/i386/i386.opt:92
+msgid "Data greater than given threshold will go into .ldata section in x86-64 medium model"
+msgstr "在 x86-64 中等模å¼ä¸‹å¤§æ–¼æŒ‡å®šé–¾å€¼çš„資料將被存放在 .ldata å€æ®µä¸­"
+
+#: config/i386/i386.opt:96
+msgid "Use given x86-64 code model"
+msgstr "使用給定的 x86-64 程å¼ç¢¼æ¨¡å¼"
+
+#: config/i386/i386.opt:106
+msgid "Generate sin, cos, sqrt for FPU"
+msgstr "為 FPU 產生 sinã€cos å’Œ sqrt 指令"
+
+#: config/i386/i386.opt:110
+msgid "Return values of functions in FPU registers"
+msgstr "在 FPU 暫存器中存放函å¼å›žå‚³å€¼"
+
+#: config/i386/i386.opt:114
+msgid "Generate floating point mathematics using given instruction set"
+msgstr "為指定的指令集產生浮點數學程å¼ç¢¼"
+
+#: config/i386/i386.opt:126
+msgid "Inline all known string operations"
+msgstr "å…§è¯æ‰€æœ‰å·²çŸ¥çš„字串作業"
+
+#: config/i386/i386.opt:134
+msgid "Support MMX built-in functions"
+msgstr "æ”¯æ´ MMX 內建函å¼"
+
+#: config/i386/i386.opt:138
+msgid "Use native (MS) bitfield layout"
+msgstr "使用本地 (MS) ä½å…ƒæ®µå­˜å„²æ–¹å¼"
+
+#: config/i386/i386.opt:154
+msgid "Omit the frame pointer in leaf functions"
+msgstr "為葉函å¼(ä¸å‘¼å«å…¶å®ƒå‡½å¼çš„函å¼)忽略框架指標"
+
+#: config/i386/i386.opt:166
+msgid "Attempt to keep stack aligned to this power of 2"
+msgstr "試圖讓堆疊ä¿æŒå°é½Šåˆ° 2 的此次方上"
+
+#: config/i386/i386.opt:170
+msgid "Use push instructions to save outgoing arguments"
+msgstr "使用 push 指令儲存åƒæ•¸"
+
+#: config/i386/i386.opt:174
+msgid "Use red-zone in the x86-64 code"
+msgstr "在 x86-64 程å¼ç¢¼ä¸­ä½¿ç”¨ç´…å€"
+
+#: config/i386/i386.opt:178
+msgid "Number of registers used to pass integer arguments"
+msgstr "用以傳éžæ•´æ•¸åƒæ•¸çš„暫存器個數"
+
+#: config/i386/i386.opt:182
+msgid "Alternate calling convention"
+msgstr "變更呼å«ç´„定"
+
+#: config/i386/i386.opt:190
+msgid "Support MMX and SSE built-in functions and code generation"
+msgstr "æ”¯æ´ MMX å’Œ SSE 內建函å¼åŠç¨‹å¼ç¢¼ç”¢ç”Ÿ"
+
+#: config/i386/i386.opt:194
+msgid "Support MMX, SSE and SSE2 built-in functions and code generation"
+msgstr "æ”¯æ´ MMXã€SSE å’Œ SSE2 內建函å¼åŠç¨‹å¼ç¢¼ç”¢ç”Ÿ"
+
+#: config/i386/i386.opt:198
+msgid "Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
+msgstr "æ”¯æ´ MMXã€SSEã€SSE2 å’Œ SSE3 內建函å¼åŠç¨‹å¼ç¢¼ç”¢ç”Ÿ"
+
+#: config/i386/i386.opt:202
+msgid "Use SSE register passing conventions for SF and DF mode"
+msgstr "在 SF å’Œ DF 模å¼ä¸‹ä½¿ç”¨ SSE 暫存器呼å«ç´„定"
+
+#: config/i386/i386.opt:206
+msgid "Uninitialized locals in .bss"
+msgstr ".bss 段中未åˆå§‹åŒ–的局部變數"
+
+#: config/i386/i386.opt:210
+msgid "Enable stack probing"
+msgstr "啟用堆疊åµæ¸¬"
+
+#: config/i386/i386.opt:214
+msgid "Use given thread-local storage dialect"
+msgstr "使用給定的執行緒局部存儲模å¼"
+
+#: config/i386/i386.opt:218
+#, c-format
+msgid "Use direct references against %gs when accessing tls data"
+msgstr "當存å–執行緒局部資料時直接åƒç…§ %gs"
+
+#: config/i386/cygming.opt:24
+msgid "Create console application"
+msgstr "建立命令列程å¼"
+
+#: config/i386/cygming.opt:28
+msgid "Use the Cygwin interface"
+msgstr "使用 Cygwin 介é¢"
+
+#: config/i386/cygming.opt:32
+msgid "Generate code for a DLL"
+msgstr "產生動態連çµç¨‹å¼åº«çš„程å¼ç¢¼"
+
+#: config/i386/cygming.opt:36
+msgid "Ignore dllimport for functions"
+msgstr "忽略函å¼çš„ dllimport 屬性"
+
+#: config/i386/cygming.opt:40
+msgid "Use Mingw-specific thread support"
+msgstr "使用 Mingw 特定的執行緒支æ´"
+
+#: config/i386/cygming.opt:44
+msgid "Set Windows defines"
+msgstr "設定 Windows 定義"
+
+#: config/i386/cygming.opt:48
+msgid "Create GUI application"
+msgstr "建立圖形介é¢ç¨‹å¼"
+
+#: config/i386/sco5.opt:25
+msgid "Generate ELF output"
+msgstr "產生 ELF æ ¼å¼çš„輸出檔案"
+
+#: config/rs6000/aix41.opt:25 config/rs6000/aix64.opt:33
+msgid "Support message passing with the Parallel Environment"
+msgstr ""
+
+#: config/rs6000/aix.opt:25 config/rs6000/rs6000.opt:128
+msgid "Conform more closely to IBM XLC semantics"
+msgstr "盡é‡æŽ¥è¿‘ IBM XLC 語義"
+
+#: config/rs6000/darwin.opt:25 config/rs6000/sysv4.opt:133
+msgid "Generate 64-bit code"
+msgstr "產生 64 ä½å…ƒç¨‹å¼ç¢¼"
+
+#: config/rs6000/darwin.opt:29 config/rs6000/sysv4.opt:137
+msgid "Generate 32-bit code"
+msgstr "產生 32 ä½å…ƒç¨‹å¼ç¢¼"
+
+#: config/rs6000/darwin.opt:33
+msgid "Generate code suitable for executables (NOT shared libs)"
+msgstr "產生的程å¼ç¢¼é©åˆæ–¼å¯åŸ·è¡Œæª”案(而ä¸æ˜¯å…±äº«å‡½å¼åº«)"
+
+#: config/rs6000/rs6000.opt:25
+msgid "Use POWER instruction set"
+msgstr "使用 POWER 指令集"
+
+#: config/rs6000/rs6000.opt:29
+msgid "Do not use POWER instruction set"
+msgstr "ä¸ä½¿ç”¨ POWER 指令集"
+
+#: config/rs6000/rs6000.opt:33
+msgid "Use POWER2 instruction set"
+msgstr "使用 POWER2 指令集"
+
+#: config/rs6000/rs6000.opt:37
+msgid "Use PowerPC instruction set"
+msgstr "使用 PowerPC 指令集"
+
+#: config/rs6000/rs6000.opt:41
+msgid "Do not use PowerPC instruction set"
+msgstr "ä¸ä½¿ç”¨ PowerPC 指令集"
+
+#: config/rs6000/rs6000.opt:45
+msgid "Use PowerPC-64 instruction set"
+msgstr "使用 PowerPC-64 指令集"
+
+#: config/rs6000/rs6000.opt:49
+msgid "Use PowerPC General Purpose group optional instructions"
+msgstr "使用 PowerPC 通用組å¯é¸æŒ‡ä»¤"
+
+#: config/rs6000/rs6000.opt:53
+msgid "Use PowerPC Graphics group optional instructions"
+msgstr "使用 PowerPC 圖åƒçµ„å¯é¸æŒ‡ä»¤"
+
+#: config/rs6000/rs6000.opt:57
+msgid "Use PowerPC V2.01 single field mfcr instruction"
+msgstr "使用 PowerPC V2.01 å–®æ¬„ä½ mfcr 指令"
+
+#: config/rs6000/rs6000.opt:61
+msgid "Use PowerPC V2.02 popcntb instruction"
+msgstr "使用 PowerPC V2.02 popcntb 指令"
+
+#: config/rs6000/rs6000.opt:65
+msgid "Use PowerPC V2.02 floating point rounding instructions"
+msgstr "使用 PowerPC V2.02 浮點æ¨å…¥æŒ‡ä»¤"
+
+#: config/rs6000/rs6000.opt:69
+msgid "Use AltiVec instructions"
+msgstr "使用 AltiVec 指令"
+
+#: config/rs6000/rs6000.opt:73
+msgid "Generate load/store multiple instructions"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:77
+msgid "Generate string instructions for block moves"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:81
+msgid "Use new mnemonics for PowerPC architecture"
+msgstr "為 PowerPC 架構使用新的助憶符號"
+
+#: config/rs6000/rs6000.opt:85
+msgid "Use old mnemonics for PowerPC architecture"
+msgstr "為 PowerPC 架構使用舊的助憶符號"
+
+#: config/rs6000/rs6000.opt:89 config/pdp11/pdp11.opt:84
+msgid "Do not use hardware floating point"
+msgstr "ä¸ä½¿ç”¨ç¡¬é«”浮點單元"
+
+#: config/rs6000/rs6000.opt:97
+msgid "Do not generate load/store with update instructions"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:101
+msgid "Generate load/store with update instructions"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:105
+msgid "Do not generate fused multiply/add instructions"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:109
+msgid "Generate fused multiply/add instructions"
+msgstr "產生èžåˆçš„乘/加指令"
+
+#: config/rs6000/rs6000.opt:113
+msgid "Schedule the start and end of the procedure"
+msgstr "調度程åºçš„起始與終止"
+
+#: config/rs6000/rs6000.opt:120
+msgid "Return all structures in memory (AIX default)"
+msgstr "所有çµæ§‹åœ¨è¨˜æ†¶é«”中回傳 (AIX é è¨­)"
+
+#: config/rs6000/rs6000.opt:124
+msgid "Return small structures in registers (SVR4 default)"
+msgstr "å°çµæ§‹åœ¨æš«å­˜å™¨ä¸­å›žå‚³ (SVR4 é è¨­)"
+
+#: config/rs6000/rs6000.opt:132
+msgid "Generate software floating point divide for better throughput"
+msgstr "產生內è¯æµ®é»žé™¤æ³•ï¼Œç‚ºæœ€å¤§åžåé‡æœ€ä½³åŒ–"
+
+#: config/rs6000/rs6000.opt:136
+msgid "Do not place floating point constants in TOC"
+msgstr "ä¸åœ¨ TOC 中存放浮點常數"
+
+#: config/rs6000/rs6000.opt:140
+msgid "Place floating point constants in TOC"
+msgstr "在 TOC 中存放浮點常數"
+
+#: config/rs6000/rs6000.opt:144
+msgid "Do not place symbol+offset constants in TOC"
+msgstr "ä¸åœ¨ TOC 中存放符號+å移é‡å¸¸æ•¸"
+
+#: config/rs6000/rs6000.opt:148
+msgid "Place symbol+offset constants in TOC"
+msgstr "在 TOC 中存放符號+å移é‡å¸¸æ•¸"
+
+#: config/rs6000/rs6000.opt:159
+msgid "Use only one TOC entry per procedure"
+msgstr "為æ¯å€‹ç¨‹åºåªä½¿ç”¨ä¸€å€‹ TOC æ¢ç›®"
+
+#: config/rs6000/rs6000.opt:163
+msgid "Put everything in the regular TOC"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:167
+msgid "Generate VRSAVE instructions when generating AltiVec code"
+msgstr "產生 AltiVec 程å¼ç¢¼æ™‚產生 VRSAVE 指令"
+
+#: config/rs6000/rs6000.opt:171
+msgid "Deprecated option. Use -mvrsave/-mno-vrsave instead"
+msgstr "å·²éŽæ™‚çš„é¸é …。請改用 -mvrsave/-mno-vrsave"
+
+#: config/rs6000/rs6000.opt:175
+msgid "Generate isel instructions"
+msgstr "產生 isel 指令"
+
+#: config/rs6000/rs6000.opt:179
+msgid "Deprecated option. Use -misel/-mno-isel instead"
+msgstr "å·²éŽæ™‚çš„é¸é …。請改用 -misel/-mno-isel"
+
+#: config/rs6000/rs6000.opt:183
+msgid "Generate SPE SIMD instructions on E500"
+msgstr "在 E500 上產生 SPE SIMD 指令"
+
+#: config/rs6000/rs6000.opt:187
+msgid "Deprecated option. Use -mspe/-mno-spe instead"
+msgstr "å·²éŽæ™‚çš„é¸é …。請改用 -mspe/-mno-spe"
+
+#: config/rs6000/rs6000.opt:191
+msgid "Enable debug output"
+msgstr "啟用除錯輸出"
+
+#: config/rs6000/rs6000.opt:195
+msgid "Specify ABI to use"
+msgstr "指定è¦ä½¿ç”¨çš„ ABI"
+
+#: config/rs6000/rs6000.opt:207
+msgid "Select full, part, or no traceback table"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:211
+msgid "Avoid all range limits on call instructions"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:215
+msgid "Warn about deprecated 'vector long ...' AltiVec type usage"
+msgstr "使用éŽæ™‚的「vector long ...ã€AltiVec 類型時給出警告"
+
+#: config/rs6000/rs6000.opt:219
+msgid "Select GPR floating point method"
+msgstr "é¸æ“‡é€šç”¨æš«å­˜å™¨æµ®é»žæ–¹æ³•"
+
+#: config/rs6000/rs6000.opt:223
+msgid "Specify size of long double (64 or 128 bits)"
+msgstr "指定 long double 的大å°(64 或 128 ä½)"
+
+#: config/rs6000/rs6000.opt:227
+msgid "Determine which dependences between insns are considered costly"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:231
+msgid "Specify which post scheduling nop insertion scheme to apply"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:235
+msgid "Specify alignment of structure fields default/natural"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:239
+msgid "Specify scheduling priority for dispatch slot restricted insns"
+msgstr ""
+
+#: config/rs6000/aix64.opt:25
+msgid "Compile for 64-bit pointers"
+msgstr "為 64 ä½å…ƒæŒ‡æ¨™ç·¨è­¯"
+
+#: config/rs6000/aix64.opt:29
+msgid "Compile for 32-bit pointers"
+msgstr "為 32 ä½å…ƒæŒ‡æ¨™ç·¨è­¯"
+
+#: config/rs6000/linux64.opt:25
+msgid "Call mcount for profiling before a function prologue"
+msgstr ""
+
+#: config/rs6000/sysv4.opt:25
+msgid "Select ABI calling convention"
+msgstr "é¸æ“‡ ABI 呼å«ç´„定"
+
+#: config/rs6000/sysv4.opt:29
+msgid "Select method for sdata handling"
+msgstr ""
+
+#: config/rs6000/sysv4.opt:37 config/rs6000/sysv4.opt:41
+msgid "Align to the base type of the bit-field"
+msgstr "å°é½Šåˆ°ä½å…ƒæ®µçš„基礎類別型"
+
+#: config/rs6000/sysv4.opt:46 config/rs6000/sysv4.opt:50
+msgid "Produce code relocatable at runtime"
+msgstr "產生執行時å¯é‡å®šä½çš„程å¼ç¢¼"
+
+#: config/rs6000/sysv4.opt:54 config/rs6000/sysv4.opt:58
+msgid "Produce little endian code"
+msgstr "產生低ä½ä½å…ƒçµ„在å‰çš„程å¼ç¢¼"
+
+#: config/rs6000/sysv4.opt:62 config/rs6000/sysv4.opt:66
+msgid "Produce big endian code"
+msgstr "產生高ä½ä½å…ƒçµ„在å‰çš„程å¼ç¢¼"
+
+#: config/rs6000/sysv4.opt:71 config/rs6000/sysv4.opt:75
+#: config/rs6000/sysv4.opt:84 config/rs6000/sysv4.opt:101
+#: config/rs6000/sysv4.opt:129 config/rs6000/sysv4.opt:141
+msgid "no description yet"
+msgstr "尚未æè¿°"
+
+#: config/rs6000/sysv4.opt:79
+msgid "Assume all variable arg functions are prototyped"
+msgstr ""
+
+#: config/rs6000/sysv4.opt:88
+msgid "Use EABI"
+msgstr "使用 EABI"
+
+#: config/rs6000/sysv4.opt:92
+msgid "Allow bit-fields to cross word boundaries"
+msgstr ""
+
+#: config/rs6000/sysv4.opt:96
+msgid "Use alternate register names"
+msgstr "使用å¦ä¸€å¥—暫存器å"
+
+#: config/rs6000/sysv4.opt:105
+msgid "Link with libsim.a, libc.a and sim-crt0.o"
+msgstr "與 libsim.a,libc.a å’Œ sim-crt0.o 連çµ"
+
+#: config/rs6000/sysv4.opt:109
+msgid "Link with libads.a, libc.a and crt0.o"
+msgstr "與 libads.a,libc.a å’Œ crt0.o 連çµ"
+
+#: config/rs6000/sysv4.opt:113
+msgid "Link with libyk.a, libc.a and crt0.o"
+msgstr "與 libyk.a,libc.a å’Œ crt0.o 連çµ"
+
+#: config/rs6000/sysv4.opt:117
+msgid "Link with libmvme.a, libc.a and crt0.o"
+msgstr "與 libmvme.a,libc.a å’Œ crt0.o 連çµ"
+
+#: config/rs6000/sysv4.opt:121
+msgid "Set the PPC_EMB bit in the ELF flags header"
+msgstr "在 ELF 旗標頭中指定 PPC_EMB ä½"
+
+#: config/rs6000/sysv4.opt:125
+msgid "Use the WindISS simulator"
+msgstr "使用 WindISS 模擬器"
+
+#: config/rs6000/sysv4.opt:145
+msgid "Generate code to use a non-exec PLT and GOT"
+msgstr "產生的程å¼ç¢¼ä½¿ç”¨ä¸å¯åŸ·è¡Œ PLT å’Œ GOT"
+
+#: config/rs6000/sysv4.opt:149
+msgid "Generate code for old exec BSS PLT"
+msgstr "為舊的å¯åŸ·è¡Œ BSS PLT 產生程å¼ç¢¼"
+
+#: config/mt/mt.opt:24
+msgid "Use byte loads and stores when generating code."
+msgstr "產生程å¼ç¢¼æ™‚使用ä½å…ƒçµ„載入和存儲。"
+
+#: config/mt/mt.opt:32
+msgid "Do not include crt0.o in the startup files"
+msgstr "ä¸å°‡ crt0.o 包å«åœ¨å•Ÿå‹•æª”案中"
+
+#: config/mt/mt.opt:36 config/mt/mt.opt:40 config/mt/mt.opt:44
+#: config/mt/mt.opt:48 config/mt/mt.opt:52
+msgid "Internal debug switch"
+msgstr "內部除錯開關"
+
+#: config/mt/mt.opt:56 config/iq2000/iq2000.opt:24
+msgid "Specify CPU for code generation purposes"
+msgstr "為程å¼ç¢¼ç”¢ç”ŸæŒ‡å®šç›®çš„ CPU"
+
+#: config/mcore/mcore.opt:24
+msgid "Generate code for the M*Core M210"
+msgstr "為 M*Core M210 產生程å¼ç¢¼"
+
+#: config/mcore/mcore.opt:28
+msgid "Generate code for the M*Core M340"
+msgstr "為 M*Core M340 產生程å¼ç¢¼"
+
+#: config/mcore/mcore.opt:32
+msgid "Set maximum alignment to 4"
+msgstr "設定最大å°é½Šé‚Šç•Œç‚º 4"
+
+#: config/mcore/mcore.opt:36
+msgid "Force functions to be aligned to a 4 byte boundary"
+msgstr "將函å¼å¼·è¡Œå°é½Šåˆ° 4 ä½å…ƒçµ„邊界上"
+
+#: config/mcore/mcore.opt:40
+msgid "Set maximum alignment to 8"
+msgstr "設定最大å°é½Šé‚Šç•Œç‚º 8"
+
+#: config/mcore/mcore.opt:44
+msgid "Generate big-endian code"
+msgstr "產生高ä½ä½å…ƒçµ„在å‰çš„程å¼ç¢¼"
+
+#: config/mcore/mcore.opt:48
+msgid "Emit call graph information"
+msgstr "產生呼å«åœ–資訊"
+
+#: config/mcore/mcore.opt:52
+msgid "Use the divide instruction"
+msgstr "使用除法指令"
+
+#: config/mcore/mcore.opt:56
+msgid "Inline constants if it can be done in 2 insns or less"
+msgstr "當常數å¯ä»¥ç‚ºå…©å€‹ä»¥ä¸‹çš„指令產生時內è¯å¸¸æ•¸"
+
+#: config/mcore/mcore.opt:60
+msgid "Generate little-endian code"
+msgstr "產生低ä½ä½å…ƒçµ„在å‰çš„程å¼ç¢¼"
+
+#: config/mcore/mcore.opt:68
+msgid "Use arbitrary sized immediates in bit operations"
+msgstr "在ä½ä½œæ¥­ä¸­ä½¿ç”¨ä»»æ„大å°çš„ç«‹å³æ•¸å€¼"
+
+#: config/mcore/mcore.opt:72
+msgid "Prefer word accesses over byte accesses"
+msgstr "盡é‡æŒ‰å­—å­˜å–而ä¸æ˜¯æŒ‰ä½å…ƒçµ„å­˜å–"
+
+#: config/mcore/mcore.opt:76
+msgid "Set the maximum amount for a single stack increment operation"
+msgstr ""
+
+#: config/mcore/mcore.opt:80
+msgid "Always treat bitfields as int-sized"
+msgstr "總èªç‚ºä½å…ƒæ®µé•·èˆ‡ int 相åŒ"
+
+#: config/arc/arc.opt:33
+msgid "Prepend the name of the cpu to all public symbol names"
+msgstr ""
+
+#: config/arc/arc.opt:43
+msgid "Compile code for ARC variant CPU"
+msgstr "為 ARC 變種 CPU 產生程å¼ç¢¼"
+
+#: config/arc/arc.opt:47
+msgid "Put functions in SECTION"
+msgstr "在 SECTION 中存放函å¼"
+
+#: config/arc/arc.opt:51
+msgid "Put data in SECTION"
+msgstr "在 SECTION 中存放資料"
+
+#: config/arc/arc.opt:55
+msgid "Put read-only data in SECTION"
+msgstr "在 SECTION 中存放唯讀資料"
+
+#: config/sh/sh.opt:45
+msgid "Generate SH1 code"
+msgstr "產生 SH1 程å¼ç¢¼"
+
+#: config/sh/sh.opt:49
+msgid "Generate SH2 code"
+msgstr "產生 SH2 程å¼ç¢¼"
+
+#: config/sh/sh.opt:53
+msgid "Generate SH2a code"
+msgstr "產生 SH2a 程å¼ç¢¼"
+
+#: config/sh/sh.opt:57
+msgid "Generate SH2a FPU-less code"
+msgstr "產生ä¸å¸¶ FPU çš„ SH2a 程å¼ç¢¼"
+
+#: config/sh/sh.opt:61
+msgid "Generate default single-precision SH2a code"
+msgstr "產生é è¨­çš„單精度 SH2a 程å¼ç¢¼"
+
+#: config/sh/sh.opt:65
+msgid "Generate only single-precision SH2a code"
+msgstr "åªç”¢ç”Ÿå–®ç²¾åº¦ SH2a 程å¼ç¢¼"
+
+#: config/sh/sh.opt:69
+msgid "Generate SH2e code"
+msgstr "產生 SH2e 程å¼ç¢¼"
+
+#: config/sh/sh.opt:73
+msgid "Generate SH3 code"
+msgstr "產生 SH3 程å¼ç¢¼"
+
+#: config/sh/sh.opt:77
+msgid "Generate SH3e code"
+msgstr "產生 SH3e 程å¼ç¢¼"
+
+#: config/sh/sh.opt:81
+msgid "Generate SH4 code"
+msgstr "產生 SH4 程å¼ç¢¼"
+
+#: config/sh/sh.opt:85
+msgid "Generate SH4 FPU-less code"
+msgstr "產生ä¸å¸¶ FPU çš„ SH4 程å¼ç¢¼"
+
+#: config/sh/sh.opt:89
+msgid "Generate default single-precision SH4 code"
+msgstr "產生é è¨­çš„單精度 SH4 程å¼ç¢¼"
+
+#: config/sh/sh.opt:93
+msgid "Generate only single-precision SH4 code"
+msgstr "åªç”¢ç”Ÿå–®ç²¾åº¦ SH4 程å¼ç¢¼"
+
+#: config/sh/sh.opt:97
+msgid "Generate SH4a code"
+msgstr "產生 SH4a 程å¼ç¢¼"
+
+#: config/sh/sh.opt:101
+msgid "Generate SH4a FPU-less code"
+msgstr "產生ä¸å¸¶ FPU çš„ SH4a 程å¼ç¢¼"
+
+#: config/sh/sh.opt:105
+msgid "Generate default single-precision SH4a code"
+msgstr "產生é è¨­çš„單精度 SH4a 程å¼ç¢¼"
+
+#: config/sh/sh.opt:109
+msgid "Generate only single-precision SH4a code"
+msgstr "åªç”¢ç”Ÿå–®ç²¾åº¦ SH4a 程å¼ç¢¼"
+
+#: config/sh/sh.opt:113
+msgid "Generate SH4al-dsp code"
+msgstr "產生 SH4al-dsp 程å¼ç¢¼"
+
+#: config/sh/sh.opt:117
+msgid "Generate 32-bit SHmedia code"
+msgstr "產生 32 ä½å…ƒ SHmedia 程å¼ç¢¼"
+
+#: config/sh/sh.opt:121
+msgid "Generate 32-bit FPU-less SHmedia code"
+msgstr "產生 32 ä½å…ƒä¸å¸¶ FPU çš„ SHmedia 程å¼ç¢¼"
+
+#: config/sh/sh.opt:125
+msgid "Generate 64-bit SHmedia code"
+msgstr "產生 64 ä½å…ƒ SHmedia 程å¼ç¢¼"
+
+#: config/sh/sh.opt:129
+msgid "Generate 64-bit FPU-less SHmedia code"
+msgstr "產生 64 ä½å…ƒä¸å¸¶ FPU çš„ SHmedia 程å¼ç¢¼"
+
+#: config/sh/sh.opt:133
+msgid "Generate SHcompact code"
+msgstr "產生 SHcompact 程å¼ç¢¼"
+
+#: config/sh/sh.opt:137
+msgid "Generate FPU-less SHcompact code"
+msgstr "產生ä¸å¸¶ FPU çš„ SHcompact 程å¼ç¢¼"
+
+#: config/sh/sh.opt:141
+msgid "Throttle unrolling to avoid thrashing target registers unless the unroll benefit outweighs this"
+msgstr ""
+
+#: config/sh/sh.opt:145
+msgid "Generate code in big endian mode"
+msgstr "產生高ä½ä½å…ƒçµ„在å‰çš„程å¼ç¢¼"
+
+#: config/sh/sh.opt:149
+msgid "Generate 32-bit offsets in switch tables"
+msgstr "在分支表中使用 32 ä½å…ƒå移é‡"
+
+#: config/sh/sh.opt:153
+msgid "Enable SH5 cut2 workaround"
+msgstr ""
+
+#: config/sh/sh.opt:157
+msgid "Align doubles at 64-bit boundaries"
+msgstr "在 64 ä½å…ƒé‚Šç•Œä¸Šå°é½Šé›™ç²¾åº¦è®Šæ•¸"
+
+#: config/sh/sh.opt:161
+msgid "Division strategy, one of: call, call2, fp, inv, inv:minlat, inv20u, inv20l, inv:call, inv:call2, inv:fp"
+msgstr ""
+
+#: config/sh/sh.opt:165
+msgid "Specify name for 32 bit signed division function"
+msgstr ""
+
+#: config/sh/sh.opt:172
+msgid "Cost to assume for gettr insn"
+msgstr ""
+
+#: config/sh/sh.opt:176 config/sh/sh.opt:222
+msgid "Follow Renesas (formerly Hitachi) / SuperH calling conventions"
+msgstr "é’循 Renesas(å…ˆå‰è¢«ç¨±ä½œ Hitachi)/SuperH 呼å«ç´„定"
+
+#: config/sh/sh.opt:180
+msgid "Increase the IEEE compliance for floating-point code"
+msgstr ""
+
+#: config/sh/sh.opt:184
+msgid "Enable the use of the indexed addressing mode for SHmedia32/SHcompact"
+msgstr ""
+
+#: config/sh/sh.opt:188
+msgid "Assume symbols might be invalid"
+msgstr "å‡å®šç¬¦è™Ÿå¯èƒ½ç„¡æ•ˆ"
+
+#: config/sh/sh.opt:192
+msgid "Annotate assembler instructions with estimated addresses"
+msgstr ""
+
+#: config/sh/sh.opt:196
+msgid "Generate code in little endian mode"
+msgstr "產生低ä½ä½å…ƒçµ„在å‰çš„程å¼ç¢¼"
+
+#: config/sh/sh.opt:200
+msgid "Mark MAC register as call-clobbered"
+msgstr "å°‡ MAC 暫存器標記為呼å«ç¯¡æ”¹çš„"
+
+#: config/sh/sh.opt:206
+msgid "Make structs a multiple of 4 bytes (warning: ABI altered)"
+msgstr ""
+
+#: config/sh/sh.opt:210
+msgid "Emit function-calls using global offset table when generating PIC"
+msgstr ""
+
+#: config/sh/sh.opt:214
+msgid "Assume pt* instructions won't trap"
+msgstr ""
+
+#: config/sh/sh.opt:218
+msgid "Shorten address references during linking"
+msgstr ""
+
+#: config/sh/sh.opt:226
+msgid "Deprecated. Use -Os instead"
+msgstr "å·²éŽæ™‚。請改用 -Os"
+
+#: config/sh/sh.opt:230
+msgid "Cost to assume for a multiply insn"
+msgstr ""
+
+#: config/sh/sh.opt:234
+msgid "Generate library function call to invalidate instruction cache entries after fixing trampoline"
+msgstr ""
+
+#: config/arm/arm.opt:24
+msgid "Specify an ABI"
+msgstr "指定一個 ABI"
+
+#: config/arm/arm.opt:28
+msgid "Generate a call to abort if a noreturn function returns"
+msgstr "當 noreturn 函å¼å›žå‚³æ™‚å‘¼å« abort"
+
+#: config/arm/arm.opt:35
+msgid "Pass FP arguments in FP registers"
+msgstr "在浮點暫存器中傳éžæµ®é»žåƒæ•¸"
+
+#: config/arm/arm.opt:39
+msgid "Generate APCS conformant stack frames"
+msgstr "產生與 APCS 相容的堆疊框架"
+
+#: config/arm/arm.opt:43
+msgid "Generate re-entrant, PIC code"
+msgstr "產生å¯é‡å…¥çš„ PIC 程å¼ç¢¼"
+
+#: config/arm/arm.opt:50
+msgid "Specify the name of the target architecture"
+msgstr "指定目的架構的å稱"
+
+#: config/arm/arm.opt:57
+msgid "Assume target CPU is configured as big endian"
+msgstr "å‡å®šç›®çš„ CPU 被é…置為高ä½ä½å…ƒçµ„在å‰"
+
+#: config/arm/arm.opt:61
+msgid "Thumb: Assume non-static functions may be called from ARM code"
+msgstr ""
+
+#: config/arm/arm.opt:65
+msgid "Thumb: Assume function pointers may go to non-Thumb aware code"
+msgstr ""
+
+#: config/arm/arm.opt:69
+msgid "Cirrus: Place NOPs to avoid invalid instruction combinations"
+msgstr "Cirrus:æ’å…¥ NOP 以é¿å…無效的指令組åˆ"
+
+#: config/arm/arm.opt:73
+msgid "Specify the name of the target CPU"
+msgstr "指定目的 CPU çš„å稱"
+
+#: config/arm/arm.opt:77
+msgid "Specify if floating point hardware should be used"
+msgstr "指定是å¦æ‡‰ç•¶ä½¿ç”¨ç¡¬é«”浮點"
+
+#: config/arm/arm.opt:91
+msgid "Specify the name of the target floating point hardware/format"
+msgstr "指定目的浮點硬體/æ ¼å¼çš„å稱"
+
+#: config/arm/arm.opt:95
+msgid "Alias for -mfloat-abi=hard"
+msgstr "-mfloat-abi=hard 的別å"
+
+#: config/arm/arm.opt:99
+msgid "Assume target CPU is configured as little endian"
+msgstr "å‡å®šç›®çš„ CPU 被é…置為低ä½ä½å…ƒçµ„在å‰"
+
+#: config/arm/arm.opt:103
+msgid "Generate call insns as indirect calls, if necessary"
+msgstr ""
+
+#: config/arm/arm.opt:107
+msgid "Specify the register to be used for PIC addressing"
+msgstr "指定用於 PIC 定å€çš„暫存器"
+
+#: config/arm/arm.opt:111
+msgid "Store function names in object code"
+msgstr "在目的檔案中存儲函å¼å"
+
+#: config/arm/arm.opt:115
+msgid "Permit scheduling of a function's prologue sequence"
+msgstr "å…許調度函å¼å‰è¨€åºåˆ—"
+
+#: config/arm/arm.opt:119
+msgid "Do not load the PIC register in function prologues"
+msgstr "ä¸åœ¨å‡½å¼å‰è¨€ä¸­è¼‰å…¥ PIC 暫存器"
+
+#: config/arm/arm.opt:123
+msgid "Alias for -mfloat-abi=soft"
+msgstr "-mfloat-abi=soft 的別å"
+
+#: config/arm/arm.opt:127
+msgid "Specify the minimum bit alignment of structures"
+msgstr ""
+
+#: config/arm/arm.opt:131
+msgid "Compile for the Thumb not the ARM"
+msgstr "為 Thumb 而ä¸æ˜¯ ARM 編譯"
+
+#: config/arm/arm.opt:135
+msgid "Support calls between Thumb and ARM instruction sets"
+msgstr ""
+
+#: config/arm/arm.opt:139
+msgid "Specify how to access the thread pointer"
+msgstr "指定如何存å–執行緒指標"
+
+#: config/arm/arm.opt:143
+msgid "Thumb: Generate (non-leaf) stack frames even if not needed"
+msgstr "Thumb:å³ä½¿ä¸éœ€è¦ä¹Ÿç”¢ç”Ÿ(éžè‘‰)堆疊框架"
+
+#: config/arm/arm.opt:147
+msgid "Thumb: Generate (leaf) stack frames even if not needed"
+msgstr "Thumb:å³ä½¿ä¸éœ€è¦ä¹Ÿç”¢ç”Ÿ(葉)堆疊框架"
+
+#: config/arm/arm.opt:151
+msgid "Tune code for the given processor"
+msgstr "為指定的處ç†å™¨æœ€ä½³åŒ–程å¼ç¢¼"
+
+#: config/arm/arm.opt:155
+msgid "Assume big endian bytes, little endian words"
+msgstr "å‡å®šé«˜ä½ä½å…ƒçµ„在å‰ï¼Œä½Žä½å­—在å‰"
+
+#: config/arm/pe.opt:24
+msgid "Ignore dllimport attribute for functions"
+msgstr "忽略函å¼çš„ dllimport 屬性"
+
+#: config/pdp11/pdp11.opt:24
+msgid "Generate code for an 11/10"
+msgstr "為 11/10 產生程å¼ç¢¼"
+
+#: config/pdp11/pdp11.opt:28
+msgid "Generate code for an 11/40"
+msgstr "為 11/40 產生程å¼ç¢¼"
+
+#: config/pdp11/pdp11.opt:32
+msgid "Generate code for an 11/45"
+msgstr "為 11/45 產生附加程å¼ç¢¼"
+
+#: config/pdp11/pdp11.opt:36
+msgid "Use 16-bit abs patterns"
+msgstr "使用 16 ä½ abs 模å¼"
+
+#: config/pdp11/pdp11.opt:40
+msgid "Return floating-point results in ac0 (fr0 in Unix assembler syntax)"
+msgstr "在 ac0(Unix 組譯語法中的 fr0)中回傳浮點çµæžœ"
+
+#: config/pdp11/pdp11.opt:44
+msgid "Do not use inline patterns for copying memory"
+msgstr ""
+
+#: config/pdp11/pdp11.opt:48
+msgid "Use inline patterns for copying memory"
+msgstr ""
+
+#: config/pdp11/pdp11.opt:52
+msgid "Do not pretend that branches are expensive"
+msgstr ""
+
+#: config/pdp11/pdp11.opt:56
+msgid "Pretend that branches are expensive"
+msgstr "å‡å®šåˆ†æ”¯ä»£åƒ¹å¾ˆé«˜æ˜‚"
+
+#: config/pdp11/pdp11.opt:60
+msgid "Use the DEC assembler syntax"
+msgstr "使用 DEC 組譯風格"
+
+#: config/pdp11/pdp11.opt:64
+msgid "Use 32 bit float"
+msgstr "使用 32 ä½å…ƒæµ®é»žæ•¸"
+
+#: config/pdp11/pdp11.opt:68
+msgid "Use 64 bit float"
+msgstr "使用 64 ä½å…ƒæµ®é»žæ•¸"
+
+#: config/pdp11/pdp11.opt:76
+msgid "Use 16 bit int"
+msgstr "使用 16 ä½æ•´æ•¸"
+
+#: config/pdp11/pdp11.opt:80
+msgid "Use 32 bit int"
+msgstr "使用 32 ä½å…ƒæ•´æ•¸"
+
+#: config/pdp11/pdp11.opt:88
+msgid "Target has split I&D"
+msgstr "目標平臺有分離的指令ã€è³‡æ–™ç©ºé–“"
+
+#: config/pdp11/pdp11.opt:92
+msgid "Use UNIX assembler syntax"
+msgstr "使用 UNIX 組譯風格"
+
+#: config/avr/avr.opt:24
+msgid "Use subroutines for function prologues and epilogues"
+msgstr "使用å­ç¨‹å¼å®Œæˆå‡½å¼å‰è¨€/å°¾è²"
+
+#: config/avr/avr.opt:28
+msgid "Select the target MCU"
+msgstr "é¸æ“‡ç›®çš„ MCU"
+
+#: config/avr/avr.opt:35
+msgid "Use STACK as the initial value of the stack pointer"
+msgstr ""
+
+#: config/avr/avr.opt:39
+msgid "Use an 8-bit 'int' type"
+msgstr "使用 8 ä½ã€Œintã€é¡žåž‹"
+
+#: config/avr/avr.opt:43
+msgid "Change the stack pointer without disabling interrupts"
+msgstr ""
+
+#: config/avr/avr.opt:47
+msgid "Do not generate tablejump insns"
+msgstr "ä¸ç”¢ç”Ÿè·³è½‰è¡¨æŒ‡ä»¤"
+
+#: config/avr/avr.opt:57
+msgid "Use rjmp/rcall (limited range) on >8K devices"
+msgstr ""
+
+#: config/avr/avr.opt:61
+msgid "Output instruction sizes to the asm file"
+msgstr ""
+
+#: config/avr/avr.opt:65
+msgid "Change only the low 8 bits of the stack pointer"
+msgstr "åªè®Šæ›´å †ç–ŠæŒ‡æ¨™çš„低 8 ä½"
+
+#: config/crx/crx.opt:24
+msgid "Support multiply accumulate instructions"
+msgstr "支æ´ä¹˜åŠ æŒ‡ä»¤"
+
+#: config/crx/crx.opt:28
+msgid "Do not use push to store function arguments"
+msgstr "ä¸ä½¿ç”¨ push 指令儲存函å¼åƒæ•¸"
+
+#: config/crx/crx.opt:32
+msgid "Restrict doloop to the given nesting level"
+msgstr ""
+
+#: config/c4x/c4x.opt:24
+msgid "Generate code for C30 CPU"
+msgstr "為 C30 CPU 產生程å¼ç¢¼"
+
+#: config/c4x/c4x.opt:28
+msgid "Generate code for C31 CPU"
+msgstr "為 C31 CPU 產生程å¼ç¢¼"
+
+#: config/c4x/c4x.opt:32
+msgid "Generate code for C32 CPU"
+msgstr "為 C32 CPU 產生程å¼ç¢¼"
+
+#: config/c4x/c4x.opt:36
+msgid "Generate code for C33 CPU"
+msgstr "為 C33 CPU 產生程å¼ç¢¼"
+
+#: config/c4x/c4x.opt:40
+msgid "Generate code for C40 CPU"
+msgstr "為 C40 CPU 產生程å¼ç¢¼"
+
+#: config/c4x/c4x.opt:44
+msgid "Generate code for C44 CPU"
+msgstr "為 C44 CPU 產生程å¼ç¢¼"
+
+#: config/c4x/c4x.opt:48
+msgid "Assume that pointers may be aliased"
+msgstr "å‡å®šæŒ‡æ¨™å¯èƒ½æœ‰åˆ¥å"
+
+#: config/c4x/c4x.opt:52
+msgid "Big memory model"
+msgstr "大記憶體模型"
+
+#: config/c4x/c4x.opt:56
+msgid "Use the BK register as a general purpose register"
+msgstr "å°‡ BK 暫存器åšç‚ºä¸€å€‹é€šç”¨æš«å­˜å™¨"
+
+#: config/c4x/c4x.opt:60
+msgid "Generate code for CPU"
+msgstr "為 CPU 產生程å¼ç¢¼"
+
+#: config/c4x/c4x.opt:64
+msgid "Enable use of DB instruction"
+msgstr "啟用 DB 指令"
+
+#: config/c4x/c4x.opt:68
+msgid "Enable debugging"
+msgstr "啟用除錯"
+
+#: config/c4x/c4x.opt:72
+msgid "Enable new features under development"
+msgstr "啟用開發中的新特性"
+
+#: config/c4x/c4x.opt:76
+msgid "Use fast but approximate float to integer conversion"
+msgstr "使用快速但欠精確的浮點ï¼æ•´æ•¸è½‰æ›"
+
+#: config/c4x/c4x.opt:80
+msgid "Force RTL generation to emit valid 3 operand insns"
+msgstr ""
+
+#: config/c4x/c4x.opt:84
+msgid "Force constants into registers to improve hoisting"
+msgstr ""
+
+#: config/c4x/c4x.opt:88 config/c4x/c4x.opt:112
+msgid "Save DP across ISR in small memory model"
+msgstr ""
+
+#: config/c4x/c4x.opt:92
+msgid "Allow unsigned iteration counts for RPTB/DB"
+msgstr ""
+
+#: config/c4x/c4x.opt:96
+msgid "Pass arguments on the stack"
+msgstr "在堆疊中傳éžåƒæ•¸"
+
+#: config/c4x/c4x.opt:100
+msgid "Use MPYI instruction for C3x"
+msgstr "為 C3x 使用 MPYI 指令"
+
+#: config/c4x/c4x.opt:104
+msgid "Enable parallel instructions"
+msgstr "啟用平行指令"
+
+#: config/c4x/c4x.opt:108
+msgid "Enable MPY||ADD and MPY||SUB instructions"
+msgstr "啟用 MPY||ADD 和 MPY||SUB 指令"
+
+#: config/c4x/c4x.opt:116
+msgid "Preserve all 40 bits of FP reg across call"
+msgstr "跨越呼å«é‚Šç•Œæ™‚ä¿è­‰æµ®é»žæš«å­˜å™¨æ‰€æœ‰çš„ 40 ä½ä¸è®Š"
+
+#: config/c4x/c4x.opt:120
+msgid "Pass arguments in registers"
+msgstr "在暫存器中傳éžåƒæ•¸"
+
+#: config/c4x/c4x.opt:124
+msgid "Enable use of RTPB instruction"
+msgstr "啟用 RTPB 指令集"
+
+#: config/c4x/c4x.opt:128
+msgid "Enable use of RTPS instruction"
+msgstr "啟用 RTPS 指令集"
+
+#: config/c4x/c4x.opt:132
+msgid "Set the maximum number of iterations for RPTS to N"
+msgstr "設定 RPTS 的最大éžè¿´æ•¸ç‚º N"
+
+#: config/c4x/c4x.opt:136
+msgid "Small memory model"
+msgstr "å°è¨˜æ†¶é«”模型"
+
+#: config/c4x/c4x.opt:140
+msgid "Emit code compatible with TI tools"
+msgstr "產生與 TI 工具相容的程å¼ç¢¼"
+
+#: config/pa/pa-hpux.opt:24
+msgid "Generate cpp defines for server IO"
+msgstr "為伺æœå™¨ IO 產生 cpp 定義"
+
+#: config/pa/pa-hpux.opt:28 config/pa/pa-hpux1010.opt:24
+#: config/pa/pa-hpux1111.opt:24
+msgid "Specify UNIX standard for predefines and linking"
+msgstr "指定用於é å®šç¾©å’Œé€£çµçš„ UNIX 標準"
+
+#: config/pa/pa-hpux.opt:32
+msgid "Generate cpp defines for workstation IO"
+msgstr "為工作站 IO 產生 cpp 定義"
+
+#: config/pa/pa.opt:24 config/pa/pa.opt:77 config/pa/pa.opt:85
+msgid "Generate PA1.0 code"
+msgstr "產生 PA1.0 程å¼ç¢¼"
+
+#: config/pa/pa.opt:28 config/pa/pa.opt:89 config/pa/pa.opt:109
+msgid "Generate PA1.1 code"
+msgstr "產生 PA1.1 程å¼ç¢¼"
+
+#: config/pa/pa.opt:32 config/pa/pa.opt:93
+msgid "Generate PA2.0 code (requires binutils 2.10 or later)"
+msgstr "產生 PA2.0 程å¼ç¢¼(éœ€è¦ binutils 2.10 或更新版本)"
+
+#: config/pa/pa.opt:36
+msgid "Generate code for huge switch statements"
+msgstr "為巨型的 switch 敘述產生程å¼ç¢¼"
+
+#: config/pa/pa.opt:40
+msgid "Disable FP regs"
+msgstr "åœç”¨æµ®é»žæš«å­˜å™¨"
+
+#: config/pa/pa.opt:44
+msgid "Disable indexed addressing"
+msgstr "åœç”¨è®Šå€å®šå€"
+
+#: config/pa/pa.opt:48
+msgid "Generate fast indirect calls"
+msgstr "產生快速間接呼å«"
+
+#: config/pa/pa.opt:56
+msgid "Assume code will be assembled by GAS"
+msgstr "å‡å®šç¨‹å¼ç¢¼å°‡ç”± GAS 組譯"
+
+#: config/pa/pa.opt:60
+msgid "Put jumps in call delay slots"
+msgstr "將跳轉放置在延é²å‘¼å«æ§½å…§"
+
+#: config/pa/pa.opt:65
+msgid "Enable linker optimizations"
+msgstr "啟用連çµå™¨æœ€ä½³åŒ–"
+
+#: config/pa/pa.opt:69
+msgid "Always generate long calls"
+msgstr "總是產生é å‘¼å«"
+
+#: config/pa/pa.opt:73
+msgid "Emit long load/store sequences"
+msgstr "產生長讀/寫åºåˆ—"
+
+#: config/pa/pa.opt:81
+msgid "Disable space regs"
+msgstr "åœç”¨ç©ºé–“暫存器"
+
+#: config/pa/pa.opt:97
+msgid "Use portable calling conventions"
+msgstr "使用一般的呼å«ç´„定"
+
+#: config/pa/pa.opt:101
+msgid "Specify CPU for scheduling purposes. Valid arguments are 700, 7100, 7100LC, 7200, 7300, and 8000"
+msgstr "指定調度最佳化的目的 CPU。有效的é¸é …是 700,7100,7100LC,7200,7300,和 8000"
+
+#: config/pa/pa.opt:113
+msgid "Do not disable space regs"
+msgstr "ä¸åœç”¨ç©ºé–“暫存器"
+
+#: config/pa/pa64-hpux.opt:24
+msgid "Assume code will be linked by GNU ld"
+msgstr "å‡å®šç¨‹å¼ç¢¼å°‡ç”± GNU ld 連çµ"
+
+#: config/pa/pa64-hpux.opt:28
+msgid "Assume code will be linked by HP ld"
+msgstr "å‡å®šç¨‹å¼ç¢¼å°‡ç”± HP ld 連çµ"
+
+#: config/xtensa/xtensa.opt:24
+msgid "Use CONST16 instruction to load constants"
+msgstr "使用 CONST16 指令載入常數"
+
+#: config/xtensa/xtensa.opt:28
+msgid "Enable fused multiply/add and multiply/subtract FP instructions"
+msgstr "啟用èžåˆçš„乘加和乘減浮點指令"
+
+#: config/xtensa/xtensa.opt:32
+msgid "Use indirect CALLXn instructions for large programs"
+msgstr ""
+
+#: config/xtensa/xtensa.opt:36
+msgid "Automatically align branch targets to reduce branch penalties"
+msgstr ""
+
+#: config/xtensa/xtensa.opt:40
+msgid "Intersperse literal pools with code in the text section"
+msgstr ""
+
+#: config/stormy16/stormy16.opt:25
+msgid "Provide libraries for the simulator"
+msgstr "為模擬器æ供函å¼åº«"
+
+#: config/mips/mips.opt:24
+msgid "Generate code that conforms to the given ABI"
+msgstr "產生éµå¾ªçµ¦å®š ABI 的程å¼ç¢¼"
+
+#: config/mips/mips.opt:28
+msgid "Use SVR4-style PIC"
+msgstr "ä¸ä½¿ç”¨ SVR4 風格的 PIC"
+
+#: config/mips/mips.opt:32
+msgid "Use PMC-style 'mad' instructions"
+msgstr "使用 PMC 風格的「madã€æŒ‡ä»¤"
+
+#: config/mips/mips.opt:36
+msgid "Generate code for the given ISA"
+msgstr "為給定的 ISA 產生程å¼ç¢¼"
+
+#: config/mips/mips.opt:40
+msgid "Use Branch Likely instructions, overriding the architecture default"
+msgstr ""
+
+#: config/mips/mips.opt:44
+msgid "Trap on integer divide by zero"
+msgstr "整數被零除時進入陷阱"
+
+#: config/mips/mips.opt:48
+msgid "Use branch-and-break sequences to check for integer divide by zero"
+msgstr "使用分支-æ’æ–·åºåˆ—來åµæ¸¬æ•´æ•¸é›¶é™¤"
+
+#: config/mips/mips.opt:52
+msgid "Use trap instructions to check for integer divide by zero"
+msgstr "使用陷阱指令åµæ¸¬æ•´æ•¸é›¶é™¤"
+
+#: config/mips/mips.opt:56
+msgid "Allow hardware floating-point instructions to cover both 32-bit and 64-bit operations"
+msgstr ""
+
+#: config/mips/mips.opt:60
+msgid "Use MIPS-DSP instructions"
+msgstr "使用 MIPS-DSP 指令"
+
+#: config/mips/mips.opt:70
+msgid "Use big-endian byte order"
+msgstr "令高ä½ä½å…ƒçµ„在å‰"
+
+#: config/mips/mips.opt:74
+msgid "Use little-endian byte order"
+msgstr "令低ä½ä½å…ƒçµ„在å‰"
+
+#: config/mips/mips.opt:78 config/iq2000/iq2000.opt:32
+msgid "Use ROM instead of RAM"
+msgstr "使用 ROM 而ä¸æ˜¯ RAM"
+
+#: config/mips/mips.opt:82
+msgid "Use NewABI-style %reloc() assembly operators"
+msgstr "使用 NewABI 風格的 %reloc() 組譯é‹ç®—å­"
+
+#: config/mips/mips.opt:86
+msgid "Work around certain R4000 errata"
+msgstr "為æŸäº› R4000 缺陷æ供變通"
+
+#: config/mips/mips.opt:90
+msgid "Work around certain R4400 errata"
+msgstr "為æŸäº› R4400 缺陷æ供變通"
+
+#: config/mips/mips.opt:94
+msgid "Work around errata for early SB-1 revision 2 cores"
+msgstr "為早期 SB-1 rev 2 核心的缺陷æ供變通"
+
+#: config/mips/mips.opt:98
+msgid "Work around certain VR4120 errata"
+msgstr "為æŸäº› VR4210 缺陷æ供變通"
+
+#: config/mips/mips.opt:102
+msgid "Work around VR4130 mflo/mfhi errata"
+msgstr "為 VR4130 mflo/mfhi 缺陷æ供變通"
+
+#: config/mips/mips.opt:106
+msgid "Work around an early 4300 hardware bug"
+msgstr "為早期 4300 的硬體缺陷æ供變通"
+
+#: config/mips/mips.opt:110
+msgid "FP exceptions are enabled"
+msgstr "FP 異常已啟用"
+
+#: config/mips/mips.opt:114
+msgid "Use 32-bit floating-point registers"
+msgstr "使用 32 ä½å…ƒæµ®é»žæš«å­˜å™¨"
+
+#: config/mips/mips.opt:118
+msgid "Use 64-bit floating-point registers"
+msgstr "使用 64 ä½å…ƒæµ®é»žæš«å­˜å™¨"
+
+#: config/mips/mips.opt:122
+msgid "Use FUNC to flush the cache before calling stack trampolines"
+msgstr ""
+
+#: config/mips/mips.opt:126
+msgid "Generate floating-point multiply-add instructions"
+msgstr "產生浮點乘加指令"
+
+#: config/mips/mips.opt:130
+msgid "Use 32-bit general registers"
+msgstr "使用 32 ä½å…ƒé€šç”¨æš«å­˜å™¨"
+
+#: config/mips/mips.opt:134
+msgid "Use 64-bit general registers"
+msgstr "使用 64 ä½å…ƒé€šç”¨æš«å­˜å™¨"
+
+#: config/mips/mips.opt:138
+msgid "Allow the use of hardware floating-point instructions"
+msgstr "å…許使用硬體浮點指令"
+
+#: config/mips/mips.opt:142
+msgid "Generate code for ISA level N"
+msgstr "為層級 N çš„ ISA 產生附加程å¼ç¢¼"
+
+#: config/mips/mips.opt:146
+msgid "Generate mips16 code"
+msgstr "產生 mips16 程å¼ç¢¼"
+
+#: config/mips/mips.opt:150
+msgid "Use MIPS-3D instructions"
+msgstr "使用 MIPS-3D 指令"
+
+#: config/mips/mips.opt:154
+msgid "Use indirect calls"
+msgstr "使用間接呼å«"
+
+#: config/mips/mips.opt:158
+msgid "Use a 32-bit long type"
+msgstr "使用 32 ä½å…ƒ long é¡žåž‹"
+
+#: config/mips/mips.opt:162
+msgid "Use a 64-bit long type"
+msgstr "使用 64 ä½å…ƒ long é¡žåž‹"
+
+#: config/mips/mips.opt:166
+msgid "Don't optimize block moves"
+msgstr "ä¸æœ€ä½³åŒ–塊移動"
+
+#: config/mips/mips.opt:170
+msgid "Use the mips-tfile postpass"
+msgstr "使用 mips-tfile 後處ç†"
+
+#: config/mips/mips.opt:174
+msgid "Do not use a cache-flushing function before calling stack trampolines"
+msgstr ""
+
+#: config/mips/mips.opt:178
+msgid "Generate normal-mode code"
+msgstr "產生普通模å¼çš„程å¼ç¢¼"
+
+#: config/mips/mips.opt:182
+msgid "Do not use MIPS-3D instructions"
+msgstr "ä¸ä½¿ç”¨ MIPS-3D 指令"
+
+#: config/mips/mips.opt:186
+msgid "Use paired-single floating-point instructions"
+msgstr "使用é…å°çš„單精度浮點指令"
+
+#: config/mips/mips.opt:190
+msgid "Restrict the use of hardware floating-point instructions to 32-bit operations"
+msgstr ""
+
+#: config/mips/mips.opt:194
+msgid "Prevent the use of all hardware floating-point instructions"
+msgstr "ä¸å…許使用任何硬體浮點指令"
+
+#: config/mips/mips.opt:198
+msgid "Optimize lui/addiu address loads"
+msgstr "最佳化 lui/addiu 記憶體載入"
+
+#: config/mips/mips.opt:202
+msgid "Assume all symbols have 32-bit values"
+msgstr "å‡å®šæ‰€æœ‰è™Ÿéƒ½æœ‰ 32 ä½å…ƒå€¼"
+
+#: config/mips/mips.opt:206
+msgid "Optimize the output for PROCESSOR"
+msgstr "為 PROCESSOR 最佳化輸出"
+
+#: config/mips/mips.opt:210 config/iq2000/iq2000.opt:45
+msgid "Put uninitialized constants in ROM (needs -membedded-data)"
+msgstr "將未åˆå§‹åŒ–的常數放在 ROM 中(éœ€è¦ -membedded-data)"
+
+#: config/mips/mips.opt:214
+msgid "Perform VR4130-specific alignment optimizations"
+msgstr "進行 VR4130 特定的å°é½Šæœ€ä½³åŒ–"
+
+#: config/mips/mips.opt:218
+msgid "Lift restrictions on GOT size"
+msgstr "消除 GOT 大å°é™åˆ¶"
+
+#: config/fr30/fr30.opt:24
+msgid "Assume small address space"
+msgstr "å‡å®šå°ä½å€ç©ºé–“"
+
+#: config/m68hc11/m68hc11.opt:24 config/m68hc11/m68hc11.opt:32
+msgid "Compile for a 68HC11"
+msgstr "為 68HC11 組譯"
+
+#: config/m68hc11/m68hc11.opt:28 config/m68hc11/m68hc11.opt:36
+msgid "Compile for a 68HC12"
+msgstr "為 68HC12 組譯"
+
+#: config/m68hc11/m68hc11.opt:42 config/m68hc11/m68hc11.opt:46
+msgid "Compile for a 68HCS12"
+msgstr "為 68HCS12 組譯"
+
+#: config/m68hc11/m68hc11.opt:50
+msgid "Auto pre/post decrement increment allowed"
+msgstr "å…許自動å‰/後自減增"
+
+#: config/m68hc11/m68hc11.opt:54
+msgid "Min/max instructions allowed"
+msgstr "å…許 min/max 指令"
+
+#: config/m68hc11/m68hc11.opt:58
+msgid "Use call and rtc for function calls and returns"
+msgstr ""
+
+#: config/m68hc11/m68hc11.opt:62
+msgid "Auto pre/post decrement increment not allowed"
+msgstr "ä¸å…許自動å‰/後自減增"
+
+#: config/m68hc11/m68hc11.opt:66
+msgid "Use jsr and rts for function calls and returns"
+msgstr ""
+
+#: config/m68hc11/m68hc11.opt:70
+msgid "Min/max instructions not allowed"
+msgstr "ä¸å…許 min/max 指令"
+
+#: config/m68hc11/m68hc11.opt:74
+msgid "Use direct addressing mode for soft registers"
+msgstr "為軟暫存器使用直接定å€"
+
+#: config/m68hc11/m68hc11.opt:78
+msgid "Compile with 32-bit integer mode"
+msgstr "以 32 ä½å…ƒæ•´æ•¸æ¨¡å¼ç·¨è­¯"
+
+#: config/m68hc11/m68hc11.opt:83
+msgid "Specify the register allocation order"
+msgstr "指定指派暫存器的順åº"
+
+#: config/m68hc11/m68hc11.opt:87
+msgid "Do not use direct addressing mode for soft registers"
+msgstr "ä¸ç‚ºè»Ÿæš«å­˜å™¨ä½¿ç”¨ç›´æŽ¥å®šå€"
+
+#: config/m68hc11/m68hc11.opt:91
+msgid "Compile with 16-bit integer mode"
+msgstr "以 16 ä½æ•´æ•¸æ¨¡å¼ç·¨è­¯"
+
+#: config/m68hc11/m68hc11.opt:95
+msgid "Indicate the number of soft registers available"
+msgstr "指示å¯ç”¨çš„軟暫存器的數é‡"
+
+#: config/vax/vax.opt:24 config/vax/vax.opt:28
+msgid "Target DFLOAT double precision code"
+msgstr "產生 DFLOAT 雙精度程å¼ç¢¼"
+
+#: config/vax/vax.opt:32 config/vax/vax.opt:36
+msgid "Generate GFLOAT double precision code"
+msgstr "產生 GFLOAT 雙精度程å¼ç¢¼"
+
+#: config/vax/vax.opt:40
+msgid "Generate code for GNU assembler (gas)"
+msgstr "為 GNU 組譯器(gas)產生程å¼ç¢¼"
+
+#: config/vax/vax.opt:44
+msgid "Generate code for UNIX assembler"
+msgstr "為 UNIX 組譯器產生程å¼ç¢¼"
+
+#: config/vax/vax.opt:48
+msgid "Use VAXC structure conventions"
+msgstr "使用 VAXC çµæ§‹ç´„定"
+
+#: config/cris/linux.opt:28
+msgid "Together with -fpic and -fPIC, do not use GOTPLT references"
+msgstr ""
+
+#: config/cris/cris.opt:46
+msgid "Work around bug in multiplication instruction"
+msgstr "為乘法指令中的缺陷æ供變通"
+
+#: config/cris/cris.opt:52
+msgid "Compile for ETRAX 4 (CRIS v3)"
+msgstr "為 ETRAX 4 (CRIS v3) 編譯"
+
+#: config/cris/cris.opt:57
+msgid "Compile for ETRAX 100 (CRIS v8)"
+msgstr "為 ETRAX 100 (CRIS v8) 編譯"
+
+#: config/cris/cris.opt:65
+msgid "Emit verbose debug information in assembly code"
+msgstr "在組譯程å¼ç¢¼ä¸­ç”¢ç”Ÿè©³ç´°çš„除錯資訊"
+
+#: config/cris/cris.opt:72
+msgid "Do not use condition codes from normal instructions"
+msgstr ""
+
+#: config/cris/cris.opt:81
+msgid "Do not emit addressing modes with side-effect assignment"
+msgstr ""
+
+#: config/cris/cris.opt:90
+msgid "Do not tune stack alignment"
+msgstr "ä¸èª¿æ•´å †ç–Šå°é½Š"
+
+#: config/cris/cris.opt:99
+msgid "Do not tune writable data alignment"
+msgstr "ä¸èª¿æ•´å¯å¯«è³‡æ–™å°é½Š"
+
+#: config/cris/cris.opt:108
+msgid "Do not tune code and read-only data alignment"
+msgstr "ä¸èª¿æ•´ç¨‹å¼ç¢¼å’Œå”¯è®€è³‡æ–™å°é½Š"
+
+#: config/cris/cris.opt:117
+msgid "Align code and data to 32 bits"
+msgstr "將程å¼ç¢¼å’Œè³‡æ–™å°é½Šåˆ° 32 ä½å…ƒé‚Šç•Œä¸Š"
+
+#: config/cris/cris.opt:134
+msgid "Don't align items in code or data"
+msgstr ""
+
+#: config/cris/cris.opt:143
+msgid "Do not emit function prologue or epilogue"
+msgstr "ä¸ç”¢ç”Ÿå‡½å¼å‰è¨€å’Œå°¾è²"
+
+#: config/cris/cris.opt:150
+msgid "Use the most feature-enabling options allowed by other options"
+msgstr ""
+
+#: config/cris/cris.opt:159
+msgid "Override -mbest-lib-options"
+msgstr "覆寫 -mbest-lib-options"
+
+#: config/cris/cris.opt:166
+msgid "Generate code for the specified chip or CPU version"
+msgstr "為指定的晶片或 CPU 版本產生程å¼ç¢¼"
+
+#: config/cris/cris.opt:170
+msgid "Tune alignment for the specified chip or CPU version"
+msgstr "為指定的晶片或 CPU 版本調整å°é½Š"
+
+#: config/cris/cris.opt:174
+msgid "Warn when a stackframe is larger than the specified size"
+msgstr "當堆疊框架大於指定值時給出警告"
+
+#: config/cris/aout.opt:28
+msgid "Compile for the MMU-less Etrax 100-based elinux system"
+msgstr "為沒有 MMU 的基於 Etrax 100 的 elinux 系統編譯"
+
+#: config/cris/aout.opt:34
+msgid "For elinux, request a specified stack-size for this program"
+msgstr ""
+
+#: config/h8300/h8300.opt:24
+msgid "Generate H8S code"
+msgstr "產生 H8S 程å¼ç¢¼"
+
+#: config/h8300/h8300.opt:28
+msgid "Generate H8SX code"
+msgstr "產生 H8SX 程å¼ç¢¼"
+
+#: config/h8300/h8300.opt:32
+msgid "Generate H8S/2600 code"
+msgstr "產生 H8S/2600 程å¼ç¢¼"
+
+#: config/h8300/h8300.opt:36
+msgid "Make integers 32 bits wide"
+msgstr "讓整數有 32 ä½å…ƒå¯¬"
+
+#: config/h8300/h8300.opt:43
+msgid "Use registers for argument passing"
+msgstr "使用暫存器傳éžåƒæ•¸"
+
+#: config/h8300/h8300.opt:47
+msgid "Consider access to byte sized memory slow"
+msgstr ""
+
+#: config/h8300/h8300.opt:51
+msgid "Enable linker relaxing"
+msgstr "啟用連çµå™¨é¬†å¼›"
+
+#: config/h8300/h8300.opt:55
+msgid "Generate H8/300H code"
+msgstr "產生 H8/300H 程å¼ç¢¼"
+
+#: config/h8300/h8300.opt:59
+msgid "Enable the normal mode"
+msgstr "啟用正常模å¼"
+
+#: config/h8300/h8300.opt:63
+msgid "Use H8/300 alignment rules"
+msgstr "使用 H8/300 å°é½Šè¦å‰‡"
+
+#: config/v850/v850.opt:24
+msgid "Use registers r2 and r5"
+msgstr "使用暫存器 r2 和 r5"
+
+#: config/v850/v850.opt:28
+msgid "Use 4 byte entries in switch tables"
+msgstr "在分支表中使用 4 ä½å…ƒçµ„é•·çš„æ¢ç›®"
+
+#: config/v850/v850.opt:32
+msgid "Enable backend debugging"
+msgstr "啟用後端程å¼é™¤éŒ¯"
+
+#: config/v850/v850.opt:36
+msgid "Do not use the callt instruction"
+msgstr "ä¸ä½¿ç”¨ callt 指令"
+
+#: config/v850/v850.opt:40
+msgid "Reuse r30 on a per function basis"
+msgstr "為æ¯å€‹å‡½å¼é‡ç”¨ r30"
+
+#: config/v850/v850.opt:44
+msgid "Support Green Hills ABI"
+msgstr "æ”¯æ´ Green Hills ABI"
+
+#: config/v850/v850.opt:48
+msgid "Prohibit PC relative function calls"
+msgstr "ç¦æ­¢ç›¸å° PC 的函å¼å‘¼å«"
+
+#: config/v850/v850.opt:52
+msgid "Use stubs for function prologues"
+msgstr "使用å ä½ç¨‹å¼å®Œæˆå‡½å¼å‰è¨€/å°¾è²"
+
+#: config/v850/v850.opt:56
+msgid "Set the max size of data eligible for the SDA area"
+msgstr ""
+
+#: config/v850/v850.opt:60
+msgid "Enable the use of the short load instructions"
+msgstr "啟用å°çŸ­è¼‰å…¥æŒ‡ä»¤çš„使用"
+
+#: config/v850/v850.opt:64
+msgid "Same as: -mep -mprolog-function"
+msgstr "與 -mep -mprolog-function 相åŒ"
+
+#: config/v850/v850.opt:68
+msgid "Set the max size of data eligible for the TDA area"
+msgstr ""
+
+#: config/v850/v850.opt:72
+msgid "Enforce strict alignment"
+msgstr "強制嚴格å°é½Š"
+
+#: config/v850/v850.opt:79
+msgid "Compile for the v850 processor"
+msgstr "為 v850 處ç†å™¨ç·¨è­¯"
+
+#: config/v850/v850.opt:83
+msgid "Compile for the v850e processor"
+msgstr "為 v850e 處ç†å™¨ç·¨è­¯"
+
+#: config/v850/v850.opt:87
+msgid "Compile for the v850e1 processor"
+msgstr "為 v850e1 處ç†å™¨ç·¨è­¯"
+
+#: config/v850/v850.opt:91
+msgid "Set the max size of data eligible for the ZDA area"
+msgstr ""
+
+#: config/mmix/mmix.opt:25
+msgid "For intrinsics library: pass all parameters in registers"
+msgstr "為內建函å¼åº«ï¼šæ‰€æœ‰åƒæ•¸åœ¨æš«å­˜å™¨ä¸­å‚³éž"
+
+#: config/mmix/mmix.opt:29
+msgid "Use register stack for parameters and return value"
+msgstr "使用暫存器堆疊傳éžåƒæ•¸å’Œå›žå‚³å€¼"
+
+#: config/mmix/mmix.opt:33
+msgid "Use call-clobbered registers for parameters and return value"
+msgstr "將呼å«ç¯¡æ”¹çš„暫存器用於åƒæ•¸å’Œå›žå‚³å€¼"
+
+#: config/mmix/mmix.opt:38
+msgid "Use epsilon-respecting floating point compare instructions"
+msgstr "使用在æ„無窮å°çš„浮點比較指令"
+
+#: config/mmix/mmix.opt:42
+msgid "Use zero-extending memory loads, not sign-extending ones"
+msgstr "使用零擴充而ä¸æ˜¯ç¬¦è™Ÿæ“´å……的記憶體載入"
+
+#: config/mmix/mmix.opt:46
+msgid "Generate divide results with reminder having the same sign as the divisor (not the dividend)"
+msgstr "產生的除法çµæžœä¸­é¤˜æ•¸ç¬¦è™Ÿå°‡èˆ‡é™¤æ•¸è€Œä¸æ˜¯è¢«é™¤æ•¸ç›¸åŒ"
+
+#: config/mmix/mmix.opt:50
+msgid "Prepend global symbols with \":\" (for use with PREFIX)"
+msgstr "在全域符號å‰åŠ å…¥ã€Œ:ã€(為與 PREFIX å”作)"
+
+#: config/mmix/mmix.opt:54
+msgid "Do not provide a default start-address 0x100 of the program"
+msgstr "ä¸ç‚ºç¨‹å¼æä¾›é è¨­çš„起始ä½å€ 0x100"
+
+#: config/mmix/mmix.opt:58
+msgid "Link to emit program in ELF format (rather than mmo)"
+msgstr "連çµç”¢ç”Ÿ ELF è€Œéž mmo æ ¼å¼çš„程å¼"
+
+#: config/mmix/mmix.opt:62
+msgid "Use P-mnemonics for branches statically predicted as taken"
+msgstr "為éœæ…‹é æ¸¬ç‚ºå¿…è¦é€²è¡Œçš„跳轉使用 P 助憶符號"
+
+#: config/mmix/mmix.opt:66
+msgid "Don't use P-mnemonics for branches"
+msgstr "ä¸ç‚ºåˆ†æ”¯ä½¿ç”¨ P 助憶符號"
+
+#: config/mmix/mmix.opt:80
+msgid "Use addresses that allocate global registers"
+msgstr "使用指派全域暫存器的ä½å€"
+
+#: config/mmix/mmix.opt:84
+msgid "Do not use addresses that allocate global registers"
+msgstr "ä¸ä½¿ç”¨æŒ‡æ´¾å…¨åŸŸæš«å­˜å™¨çš„ä½å€"
+
+#: config/mmix/mmix.opt:88
+msgid "Generate a single exit point for each function"
+msgstr "為æ¯å€‹å‡½å¼ç”¢ç”Ÿå–®ä¸€çš„離開點"
+
+#: config/mmix/mmix.opt:92
+msgid "Do not generate a single exit point for each function"
+msgstr "ä¸ç‚ºæ¯å€‹å‡½å¼ç”¢ç”Ÿå–®ä¸€çš„離開點"
+
+#: config/mmix/mmix.opt:96
+msgid "Set start-address of the program"
+msgstr "設定程å¼çš„起始ä½å€"
+
+#: config/mmix/mmix.opt:100
+msgid "Set start-address of data"
+msgstr "設定資料的起始ä½å€"
+
+#: config/iq2000/iq2000.opt:28
+msgid "Specify CPU for scheduling purposes"
+msgstr "為調度指定目的 CPU"
+
+#: config/iq2000/iq2000.opt:36
+msgid "Use GP relative sdata/sbss sections"
+msgstr "ä½¿ç”¨ç›¸å° GP çš„ sdata/sbss å€æ®µ"
+
+#: config/iq2000/iq2000.opt:41
+msgid "No default crt0.o"
+msgstr "沒有é è¨­çš„ crt0.o"
+
+#: config/bfin/bfin.opt:24
+msgid "Omit frame pointer for leaf functions"
+msgstr "為葉函å¼(ä¸å‘¼å«å…¶å®ƒå‡½å¼çš„函å¼)忽略框架指標"
+
+#: config/bfin/bfin.opt:28
+msgid "Program is entirely located in low 64k of memory"
+msgstr "程å¼å®Œå…¨ä½æ–¼è¨˜æ†¶é«”的低 64K"
+
+#: config/bfin/bfin.opt:32
+msgid "Work around a hardware anomaly by adding a number of NOPs before a"
+msgstr ""
+
+#: config/bfin/bfin.opt:37
+msgid "Avoid speculative loads to work around a hardware anomaly."
+msgstr ""
+
+#: config/bfin/bfin.opt:41
+msgid "Enabled ID based shared library"
+msgstr "啟用基於 ID 的共享函å¼åº«"
+
+#: config/bfin/bfin.opt:49
+msgid "Avoid generating pc-relative calls; use indirection"
+msgstr "é¿å…ç”¢ç”Ÿç›¸å° PC 的呼å«ï¼›ä½¿ç”¨é–“接呼å«"
+
+#: config/vxworks.opt:25
+msgid "Assume the VxWorks RTP environment"
+msgstr "å‡å®š VxWorks RTP 環境"
+
+#: config/vxworks.opt:32
+msgid "Assume the VxWorks vThreads environment"
+msgstr "å‡å®š VxWorks vThreads 環境"
+
+#: config/darwin.opt:24
+msgid "Generate code suitable for fast turn around debugging"
+msgstr ""
+
+#: config/darwin.opt:28
+msgid "The earliest MacOS X version on which this program will run"
+msgstr "這個程å¼å¯èƒ½åœ¨å…¶ä¸ŠåŸ·è¡Œçš„最早的 MacOS X 版本"
+
+#: config/darwin.opt:32
+msgid "Set sizeof(bool) to 1"
+msgstr "設定 sizeof(bool) 為 1"
+
+#: config/lynx.opt:24
+msgid "Support legacy multi-threading"
+msgstr "支æ´å‚³çµ±å¤šåŸ·è¡Œç·’"
+
+#: config/lynx.opt:28
+msgid "Use shared libraries"
+msgstr "使用共享函å¼åº«"
+
+#: config/lynx.opt:32
+msgid "Support multi-threading"
+msgstr "支æ´å¤šåŸ·è¡Œç·’"
+
+#: c.opt:42
+msgid "Assert the <answer> to <question>. Putting '-' before <question> disables the <answer> to <question>"
+msgstr "給出 <å•é¡Œ> çš„ <答案>。在 <å•é¡Œ> å‰åŠ ä¸€å€‹ã€Œ-ã€å°‡åœç”¨æ­¤ <答案>"
+
+#: c.opt:46
+msgid "Do not discard comments"
+msgstr "ä¸ä¸Ÿæ£„註釋"
+
+#: c.opt:50
+msgid "Do not discard comments in macro expansions"
+msgstr "展開巨集時ä¸ä¸Ÿæ£„註釋"
+
+#: c.opt:54
+msgid "Define a <macro> with <val> as its value. If just <macro> is given, <val> is taken to be 1"
+msgstr "å°‡ <巨集> 定義為 <值>。如果åªçµ¦å‡ºäº† <巨集>,<值> 將被定為 1"
+
+#: c.opt:61
+msgid "Add <dir> to the end of the main framework include path"
+msgstr "å°‡ <目錄> 加入到主框架包å«è·¯å¾‘的末尾"
+
+#: c.opt:65
+msgid "Print the name of header files as they are used"
+msgstr "列å°ä½¿ç”¨åˆ°çš„標頭檔案å"
+
+#: c.opt:69 c.opt:782
+msgid "Add <dir> to the end of the main include path"
+msgstr "å°‡ <目錄> 加入到主包å«è·¯å¾‘末尾"
+
+#: c.opt:73
+msgid "Generate make dependencies"
+msgstr "產生 make ä¾è³´é …"
+
+#: c.opt:77
+msgid "Generate make dependencies and compile"
+msgstr "產生 make ä¾è³´è¦å‰‡ä¸¦ç·¨è­¯"
+
+#: c.opt:81
+msgid "Write dependency output to the given file"
+msgstr "å°‡ä¾è³´é …輸出到給定檔案"
+
+#: c.opt:85
+msgid "Treat missing header files as generated files"
+msgstr "將缺失的標頭檔案看作產生的檔案"
+
+#: c.opt:89
+msgid "Like -M but ignore system header files"
+msgstr "與 -M 類似但是忽略系統標頭檔案"
+
+#: c.opt:93
+msgid "Like -MD but ignore system header files"
+msgstr "與 -MD 類似但是忽略系統標頭檔案"
+
+#: c.opt:97
+msgid "Generate phony targets for all headers"
+msgstr "為所有標頭產生å‡çš„目的"
+
+#: c.opt:101
+msgid "Add a MAKE-quoted target"
+msgstr "加入一個 MAKE 括起的目的"
+
+#: c.opt:105
+msgid "Add an unquoted target"
+msgstr "加入一個ä¸æ‹¬èµ·çš„目的"
+
+#: c.opt:109
+msgid "Do not generate #line directives"
+msgstr "ä¸ç”¢ç”Ÿ #line 指令"
+
+#: c.opt:113
+msgid "Undefine <macro>"
+msgstr "å–消定義 <巨集>"
+
+#: c.opt:117
+msgid "Warn about things that will change when compiling with an ABI-compliant compiler"
+msgstr "當çµæžœèˆ‡ ABI 相容的編譯器的編譯çµæžœä¸åŒæ™‚給出警告"
+
+#: c.opt:121
+msgid "Enable most warning messages"
+msgstr "啟用大部分警告資訊"
+
+#: c.opt:125
+msgid "Warn whenever an Objective-C assignment is being intercepted by the garbage collector"
+msgstr "當 Objective-C 賦值å¯èƒ½ç‚ºç„¡ç”¨å›žæ”¶æ‰€ä»‹å…¥æ™‚給出警告"
+
+#: c.opt:129
+msgid "Warn about casting functions to incompatible types"
+msgstr "當把函å¼è½‰æ›ç‚ºä¸ç›¸å®¹é¡žåž‹æ™‚給出警告"
+
+#: c.opt:133
+msgid "Warn about C constructs that are not in the common subset of C and C++"
+msgstr "當在 C 語言中使用了 C 與 C++ 交集以外的建構時給出警告"
+
+#: c.opt:138
+msgid "Warn about casts which discard qualifiers"
+msgstr "當類型轉æ›ä¸Ÿå¤±é™å®šè³‡è¨Šæ™‚給出警告"
+
+#: c.opt:142
+msgid "Warn about subscripts whose type is \"char\""
+msgstr "當下標類型為「charã€æ™‚給出警告"
+
+#: c.opt:146
+msgid "Warn about possibly nested block comments, and C++ comments spanning more than one physical line"
+msgstr "å°å¯èƒ½å·¢ç‹€çš„註釋和長度超éŽä¸€å€‹ç‰©ç†åˆ—é•·çš„ C++ 註釋給出警告"
+
+#: c.opt:150
+msgid "Synonym for -Wcomment"
+msgstr "-Wcomment çš„åŒç¾©è©ž"
+
+#: c.opt:154
+msgid "Warn about possibly confusing type conversions"
+msgstr "å°å¯èƒ½å°Žè‡´èª¤è§£çš„類型轉æ›çµ¦å‡ºè­¦å‘Š"
+
+#: c.opt:158
+msgid "Warn when all constructors and destructors are private"
+msgstr "當所有建構å¼å’Œè§£æ§‹å‡½å¼éƒ½æ˜¯ç§æœ‰æ™‚給出警告"
+
+#: c.opt:162
+msgid "Warn when a declaration is found after a statement"
+msgstr "當宣告出ç¾åœ¨æ•˜è¿°å¾Œæ™‚給出警告"
+
+#: c.opt:166
+msgid "Warn about deprecated compiler features"
+msgstr "å°éŽæ™‚的編譯器特性給出警告"
+
+#: c.opt:170
+msgid "Warn about compile-time integer division by zero"
+msgstr "å°ç·¨è­¯æ™‚發ç¾çš„零除給出警告"
+
+#: c.opt:174
+msgid "Warn about violations of Effective C++ style rules"
+msgstr "å°ä¸éµå¾ª Effetive C++ 的風格給出警告"
+
+#: c.opt:178
+msgid "Warn about stray tokens after #elif and #endif"
+msgstr "當 #elif å’Œ #endif 後é¢è·Ÿæœ‰å…¶å®ƒè­˜åˆ¥ç¢¼æ™‚給出警告"
+
+#: c.opt:186
+msgid "Make implicit function declarations an error"
+msgstr "將隱å«å‡½å¼å®£å‘Šè¦–作錯誤"
+
+#: c.opt:190
+msgid "Warn if testing floating point numbers for equality"
+msgstr "當比較浮點數是å¦ç›¸ç­‰æ™‚給出警告"
+
+#: c.opt:194
+msgid "Warn about printf/scanf/strftime/strfmon format string anomalies"
+msgstr "å° printf/scanf/strftime/strfmon 中的格å¼å­—串異常給出警告"
+
+#: c.opt:198
+msgid "Warn if passing too many arguments to a function for its format string"
+msgstr "當傳éžçµ¦æ ¼å¼å­—串的引數太多時給出警告"
+
+#: c.opt:202
+msgid "Warn about format strings that are not literals"
+msgstr "當格å¼å­—串ä¸æ˜¯å­—é¢å€¼æ™‚給出警告"
+
+#: c.opt:206
+msgid "Warn about possible security problems with format functions"
+msgstr "當使用格å¼å­—串的函å¼å¯èƒ½å°Žè‡´å®‰å…¨å•é¡Œæ™‚給出警告"
+
+#: c.opt:210
+msgid "Warn about strftime formats yielding 2-digit years"
+msgstr "當 strftime æ ¼å¼çµ¦å‡º 2 ä½è¨˜å¹´æ™‚給出警告"
+
+#: c.opt:214
+msgid "Warn about zero-length formats"
+msgstr "å°é•·åº¦ç‚º 0 çš„æ ¼å¼å­—串給出警告"
+
+#: c.opt:221
+msgid "Warn about variables which are initialized to themselves"
+msgstr "å°åˆå§‹åŒ–為自身的變數給出警告。"
+
+#: c.opt:228
+msgid "Warn about implicit function declarations"
+msgstr "å°éš±å«å‡½å¼å®£å‘Šçµ¦å‡ºè­¦å‘Š"
+
+#: c.opt:232
+msgid "Warn when a declaration does not specify a type"
+msgstr "當宣告未指定類型時給出警告"
+
+#: c.opt:236
+msgid "Deprecated. This switch has no effect"
+msgstr "å·²éŽæ™‚。此開關ä¸èµ·ä½œç”¨ã€‚"
+
+#: c.opt:240
+msgid "Warn when there is a cast to a pointer from an integer of a different size"
+msgstr "當將一個大å°ä¸åŒçš„整數轉æ›ç‚ºæŒ‡æ¨™æ™‚給出警告"
+
+#: c.opt:244
+msgid "Warn about invalid uses of the \"offsetof\" macro"
+msgstr "å°ã€Œoffsetofã€å·¨é›†ç„¡æ•ˆçš„使用給出警告"
+
+#: c.opt:248
+msgid "Warn about PCH files that are found but not used"
+msgstr "在找到了 PCH 檔案但未使用的情æ³çµ¦å‡ºè­¦å‘Š"
+
+#: c.opt:252
+msgid "Do not warn about using \"long long\" when -pedantic"
+msgstr "當使用 -pedantic 時ä¸æ­£ç¢ºã€Œlong longã€çµ¦å‡ºè­¦å‘Š"
+
+#: c.opt:256
+msgid "Warn about suspicious declarations of \"main\""
+msgstr "å°å¯ç–‘的「mainã€å®£å‘Šçµ¦å‡ºè­¦å‘Š"
+
+#: c.opt:260
+msgid "Warn about possibly missing braces around initializers"
+msgstr "è‹¥åˆå§‹å€¼è¨­å®šé …中å¯èƒ½ç¼ºå°‘大括號則給出警告"
+
+#: c.opt:264
+msgid "Warn about global functions without previous declarations"
+msgstr "當全域函å¼æ²’有å‰å‘宣告時給出警告"
+
+#: c.opt:268
+msgid "Warn about missing fields in struct initializers"
+msgstr "è‹¥çµæ§‹åˆå§‹å€¼è¨­å®šé …中缺少欄ä½å‰‡çµ¦å‡ºè­¦å‘Š"
+
+#: c.opt:272
+msgid "Warn about functions which might be candidates for format attributes"
+msgstr "當函å¼å¯èƒ½æ˜¯ format 屬性的備é¸æ™‚給出警告"
+
+#: c.opt:276
+msgid "Warn about user-specified include directories that do not exist"
+msgstr "當使用者給定的包å«ç›®éŒ„ä¸å­˜åœ¨æ™‚給出警告"
+
+#: c.opt:280
+msgid "Warn about global functions without prototypes"
+msgstr "全域函å¼æ²’有原型時給出警告"
+
+#: c.opt:284
+msgid "Warn about use of multi-character character constants"
+msgstr "使用多ä½å…ƒçµ„字元集的字元常數時給出警告"
+
+#: c.opt:288
+msgid "Warn about \"extern\" declarations not at file scope"
+msgstr "當「externã€å®£å‘Šä¸åœ¨æª”案作用欄ä½æ™‚給出警告"
+
+#: c.opt:292
+msgid "Warn when non-templatized friend functions are declared within a template"
+msgstr "在範本內宣告未範本化的夥伴函å¼æ™‚給出警告"
+
+#: c.opt:296
+msgid "Warn about non-virtual destructors"
+msgstr "當解構函å¼ä¸æ˜¯è™›å‡½å¼æ™‚給出警告"
+
+#: c.opt:300
+msgid "Warn about NULL being passed to argument slots marked as requiring non-NULL"
+msgstr "當將 NULL 傳éžçµ¦éœ€è¦éž NULL çš„åƒæ•¸çš„函å¼æ™‚給出警告"
+
+#: c.opt:304
+msgid "Warn about non-normalised Unicode strings"
+msgstr "為未歸一化的 Unicode 字串給出警告"
+
+#: c.opt:308
+msgid "Warn if a C-style cast is used in a program"
+msgstr "程å¼ä½¿ç”¨ C 風格的類型轉æ›æ™‚給出警告"
+
+#: c.opt:312
+msgid "Warn if an old-style parameter definition is used"
+msgstr "使用舊å¼åƒæ•¸å®šç¾©æ™‚給出警告"
+
+#: c.opt:316
+msgid "Warn about overloaded virtual function names"
+msgstr "多載虛函å¼å時給出警告"
+
+#: c.opt:320
+msgid "Warn about possibly missing parentheses"
+msgstr "å¯èƒ½ç¼ºå°‘括號的情æ³ä¸‹çµ¦å‡ºè­¦å‘Š"
+
+#: c.opt:324
+msgid "Warn when converting the type of pointers to member functions"
+msgstr "當變更æˆå“¡å‡½å¼æŒ‡æ¨™çš„類型時給出警告"
+
+#: c.opt:328
+msgid "Warn about function pointer arithmetic"
+msgstr "當在算術é‹ç®—å¼ä¸­ä½¿ç”¨å‡½å¼æŒ‡æ¨™æ™‚給出警告"
+
+#: c.opt:332
+msgid "Warn when a pointer is cast to an integer of a different size"
+msgstr "當將一個指標轉æ›ç‚ºå¤§å°ä¸åŒçš„整數時給出警告"
+
+#: c.opt:336
+msgid "Warn about misuses of pragmas"
+msgstr "å°éŒ¯èª¤ä½¿ç”¨çš„ pragma 加以警告"
+
+#: c.opt:340
+msgid "Warn if inherited methods are unimplemented"
+msgstr "當繼承來的方法未被實作時給出警告"
+
+#: c.opt:344
+msgid "Warn about multiple declarations of the same object"
+msgstr "å°åŒä¸€å€‹ç‰©ä»¶å¤šæ¬¡å®£å‘Šæ™‚給出警告"
+
+#: c.opt:348
+msgid "Warn when the compiler reorders code"
+msgstr "編譯器將程å¼ç¢¼é‡æ–°æŽ’åºæ™‚給出警告"
+
+#: c.opt:352
+msgid "Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)"
+msgstr "當 C 函å¼çš„回傳值é è¨­ç‚ºã€Œintã€ï¼Œæˆ–是 C++ 函å¼çš„回傳類型ä¸ä¸€è‡´æ™‚給出警告"
+
+#: c.opt:356
+msgid "Warn if a selector has multiple methods"
+msgstr "當é¸æ“‡å­æœ‰å¤šå€‹æ–¹æ³•æ™‚給出警告"
+
+#: c.opt:360
+msgid "Warn about possible violations of sequence point rules"
+msgstr "當å¯èƒ½é•å定åºé»žè¦å‰‡æ™‚給出警告"
+
+#: c.opt:364
+msgid "Warn about signed-unsigned comparisons"
+msgstr "在有號和無號數間進行比較時給出警告"
+
+#: c.opt:368
+msgid "Warn when overload promotes from unsigned to signed"
+msgstr "當多載將無號數æå‡ç‚ºæœ‰è™Ÿæ•¸æ™‚給出警告"
+
+#: c.opt:372
+msgid "Warn about uncasted NULL used as sentinel"
+msgstr "將未作轉æ›çš„ NULL åšç‚ºå“¨å…µæ™‚給出警告"
+
+#: c.opt:376
+msgid "Warn about unprototyped function declarations"
+msgstr "使用了éžåŽŸåž‹çš„函å¼å®£å‘Šæ™‚給出莥警告"
+
+#: c.opt:380
+msgid "Warn if type signatures of candidate methods do not match exactly"
+msgstr "當備é¸æ–¹æ³•çš„類型簽字ä¸å®Œå…¨åŒ¹é…時給出警告"
+
+#: c.opt:384
+msgid "Warn when synthesis behavior differs from Cfront"
+msgstr "當綜åˆè¡Œç‚ºä¸åŒæ–¼ Cfront 時給出警告"
+
+#: c.opt:388 common.opt:142
+msgid "Do not suppress warnings from system headers"
+msgstr "ä¸æŠ‘制系統標頭檔案中的警告"
+
+#: c.opt:392
+msgid "Warn about features not present in traditional C"
+msgstr "使用了傳統 C ä¸æ”¯æ´çš„特性時給出警告"
+
+#: c.opt:396
+msgid "Warn if trigraphs are encountered that might affect the meaning of the program"
+msgstr "當三字æ¯åºåˆ—å¯èƒ½å½±éŸ¿ç¨‹å¼æ„義時給出警告"
+
+#: c.opt:400
+msgid "Warn about @selector()s without previously declared methods"
+msgstr "當使用 @selector() å»ä¸ä½œäº‹å…ˆå®£å‘Šæ™‚給出警告"
+
+#: c.opt:404
+msgid "Warn if an undefined macro is used in an #if directive"
+msgstr "當 #if 指令中用到未定義的巨集時給出警告"
+
+#: c.opt:408
+msgid "Warn about unrecognized pragmas"
+msgstr "å°ç„¡æ³•è¾¨è­˜çš„ pragma 加以警告"
+
+#: c.opt:412
+msgid "Warn about macros defined in the main file that are not used"
+msgstr "當定義在主檔案中的巨集未被使用時給出警告"
+
+#: c.opt:416
+msgid "Do not warn about using variadic macros when -pedantic"
+msgstr "指定 -pedantic 時ä¸ç‚ºå¯è®Šåƒæ•¸å·¨é›†çµ¦å‡ºè­¦å‘Š"
+
+#: c.opt:420
+msgid "Give strings the type \"array of char\""
+msgstr "令字串類型為 char 陣列"
+
+#: c.opt:424
+msgid "Warn when a pointer differs in signedness in an assignment"
+msgstr "當賦值時指標有/無號ä¸ä¸€è‡´æ™‚給出警告"
+
+#: c.opt:428
+msgid "A synonym for -std=c89 (for C) or -std=c++98 (for C++)"
+msgstr "-std=c89 (å° C 來說) 或 -std=c++98 (å° C++ 來說)çš„åŒç¾©è©ž"
+
+#: c.opt:436
+msgid "Enforce class member access control semantics"
+msgstr "執行類別æˆå“¡å­˜å–控制語義"
+
+#: c.opt:443
+msgid "Change when template instances are emitted"
+msgstr "使用ä¸åŒçš„範本實體化實作"
+
+#: c.opt:447
+msgid "Recognize the \"asm\" keyword"
+msgstr "識別「asmã€é—œéµå­—"
+
+#: c.opt:451
+msgid "Recognize built-in functions"
+msgstr "識別內建函å¼"
+
+#: c.opt:458
+msgid "Check the return value of new"
+msgstr "檢查 new 的回傳值"
+
+#: c.opt:462
+msgid "Allow the arguments of the '?' operator to have different types"
+msgstr "å…許「?ã€é‹ç®—å­çš„åƒæ•¸æœ‰ä¸åŒçš„é¡žåž‹"
+
+#: c.opt:466
+msgid "Reduce the size of object files"
+msgstr "減å°ç›®çš„檔案"
+
+#: c.opt:470
+msgid "Make string literals \"const char[]\" not \"char[]\""
+msgstr "令字é¢å­—串的類型為「const char[]ã€è€Œä¸æ˜¯ã€Œchar[]ã€"
+
+#: c.opt:474
+msgid "Use class <name> for constant strings"
+msgstr "使用 <å> åšç‚ºå¸¸æ•¸å­—串類別的å稱"
+
+#: c.opt:478
+msgid "Inline member functions by default"
+msgstr "é è¨­å…§è¯æˆå“¡å‡½å¼"
+
+#: c.opt:482
+msgid "Permit '$' as an identifier character"
+msgstr "å…許「$ã€åšç‚ºè­˜åˆ¥ç¢¼çš„一部分"
+
+#: c.opt:489
+msgid "Generate code to check exception specifications"
+msgstr "產生檢查異一般範的程å¼ç¢¼"
+
+#: c.opt:496
+msgid "Convert all strings and character constants to character set <cset>"
+msgstr "將所有字串和字元常數轉æ›åˆ° <字元集>"
+
+#: c.opt:500
+msgid "Permit universal character names (\\u and \\U) in identifiers"
+msgstr "å…è¨±è­˜åˆ¥ç¢¼ä¸­å‡ºç¾ Unicode å­—å…ƒå(\\u å’Œ \\U)"
+
+#: c.opt:504
+msgid "Specify the default character set for source files"
+msgstr "指定來æºç¨‹å¼ç¢¼çš„é è¨­å­—元集"
+
+#: c.opt:521
+msgid "Scope of for-init-statement variables is local to the loop"
+msgstr "for 循環åˆå§‹åŒ–中定義的變數作用欄ä½å±€é™æ–¼å¾ªç’°å…§"
+
+#: c.opt:525
+msgid "Do not assume that standard C libraries and \"main\" exist"
+msgstr "ä¸å‡å®šæ¨™æº– C 函å¼åº«å’Œã€Œmainã€å­˜åœ¨"
+
+#: c.opt:529
+msgid "Recognize GNU-defined keywords"
+msgstr "識別 GNU 定義的關éµå­—"
+
+#: c.opt:533
+msgid "Generate code for GNU runtime environment"
+msgstr "為 GNU 執行時環境產生程å¼ç¢¼"
+
+#: c.opt:546
+msgid "Assume normal C execution environment"
+msgstr "å‡å®šä¸€èˆ¬çš„ C 執行環境"
+
+#: c.opt:550
+msgid "Enable support for huge objects"
+msgstr "啟用å°å·¨åž‹ç‰©ä»¶çš„支æ´"
+
+#: c.opt:554
+msgid "Export functions even if they can be inlined"
+msgstr "導出被內è¯çš„函å¼"
+
+#: c.opt:558
+msgid "Emit implicit instantiations of inline templates"
+msgstr "å…許內è¯ç¯„本隱å«å¯¦é«”化"
+
+#: c.opt:562
+msgid "Emit implicit instantiations of templates"
+msgstr "å…許範本隱å«å¯¦é«”化"
+
+#: c.opt:566
+msgid "Inject friend functions into enclosing namespace"
+msgstr "將夥伴函å¼å®£å‘Šè¦–作包å«å®ƒçš„命å空間中的有效宣告"
+
+#: c.opt:573
+msgid "Don't warn about uses of Microsoft extensions"
+msgstr "使用微軟擴充時ä¸çµ¦å‡ºè­¦å‘Š"
+
+#: c.opt:583
+msgid "Generate code for NeXT (Apple Mac OS X) runtime environment"
+msgstr "為 NeXT (蘋果 Mac OS X) 執行時環境產生程å¼ç¢¼"
+
+#: c.opt:587
+msgid "Assume that receivers of Objective-C messages may be nil"
+msgstr "å‡å®š Objective-C 訊æ¯çš„接å—者å¯èƒ½æ˜¯ nil"
+
+#: c.opt:599
+msgid "Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed"
+msgstr "如果需è¦ï¼Œç”¢ç”Ÿç‰¹æ®Šçš„ Objective-C 方法來åˆå§‹åŒ–/解構éžç°¡å–®èˆŠè³‡æ–™ C++ 變數"
+
+#: c.opt:603
+msgid "Allow fast jumps to the message dispatcher"
+msgstr "å…許快速跳轉至訊æ¯åˆ†ç™¼è€…"
+
+#: c.opt:609
+msgid "Enable Objective-C exception and synchronization syntax"
+msgstr "啟用 Objective-C 異常和åŒæ­¥èªžæ³•"
+
+#: c.opt:613
+msgid "Enable garbage collection (GC) in Objective-C/Objective-C++ programs"
+msgstr "在 Objective-C/Objective-C++ 程å¼ä¸­å•Ÿç”¨ç„¡ç”¨æ”¶é›†"
+
+#: c.opt:618
+msgid "Enable Objective-C setjmp exception handling runtime"
+msgstr "啟用 Objective-C setjmp 異常處ç†åŸ·è¡Œæ™‚"
+
+#: c.opt:622
+msgid "Recognize C++ kewords like \"compl\" and \"xor\""
+msgstr "識別「complã€ã€ã€Œxorã€ç­‰ C++ é—œéµè©ž"
+
+#: c.opt:626
+msgid "Enable optional diagnostics"
+msgstr "å•Ÿå‹•å¯é¸çš„診斷資訊"
+
+#: c.opt:633
+msgid "Look for and use PCH files even when preprocessing"
+msgstr "å³ä½¿åœ¨é å…ˆè™•ç†æ™‚也æœå°‹ä¸¦ä½¿ç”¨ PCH 檔案"
+
+#: c.opt:637
+msgid "Downgrade conformance errors to warnings"
+msgstr "將相容性錯誤é™æ ¼ç‚ºè­¦å‘Š"
+
+#: c.opt:641
+msgid "Treat the input file as already preprocessed"
+msgstr "將輸入檔案當作已經é å…ˆè™•ç†éŽçš„"
+
+#: c.opt:645
+msgid "Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime"
+msgstr "指定物件檔案å¯èƒ½åœ¨åŸ·è¡Œæ™‚被æ›å…¥ä»¥å…許「修復並繼續ã€é™¤éŒ¯æ¨¡å¼"
+
+#: c.opt:649
+msgid "Enable automatic template instantiation"
+msgstr "啟用範本自動實體化"
+
+#: c.opt:653
+msgid "Generate run time type descriptor information"
+msgstr "產生執行時類型æ述資訊"
+
+#: c.opt:657
+msgid "Use the same size for double as for float"
+msgstr "令 double 使用 float 的大å°"
+
+#: c.opt:665
+msgid "Force the underlying type for \"wchar_t\" to be \"unsigned short\""
+msgstr "強制指定「wchar_tã€çš„內在類型為「unsigned shortã€"
+
+#: c.opt:669
+msgid "When \"signed\" or \"unsigned\" is not given make the bitfield signed"
+msgstr "沒有給定「signedã€æˆ–「unsignedã€æ™‚å°‡ä½å…ƒæ®µè¦–作有號的"
+
+#: c.opt:673
+msgid "Make \"char\" signed by default"
+msgstr "使「charã€é¡žåž‹é è¨­ç‚ºæœ‰è™Ÿ"
+
+#: c.opt:680
+msgid "Display statistics accumulated during compilation"
+msgstr "顯示編譯程åºä¸­ç´¯è¨ˆçš„統計數字"
+
+#: c.opt:687
+msgid "Distance between tab stops for column reporting"
+msgstr "指定報告列號時制表ä½é–“çš„è·é›¢"
+
+#: c.opt:691
+msgid "Specify maximum template instantiation depth"
+msgstr "指定範本實體化的最大深度"
+
+#: c.opt:698
+msgid "Do not generate thread-safe code for initializing local statics"
+msgstr "ä¸ç‚ºå±€éƒ¨éœæ…‹è®Šæ•¸ç”¢ç”ŸåŸ·è¡Œç·’安全的åˆå§‹åŒ–程å¼ç¢¼"
+
+#: c.opt:702
+msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned"
+msgstr "未指定「signedã€æˆ–「unsignedã€æ™‚é è¨­ä½å…ƒæ®µç‚ºç„¡è™Ÿçš„"
+
+#: c.opt:706
+msgid "Make \"char\" unsigned by default"
+msgstr "使「charã€é¡žåž‹é è¨­ç‚ºç„¡è™Ÿ"
+
+#: c.opt:710
+msgid "Use __cxa_atexit to register destructors"
+msgstr "å°‡ __cxa_atexit è€Œéž atexit 登記為解構函å¼"
+
+#: c.opt:714
+msgid "Marks all inlined methods as having hidden visibility"
+msgstr "將所有內è¯å‡½å¼æ¨™è¨˜ç‚ºå…·æœ‰éš±è—çš„å¯è¦‹æ€§"
+
+#: c.opt:718
+msgid "Discard unused virtual functions"
+msgstr "拋棄未使用的虛函å¼"
+
+#: c.opt:722
+msgid "Implement vtables using thunks"
+msgstr "使用 thunk 技術實作 vtable"
+
+#: c.opt:726
+msgid "Emit common-like symbols as weak symbols"
+msgstr "將公共符號視作弱符號"
+
+#: c.opt:730
+msgid "Convert all wide strings and character constants to character set <cset>"
+msgstr ""
+
+#: c.opt:734
+msgid "Generate a #line directive pointing at the current working directory"
+msgstr ""
+
+#: c.opt:738
+msgid "Emit cross referencing information"
+msgstr "產生交å‰åƒç…§è³‡è¨Š"
+
+#: c.opt:742
+msgid "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode"
+msgstr ""
+
+#: c.opt:746
+msgid "Dump declarations to a .decl file"
+msgstr "將宣告傾å°åˆ°ä¸€å€‹ .decl 檔案中"
+
+#: c.opt:750 c.opt:778
+msgid "Add <dir> to the end of the system include path"
+msgstr "å°‡ <目錄> 加入到系統包å«è·¯å¾‘末尾"
+
+#: c.opt:754
+msgid "Accept definition of macros in <file>"
+msgstr "æŽ¥å— <檔案> 中定義的巨集"
+
+#: c.opt:758
+msgid "Include the contents of <file> before other files"
+msgstr "在包å«å…¶ä»–檔案之å‰å…ˆåŒ…å« <檔案> 的內容"
+
+#: c.opt:762
+msgid "Specify <path> as a prefix for next two options"
+msgstr "å°‡ <路徑> 指定為下兩個é¸é …的字首"
+
+#: c.opt:766
+msgid "Set <dir> to be the system root directory"
+msgstr "將 <目錄> 設為系統根目錄"
+
+#: c.opt:770
+msgid "Add <dir> to the start of the system include path"
+msgstr "å°‡ <目錄> 加入到系統包å«è·¯å¾‘é–‹é ­"
+
+#: c.opt:774
+msgid "Add <dir> to the end of the quote include path"
+msgstr "å°‡ <目錄> 加入到引號包å«è·¯å¾‘末尾"
+
+#: c.opt:795
+msgid "Do not search standard system include directories (those specified with -isystem will still be used)"
+msgstr "ä¸æœå°‹æ¨™æº–系統標頭檔案目錄(但ä»å°‡ä½¿ç”¨ç”± -isystem 指定的目錄)"
+
+#: c.opt:799
+msgid "Do not search standard system include directories for C++"
+msgstr "ä¸æœå°‹ C++ 標準系統標頭檔案目錄"
+
+#: c.opt:815
+msgid "Generate C header of platform-specific features"
+msgstr "產生有平å°ç›¸é—œç‰¹æ€§çš„ C 標頭檔案"
+
+#: c.opt:819
+msgid "Print a checksum of the executable for PCH validity checking, and stop"
+msgstr ""
+
+#: c.opt:823
+msgid "Remap file names when including files"
+msgstr ""
+
+#: c.opt:827
+msgid "Conform to the ISO 1998 C++ standard"
+msgstr "éµå¾ª ISO 1998 C++ 標準"
+
+#: c.opt:831 c.opt:859
+msgid "Conform to the ISO 1990 C standard"
+msgstr "éµå¾ª ISO 1990 C 標準"
+
+#: c.opt:835 c.opt:867
+msgid "Conform to the ISO 1999 C standard"
+msgstr "éµå¾ª ISO 1999 C 標準"
+
+#: c.opt:839
+msgid "Deprecated in favor of -std=c99"
+msgstr "å·²éŽæ™‚,請使用 -std=c99"
+
+#: c.opt:843
+msgid "Conform to the ISO 1998 C++ standard with GNU extensions"
+msgstr "éµå¾ª ISO 1998 C++ æ¨™æº–ï¼Œä¹Ÿæ”¯æ´ GNU æ“´å……"
+
+#: c.opt:847
+msgid "Conform to the ISO 1990 C standard with GNU extensions"
+msgstr "éµå¾ª ISO 1990 C æ¨™æº–ï¼Œä¹Ÿæ”¯æ´ GNU æ“´å……"
+
+#: c.opt:851
+msgid "Conform to the ISO 1999 C standard with GNU extensions"
+msgstr "éµå¾ª ISO 1999 C æ¨™æº–ï¼Œä¹Ÿæ”¯æ´ GNU æ“´å……"
+
+#: c.opt:855
+msgid "Deprecated in favor of -std=gnu99"
+msgstr "å·²éŽæ™‚,請使用 -std=gnu99"
+
+#: c.opt:863
+msgid "Conform to the ISO 1990 C standard as amended in 1994"
+msgstr "éµå¾ª ISO 1990 C 標準於 1994 年修訂的版本"
+
+#: c.opt:871
+msgid "Deprecated in favor of -std=iso9899:1999"
+msgstr "å·²éŽæ™‚,為 -std=iso9899:1999 所å–代"
+
+#: c.opt:875
+msgid "Enable traditional preprocessing"
+msgstr "啟用傳統é å…ˆè™•ç†"
+
+#: c.opt:879
+msgid "Support ISO C trigraphs"
+msgstr "æ”¯æ´ ISO C 三元符"
+
+#: c.opt:883
+msgid "Do not predefine system-specific and GCC-specific macros"
+msgstr "ä¸é å®šç¾©ç³»çµ±æˆ– GCC 特定的巨集"
+
+#: c.opt:887
+msgid "Enable verbose output"
+msgstr "啟用詳細輸出"
+
+#: common.opt:28
+msgid "Display this information"
+msgstr "顯示此資訊"
+
+#: common.opt:32
+msgid "Set parameter <param> to value. See below for a complete list of parameters"
+msgstr "å°‡åƒæ•¸ <åƒæ•¸> 設為給定 <值>。下é¢çµ¦å‡ºæ‰€æœ‰åƒæ•¸çš„清單"
+
+#: common.opt:42
+msgid "Put global and static data smaller than <number> bytes into a special section (on some targets)"
+msgstr "å°‡å°æ–¼ <數> ä½å…ƒçµ„的全域和éœæ…‹è³‡æ–™æ”¾å…¥ä¸€å€‹ç‰¹æ®Šçš„å€æ®µä¸­(在æŸäº›ç›®æ¨™å¹³è‡ºä¸Š)"
+
+#: common.opt:46
+msgid "Set optimization level to <number>"
+msgstr "將最佳化等級設為 <數>"
+
+#: common.opt:50
+msgid "Optimize for space rather than speed"
+msgstr "為最å°ç©ºé–“而ä¸æ˜¯æœ€å¤§é€Ÿåº¦æœ€ä½³åŒ–"
+
+#: common.opt:54
+msgid "This switch is deprecated; use -Wextra instead"
+msgstr "此開關已éŽæ™‚;請改用 -Wextra"
+
+#: common.opt:58
+msgid "Warn about returning structures, unions or arrays"
+msgstr "當回傳çµæ§‹ã€è¯åˆæˆ–陣列時給出警告"
+
+#: common.opt:62
+msgid "Warn about inappropriate attribute usage"
+msgstr "當å°å±¬æ€§çš„使用ä¸åˆé©æ™‚給出警告"
+
+#: common.opt:66
+msgid "Warn about pointer casts which increase alignment"
+msgstr "當轉æ›æŒ‡æ¨™é¡žåž‹å°Žè‡´å°é½Šé‚Šç•Œå¢žé•·æ™‚給出警告"
+
+#: common.opt:70
+msgid "Warn about uses of __attribute__((deprecated)) declarations"
+msgstr "å° __attribute__((deprecated)) 宣告給出警告"
+
+#: common.opt:74
+msgid "Warn when an optimization pass is disabled"
+msgstr "當æŸè¶Ÿæœ€ä½³åŒ–被åœç”¨æ™‚給出警告"
+
+#: common.opt:78
+msgid "Treat all warnings as errors"
+msgstr "所有的警告都當作是錯誤"
+
+#: common.opt:82
+msgid "Print extra (possibly unwanted) warnings"
+msgstr "列å°é¡å¤–(å¯èƒ½æ‚¨ä¸¦ä¸æƒ³è¦)的警告跾資訊"
+
+#: common.opt:86
+msgid "Exit on the first error occurred"
+msgstr "發ç¾ç¬¬ä¸€å€‹éŒ¯èª¤æ™‚å³é›¢é–‹"
+
+#: common.opt:90
+msgid "Warn when an inlined function cannot be inlined"
+msgstr "當內è¯å‡½å¼ç„¡æ³•è¢«å…§è¯æ™‚給出警告"
+
+#: common.opt:94
+msgid "Warn if an object is larger than <number> bytes"
+msgstr "當目的檔案大於 <n> ä½å…ƒçµ„時給出警告"
+
+#: common.opt:98
+msgid "Warn if the loop cannot be optimized due to nontrivial assumptions."
+msgstr "當循環因為ä¸å¹³å‡¡çš„å‡å®šè€Œä¸èƒ½è¢«æœ€ä½³åŒ–時給出警告"
+
+#: common.opt:102
+msgid "Warn about functions which might be candidates for __attribute__((noreturn))"
+msgstr "當函å¼å¯èƒ½æ˜¯ __attribute__((noreturn)) çš„å‚™é¸æ™‚給出警告"
+
+#: common.opt:106
+msgid "Warn when the packed attribute has no effect on struct layout"
+msgstr "當 packed 屬性å°çµæ§‹ç‰ˆé¢è¨­ç½®ä¸èµ·ä½œç”¨æ™‚給出警告"
+
+#: common.opt:110
+msgid "Warn when padding is required to align structure members"
+msgstr "當需è¦å¡«è£œæ‰èƒ½å°é½Šçµæ§‹æˆå“¡æ™‚給出警告"
+
+#: common.opt:114
+msgid "Warn when one local variable shadows another"
+msgstr "當一個局部變數掩蓋了å¦ä¸€å€‹å±€éƒ¨è®Šæ•¸æ™‚給出警告"
+
+#: common.opt:118
+msgid "Warn when not issuing stack smashing protection for some reason"
+msgstr ""
+
+#: common.opt:122 common.opt:126
+msgid "Warn about code which might break strict aliasing rules"
+msgstr "當程å¼ç¢¼å¯èƒ½ç ´å£žå¼·é‡ç–Šè¦å‰‡æ™‚給出警告"
+
+#: common.opt:130
+msgid "Warn about enumerated switches, with no default, missing a case"
+msgstr "當使用列舉類型åšç‚ºé–‹é—œè®Šæ•¸ï¼Œæ²’有æä¾› default 分支,但åˆç¼ºå°‘æŸå€‹ case 時給出警告"
+
+#: common.opt:134
+msgid "Warn about enumerated switches missing a \"default:\" statement"
+msgstr "當使用列舉類型åšç‚ºé–‹é—œè®Šæ•¸ï¼Œä½†æ²’有æ供「defaultã€åˆ†æ”¯æ™‚給出警告"
+
+#: common.opt:138
+msgid "Warn about all enumerated switches missing a specific case"
+msgstr "當使用列舉類型åšç‚ºé–‹é—œè®Šæ•¸ä½†åˆç¼ºå°‘æŸå€‹ case 時給出警告"
+
+#: common.opt:146
+msgid "Warn about uninitialized automatic variables"
+msgstr "自動變數未åˆå§‹åŒ–時警告"
+
+#: common.opt:150
+msgid "Warn about code that will never be executed"
+msgstr "存在永é ä¸è¢«åŸ·è¡Œçš„程å¼ç¢¼æ™‚警告"
+
+#: common.opt:154
+msgid "Enable all -Wunused- warnings"
+msgstr "啟用所有關於「XX未使用ã€çš„警告"
+
+#: common.opt:158
+msgid "Warn when a function is unused"
+msgstr "有未使用的函å¼æ™‚警告"
+
+#: common.opt:166
+msgid "Warn when a function parameter is unused"
+msgstr "發ç¾æœªä½¿ç”¨çš„函å¼æŒ‡æ¨™æ™‚給出警告"
+
+#: common.opt:170
+msgid "Warn when an expression value is unused"
+msgstr "當一個é‹ç®—å¼çš„值未被使用時給出警告"
+
+#: common.opt:174
+msgid "Warn when a variable is unused"
+msgstr "有未使用的變數時警告"
+
+#: common.opt:178
+msgid "Warn when a register variable is declared volatile"
+msgstr "當一個暫存器變數被宣告為 volatile 時給出警告"
+
+#: common.opt:182
+msgid "Emit declaration information into <file>"
+msgstr "將宣告資訊寫入 <檔案>"
+
+#: common.opt:195
+msgid "Enable dumps from specific passes of the compiler"
+msgstr "為指定的æŸè¶ŸåŒ¯è­¯å•Ÿç”¨è¨˜æ†¶é«”傾å°"
+
+#: common.opt:199
+msgid "Set the file basename to be used for dumps"
+msgstr "設定記憶體傾å°ä½¿ç”¨çš„檔案å稱字首"
+
+#: common.opt:217
+msgid "Align the start of functions"
+msgstr "å°é½Šå‡½å¼å…¥å£"
+
+#: common.opt:224
+msgid "Align labels which are only reached by jumping"
+msgstr "å°é½Šåªèƒ½ç‚ºè·³è½‰æ‰€åˆ°é”的標籤"
+
+#: common.opt:231
+msgid "Align all labels"
+msgstr "å°é½Šæ‰€æœ‰çš„標籤"
+
+#: common.opt:238
+msgid "Align the start of loops"
+msgstr "å°é½Šå¾ªç’°å…¥å£"
+
+#: common.opt:251
+msgid "Specify that arguments may alias each other and globals"
+msgstr "指定引數å¯èƒ½äº’相é‡ç–Šï¼Œä¹Ÿå¯èƒ½èˆ‡å…¨åŸŸè³‡æ–™é‡ç–Š"
+
+#: common.opt:255
+msgid "Assume arguments may alias globals but not each other"
+msgstr "å‡å®šå¼•æ•¸å¯èƒ½èˆ‡å…¨åŸŸè³‡æ–™é‡ç–Šï¼Œä½†äº’相ä¸é‡ç–Š"
+
+#: common.opt:259
+msgid "Assume arguments alias neither each other nor globals"
+msgstr "å‡å®šå¼•æ•¸æ—¢ä¸äº’相é‡ç–Šï¼Œä¹Ÿä¸èˆ‡å…¨åŸŸè³‡æ–™é‡ç–Š"
+
+#: common.opt:263
+msgid "Generate unwind tables that are exact at each instruction boundary"
+msgstr "產生精確到æ¯æ¢æŒ‡ä»¤é‚Šç•Œçš„堆疊展開表"
+
+#: common.opt:271
+msgid "Generate code to check bounds before indexing arrays"
+msgstr "產生檢查陣列存å–是å¦è¶Šç•Œçš„程å¼ç¢¼"
+
+#: common.opt:275
+msgid "Replace add, compare, branch with branch on count register"
+msgstr "將加/減法ã€æ¯”較ã€è·³è½‰æŒ‡ä»¤åºåˆ—替æ›ç‚ºæ ¹æ“šè¨ˆæ•¸æš«å­˜å™¨è·³è½‰æŒ‡ä»¤"
+
+#: common.opt:279
+msgid "Use profiling information for branch probabilities"
+msgstr "為分支概率使用å–樣資訊"
+
+#: common.opt:283
+msgid "Perform branch target load optimization before prologue / epilogue threading"
+msgstr "在開始/çµæœ«åŸ·è¡Œç·’å‰é€²è¡Œåˆ†æ”¯ç›®çš„載入最佳化"
+
+#: common.opt:287
+msgid "Perform branch target load optimization after prologue / epilogue threading"
+msgstr "在開始/çµæœ«åŸ·è¡Œç·’後進行分支目的載入最佳化"
+
+#: common.opt:291
+msgid "Restrict target load migration not to re-use registers in any basic block"
+msgstr ""
+
+#: common.opt:295
+msgid "Mark <register> as being preserved across functions"
+msgstr "èªç‚º <暫存器> 跨越函å¼å‘¼å«æ™‚值ä¸è®Š"
+
+#: common.opt:299
+msgid "Mark <register> as being corrupted by function calls"
+msgstr "èªç‚º <暫存器> 的值將被函å¼å‘¼å«æ‰€è®Šæ›´"
+
+#: common.opt:306
+msgid "Save registers around function calls"
+msgstr "函å¼å‘¼å«å‰å¾Œå„²å­˜/æ¢å¾©æš«å­˜å™¨å€¼"
+
+#: common.opt:310
+msgid "Do not put uninitialized globals in the common section"
+msgstr "ä¸å°‡æœªåˆå§‹åŒ–的全域資料放在公共å€æ®µä¸­"
+
+#: common.opt:314
+msgid "Perform a register copy-propagation optimization pass"
+msgstr "進行一趟暫存器副本傳éžæœ€ä½³åŒ–"
+
+#: common.opt:318
+msgid "Perform cross-jumping optimization"
+msgstr "進行跨跳轉最佳化"
+
+#: common.opt:322
+msgid "When running CSE, follow jumps to their targets"
+msgstr "進行 CSE 時,跟隨跳轉至目的"
+
+#: common.opt:326
+msgid "When running CSE, follow conditional jumps"
+msgstr "進行 CSE 時,跟隨æ¢ä»¶è·³è½‰"
+
+#: common.opt:330
+msgid "Omit range reduction step when performing complex division"
+msgstr "當進行複數除法時çœç•¥ç¸®æ¸›ç¯„åœçš„步驟"
+
+#: common.opt:334
+msgid "Place data items into their own section"
+msgstr "å°‡æ¯å€‹è³‡æ–™é …分別放在它們å„自的å€æ®µä¸­"
+
+#: common.opt:340
+msgid "Defer popping functions args from stack until later"
+msgstr "延é²å°‡å‡½å¼å¼•æ•¸å½ˆå †ç–Š"
+
+#: common.opt:344
+msgid "Attempt to fill delay slots of branch instructions"
+msgstr "試圖利用延é²è½‰ç§»æŒ‡ä»¤å¾Œ"
+
+#: common.opt:348
+msgid "Delete useless null pointer checks"
+msgstr "刪除無用的空指標檢查"
+
+#: common.opt:352
+msgid "How often to emit source location at the beginning of line-wrapped diagnostics"
+msgstr ""
+
+#: common.opt:356
+msgid "Amend appropriate diagnostic messages with the command line option that controls them"
+msgstr ""
+
+#: common.opt:360
+msgid "Dump various compiler internals to a file"
+msgstr "將一些編譯器內部資訊傾å°åˆ°ä¸€å€‹æª”案裡"
+
+#: common.opt:364
+msgid "Suppress output of instruction numbers and line number notes in debugging dumps"
+msgstr "在除錯傾å°ä¸­ä¸è¼¸å‡ºæŒ‡ä»¤æ•¸å’Œåˆ—號標記"
+
+#: common.opt:368
+msgid "Perform early inlining"
+msgstr "進行早內è¯"
+
+#: common.opt:372
+msgid "Perform DWARF2 duplicate elimination"
+msgstr "進行 DWARF2 冗餘消除"
+
+#: common.opt:376 common.opt:380
+msgid "Perform unused type elimination in debug info"
+msgstr "在除錯資訊中進行無用類型消除"
+
+#: common.opt:384
+msgid "Enable exception handling"
+msgstr "啟用異常處ç†"
+
+#: common.opt:388
+msgid "Perform a number of minor, expensive optimizations"
+msgstr "進行一些細微的ã€ä»£åƒ¹é«˜æ˜‚的最佳化"
+
+#: common.opt:395
+msgid "Assume no NaNs or infinities are generated"
+msgstr "å‡å®šçµæžœä¸æœƒæ˜¯ NaN 或無é™å¤§æµ®é»žæ•¸"
+
+#: common.opt:399
+msgid "Mark <register> as being unavailable to the compiler"
+msgstr "èªç‚º <register> å°ç·¨è­¯å™¨è€Œè¨€ç„¡æ³•ä½¿ç”¨"
+
+#: common.opt:403
+msgid "Don't allocate floats and doubles in extended-precision registers"
+msgstr "ä¸å°‡å–®ç²¾åº¦å’Œé›™ç²¾åº¦æµ®é»žæ•¸æŒ‡æ´¾åˆ°æ“´å……精度的暫存器中"
+
+#: common.opt:409
+msgid "Copy memory address constants into registers before use"
+msgstr "使用記憶體ä½å€å¸¸æ•¸å‰å…ˆå°‡å…¶è¤‡è£½åˆ°æš«å­˜å™¨ä¸­"
+
+#: common.opt:415
+msgid "Copy memory operands into registers before use"
+msgstr "在使用記憶體中的é‹ç®—å…ƒå‰å…ˆå°‡å…¶è¤‡è£½åˆ°æš«å­˜å™¨ä¸­"
+
+#: common.opt:422
+msgid "Allow function addresses to be held in registers"
+msgstr "å…許將函å¼ä½å€å„²å­˜åœ¨æš«å­˜å™¨ä¸­"
+
+#: common.opt:426
+msgid "Place each function into its own section"
+msgstr "å°‡æ¯å€‹å‡½å¼åˆ†åˆ¥æ”¾åœ¨å®ƒå€‘å„自的å€æ®µä¸­"
+
+#: common.opt:430
+msgid "Perform global common subexpression elimination"
+msgstr "進行全域公因å¼æ¶ˆåŽ»"
+
+#: common.opt:434
+msgid "Perform enhanced load motion during global common subexpression elimination"
+msgstr "在全域公因å¼æ¶ˆåŽ»ä¸­é€²è¡Œå¢žå¼·çš„讀轉移最佳化"
+
+#: common.opt:438
+msgid "Perform store motion after global common subexpression elimination"
+msgstr "在全域公因å¼æ¶ˆåŽ»å¾Œé€²è¡Œå­˜å„²è½‰ç§»"
+
+#: common.opt:442
+msgid "Perform redundant load after store elimination in global common subexpression"
+msgstr "在全域公因å¼æ¶ˆåŽ»ä¸­é€²è¡Œå†—餘的寫後讀消除"
+
+#: common.opt:447
+msgid "Perform global common subexpression elimination after register allocation"
+msgstr "在指派暫存器後進行全域公因å¼æ¶ˆåŽ»"
+
+#: common.opt:452
+msgid "Enable guessing of branch probabilities"
+msgstr "啟用分支概率猜測"
+
+#: common.opt:460
+msgid "Process #ident directives"
+msgstr "è™•ç† #ident 指令"
+
+#: common.opt:464
+msgid "Perform conversion of conditional jumps to branchless equivalents"
+msgstr "å°‡æ¢ä»¶è·³è½‰æ›¿æ›ç‚ºæ²’有跳轉的等值表示"
+
+#: common.opt:468
+msgid "Perform conversion of conditional jumps to conditional execution"
+msgstr "å°‡æ¢ä»¶è·³è½‰æ›¿æ›ç‚ºæ¢ä»¶åŸ·è¡Œ"
+
+#: common.opt:476
+msgid "Do not generate .size directives"
+msgstr "ä¸ç”¢ç”Ÿ .size 指令"
+
+#: common.opt:485
+msgid "Pay attention to the \"inline\" keyword"
+msgstr "ä¸å¿½ç•¥ã€Œinlineã€é—œéµå­—"
+
+#: common.opt:489
+msgid "Integrate simple functions into their callers"
+msgstr "將簡單函å¼æ•´åˆåˆ°å®ƒå€‘的呼å«è€…中"
+
+#: common.opt:493
+msgid "Integrate functions called once into their callers"
+msgstr "å°‡åªè¢«å‘¼å«ä¸€æ¬¡çš„函å¼æ•´åˆåˆ°å®ƒå€‘的呼å«è€…中"
+
+#: common.opt:500
+msgid "Limit the size of inlined functions to <number>"
+msgstr "將內è¯å‡½å¼çš„大å°é™åˆ¶åœ¨ <數> 以內"
+
+#: common.opt:504
+msgid "Instrument function entry and exit with profiling calls"
+msgstr ""
+
+#: common.opt:508
+msgid "Perform Interprocedural constant propagation"
+msgstr "進行處ç†åºé–“的複寫傳éž"
+
+#: common.opt:512
+msgid "Discover pure and const functions"
+msgstr "發ç¾ç´”函å¼å’Œå¸¸å‡½å¼"
+
+#: common.opt:516
+msgid "Discover readonly and non addressable static variables"
+msgstr "發ç¾å”¯è®€å’Œä¸å¯å®šå€éœæ…‹è®Šæ•¸"
+
+#: common.opt:520
+msgid "Type based escape and alias analysis"
+msgstr ""
+
+#: common.opt:524
+msgid "Optimize induction variables on trees"
+msgstr "在樹上最佳化歸ç´è®Šæ•¸"
+
+#: common.opt:528
+msgid "Use jump tables for sufficiently large switch statements"
+msgstr "為足夠大的 switch 敘述使用跳轉表"
+
+#: common.opt:532
+msgid "Generate code for functions even if they are fully inlined"
+msgstr "為完全內è¯çš„函å¼ç”¢ç”Ÿç¨‹å¼ç¢¼"
+
+#: common.opt:536
+msgid "Emit static const variables even if they are not used"
+msgstr "ä¿ç•™æœªç”¨åˆ°çš„éœæ…‹å¸¸æ•¸"
+
+#: common.opt:540
+msgid "Give external symbols a leading underscore"
+msgstr "給外部符號加入起始的底線"
+
+#: common.opt:544
+msgid "Perform loop optimizations"
+msgstr "進行循環最佳化"
+
+#: common.opt:548
+msgid "Perform loop optimizations using the new loop optimizer"
+msgstr "用新的循環最佳化引擎進行循環最佳化"
+
+#: common.opt:552
+msgid "Set errno after built-in math functions"
+msgstr "執行內建數學函å¼å¾Œè¨­å®š errno"
+
+#: common.opt:556
+msgid "Report on permanent memory allocation"
+msgstr "報告永久性記憶體指派"
+
+#: common.opt:563
+msgid "Attempt to merge identical constants and constant variables"
+msgstr "試圖åˆä½µç›¸åŒçš„常數和常變數"
+
+#: common.opt:567
+msgid "Attempt to merge identical constants across compilation units"
+msgstr "試圖åˆä½µä¸åŒç·¨è­¯å–®å…ƒä¸­çš„相åŒå¸¸æ•¸"
+
+#: common.opt:571
+msgid "Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping"
+msgstr "t將診斷資訊é™åˆ¶åœ¨æ¯åˆ— <數字> 個字元。0 å–消自動æ›åˆ—"
+
+#: common.opt:575
+msgid "Perform SMS based modulo scheduling before the first scheduling pass"
+msgstr "在首趟調度å‰é€²è¡ŒåŸºæ–¼ SMS 的模調度"
+
+#: common.opt:579
+msgid "Move loop invariant computations out of loops"
+msgstr "å°‡æ¯æ¬¡å¾ªç’°ä¸­ä¸è®Šçš„計算外æ"
+
+#: common.opt:583
+msgid "Add mudflap bounds-checking instrumentation for single-threaded program"
+msgstr ""
+
+#: common.opt:587
+msgid "Add mudflap bounds-checking instrumentation for multi-threaded program"
+msgstr ""
+
+#: common.opt:591
+msgid "Ignore read operations when inserting mudflap instrumentation"
+msgstr ""
+
+#: common.opt:595
+msgid "Enable/Disable the traditional scheduling in loops that already passed modulo scheduling"
+msgstr "啟用/åœç”¨å·²ç¶“é€éŽæ¨¡èª¿åº¦çš„循環中的傳統調度"
+
+#: common.opt:599
+msgid "Support synchronous non-call exceptions"
+msgstr "支æ´åŒæ­¥éžå‘¼å«ç•°å¸¸"
+
+#: common.opt:603
+msgid "When possible do not generate stack frames"
+msgstr "盡å¯èƒ½ä¸ç”¢ç”Ÿå †ç–Šæ¡†æž¶"
+
+#: common.opt:607
+msgid "Do the full register move optimization pass"
+msgstr "進行全暫存器傳é€æœ€ä½³åŒ–"
+
+#: common.opt:611
+msgid "Optimize sibling and tail recursive calls"
+msgstr "最佳化åŒç´šéžè¿´å’Œå°¾éžè¿´"
+
+#: common.opt:615
+msgid "Pack structure members together without holes"
+msgstr "å°‡çµæ§‹æˆå“¡ä¸å¸¶é–“隔地緊實存放"
+
+#: common.opt:619
+msgid "Set initial maximum structure member alignment"
+msgstr "設定çµæ§‹æˆå“¡æœ€å¤§å°é½Šé‚Šç•Œçš„åˆå§‹å€¼"
+
+#: common.opt:623
+msgid "Return small aggregates in memory, not registers"
+msgstr "在記憶體而ä¸æ˜¯æš«å­˜å™¨ä¸­å›žå‚³å°èšåˆ"
+
+#: common.opt:627
+msgid "Perform loop peeling"
+msgstr "進行循環å‰é›¢"
+
+#: common.opt:631
+msgid "Enable machine specific peephole optimizations"
+msgstr "啟用機器相關的窺孔最佳化"
+
+#: common.opt:635
+msgid "Enable an RTL peephole pass before sched2"
+msgstr "在 sched2 å‰é€²è¡Œä¸€è¶Ÿ RTL 窺孔最佳化"
+
+#: common.opt:639
+msgid "Generate position-independent code if possible (large mode)"
+msgstr "盡å¯èƒ½ç”¢ç”Ÿèˆ‡ä½ç½®ç„¡é—œçš„程å¼ç¢¼(大模å¼)"
+
+#: common.opt:643
+msgid "Generate position-independent code for executables if possible (large mode)"
+msgstr "為å¯åŸ·è¡Œæª”案盡å¯èƒ½ç”¢ç”Ÿèˆ‡ä½ç½®ç„¡é—œçš„程å¼ç¢¼(大模å¼)"
+
+#: common.opt:647
+msgid "Generate position-independent code if possible (small mode)"
+msgstr "盡å¯èƒ½ç”¢ç”Ÿèˆ‡ä½ç½®ç„¡é—œçš„程å¼ç¢¼(å°æ¨¡å¼)"
+
+#: common.opt:651
+msgid "Generate position-independent code for executables if possible (small mode)"
+msgstr "為å¯åŸ·è¡Œæª”案盡å¯èƒ½ç”¢ç”Ÿèˆ‡ä½ç½®ç„¡é—œçš„程å¼ç¢¼(å°æ¨¡å¼)"
+
+#: common.opt:655
+msgid "Generate prefetch instructions, if available, for arrays in loops"
+msgstr "如果å¯ç”¨ï¼Œç‚ºå¾ªç’°ä¸­çš„陣列產生é å–指令"
+
+#: common.opt:659
+msgid "Enable basic program profiling code"
+msgstr "啟用基本程å¼å–樣程å¼ç¢¼"
+
+#: common.opt:663
+msgid "Insert arc-based program profiling code"
+msgstr ""
+
+#: common.opt:667
+msgid "Enable common options for generating profile info for profile feedback directed optimizations"
+msgstr "啟用一些公共é¸é …來產生樣本檔案,以便進行基於å–樣的最佳化"
+
+#: common.opt:671
+msgid "Enable common options for performing profile feedback directed optimizations"
+msgstr "啟用一些公共é¸é …以進行基於å–樣的最佳化"
+
+#: common.opt:675
+msgid "Insert code to profile values of expressions"
+msgstr "為å–樣é‹ç®—å¼çš„值æ’入相關程å¼ç¢¼"
+
+#: common.opt:682
+msgid "Make compile reproducible using <string>"
+msgstr "使用 <字串> 作用隨機數種å­ä»¥ä½¿ç·¨è­¯çµæžœå¯ä»¥è¤‡ç¾"
+
+#: common.opt:686
+msgid "Return small aggregates in registers"
+msgstr "在暫存器中回傳å°èšåˆ"
+
+#: common.opt:690
+msgid "Enables a register move optimization"
+msgstr "啟用暫存器傳é€æœ€ä½³åŒ–"
+
+#: common.opt:694
+msgid "Perform a register renaming optimization pass"
+msgstr "進行暫存器é‡æ–°å‘½å最佳化"
+
+#: common.opt:698
+msgid "Reorder basic blocks to improve code placement"
+msgstr "基本å€å¡Šé‡æ–°æŽ’åºä»¥æ”¹å–„程å¼ç¢¼ç‰ˆé¢è¨­ç½®"
+
+#: common.opt:702
+msgid "Reorder basic blocks and partition into hot and cold sections"
+msgstr ""
+
+#: common.opt:706
+msgid "Reorder functions to improve code placement"
+msgstr "函å¼é‡æ–°æŽ’åºä»¥æ”¹å–„程å¼ç¢¼ç‰ˆé¢è¨­ç½®"
+
+#: common.opt:710
+msgid "Add a common subexpression elimination pass after loop optimizations"
+msgstr "在循環最佳化çµæŸå¾Œå¢žåŠ ä¸€è¶Ÿå…¬å› å¼æ¶ˆåŽ»"
+
+#: common.opt:714
+msgid "Run the loop optimizer twice"
+msgstr "執行循環最佳化引擎兩次"
+
+#: common.opt:718
+msgid "Disable optimizations that assume default FP rounding behavior"
+msgstr "åœç”¨å‡å®šé è¨­æµ®é»žæ¨å…¥è¡Œç‚ºçš„最佳化"
+
+#: common.opt:722
+msgid "Enable scheduling across basic blocks"
+msgstr "啟用基本å€å¡Šé–“的調度"
+
+#: common.opt:726
+msgid "Allow speculative motion of non-loads"
+msgstr "å…許éžè¼‰å…¥çš„é æ¸¬ç§»å‹•"
+
+#: common.opt:730
+msgid "Allow speculative motion of some loads"
+msgstr "å…許一些載入的é æ¸¬ç§»å‹•"
+
+#: common.opt:734
+msgid "Allow speculative motion of more loads"
+msgstr "å…許更多載入的é æ¸¬ç§»å‹•"
+
+#: common.opt:738
+msgid "Set the verbosity level of the scheduler"
+msgstr "指定排程程å¼è¼¸å‡ºçš„冗餘程度"
+
+#: common.opt:742
+msgid "If scheduling post reload, do superblock scheduling"
+msgstr ""
+
+#: common.opt:746
+msgid "If scheduling post reload, do trace scheduling"
+msgstr ""
+
+#: common.opt:750
+msgid "Reschedule instructions before register allocation"
+msgstr "指派暫存器å‰é‡æ–°èª¿åº¦æŒ‡ä»¤"
+
+#: common.opt:754
+msgid "Reschedule instructions after register allocation"
+msgstr "指派暫存器後é‡æ–°èª¿åº¦æŒ‡ä»¤"
+
+#: common.opt:760
+msgid "Allow premature scheduling of queued insns"
+msgstr ""
+
+#: common.opt:764
+msgid "Set number of queued insns that can be prematurely scheduled"
+msgstr ""
+
+#: common.opt:772 common.opt:776
+msgid "Set dependence distance checking in premature scheduling of queued insns"
+msgstr ""
+
+#: common.opt:780
+msgid "Mark data as shared rather than private"
+msgstr "將資料標記為共享的而ä¸æ˜¯ç§æœ‰çš„"
+
+#: common.opt:784
+msgid "Show column numbers in diagnostics, when available. Default on"
+msgstr ""
+
+#: common.opt:788
+msgid "Disable optimizations observable by IEEE signaling NaNs"
+msgstr "åœç”¨ç‚º IEEE è¨Šæ¯ NaN å¯è¦‹çš„最佳化"
+
+#: common.opt:792
+msgid "Convert floating point constants to single precision constants"
+msgstr "將浮點常數轉æ›ç‚ºå–®ç²¾åº¦å¸¸æ•¸"
+
+#: common.opt:796
+msgid "Split lifetimes of induction variables when loops are unrolled"
+msgstr "展開循環時分離歸ç´è®Šæ•¸çš„生存期"
+
+#: common.opt:800
+msgid "Apply variable expansion when loops are unrolled"
+msgstr "展開循環時也展開變數"
+
+#: common.opt:806
+msgid "Insert stack checking code into the program"
+msgstr "在程å¼ä¸­æ’入檢查堆疊溢出的程å¼ç¢¼"
+
+#: common.opt:813
+msgid "Trap if the stack goes past <register>"
+msgstr ""
+
+#: common.opt:817
+msgid "Trap if the stack goes past symbol <name>"
+msgstr ""
+
+#: common.opt:821
+msgid "Use propolice as a stack protection method"
+msgstr ""
+
+#: common.opt:825
+msgid "Use a stack protection method for every function"
+msgstr ""
+
+#: common.opt:829
+msgid "Perform strength reduction optimizations"
+msgstr "進行強度削減最佳化"
+
+#: common.opt:837
+msgid "Assume strict aliasing rules apply"
+msgstr "å‡å®šå¥—用強é‡ç–Šè¦å‰‡"
+
+#: common.opt:841
+msgid "Check for syntax errors, then stop"
+msgstr "檢查語法錯誤,然後åœæ­¢"
+
+#: common.opt:845
+msgid "Create data files needed by \"gcov\""
+msgstr "產生「gcovã€éœ€è¦çš„資料檔案"
+
+#: common.opt:849
+msgid "Perform jump threading optimizations"
+msgstr "進行跳轉執行緒最佳化"
+
+#: common.opt:853
+msgid "Report the time taken by each compiler pass"
+msgstr "報告æ¯è¶Ÿçµ„譯的耗時"
+
+#: common.opt:857
+msgid "Set the default thread-local storage code generation model"
+msgstr "設定é è¨­çš„執行緒局部存儲程å¼ç¢¼ç”¢ç”Ÿæ¨¡å¼"
+
+#: common.opt:861
+msgid "Perform superblock formation via tail duplication"
+msgstr ""
+
+#: common.opt:868
+msgid "Assume floating-point operations can trap"
+msgstr "å‡å®šæµ®é»žé‹ç®—å¯èƒ½å¼•ç™¼é™·é˜±"
+
+#: common.opt:872
+msgid "Trap for signed overflow in addition, subtraction and multiplication"
+msgstr ""
+
+#: common.opt:876
+msgid "Enable SSA-CCP optimization on trees"
+msgstr "啟用樹上的 SSA-CCP 最佳化"
+
+#: common.opt:880
+msgid "Enable SSA-CCP optimization for stores and loads"
+msgstr "啟用載入和存儲的 SSA-CCP 最佳化"
+
+#: common.opt:884
+msgid "Enable loop header copying on trees"
+msgstr "啟用樹上的循環ä¸è®Šé‡è½‰ç§»"
+
+#: common.opt:888
+msgid "Coalesce memory temporaries in the SSA->normal pass"
+msgstr ""
+
+#: common.opt:892
+msgid "Replace SSA temporaries with better names in copies"
+msgstr ""
+
+#: common.opt:896
+msgid "Enable copy propagation on trees"
+msgstr "在樹層級進行複寫傳éž"
+
+#: common.opt:900
+msgid "Enable copy propagation for stores and loads"
+msgstr "為載入和存儲進行複寫傳éž"
+
+#: common.opt:904
+msgid "Enable SSA dead code elimination optimization on trees"
+msgstr "啟用樹上的 SSA 死程å¼ç¢¼æ¶ˆé™¤æœ€ä½³åŒ–"
+
+#: common.opt:908
+msgid "Enable dominator optimizations"
+msgstr "啟用主導最佳化"
+
+#: common.opt:912
+msgid "Enable dead store elimination"
+msgstr "刪除死存儲"
+
+#: common.opt:916
+msgid "Enable Full Redundancy Elimination (FRE) on trees"
+msgstr "啟用樹上的完全冗餘消除(FRE)"
+
+#: common.opt:920
+msgid "Enable loop invariant motion on trees"
+msgstr "啟用樹上的循環ä¸è®Šé‡è½‰ç§»"
+
+#: common.opt:924
+msgid "Enable linear loop transforms on trees"
+msgstr "啟用樹上的線性循環變æ›"
+
+#: common.opt:928
+msgid "Create canonical induction variables in loops"
+msgstr "在循環中產生正è¦çš„æ­¸ç´è®Šæ•¸"
+
+#: common.opt:932
+msgid "Enable loop optimizations on tree level"
+msgstr "在樹層級進行循環最佳化"
+
+#: common.opt:936
+msgid "Enable SSA-PRE optimization on trees"
+msgstr "啟用樹上的 SSA-PRE 最佳化"
+
+#: common.opt:940
+msgid "Perform structural alias analysis"
+msgstr ""
+
+#: common.opt:944
+msgid "Enable SSA code sinking on trees"
+msgstr "啟用樹上的 SSA 程å¼ç¢¼ä¸‹æ²‰æœ€ä½³åŒ–"
+
+#: common.opt:948
+msgid "Perform scalar replacement of aggregates"
+msgstr "為èšåˆé¡žåž‹é€²è¡Œæ¨™é‡æ›¿æ›"
+
+#: common.opt:952
+msgid "Replace temporary expressions in the SSA->normal pass"
+msgstr ""
+
+#: common.opt:956
+msgid "Perform live range splitting during the SSA->normal pass"
+msgstr ""
+
+#: common.opt:960
+msgid "Perform Value Range Propagation on trees"
+msgstr "進行樹上的值欄ä½å‚³éž"
+
+#: common.opt:964
+msgid "Compile whole compilation unit at a time"
+msgstr "一次編譯一整個編譯單元"
+
+#: common.opt:968
+msgid "Perform loop unrolling when iteration count is known"
+msgstr "展開所有迭代次數已知的循環"
+
+#: common.opt:972
+msgid "Perform loop unrolling for all loops"
+msgstr "展開所有循環"
+
+#: common.opt:979
+msgid "Allow loop optimizations to assume that the loops behave in normal way"
+msgstr "å…許å‡å®šå¾ªç’°ä»¥ã€Œæ­£å¸¸ã€æ–¹å¼å‹•ä½œçš„循環最佳化"
+
+#: common.opt:987
+msgid "Allow math optimizations that may violate IEEE or ISO standards"
+msgstr "å…許å¯èƒ½é•å IEEE 或 ISO 標準的最佳化"
+
+#: common.opt:991
+msgid "Perform loop unswitching"
+msgstr "外æ循環內的測試敘述"
+
+#: common.opt:995
+msgid "Just generate unwind tables for exception handling"
+msgstr "僅為異常處ç†ç”¢ç”Ÿå †ç–Šå±•é–‹è¡¨"
+
+#: common.opt:999
+msgid "Perform variable tracking"
+msgstr "進行變數追蹤"
+
+#: common.opt:1003
+msgid "Enable loop vectorization on trees"
+msgstr "在樹上進行循環å‘é‡åŒ–"
+
+#: common.opt:1007
+msgid "Enable loop versioning when doing loop vectorization on trees"
+msgstr "在樹上進行循環å‘é‡åŒ–時啟用多版本循環"
+
+#: common.opt:1011
+msgid "Set the verbosity level of the vectorizer"
+msgstr "設定å‘é‡åŒ–器輸出的冗餘程度"
+
+#: common.opt:1021
+msgid "Add extra commentary to assembler output"
+msgstr "為組譯輸出加入é¡å¤–註釋"
+
+#: common.opt:1025
+msgid "Set the default symbol visibility"
+msgstr "設定é è¨­çš„符號å¯è¦‹æ€§"
+
+#: common.opt:1030
+msgid "Use expression value profiles in optimizations"
+msgstr "在最佳化中使用é‹ç®—å¼å€¼æ¨£æœ¬æ供的資訊"
+
+#: common.opt:1034
+msgid "Construct webs and split unrelated uses of single variable"
+msgstr ""
+
+#: common.opt:1038
+msgid "Perform whole program optimizations"
+msgstr "進行全程å¼æœ€ä½³åŒ–"
+
+#: common.opt:1042
+msgid "Assume signed arithmetic overflow wraps around"
+msgstr "å‡å®šæœ‰è™Ÿé‹ç®—溢出時回繞"
+
+#: common.opt:1046
+msgid "Put zero initialized data in the bss section"
+msgstr "å°‡åˆå§‹åŒ–為零的資料存放在 bss å€æ®µä¸­"
+
+#: common.opt:1050
+msgid "Generate debug information in default format"
+msgstr "產生é è¨­æ ¼å¼çš„除錯資訊"
+
+#: common.opt:1054
+msgid "Generate debug information in COFF format"
+msgstr "產生 COFF æ ¼å¼çš„除錯資訊"
+
+#: common.opt:1058
+msgid "Generate debug information in DWARF v2 format"
+msgstr "產生 DWARF v2 æ ¼å¼çš„除錯資訊"
+
+#: common.opt:1062
+msgid "Generate debug information in default extended format"
+msgstr "產生é è¨­æ“´å……æ ¼å¼çš„除錯資訊"
+
+#: common.opt:1066
+msgid "Generate debug information in STABS format"
+msgstr "產生 STABS æ ¼å¼çš„除錯資訊"
+
+#: common.opt:1070
+msgid "Generate debug information in extended STABS format"
+msgstr "產生擴充 STABS æ ¼å¼çš„除錯資訊"
+
+#: common.opt:1074
+msgid "Generate debug information in VMS format"
+msgstr "產生 VMS æ ¼å¼çš„除錯資訊"
+
+#: common.opt:1078
+msgid "Generate debug information in XCOFF format"
+msgstr "產生 XCOFF æ ¼å¼çš„除錯資訊"
+
+#: common.opt:1082
+msgid "Generate debug information in extended XCOFF format"
+msgstr "產生 XCOFF æ“´å……æ ¼å¼çš„除錯資訊"
+
+#: common.opt:1086
+msgid "Place output into <file>"
+msgstr "將輸出寫入 <file>"
+
+#: common.opt:1090
+msgid "Enable function profiling"
+msgstr "啟用函å¼å–樣"
+
+#: common.opt:1094
+msgid "Issue warnings needed for strict compliance to the standard"
+msgstr "給出標準指定的所有警告資訊"
+
+#: common.opt:1098
+msgid "Like -pedantic but issue them as errors"
+msgstr "與 -pedantic 類似,但將它們視作錯誤"
+
+#: common.opt:1102
+msgid "Do not display functions compiled or elapsed time"
+msgstr "ä¸é¡¯ç¤ºç·¨è­¯çš„函å¼æˆ–é€åŽ»çš„時間"
+
+#: common.opt:1106
+msgid "Display the compiler's version"
+msgstr "顯示編譯器版本"
+
+#: common.opt:1110
+msgid "Suppress warnings"
+msgstr "ä¸é¡¯ç¤ºè­¦å‘Š"
+
+#: attribs.c:175
+#, gcc-internal-format
+msgid "%qs attribute directive ignored"
+msgstr "忽略 %qs 屬性指定"
+
+#: attribs.c:183
+#, gcc-internal-format
+msgid "wrong number of arguments specified for %qs attribute"
+msgstr "為 %qs 屬性給定的引數數目錯誤"
+
+#: attribs.c:200
+#, gcc-internal-format
+msgid "%qs attribute does not apply to types"
+msgstr "ä¸èƒ½å‘類型加入屬性 %qs"
+
+#: attribs.c:247
+#, gcc-internal-format
+msgid "%qs attribute only applies to function types"
+msgstr "屬性 %qs åªå°å‡½å¼é¡žåž‹èµ·ä½œç”¨"
+
+#: bb-reorder.c:1872
+#, gcc-internal-format
+msgid "multiple hot/cold transitions found (bb %i)"
+msgstr ""
+
+#: bt-load.c:1504
+#, gcc-internal-format
+msgid "branch target register load optimization is not intended to be run twice"
+msgstr ""
+
+#: builtins.c:375
+#, gcc-internal-format
+msgid "offset outside bounds of constant string"
+msgstr "å移é‡è¶…éŽå­—串常數界"
+
+#: builtins.c:975
+#, gcc-internal-format
+msgid "second argument to %<__builtin_prefetch%> must be a constant"
+msgstr "%<__builtin_prefetch%> 的第二個引數必須是一個常數"
+
+#: builtins.c:982
+#, gcc-internal-format
+msgid "invalid second argument to %<__builtin_prefetch%>; using zero"
+msgstr "%<__builtin_prefetch%> 的第二個引數無效;使用 0"
+
+#: builtins.c:990
+#, gcc-internal-format
+msgid "third argument to %<__builtin_prefetch%> must be a constant"
+msgstr "%<__builtin_prefetch%> 的第三個引數必須是一個常數"
+
+#: builtins.c:997
+#, gcc-internal-format
+msgid "invalid third argument to %<__builtin_prefetch%>; using zero"
+msgstr "%<__builtin_prefetch%> 的第三個引數無效;使用 0"
+
+#: builtins.c:4087
+#, gcc-internal-format
+msgid "argument of %<__builtin_args_info%> must be constant"
+msgstr "%<__builtin_args_info%> 的引數必須是常數"
+
+#: builtins.c:4093
+#, gcc-internal-format
+msgid "argument of %<__builtin_args_info%> out of range"
+msgstr "%<__builtin_args_info%> 引數ä¸åœ¨å…許範åœå…§"
+
+#: builtins.c:4099
+#, gcc-internal-format
+msgid "missing argument in %<__builtin_args_info%>"
+msgstr "%<__builtin_args_info%> 缺少引數"
+
+#: builtins.c:4195 gimplify.c:1882
+#, gcc-internal-format
+msgid "too few arguments to function %<va_start%>"
+msgstr "çµ¦å‡½å¼ %<va_start%> çš„åƒæ•¸å¤ªå°‘"
+
+#: builtins.c:4359
+#, gcc-internal-format
+msgid "first argument to %<va_arg%> not of type %<va_list%>"
+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:4373
+#, gcc-internal-format
+msgid "%qT is promoted to %qT when passed through %<...%>"
+msgstr "é€éŽ %<...%> 傳éžæ™‚ %qT 被æå‡ç‚º %qT"
+
+#: builtins.c:4378
+#, gcc-internal-format
+msgid "(so you should pass %qT not %qT to %<va_arg%>)"
+msgstr "(å› æ­¤æ‚¨æ‡‰è©²å‘ %<va_arg%> å‚³éž %qT 而ä¸æ˜¯ %qT)"
+
+#. We can, however, treat "undefined" any way we please.
+#. Call abort to encourage the user to fix the program.
+#: builtins.c:4384 c-typeck.c:2186
+#, gcc-internal-format
+msgid "if this code is reached, the program will abort"
+msgstr "如果執行到這段程å¼ç¢¼ï¼Œç¨‹å¼å°‡ä¸­æ­¢"
+
+#: builtins.c:4503
+#, gcc-internal-format
+msgid "invalid argument to %<__builtin_frame_address%>"
+msgstr "%<__builtin_frame_address%> 的引數無效"
+
+#: builtins.c:4505
+#, gcc-internal-format
+msgid "invalid argument to %<__builtin_return_address%>"
+msgstr "%<__builtin_return_address%> 的引數無效"
+
+#: builtins.c:4518
+#, gcc-internal-format
+msgid "unsupported argument to %<__builtin_frame_address%>"
+msgstr "%<__builtin_frame_address%> 的引數ä¸å—支æ´"
+
+#: builtins.c:4520
+#, gcc-internal-format
+msgid "unsupported argument to %<__builtin_return_address%>"
+msgstr "%<__builtin_return_address%> 的引數ä¸å—支æ´"
+
+#: builtins.c:4623
+#, gcc-internal-format
+msgid "second argument to %<__builtin_expect%> must be a constant"
+msgstr "%<__builtin_expect%> 的第二個引數必須是一個常數"
+
+#: builtins.c:6095
+#, gcc-internal-format
+msgid "%<__builtin_longjmp%> second argument must be 1"
+msgstr "%<__builtin_longjmp%> 的第二個引數必須是 1"
+
+#: builtins.c:6659
+#, gcc-internal-format
+msgid "target format does not support infinity"
+msgstr "目的格å¼ä¸æ”¯æ´ç„¡é™å¤§æµ®é»žæ•¸"
+
+#: builtins.c:8501 builtins.c:8595
+#, gcc-internal-format
+msgid "too few arguments to function %qs"
+msgstr "çµ¦äºˆå‡½å¼ %qs çš„åƒæ•¸å¤ªå°‘"
+
+#: builtins.c:8507 builtins.c:8601
+#, gcc-internal-format
+msgid "too many arguments to function %qs"
+msgstr "çµ¦äºˆå‡½å¼ %qs çš„åƒæ•¸å¤ªå¤š"
+
+#: builtins.c:8513 builtins.c:8626
+#, gcc-internal-format
+msgid "non-floating-point argument to function %qs"
+msgstr "çµ¦äºˆå‡½å¼ %qs çš„åƒæ•¸ä¸æ˜¯æµ®é»žæ•¸"
+
+#: builtins.c:9726
+#, gcc-internal-format
+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:9733
+#, gcc-internal-format
+msgid "%<__builtin_next_arg%> called without an argument"
+msgstr "å‘¼å« %<__builtin_next_arg%> 時沒有給定引數"
+
+#: builtins.c:9748
+#, gcc-internal-format
+msgid "%<va_start%> used with too many arguments"
+msgstr "使用 %<va_start%> 時åƒæ•¸å¤ªå¤š"
+
+#. 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:9768
+#, gcc-internal-format
+msgid "second parameter of %<va_start%> not last named argument"
+msgstr "%<va_start%> 的第二個åƒæ•¸ä¸æ˜¯æœ€å¾Œä¸€å€‹å…·ååƒæ•¸"
+
+#: builtins.c:9880
+#, gcc-internal-format
+msgid "%Hfirst argument of %D must be a pointer, second integer constant"
+msgstr "%H%D 的第一個引數必須是一個指標,第二個必須是整常數"
+
+#: builtins.c:9893
+#, gcc-internal-format
+msgid "%Hlast argument of %D is not integer constant between 0 and 3"
+msgstr "%H%D 的最後一個引數ä¸æ˜¯ä¸€å€‹ 0 到 3 之間的整常數"
+
+#: builtins.c:9939 builtins.c:10092 builtins.c:10160
+#, gcc-internal-format
+msgid "%Hcall to %D will always overflow destination buffer"
+msgstr "%Hå° %D 的呼å«ç¸½æ˜¯å°Žè‡´ç›®çš„ç·©è¡å€æº¢å‡º"
+
+#: c-common.c:831
+#, gcc-internal-format
+msgid "%qD is not defined outside of function scope"
+msgstr "%qD 在函å¼ä½œç”¨æ¬„ä½å¤–未被定義"
+
+#: c-common.c:852
+#, gcc-internal-format
+msgid "string length %qd is greater than the length %qd ISO C%d compilers are required to support"
+msgstr "字串長 %qd 比 %qd (ISO C%d 被è¦æ±‚支æ´çš„最大長度) é‚„è¦é•·"
+
+#: c-common.c:893
+#, gcc-internal-format
+msgid "overflow in constant expression"
+msgstr "常數é‹ç®—å¼æº¢å‡º"
+
+#: c-common.c:913
+#, gcc-internal-format
+msgid "integer overflow in expression"
+msgstr "整數溢出"
+
+#: c-common.c:922
+#, gcc-internal-format
+msgid "floating point overflow in expression"
+msgstr "é‹ç®—å¼ä¸­æµ®é»žæº¢å‡º"
+
+#: c-common.c:928
+#, gcc-internal-format
+msgid "vector overflow in expression"
+msgstr "å‘é‡æµ®é»žæº¢å‡º"
+
+#. This detects cases like converting -129 or 256 to unsigned char.
+#: c-common.c:950
+#, gcc-internal-format
+msgid "large integer implicitly truncated to unsigned type"
+msgstr "大整數隱å«æˆªæ–·ç‚ºç„¡è™Ÿé¡žåž‹"
+
+#: c-common.c:953
+#, gcc-internal-format
+msgid "negative integer implicitly converted to unsigned type"
+msgstr "負整數隱å«è½‰æ›ç‚ºç„¡è™Ÿé¡žåž‹"
+
+#: c-common.c:975
+#, gcc-internal-format
+msgid "type-punning to incomplete type might break strict-aliasing rules"
+msgstr "類型雙關作用在ä¸å®Œå…¨é¡žåž‹ä¸Šå¯èƒ½ç ´å£žå¼·é‡ç–Šè¦å‰‡"
+
+#: c-common.c:983
+#, gcc-internal-format
+msgid "dereferencing type-punned pointer will break strict-aliasing rules"
+msgstr "æ領類型雙關的指標將破壞強é‡ç–Šè¦å‰‡"
+
+#: c-common.c:987
+#, gcc-internal-format
+msgid "dereferencing type-punned pointer might break strict-aliasing rules"
+msgstr "æ領類型雙關的指標å¯èƒ½ç ´å£žå¼·é‡ç–Šè¦å‰‡"
+
+#: c-common.c:1049
+#, gcc-internal-format
+msgid "overflow in implicit constant conversion"
+msgstr "éš±å«å¸¸æ•¸è½‰æ›æº¢å‡º"
+
+#: c-common.c:1185
+#, gcc-internal-format
+msgid "operation on %qE may be undefined"
+msgstr "%qE 上的é‹ç®—çµæžœå¯èƒ½æ˜¯æœªå®šç¾©çš„"
+
+#: c-common.c:1471
+#, gcc-internal-format
+msgid "case label does not reduce to an integer constant"
+msgstr "case 標籤ä¸èƒ½é‚„原為一個整常數"
+
+#: c-common.c:1511
+#, gcc-internal-format
+msgid "case label value is less than minimum value for type"
+msgstr "case 標籤值比該類型的最å°å€¼é‚„è¦å°"
+
+#: c-common.c:1519
+#, gcc-internal-format
+msgid "case label value exceeds maximum value for type"
+msgstr "case 標籤值比該類型的最大值還è¦å¤§"
+
+#: c-common.c:1527
+#, gcc-internal-format
+msgid "lower value in case label range less than minimum value for type"
+msgstr "case 標籤範åœçš„下é™å€¼æ¯”該類型的最å°å€¼é‚„è¦å°"
+
+#: c-common.c:1536
+#, gcc-internal-format
+msgid "upper value in case label range exceeds maximum value for type"
+msgstr "case 標籤範åœçš„上é™å€¼æ¯”該類型的最大值還è¦å¤§"
+
+#: c-common.c:1876
+#, gcc-internal-format
+msgid "invalid truth-value expression"
+msgstr "無效的真值é‹ç®—å¼"
+
+#: c-common.c:1924
+#, gcc-internal-format
+msgid "invalid operands to binary %s"
+msgstr "二進ä½é‹ç®—å­ %s é‹ç®—元無效"
+
+#: c-common.c:2159
+#, gcc-internal-format
+msgid "comparison is always false due to limited range of data type"
+msgstr "由於資料類型範åœé™åˆ¶ï¼Œæ¯”較çµæžœæ°¸é ç‚ºå‡"
+
+#: c-common.c:2161
+#, gcc-internal-format
+msgid "comparison is always true due to limited range of data type"
+msgstr "由於資料類型範åœé™åˆ¶ï¼Œæ¯”較çµæžœæ°¸é ç‚ºçœŸ"
+
+#: c-common.c:2231
+#, gcc-internal-format
+msgid "comparison of unsigned expression >= 0 is always true"
+msgstr "無號é‹ç®—å¼æ°¸é å¤§æ–¼æˆ–等於 0"
+
+#: c-common.c:2240
+#, gcc-internal-format
+msgid "comparison of unsigned expression < 0 is always false"
+msgstr "無號é‹ç®—å¼æ°¸é ä¸å°æ–¼ 0"
+
+#: c-common.c:2282
+#, gcc-internal-format
+msgid "pointer of type %<void *%> used in arithmetic"
+msgstr "%<void *%> 型指標用在了算術é‹ç®—å¼ä¸­"
+
+#: c-common.c:2288
+#, gcc-internal-format
+msgid "pointer to a function used in arithmetic"
+msgstr "在算術é‹ç®—å¼ä¸­ä½¿ç”¨äº†å‡½å¼æŒ‡æ¨™"
+
+#: c-common.c:2294
+#, gcc-internal-format
+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:2420
+#, gcc-internal-format
+msgid "the address of %qD, will always evaluate as %<true%>"
+msgstr "%qD çš„ä½å€ç¸½æ˜¯ç­‰åƒ¹ç‚º %<true%>"
+
+#: c-common.c:2517
+#, gcc-internal-format
+msgid "suggest parentheses around assignment used as truth value"
+msgstr "建議在åšç‚ºçœŸå€¼çš„賦值敘述å‰å¾ŒåŠ ä¸Šæ‹¬è™Ÿ"
+
+#: c-common.c:2585 c-common.c:2625
+#, gcc-internal-format
+msgid "invalid use of %<restrict%>"
+msgstr "錯誤地使用了 %<restrict%>"
+
+#: c-common.c:2841
+#, gcc-internal-format
+msgid "invalid application of %<sizeof%> to a function type"
+msgstr "%<sizeof%> ä¸èƒ½ç”¨æ–¼å‡½å¼é¡žåž‹"
+
+#: c-common.c:2851
+#, gcc-internal-format
+msgid "invalid application of %qs to a void type"
+msgstr "%qs ä¸èƒ½ç”¨æ–¼ void é¡žåž‹"
+
+#: c-common.c:2857
+#, gcc-internal-format
+msgid "invalid application of %qs to incomplete type %qT "
+msgstr "%qs ä¸èƒ½ç”¨æ–¼ä¸å®Œå…¨çš„é¡žåž‹ %qT"
+
+#: c-common.c:2898
+#, gcc-internal-format
+msgid "%<__alignof%> applied to a bit-field"
+msgstr "å°‡ %<__alignof%> 用於ä½å…ƒæ®µ"
+
+#: c-common.c:3444
+#, gcc-internal-format
+msgid "cannot disable built-in function %qs"
+msgstr "無法åœç”¨å…§å»ºå‡½å¼ %qs"
+
+#: c-common.c:3632
+#, gcc-internal-format
+msgid "pointers are not permitted as case values"
+msgstr "指標ä¸èƒ½åšç‚º case 常數"
+
+#: c-common.c:3638
+#, gcc-internal-format
+msgid "range expressions in switch statements are non-standard"
+msgstr "在 switch 敘述中使用範åœé‹ç®—å¼ä¸ç¬¦åˆæ¨™æº–"
+
+#: c-common.c:3664
+#, gcc-internal-format
+msgid "empty range specified"
+msgstr "指定範åœç‚ºç©º"
+
+#: c-common.c:3724
+#, gcc-internal-format
+msgid "duplicate (or overlapping) case value"
+msgstr "é‡è¤‡ (或é‡ç–Š) çš„ case 值"
+
+#: c-common.c:3725
+#, gcc-internal-format
+msgid "%Jthis is the first entry overlapping that value"
+msgstr "%J這是é‡ç–Šæ­¤å€¼çš„第一個æ¢ç›®"
+
+#: c-common.c:3729
+#, gcc-internal-format
+msgid "duplicate case value"
+msgstr "é‡è¤‡çš„ case 常數"
+
+#: c-common.c:3730
+#, gcc-internal-format
+msgid "%Jpreviously used here"
+msgstr "%J已經在這裡使用éŽ"
+
+#: c-common.c:3734
+#, gcc-internal-format
+msgid "multiple default labels in one switch"
+msgstr "單一 switch 敘述中出ç¾äº†å¤šå€‹ default 標籤"
+
+#: c-common.c:3735
+#, gcc-internal-format
+msgid "%Jthis is the first default label"
+msgstr "%J這是第一個é è¨­æ¨™ç±¤"
+
+#: c-common.c:3784
+#, gcc-internal-format
+msgid "%Jcase value %qs not in enumerated type"
+msgstr "%Jcase 值 %qs ä¸åœ¨åˆ—舉類型內"
+
+#: c-common.c:3787
+#, gcc-internal-format
+msgid "%Jcase value %qs not in enumerated type %qT"
+msgstr "%Jcase 值 %qs ä¸åœ¨åˆ—舉類型 %qT å…§"
+
+#: c-common.c:3844
+#, gcc-internal-format
+msgid "%Hswitch missing default case"
+msgstr "%Hswitch 沒有é è¨­ case"
+
+#. Warn if there are enumerators that don't correspond to
+#. case expressions.
+#: c-common.c:3904
+#, gcc-internal-format
+msgid "%Henumeration value %qE not handled in switch"
+msgstr "%Hswitch 沒有處ç†åˆ—舉值 %qE"
+
+#: c-common.c:3931
+#, gcc-internal-format
+msgid "taking the address of a label is non-standard"
+msgstr "å–標籤的ä½å€ä¸ç¬¦åˆæ¨™æº–"
+
+#: c-common.c:4095
+#, gcc-internal-format
+msgid "%qE attribute ignored for field of type %qT"
+msgstr "%qE 屬性為 %qT 型態的欄ä½æ‰€å¿½ç•¥"
+
+#: c-common.c:4106 c-common.c:4125 c-common.c:4143 c-common.c:4170
+#: c-common.c:4189 c-common.c:4212 c-common.c:4233 c-common.c:4258
+#: c-common.c:4284 c-common.c:4332 c-common.c:4359 c-common.c:4410
+#: c-common.c:4435 c-common.c:4463 c-common.c:4482 c-common.c:4814
+#: c-common.c:4879 c-common.c:4975 c-common.c:5041 c-common.c:5059
+#: c-common.c:5105 c-common.c:5175 c-common.c:5199 c-common.c:5498
+#: c-common.c:5521 c-common.c:5560
+#, gcc-internal-format
+msgid "%qE attribute ignored"
+msgstr "%qE 屬性被忽略"
+
+#: c-common.c:4313
+#, gcc-internal-format
+msgid "%qE attribute have effect only on public objects"
+msgstr "%qE 屬性åªèƒ½å¥—用到公共物件上"
+
+#: c-common.c:4520
+#, gcc-internal-format
+msgid "unknown machine mode %qs"
+msgstr "ä¸æ˜Žçš„æ©Ÿå™¨æ¨¡å¼ %qs"
+
+#: c-common.c:4540
+#, gcc-internal-format
+msgid "specifying vector types with __attribute__ ((mode)) is deprecated"
+msgstr "指定å‘é‡é¡žåž‹æ™‚使用 __attribute__ ((mode)) å·²éŽæ™‚"
+
+#: c-common.c:4543
+#, gcc-internal-format
+msgid "use __attribute__ ((vector_size)) instead"
+msgstr "改用 __attribute__ ((vector_size))"
+
+#: c-common.c:4552
+#, gcc-internal-format
+msgid "unable to emulate %qs"
+msgstr "無法列舉 %qs"
+
+#: c-common.c:4562
+#, gcc-internal-format
+msgid "invalid pointer mode %qs"
+msgstr "ç„¡æ•ˆçš„æŒ‡æ¨™æ¨¡å¼ %qs"
+
+#: c-common.c:4577
+#, gcc-internal-format
+msgid "no data type for mode %qs"
+msgstr "沒有模å¼ç‚º %qs 的資料類型"
+
+#: c-common.c:4587
+#, gcc-internal-format
+msgid "cannot use mode %qs for enumeral types"
+msgstr "ç„¡æ³•ç‚ºåˆ—èˆ‰é¡žåž‹ä½¿ç”¨æ¨¡å¼ %qs"
+
+#: c-common.c:4614
+#, gcc-internal-format
+msgid "mode %qs applied to inappropriate type"
+msgstr "å°ä¸åˆé©çš„é¡žåž‹å¥—ç”¨æ¨¡å¼ %qs"
+
+#: c-common.c:4645
+#, gcc-internal-format
+msgid "%Jsection attribute cannot be specified for local variables"
+msgstr "%Jä¸èƒ½ç‚ºå±€éƒ¨è®Šæ•¸æŒ‡å®š section 屬性"
+
+#: c-common.c:4656
+#, gcc-internal-format
+msgid "section of %q+D conflicts with previous declaration"
+msgstr "%q+D çš„å€æ®µèˆ‡æ—©å…ˆçš„宣告è¡çª"
+
+#: c-common.c:4665
+#, gcc-internal-format
+msgid "section attribute not allowed for %q+D"
+msgstr "%q+D ä¸èƒ½æœ‰ section 屬性"
+
+#: c-common.c:4671
+#, gcc-internal-format
+msgid "%Jsection attributes are not supported for this target"
+msgstr "%Jsection 屬性在此目標平臺上ä¸å—支æ´"
+
+#: c-common.c:4703
+#, gcc-internal-format
+msgid "requested alignment is not a constant"
+msgstr "è¦æ±‚çš„å°é½Šé‚Šç•Œä¸æ˜¯å¸¸æ•¸"
+
+#: c-common.c:4708
+#, gcc-internal-format
+msgid "requested alignment is not a power of 2"
+msgstr "è¦æ±‚çš„å°é½Šé‚Šç•Œä¸æ˜¯ 2 çš„æŸæ¬¡æ–¹"
+
+#: c-common.c:4713
+#, gcc-internal-format
+msgid "requested alignment is too large"
+msgstr "è¦æ±‚çš„å°é½Šé‚Šç•Œå¤ªå¤§"
+
+#: c-common.c:4739
+#, gcc-internal-format
+msgid "alignment may not be specified for %q+D"
+msgstr "ä¸èƒ½ç‚º %q+D 指定å°é½Š"
+
+#: c-common.c:4777
+#, gcc-internal-format
+msgid "%q+D defined both normally and as an alias"
+msgstr "%q+D 既有正常定義åˆæœ‰åˆ¥å定義"
+
+#: c-common.c:4793
+#, gcc-internal-format
+msgid "alias argument not a string"
+msgstr "alias çš„åƒæ•¸ä¸æ˜¯ä¸€å€‹å­—串"
+
+#: c-common.c:4844
+#, gcc-internal-format
+msgid "%Jweakref attribute must appear before alias attribute"
+msgstr "%Jweakref 屬性必須出ç¾åœ¨ alias 屬性å‰"
+
+#: c-common.c:4872
+#, gcc-internal-format
+msgid "%qE attribute ignored on non-class types"
+msgstr "%qE 屬性在ä¸æ˜¯é¡žåˆ¥çš„類型上被忽略"
+
+#: c-common.c:4885
+#, gcc-internal-format
+msgid "visibility argument not a string"
+msgstr "visibility 的引數ä¸æ˜¯ä¸€å€‹å­—串"
+
+#: c-common.c:4897
+#, gcc-internal-format
+msgid "%qE attribute ignored on types"
+msgstr "%qE 屬性在類型上被忽略"
+
+#: c-common.c:4912
+#, gcc-internal-format
+msgid "visibility argument must be one of \"default\", \"hidden\", \"protected\" or \"internal\""
+msgstr "visibility 的引數必須是「defaultã€ã€ã€Œhiddenã€ã€ã€Œprotectedã€æˆ–「internalã€å…¶ä¸­ä¹‹ä¸€"
+
+#: c-common.c:4983
+#, gcc-internal-format
+msgid "tls_model argument not a string"
+msgstr "tls_model 的引數ä¸æ˜¯ä¸€å€‹å­—串"
+
+#: c-common.c:4996
+#, gcc-internal-format
+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ã€æˆ–「global-dynamicã€å…¶ä¸­ä¹‹ä¸€"
+
+#: c-common.c:5015 c-common.c:5079
+#, gcc-internal-format
+msgid "%J%qE attribute applies only to functions"
+msgstr "%J%qE 屬性åªèƒ½å¥—用到函å¼ä¸Š"
+
+#: c-common.c:5020 c-common.c:5084
+#, gcc-internal-format
+msgid "%Jcan%'t set %qE attribute after definition"
+msgstr "%J定義之後ä¸èƒ½è¨­å®š %qE 屬性"
+
+#: c-common.c:5173
+#, gcc-internal-format
+msgid "%qE attribute ignored for %qE"
+msgstr "%qE 屬性為 %qE 所忽略"
+
+#: c-common.c:5228
+#, gcc-internal-format
+msgid "invalid vector type for attribute %qE"
+msgstr "屬性 %qE çš„å‘é‡é¡žåž‹ç„¡æ•ˆ"
+
+#: c-common.c:5234
+#, gcc-internal-format
+msgid "vector size not an integral multiple of component size"
+msgstr ""
+
+#: c-common.c:5240
+#, gcc-internal-format
+msgid "zero vector size"
+msgstr ""
+
+#: c-common.c:5248
+#, gcc-internal-format
+msgid "number of components of the vector not a power of two"
+msgstr "å‘é‡ä¸­åˆ†é‡æ•¸ä¸æ˜¯ 2 çš„æŸæ¬¡æ–¹"
+
+#: c-common.c:5276
+#, gcc-internal-format
+msgid "nonnull attribute without arguments on a non-prototype"
+msgstr "éžç©ºçš„屬性在éžåŽŸåž‹ä¸­æ²’有引數"
+
+#: c-common.c:5291
+#, gcc-internal-format
+msgid "nonnull argument has invalid operand number (argument %lu)"
+msgstr "éžç©ºçš„引數 %lu é‹ç®—元號ä¸æ­£ç¢º"
+
+#: c-common.c:5310
+#, gcc-internal-format
+msgid "nonnull argument with out-of-range operand number (argument %lu, operand %lu)"
+msgstr "éžç©ºçš„引數é‹ç®—元號越界(引數 %lu,é‹ç®—å…ƒ %lu)"
+
+#: c-common.c:5318
+#, gcc-internal-format
+msgid "nonnull argument references non-pointer operand (argument %lu, operand %lu)"
+msgstr "éžç©ºçš„引數 %lu åƒç…§äº†éžæŒ‡æ¨™é‹ç®—å…ƒ %lu"
+
+#: c-common.c:5381 c-common.c:5404
+#, gcc-internal-format
+msgid "not enough variable arguments to fit a sentinel"
+msgstr "變數引數太少,ä¸è¶³ä»¥å¡«æ»¿ä¸€å€‹å“¨å…µ"
+
+#: c-common.c:5425
+#, gcc-internal-format
+msgid "missing sentinel in function call"
+msgstr "函å¼å‘¼å«ä¸­ç¼ºå°‘哨兵"
+
+#: c-common.c:5467
+#, gcc-internal-format
+msgid "null argument where non-null required (argument %lu)"
+msgstr "引數為 NULL,需è¦éž NULL 值(引數 %lu)"
+
+#: c-common.c:5532
+#, gcc-internal-format
+msgid "cleanup argument not an identifier"
+msgstr "cleanup 引數ä¸æ˜¯ä¸€å€‹è­˜åˆ¥ç¢¼"
+
+#: c-common.c:5539
+#, gcc-internal-format
+msgid "cleanup argument not a function"
+msgstr "cleanup 引數ä¸æ˜¯ä¸€å€‹å‡½å¼"
+
+#: c-common.c:5578
+#, gcc-internal-format
+msgid "%qE attribute requires prototypes with named arguments"
+msgstr "%qE 屬性需è¦å¸¶å…·å引數的原型"
+
+#: c-common.c:5589
+#, gcc-internal-format
+msgid "%qE attribute only applies to variadic functions"
+msgstr "%qE 屬性åªèƒ½ç”¨æ–¼å¸¶å¯è®Šåƒæ•¸å‡½å¼"
+
+#: c-common.c:5600
+#, gcc-internal-format
+msgid "requested position is not an integer constant"
+msgstr "è¦æ±‚çš„ä½ç½®ä¸æ˜¯ä¸€å€‹æ•´æ•¸å¸¸æ•¸"
+
+#: c-common.c:5607
+#, gcc-internal-format
+msgid "requested position is less than zero"
+msgstr "è¦æ±‚çš„ä½ç½®å°æ–¼ 0"
+
+#: c-common.c:5909
+#, gcc-internal-format
+msgid "%Hignoring return value of %qD, declared with attribute warn_unused_result"
+msgstr "%H忽略宣告有 warn_unused_result 屬性的 %qD 的回傳值"
+
+#: c-common.c:5913
+#, gcc-internal-format
+msgid "%Hignoring return value of function declared with attribute warn_unused_result"
+msgstr "%H忽略宣告有 warn_unused_result 屬性的函å¼çš„回傳值"
+
+#: c-common.c:5973 cp/typeck.c:4258
+#, gcc-internal-format
+msgid "attempt to take address of bit-field structure member %qD"
+msgstr "試圖å–ä½å…ƒæ®µçµæ§‹æˆå“¡ %qD çš„ä½å€"
+
+#: c-common.c:6020
+#, gcc-internal-format
+msgid "invalid lvalue in assignment"
+msgstr "賦值é‹ç®—中的左值無效"
+
+#: c-common.c:6023
+#, gcc-internal-format
+msgid "invalid lvalue in increment"
+msgstr "自增é‹ç®—中的左值無效"
+
+#: c-common.c:6026
+#, gcc-internal-format
+msgid "invalid lvalue in decrement"
+msgstr "自減é‹ç®—中的左值無效"
+
+#: c-common.c:6029
+#, gcc-internal-format
+msgid "invalid lvalue in unary %<&%>"
+msgstr "å–®ä½å…ƒ %<&%> é‹ç®—中的左值無效"
+
+#: c-common.c:6032
+#, gcc-internal-format
+msgid "invalid lvalue in asm statement"
+msgstr "asm 敘述中出ç¾ç„¡æ•ˆçš„左值"
+
+#: c-common.c:6160 c-common.c:6209 c-typeck.c:2444
+#, gcc-internal-format
+msgid "too few arguments to function %qE"
+msgstr "æä¾›çµ¦å‡½å¼ %qE 的引數太少"
+
+#. ??? This should not be an error when inlining calls to
+#. unprototyped functions.
+#: c-common.c:6177 c-typeck.c:4096
+#, gcc-internal-format
+msgid "incompatible type for argument %d of %qE"
+msgstr "引數 %d(屬於 %qE)é¡žåž‹ä¸ç›¸å®¹"
+
+#. 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:96 c-typeck.c:1597 c-typeck.c:3737 cp/typeck.c:1372
+#: cp/typeck.c:6011 fortran/convert.c:89 treelang/tree-convert.c:79
+#, gcc-internal-format
+msgid "void value not ignored as it ought to be"
+msgstr "void 值未如é æœŸåœ°è¢«å¿½ç•¥"
+
+#: c-convert.c:134 fortran/convert.c:122 java/typeck.c:154
+#: treelang/tree-convert.c:105
+#, gcc-internal-format
+msgid "conversion to non-scalar type requested"
+msgstr "請求轉æ›åˆ°éžæ¨™é‡é¡žåž‹"
+
+#: c-decl.c:564
+#, gcc-internal-format
+msgid "array %q+D assumed to have one element"
+msgstr "å‡å®šé™£åˆ— %q+D 有一個元素"
+
+#: c-decl.c:669
+#, gcc-internal-format
+msgid "GCC supports only %u nested scopes"
+msgstr "GCC åªæ”¯æ´ %u 個巢狀的作用欄ä½"
+
+#: c-decl.c:755 cp/decl.c:354 java/decl.c:1700
+#, gcc-internal-format
+msgid "label %q+D used but not defined"
+msgstr "標籤 %q+D 使用å‰æœªå®šç¾©"
+
+#: c-decl.c:761 cp/decl.c:365 java/decl.c:1705
+#, gcc-internal-format
+msgid "label %q+D defined but not used"
+msgstr "標籤 %q+D 定義後未使用"
+
+#: c-decl.c:763
+#, gcc-internal-format
+msgid "label %q+D declared but not defined"
+msgstr "標籤 %q+D 宣告後未定義"
+
+#: c-decl.c:798
+#, gcc-internal-format
+msgid "nested function %q+D declared but never defined"
+msgstr "å·¢ç‹€å‡½å¼ %q+D 宣告éŽä½†å¾žæœªå®šç¾©"
+
+#: c-decl.c:812 cp/decl.c:559
+#, gcc-internal-format
+msgid "unused variable %q+D"
+msgstr "未使用的變數 %q+D"
+
+#: c-decl.c:816
+#, gcc-internal-format
+msgid "type of array %q+D completed incompatibly with implicit initialization"
+msgstr "陣列 %q+D 類型與隱å«åˆå§‹åŒ–ä¸ç›¸å®¹"
+
+#: c-decl.c:1050
+#, gcc-internal-format
+msgid "a parameter list with an ellipsis can%'t match an empty parameter name list declaration"
+msgstr "帶有çœç•¥è™Ÿçš„åƒæ•¸æ¸…單無法與空åƒæ•¸å清單宣告匹é…"
+
+#: c-decl.c:1057
+#, gcc-internal-format
+msgid "an argument type that has a default promotion can%'t match an empty parameter name list declaration"
+msgstr "具有é è¨­æå‡çš„引數類型ä¸èƒ½åŒ¹é…空åƒæ•¸å清單宣告"
+
+#: c-decl.c:1092
+#, gcc-internal-format
+msgid "prototype for %q+D declares more arguments than previous old-style definition"
+msgstr "%q+D 的原型宣告的åƒæ•¸å¤šæ–¼å…ˆå‰èˆŠå¼çš„定義"
+
+#: c-decl.c:1098
+#, gcc-internal-format
+msgid "prototype for %q+D declares fewer arguments than previous old-style definition"
+msgstr "%q+D 的原型宣告的åƒæ•¸å°‘於先å‰èˆŠå¼çš„定義"
+
+#: c-decl.c:1107
+#, gcc-internal-format
+msgid "prototype for %q+D declares argument %d with incompatible type"
+msgstr "%q+D 的原型å°å¼•æ•¸ %d 宣告類型ä¸ç›¸å®¹"
+
+#. If we get here, no errors were found, but do issue a warning
+#. for this poor-style construct.
+#: c-decl.c:1120
+#, gcc-internal-format
+msgid "prototype for %q+D follows non-prototype definition"
+msgstr "%q+D 的原型出ç¾åœ¨éžåŽŸåž‹å®šç¾©ä¹‹å¾Œ"
+
+#: c-decl.c:1135
+#, gcc-internal-format
+msgid "previous definition of %q+D was here"
+msgstr "%q+D 的上一個定義在此"
+
+#: c-decl.c:1137
+#, gcc-internal-format
+msgid "previous implicit declaration of %q+D was here"
+msgstr "%q+D 的上一個隱å«å®£å‘Šåœ¨æ­¤"
+
+#: c-decl.c:1139
+#, gcc-internal-format
+msgid "previous declaration of %q+D was here"
+msgstr "%q+D 的上一個宣告在此"
+
+#: c-decl.c:1179
+#, gcc-internal-format
+msgid "%q+D redeclared as different kind of symbol"
+msgstr "%q+D 被é‡æ–°å®£å‘Šç‚ºä¸åŒæ„義的符號"
+
+#: c-decl.c:1183
+#, gcc-internal-format
+msgid "built-in function %q+D declared as non-function"
+msgstr "å…§å»ºå‡½å¼ %q+D 未被宣告為函å¼"
+
+#: c-decl.c:1186 c-decl.c:1302 c-decl.c:1926
+#, gcc-internal-format
+msgid "declaration of %q+D shadows a built-in function"
+msgstr "%q+D 的宣告隱è—了一個內建函å¼"
+
+#: c-decl.c:1195
+#, gcc-internal-format
+msgid "redeclaration of enumerator %q+D"
+msgstr "列舉 %q+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:1216
+#, gcc-internal-format
+msgid "conflicting types for built-in function %q+D"
+msgstr "èˆ‡å…§å»ºå‡½å¼ %q+D é¡žåž‹è¡çª"
+
+#: c-decl.c:1240 c-decl.c:1253 c-decl.c:1263
+#, gcc-internal-format
+msgid "conflicting types for %q+D"
+msgstr "與 %q+D é¡žåž‹è¡çª"
+
+#: c-decl.c:1261
+#, gcc-internal-format
+msgid "conflicting type qualifiers for %q+D"
+msgstr "%q+D çš„é¡žåž‹é™å®šè¡çª"
+
+#. Allow OLDDECL to continue in use.
+#: c-decl.c:1278
+#, gcc-internal-format
+msgid "redefinition of typedef %q+D"
+msgstr "%q+D é‡å®šç¾©"
+
+#: c-decl.c:1326 c-decl.c:1404
+#, gcc-internal-format
+msgid "redefinition of %q+D"
+msgstr "%q+D é‡å®šç¾©"
+
+#: c-decl.c:1361 c-decl.c:1442
+#, gcc-internal-format
+msgid "static declaration of %q+D follows non-static declaration"
+msgstr "å° %qD çš„éœæ…‹å®£å‘Šå‡ºç¾åœ¨éžéœæ…‹å®£å‘Šä¹‹å¾Œ"
+
+#: c-decl.c:1371 c-decl.c:1378 c-decl.c:1431 c-decl.c:1439
+#, gcc-internal-format
+msgid "non-static declaration of %q+D follows static declaration"
+msgstr "å° %q+D çš„éœæ…‹å®£å‘Šå‡ºç¾åœ¨éžéœæ…‹å®£å‘Šä¹‹å¾Œ"
+
+#: c-decl.c:1391
+#, gcc-internal-format
+msgid "thread-local declaration of %q+D follows non-thread-local declaration"
+msgstr "%q+D 的執行緒局部宣告跟在其éžåŸ·è¡Œç·’局部宣告之後"
+
+#: c-decl.c:1394
+#, gcc-internal-format
+msgid "non-thread-local declaration of %q+D follows thread-local declaration"
+msgstr "%q+D 的執行緒局部宣告跟在其éžåŸ·è¡Œç·’局部宣告之後"
+
+#: c-decl.c:1424
+#, gcc-internal-format
+msgid "extern declaration of %q+D follows declaration with no linkage"
+msgstr "%q+D 宣告為沒有外部連çµçš„,之å‰å»æœ‰å¤–部宣告"
+
+#: c-decl.c:1460
+#, gcc-internal-format
+msgid "declaration of %q+D with no linkage follows extern declaration"
+msgstr "%q+D 宣告為沒有外部連çµçš„,之å‰å»æœ‰å¤–部宣告"
+
+#: c-decl.c:1466
+#, gcc-internal-format
+msgid "redeclaration of %q+D with no linkage"
+msgstr "%q+D é‡å®£å‘Šç‚ºæ²’有外部連çµ"
+
+#: c-decl.c:1480
+#, gcc-internal-format
+msgid "redeclaration of %q+D with different visibility (old visibility preserved)"
+msgstr "å° %q+D çš„å†æ¬¡å®£å‘Šä¸­æŒ‡å®šäº†ä¸åŒçš„å¯è¦‹æ€§ (ä¿ç•™åŽŸæœ‰çš„å¯è¦‹æ€§)"
+
+#: c-decl.c:1491
+#, gcc-internal-format
+msgid "inline declaration of %qD follows declaration with attribute noinline"
+msgstr "%q+D 帶有 noinline 屬性的宣告出ç¾åœ¨å…¶å…§è¯å®£å‘Šä¹‹å¾Œ"
+
+#: c-decl.c:1498
+#, gcc-internal-format
+msgid "declaration of %q+D with attribute noinline follows inline declaration "
+msgstr "%q+D 帶有 noinline 屬性的宣告出ç¾åœ¨å…¶å…§è¯å®£å‘Šä¹‹å¾Œ"
+
+#: c-decl.c:1513
+#, gcc-internal-format
+msgid "%q+D declared inline after being called"
+msgstr "%q+D çš„å…§è¯å®£å‘Šå‡ºç¾åœ¨å…¶è¢«å‘¼å«ä¹‹å¾Œ"
+
+#: c-decl.c:1518
+#, gcc-internal-format
+msgid "%q+D declared inline after its definition"
+msgstr "%q+D çš„å…§è¯å®£å‘Šå‡ºç¾åœ¨å…¶å®šç¾©ä¹‹å¾Œ"
+
+#: c-decl.c:1537
+#, gcc-internal-format
+msgid "redefinition of parameter %q+D"
+msgstr "åƒæ•¸ %q+D é‡å®šç¾©"
+
+#: c-decl.c:1564
+#, gcc-internal-format
+msgid "redundant redeclaration of %q+D"
+msgstr "å° %q+D 冗餘的é‡å®£å‘Š"
+
+#: c-decl.c:1913
+#, gcc-internal-format
+msgid "declaration of %q+D shadows previous non-variable"
+msgstr "%q+D 的宣告隱è—了先å‰çš„一個éžè®Šæ•¸å®£å‘Š"
+
+#: c-decl.c:1918
+#, gcc-internal-format
+msgid "declaration of %q+D shadows a parameter"
+msgstr "%q+D 的宣告隱è—了一個åƒæ•¸"
+
+#: c-decl.c:1921
+#, gcc-internal-format
+msgid "declaration of %q+D shadows a global declaration"
+msgstr "%q+D 的宣告隱è—了一個全域宣告"
+
+#: c-decl.c:1931
+#, gcc-internal-format
+msgid "declaration of %q+D shadows a previous local"
+msgstr "%q+D 的宣告隱è—了先å‰çš„一個局部變數"
+
+#: c-decl.c:1934 cp/name-lookup.c:954 cp/name-lookup.c:985
+#: cp/name-lookup.c:993
+#, gcc-internal-format
+msgid "%Jshadowed declaration is here"
+msgstr "%J被隱è—的宣告在這裡"
+
+#: c-decl.c:2134
+#, gcc-internal-format
+msgid "nested extern declaration of %qD"
+msgstr "å° %qD 的巢狀的外部宣告"
+
+#: c-decl.c:2303
+#, gcc-internal-format
+msgid "implicit declaration of function %qE"
+msgstr "éš±å«å®£å‘Šå‡½å¼ %qE"
+
+#: c-decl.c:2364
+#, gcc-internal-format
+msgid "incompatible implicit declaration of built-in function %qD"
+msgstr "éš±å«å®£å‘Šèˆ‡å…§å»ºå‡½å¼ %qD ä¸ç›¸å®¹"
+
+#: c-decl.c:2373
+#, gcc-internal-format
+msgid "incompatible implicit declaration of function %qD"
+msgstr "éš±å«å®£å‘Šèˆ‡å‡½å¼ %qD ä¸ç›¸å®¹"
+
+#: c-decl.c:2426
+#, gcc-internal-format
+msgid "%H%qE undeclared here (not in a function)"
+msgstr "%H%qE 未宣告 (ä¸åœ¨å‡½å¼å…§)"
+
+#: c-decl.c:2431
+#, gcc-internal-format
+msgid "%H%qE undeclared (first use in this function)"
+msgstr "%H%qE 未宣告 (在此函å¼å…§ç¬¬ä¸€æ¬¡ä½¿ç”¨)"
+
+#: c-decl.c:2435
+#, gcc-internal-format
+msgid "%H(Each undeclared identifier is reported only once"
+msgstr "%H(å³ä½¿åœ¨ä¸€å€‹å‡½å¼å…§å¤šæ¬¡å‡ºç¾ï¼Œæ¯å€‹æœªå®£å‘Šçš„識別碼在其"
+
+#: c-decl.c:2436
+#, gcc-internal-format
+msgid "%Hfor each function it appears in.)"
+msgstr "%H所在的函å¼å…§åªå ±å‘Šä¸€æ¬¡ã€‚)"
+
+#: c-decl.c:2474 cp/decl.c:2134
+#, gcc-internal-format
+msgid "label %qE referenced outside of any function"
+msgstr "標籤 %qE 在所有函å¼å¤–被åƒç…§"
+
+#: c-decl.c:2516
+#, gcc-internal-format
+msgid "duplicate label declaration %qE"
+msgstr "é‡è¤‡çš„標籤定義 %qE"
+
+#: c-decl.c:2552
+#, gcc-internal-format
+msgid "%Hduplicate label %qD"
+msgstr "%Hé‡è¤‡çš„標籤 %qD"
+
+#: c-decl.c:2562
+#, gcc-internal-format
+msgid "%Jjump into statement expression"
+msgstr "%J跳轉至敘述é‹ç®—å¼ä¸­"
+
+#: c-decl.c:2564
+#, gcc-internal-format
+msgid "%Jjump into scope of identifier with variably modified type"
+msgstr "%J跳至具有å¯è®Šé¡žåž‹çš„識別碼的作用欄ä½ä¸­"
+
+#: c-decl.c:2579
+#, gcc-internal-format
+msgid "%Htraditional C lacks a separate namespace for labels, identifier %qE conflicts"
+msgstr "%H傳統 C ä¸ç‚ºæ¨™ç±¤æ供一個單ç¨çš„命å空間,識別碼 %qE è¡çª"
+
+#: c-decl.c:2654
+#, gcc-internal-format
+msgid "%H%qE defined as wrong kind of tag"
+msgstr "%H%qE 定義為類型錯誤的標記"
+
+#: c-decl.c:2869
+#, gcc-internal-format
+msgid "unnamed struct/union that defines no instances"
+msgstr "未定義任何實體的無åçµæ§‹/è¯åˆ"
+
+#: c-decl.c:2877
+#, gcc-internal-format
+msgid "empty declaration with storage class specifier does not redeclare tag"
+msgstr "帶有存儲類別的空宣告沒有é‡å®£å‘Šæ¨™è¨˜"
+
+#: c-decl.c:2888
+#, gcc-internal-format
+msgid "empty declaration with type qualifier does not redeclare tag"
+msgstr "帶有類型é™å®šçš„空宣告沒有é‡å®£å‘Šæ¨™è¨˜"
+
+#: c-decl.c:2909 c-decl.c:2916
+#, gcc-internal-format
+msgid "useless type name in empty declaration"
+msgstr "空宣告中類型å無用"
+
+#: c-decl.c:2924
+#, gcc-internal-format
+msgid "%<inline%> in empty declaration"
+msgstr "%<inline%> 用於空宣告中"
+
+#: c-decl.c:2930
+#, gcc-internal-format
+msgid "%<auto%> in file-scope empty declaration"
+msgstr "檔案作用欄ä½ä¸­å‡ºç¾ %<auto%> 空宣告"
+
+#: c-decl.c:2936
+#, gcc-internal-format
+msgid "%<register%> in file-scope empty declaration"
+msgstr "檔案作用欄ä½ä¸­å‡ºç¾ %<register%> 空宣告"
+
+#: c-decl.c:2942
+#, gcc-internal-format
+msgid "useless storage class specifier in empty declaration"
+msgstr "空宣告中指定存儲類別無用"
+
+#: c-decl.c:2948
+#, gcc-internal-format
+msgid "useless %<__thread%> in empty declaration"
+msgstr "空宣告中 %<__thread%> 無用"
+
+#: c-decl.c:2956
+#, gcc-internal-format
+msgid "useless type qualifier in empty declaration"
+msgstr "空宣告中類型é™å®šç„¡ç”¨"
+
+#: c-decl.c:2963 c-parser.c:1157
+#, gcc-internal-format
+msgid "empty declaration"
+msgstr "空宣告"
+
+#: c-decl.c:3029
+#, gcc-internal-format
+msgid "ISO C90 does not support %<static%> or type qualifiers in parameter array declarators"
+msgstr "ISO C90 ä¸æ”¯æ´åœ¨åƒæ•¸é™£åˆ—宣告中使用 %<static%> 或類型é™å®šç¬¦"
+
+#: c-decl.c:3032
+#, gcc-internal-format
+msgid "ISO C90 does not support %<[*]%> array declarators"
+msgstr "ISO C90 ä¸æ”¯æ´ %<[*]%> 陣列宣告"
+
+#: c-decl.c:3035
+#, gcc-internal-format
+msgid "GCC does not yet properly implement %<[*]%> array declarators"
+msgstr "GCC 尚未完全正確地實作 %<[*]%> 陣列宣告"
+
+#: c-decl.c:3054
+#, gcc-internal-format
+msgid "static or type qualifiers in abstract declarator"
+msgstr "static 或類型é™å®šç¬¦å‡ºç¾åœ¨æŠ½è±¡å®£å‘Šä¸­"
+
+#: c-decl.c:3142
+#, gcc-internal-format
+msgid "%q+D is usually a function"
+msgstr "%q+D 一般是一個函å¼"
+
+#: c-decl.c:3151 cp/decl.c:3706 cp/decl2.c:825
+#, gcc-internal-format
+msgid "typedef %qD is initialized (use __typeof__ instead)"
+msgstr "typedef %qD 被åˆå§‹åŒ–(改用 __typeof__)"
+
+#: c-decl.c:3156
+#, gcc-internal-format
+msgid "function %qD is initialized like a variable"
+msgstr "å‡½å¼ %qD åƒè®Šæ•¸ä¸€æ¨£è¢«åˆå§‹åŒ–"
+
+#. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
+#: c-decl.c:3162
+#, gcc-internal-format
+msgid "parameter %qD is initialized"
+msgstr "åƒæ•¸ %qD å·²åˆå§‹åŒ–"
+
+#: c-decl.c:3187
+#, gcc-internal-format
+msgid "variable %qD has initializer but incomplete type"
+msgstr "變數 %qD 有åˆå§‹å€¼è¨­å®šä½†é¡žåž‹ä¸å®Œå…¨"
+
+#: c-decl.c:3263 c-decl.c:5885 cp/decl.c:3745 cp/decl.c:10133
+#, gcc-internal-format
+msgid "inline function %q+D given attribute noinline"
+msgstr "為內è¯å‡½å¼ %q+D 給定了 noinline 屬性"
+
+#: c-decl.c:3335
+#, gcc-internal-format
+msgid "initializer fails to determine size of %q+D"
+msgstr "åˆå§‹å€¼è¨­å®šç„¡æ³•æ±ºå®š %q+D 的大å°"
+
+#: c-decl.c:3340
+#, gcc-internal-format
+msgid "array size missing in %q+D"
+msgstr "在 %q+D 中缺少陣列大å°"
+
+#: c-decl.c:3352
+#, gcc-internal-format
+msgid "zero or negative size array %q+D"
+msgstr "陣列 %q+D 大å°ç‚º 0 或負"
+
+#: c-decl.c:3407 varasm.c:1646
+#, gcc-internal-format
+msgid "storage size of %q+D isn%'t known"
+msgstr "%q+D 的存儲大å°ä¸æ˜Ž"
+
+#: c-decl.c:3417
+#, gcc-internal-format
+msgid "storage size of %q+D isn%'t constant"
+msgstr "%q+D 的存儲大å°ä¸æ˜¯å¸¸æ•¸"
+
+#: c-decl.c:3464
+#, gcc-internal-format
+msgid "ignoring asm-specifier for non-static local variable %q+D"
+msgstr "為éžéœæ…‹å±€éƒ¨è®Šæ•¸ %q+D 忽略了 asm é™å®šç¬¦"
+
+#: c-decl.c:3492 fortran/f95-lang.c:667
+#, gcc-internal-format
+msgid "cannot put object with volatile field into register"
+msgstr "ä¸èƒ½å°‡å¸¶æœ‰ volatile 欄ä½çš„物件放入暫存器"
+
+#: c-decl.c:3627
+#, gcc-internal-format
+msgid "ISO C forbids forward parameter declarations"
+msgstr "ISO C ä¸å…許å‰å‘åƒæ•¸å®£å‘Š"
+
+#: c-decl.c:3746
+#, gcc-internal-format
+msgid "bit-field %qs width not an integer constant"
+msgstr "ä½å…ƒæ®µ %qs 的寬度ä¸æ˜¯ä¸€å€‹æ•´æ•¸å¸¸æ•¸"
+
+#: c-decl.c:3754
+#, gcc-internal-format
+msgid "negative width in bit-field %qs"
+msgstr "ä½å…ƒæ®µ %qs 寬度為負"
+
+#: c-decl.c:3759
+#, gcc-internal-format
+msgid "zero width for bit-field %qs"
+msgstr "ä½å…ƒæ®µ %qs 寬度為 0"
+
+#: c-decl.c:3769
+#, gcc-internal-format
+msgid "bit-field %qs has invalid type"
+msgstr "ä½å…ƒæ®µ %qs 類型無效"
+
+#: c-decl.c:3779
+#, gcc-internal-format
+msgid "type of bit-field %qs is a GCC extension"
+msgstr "ä½å…ƒæ®µé¡žåž‹ %qs 是一個 GCC æ“´å……"
+
+#: c-decl.c:3788
+#, gcc-internal-format
+msgid "width of %qs exceeds its type"
+msgstr "%qs 的寬度超éŽå®ƒè‡ªèº«çš„é¡žåž‹"
+
+#: c-decl.c:3801
+#, gcc-internal-format
+msgid "%qs is narrower than values of its type"
+msgstr "%qs 比其類型的值è¦çª„"
+
+#: c-decl.c:3950
+#, gcc-internal-format
+msgid "type defaults to %<int%> in declaration of %qs"
+msgstr "在 %qs 的宣告中,類型é è¨­ç‚º %<int%>"
+
+#: c-decl.c:3978
+#, gcc-internal-format
+msgid "duplicate %<const%>"
+msgstr "é‡è¤‡çš„ %<const%>"
+
+#: c-decl.c:3980
+#, gcc-internal-format
+msgid "duplicate %<restrict%>"
+msgstr "é‡è¤‡çš„ %<restrict%>"
+
+#: c-decl.c:3982
+#, gcc-internal-format
+msgid "duplicate %<volatile%>"
+msgstr "é‡è¤‡çš„ %<volatile%>"
+
+#: c-decl.c:4001
+#, gcc-internal-format
+msgid "function definition declared %<auto%>"
+msgstr "函å¼å®£å‘Šå®šç¾©ç‚º %<auto%>"
+
+#: c-decl.c:4003
+#, gcc-internal-format
+msgid "function definition declared %<register%>"
+msgstr "函å¼å®£å‘Šå®šç¾©ç‚º %<register%>"
+
+#: c-decl.c:4005
+#, gcc-internal-format
+msgid "function definition declared %<typedef%>"
+msgstr "函å¼å®£å‘Šå®šç¾©ç‚º %<typedef%>"
+
+#: c-decl.c:4007
+#, gcc-internal-format
+msgid "function definition declared %<__thread%>"
+msgstr "函å¼å®£å‘Šå®šç¾©ç‚º %<__thread%>"
+
+#: c-decl.c:4023
+#, gcc-internal-format
+msgid "storage class specified for structure field %qs"
+msgstr "為çµæ§‹æ¬„ä½ %qs 指定了存儲類別"
+
+#: c-decl.c:4027 cp/decl.c:7193
+#, gcc-internal-format
+msgid "storage class specified for parameter %qs"
+msgstr "為åƒæ•¸ %qs 指定了存儲類別"
+
+#: c-decl.c:4030 cp/decl.c:7195
+#, gcc-internal-format
+msgid "storage class specified for typename"
+msgstr "為類型å指定了存儲類別"
+
+#: c-decl.c:4043 cp/decl.c:7212
+#, gcc-internal-format
+msgid "%qs initialized and declared %<extern%>"
+msgstr "%qs å·²åˆå§‹åŒ–,å»åˆè¢«å®£å‘Šç‚º %<extern%>"
+
+#: c-decl.c:4045 cp/decl.c:7215
+#, gcc-internal-format
+msgid "%qs has both %<extern%> and initializer"
+msgstr "%qs 既有 %<extern%> åˆæœ‰åˆå§‹å€¼è¨­å®š"
+
+#: c-decl.c:4050
+#, gcc-internal-format
+msgid "file-scope declaration of %qs specifies %<auto%>"
+msgstr "檔案作用欄ä½ä¸­ %qs 的宣告指定了 %<auto%>"
+
+#: c-decl.c:4052
+#, gcc-internal-format
+msgid "file-scope declaration of %qs specifies %<register%>"
+msgstr "檔案作用欄ä½ä¸­ %qs 的宣告指定了 %<register%>"
+
+#: c-decl.c:4057 cp/decl.c:7219
+#, gcc-internal-format
+msgid "nested function %qs declared %<extern%>"
+msgstr "å·¢ç‹€å‡½å¼ %qs 被宣告為 %<extern%>"
+
+#: c-decl.c:4060 cp/decl.c:7229
+#, gcc-internal-format
+msgid "function-scope %qs implicitly auto and declared %<__thread%>"
+msgstr "函å¼ä½œç”¨æ¬„ä½çš„ %qs éš±å«ç‚º auto,å»è¢«å®£å‘Šç‚º %<__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:4107 c-decl.c:4301
+#, gcc-internal-format
+msgid "static or type qualifiers in non-parameter array declarator"
+msgstr "static 或類型é™å®šç¬¦å‡ºç¾åœ¨éžåƒæ•¸é™£åˆ—宣告中"
+
+#: c-decl.c:4153
+#, gcc-internal-format
+msgid "declaration of %qs as array of voids"
+msgstr "%qs 宣告為 void 的陣列"
+
+#: c-decl.c:4159
+#, gcc-internal-format
+msgid "declaration of %qs as array of functions"
+msgstr "%qs 宣告為函å¼çš„陣列"
+
+#: c-decl.c:4164
+#, gcc-internal-format
+msgid "invalid use of structure with flexible array member"
+msgstr "å°åŒ…å«å½ˆæ€§é™£åˆ—æˆå“¡çš„çµæ§‹çš„無效使用"
+
+#: c-decl.c:4184
+#, gcc-internal-format
+msgid "size of array %qs has non-integer type"
+msgstr "陣列 %qs 的大å°çš„é¡žåž‹ä¸æ˜¯æ•´æ•¸"
+
+#: c-decl.c:4189
+#, gcc-internal-format
+msgid "ISO C forbids zero-size array %qs"
+msgstr "ISO C ä¸å…許大å°ç‚º 0 的陣列 %qs"
+
+#: c-decl.c:4196
+#, gcc-internal-format
+msgid "size of array %qs is negative"
+msgstr "陣列 %qs 的大å°ç‚ºè² "
+
+#: c-decl.c:4210
+#, gcc-internal-format
+msgid "ISO C90 forbids array %qs whose size can%'t be evaluated"
+msgstr "ISO C90 ä¸å…許陣列 %qs,因為ä¸èƒ½è¨ˆç®—其大å°"
+
+#: c-decl.c:4214
+#, gcc-internal-format
+msgid "ISO C90 forbids variable-size array %qs"
+msgstr "ISO C90 ä¸å…許彈性陣列 %qs"
+
+#: c-decl.c:4254 c-decl.c:4423 cp/decl.c:7650
+#, gcc-internal-format
+msgid "size of array %qs is too large"
+msgstr "陣列 %qs 太大"
+
+#: c-decl.c:4265
+#, gcc-internal-format
+msgid "ISO C90 does not support flexible array members"
+msgstr "ISO C90 ä¸å…許彈性陣列æˆå“¡"
+
+#: c-decl.c:4275
+#, gcc-internal-format
+msgid "array type has incomplete element type"
+msgstr "陣列元素的類型ä¸å®Œå…¨"
+
+#: c-decl.c:4333 cp/decl.c:7313
+#, gcc-internal-format
+msgid "%qs declared as function returning a function"
+msgstr "%qs 宣告為回傳一個函å¼çš„函å¼"
+
+#: c-decl.c:4338 cp/decl.c:7318
+#, gcc-internal-format
+msgid "%qs declared as function returning an array"
+msgstr "%qs 宣告為回傳一個陣列的函å¼"
+
+#: c-decl.c:4358
+#, gcc-internal-format
+msgid "function definition has qualified void return type"
+msgstr "函å¼å®šç¾©æœ‰é™å®šçš„ void 回傳類型"
+
+#: c-decl.c:4361
+#, gcc-internal-format
+msgid "type qualifiers ignored on function return type"
+msgstr "忽略函å¼å›žå‚³é¡žåž‹çš„é¡žåž‹é™å®š"
+
+#: c-decl.c:4390 c-decl.c:4436 c-decl.c:4531 c-decl.c:4621
+#, gcc-internal-format
+msgid "ISO C forbids qualified function types"
+msgstr "ISO C ä¸å…許使用 const 或 volatile é™å®šå‡½å¼é¡žåž‹"
+
+#: c-decl.c:4444
+#, gcc-internal-format
+msgid "typedef %q+D declared %<inline%>"
+msgstr "typedef %q+D 宣告為 %<inline%>"
+
+#: c-decl.c:4474
+#, gcc-internal-format
+msgid "ISO C forbids const or volatile function types"
+msgstr "ISO C ä¸å…許使用 const 或 volatile é™å®šå‡½å¼é¡žåž‹"
+
+#: c-decl.c:4494
+#, gcc-internal-format
+msgid "variable or field %qs declared void"
+msgstr "è®Šæ•¸æˆ–æ¬„ä½ %qs 宣告為 void"
+
+#: c-decl.c:4524
+#, gcc-internal-format
+msgid "attributes in parameter array declarator ignored"
+msgstr "出ç¾åœ¨åƒæ•¸é™£åˆ—宣告中的屬性被忽略"
+
+#: c-decl.c:4558
+#, gcc-internal-format
+msgid "parameter %q+D declared %<inline%>"
+msgstr "åƒæ•¸ %q+D 宣告為 %<inline%>"
+
+#: c-decl.c:4571
+#, gcc-internal-format
+msgid "field %qs declared as a function"
+msgstr "æ¬„ä½ %qs 宣告為一個函å¼"
+
+#: c-decl.c:4577
+#, gcc-internal-format
+msgid "field %qs has incomplete type"
+msgstr "æ¬„ä½ %qs çš„é¡žåž‹ä¸å®Œå…¨"
+
+#: c-decl.c:4591 c-decl.c:4603 c-decl.c:4607
+#, gcc-internal-format
+msgid "invalid storage class for function %qs"
+msgstr "å‡½å¼ %qs 的存儲類別無效"
+
+#: c-decl.c:4627
+#, gcc-internal-format
+msgid "%<noreturn%> function returns non-void value"
+msgstr "%<noreturn%> 函å¼å›žå‚³äº†ä¸€å€‹éž void 的回傳值"
+
+#: c-decl.c:4655
+#, gcc-internal-format
+msgid "cannot inline function %<main%>"
+msgstr "ä¸èƒ½å…§è¯ %<main%> 函å¼"
+
+#: c-decl.c:4702
+#, gcc-internal-format
+msgid "variable previously declared %<static%> redeclared %<extern%>"
+msgstr "å…ˆå‰è¢«å®£å‘Šç‚º %<static%> 的變數é‡å®£å‘Šç‚º %<extern%>"
+
+#: c-decl.c:4712
+#, gcc-internal-format
+msgid "variable %q+D declared %<inline%>"
+msgstr "變數 %q+D 宣告為 %<inline%>"
+
+#. A mere warning is sure to result in improper semantics
+#. at runtime. Don't bother to allow this to compile.
+#. A mere warning is sure to result in improper
+#. semantics at runtime. Don't bother to allow this to
+#. compile.
+#: c-decl.c:4742 cp/decl.c:6121 cp/decl.c:8240
+#, gcc-internal-format
+msgid "thread-local storage not supported for this target"
+msgstr "執行緒局部存儲在此目標平臺上ä¸å—支æ´"
+
+#: c-decl.c:4807 c-decl.c:5964
+#, gcc-internal-format
+msgid "function declaration isn%'t a prototype"
+msgstr "函å¼å®£å‘Šä¸æ˜¯ä¸€å€‹åŽŸåž‹"
+
+#: c-decl.c:4815
+#, gcc-internal-format
+msgid "parameter names (without types) in function declaration"
+msgstr "函å¼å®£å‘Šä¸­å‡ºç¾åƒæ•¸åå»æœªæŒ‡å®šé¡žåž‹"
+
+#: c-decl.c:4848
+#, gcc-internal-format
+msgid "parameter %u (%q+D) has incomplete type"
+msgstr "åƒæ•¸ %u (%q+D) çš„é¡žåž‹ä¸å®Œå…¨"
+
+#: c-decl.c:4851
+#, gcc-internal-format
+msgid "%Jparameter %u has incomplete type"
+msgstr "%Jåƒæ•¸ %u é¡žåž‹ä¸å®Œå…¨"
+
+#: c-decl.c:4860
+#, gcc-internal-format
+msgid "parameter %u (%q+D) has void type"
+msgstr "åƒæ•¸ %u (%q+D)類型為 void"
+
+#: c-decl.c:4863
+#, gcc-internal-format
+msgid "%Jparameter %u has void type"
+msgstr "%Jåƒæ•¸ %u 類型為 void"
+
+#: c-decl.c:4923
+#, gcc-internal-format
+msgid "%<void%> as only parameter may not be qualified"
+msgstr "%<void%> åšç‚ºåƒ…有的åƒæ•¸æ™‚ä¸èƒ½è¢«é™å®š"
+
+#: c-decl.c:4927 c-decl.c:4961
+#, gcc-internal-format
+msgid "%<void%> must be the only parameter"
+msgstr "%<void%> 必須是僅有的åƒæ•¸"
+
+#: c-decl.c:4955
+#, gcc-internal-format
+msgid "parameter %q+D has just a forward declaration"
+msgstr "åƒæ•¸ %q+D 有一個å‰å‘宣告"
+
+#. The %s will be one of 'struct', 'union', or 'enum'.
+#: c-decl.c:5000
+#, gcc-internal-format
+msgid "%<%s %E%> declared inside parameter list"
+msgstr "%<%s %E%> 在åƒæ•¸è¡¨å…§éƒ¨å®£å‘Š"
+
+#. The %s will be one of 'struct', 'union', or 'enum'.
+#: c-decl.c:5004
+#, gcc-internal-format
+msgid "anonymous %s declared inside parameter list"
+msgstr "在åƒæ•¸æ¸…單中宣告了匿å %s"
+
+#: c-decl.c:5009
+#, gcc-internal-format
+msgid "its scope is only this definition or declaration, which is probably not what you want"
+msgstr "它的作用欄ä½åƒ…é™æ–¼æ­¤å®šç¾©æˆ–宣告,這å¯èƒ½ä¸¦ä¸æ˜¯æ‚¨æƒ³è¦çš„"
+
+#: c-decl.c:5142
+#, gcc-internal-format
+msgid "redefinition of %<union %E%>"
+msgstr "%<union %E%> é‡å®šç¾©"
+
+#: c-decl.c:5144
+#, gcc-internal-format
+msgid "redefinition of %<struct %E%>"
+msgstr "%<struct %E%> é‡å®šç¾©"
+
+#: c-decl.c:5149
+#, gcc-internal-format
+msgid "nested redefinition of %<union %E%>"
+msgstr "巢狀的 %<union %E%> é‡å®šç¾©"
+
+#: c-decl.c:5151
+#, gcc-internal-format
+msgid "nested redefinition of %<struct %E%>"
+msgstr "巢狀的 %<struct %E%> é‡å®šç¾©"
+
+#: c-decl.c:5222 cp/decl.c:3506
+#, gcc-internal-format
+msgid "declaration does not declare anything"
+msgstr "沒有宣告任何æ±è¥¿"
+
+#: c-decl.c:5226
+#, gcc-internal-format
+msgid "ISO C doesn%'t support unnamed structs/unions"
+msgstr "ISO C ä¸æ”¯æ´åŒ¿åçµæ§‹/è¯åˆ"
+
+#: c-decl.c:5269 c-decl.c:5285
+#, gcc-internal-format
+msgid "duplicate member %q+D"
+msgstr "é‡è¤‡çš„æˆå“¡ %q+D"
+
+#: c-decl.c:5324
+#, gcc-internal-format
+msgid "union has no named members"
+msgstr "è¯åˆåŒ…å«ç„¡åæˆå“¡"
+
+#: c-decl.c:5326
+#, gcc-internal-format
+msgid "union has no members"
+msgstr "è¯åˆé«”沒有æˆå“¡"
+
+#: c-decl.c:5331
+#, gcc-internal-format
+msgid "struct has no named members"
+msgstr "çµæ§‹ä¸åŒ…å«ä»»ä½•å…·åæˆå“¡"
+
+#: c-decl.c:5333
+#, gcc-internal-format
+msgid "struct has no members"
+msgstr "çµæ§‹é«”沒有æˆå“¡"
+
+#: c-decl.c:5392
+#, gcc-internal-format
+msgid "%Jflexible array member in union"
+msgstr "%Jè¯åˆä¸­å‡ºç¾å½ˆæ€§é™£åˆ—æˆå“¡"
+
+#: c-decl.c:5397
+#, gcc-internal-format
+msgid "%Jflexible array member not at end of struct"
+msgstr "%Jçµæ§‹ä¸­çš„彈性陣列æˆå“¡æ²’有出ç¾åœ¨çµæ§‹çš„末尾"
+
+#: c-decl.c:5402
+#, gcc-internal-format
+msgid "%Jflexible array member in otherwise empty struct"
+msgstr "%J彈性陣列是çµæ§‹ä¸­çš„唯一æˆå“¡"
+
+#: c-decl.c:5409
+#, gcc-internal-format
+msgid "%Jinvalid use of structure with flexible array member"
+msgstr "%Jå°åŒ…å«å½ˆæ€§é™£åˆ—æˆå“¡çš„çµæ§‹çš„無效使用"
+
+#: c-decl.c:5520
+#, gcc-internal-format
+msgid "union cannot be made transparent"
+msgstr "è¯åˆä¸èƒ½æˆç‚ºé€æ˜Žçš„"
+
+#: c-decl.c:5591
+#, gcc-internal-format
+msgid "nested redefinition of %<enum %E%>"
+msgstr "巢狀的 %<enum %E%> é‡å®šç¾©"
+
+#. This enum is a named one that has been declared already.
+#: c-decl.c:5598
+#, gcc-internal-format
+msgid "redeclaration of %<enum %E%>"
+msgstr "%<enum %E%> é‡å®£å‘Š"
+
+#: c-decl.c:5661
+#, gcc-internal-format
+msgid "enumeration values exceed range of largest integer"
+msgstr "列舉值超éŽäº†æœ€å¤§æ•´æ•¸é¡žåž‹å¯è¡¨ç¤ºçš„範åœ"
+
+#: c-decl.c:5678
+#, gcc-internal-format
+msgid "specified mode too small for enumeral values"
+msgstr "指定的模å¼å°åˆ—舉值來說太å°"
+
+#: c-decl.c:5774
+#, gcc-internal-format
+msgid "enumerator value for %qE is not an integer constant"
+msgstr "%qE 的列舉值ä¸æ˜¯ä¸€å€‹æ•´æ•¸å¸¸æ•¸"
+
+#: c-decl.c:5791
+#, gcc-internal-format
+msgid "overflow in enumeration values"
+msgstr "列舉值溢出"
+
+#: c-decl.c:5796
+#, gcc-internal-format
+msgid "ISO C restricts enumerator values to range of %<int%>"
+msgstr "ISO C 將列舉值é™åˆ¶åœ¨ %<int%> 範åœå…§"
+
+#: c-decl.c:5892
+#, gcc-internal-format
+msgid "return type is an incomplete type"
+msgstr "回傳ä¸å®Œå…¨çš„é¡žåž‹"
+
+#: c-decl.c:5900
+#, gcc-internal-format
+msgid "return type defaults to %<int%>"
+msgstr "回傳類型é è¨­ç‚º %<int%>"
+
+#: c-decl.c:5971
+#, gcc-internal-format
+msgid "no previous prototype for %q+D"
+msgstr "%q+D å…ˆå‰æ²’有原型"
+
+#: c-decl.c:5980
+#, gcc-internal-format
+msgid "%q+D was used with no prototype before its definition"
+msgstr "%q+D 定義å‰æ²’有原型"
+
+#: c-decl.c:5986
+#, gcc-internal-format
+msgid "no previous declaration for %q+D"
+msgstr "%q+D å…ˆå‰æ²’有宣告éŽ"
+
+#: c-decl.c:5996
+#, gcc-internal-format
+msgid "%q+D was used with no declaration before its definition"
+msgstr "%q+D çš„å…§è¯å®£å‘Šå‡ºç¾åœ¨å…¶å®šç¾©ä¹‹å¾Œ"
+
+#: c-decl.c:6028 c-decl.c:6545
+#, gcc-internal-format
+msgid "return type of %q+D is not %<int%>"
+msgstr "%q+D 的回傳類型ä¸æ˜¯ %<int%>"
+
+#: c-decl.c:6043
+#, gcc-internal-format
+msgid "first argument of %q+D should be %<int%>"
+msgstr "%q+D 的第一個åƒæ•¸çš„類型應該是 %<int%>"
+
+#: c-decl.c:6051
+#, gcc-internal-format
+msgid "second argument of %q+D should be %<char **%>"
+msgstr "%q+D 的第二個åƒæ•¸é¡žåž‹æ‡‰è©²æ˜¯ %<char **%>"
+
+#: c-decl.c:6060
+#, gcc-internal-format
+msgid "third argument of %q+D should probably be %<char **%>"
+msgstr "%q+D 如果有第三個åƒæ•¸ï¼Œé¡žåž‹æ‡‰è©²æ˜¯ %<char **%>"
+
+#: c-decl.c:6070
+#, gcc-internal-format
+msgid "%q+D takes only zero or two arguments"
+msgstr "%q+D åªå¸¶é›¶æˆ–兩個åƒæ•¸"
+
+#: c-decl.c:6073
+#, gcc-internal-format
+msgid "%q+D is normally a non-static function"
+msgstr "%q+D 一般是一個éžéœæ…‹çš„函å¼"
+
+#: c-decl.c:6119
+#, gcc-internal-format
+msgid "%Jold-style parameter declarations in prototyped function definition"
+msgstr "%J原型函å¼å®šç¾©ä¸­ä½¿ç”¨äº†èˆŠå¼åƒæ•¸å®£å‘Š"
+
+#: c-decl.c:6133
+#, gcc-internal-format
+msgid "%Jtraditional C rejects ISO C style function definitions"
+msgstr "%J傳統 C ä¸æŽ¥å— ISO C 風格的函å¼å®šç¾©"
+
+#: c-decl.c:6149
+#, gcc-internal-format
+msgid "%Jparameter name omitted"
+msgstr "%Jçœç•¥äº†åƒæ•¸çš„å稱"
+
+#: c-decl.c:6183
+#, gcc-internal-format
+msgid "%Jold-style function definition"
+msgstr "%J舊å¼çš„函å¼å®šç¾©"
+
+#: c-decl.c:6192
+#, gcc-internal-format
+msgid "%Jparameter name missing from parameter list"
+msgstr "%Jåƒæ•¸æ¸…單中缺少åƒæ•¸å"
+
+#: c-decl.c:6203
+#, gcc-internal-format
+msgid "%q+D declared as a non-parameter"
+msgstr "%q+D 宣告為éžåƒæ•¸"
+
+#: c-decl.c:6208
+#, gcc-internal-format
+msgid "multiple parameters named %q+D"
+msgstr "多個å為 %q+D çš„åƒæ•¸"
+
+#: c-decl.c:6216
+#, gcc-internal-format
+msgid "parameter %q+D declared with void type"
+msgstr "åƒæ•¸ %q+D 宣告為 void é¡žåž‹"
+
+#: c-decl.c:6233 c-decl.c:6235
+#, gcc-internal-format
+msgid "type of %q+D defaults to %<int%>"
+msgstr "é¡žåž‹ %q+D é è¨­ç‚º %<int%>"
+
+#: c-decl.c:6254
+#, gcc-internal-format
+msgid "parameter %q+D has incomplete type"
+msgstr "åƒæ•¸ %q+D çš„é¡žåž‹ä¸å®Œå…¨"
+
+#: c-decl.c:6260
+#, gcc-internal-format
+msgid "declaration for parameter %q+D but no such parameter"
+msgstr "宣告的åƒæ•¸ %q+D ä¸å­˜åœ¨"
+
+#: c-decl.c:6310
+#, gcc-internal-format
+msgid "number of arguments doesn%'t match built-in prototype"
+msgstr "引數個數與內建原型ä¸ç¬¦"
+
+#: c-decl.c:6314
+#, gcc-internal-format
+msgid "number of arguments doesn%'t match prototype"
+msgstr "引數數目與原型ä¸ç¬¦"
+
+#: c-decl.c:6315 c-decl.c:6355 c-decl.c:6368
+#, gcc-internal-format
+msgid "%Hprototype declaration"
+msgstr "%H原型宣告"
+
+#: c-decl.c:6349
+#, gcc-internal-format
+msgid "promoted argument %qD doesn%'t match built-in prototype"
+msgstr "æå‡å¾Œçš„引數 %qD 與內建原型ä¸ç¬¦"
+
+#: c-decl.c:6353
+#, gcc-internal-format
+msgid "promoted argument %qD doesn%'t match prototype"
+msgstr "æå‡å¾Œçš„引數 %qD 與原型ä¸ç¬¦"
+
+#: c-decl.c:6363
+#, gcc-internal-format
+msgid "argument %qD doesn%'t match built-in prototype"
+msgstr "引數 %qD 與內建原型ä¸ç¬¦"
+
+#: c-decl.c:6367
+#, gcc-internal-format
+msgid "argument %qD doesn%'t match prototype"
+msgstr "引數 %qD 與原型ä¸ç¬¦"
+
+#: c-decl.c:6590 cp/decl.c:10954
+#, gcc-internal-format
+msgid "no return statement in function returning non-void"
+msgstr "在有回傳值的函å¼ä¸­æœªç™¼ç¾ return 敘述"
+
+#: c-decl.c:6599
+#, gcc-internal-format
+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:6692
+#, gcc-internal-format
+msgid "%<for%> loop initial declaration used outside C99 mode"
+msgstr "在 C99 模å¼ä¹‹å¤–使用 %<for%> 循環åˆå§‹åŒ–宣告"
+
+#: c-decl.c:6721
+#, gcc-internal-format
+msgid "declaration of static variable %q+D in %<for%> loop initial declaration"
+msgstr "在 %<for%> 循環åˆå§‹å®£å‘Šä¸­å®£å‘Šäº†éœæ…‹è®Šæ•¸ %q+D"
+
+#: c-decl.c:6724
+#, gcc-internal-format
+msgid "declaration of %<extern%> variable %q+D in %<for%> loop initial declaration"
+msgstr "在 %<for%> 循環åˆå§‹å®£å‘Šä¸­å®£å‘Šäº† %<extern%> 變數 %q+D"
+
+#: c-decl.c:6729
+#, gcc-internal-format
+msgid "%<struct %E%> declared in %<for%> loop initial declaration"
+msgstr "%<struct %E%> 宣告於 %<for%> 循環åˆå§‹å®£å‘Šä¸­"
+
+#: c-decl.c:6733
+#, gcc-internal-format
+msgid "%<union %E%> declared in %<for%> loop initial declaration"
+msgstr "%<union %E%> 宣告於 %<for%> 循環åˆå§‹å®£å‘Šä¸­"
+
+#: c-decl.c:6737
+#, gcc-internal-format
+msgid "%<enum %E%> declared in %<for%> loop initial declaration"
+msgstr "%<enum %E%> 宣告於 %<for%> 循環åˆå§‹å®£å‘Šä¸­"
+
+#: c-decl.c:6741
+#, gcc-internal-format
+msgid "declaration of non-variable %q+D in %<for%> loop initial declaration"
+msgstr "在 %<for%> 循環åˆå§‹å®£å‘Šä¸­å®£å‘Šäº†éžè®Šæ•¸ %q+D"
+
+#: c-decl.c:7025 c-decl.c:7176 c-decl.c:7386
+#, gcc-internal-format
+msgid "duplicate %qE"
+msgstr "é‡è¤‡çš„ %qE"
+
+#: c-decl.c:7048 c-decl.c:7185 c-decl.c:7288
+#, gcc-internal-format
+msgid "two or more data types in declaration specifiers"
+msgstr "宣告指定了兩個以上的資料類型"
+
+#: c-decl.c:7060 cp/parser.c:7509
+#, gcc-internal-format
+msgid "%<long long long%> is too long for GCC"
+msgstr "%<long long long%> å° GCC 來說太長了"
+
+#: c-decl.c:7067 c-decl.c:7259
+#, gcc-internal-format
+msgid "both %<long long%> and %<double%> in declaration specifiers"
+msgstr "宣告中åŒæ™‚使用了 %<long long%> å’Œ %<double%>"
+
+#: c-decl.c:7073
+#, gcc-internal-format
+msgid "ISO C90 does not support %<long long%>"
+msgstr "ISO C90 ä¸æ”¯æ´ %<long long%>"
+
+#: c-decl.c:7078 c-decl.c:7098
+#, gcc-internal-format
+msgid "both %<long%> and %<short%> in declaration specifiers"
+msgstr "宣告中åŒæ™‚使用了 <long%> å’Œ %<short%>"
+
+#: c-decl.c:7081 c-decl.c:7192
+#, gcc-internal-format
+msgid "both %<long%> and %<void%> in declaration specifiers"
+msgstr "宣告中åŒæ™‚使用了 %<long%> å’Œ %<void%>"
+
+#: c-decl.c:7084 c-decl.c:7211
+#, gcc-internal-format
+msgid "both %<long%> and %<_Bool%> in declaration specifiers"
+msgstr "宣告中åŒæ™‚使用了 %<long%> å’Œ %<_Bool%>"
+
+#: c-decl.c:7087 c-decl.c:7230
+#, gcc-internal-format
+msgid "both %<long%> and %<char%> in declaration specifiers"
+msgstr "宣告中åŒæ™‚使用了 %<long%> å’Œ %<char%>"
+
+#: c-decl.c:7090 c-decl.c:7243
+#, gcc-internal-format
+msgid "both %<long%> and %<float%> in declaration specifiers"
+msgstr "宣告中åŒæ™‚使用了 %<long%> å’Œ %<float%>"
+
+#: c-decl.c:7101 c-decl.c:7195
+#, gcc-internal-format
+msgid "both %<short%> and %<void%> in declaration specifiers"
+msgstr "宣告中åŒæ™‚使用了 %<short%> å’Œ %<void%>"
+
+#: c-decl.c:7104 c-decl.c:7214
+#, gcc-internal-format
+msgid "both %<short%> and %<_Bool%> in declaration specifiers"
+msgstr "宣告中åŒæ™‚使用了 %<short%> å’Œ %<_Bool%>"
+
+#: c-decl.c:7107 c-decl.c:7233
+#, gcc-internal-format
+msgid "both %<short%> and %<char%> in declaration specifiers"
+msgstr "宣告中åŒæ™‚使用了 %<short%> å’Œ %<char%>"
+
+#: c-decl.c:7110 c-decl.c:7246
+#, gcc-internal-format
+msgid "both %<short%> and %<float%> in declaration specifiers"
+msgstr "宣告中åŒæ™‚使用了 %<short%> å’Œ %<float%>"
+
+#: c-decl.c:7113 c-decl.c:7262
+#, gcc-internal-format
+msgid "both %<short%> and %<double%> in declaration specifiers"
+msgstr "宣告中åŒæ™‚使用了 %<short%> å’Œ %<double%>"
+
+#: c-decl.c:7121 c-decl.c:7141
+#, gcc-internal-format
+msgid "both %<signed%> and %<unsigned%> in declaration specifiers"
+msgstr "宣告中åŒæ™‚使用了 %<signed%> å’Œ %<unsigned%>"
+
+#: c-decl.c:7124 c-decl.c:7198
+#, gcc-internal-format
+msgid "both %<signed%> and %<void%> in declaration specifiers"
+msgstr "宣告中åŒæ™‚使用了 %<signed%> å’Œ %<void%>"
+
+#: c-decl.c:7127 c-decl.c:7217
+#, gcc-internal-format
+msgid "both %<signed%> and %<_Bool%> in declaration specifiers"
+msgstr "宣告中åŒæ™‚使用了 %<signed%> å’Œ %<_Bool%>"
+
+#: c-decl.c:7130 c-decl.c:7249
+#, gcc-internal-format
+msgid "both %<signed%> and %<float%> in declaration specifiers"
+msgstr "宣告中åŒæ™‚使用了 %<signed%> å’Œ %<float%>"
+
+#: c-decl.c:7133 c-decl.c:7265
+#, gcc-internal-format
+msgid "both %<signed%> and %<double%> in declaration specifiers"
+msgstr "宣告中åŒæ™‚使用了 %<signed%> å’Œ %<double%>"
+
+#: c-decl.c:7144 c-decl.c:7201
+#, gcc-internal-format
+msgid "both %<unsigned%> and %<void%> in declaration specifiers"
+msgstr "宣告中åŒæ™‚使用了 %<unsigned%> å’Œ %<void%>"
+
+#: c-decl.c:7147 c-decl.c:7220
+#, gcc-internal-format
+msgid "both %<unsigned%> and %<_Bool%> in declaration specifiers"
+msgstr "宣告中åŒæ™‚使用了 %<unsigned%> å’Œ %<_Bool%>"
+
+#: c-decl.c:7150 c-decl.c:7252
+#, gcc-internal-format
+msgid "both %<unsigned%> and %<float%> in declaration specifiers"
+msgstr "宣告中åŒæ™‚使用了 %<unsigned%> å’Œ %<float%>"
+
+#: c-decl.c:7153 c-decl.c:7268
+#, gcc-internal-format
+msgid "both %<unsigned%> and %<double%> in declaration specifiers"
+msgstr "宣告中åŒæ™‚使用了 %<unsigned%> å’Œ %<double%>"
+
+#: c-decl.c:7161
+#, gcc-internal-format
+msgid "ISO C90 does not support complex types"
+msgstr "ISO C90 ä¸æ”¯æ´è¤‡æ•¸é¡žåž‹"
+
+#: c-decl.c:7163 c-decl.c:7204
+#, gcc-internal-format
+msgid "both %<complex%> and %<void%> in declaration specifiers"
+msgstr "宣告中åŒæ™‚使用了 %<complex%> å’Œ %<void%>"
+
+#: c-decl.c:7166 c-decl.c:7223
+#, gcc-internal-format
+msgid "both %<complex%> and %<_Bool%> in declaration specifiers"
+msgstr "宣告中åŒæ™‚使用了 %<complex%> å’Œ %<_Bool%>"
+
+#: c-decl.c:7305
+#, gcc-internal-format
+msgid "%qE fails to be a typedef or built in type"
+msgstr "%qE ä¸æ˜¯ä¸€å€‹ typedef 類型,也ä¸æ˜¯ä¸€å€‹å…§å»ºé¡žåž‹"
+
+#: c-decl.c:7337
+#, gcc-internal-format
+msgid "%qE is not at beginning of declaration"
+msgstr "%qE 沒有出ç¾åœ¨å®£å‘Šçš„é–‹é ­"
+
+#: c-decl.c:7351
+#, gcc-internal-format
+msgid "%<__thread%> used with %<auto%>"
+msgstr "%<__thread%> 與 %<auto%> 一起使用"
+
+#: c-decl.c:7353
+#, gcc-internal-format
+msgid "%<__thread%> used with %<register%>"
+msgstr "%<__thread%> 與 %<register%> 一起使用"
+
+#: c-decl.c:7355
+#, gcc-internal-format
+msgid "%<__thread%> used with %<typedef%>"
+msgstr "%<__thread%> 與 %<typedef%> 一起使用"
+
+#: c-decl.c:7366 cp/parser.c:7395
+#, gcc-internal-format
+msgid "%<__thread%> before %<extern%>"
+msgstr "%<__thread%> 出ç¾åœ¨ %<extern%> 之å‰"
+
+#: c-decl.c:7375 cp/parser.c:7385
+#, gcc-internal-format
+msgid "%<__thread%> before %<static%>"
+msgstr "%<__thread%> 出ç¾åœ¨ %<static%> 之å‰"
+
+#: c-decl.c:7391
+#, gcc-internal-format
+msgid "multiple storage classes in declaration specifiers"
+msgstr "宣告指定了多個存儲類別"
+
+#: c-decl.c:7398
+#, gcc-internal-format
+msgid "%<__thread%> used with %qE"
+msgstr "%<__thread%> 與 %qE 一起使用"
+
+#: c-decl.c:7452
+#, gcc-internal-format
+msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
+msgstr "ISO C ä¸æ”¯æ´å–®ç¨ç”¨ %<complex%> 表示 %<double complex%>"
+
+#: c-decl.c:7497 c-decl.c:7523
+#, gcc-internal-format
+msgid "ISO C does not support complex integer types"
+msgstr "ISO C ä¸æ”¯æ´è¤‡æ•´æ•¸"
+
+#: c-decl.c:7597 toplev.c:822
+#, gcc-internal-format
+msgid "%q+F used but never defined"
+msgstr "%q+F 使用éŽä½†å¾žæœªå®šç¾©"
+
+#: c-format.c:97 c-format.c:206
+#, gcc-internal-format
+msgid "format string has invalid operand number"
+msgstr "æ ¼å¼å­—串的é‹ç®—元號無效"
+
+#: c-format.c:114
+#, gcc-internal-format
+msgid "function does not return string type"
+msgstr "函å¼ä¸å›žå‚³å­—串類型"
+
+#: c-format.c:143
+#, gcc-internal-format
+msgid "format string argument not a string type"
+msgstr "æ ¼å¼å­—串引數ä¸æ˜¯å­—串玵型"
+
+#: c-format.c:186
+#, gcc-internal-format
+msgid "unrecognized format specifier"
+msgstr "無法辨識的格å¼é™å®šç¬¦"
+
+#: c-format.c:198
+#, gcc-internal-format
+msgid "%qE is an unrecognized format function type"
+msgstr "%qE 是一個無法辨識的格å¼å­—串函å¼é¡žåž‹"
+
+#: c-format.c:212
+#, gcc-internal-format
+msgid "%<...%> has invalid operand number"
+msgstr "%<...%> é‹ç®—元號ä¸æ­£ç¢º"
+
+#: c-format.c:219
+#, gcc-internal-format
+msgid "format string argument follows the args to be formatted"
+msgstr "æ ¼å¼å­—串出ç¾åœ¨å¾…æ ¼å¼åŒ–的引數之後"
+
+#: c-format.c:899
+#, gcc-internal-format
+msgid "function might be possible candidate for %qs format attribute"
+msgstr "函å¼å¯èƒ½æ˜¯ %qs format 屬性的備é¸"
+
+#: c-format.c:991 c-format.c:1012 c-format.c:2026
+#, gcc-internal-format
+msgid "missing $ operand number in format"
+msgstr "æ ¼å¼å­—串缺少 $ é‹ç®—元號"
+
+#: c-format.c:1021
+#, gcc-internal-format
+msgid "%s does not support %%n$ operand number formats"
+msgstr "%s ä¸æ”¯æ´ %%n$ é‹ç®—元號格å¼å­—串"
+
+#: c-format.c:1028
+#, gcc-internal-format
+msgid "operand number out of range in format"
+msgstr "æ ¼å¼å­—元中é‹ç®—元號越界"
+
+#: c-format.c:1051
+#, gcc-internal-format
+msgid "format argument %d used more than once in %s format"
+msgstr "æ ¼å¼å¼•æ•¸ %d 在 %s æ ¼å¼å­—串中使用ä¸æ­¢ä¸€æ¬¡"
+
+#: c-format.c:1083
+#, gcc-internal-format
+msgid "$ operand number used after format without operand number"
+msgstr "$ é‹ç®—元號在ä¸ä½¿ç”¨é‹ç®—元號的格å¼å¾Œè¢«ä½¿ç”¨"
+
+#: c-format.c:1114
+#, gcc-internal-format
+msgid "format argument %d unused before used argument %d in $-style format"
+msgstr "æ ¼å¼å¼•æ•¸ %d 在被使用的 $ 風格的格å¼å¼•æ•¸ %d å‰æœªè¢«ä½¿ç”¨"
+
+#: c-format.c:1209
+#, gcc-internal-format
+msgid "format not a string literal, format string not checked"
+msgstr "æ ¼å¼å­—串ä¸æ˜¯ä¸€å€‹å­—é¢å­—串,格å¼å­—串未被檢查"
+
+#: c-format.c:1224 c-format.c:1227
+#, gcc-internal-format
+msgid "format not a string literal and no format arguments"
+msgstr "æ ¼å¼å­—串ä¸æ˜¯ä¸€å€‹å­—é¢å­—串而且沒有待格å¼åŒ–的引數"
+
+#: c-format.c:1230
+#, gcc-internal-format
+msgid "format not a string literal, argument types not checked"
+msgstr "æ ¼å¼å­—串ä¸æ˜¯ä¸€å€‹å­—é¢å­—串,沒有進行引數類型檢查"
+
+#: c-format.c:1243
+#, gcc-internal-format
+msgid "too many arguments for format"
+msgstr "æ供給格å¼å­—串的引數太多"
+
+#: c-format.c:1246
+#, gcc-internal-format
+msgid "unused arguments in $-style format"
+msgstr "$ 風格的格å¼å­—串中有未使用的引數"
+
+#: c-format.c:1249
+#, gcc-internal-format
+msgid "zero-length %s format string"
+msgstr "æ ¼å¼å­—串 %s 長度為 0"
+
+#: c-format.c:1253
+#, gcc-internal-format
+msgid "format is a wide character string"
+msgstr "æ ¼å¼å­—串是一個寬字串"
+
+#: c-format.c:1256
+#, gcc-internal-format
+msgid "unterminated format string"
+msgstr "未終止的格å¼å­—串"
+
+#: c-format.c:1470
+#, gcc-internal-format
+msgid "embedded %<\\0%> in format"
+msgstr "æ ¼å¼å­—串嵌有 %<\\0%>"
+
+#: c-format.c:1485
+#, gcc-internal-format
+msgid "spurious trailing %<%%%> in format"
+msgstr "æ ¼å¼å­—串尾有å¯ç–‘çš„ %<%%%>"
+
+#: c-format.c:1529 c-format.c:1774
+#, gcc-internal-format
+msgid "repeated %s in format"
+msgstr "æ ¼å¼å­—串中有é‡è¤‡çš„ %s"
+
+#: c-format.c:1542
+#, gcc-internal-format
+msgid "missing fill character at end of strfmon format"
+msgstr "strfmon æ ¼å¼å­—串末尾缺少填充字元"
+
+#: c-format.c:1586 c-format.c:1688 c-format.c:1973 c-format.c:2038
+#, gcc-internal-format
+msgid "too few arguments for format"
+msgstr "æ ¼å¼å­—串引數太少"
+
+#: c-format.c:1627
+#, gcc-internal-format
+msgid "zero width in %s format"
+msgstr "%s æ ¼å¼å­—串中欄ä½å¯¬ç‚º 0"
+
+#: c-format.c:1645
+#, gcc-internal-format
+msgid "empty left precision in %s format"
+msgstr "%s æ ¼å¼å­—串中左精度為空"
+
+#: c-format.c:1718
+#, gcc-internal-format
+msgid "empty precision in %s format"
+msgstr "%s æ ¼å¼å­—串中精度為空"
+
+#: c-format.c:1758
+#, gcc-internal-format
+msgid "%s does not support the %qs %s length modifier"
+msgstr "%s ä¸æ”¯æ´ %qs %s 長度修飾符"
+
+#: c-format.c:1808
+#, gcc-internal-format
+msgid "conversion lacks type at end of format"
+msgstr "æ ¼å¼å­—串末尾的轉æ›ç¼ºå°‘é¡žåž‹"
+
+#: c-format.c:1819
+#, gcc-internal-format
+msgid "unknown conversion type character %qc in format"
+msgstr "æ ¼å¼å­—串中出ç¾ç„¡æ•ˆçš„類型轉æ›å­—å…ƒ %qc"
+
+#: c-format.c:1822
+#, gcc-internal-format
+msgid "unknown conversion type character 0x%x in format"
+msgstr "æ ¼å¼å­—串中出ç¾ç„¡æ•ˆçš„類型轉æ›å­—å…ƒ 0x%x"
+
+#: c-format.c:1829
+#, gcc-internal-format
+msgid "%s does not support the %<%%%c%> %s format"
+msgstr "%s ä¸æ”¯æ´ %<%%%c%> %s æ ¼å¼"
+
+#: c-format.c:1845
+#, gcc-internal-format
+msgid "%s used with %<%%%c%> %s format"
+msgstr "%s 與 %<%%%c%> %s æ ¼å¼ä¸¦ç”¨"
+
+#: c-format.c:1854
+#, gcc-internal-format
+msgid "%s does not support %s"
+msgstr "%s ä¸æ”¯æ´ %s"
+
+#: c-format.c:1864
+#, gcc-internal-format
+msgid "%s does not support %s with the %<%%%c%> %s format"
+msgstr "%s ä¸æ”¯æ´ %s 出ç¾åœ¨ %<%%%c%> %s æ ¼å¼å­—串中"
+
+#: c-format.c:1898
+#, gcc-internal-format
+msgid "%s ignored with %s and %<%%%c%> %s format"
+msgstr "%s 與 %s å’Œ %<%%%c%> %s æ ¼å¼å­—串åˆç”¨æ™‚被忽略"
+
+#: c-format.c:1902
+#, gcc-internal-format
+msgid "%s ignored with %s in %s format"
+msgstr "%s å’Œ %s 出ç¾åœ¨ %s æ ¼å¼å­—串中時被忽略"
+
+#: c-format.c:1909
+#, gcc-internal-format
+msgid "use of %s and %s together with %<%%%c%> %s format"
+msgstr "åŒæ™‚使用 %s å’Œ %s,在 %<%%%c%> %s æ ¼å¼å­—串中"
+
+#: c-format.c:1913
+#, gcc-internal-format
+msgid "use of %s and %s together in %s format"
+msgstr "åŒæ™‚使用 %s å’Œ %s,在 %s æ ¼å¼å­—串中"
+
+#: c-format.c:1932
+#, gcc-internal-format
+msgid "%<%%%c%> yields only last 2 digits of year in some locales"
+msgstr "%<%%%c%> 在æŸäº›å€åŸŸè¨­å®šä¸‹åªçµ¦å‡º 2 ä½è¡¨ç¤ºçš„年份"
+
+#: c-format.c:1935
+#, gcc-internal-format
+msgid "%<%%%c%> yields only last 2 digits of year"
+msgstr "%<%%%c%> åªçµ¦å‡º 2 ä½è¡¨ç¤ºçš„年份"
+
+#. The end of the format string was reached.
+#: c-format.c:1952
+#, gcc-internal-format
+msgid "no closing %<]%> for %<%%[%> format"
+msgstr "%<%%[%> æ ¼å¼æ²’有相å°çš„ %<]%>"
+
+#: c-format.c:1966
+#, gcc-internal-format
+msgid "use of %qs length modifier with %qc type character"
+msgstr "將 %qs 長度修飾符和%qc 類型字元一起使用"
+
+#: c-format.c:1988
+#, gcc-internal-format
+msgid "%s does not support the %<%%%s%c%> %s format"
+msgstr "%s ä¸æ”¯æ´ %<%%%s%c%> %s æ ¼å¼"
+
+#: c-format.c:2005
+#, gcc-internal-format
+msgid "operand number specified with suppressed assignment"
+msgstr "為格å¼å­—串指定的é‹ç®—元號å–消了賦值"
+
+#: c-format.c:2008
+#, gcc-internal-format
+msgid "operand number specified for format taking no argument"
+msgstr "為格å¼å­—串指定的é‹ç®—元號ä¸å¸¶åƒæ•¸"
+
+#: c-format.c:2151
+#, gcc-internal-format
+msgid "writing through null pointer (argument %d)"
+msgstr "å°ç©ºæŒ‡æ¨™åƒç…§å…§å®¹çš„寫作業(引數 %d)"
+
+#: c-format.c:2159
+#, gcc-internal-format
+msgid "reading through null pointer (argument %d)"
+msgstr "å°ç©ºæŒ‡æ¨™åƒç…§å…§å®¹çš„讀作業(引數 %d)"
+
+#: c-format.c:2179
+#, gcc-internal-format
+msgid "writing into constant object (argument %d)"
+msgstr "å°å¸¸æ•¸ç‰©ä»¶çš„寫作業(引數 %d)"
+
+#: c-format.c:2190
+#, gcc-internal-format
+msgid "extra type qualifiers in format argument (argument %d)"
+msgstr "æ ¼å¼å­—串引數 %d 有多餘的類型é™å®š"
+
+#: c-format.c:2301
+#, gcc-internal-format
+msgid "%s should have type %<%s%s%>, but argument %d has type %qT"
+msgstr "%s 的類型應當是 %<%s%s%>,但引數 %d çš„é¡žåž‹å»æ˜¯ %qT"
+
+#: c-format.c:2305
+#, gcc-internal-format
+msgid "format %q.*s expects type %<%s%s%>, but argument %d has type %qT"
+msgstr "æ ¼å¼ %q.*s 需è¦é¡žåž‹ %<%s%s%>,但引數 %d 的類型為 %qT"
+
+#: c-format.c:2313
+#, gcc-internal-format
+msgid "%s should have type %<%T%s%>, but argument %d has type %qT"
+msgstr "%s 的類型應該是 %<%T%s%>,但引數 %d 的類型為 %qT"
+
+#: c-format.c:2317
+#, gcc-internal-format
+msgid "format %q.*s expects type %<%T%s%>, but argument %d has type %qT"
+msgstr "æ ¼å¼ %q.*s 需è¦é¡žåž‹ %<%T%s%>,但引數 %d 的類型為 %qT"
+
+#: c-format.c:2376 c-format.c:2382 c-format.c:2532
+#, gcc-internal-format
+msgid "%<__gcc_host_wide_int__%> is not defined as a type"
+msgstr "%<__gcc_host_wide_int__%> 未被定義為一個類型"
+
+#: c-format.c:2389 c-format.c:2542
+#, gcc-internal-format
+msgid "%<__gcc_host_wide_int__%> is not defined as %<long%> or %<long long%>"
+msgstr "%<__gcc_host_wide_int__%> 未被定義為 %<long%> 或 %<long long%>"
+
+#: c-format.c:2438
+#, gcc-internal-format
+msgid "%<locus%> is not defined as a type"
+msgstr "%<locus%> 未被定義為一個類型"
+
+#: c-format.c:2491
+#, gcc-internal-format
+msgid "%<location_t%> is not defined as a type"
+msgstr "%<location_t%> 未被定義為一個類型"
+
+#: c-format.c:2508
+#, gcc-internal-format
+msgid "%<tree%> is not defined as a type"
+msgstr "%<tree%> 未被定義為一個類型"
+
+#: c-format.c:2513
+#, gcc-internal-format
+msgid "%<tree%> is not defined as a pointer type"
+msgstr "%<tree%> 未被定義為一個指標類型"
+
+#: c-format.c:2724
+#, gcc-internal-format
+msgid "args to be formatted is not %<...%>"
+msgstr "å¾…æ ¼å¼åŒ–的引數ä¸æ˜¯ %<...%>"
+
+#: c-format.c:2733
+#, gcc-internal-format
+msgid "strftime formats cannot format arguments"
+msgstr "strftime æ ¼å¼å­—串無法格å¼åŒ–引數"
+
+#: c-lex.c:254
+#, gcc-internal-format
+msgid "badly nested C headers from preprocessor"
+msgstr "å‰è™•ç†å™¨ç”¢ç”Ÿçš„巢狀 C é ­ 錯誤"
+
+#: c-lex.c:302
+#, gcc-internal-format
+msgid "%Hignoring #pragma %s %s"
+msgstr "%H忽略 #pragma %s %s"
+
+#. ... or not.
+#: c-lex.c:412
+#, gcc-internal-format
+msgid "%Hstray %<@%> in program"
+msgstr "%H程å¼ä¸­æœ‰æ¸¸é›¢çš„ %<@%>"
+
+#: c-lex.c:426
+#, gcc-internal-format
+msgid "stray %qs in program"
+msgstr "程å¼ä¸­æœ‰æ¸¸é›¢çš„ %qs"
+
+#: c-lex.c:436
+#, gcc-internal-format
+msgid "missing terminating %c character"
+msgstr "缺少çµå°¾çš„ %c å­—å…ƒ"
+
+#: c-lex.c:438
+#, gcc-internal-format
+msgid "stray %qc in program"
+msgstr "程å¼ä¸­æœ‰æ¸¸é›¢çš„ %qc"
+
+#: c-lex.c:440
+#, gcc-internal-format
+msgid "stray %<\\%o%> in program"
+msgstr "程å¼ä¸­æœ‰æ¸¸é›¢çš„ %<\\%o%>"
+
+#: c-lex.c:601
+#, gcc-internal-format
+msgid "this decimal constant is unsigned only in ISO C90"
+msgstr "這個å°æ•¸å¸¸æ•¸åƒ… ISO C90 中是無號的"
+
+#: c-lex.c:605
+#, gcc-internal-format
+msgid "this decimal constant would be unsigned in ISO C90"
+msgstr "這個å°æ•¸å¸¸æ•¸åœ¨ ISO C90 中將是無號的"
+
+#: c-lex.c:621
+#, gcc-internal-format
+msgid "integer constant is too large for %qs type"
+msgstr "å° %qs 類型而言整數常數太大"
+
+#: c-lex.c:687
+#, gcc-internal-format
+msgid "floating constant exceeds range of %<%s%>"
+msgstr "浮點常數超出 %<%s%> 的範åœ"
+
+#: c-lex.c:770
+#, gcc-internal-format
+msgid "traditional C rejects string constant concatenation"
+msgstr "傳統 C ä¸æŽ¥å—字串常數粘貼"
+
+#: c-objc-common.c:81
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it is suppressed using -fno-inline"
+msgstr "å‡½å¼ %q+F 無法被內è¯ï¼Œå› ç‚ºä½¿ç”¨äº† -fno-inline"
+
+#: c-objc-common.c:91
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it might not be bound within this unit of translation"
+msgstr "å‡½å¼ %q+F 無法被內è¯ï¼Œå› ç‚ºå®ƒå¯èƒ½ä¸é™æ–¼æ­¤ç·¨è­¯å–®å…ƒ"
+
+#: c-objc-common.c:99
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it uses attributes conflicting with inlining"
+msgstr "å‡½å¼ %q+F 無法被內è¯ï¼Œå› ç‚ºå®ƒä½¿ç”¨äº†èˆ‡å…§è¯è¡çªçš„屬性"
+
+#: c-opts.c:147
+#, gcc-internal-format
+msgid "no class name specified with %qs"
+msgstr "%qs 沒有指定類別å"
+
+#: c-opts.c:151
+#, gcc-internal-format
+msgid "assertion missing after %qs"
+msgstr "%qs 後判定語"
+
+#: c-opts.c:156
+#, gcc-internal-format
+msgid "macro name missing after %qs"
+msgstr "%qs 後缺少巨集å"
+
+#: c-opts.c:165
+#, gcc-internal-format
+msgid "missing path after %qs"
+msgstr "%qs 後缺少路徑"
+
+#: c-opts.c:174
+#, gcc-internal-format
+msgid "missing filename after %qs"
+msgstr "%qs 後缺少檔案å稱"
+
+#: c-opts.c:179
+#, gcc-internal-format
+msgid "missing makefile target after %qs"
+msgstr "%qs 後缺少 makefile 目的"
+
+#: c-opts.c:319
+#, gcc-internal-format
+msgid "-I- specified twice"
+msgstr "-I- 指定了兩次"
+
+#: c-opts.c:322
+#, gcc-internal-format
+msgid "obsolete option -I- used, please use -iquote instead"
+msgstr "使用了éŽæ™‚çš„é¸é … -I-,請改用 -iquote"
+
+#: c-opts.c:492
+#, gcc-internal-format
+msgid "argument %qs to %<-Wnormalized%> not recognized"
+msgstr "引數 %qs(給予 %<-Wnormalized%>)無法識別"
+
+#: c-opts.c:576
+#, gcc-internal-format
+msgid "switch %qs is no longer supported"
+msgstr "é–‹é—œ %qs ä¸å†è¢«æ”¯æ´"
+
+#: c-opts.c:686
+#, gcc-internal-format
+msgid "-fhandle-exceptions has been renamed -fexceptions (and is now on by default)"
+msgstr "-fhandle-exceptions 已被é‡æ–°å‘½å為 -fexceptions (並且ç¾åœ¨é è¨­ç‚ºé–‹)"
+
+#: c-opts.c:868
+#, gcc-internal-format
+msgid "output filename specified twice"
+msgstr "輸出檔案å稱指定了兩次"
+
+#: c-opts.c:1012
+#, gcc-internal-format
+msgid "-Wformat-y2k ignored without -Wformat"
+msgstr "-Wformat-y2k 未與 -Wformat 一起使用,已忽略"
+
+#: c-opts.c:1014
+#, gcc-internal-format
+msgid "-Wformat-extra-args ignored without -Wformat"
+msgstr "-Wformat-extra-args 未與 -Wformat 一起使用,已忽略"
+
+#: c-opts.c:1016
+#, gcc-internal-format
+msgid "-Wformat-zero-length ignored without -Wformat"
+msgstr "-Wformat-zero-length 未與 -Wformat 一起使用,已忽略"
+
+#: c-opts.c:1018
+#, gcc-internal-format
+msgid "-Wformat-nonliteral ignored without -Wformat"
+msgstr "-Wformat-nonliteral 未與 -Wformat 一起使用,已忽略"
+
+#: c-opts.c:1020
+#, gcc-internal-format
+msgid "-Wformat-security ignored without -Wformat"
+msgstr "-Wformat-security 未與 -Wformat 一起使用,已忽略"
+
+#: c-opts.c:1040
+#, gcc-internal-format
+msgid "opening output file %s: %m"
+msgstr "開啟輸出檔案 %s:%m"
+
+#: c-opts.c:1045
+#, gcc-internal-format
+msgid "too many filenames given. Type %s --help for usage"
+msgstr "給定了太多檔案å稱。試用 %s --help 以了解用法"
+
+#: c-opts.c:1131
+#, gcc-internal-format
+msgid "YYDEBUG was not defined at build time, -dy ignored"
+msgstr "YYDEBUG 未在編譯時定義,忽略 -dy"
+
+#: c-opts.c:1177
+#, gcc-internal-format
+msgid "opening dependency file %s: %m"
+msgstr "é–‹å•Ÿä¾è³´æª”案 %s:%m"
+
+#: c-opts.c:1187
+#, gcc-internal-format
+msgid "closing dependency file %s: %m"
+msgstr "關閉ä¾è³´æª”案 %s:%m"
+
+#: c-opts.c:1190
+#, gcc-internal-format
+msgid "when writing output to %s: %m"
+msgstr "當寫入輸出到 %s 時:%m"
+
+#: c-opts.c:1270
+#, gcc-internal-format
+msgid "to generate dependencies you must specify either -M or -MM"
+msgstr "è¦ç”¢ç”Ÿä¾è³´é …,您必須指定 -M 或 -MM"
+
+#: c-opts.c:1438
+#, gcc-internal-format
+msgid "too late for # directive to set debug directory"
+msgstr "使用 # 指示設定除錯目錄太é²"
+
+#: c-parser.c:969
+#, gcc-internal-format
+msgid "ISO C forbids an empty source file"
+msgstr "ISO C ä¸å…許來æºæª”案為空"
+
+#: c-parser.c:1054 c-parser.c:5762
+#, gcc-internal-format
+msgid "ISO C does not allow extra %<;%> outside of a function"
+msgstr "ISO C ä¸æ”¯æ´åœ¨å‡½å¼å¤–使用多餘的 %<;%>"
+
+#: c-parser.c:1145
+#, gcc-internal-format
+msgid "expected declaration specifiers"
+msgstr "需è¦æŒ‡å®šå®£å‘Š"
+
+#: c-parser.c:1193
+#, gcc-internal-format
+msgid "data definition has no type or storage class"
+msgstr "資料定義時沒有類型或存儲類別"
+
+#: c-parser.c:1247
+#, gcc-internal-format
+msgid "expected %<,%> or %<;%>"
+msgstr "éœ€è¦ %<,%> 或 %<;%>"
+
+#. This can appear in many cases looking nothing like a
+#. function definition, so we don't give a more specific
+#. error suggesting there was one.
+#: c-parser.c:1254 c-parser.c:1271
+#, gcc-internal-format
+msgid "expected %<=%>, %<,%>, %<;%>, %<asm%> or %<__attribute__%>"
+msgstr "éœ€è¦ %<=%>,%<,%>,%<;%>,%<asm%> 或 %<__attribute__%>"
+
+#: c-parser.c:1263
+#, gcc-internal-format
+msgid "ISO C forbids nested functions"
+msgstr "ISO C++ ä¸å…許巢狀函å¼"
+
+#: c-parser.c:1609 c-parser.c:2372 c-parser.c:2981 c-parser.c:3222
+#: c-parser.c:4009 c-parser.c:4590 c-parser.c:4980 c-parser.c:5000
+#: c-parser.c:5115 c-parser.c:5261 c-parser.c:5278 c-parser.c:5410
+#: c-parser.c:5422 c-parser.c:5447 c-parser.c:5575 c-parser.c:5604
+#: c-parser.c:5612 c-parser.c:5640 c-parser.c:5654 c-parser.c:5867
+#: c-parser.c:5966
+#, gcc-internal-format
+msgid "expected identifier"
+msgstr "需è¦è­˜åˆ¥ç¢¼"
+
+#: c-parser.c:1635 cp/parser.c:10272
+#, gcc-internal-format
+msgid "comma at end of enumerator list"
+msgstr "列舉表以逗號çµå°¾"
+
+#: c-parser.c:1641
+#, gcc-internal-format
+msgid "expected %<,%> or %<}%>"
+msgstr "éœ€è¦ %<,%> 或 %<}%>"
+
+#: c-parser.c:1655 c-parser.c:1825 c-parser.c:5729
+#, gcc-internal-format
+msgid "expected %<{%>"
+msgstr "éœ€è¦ %<{%>"
+
+#: c-parser.c:1664
+#, gcc-internal-format
+msgid "ISO C forbids forward references to %<enum%> types"
+msgstr "ISO C ä¸å…許 %<enum%> é¡žåž‹çš„å‰å‘åƒç…§"
+
+#: c-parser.c:1767
+#, gcc-internal-format
+msgid "expected class name"
+msgstr "需è¦é¡žåˆ¥å"
+
+#: c-parser.c:1786 c-parser.c:5514
+#, gcc-internal-format
+msgid "extra semicolon in struct or union specified"
+msgstr "為çµåˆæˆ–çµæ§‹æŒ‡å®šäº†å¤šé¤˜çš„分號"
+
+#: c-parser.c:1808
+#, gcc-internal-format
+msgid "no semicolon at end of struct or union"
+msgstr "çµæ§‹æˆ–è¯åˆå¾Œæ²’有分號"
+
+#: c-parser.c:1811
+#, gcc-internal-format
+msgid "expected %<;%>"
+msgstr "éœ€è¦ %<;%>"
+
+#: c-parser.c:1888 c-parser.c:2815
+#, gcc-internal-format
+msgid "expected specifier-qualifier-list"
+msgstr "需è¦æŒ‡å®šç¬¦-é™åˆ¶ç¬¦æ¸…å–®"
+
+#: c-parser.c:1898
+#, gcc-internal-format
+msgid "ISO C forbids member declarations with no members"
+msgstr "ISO C ä¸å…許ä¸å«æˆå“¡çš„æˆå“¡å®£å‘Š"
+
+#: c-parser.c:1967
+#, gcc-internal-format
+msgid "expected %<,%>, %<;%> or %<}%>"
+msgstr "éœ€è¦ %<,%>ã€%<;%> 或 %<}%>"
+
+#: c-parser.c:1974
+#, gcc-internal-format
+msgid "expected %<:%>, %<,%>, %<;%>, %<}%> or %<__attribute__%>"
+msgstr "éœ€è¦ %<:%>,%<,%>,%<;%>,%<}%> 或 %<__attribute__%>"
+
+#: c-parser.c:2023
+#, gcc-internal-format
+msgid "%<typeof%> applied to a bit-field"
+msgstr "為ä½å…ƒæ®µä½¿ç”¨ %<typeof%> "
+
+#: c-parser.c:2242
+#, gcc-internal-format
+msgid "expected identifier or %<(%>"
+msgstr "需è¦è­˜åˆ¥ç¢¼æˆ– %<(%>"
+
+#: c-parser.c:2435
+#, gcc-internal-format
+msgid "ISO C requires a named argument before %<...%>"
+msgstr "ISO C è¦æ±‚在 %<...%> å‰æœ‰ä¸€å€‹å…·ååƒæ•¸"
+
+#: c-parser.c:2537
+#, gcc-internal-format
+msgid "expected declaration specifiers or %<...%>"
+msgstr "需è¦æŒ‡å®šå®£å‘Šæˆ– %<...%>"
+
+#: c-parser.c:2587
+#, gcc-internal-format
+msgid "wide string literal in %<asm%>"
+msgstr "%<asm%> 中出ç¾å¯¬å­—é¢å­—串"
+
+#: c-parser.c:2593
+#, gcc-internal-format
+msgid "expected string literal"
+msgstr "需è¦å­—é¢å­—串"
+
+#: c-parser.c:2907
+#, gcc-internal-format
+msgid "ISO C forbids empty initializer braces"
+msgstr "ISO C ä¸å…許用åˆå§‹å€¼è¨­å®šä¸­æœ‰ç©ºçš„大括號å°"
+
+#: c-parser.c:2952
+#, gcc-internal-format
+msgid "obsolete use of designated initializer with %<:%>"
+msgstr "使用 %<:%> 來指定元素åˆå§‹å€¼çš„作法已éŽæ™‚"
+
+#: c-parser.c:3075
+#, gcc-internal-format
+msgid "ISO C forbids specifying range of elements to initialize"
+msgstr "ISO C ä¸å…許在åˆå§‹åŒ–指定元素的範åœ"
+
+#: c-parser.c:3088
+#, gcc-internal-format
+msgid "ISO C90 forbids specifying subobject to initialize"
+msgstr "ISO C90 ä¸å…許指定å­ç‰©ä»¶çš„åˆå§‹å€¼"
+
+#: c-parser.c:3096
+#, gcc-internal-format
+msgid "obsolete use of designated initializer without %<=%>"
+msgstr "éŽæ™‚的用法,應使用 %<=%> 來指定元素åˆå§‹å€¼"
+
+#: c-parser.c:3104
+#, gcc-internal-format
+msgid "expected %<=%>"
+msgstr "éœ€è¦ %<=%>"
+
+#: c-parser.c:3241
+#, gcc-internal-format
+msgid "ISO C forbids label declarations"
+msgstr "ISO C ä¸å…許標籤宣告"
+
+#: c-parser.c:3246 c-parser.c:3255
+#, gcc-internal-format
+msgid "expected declaration or statement"
+msgstr "需è¦å®£å‘Šæˆ–敘述"
+
+#: c-parser.c:3275 c-parser.c:3303
+#, gcc-internal-format
+msgid "%HISO C90 forbids mixed declarations and code"
+msgstr "%HISO C90 ä¸å…許混åˆä½¿ç”¨å®£å‘Šå’Œç¨‹å¼ç¢¼"
+
+#: c-parser.c:3319
+#, gcc-internal-format
+msgid "label at end of compound statement"
+msgstr "標籤ä½æ–¼è¤‡åˆæ•˜è¿°æœ«å°¾"
+
+#: c-parser.c:3362
+#, gcc-internal-format
+msgid "expected %<:%> or %<...%>"
+msgstr "éœ€è¦ %<:%> 或 %<...%>"
+
+#: c-parser.c:3498
+#, gcc-internal-format
+msgid "expected identifier or %<*%>"
+msgstr "需è¦è­˜åˆ¥ç¢¼æˆ– %<*%>"
+
+#. Avoid infinite loop in error recovery:
+#. c_parser_skip_until_found stops at a closing nesting
+#. delimiter without consuming it, but here we need to consume
+#. it to proceed further.
+#: c-parser.c:3560
+#, gcc-internal-format
+msgid "expected statement"
+msgstr "需è¦æ•˜è¿°"
+
+#: c-parser.c:3894
+#, gcc-internal-format
+msgid "%E qualifier ignored on asm"
+msgstr "%E é™å®šåœ¨ asm 上被忽略"
+
+#: c-parser.c:4174
+#, gcc-internal-format
+msgid "ISO C forbids omitting the middle term of a ?: expression"
+msgstr "ISO C ä¸å…許çœç•¥ ?: é‹ç®—å¼ä¸­çš„第二項"
+
+#: c-parser.c:4560
+#, gcc-internal-format
+msgid "traditional C rejects the unary plus operator"
+msgstr "傳統 C ä¸æŽ¥å—å–®ä½å…ƒ + é‹ç®—å­"
+
+#: c-parser.c:4673
+#, gcc-internal-format
+msgid "%<sizeof%> applied to a bit-field"
+msgstr "å°ä½å…ƒæ®µä½¿ç”¨ %<sizeof%>"
+
+#: c-parser.c:4816 c-parser.c:5157 c-parser.c:5179
+#, gcc-internal-format
+msgid "expected expression"
+msgstr "需è¦é‹ç®—å¼"
+
+#: c-parser.c:4842
+#, gcc-internal-format
+msgid "braced-group within expression allowed only inside a function"
+msgstr "é‹ç®—å¼ä¸­çš„大括號組åªå…許出ç¾åœ¨å‡½å¼ä¸­"
+
+#: c-parser.c:4856
+#, gcc-internal-format
+msgid "ISO C forbids braced-groups within expressions"
+msgstr "ISO C ä¸å…許在é‹ç®—å¼ä¸­ä½¿ç”¨å¤§æ‹¬è™Ÿçµ„"
+
+#: c-parser.c:5039
+#, gcc-internal-format
+msgid "first argument to %<__builtin_choose_expr%> not a constant"
+msgstr "%<__builtin_choose_expr%> 的第一個引數ä¸æ˜¯ä¸€å€‹å¸¸æ•¸"
+
+#: c-parser.c:5206
+#, gcc-internal-format
+msgid "compound literal has variable size"
+msgstr "複åˆå­—é¢å€¼æœ‰å¯è®Šçš„大å°"
+
+#: c-parser.c:5214
+#, gcc-internal-format
+msgid "ISO C90 forbids compound literals"
+msgstr "ISO C90 ä¸å…許複åˆå­—é¢å€¼"
+
+#: c-parser.c:5725
+#, gcc-internal-format
+msgid "extra semicolon in method definition specified"
+msgstr "為方法定義指定了多餘的分號"
+
+#: c-pch.c:132
+#, gcc-internal-format
+msgid "can%'t create precompiled header %s: %m"
+msgstr "無法建立é å…ˆç·¨è­¯é ­ %s:%m"
+
+#: c-pch.c:153
+#, gcc-internal-format
+msgid "can%'t write to %s: %m"
+msgstr "無法寫入 %s:%m"
+
+#: c-pch.c:159
+#, gcc-internal-format
+msgid "%qs is not a valid output file"
+msgstr "%qs ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„輸出檔案"
+
+#: c-pch.c:188 c-pch.c:203 c-pch.c:217
+#, gcc-internal-format
+msgid "can%'t write %s: %m"
+msgstr "無法寫入 %s:%m"
+
+#: c-pch.c:193 c-pch.c:210
+#, gcc-internal-format
+msgid "can%'t seek in %s: %m"
+msgstr "無法在 %s 中定ä½ï¼š%m"
+
+#: c-pch.c:201 c-pch.c:243 c-pch.c:283 c-pch.c:334
+#, gcc-internal-format
+msgid "can%'t read %s: %m"
+msgstr "ç„¡æ³•è®€å– %s:%m"
+
+#: c-pch.c:452
+#, gcc-internal-format
+msgid "malformed #pragma GCC pch_preprocess, ignored"
+msgstr "#pragma GCC pch_preprocess æ ¼å¼ä¸æ­£ç¢ºï¼Œå·²å¿½ç•¥"
+
+#: c-pch.c:458
+#, gcc-internal-format
+msgid "pch_preprocess pragma should only be used with -fpreprocessed"
+msgstr "pch_preprocess pragma åªæ‡‰èˆ‡ -fpreprocessed 並用"
+
+#: c-pch.c:459
+#, gcc-internal-format
+msgid "use #include instead"
+msgstr "改用 #include"
+
+#: c-pch.c:467
+#, gcc-internal-format
+msgid "%s: couldn%'t open PCH file: %m"
+msgstr "%s:無法開啟 PCH 檔案:%m"
+
+#: c-pch.c:472
+#, gcc-internal-format
+msgid "use -Winvalid-pch for more information"
+msgstr "使用 -Winvalid-pch 以ç²å¾—更多資訊"
+
+#: c-pch.c:473
+#, gcc-internal-format
+msgid "%s: PCH file was invalid"
+msgstr "%s:PCH 檔案無效"
+
+#: c-pragma.c:101
+#, gcc-internal-format
+msgid "#pragma pack (pop) encountered without matching #pragma pack (push)"
+msgstr "#pragma pack (pop) 沒有相匹é…çš„ #pragma pack (push)"
+
+#: c-pragma.c:114
+#, gcc-internal-format
+msgid "#pragma pack(pop, %s) encountered without matching #pragma pack(push, %s)"
+msgstr "#pragma pack(pop, %s) 沒有相匹é…çš„ #pragma pack(push, %s)"
+
+#: c-pragma.c:128
+#, gcc-internal-format
+msgid "#pragma pack(push[, id], <n>) is not supported on this target"
+msgstr "#pragma pack(push[, id], <n>) 在此目標平臺上ä¸å—支æ´"
+
+#: c-pragma.c:130
+#, gcc-internal-format
+msgid "#pragma pack(pop[, id], <n>) is not supported on this target"
+msgstr "#pragma pack(pop[, id], <n>) 在此目標平臺上ä¸å—支æ´"
+
+#: c-pragma.c:151
+#, gcc-internal-format
+msgid "missing %<(%> after %<#pragma pack%> - ignored"
+msgstr "%<#pragma pack%> 後缺少 %<(%>,忽略"
+
+#: c-pragma.c:164 c-pragma.c:204
+#, gcc-internal-format
+msgid "malformed %<#pragma pack%> - ignored"
+msgstr "%<#pragma pack%> æ ¼å¼éŒ¯èª¤ - 已忽略"
+
+#: c-pragma.c:169
+#, gcc-internal-format
+msgid "malformed %<#pragma pack(push[, id][, <n>])%> - ignored"
+msgstr "%<#pragma pack(push[, id][, <n>])%> æ ¼å¼éŒ¯èª¤ - 已忽略"
+
+#: c-pragma.c:171
+#, gcc-internal-format
+msgid "malformed %<#pragma pack(pop[, id])%> - ignored"
+msgstr "%<#pragma pack(pop[, id])%> æ ¼å¼éŒ¯èª¤ - 已忽略"
+
+#: c-pragma.c:180
+#, gcc-internal-format
+msgid "unknown action %qs for %<#pragma pack%> - ignored"
+msgstr "%<#pragma pack%> 動作 %qs 無效 - 已忽略"
+
+#: c-pragma.c:207
+#, gcc-internal-format
+msgid "junk at end of %<#pragma pack%>"
+msgstr "%<#pragma pack%> 末尾有無用字元"
+
+#: c-pragma.c:210
+#, gcc-internal-format
+msgid "#pragma pack has no effect with -fpack-struct - ignored"
+msgstr "指定了 -fpack-struct 時 #pragma pack 無效 - 已忽略"
+
+#: c-pragma.c:230
+#, gcc-internal-format
+msgid "alignment must be a small power of two, not %d"
+msgstr "å°é½Šé‚Šç•Œå¿…須是 2 的較å°æ¬¡æ–¹ï¼Œè€Œä¸æ˜¯ %d"
+
+#: c-pragma.c:263
+#, gcc-internal-format
+msgid "applying #pragma weak %q+D after first use results in unspecified behavior"
+msgstr "在第一次使用後套用 #pragma weak %q+D 導致ä¸å¯é çŸ¥çš„後果"
+
+#: c-pragma.c:337 c-pragma.c:342
+#, gcc-internal-format
+msgid "malformed #pragma weak, ignored"
+msgstr "#pragma weak æ ¼å¼éŒ¯èª¤ï¼Œå·²å¿½ç•¥"
+
+#: c-pragma.c:346
+#, gcc-internal-format
+msgid "junk at end of #pragma weak"
+msgstr "#pragma weak 末尾有無用字元"
+
+#: c-pragma.c:414 c-pragma.c:416
+#, gcc-internal-format
+msgid "malformed #pragma redefine_extname, ignored"
+msgstr "#pragma redefine_extname æ ¼å¼éŒ¯èª¤ï¼Œå·²å¿½ç•¥"
+
+#: c-pragma.c:419
+#, gcc-internal-format
+msgid "junk at end of #pragma redefine_extname"
+msgstr "#pragma redefine_extname 末尾有無用字元"
+
+#: c-pragma.c:425
+#, gcc-internal-format
+msgid "#pragma redefine_extname not supported on this target"
+msgstr "#pragma redefine_extname 在此目標平臺上ä¸å—支æ´"
+
+#: c-pragma.c:442 c-pragma.c:529
+#, gcc-internal-format
+msgid "#pragma redefine_extname ignored due to conflict with previous rename"
+msgstr "#pragma redefine_extname 因與先å‰çš„ rename è¡çªè€Œè¢«å¿½ç•¥"
+
+#: c-pragma.c:465
+#, gcc-internal-format
+msgid "#pragma redefine_extname ignored due to conflict with previous #pragma redefine_extname"
+msgstr "#pragma redefine_extname 因與先å‰çš„ #pragma redefine_extname è¡çªè€Œè¢«å¿½ç•¥"
+
+#: c-pragma.c:484
+#, gcc-internal-format
+msgid "malformed #pragma extern_prefix, ignored"
+msgstr "#pragma extern_prefix æ ¼å¼éŒ¯èª¤ï¼Œå·²å¿½ç•¥"
+
+#: c-pragma.c:487
+#, gcc-internal-format
+msgid "junk at end of #pragma extern_prefix"
+msgstr "#pragma extern_prefix 末尾有無用字元"
+
+#: c-pragma.c:494
+#, gcc-internal-format
+msgid "#pragma extern_prefix not supported on this target"
+msgstr "#pragma extern_prefix 在此目標平臺上ä¸å—支æ´"
+
+#: c-pragma.c:520
+#, gcc-internal-format
+msgid "asm declaration ignored due to conflict with previous rename"
+msgstr "asm 宣告因與先å‰çš„ rename è¡çªè€Œè¢«å¿½ç•¥"
+
+#: c-pragma.c:551
+#, gcc-internal-format
+msgid "#pragma redefine_extname ignored due to conflict with __asm__ declaration"
+msgstr "#pragma redefine_extname 因與 __asm__ declaration è¡çªè€Œè¢«å¿½ç•¥"
+
+#: c-pragma.c:616
+#, gcc-internal-format
+msgid "#pragma GCC visibility must be followed by push or pop"
+msgstr "#pragma GCC visibility 後é¢å¿…須跟 push 或 pop"
+
+#: c-pragma.c:623
+#, gcc-internal-format
+msgid "no matching push for %<#pragma GCC visibility pop%>"
+msgstr "沒有與 %<#pragma GCC visibility pop%> å°æ‡‰çš„ push"
+
+#: c-pragma.c:635 c-pragma.c:661
+#, gcc-internal-format
+msgid "missing %<(%> after %<#pragma GCC visibility push%> - ignored"
+msgstr "%<#pragma GCC visibility push%> 缺少 %<(%> — 已忽略"
+
+#: c-pragma.c:639
+#, gcc-internal-format
+msgid "malformed #pragma GCC visibility push"
+msgstr "#pragma GCC visibility push æ ¼å¼éŒ¯èª¤"
+
+#: c-pragma.c:656
+#, gcc-internal-format
+msgid "#pragma GCC visibility push() must specify default, internal, hidden or protected"
+msgstr "#pragma GCC visibility push() 必須指定 defaultã€internalã€hidden 或 protected"
+
+#: c-pragma.c:665
+#, gcc-internal-format
+msgid "junk at end of %<#pragma GCC visibility%>"
+msgstr "%<#pragma GCC visibility%> 末尾有無用字元"
+
+#: c-typeck.c:157
+#, gcc-internal-format
+msgid "%qD has an incomplete type"
+msgstr "%qD é¡žåž‹ä¸å®Œå…¨"
+
+#: c-typeck.c:178 cp/call.c:2693
+#, gcc-internal-format
+msgid "invalid use of void expression"
+msgstr "å° void é‹ç®—å¼çš„無效使用"
+
+#: c-typeck.c:186
+#, gcc-internal-format
+msgid "invalid use of flexible array member"
+msgstr "å°å½ˆæ€§é™£åˆ—æˆå“¡ç„¡æ•ˆçš„使用"
+
+#: c-typeck.c:192
+#, gcc-internal-format
+msgid "invalid use of array with unspecified bounds"
+msgstr "å°æœªæŒ‡å®šé‚Šç•Œçš„陣列的無效使用"
+
+#: c-typeck.c:200
+#, gcc-internal-format
+msgid "invalid use of undefined type %<%s %E%>"
+msgstr "å°æœªå®šç¾©é¡žåž‹ %<%s %E%> 的使用無效"
+
+#. If this type has a typedef-name, the TYPE_NAME is a TYPE_DECL.
+#: c-typeck.c:204
+#, gcc-internal-format
+msgid "invalid use of incomplete typedef %qD"
+msgstr "å°ä¸å®Œå…¨çš„ typedef %qD 的無效使用"
+
+#: c-typeck.c:431 c-typeck.c:456
+#, gcc-internal-format
+msgid "function types not truly compatible in ISO C"
+msgstr "函å¼é¡žåž‹èˆ‡ ISO C ä¸å®Œå…¨ç›¸å®¹"
+
+#: c-typeck.c:858
+#, gcc-internal-format
+msgid "types are not quite compatible"
+msgstr "é¡žåž‹ä¸å®Œå…¨ç›¸å®¹"
+
+#: c-typeck.c:1176
+#, gcc-internal-format
+msgid "function return types not compatible due to %<volatile%>"
+msgstr "由於 %<volatile%>,函å¼å›žå‚³é¡žåž‹ä¸ç›¸å®¹"
+
+#: c-typeck.c:1335 c-typeck.c:2629
+#, gcc-internal-format
+msgid "arithmetic on pointer to an incomplete type"
+msgstr "在åƒç…§ä¸å®Œå…¨é¡žåž‹çš„指標上執行算術é‹ç®—"
+
+#: c-typeck.c:1726
+#, gcc-internal-format
+msgid "%qT has no member named %qE"
+msgstr "%qT æ²’å…·å為 %qE çš„æˆå“¡"
+
+#: c-typeck.c:1761
+#, gcc-internal-format
+msgid "request for member %qE in something not a structure or union"
+msgstr "在éžçµæ§‹æˆ–è¯åˆä¸­è«‹æ±‚æˆå“¡ %qE"
+
+#: c-typeck.c:1792
+#, gcc-internal-format
+msgid "dereferencing pointer to incomplete type"
+msgstr "æé ˜åƒç…§ä¸å®Œå…¨é¡žåž‹çš„指標"
+
+#: c-typeck.c:1796
+#, gcc-internal-format
+msgid "dereferencing %<void *%> pointer"
+msgstr "æé ˜ %<void *%> 指標"
+
+#: c-typeck.c:1813 cp/typeck.c:2198
+#, gcc-internal-format
+msgid "invalid type argument of %qs"
+msgstr "%qs 的引數類型無效"
+
+#: c-typeck.c:1841 cp/typeck.c:2349
+#, gcc-internal-format
+msgid "subscripted value is neither array nor pointer"
+msgstr "下標é‹ç®—çš„å·¦é‹ç®—元既éžé™£åˆ—也éžæŒ‡æ¨™"
+
+#: c-typeck.c:1852 cp/typeck.c:2268 cp/typeck.c:2354
+#, gcc-internal-format
+msgid "array subscript is not an integer"
+msgstr "陣列下標ä¸æ˜¯ä¸€å€‹æ•´æ•¸"
+
+#: c-typeck.c:1858
+#, gcc-internal-format
+msgid "subscripted value is pointer to function"
+msgstr "下標é‹ç®—çš„å·¦é‹ç®—元是函å¼æŒ‡æ¨™"
+
+#: c-typeck.c:1871 cp/typeck.c:2264
+#, gcc-internal-format
+msgid "array subscript has type %<char%>"
+msgstr "陣列下標類型為 %<char%>"
+
+#: c-typeck.c:1911
+#, gcc-internal-format
+msgid "ISO C forbids subscripting %<register%> array"
+msgstr "ISO C ä¸å…è¨±æŒ‰ä¸‹æ¨™å­˜å– %<register%> 陣列"
+
+#: c-typeck.c:1913
+#, gcc-internal-format
+msgid "ISO C90 forbids subscripting non-lvalue array"
+msgstr "ISO C90 ä¸å…許éžå·¦å€¼çš„陣列åšç‚ºä¸‹æ¨™é‹ç®—çš„å·¦é‹ç®—å…ƒ"
+
+#: c-typeck.c:2155
+#, gcc-internal-format
+msgid "called object %qE is not a function"
+msgstr "被呼å«çš„物件 %qE ä¸æ˜¯ä¸€å€‹å‡½å¼"
+
+#. 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:2182
+#, gcc-internal-format
+msgid "function called through a non-compatible type"
+msgstr "函å¼ç¶“ç”±ä¸ç›¸å®¹çš„類型呼å«"
+
+#: c-typeck.c:2289
+#, gcc-internal-format
+msgid "too many arguments to function %qE"
+msgstr "æä¾›çµ¦å‡½å¼ %qE 的引數太多"
+
+#: c-typeck.c:2310
+#, gcc-internal-format
+msgid "type of formal parameter %d is incomplete"
+msgstr "引數 %d çš„é¡žåž‹ä¸å®Œå…¨"
+
+#: c-typeck.c:2323
+#, gcc-internal-format
+msgid "passing argument %d of %qE as integer rather than floating due to prototype"
+msgstr "根據原型,引數 %d (%qE) å°‡åšç‚ºæ•´æ•¸è€Œä¸æ˜¯æµ®é»žæ•¸å‚³éž"
+
+#: c-typeck.c:2328
+#, gcc-internal-format
+msgid "passing argument %d of %qE as integer rather than complex due to prototype"
+msgstr "根據原型,引數 %d (%qE) å°‡åšç‚ºæ•´æ•¸è€Œä¸æ˜¯è¤‡æ•¸å‚³éž"
+
+#: c-typeck.c:2333
+#, gcc-internal-format
+msgid "passing argument %d of %qE as complex rather than floating due to prototype"
+msgstr "根據原型,引數 %d (%qE) å°‡åšç‚ºè¤‡æ•¸è€Œä¸æ˜¯æµ®é»žæ•¸å‚³éž"
+
+#: c-typeck.c:2338
+#, gcc-internal-format
+msgid "passing argument %d of %qE as floating rather than integer due to prototype"
+msgstr "根據原型,引數 %d (%qE) å°‡åšç‚ºæµ®é»žæ•¸è€Œä¸æ˜¯æ•´æ•¸å‚³éž"
+
+#: c-typeck.c:2343
+#, gcc-internal-format
+msgid "passing argument %d of %qE as complex rather than integer due to prototype"
+msgstr "根據原型,引數 %d (%qE) å°‡åšç‚ºè¤‡æ•¸è€Œä¸æ˜¯æ•´æ•¸å‚³éž"
+
+#: c-typeck.c:2348
+#, gcc-internal-format
+msgid "passing argument %d of %qE as floating rather than complex due to prototype"
+msgstr "根據原型,引數 %d (%qE) å°‡åšç‚ºæµ®é»žæ•¸è€Œä¸æ˜¯è¤‡æ•¸å‚³éž"
+
+#: c-typeck.c:2360
+#, gcc-internal-format
+msgid "passing argument %d of %qE as %<float%> rather than %<double%> due to prototype"
+msgstr "根據原型,引數 %d (%qE) å°‡åšç‚º %<float%> 而ä¸æ˜¯ %<double%> 傳éž"
+
+#: c-typeck.c:2380
+#, gcc-internal-format
+msgid "passing argument %d of %qE with different width due to prototype"
+msgstr "根據原型,引數 %d (%qE) 將以ä¸åŒçš„寬度傳éž"
+
+#: c-typeck.c:2403
+#, gcc-internal-format
+msgid "passing argument %d of %qE as unsigned due to prototype"
+msgstr "根據原型,引數 %d (%qE) 將作用無號數傳éž"
+
+#: c-typeck.c:2407
+#, gcc-internal-format
+msgid "passing argument %d of %qE as signed due to prototype"
+msgstr "根據原型,引數 %d (%qE) å°‡åšç‚ºæœ‰è™Ÿæ•¸å‚³éž"
+
+#: c-typeck.c:2497
+#, gcc-internal-format
+msgid "suggest parentheses around + or - inside shift"
+msgstr "建議在移ä½é‹ç®—å­çš„é‹ç®—元中出ç¾çš„ + 或 - å‰å¾ŒåŠ ä¸Šæ‹¬è™Ÿ"
+
+#: c-typeck.c:2505
+#, gcc-internal-format
+msgid "suggest parentheses around && within ||"
+msgstr "建議在 || çš„é‹ç®—元中出ç¾çš„ && å‰å¾ŒåŠ ä¸Šæ‹¬è™Ÿ"
+
+#: c-typeck.c:2515
+#, gcc-internal-format
+msgid "suggest parentheses around arithmetic in operand of |"
+msgstr "建議在 | çš„é‹ç®—元中的算術é‹ç®—å¼å‰å¾ŒåŠ ä¸Šæ‹¬è™Ÿ"
+
+#: c-typeck.c:2520
+#, gcc-internal-format
+msgid "suggest parentheses around comparison in operand of |"
+msgstr "建議在 | çš„é‹ç®—元中的比較é‹ç®—å¼å‰å¾ŒåŠ ä¸Šæ‹¬è™Ÿ"
+
+#: c-typeck.c:2530
+#, gcc-internal-format
+msgid "suggest parentheses around arithmetic in operand of ^"
+msgstr "建議在 ^ çš„é‹ç®—元中的算術é‹ç®—å¼å‰å¾ŒåŠ ä¸Šæ‹¬è™Ÿ"
+
+#: c-typeck.c:2535
+#, gcc-internal-format
+msgid "suggest parentheses around comparison in operand of ^"
+msgstr "建議在 ^ çš„é‹ç®—元中的比較é‹ç®—å¼å‰å¾ŒåŠ ä¸Šæ‹¬è™Ÿ"
+
+#: c-typeck.c:2543
+#, gcc-internal-format
+msgid "suggest parentheses around + or - in operand of &"
+msgstr "建議在 | çš„é‹ç®—元中的算術é‹ç®—å¼å‘¨åœåŠ ä¸Šæ‹¬è™Ÿ"
+
+#: c-typeck.c:2548
+#, gcc-internal-format
+msgid "suggest parentheses around comparison in operand of &"
+msgstr "建議在 & çš„é‹ç®—元中出ç¾çš„ + 或 - å‰å¾ŒåŠ ä¸Šæ‹¬è™Ÿ"
+
+#: c-typeck.c:2554
+#, gcc-internal-format
+msgid "comparisons like X<=Y<=Z do not have their mathematical meaning"
+msgstr "形如 X<=Y<=Z 的比較並ä¸å…·å‚™å…¶åœ¨æ•¸å­¸ä¸Šçš„æ„義"
+
+#: c-typeck.c:2581
+#, gcc-internal-format
+msgid "pointer of type %<void *%> used in subtraction"
+msgstr "在減法中使用類型為 %<void *%> 的指標"
+
+#: c-typeck.c:2583
+#, gcc-internal-format
+msgid "pointer to a function used in subtraction"
+msgstr "函å¼æŒ‡æ¨™ä¸èƒ½ç›¸æ¸›"
+
+#: c-typeck.c:2680
+#, gcc-internal-format
+msgid "wrong type argument to unary plus"
+msgstr "å–®ä½å…ƒåŠ çš„é‹ç®—元類型錯誤"
+
+#: c-typeck.c:2693
+#, gcc-internal-format
+msgid "wrong type argument to unary minus"
+msgstr "å–®ä½å…ƒæ¸›çš„é‹ç®—元類型錯誤"
+
+#: c-typeck.c:2710
+#, gcc-internal-format
+msgid "ISO C does not support %<~%> for complex conjugation"
+msgstr "ISO C ä¸æ”¯æ´ç”¨ ~ 求共軛複數"
+
+#: c-typeck.c:2716
+#, gcc-internal-format
+msgid "wrong type argument to bit-complement"
+msgstr "按ä½å–å的引數類型錯誤"
+
+#: c-typeck.c:2724
+#, gcc-internal-format
+msgid "wrong type argument to abs"
+msgstr "ä¸èƒ½å°è©²é¡žåž‹çš„引數求絕å°å€¼"
+
+#: c-typeck.c:2736
+#, gcc-internal-format
+msgid "wrong type argument to conjugation"
+msgstr "ä¸èƒ½å°è©²é¡žåž‹çš„引數求共軛"
+
+#: c-typeck.c:2748
+#, gcc-internal-format
+msgid "wrong type argument to unary exclamation mark"
+msgstr "å–®ä½å…ƒ ! 的引數類型無效"
+
+#: c-typeck.c:2785
+#, gcc-internal-format
+msgid "ISO C does not support %<++%> and %<--%> on complex types"
+msgstr "ISO C ä¸æ”¯æ´å°è¤‡æ•¸é¡žåž‹é€²è¡Œ %<++%> 或 %<--%> 作業"
+
+#: c-typeck.c:2801 c-typeck.c:2833
+#, gcc-internal-format
+msgid "wrong type argument to increment"
+msgstr "該類型的引數ä¸èƒ½è‡ªå¢ž"
+
+#: c-typeck.c:2803 c-typeck.c:2835
+#, gcc-internal-format
+msgid "wrong type argument to decrement"
+msgstr "該類型的引數ä¸èƒ½è‡ªæ¸›"
+
+#: c-typeck.c:2824
+#, gcc-internal-format
+msgid "increment of pointer to unknown structure"
+msgstr "自增åƒç…§ä¸æ˜Žçµæ§‹çš„指標"
+
+#: c-typeck.c:2826
+#, gcc-internal-format
+msgid "decrement of pointer to unknown structure"
+msgstr "自減åƒç…§ä¸æ˜Žçµæ§‹çš„指標"
+
+#: c-typeck.c:3003
+#, gcc-internal-format
+msgid "assignment of read-only member %qD"
+msgstr "å‘唯讀æˆå“¡ %qD 賦值"
+
+#: c-typeck.c:3004
+#, gcc-internal-format
+msgid "increment of read-only member %qD"
+msgstr "令唯讀æˆå“¡ %qD 自增"
+
+#: c-typeck.c:3005
+#, gcc-internal-format
+msgid "decrement of read-only member %qD"
+msgstr "令唯讀æˆå“¡ %qD 自減"
+
+#: c-typeck.c:3006
+#, gcc-internal-format
+msgid "read-only member %qD used as %<asm%> output"
+msgstr "唯讀æˆå“¡ %qD åšç‚º %<asm%> 的輸出"
+
+#: c-typeck.c:3010
+#, gcc-internal-format
+msgid "assignment of read-only variable %qD"
+msgstr "å‘唯讀變數 %qD 賦值"
+
+#: c-typeck.c:3011
+#, gcc-internal-format
+msgid "increment of read-only variable %qD"
+msgstr "令唯讀變數 %qD 自增"
+
+#: c-typeck.c:3012
+#, gcc-internal-format
+msgid "decrement of read-only variable %qD"
+msgstr "令唯讀æˆå“¡ %qD 自增"
+
+#: c-typeck.c:3013
+#, gcc-internal-format
+msgid "read-only variable %qD used as %<asm%> output"
+msgstr "唯讀變數 %qD åšç‚º %<asm%> 的輸出"
+
+#: c-typeck.c:3016
+#, gcc-internal-format
+msgid "assignment of read-only location"
+msgstr "å‘唯讀ä½ç½®è³¦å€¼"
+
+#: c-typeck.c:3017
+#, gcc-internal-format
+msgid "increment of read-only location"
+msgstr "令唯讀ä½ç½®è‡ªå¢ž"
+
+#: c-typeck.c:3018
+#, gcc-internal-format
+msgid "decrement of read-only location"
+msgstr "令唯讀ä½ç½®è‡ªæ¸›"
+
+#: c-typeck.c:3019
+#, gcc-internal-format
+msgid "read-only location used as %<asm%> output"
+msgstr "唯讀ä½ç½®åšç‚º %<asm%> 的輸出"
+
+#: c-typeck.c:3054
+#, gcc-internal-format
+msgid "cannot take address of bit-field %qD"
+msgstr "無法å–å¾—ä½å…ƒæ®µ %qD çš„ä½å€"
+
+#: c-typeck.c:3082
+#, gcc-internal-format
+msgid "global register variable %qD used in nested function"
+msgstr "巢狀函å¼ä¸­ä½¿ç”¨äº†å…¨åŸŸæš«å­˜å™¨è®Šæ•¸ %qD"
+
+#: c-typeck.c:3085
+#, gcc-internal-format
+msgid "register variable %qD used in nested function"
+msgstr "巢狀函å¼ä¸­ä½¿ç”¨äº†æš«å­˜å™¨è®Šæ•¸ %qD"
+
+#: c-typeck.c:3090
+#, gcc-internal-format
+msgid "address of global register variable %qD requested"
+msgstr "è¦æ±‚全域暫存器變數 %qD çš„ä½å€"
+
+#: c-typeck.c:3092
+#, gcc-internal-format
+msgid "address of register variable %qD requested"
+msgstr "è¦æ±‚暫存器變數 %qD çš„ä½å€ã€‚"
+
+#: c-typeck.c:3138
+#, gcc-internal-format
+msgid "non-lvalue array in conditional expression"
+msgstr "éžå·¦å€¼é™£åˆ—出ç¾åœ¨æ¢ä»¶é‹ç®—å¼ä¸­"
+
+#: c-typeck.c:3182
+#, gcc-internal-format
+msgid "signed and unsigned type in conditional expression"
+msgstr "有號和無號類型一起出ç¾åœ¨æ¢ä»¶é‹ç®—å¼ä¸­"
+
+#: c-typeck.c:3189
+#, gcc-internal-format
+msgid "ISO C forbids conditional expr with only one void side"
+msgstr "ISO C ä¸å…許æ¢ä»¶é‹ç®—å¼åƒ…有一邊為空"
+
+#: c-typeck.c:3205 c-typeck.c:3213
+#, gcc-internal-format
+msgid "ISO C forbids conditional expr between %<void *%> and function pointer"
+msgstr "ISO C ä¸å…許在æ¢ä»¶é‹ç®—å¼ä¸­åŒæ™‚使用 %<void *%> 和函å¼æŒ‡æ¨™"
+
+#: c-typeck.c:3220
+#, gcc-internal-format
+msgid "pointer type mismatch in conditional expression"
+msgstr "æ¢ä»¶é‹ç®—å¼æŒ‡æ¨™é¡žåž‹ä¸åŒ¹é…"
+
+#: c-typeck.c:3227 c-typeck.c:3237
+#, gcc-internal-format
+msgid "pointer/integer type mismatch in conditional expression"
+msgstr "æ¢ä»¶é‹ç®—å¼ä¸­æŒ‡æ¨™/整數類型ä¸åŒ¹é…"
+
+#: c-typeck.c:3251
+#, gcc-internal-format
+msgid "type mismatch in conditional expression"
+msgstr "æ¢ä»¶é‹ç®—å¼ä¸­é¡žåž‹ä¸åŒ¹é…"
+
+#: c-typeck.c:3291
+#, gcc-internal-format
+msgid "left-hand operand of comma expression has no effect"
+msgstr "逗號é‹ç®—å¼çš„å·¦é‹ç®—å…ƒä¸èµ·ä½œç”¨"
+
+#: c-typeck.c:3325
+#, gcc-internal-format
+msgid "cast specifies array type"
+msgstr "類型轉æ›æŒ‡å®šäº†é™£åˆ—é¡žåž‹"
+
+#: c-typeck.c:3331
+#, gcc-internal-format
+msgid "cast specifies function type"
+msgstr "類型轉æ›æŒ‡å®šäº†å‡½å¼é¡žåž‹"
+
+#: c-typeck.c:3341
+#, gcc-internal-format
+msgid "ISO C forbids casting nonscalar to the same type"
+msgstr "ISO C ä¸å…許將éžæ¨™é‡è½‰æ›ç‚ºå…¶è‡ªèº«é¡žåž‹"
+
+#: c-typeck.c:3358
+#, gcc-internal-format
+msgid "ISO C forbids casts to union type"
+msgstr "ISO C ä¸å…許轉æ›ç‚ºè¯åˆé¡žåž‹"
+
+#: c-typeck.c:3366
+#, gcc-internal-format
+msgid "cast to union type from type not present in union"
+msgstr "類型轉æ›çš„來æºé¡žåž‹æœªå‡ºç¾åœ¨è¯åˆä¸­"
+
+#: c-typeck.c:3412
+#, gcc-internal-format
+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:3417
+#, gcc-internal-format
+msgid "cast discards qualifiers from pointer target type"
+msgstr "類型轉æ›ä¸Ÿæ£„了指標目的類型的é™å®š"
+
+#: c-typeck.c:3433
+#, gcc-internal-format
+msgid "cast increases required alignment of target type"
+msgstr "類型轉æ›å¢žå¤§äº†ç›®çš„é¡žåž‹çš„å°é½Šéœ€æ±‚"
+
+#: c-typeck.c:3440
+#, gcc-internal-format
+msgid "cast from pointer to integer of different size"
+msgstr "當將一個指標轉æ›ç‚ºå¤§å°ä¸åŒçš„整數時給出警告"
+
+#: c-typeck.c:3444
+#, gcc-internal-format
+msgid "cast from function call of type %qT to non-matching type %qT"
+msgstr "從類型為 %qT 的函å¼å‘¼å«è½‰æ›åˆ°ä¸åŒ¹é…çš„é¡žåž‹ %qT"
+
+#: c-typeck.c:3452
+#, gcc-internal-format
+msgid "cast to pointer from integer of different size"
+msgstr "當將一個指標轉æ›ç‚ºå¤§å°ä¸åŒçš„整數時給出警告"
+
+#: c-typeck.c:3465
+#, gcc-internal-format
+msgid "ISO C forbids conversion of function pointer to object pointer type"
+msgstr "ISO C ä¸å…許將一個函å¼æŒ‡æ¨™è½‰æ›ç‚ºä¸€å€‹ç‰©ä»¶æŒ‡æ¨™"
+
+#: c-typeck.c:3474
+#, gcc-internal-format
+msgid "ISO C forbids conversion of object pointer to function pointer type"
+msgstr "ISO C ä¸å…許將一個物件指標轉æ›ç‚ºä¸€å€‹å‡½å¼æŒ‡æ¨™"
+
+#: c-typeck.c:3748
+#, gcc-internal-format
+msgid "cannot pass rvalue to reference parameter"
+msgstr "ä¸èƒ½å°‡å³å€¼å‚³éžçµ¦åƒç…§åƒæ•¸"
+
+#: c-typeck.c:3855 c-typeck.c:4023
+#, gcc-internal-format
+msgid "passing argument %d of %qE makes qualified function pointer from unqualified"
+msgstr "傳éžå¼•æ•¸ %d(屬於 %qE)從未é™å®šçš„函å¼æŒ‡æ¨™å»ºæ§‹äº†é™å®šçš„函å¼æŒ‡æ¨™"
+
+#: c-typeck.c:3858 c-typeck.c:4026
+#, gcc-internal-format
+msgid "assignment makes qualified function pointer from unqualified"
+msgstr "將未é™å®šçš„函å¼æŒ‡æ¨™è³¦äºˆé™å®šçš„函å¼æŒ‡æ¨™"
+
+#: c-typeck.c:3861 c-typeck.c:4028
+#, gcc-internal-format
+msgid "initialization makes qualified function pointer from unqualified"
+msgstr "回傳時將未é™å®šçš„函å¼æŒ‡æ¨™è³¦çµ¦é™å®šçš„函å¼æŒ‡æ¨™"
+
+#: c-typeck.c:3864 c-typeck.c:4030
+#, gcc-internal-format
+msgid "return makes qualified function pointer from unqualified"
+msgstr "回傳時將未é™å®šçš„函å¼æŒ‡æ¨™è³¦çµ¦é™å®šçš„函å¼æŒ‡æ¨™"
+
+#: c-typeck.c:3868 c-typeck.c:3990
+#, gcc-internal-format
+msgid "passing argument %d of %qE discards qualifiers from pointer target type"
+msgstr "傳éžå¼•æ•¸ %d(屬於 %qE)丟棄了指標目的類型的é™å®š"
+
+#: c-typeck.c:3870 c-typeck.c:3992
+#, gcc-internal-format
+msgid "assignment discards qualifiers from pointer target type"
+msgstr "賦值丟棄了指標目的類型的é™å®š"
+
+#: c-typeck.c:3872 c-typeck.c:3994
+#, gcc-internal-format
+msgid "initialization discards qualifiers from pointer target type"
+msgstr "åˆå§‹åŒ–丟棄了指標目的類型的é™å®š"
+
+#: c-typeck.c:3874 c-typeck.c:3996
+#, gcc-internal-format
+msgid "return discards qualifiers from pointer target type"
+msgstr "回傳時丟棄了指標目的類型的é™å®š"
+
+#: c-typeck.c:3881
+#, gcc-internal-format
+msgid "ISO C prohibits argument conversion to union type"
+msgstr "ISO C ä¸å…許將引數轉æ›ç‚ºè¯åˆ"
+
+#: c-typeck.c:3916
+#, gcc-internal-format
+msgid "request for implicit conversion from %qT to %qT not permitted in C++"
+msgstr "C++ 中ä¸å…許從 %qT 到 %qT çš„éš±å«è½‰æ›"
+
+#: c-typeck.c:3929
+#, gcc-internal-format
+msgid "argument %d of %qE might be a candidate for a format attribute"
+msgstr "引數 %d(屬於 %qE)å¯èƒ½æ˜¯ format 屬性的備é¸"
+
+#: c-typeck.c:3935
+#, gcc-internal-format
+msgid "assignment left-hand side might be a candidate for a format attribute"
+msgstr "賦值的左手邊å¯èƒ½æ˜¯ format 屬性的備é¸æ™‚"
+
+#: c-typeck.c:3940
+#, gcc-internal-format
+msgid "initialization left-hand side might be a candidate for a format attribute"
+msgstr "åˆå§‹åŒ–的左手邊å¯èƒ½æ˜¯ format 屬性的備é¸æ™‚"
+
+#: c-typeck.c:3945
+#, gcc-internal-format
+msgid "return type might be a candidate for a format attribute"
+msgstr "回傳類型å¯èƒ½æ˜¯ format 屬性的備é¸"
+
+#: c-typeck.c:3970
+#, gcc-internal-format
+msgid "ISO C forbids passing argument %d of %qE between function pointer and %<void *%>"
+msgstr "ISO C ä¸å…許將引數 %d(屬於 %qE)在函å¼æŒ‡æ¨™å’Œ %<void *%> 間傳éž"
+
+#: c-typeck.c:3973
+#, gcc-internal-format
+msgid "ISO C forbids assignment between function pointer and %<void *%>"
+msgstr "ISO C ä¸å…許在函å¼æŒ‡æ¨™å’Œ %<void *%> 間賦值"
+
+#: c-typeck.c:3975
+#, gcc-internal-format
+msgid "ISO C forbids initialization between function pointer and %<void *%>"
+msgstr "ISO C ä¸å…許在函å¼æŒ‡æ¨™å’Œ %<void *%> é–“åˆå§‹åŒ–"
+
+#: c-typeck.c:3977
+#, gcc-internal-format
+msgid "ISO C forbids return between function pointer and %<void *%>"
+msgstr "ISO C ä¸å…許在函å¼æŒ‡æ¨™å’Œ %<void *%> 間回傳"
+
+#: c-typeck.c:4006
+#, gcc-internal-format
+msgid "pointer targets in passing argument %d of %qE differ in signedness"
+msgstr "傳éžåƒæ•¸ %d (屬於 %qE) 給指標時目的與指標有/無號ä¸ä¸€è‡´"
+
+#: c-typeck.c:4008
+#, gcc-internal-format
+msgid "pointer targets in assignment differ in signedness"
+msgstr "å°æŒ‡æ¨™è³¦å€¼æ™‚目的與指標有/無號ä¸ä¸€è‡´"
+
+#: c-typeck.c:4010
+#, gcc-internal-format
+msgid "pointer targets in initialization differ in signedness"
+msgstr "åˆå§‹åŒ–指標時目的與指標有/無號ä¸ä¸€è‡´"
+
+#: c-typeck.c:4012
+#, gcc-internal-format
+msgid "pointer targets in return differ in signedness"
+msgstr "回傳指標時目的與指標有/無號ä¸ä¸€è‡´"
+
+#: c-typeck.c:4037
+#, gcc-internal-format
+msgid "passing argument %d of %qE from incompatible pointer type"
+msgstr "傳éžåƒæ•¸ %d (屬於 %qE)時在ä¸ç›¸å®¹çš„指標類型間轉æ›"
+
+#: c-typeck.c:4039
+#, gcc-internal-format
+msgid "assignment from incompatible pointer type"
+msgstr "æ°¸é ä¸ç›¸å®¹çš„指標類型賦值"
+
+#: c-typeck.c:4040
+#, gcc-internal-format
+msgid "initialization from incompatible pointer type"
+msgstr "æ°¸é ä¸ç›¸å®¹çš„指標類型åˆå§‹åŒ–"
+
+#: c-typeck.c:4042
+#, gcc-internal-format
+msgid "return from incompatible pointer type"
+msgstr "回傳了ä¸ç›¸å®¹çš„指標類型"
+
+#: c-typeck.c:4064
+#, gcc-internal-format
+msgid "passing argument %d of %qE makes pointer from integer without a cast"
+msgstr "傳éžåƒæ•¸ %d (屬於 %qE)時將整數賦給指標,未作類型轉æ›"
+
+#: c-typeck.c:4066
+#, gcc-internal-format
+msgid "assignment makes pointer from integer without a cast"
+msgstr "賦值時將整數賦給指標,未作類型轉æ›"
+
+#: c-typeck.c:4068
+#, gcc-internal-format
+msgid "initialization makes pointer from integer without a cast"
+msgstr "åˆå§‹åŒ–時將整數賦給指標,未作類型轉æ›"
+
+#: c-typeck.c:4070
+#, gcc-internal-format
+msgid "return makes pointer from integer without a cast"
+msgstr "回傳時將整數賦給指標,未作類型轉æ›"
+
+#: c-typeck.c:4077
+#, gcc-internal-format
+msgid "passing argument %d of %qE makes integer from pointer without a cast"
+msgstr "傳éžåƒæ•¸ %d (屬於 %qE)時將指標賦給整數,未作類型轉æ›"
+
+#: c-typeck.c:4079
+#, gcc-internal-format
+msgid "assignment makes integer from pointer without a cast"
+msgstr "賦值時將指標賦給整數,未作類型轉æ›"
+
+#: c-typeck.c:4081
+#, gcc-internal-format
+msgid "initialization makes integer from pointer without a cast"
+msgstr "åˆå§‹åŒ–將指標賦給整數,未作類型轉æ›"
+
+#: c-typeck.c:4083
+#, gcc-internal-format
+msgid "return makes integer from pointer without a cast"
+msgstr "回傳時將指標賦給整數,未作類型轉æ›"
+
+#: c-typeck.c:4099
+#, gcc-internal-format
+msgid "incompatible types in assignment"
+msgstr "賦值時類型ä¸ç›¸å®¹"
+
+#: c-typeck.c:4102
+#, gcc-internal-format
+msgid "incompatible types in initialization"
+msgstr "åˆå§‹åŒ–時類型ä¸ç›¸å®¹"
+
+#: c-typeck.c:4105
+#, gcc-internal-format
+msgid "incompatible types in return"
+msgstr "回傳時類型ä¸ç›¸å®¹"
+
+#: c-typeck.c:4186
+#, gcc-internal-format
+msgid "traditional C rejects automatic aggregate initialization"
+msgstr "傳統 C ä¸æŽ¥å—自動的èšåˆåˆå§‹åŒ–"
+
+#: c-typeck.c:4354 c-typeck.c:4369 c-typeck.c:4384
+#, gcc-internal-format
+msgid "(near initialization for %qs)"
+msgstr "(在 %qs çš„åˆå§‹åŒ–附近)"
+
+#: c-typeck.c:4921 cp/decl.c:4603
+#, gcc-internal-format
+msgid "opaque vector types cannot be initialized"
+msgstr "ä¸é€æ˜Žçš„å‘é‡é¡žåž‹ä¸èƒ½è¢«åˆå§‹åŒ–"
+
+#: c-typeck.c:5551
+#, gcc-internal-format
+msgid "unknown field %qE specified in initializer"
+msgstr "åˆå§‹å€¼è¨­å®šé …裡有ä¸æ˜Žçš„æ¬„ä½ %qE"
+
+#: c-typeck.c:6445
+#, gcc-internal-format
+msgid "traditional C rejects initialization of unions"
+msgstr "傳統 C ä¸æŽ¥å—å°è¯åˆçš„åˆå§‹åŒ–"
+
+#: c-typeck.c:6753
+#, gcc-internal-format
+msgid "jump into statement expression"
+msgstr "跳轉至敘述é‹ç®—å¼ä¸­"
+
+#: c-typeck.c:6759
+#, gcc-internal-format
+msgid "jump into scope of identifier with variably modified type"
+msgstr "跳至具有å¯è®Šé¡žåž‹çš„識別碼的作用欄ä½ä¸­"
+
+#: c-typeck.c:6796
+#, gcc-internal-format
+msgid "ISO C forbids %<goto *expr;%>"
+msgstr "ISO C++ ä¸å…許 %<goto *expr;%>"
+
+#: c-typeck.c:6811 cp/typeck.c:6259
+#, gcc-internal-format
+msgid "function declared %<noreturn%> has a %<return%> statement"
+msgstr "被宣告為 %<noreturn%> 的函å¼å»æœ‰ %<return%> 敘述"
+
+#: c-typeck.c:6819
+#, gcc-internal-format
+msgid "%<return%> with no value, in function returning non-void"
+msgstr "在有回傳值的的函å¼ä¸­ï¼Œ%<return%> ä¸å¸¶å›žå‚³å€¼"
+
+#: c-typeck.c:6828
+#, gcc-internal-format
+msgid "%<return%> with a value, in function returning void"
+msgstr "在無回傳值的函å¼ä¸­ï¼Œ%<return%> 帶回傳值"
+
+#: c-typeck.c:6885
+#, gcc-internal-format
+msgid "function returns address of local variable"
+msgstr "函å¼å›žå‚³å±€éƒ¨è®Šæ•¸çš„ä½å€"
+
+#: c-typeck.c:6958 cp/semantics.c:908
+#, gcc-internal-format
+msgid "switch quantity not an integer"
+msgstr "switch 敘述中的值ä¸æ˜¯ä¸€å€‹æ•´æ•¸"
+
+#: c-typeck.c:6969
+#, gcc-internal-format
+msgid "%<long%> switch expression not converted to %<int%> in ISO C"
+msgstr "在 ISO C 中,%<long%> é–‹é—œé‹ç®—å¼ä¸è¢«è½‰æ›ç‚º %<int%>"
+
+#: c-typeck.c:7010
+#, gcc-internal-format
+msgid "case label in statement expression not containing enclosing switch statement"
+msgstr "case 標籤出ç¾åœ¨æ²’有 switch 敘述的敘述é‹ç®—å¼ä¸­"
+
+#: c-typeck.c:7013
+#, gcc-internal-format
+msgid "%<default%> label in statement expression not containing enclosing switch statement"
+msgstr "%<default%> 標籤出ç¾åœ¨æ²’有相應 switch 敘述的敘述é‹ç®—å¼ä¸­"
+
+#: c-typeck.c:7019
+#, gcc-internal-format
+msgid "case label in scope of identifier with variably modified type not containing enclosing switch statement"
+msgstr "case 標籤出ç¾åœ¨æ²’有包å«çš„ switch 敘述的å¯è®Šé¡žåž‹è­˜åˆ¥ç¢¼ä½œç”¨æ¬„ä½ä¸­"
+
+#: c-typeck.c:7022
+#, gcc-internal-format
+msgid "%<default%> label in scope of identifier with variably modified type not containing enclosing switch statement"
+msgstr "%<default%> 標籤出ç¾åœ¨æ²’有包å«çš„ switch 敘述的å¯è®Šé¡žåž‹è­˜åˆ¥ç¢¼çš„作用欄ä½ä¸­"
+
+#: c-typeck.c:7026 cp/parser.c:6205
+#, gcc-internal-format
+msgid "case label not within a switch statement"
+msgstr "case 標籤出ç¾åœ¨é–‹é—œæ•˜è¿°å¤–"
+
+#: c-typeck.c:7028
+#, gcc-internal-format
+msgid "%<default%> label not within a switch statement"
+msgstr "%<default%> 標籤未出ç¾åœ¨ switch 敘述內"
+
+#: c-typeck.c:7105
+#, gcc-internal-format
+msgid "%Hsuggest explicit braces to avoid ambiguous %<else%>"
+msgstr "%H建議明確地使用大括號以é¿å…出ç¾æœ‰æ­§ç¾©çš„ %<else%>"
+
+#: c-typeck.c:7124
+#, gcc-internal-format
+msgid "%Hempty body in an if-statement"
+msgstr "%Hif 敘述體為空"
+
+#: c-typeck.c:7133
+#, gcc-internal-format
+msgid "%Hempty body in an else-statement"
+msgstr "%Helse 敘述體為空"
+
+#: c-typeck.c:7242 cp/cp-gimplify.c:118 cp/parser.c:6702
+#, gcc-internal-format
+msgid "break statement not within loop or switch"
+msgstr "break 敘述ä¸åœ¨å¾ªç’°æˆ–開關敘述內"
+
+#: c-typeck.c:7244 cp/parser.c:6713
+#, gcc-internal-format
+msgid "continue statement not within a loop"
+msgstr "continue 敘述出ç¾åœ¨å¾ªç’°ä»¥å¤–"
+
+#: c-typeck.c:7264
+#, gcc-internal-format
+msgid "%Hstatement with no effect"
+msgstr "%H敘述ä¸èµ·ä½œç”¨"
+
+#: c-typeck.c:7286
+#, gcc-internal-format
+msgid "expression statement has incomplete type"
+msgstr "é‹ç®—å¼æ•˜è¿°é¡žåž‹ä¸å®Œå…¨"
+
+#: c-typeck.c:7744 c-typeck.c:7785
+#, gcc-internal-format
+msgid "division by zero"
+msgstr "被零除"
+
+#: c-typeck.c:7830 cp/typeck.c:3037
+#, gcc-internal-format
+msgid "right shift count is negative"
+msgstr "å³ç§»æ¬¡æ•¸ç‚ºè² "
+
+#: c-typeck.c:7837 cp/typeck.c:3043
+#, gcc-internal-format
+msgid "right shift count >= width of type"
+msgstr "å³ç§»æ¬¡æ•¸å¤§æ–¼æˆ–等於類型寬度"
+
+#: c-typeck.c:7858 cp/typeck.c:3062
+#, gcc-internal-format
+msgid "left shift count is negative"
+msgstr "左移次數為負"
+
+#: c-typeck.c:7861 cp/typeck.c:3064
+#, gcc-internal-format
+msgid "left shift count >= width of type"
+msgstr "左移次數大於或等於類型寬度"
+
+#: c-typeck.c:7879 cp/typeck.c:3099
+#, gcc-internal-format
+msgid "comparing floating point with == or != is unsafe"
+msgstr "使用 == 或 != 比較浮點數是ä¸å®‰å…¨çš„"
+
+#: c-typeck.c:7903 c-typeck.c:7910
+#, gcc-internal-format
+msgid "ISO C forbids comparison of %<void *%> with function pointer"
+msgstr "ISO C ä¸å…許在 %<void *%> 和函å¼æŒ‡æ¨™é–“比較"
+
+#: c-typeck.c:7916 c-typeck.c:7962
+#, gcc-internal-format
+msgid "comparison of distinct pointer types lacks a cast"
+msgstr "比較ä¸ç›¸é—œçš„指標時缺少類型轉æ›"
+
+#: c-typeck.c:7930 c-typeck.c:7935 c-typeck.c:7982 c-typeck.c:7987
+#, gcc-internal-format
+msgid "comparison between pointer and integer"
+msgstr "比較指標和整數"
+
+#: c-typeck.c:7954
+#, gcc-internal-format
+msgid "comparison of complete and incomplete pointers"
+msgstr "在完全和ä¸å®Œå…¨æŒ‡æ¨™é–“比較"
+
+#: c-typeck.c:7957
+#, gcc-internal-format
+msgid "ISO C forbids ordered comparisons of pointers to functions"
+msgstr "ISO C ä¸å…許函å¼æŒ‡æ¨™é–“比較大å°"
+
+#: c-typeck.c:7970 c-typeck.c:7977
+#, gcc-internal-format
+msgid "ordered comparison of pointer with integer zero"
+msgstr "指標與整數 0 比較大å°"
+
+#: c-typeck.c:8207
+#, gcc-internal-format
+msgid "comparison between signed and unsigned"
+msgstr "比較有號和無號數"
+
+#: c-typeck.c:8253 cp/typeck.c:3522
+#, gcc-internal-format
+msgid "comparison of promoted ~unsigned with constant"
+msgstr "比較常數和å–å後åˆç¶“æå‡çš„無號數"
+
+#: c-typeck.c:8261 cp/typeck.c:3530
+#, gcc-internal-format
+msgid "comparison of promoted ~unsigned with unsigned"
+msgstr "比較無號數和å–å後åˆç¶“æå‡çš„無號數"
+
+#: c-typeck.c:8319
+#, gcc-internal-format
+msgid "used array that cannot be converted to pointer where scalar is required"
+msgstr "需è¦æ¨™é‡æ™‚使用了ä¸èƒ½è¢«è½‰æ›ç‚ºæŒ‡æ¨™çš„陣列"
+
+#: c-typeck.c:8323
+#, gcc-internal-format
+msgid "used struct type value where scalar is required"
+msgstr "需è¦æ¨™é‡æ™‚使用了çµæ§‹é¡žåž‹"
+
+#: c-typeck.c:8327
+#, gcc-internal-format
+msgid "used union type value where scalar is required"
+msgstr "需è¦æ¨™é‡æ™‚使用了è¯åˆé¡žåž‹"
+
+#: calls.c:1929
+#, gcc-internal-format
+msgid "function call has aggregate value"
+msgstr "函å¼å‘¼å«æœ‰èšåˆé¡žåž‹"
+
+#: cfgexpand.c:1597
+#, gcc-internal-format
+msgid "not protecting local variables: variable length buffer"
+msgstr "沒有ä¿è­·å±€éƒ¨è®Šæ•¸ï¼šå¯è®Šé•·åº¦çš„ç·©è¡å€"
+
+#: cfgexpand.c:1599
+#, gcc-internal-format
+msgid "not protecting function: no buffer at least %d bytes long"
+msgstr "沒有ä¿è­·å‡½å¼ï¼šæ²’有至少有 %d ä½å…ƒçµ„é•·çš„ç·©è¡å€"
+
+#: cfghooks.c:90
+#, gcc-internal-format
+msgid "bb %d on wrong place"
+msgstr "基本å€å¡Š %d ä½ç½®ä¸æ­£ç¢º"
+
+#: cfghooks.c:96
+#, gcc-internal-format
+msgid "prev_bb of %d should be %d, not %d"
+msgstr "%d çš„ prev_bb 應該為 %d,而ä¸æ˜¯ %d"
+
+#: cfghooks.c:113
+#, gcc-internal-format
+msgid "verify_flow_info: Wrong count of block %i %i"
+msgstr "verify_flow_info:塊 %i %i 計數錯"
+
+#: cfghooks.c:119
+#, gcc-internal-format
+msgid "verify_flow_info: Wrong frequency of block %i %i"
+msgstr "verify_flow_info:塊 %i %i 頻率錯"
+
+#: cfghooks.c:127
+#, gcc-internal-format
+msgid "verify_flow_info: Duplicate edge %i->%i"
+msgstr "verify_flow_info:é‡è¤‡çš„é‚Š %i->%i"
+
+#: cfghooks.c:133
+#, gcc-internal-format
+msgid "verify_flow_info: Wrong probability of edge %i->%i %i"
+msgstr "verify_flow_info:邊 %i->%i %i 概率錯"
+
+#: cfghooks.c:139
+#, gcc-internal-format
+msgid "verify_flow_info: Wrong count of edge %i->%i %i"
+msgstr "verify_flow_info:邊 %i->%i %i 計數錯"
+
+#: cfghooks.c:151
+#, gcc-internal-format
+msgid "verify_flow_info: Basic block %d succ edge is corrupted"
+msgstr ""
+
+#: cfghooks.c:165 cfgrtl.c:2045
+#, gcc-internal-format
+msgid "wrong amount of branch edges after unconditional jump %i"
+msgstr "éžæ¢ä»¶è·³è½‰ %i 之後的分支邊數ä¸æ­£ç¢º"
+
+#: cfghooks.c:173 cfghooks.c:184
+#, gcc-internal-format
+msgid "basic block %d pred edge is corrupted"
+msgstr ""
+
+#: cfghooks.c:185
+#, gcc-internal-format
+msgid "its dest_idx should be %d, not %d"
+msgstr "它的 dest_idx 應當是 %d 而ä¸æ˜¯ %d"
+
+#: cfghooks.c:214
+#, gcc-internal-format
+msgid "basic block %i edge lists are corrupted"
+msgstr ""
+
+#: cfghooks.c:227
+#, gcc-internal-format
+msgid "verify_flow_info failed"
+msgstr "verify_flow_info 失敗"
+
+#: cfghooks.c:288
+#, gcc-internal-format
+msgid "%s does not support redirect_edge_and_branch"
+msgstr "%s ä¸æ”¯æ´ redirect_edge_and_branch"
+
+#: cfghooks.c:306
+#, gcc-internal-format
+msgid "%s does not support redirect_edge_and_branch_force"
+msgstr "%s ä¸æ”¯æ´ redirect_edge_and_branch_force"
+
+#: cfghooks.c:324
+#, gcc-internal-format
+msgid "%s does not support split_block"
+msgstr "%s ä¸æ”¯æ´ split_block"
+
+#: cfghooks.c:360
+#, gcc-internal-format
+msgid "%s does not support move_block_after"
+msgstr "%s ä¸æ”¯æ´t move_block_after"
+
+#: cfghooks.c:373
+#, gcc-internal-format
+msgid "%s does not support delete_basic_block"
+msgstr "%s ä¸æ”¯æ´ delete_basic_block"
+
+#: cfghooks.c:405
+#, gcc-internal-format
+msgid "%s does not support split_edge"
+msgstr "%s ä¸æ”¯æ´ split_edge"
+
+#: cfghooks.c:466
+#, gcc-internal-format
+msgid "%s does not support create_basic_block"
+msgstr "%s ä¸æ”¯æ´ create_basic_block"
+
+#: cfghooks.c:494
+#, gcc-internal-format
+msgid "%s does not support can_merge_blocks_p"
+msgstr "%s ä¸æ”¯æ´ can_merge_blocks_p"
+
+#: cfghooks.c:505
+#, gcc-internal-format
+msgid "%s does not support predict_edge"
+msgstr "%s ä¸æ”¯æ´ predict_edge"
+
+#: cfghooks.c:514
+#, gcc-internal-format
+msgid "%s does not support predicted_by_p"
+msgstr "%s ä¸æ”¯æ´ predicted_by_p"
+
+#: cfghooks.c:528
+#, gcc-internal-format
+msgid "%s does not support merge_blocks"
+msgstr "%s ä¸æ”¯æ´ merge_blocks"
+
+#: cfghooks.c:573
+#, gcc-internal-format
+msgid "%s does not support make_forwarder_block"
+msgstr "%s ä¸æ”¯æ´ make_forwarder_block"
+
+#: cfghooks.c:678
+#, gcc-internal-format
+msgid "%s does not support can_duplicate_block_p"
+msgstr "%s ä¸æ”¯æ´ can_duplicate_block_p"
+
+#: cfghooks.c:706
+#, gcc-internal-format
+msgid "%s does not support duplicate_block"
+msgstr "%s ä¸æ”¯æ´ duplicate_block"
+
+#: cfghooks.c:774
+#, gcc-internal-format
+msgid "%s does not support block_ends_with_call_p"
+msgstr "%s ä¸æ”¯æ´ block_ends_with_call_p"
+
+#: cfghooks.c:785
+#, gcc-internal-format
+msgid "%s does not support block_ends_with_condjump_p"
+msgstr "%s ä¸æ”¯æ´ block_ends_with_condjump_p"
+
+#: cfghooks.c:803
+#, gcc-internal-format
+msgid "%s does not support flow_call_edges_add"
+msgstr "%s ä¸æ”¯æ´ flow_call_edges_add"
+
+#: cfgloop.c:1088
+#, gcc-internal-format
+msgid "size of loop %d should be %d, not %d"
+msgstr "循環 %d 的大å°æ‡‰è©²ç‚º %d,而ä¸æ˜¯%d"
+
+#: cfgloop.c:1105
+#, gcc-internal-format
+msgid "bb %d do not belong to loop %d"
+msgstr "基本å€å¡Š %d ä¸å±¬æ–¼å¾ªç’° %d"
+
+#: cfgloop.c:1122
+#, gcc-internal-format
+msgid "loop %d's header does not have exactly 2 entries"
+msgstr ""
+
+#: cfgloop.c:1129
+#, gcc-internal-format
+msgid "loop %d's latch does not have exactly 1 successor"
+msgstr ""
+
+#: cfgloop.c:1134
+#, gcc-internal-format
+msgid "loop %d's latch does not have header as successor"
+msgstr ""
+
+#: cfgloop.c:1139
+#, gcc-internal-format
+msgid "loop %d's latch does not belong directly to it"
+msgstr ""
+
+#: cfgloop.c:1145
+#, gcc-internal-format
+msgid "loop %d's header does not belong directly to it"
+msgstr ""
+
+#: cfgloop.c:1151
+#, gcc-internal-format
+msgid "loop %d's latch is marked as part of irreducible region"
+msgstr ""
+
+#: cfgloop.c:1184
+#, gcc-internal-format
+msgid "basic block %d should be marked irreducible"
+msgstr ""
+
+#: cfgloop.c:1190
+#, gcc-internal-format
+msgid "basic block %d should not be marked irreducible"
+msgstr ""
+
+#: cfgloop.c:1198
+#, gcc-internal-format
+msgid "edge from %d to %d should be marked irreducible"
+msgstr ""
+
+#: cfgloop.c:1205
+#, gcc-internal-format
+msgid "edge from %d to %d should not be marked irreducible"
+msgstr ""
+
+#: cfgloop.c:1240
+#, gcc-internal-format
+msgid "wrong single exit %d->%d recorded for loop %d"
+msgstr ""
+
+#: cfgloop.c:1244
+#, gcc-internal-format
+msgid "right exit is %d->%d"
+msgstr "å³é›¢é–‹ç‚º %d->%d"
+
+#: cfgloop.c:1261
+#, gcc-internal-format
+msgid "single exit not recorded for loop %d"
+msgstr ""
+
+#: cfgloop.c:1268
+#, gcc-internal-format
+msgid "loop %d should not have single exit (%d -> %d)"
+msgstr "循環 %d ä¸æ‡‰ç•¶åªæœ‰å–®ä¸€å‡ºå£ (%d -> %d)"
+
+#: cfgrtl.c:1931
+#, gcc-internal-format
+msgid "BB_RTL flag not set for block %d"
+msgstr ""
+
+#: cfgrtl.c:1937
+#, gcc-internal-format
+msgid "end insn %d for block %d not found in the insn stream"
+msgstr ""
+
+#: cfgrtl.c:1951
+#, gcc-internal-format
+msgid "insn %d is in multiple basic blocks (%d and %d)"
+msgstr ""
+
+#: cfgrtl.c:1963
+#, gcc-internal-format
+msgid "head insn %d for block %d not found in the insn stream"
+msgstr ""
+
+#: cfgrtl.c:1987
+#, gcc-internal-format
+msgid "verify_flow_info: REG_BR_PROB does not match cfg %wi %i"
+msgstr "verify_flow_info:REG_BR_PROB ä¸åŒ¹é… cfg %wi %i"
+
+#: cfgrtl.c:2002
+#, gcc-internal-format
+msgid "fallthru edge crosses section boundary (bb %i)"
+msgstr ""
+
+#: cfgrtl.c:2027
+#, gcc-internal-format
+msgid "missing REG_EH_REGION note in the end of bb %i"
+msgstr ""
+
+#: cfgrtl.c:2035
+#, gcc-internal-format
+msgid "too many outgoing branch edges from bb %i"
+msgstr ""
+
+#: cfgrtl.c:2040
+#, gcc-internal-format
+msgid "fallthru edge after unconditional jump %i"
+msgstr "éžæ¢ä»¶è·³è½‰ %i 之後的直通邊數"
+
+#: cfgrtl.c:2051
+#, gcc-internal-format
+msgid "wrong amount of branch edges after conditional jump %i"
+msgstr "æ¢ä»¶è·³è½‰ %i 之後的分支邊數ä¸æ­£ç¢º"
+
+#: cfgrtl.c:2057
+#, gcc-internal-format
+msgid "call edges for non-call insn in bb %i"
+msgstr ""
+
+#: cfgrtl.c:2066
+#, gcc-internal-format
+msgid "abnormal edges for no purpose in bb %i"
+msgstr ""
+
+#: cfgrtl.c:2078
+#, gcc-internal-format
+msgid "insn %d inside basic block %d but block_for_insn is NULL"
+msgstr ""
+
+#: cfgrtl.c:2082
+#, gcc-internal-format
+msgid "insn %d inside basic block %d but block_for_insn is %i"
+msgstr "insn %d 在基本å€å¡Š %d 之內,但是 BLOCK_FOR_INSN 是 %i"
+
+#: cfgrtl.c:2096 cfgrtl.c:2106
+#, gcc-internal-format
+msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
+msgstr "å€å¡Š %d 缺少 NOTE_INSN_BASIC_BLOCK"
+
+#: cfgrtl.c:2119
+#, gcc-internal-format
+msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d"
+msgstr "NOTE_INSN_BASIC_BLOCK %d 在基本å€å¡Š %d 中間"
+
+#: cfgrtl.c:2129
+#, gcc-internal-format
+msgid "in basic block %d:"
+msgstr "在基本å€å¡Š %d 中:"
+
+#: cfgrtl.c:2166
+#, gcc-internal-format
+msgid "bb prediction set for block %i, but it is not used in RTL land"
+msgstr ""
+
+#: cfgrtl.c:2184
+#, gcc-internal-format
+msgid "missing barrier after block %i"
+msgstr "在å€å¡Š %i 之後缺少邊界"
+
+#: cfgrtl.c:2197
+#, gcc-internal-format
+msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i"
+msgstr "verify_flow_info:ä¸æ­£ç¢ºçš„å€å¡Šç›´é€š %i->%i"
+
+#: cfgrtl.c:2206
+#, gcc-internal-format
+msgid "verify_flow_info: Incorrect fallthru %i->%i"
+msgstr "verify_flow_info:ä¸æ­£ç¢ºçš„直通 %i->%i"
+
+#: cfgrtl.c:2225
+#, gcc-internal-format
+msgid "basic blocks not laid down consecutively"
+msgstr ""
+
+#: cfgrtl.c:2264
+#, gcc-internal-format
+msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
+msgstr ""
+
+#: cgraph.c:763
+#, gcc-internal-format
+msgid "%D renamed after being referenced in assembly"
+msgstr ""
+
+#: cgraphunit.c:664
+#, gcc-internal-format
+msgid "aux field set for edge %s->%s"
+msgstr "為邊 %s->%s 設定 AUX 欄ä½"
+
+#: cgraphunit.c:670
+#, gcc-internal-format
+msgid "Execution count is negative"
+msgstr "執行次數為負"
+
+#: cgraphunit.c:677
+#, gcc-internal-format
+msgid "caller edge count is negative"
+msgstr "呼å«é‚Šè¨ˆæ•¸ç‚ºè² "
+
+#: cgraphunit.c:686
+#, gcc-internal-format
+msgid "inlined_to pointer is wrong"
+msgstr "inlined_to pointer 錯誤"
+
+#: cgraphunit.c:691
+#, gcc-internal-format
+msgid "multiple inline callers"
+msgstr "多個內è¯å‘¼å«è€…"
+
+#: cgraphunit.c:698
+#, gcc-internal-format
+msgid "inlined_to pointer set for noninline callers"
+msgstr "為éžå…§è¯çš„呼å«è€…設定了 inlined_to pointer"
+
+#: cgraphunit.c:704
+#, gcc-internal-format
+msgid "inlined_to pointer is set but no predecesors found"
+msgstr "設定了 inlined_to 指標å»æ‰¾ä¸åˆ°å‰é©…"
+
+#: cgraphunit.c:709
+#, gcc-internal-format
+msgid "inlined_to pointer refers to itself"
+msgstr "inlined_to pointer åƒç…§è‡ªèº«"
+
+#: cgraphunit.c:719
+#, gcc-internal-format
+msgid "node not found in DECL_ASSEMBLER_NAME hash"
+msgstr ""
+
+#: cgraphunit.c:747
+#, gcc-internal-format
+msgid "shared call_stmt:"
+msgstr "共享的 call_stmt:"
+
+#: cgraphunit.c:753
+#, gcc-internal-format
+msgid "edge points to wrong declaration:"
+msgstr "邊緣指到ä¸å°çš„宣告:"
+
+#: cgraphunit.c:762
+#, gcc-internal-format
+msgid "missing callgraph edge for call stmt:"
+msgstr ""
+
+#: cgraphunit.c:779
+#, gcc-internal-format
+msgid "edge %s->%s has no corresponding call_stmt"
+msgstr ""
+
+#: cgraphunit.c:791
+#, gcc-internal-format
+msgid "verify_cgraph_node failed"
+msgstr "verify_cgraph_node 失敗"
+
+#: cgraphunit.c:1028
+#, gcc-internal-format
+msgid "failed to reclaim unneeded function"
+msgstr "無法收回ä¸éœ€è¦çš„函å¼"
+
+#: cgraphunit.c:1308
+#, gcc-internal-format
+msgid "nodes with no released memory found"
+msgstr ""
+
+#: collect2.c:1172
+#, gcc-internal-format
+msgid "unknown demangling style '%s'"
+msgstr "ä¸æ˜Žçš„解修飾風格「%sã€"
+
+#: collect2.c:1495
+#, gcc-internal-format
+msgid "%s terminated with signal %d [%s]%s"
+msgstr "%s 以信號 %d [%s]%s 離開。"
+
+#: collect2.c:1513
+#, gcc-internal-format
+msgid "%s returned %d exit status"
+msgstr "%s 以回傳值 %d 離開"
+
+#: collect2.c:2175
+#, gcc-internal-format
+msgid "cannot find 'ldd'"
+msgstr "找ä¸åˆ°ã€Œlddã€"
+
+#: convert.c:65
+#, gcc-internal-format
+msgid "cannot convert to a pointer type"
+msgstr "無法轉æ›ç‚ºæŒ‡æ¨™é¡žåž‹"
+
+#: convert.c:304
+#, gcc-internal-format
+msgid "pointer value used where a floating point value was expected"
+msgstr "需è¦æµ®é»žæ•¸å€¼æ™‚使用了指標值"
+
+#: convert.c:308
+#, gcc-internal-format
+msgid "aggregate value used where a float was expected"
+msgstr "需è¦æµ®é»žæ•¸æ™‚使用了èšåˆå€¼"
+
+#: convert.c:333
+#, gcc-internal-format
+msgid "conversion to incomplete type"
+msgstr "轉æ›ç‚ºä¸å®Œå…¨é¡žåž‹"
+
+#: convert.c:688 convert.c:764
+#, gcc-internal-format
+msgid "can't convert between vector values of different size"
+msgstr "ä¸èƒ½åœ¨ä¸åŒå¤§å°çš„å‘é‡é¡žåž‹é–“進行轉æ›"
+
+#: convert.c:694
+#, gcc-internal-format
+msgid "aggregate value used where an integer was expected"
+msgstr "需è¦æ•´æ•¸æ™‚使用了èšåˆå€¼"
+
+#: convert.c:744
+#, gcc-internal-format
+msgid "pointer value used where a complex was expected"
+msgstr "需è¦è¤‡æ•¸æ™‚使用了指標值"
+
+#: convert.c:748
+#, gcc-internal-format
+msgid "aggregate value used where a complex was expected"
+msgstr "需è¦è¤‡æ•¸æ™‚使用了èšåˆå€¼"
+
+#: convert.c:770
+#, gcc-internal-format
+msgid "can't convert value to a vector"
+msgstr "ä¸èƒ½å°‡å€¼è½‰æ›ç‚ºå‘é‡"
+
+#: coverage.c:183
+#, gcc-internal-format
+msgid "%qs is not a gcov data file"
+msgstr "%qs ä¸æ˜¯ä¸€å€‹ gcov 資料檔案"
+
+#: coverage.c:194
+#, gcc-internal-format
+msgid "%qs is version %q.*s, expected version %q.*s"
+msgstr "%qs 的版本是 %q.*s,需è¦çš„版本 %q.*s"
+
+#: coverage.c:274 coverage.c:282
+#, gcc-internal-format
+msgid "coverage mismatch for function %u while reading execution counters"
+msgstr ""
+
+#: coverage.c:276 coverage.c:359
+#, gcc-internal-format
+msgid "checksum is %x instead of %x"
+msgstr "檢驗和是 %x 而ä¸æ˜¯ %x"
+
+#: coverage.c:284 coverage.c:367
+#, gcc-internal-format
+msgid "number of counters is %d instead of %d"
+msgstr "計數器的數é‡æ˜¯ %d 而ä¸æ˜¯ %d"
+
+#: coverage.c:290
+#, gcc-internal-format
+msgid "cannot merge separate %s counters for function %u"
+msgstr ""
+
+#: coverage.c:311
+#, gcc-internal-format
+msgid "%qs has overflowed"
+msgstr "%qs 已溢出"
+
+#: coverage.c:311
+#, gcc-internal-format
+msgid "%qs is corrupted"
+msgstr "%qs å·²æ壞"
+
+#: coverage.c:348
+#, gcc-internal-format
+msgid "no coverage for function %qs found"
+msgstr "沒有找到 %qs 函å¼çš„覆寫"
+
+#: coverage.c:356 coverage.c:364
+#, gcc-internal-format
+msgid "coverage mismatch for function %qs while reading counter %qs"
+msgstr "讀å–計數器 %qs 時 %qs 函å¼çš„覆寫ä¸ç¬¦åˆ"
+
+#: coverage.c:529
+#, gcc-internal-format
+msgid "cannot open %s"
+msgstr "無法開啟 %s"
+
+#: coverage.c:564
+#, gcc-internal-format
+msgid "error writing %qs"
+msgstr "寫入 %qs 時錯誤"
+
+#: diagnostic.c:602
+#, gcc-internal-format
+msgid "in %s, at %s:%d"
+msgstr "在 %s 中,於 %s:%d"
+
+#: dominance.c:855
+#, gcc-internal-format
+msgid "dominator of %d status unknown"
+msgstr "%d 的主導者狀態ä¸æ˜Ž"
+
+#: dominance.c:857
+#, gcc-internal-format
+msgid "dominator of %d should be %d, not %d"
+msgstr "%d 的主導者應該為 %d,而ä¸æ˜¯ %d"
+
+#: dominance.c:869
+#, gcc-internal-format
+msgid "ENTRY does not dominate bb %d"
+msgstr "ENTRY 未能主導基本å€å¡Š %d"
+
+#: dwarf2out.c:3533
+#, gcc-internal-format
+msgid "DW_LOC_OP %s not implemented"
+msgstr "DW_LOC_OP %s 尚未實作"
+
+#: emit-rtl.c:2269
+#, gcc-internal-format
+msgid "invalid rtl sharing found in the insn"
+msgstr "在 insn 中找到無效的 rtl 分享"
+
+#: emit-rtl.c:2271
+#, gcc-internal-format
+msgid "shared rtx"
+msgstr "共享的 rtx"
+
+#: emit-rtl.c:2273 flow.c:492 flow.c:517 flow.c:539
+#, gcc-internal-format
+msgid "internal consistency failure"
+msgstr "內部一致性錯誤"
+
+#: emit-rtl.c:3337
+#, gcc-internal-format
+msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
+msgstr "ICEï¼šéœ€è¦ emit_jump_insn 時使用了 emit_insn used where:\n"
+
+#: errors.c:133 java/jv-scan.c:289
+#, gcc-internal-format
+msgid "abort in %s, at %s:%d"
+msgstr "在 %s 中放棄,於 %s:%d"
+
+#: except.c:338
+#, gcc-internal-format
+msgid "exception handling disabled, use -fexceptions to enable"
+msgstr ""
+
+#: except.c:2786
+#, gcc-internal-format
+msgid "argument of %<__builtin_eh_return_regno%> must be constant"
+msgstr "%<__builtin_eh_return_regno%> 的引數必須是常數"
+
+#: except.c:2917
+#, gcc-internal-format
+msgid "__builtin_eh_return not supported on this target"
+msgstr "__builtin_eh_return 在此目標平臺上ä¸å—支æ´"
+
+#: except.c:3771 except.c:3780
+#, gcc-internal-format
+msgid "region_array is corrupted for region %i"
+msgstr ""
+
+#: except.c:3785
+#, gcc-internal-format
+msgid "outer block of region %i is wrong"
+msgstr ""
+
+#: except.c:3790
+#, gcc-internal-format
+msgid "region %i may contain throw and is contained in region that may not"
+msgstr ""
+
+#: except.c:3796
+#, gcc-internal-format
+msgid "negative nesting depth of region %i"
+msgstr ""
+
+#: except.c:3816
+#, gcc-internal-format
+msgid "tree list ends on depth %i"
+msgstr ""
+
+#: except.c:3821
+#, gcc-internal-format
+msgid "array does not match the region tree"
+msgstr ""
+
+#: except.c:3827
+#, gcc-internal-format
+msgid "verify_eh_tree failed"
+msgstr "verify_eh_tree 失敗"
+
+#: explow.c:1212
+#, gcc-internal-format
+msgid "stack limits not supported on this target"
+msgstr "堆疊é™åˆ¶åœ¨æ­¤ç›®æ¨™å¹³è‡ºä¸Šä¸å—支æ´"
+
+#: fold-const.c:3331 fold-const.c:3342
+#, gcc-internal-format
+msgid "comparison is always %d due to width of bit-field"
+msgstr "由於ä½å…ƒæ®µå¯¬åº¦æ‰€é™ï¼Œæ¯”較çµæžœæ°¸é ç‚º %d"
+
+#: fold-const.c:4943 fold-const.c:4958
+#, gcc-internal-format
+msgid "comparison is always %d"
+msgstr "比較çµæžœå§‹çµ‚為 %d"
+
+#: fold-const.c:5087
+#, gcc-internal-format
+msgid "%<or%> of unmatched not-equal tests is always 1"
+msgstr "å°å…©å€‹ä¸åŒ¹é…çš„ä¸ç­‰æ¯”è¼ƒå– %<or%> çš„çµæžœç¸½ç‚º 1"
+
+#: fold-const.c:5092
+#, gcc-internal-format
+msgid "%<and%> of mutually exclusive equal-tests is always 0"
+msgstr "å°å…©å€‹äº’æ–¥çš„ç›¸ç­‰æ¯”è¼ƒå– %<and%> çš„çµæžœæ°¸é æ˜¯ 0"
+
+#: fold-const.c:10304
+#, gcc-internal-format
+msgid "fold check: original tree changed by fold"
+msgstr ""
+
+#: function.c:491
+#, gcc-internal-format
+msgid "%Jtotal size of local objects too large"
+msgstr "%J局部物件的總大å°å¤ªå¤§"
+
+#: function.c:838 varasm.c:1674
+#, gcc-internal-format
+msgid "size of variable %q+D is too large"
+msgstr "變數 %q+D 的大å°å¤ªå¤§"
+
+#: function.c:1548
+#, gcc-internal-format
+msgid "impossible constraint in %<asm%>"
+msgstr "%<asm%> 中ä¸å¯èƒ½çš„ç´„æŸ"
+
+#: function.c:3506
+#, gcc-internal-format
+msgid "variable %q+D might be clobbered by %<longjmp%> or %<vfork%>"
+msgstr "變數 %q+D 能為 %<longjmp%> 或 %<vfork%> 所篡改"
+
+#: function.c:3527
+#, gcc-internal-format
+msgid "argument %q+D might be clobbered by %<longjmp%> or %<vfork%>"
+msgstr "引數 %q+D å¯èƒ½ç‚º %<longjmp%> 或 %<vfork%> 所篡改"
+
+#: function.c:3922
+#, gcc-internal-format
+msgid "function returns an aggregate"
+msgstr "函å¼å›žå‚³ä¸€å€‹èšåˆ"
+
+#: function.c:4314
+#, gcc-internal-format
+msgid "unused parameter %q+D"
+msgstr "未使用的åƒæ•¸ %q+D"
+
+#: gcc.c:1243
+#, gcc-internal-format
+msgid "ambiguous abbreviation %s"
+msgstr "有歧義的縮寫 %s"
+
+#: gcc.c:1270
+#, gcc-internal-format
+msgid "incomplete '%s' option"
+msgstr "ä¸å®Œå…¨çš„「%sã€é¸é …"
+
+#: gcc.c:1281
+#, gcc-internal-format
+msgid "missing argument to '%s' option"
+msgstr "「%sã€é¸é …缺少引數"
+
+#: gcc.c:1294
+#, gcc-internal-format
+msgid "extraneous argument to '%s' option"
+msgstr "「%sã€é¸é …引數太多"
+
+#: gcc.c:3804
+#, gcc-internal-format
+msgid "warning: -pipe ignored because -save-temps specified"
+msgstr "警告:忽略 -pipe,因為指定了 -save-temps"
+
+#: gcc.c:4105
+#, gcc-internal-format
+msgid "warning: '-x %s' after last input file has no effect"
+msgstr "警告:出ç¾åœ¨æœ€å¾Œä¸€å€‹è¼¸å…¥æª”案後的「-x %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:5174
+#, gcc-internal-format
+msgid "spec failure: '%%*' has not been initialized by pattern match"
+msgstr "spec 失敗:「%%*ã€æœªç¶“模å¼åŒ¹é…åˆå§‹åŒ–"
+
+#: gcc.c:5183
+#, gcc-internal-format
+msgid "warning: use of obsolete %%[ operator in specs"
+msgstr "警告:在 specs 中使用éŽæ™‚çš„ %%[ é‹ç®—å­"
+
+#: gcc.c:5264
+#, gcc-internal-format
+msgid "spec failure: unrecognized spec option '%c'"
+msgstr "spec 錯誤:無法辨識的 spec é¸é …「%cã€"
+
+#: gcc.c:6188
+#, gcc-internal-format
+msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC"
+msgstr "spec 失敗:SYSROOT_SUFFIX_SPEC åƒæ•¸å¤šæ–¼ä¸€å€‹"
+
+#: gcc.c:6211
+#, gcc-internal-format
+msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC"
+msgstr "spec 失敗:SYSROOT_HEADERS_SUFFIX_SPEC åƒæ•¸å¤šæ–¼ä¸€å€‹"
+
+#: gcc.c:6300
+#, gcc-internal-format
+msgid "unrecognized option '-%s'"
+msgstr "無法辨識的é¸é …「-%sã€"
+
+#: gcc.c:6491 gcc.c:6554
+#, gcc-internal-format
+msgid "%s: %s compiler not installed on this system"
+msgstr "%sï¼šæ­¤ç³»çµ±æœªå®‰è£ %s 編譯器"
+
+#: gcc.c:6646
+#, gcc-internal-format
+msgid "%s: linker input file unused because linking not done"
+msgstr "%s:未使用連çµå™¨è¼¸å…¥æª”案,因為連çµå°šæœªå®Œæˆ"
+
+#: gcc.c:6686
+#, gcc-internal-format
+msgid "language %s not recognized"
+msgstr "語言 %s 未能被識別"
+
+#: gcc.c:6757
+#, gcc-internal-format
+msgid "%s: %s"
+msgstr "%s:%s"
+
+#: gcse.c:6587
+#, gcc-internal-format
+msgid "%s: %d basic blocks and %d edges/basic block"
+msgstr ""
+
+#: gcse.c:6600
+#, gcc-internal-format
+msgid "%s: %d basic blocks and %d registers"
+msgstr "%s:%d 個基本å€å¡Šå’Œ %d 個暫存器"
+
+#: ggc-common.c:404 ggc-common.c:412 ggc-common.c:480 ggc-common.c:499
+#: ggc-page.c:2110 ggc-page.c:2141 ggc-page.c:2148 ggc-zone.c:2291
+#: ggc-zone.c:2306
+#, gcc-internal-format
+msgid "can't write PCH file: %m"
+msgstr "無法寫入 PCH 檔案:%m"
+
+#: ggc-common.c:492 config/i386/host-cygwin.c:58
+#, gcc-internal-format
+msgid "can't get position in PCH file: %m"
+msgstr "ä¸èƒ½åœ¨ PCH 檔案中找到ä½ç½®ï¼š%m"
+
+#: ggc-common.c:502
+#, gcc-internal-format
+msgid "can't write padding to PCH file: %m"
+msgstr "ä¸èƒ½å‘ PCH 檔案寫入填補:%m"
+
+#: ggc-common.c:557 ggc-common.c:565 ggc-common.c:572 ggc-common.c:575
+#: ggc-common.c:585 ggc-common.c:588 ggc-page.c:2235 ggc-zone.c:2325
+#, gcc-internal-format
+msgid "can't read PCH file: %m"
+msgstr "ç„¡æ³•è®€å– PCH 檔案:%m"
+
+#: ggc-common.c:580
+#, gcc-internal-format
+msgid "had to relocate PCH"
+msgstr "å¿…é ˆé‡æ–°å®šä½ PCH"
+
+#: ggc-page.c:1448
+#, gcc-internal-format
+msgid "open /dev/zero: %m"
+msgstr "開啟 /dev/zero:%m"
+
+#: ggc-page.c:2126 ggc-page.c:2132
+#, gcc-internal-format
+msgid "can't write PCH file"
+msgstr "無法寫入 PCH 檔案"
+
+#: ggc-zone.c:2288 ggc-zone.c:2299
+#, gcc-internal-format
+msgid "can't seek PCH file: %m"
+msgstr "無法在 PCH 檔案中定ä½ï¼š%m"
+
+#: ggc-zone.c:2302
+#, gcc-internal-format
+msgid "can't write PCH fle: %m"
+msgstr "無法寫入 PCH 檔案:%m"
+
+#: gimple-low.c:202
+#, gcc-internal-format
+msgid "unexpected node"
+msgstr "與é æœŸä¸ç¬¦çš„çµé»ž"
+
+#: gimplify.c:3682
+#, gcc-internal-format
+msgid "invalid lvalue in asm output %d"
+msgstr "組譯輸出 %d 中左值無效"
+
+#: gimplify.c:3794
+#, gcc-internal-format
+msgid "memory input %d is not directly addressable"
+msgstr "記憶體輸入 %d ä¸å¯ç›´æŽ¥å®šå€"
+
+#: gimplify.c:4670
+#, gcc-internal-format
+msgid "gimplification failed"
+msgstr "gimplification 失敗"
+
+#: global.c:376 global.c:389 global.c:403
+#, gcc-internal-format
+msgid "%s cannot be used in asm here"
+msgstr "%s ä¸èƒ½åœ¨é€™è£¡ç”¨æ–¼ asm"
+
+#: graph.c:403 java/jcf-parse.c:1086 java/jcf-parse.c:1221 java/lex.c:1855
+#: objc/objc-act.c:501
+#, gcc-internal-format
+msgid "can't open %s: %m"
+msgstr "無法開啟 %s:%m"
+
+#: haifa-sched.c:182
+#, gcc-internal-format
+msgid "fix_sched_param: unknown param: %s"
+msgstr ""
+
+#. Eventually this should become a hard error IMO.
+#: opts.c:261
+#, gcc-internal-format
+msgid "command line option \"%s\" is valid for %s but not for %s"
+msgstr "命令列é¸é …「%sã€å° %s æ˜¯æœ‰æ•ˆçš„ï¼Œä½†å° %s 無效"
+
+#: opts.c:315
+#, gcc-internal-format
+msgid "command line option %qs is not supported by this configuration"
+msgstr "æ­¤é…ç½®ä¸æ”¯æ´å‘½ä»¤åˆ—é¸é … %qs"
+
+#: opts.c:359
+#, gcc-internal-format
+msgid "missing argument to \"%s\""
+msgstr "「%sã€ç¼ºå°‘引數"
+
+#: opts.c:369
+#, gcc-internal-format
+msgid "argument to \"%s\" should be a non-negative integer"
+msgstr "「%sã€çš„引數應該是一個éžè² æ•´æ•¸"
+
+#: opts.c:457
+#, gcc-internal-format
+msgid "unrecognized command line option \"%s\""
+msgstr "無法辨識的命令列é¸é …「%sã€"
+
+#: opts.c:670
+#, gcc-internal-format
+msgid "-Wuninitialized is not supported without -O"
+msgstr "-Wuninitialized 在未使用 -O 時ä¸å—支æ´"
+
+#: opts.c:685
+#, gcc-internal-format
+msgid "-freorder-blocks-and-partition does not work with exceptions"
+msgstr "-freorder-blocks-and-partition ä¸èƒ½èˆ‡ç•°å¸¸ä¸€èµ·å·¥ä½œ"
+
+#: opts.c:696
+#, gcc-internal-format
+msgid "-freorder-blocks-and-partition does not support unwind info"
+msgstr "-freorder-blocks-and-partition ä¸æ”¯æ´å±•é–‹çš„資訊"
+
+#: opts.c:710
+#, gcc-internal-format
+msgid "-freorder-blocks-and-partition does not work on this architecture"
+msgstr "-freorder-blocks-and-partition ä¸èƒ½åœ¨æ­¤æž¶æ§‹ä¸‹å·¥ä½œ"
+
+#: opts.c:878
+#, gcc-internal-format
+msgid "structure alignment must be a small power of two, not %d"
+msgstr "çµæ§‹çš„å°é½Šå¿…須是 2 的較å°æ¬¡æ–¹ï¼Œè€Œä¸æ˜¯ %d"
+
+#: opts.c:936
+#, gcc-internal-format
+msgid "unrecognized visibility value \"%s\""
+msgstr "無法辨識的å¯è¦‹æ€§å€¼ã€Œ%sã€"
+
+#: opts.c:984
+#, gcc-internal-format
+msgid "unrecognized register name \"%s\""
+msgstr "無法辨識的暫存器å「%sã€"
+
+#: opts.c:1008
+#, gcc-internal-format
+msgid "unknown tls-model \"%s\""
+msgstr "ä¸æ˜Žçš„ tls-model「%sã€"
+
+#: opts.c:1058
+#, gcc-internal-format
+msgid "-f[no-]force-mem is nop and option will be removed in 4.2"
+msgstr "-f[no-]force-mem 被忽略,此é¸é …將在 4.2 中被刪除"
+
+#: opts.c:1081
+#, gcc-internal-format
+msgid "%s: --param arguments should be of the form NAME=VALUE"
+msgstr "%s:--param 引數的形å¼æ‡‰è©²ç‚ºã€Œå稱=值ã€"
+
+#: opts.c:1086
+#, gcc-internal-format
+msgid "invalid --param value %qs"
+msgstr "無效的 --param 值 %qs"
+
+#: opts.c:1183
+#, gcc-internal-format
+msgid "target system does not support debug output"
+msgstr "目的系統ä¸æ”¯æ´é™¤éŒ¯è¼¸å‡º"
+
+#: opts.c:1190
+#, gcc-internal-format
+msgid "debug format \"%s\" conflicts with prior selection"
+msgstr "除錯格å¼ã€Œ%sã€èˆ‡å…ˆå‰çš„é¸æ“‡è¡çª"
+
+#: opts.c:1206
+#, gcc-internal-format
+msgid "unrecognised debug output level \"%s\""
+msgstr "無法辨識的除錯輸出層級「%sã€"
+
+#: opts.c:1208
+#, gcc-internal-format
+msgid "debug output level %s is too high"
+msgstr "除錯輸出層級 %s 太高"
+
+#: params.c:71
+#, gcc-internal-format
+msgid "minimum value of parameter %qs is %u"
+msgstr "åƒæ•¸ %qs 的最å°å€¼ç‚º %u"
+
+#: params.c:76
+#, gcc-internal-format
+msgid "maximum value of parameter %qs is %u"
+msgstr "åƒæ•¸ %qs 的最大值是 %u"
+
+#. If we didn't find this parameter, issue an error message.
+#: params.c:85
+#, gcc-internal-format
+msgid "invalid parameter %qs"
+msgstr "無效的åƒæ•¸ %qs"
+
+#: profile.c:287
+#, gcc-internal-format
+msgid "corrupted profile info: run_max * runs < sum_max"
+msgstr "æ壞的樣本資訊:run_max * runs < sum_max"
+
+#: profile.c:293
+#, gcc-internal-format
+msgid "corrupted profile info: sum_all is smaller than sum_max"
+msgstr "æ壞的樣本資訊:sum_all å°æ–¼ sum_max"
+
+#: profile.c:338
+#, gcc-internal-format
+msgid "corrupted profile info: edge from %i to %i exceeds maximal count"
+msgstr "æ壞的樣本資訊:從 %i 到 %i 的邊超éŽæœ€å¤§è¨ˆæ•¸"
+
+#: profile.c:503
+#, gcc-internal-format
+msgid "corrupted profile info: number of iterations for basic block %d thought to be %i"
+msgstr "æ壞的樣本資訊:基本å€å¡Š %d 的迭代次數被èªç‚ºæ˜¯ %i"
+
+#: profile.c:524
+#, gcc-internal-format
+msgid "corrupted profile info: number of executions for edge %d-%d thought to be %i"
+msgstr "æ壞的樣本資訊:邊 %d-%d 的執行次數被èªç‚ºæ˜¯ %i"
+
+#: reg-stack.c:526
+#, gcc-internal-format
+msgid "output constraint %d must specify a single register"
+msgstr "è¼¸å‡ºç´„æŸ %d 必須指定單一暫存器"
+
+#: reg-stack.c:536
+#, gcc-internal-format
+msgid "output constraint %d cannot be specified together with \"%s\" clobber"
+msgstr "è¼¸å‡ºç´„æŸ %d ä¸èƒ½åœ¨æŒ‡å®šã€Œ%sã€ç¯¡æ”¹æ™‚被指定"
+
+#: reg-stack.c:559
+#, gcc-internal-format
+msgid "output regs must be grouped at top of stack"
+msgstr ""
+
+#: reg-stack.c:596
+#, gcc-internal-format
+msgid "implicitly popped regs must be grouped at top of stack"
+msgstr ""
+
+#: reg-stack.c:615
+#, gcc-internal-format
+msgid "output operand %d must use %<&%> constraint"
+msgstr "輸出é‹ç®—å…ƒ %d 必須使用 %<&%> ç´„æŸ"
+
+#: regclass.c:766
+#, gcc-internal-format
+msgid "can't use '%s' as a %s register"
+msgstr "無法將「%sã€åšç‚º %s 暫存器"
+
+#: regclass.c:781 config/ia64/ia64.c:5041 config/ia64/ia64.c:5048
+#: config/pa/pa.c:339 config/pa/pa.c:346
+#, gcc-internal-format
+msgid "unknown register name: %s"
+msgstr "ä¸æ˜Žçš„暫存器å:%s"
+
+#: regclass.c:791
+#, gcc-internal-format
+msgid "global register variable follows a function definition"
+msgstr "全域暫存器變數出ç¾åœ¨å‡½å¼å®šç¾©å¾Œ"
+
+#: regclass.c:795
+#, gcc-internal-format
+msgid "register used for two global register variables"
+msgstr "暫存器åšç‚ºå…©å€‹å…¨åŸŸæš«å­˜å™¨è®Šæ•¸"
+
+#: regclass.c:800
+#, gcc-internal-format
+msgid "call-clobbered register used for global register variable"
+msgstr "呼å«ç¯¡æ”¹æš«å­˜å™¨åšç‚ºå…¨åŸŸæš«å­˜å™¨è®Šæ•¸"
+
+#: regrename.c:1916
+#, gcc-internal-format
+msgid "validate_value_data: [%u] Bad next_regno for empty chain (%u)"
+msgstr ""
+
+#: regrename.c:1928
+#, gcc-internal-format
+msgid "validate_value_data: Loop in regno chain (%u)"
+msgstr ""
+
+#: regrename.c:1931
+#, gcc-internal-format
+msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
+msgstr ""
+
+#: regrename.c:1943
+#, gcc-internal-format
+msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)"
+msgstr ""
+
+#: reload.c:1270
+#, gcc-internal-format
+msgid "cannot reload integer constant operand in %<asm%>"
+msgstr "ä¸èƒ½åœ¨ %<asm%> 中é‡æ–°è¼‰å…¥æ•´æ•¸å¸¸æ•¸é‹ç®—å…ƒ"
+
+#: reload.c:1293
+#, gcc-internal-format
+msgid "impossible register constraint in %<asm%>"
+msgstr "%<asm%> 中ä¸å¯èƒ½çš„暫存器約æŸ"
+
+#: reload.c:3564
+#, gcc-internal-format
+msgid "%<&%> constraint used with no register class"
+msgstr "%<&%> ç´„æŸæœªèˆ‡æš«å­˜å™¨é¡žåž‹ä¸€èµ·ä½¿ç”¨"
+
+#: reload.c:3735 reload.c:3967
+#, gcc-internal-format
+msgid "inconsistent operand constraints in an %<asm%>"
+msgstr "ä¸€å¥ %<asm%> 中é‹ç®—元約æŸä¸ä¸€è‡´"
+
+#: reload1.c:1235
+#, gcc-internal-format
+msgid "frame size too large for reliable stack checking"
+msgstr "å°å¯é çš„堆疊檢查來說框架太大了"
+
+#: reload1.c:1238
+#, gcc-internal-format
+msgid "try reducing the number of local variables"
+msgstr "試圖減少局部變數的數é‡"
+
+#: reload1.c:1894
+#, gcc-internal-format
+msgid "can't find a register in class %qs while reloading %<asm%>"
+msgstr "é‡æ–°è¼‰å…¥ %<asm%> 時在類別 %qs 中找ä¸åˆ°æš«å­˜å™¨"
+
+#: reload1.c:1899
+#, gcc-internal-format
+msgid "unable to find a register to spill in class %qs"
+msgstr "在類別 %qs 中找ä¸åˆ°å¯æ¨å‡ºçš„暫存器"
+
+#: reload1.c:3984
+#, gcc-internal-format
+msgid "%<asm%> operand requires impossible reload"
+msgstr "%<asm%> è¦æ±‚ä¸å¯èƒ½çš„é‡æ–°è¼‰å…¥"
+
+#: reload1.c:5108
+#, gcc-internal-format
+msgid "%<asm%> operand constraint incompatible with operand size"
+msgstr "%<asm%> é‹ç®—元的約æŸèˆ‡é‹ç®—元大å°ä¸ç›¸å®¹"
+
+#: reload1.c:6738
+#, gcc-internal-format
+msgid "output operand is constant in %<asm%>"
+msgstr "%<asm%> 的輸出é‹ç®—元是常數"
+
+#: rtl.c:474
+#, gcc-internal-format
+msgid "RTL check: access of elt %d of '%s' with last elt %d in %s, at %s:%d"
+msgstr ""
+
+#: rtl.c:484
+#, gcc-internal-format
+msgid "RTL check: expected elt %d type '%c', have '%c' (rtx %s) in %s, at %s:%d"
+msgstr ""
+
+#: rtl.c:494
+#, gcc-internal-format
+msgid "RTL check: expected elt %d type '%c' or '%c', have '%c' (rtx %s) in %s, at %s:%d"
+msgstr ""
+
+#: rtl.c:503
+#, gcc-internal-format
+msgid "RTL check: expected code '%s', have '%s' in %s, at %s:%d"
+msgstr "RTL 檢查:需è¦ç¨‹å¼ç¢¼ã€Œ%sã€ï¼Œå»å¾—到「%sã€åœ¨ %s,於 %s:%d"
+
+#: rtl.c:513
+#, gcc-internal-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:539
+#, gcc-internal-format
+msgid "RTL check: access of elt %d of vector with last elt %d in %s, at %s:%d"
+msgstr ""
+
+#: rtl.c:550
+#, gcc-internal-format
+msgid "RTL flag check: %s used with unexpected rtx code '%s' in %s, at %s:%d"
+msgstr ""
+
+#: stmt.c:317
+#, gcc-internal-format
+msgid "output operand constraint lacks %<=%>"
+msgstr "輸出é‹ç®—元約æŸç¼ºå°‘ %<=%>"
+
+#: stmt.c:332
+#, gcc-internal-format
+msgid "output constraint %qc for operand %d is not at the beginning"
+msgstr "è¼¸å‡ºç´„æŸ %qc(å°é‹ç®—å…ƒ %d)沒有出ç¾åœ¨é–‹é ­"
+
+#: stmt.c:355
+#, gcc-internal-format
+msgid "operand constraint contains incorrectly positioned %<+%> or %<=%>"
+msgstr ""
+
+#: stmt.c:362 stmt.c:461
+#, gcc-internal-format
+msgid "%<%%%> constraint used with last operand"
+msgstr "%<%%%> ç´„æŸç”¨æ–¼æœ€å¾Œä¸€å€‹é‹ç®—å…ƒ"
+
+#: stmt.c:381
+#, gcc-internal-format
+msgid "matching constraint not valid in output operand"
+msgstr "匹é…çš„ç´„æŸåœ¨è¼¸å‡ºé‹ç®—元中無效"
+
+#: stmt.c:452
+#, gcc-internal-format
+msgid "input operand constraint contains %qc"
+msgstr "輸入é‹ç®—元約æŸåŒ…å« %qc"
+
+#: stmt.c:494
+#, gcc-internal-format
+msgid "matching constraint references invalid operand number"
+msgstr "匹é…çš„ç´„æŸåƒç…§äº†ç„¡æ•ˆçš„é‹ç®—元號"
+
+#: stmt.c:532
+#, gcc-internal-format
+msgid "invalid punctuation %qc in constraint"
+msgstr "ç´„æŸä¸­å‡ºç¾ç„¡æ•ˆçš„標點 %qc"
+
+#: stmt.c:556
+#, gcc-internal-format
+msgid "matching constraint does not allow a register"
+msgstr "匹é…çš„ç´„æŸä¸å…許使用暫存器"
+
+#: stmt.c:615
+#, gcc-internal-format
+msgid "asm-specifier for variable %qs conflicts with asm clobber list"
+msgstr "變數 %qs çš„ asm 指定與 asm 篡改清單è¡çª"
+
+#: stmt.c:703
+#, gcc-internal-format
+msgid "unknown register name %qs in %<asm%>"
+msgstr "%<asm%> 中出ç¾ä¸æ˜Žçš„暫存器å %qs"
+
+#: stmt.c:711
+#, gcc-internal-format
+msgid "PIC register %qs clobbered in %<asm%>"
+msgstr "PIC 暫存器 %qs 在 %<asm%> 中被篡改"
+
+#: stmt.c:758
+#, gcc-internal-format
+msgid "more than %d operands in %<asm%>"
+msgstr "%<asm%> 中的é‹ç®—å…ƒè¶…éŽ %d 個"
+
+#: stmt.c:821
+#, gcc-internal-format
+msgid "output number %d not directly addressable"
+msgstr "輸出數 %d ä¸å¯ç›´æŽ¥å®šå€"
+
+#: stmt.c:900
+#, gcc-internal-format
+msgid "asm operand %d probably doesn%'t match constraints"
+msgstr "組譯é‹ç®—å…ƒ %d 與約æŸå¯èƒ½ä¸åŒ¹é…"
+
+#: stmt.c:910
+#, gcc-internal-format
+msgid "use of memory input without lvalue in asm operand %d is deprecated"
+msgstr ""
+
+#: stmt.c:1057
+#, gcc-internal-format
+msgid "asm clobber conflict with output operand"
+msgstr "組譯篡改清單與輸出é‹ç®—å…ƒè¡çª"
+
+#: stmt.c:1062
+#, gcc-internal-format
+msgid "asm clobber conflict with input operand"
+msgstr "組譯篡改清單與輸入é‹ç®—å…ƒè¡çª"
+
+#: stmt.c:1139
+#, gcc-internal-format
+msgid "too many alternatives in %<asm%>"
+msgstr "%<asm%> 中太多變數"
+
+#: stmt.c:1151
+#, gcc-internal-format
+msgid "operand constraints for %<asm%> differ in number of alternatives"
+msgstr ""
+
+#: stmt.c:1204
+#, gcc-internal-format
+msgid "duplicate asm operand name %qs"
+msgstr "é‡è¤‡çš„組譯é‹ç®—å…ƒå %qs"
+
+#: stmt.c:1302
+#, gcc-internal-format
+msgid "missing close brace for named operand"
+msgstr "å…·åé‹ç®—元後缺少å³å¤§æ‹¬è™Ÿ"
+
+#: stmt.c:1330
+#, gcc-internal-format
+msgid "undefined named operand %qs"
+msgstr "未定義的具åé‹ç®—å…ƒ %qs"
+
+#: stmt.c:1474
+#, gcc-internal-format
+msgid "%Hvalue computed is not used"
+msgstr "%H計算出的值未被使用"
+
+#: stor-layout.c:149
+#, gcc-internal-format
+msgid "type size can%'t be explicitly evaluated"
+msgstr "類型大å°ä¸èƒ½è¢«æ˜Žç¢ºåœ°è¨ˆç®—出"
+
+#: stor-layout.c:151
+#, gcc-internal-format
+msgid "variable-size type declared outside of any function"
+msgstr "變長類型的宣告出ç¾åœ¨æ‰€æœ‰å‡½å¼ä¹‹å¤–"
+
+#: stor-layout.c:462
+#, gcc-internal-format
+msgid "size of %q+D is %d bytes"
+msgstr "%q+D 的大å°ç‚º %d ä½å…ƒçµ„"
+
+#: stor-layout.c:464
+#, gcc-internal-format
+msgid "size of %q+D is larger than %wd bytes"
+msgstr "%q+D 的大å°è¶…éŽ %wd ä½å…ƒçµ„"
+
+#: stor-layout.c:881
+#, gcc-internal-format
+msgid "packed attribute causes inefficient alignment for %q+D"
+msgstr "packed 屬性導致 %q+D 低效率的å°é½Š"
+
+#: stor-layout.c:884
+#, gcc-internal-format
+msgid "packed attribute is unnecessary for %q+D"
+msgstr "packed å±¬æ€§å° %q+D 來說是ä¸éœ€è¦çš„"
+
+#. No, we need to skip space before this field.
+#. Bump the cumulative size to multiple of field alignment.
+#: stor-layout.c:899
+#, gcc-internal-format
+msgid "padding struct to align %q+D"
+msgstr "填補çµæ§‹ä»¥å°é½Š %q+D"
+
+#: stor-layout.c:1302
+#, gcc-internal-format
+msgid "padding struct size to alignment boundary"
+msgstr "å°‡çµæ§‹å¤§å°å¡«è£œåˆ°å°é½Šé‚Šç•Œä¸Š"
+
+#: stor-layout.c:1332
+#, gcc-internal-format
+msgid "packed attribute causes inefficient alignment for %qs"
+msgstr "packed 屬性導致 %qs 低效率的å°é½Š"
+
+#: stor-layout.c:1336
+#, gcc-internal-format
+msgid "packed attribute is unnecessary for %qs"
+msgstr "packed å±¬æ€§å° %qs 來說是ä¸éœ€è¦çš„"
+
+#: stor-layout.c:1342
+#, gcc-internal-format
+msgid "packed attribute causes inefficient alignment"
+msgstr "packed 屬性導致低效率的å°é½Š"
+
+#: stor-layout.c:1344
+#, gcc-internal-format
+msgid "packed attribute is unnecessary"
+msgstr "ä¸éœ€è¦ packed 屬性"
+
+#: stor-layout.c:1849
+#, gcc-internal-format
+msgid "alignment of array elements is greater than element size"
+msgstr "陣列元素的å°é½Šé‚Šç•Œæ¯”元素大å°é‚„è¦å¤§"
+
+#: targhooks.c:98
+#, gcc-internal-format
+msgid "__builtin_saveregs not supported by this target"
+msgstr "__builtin_saveregs ä¸ç‚ºæ­¤ç›®çš„所支æ´"
+
+#: tlink.c:484
+#, gcc-internal-format
+msgid "repository file '%s' does not contain command-line arguments"
+msgstr ""
+
+#: tlink.c:705
+#, gcc-internal-format
+msgid "'%s' was assigned to '%s', but was not defined during recompilation, or vice versa"
+msgstr "「%sã€è¢«æŒ‡æ´¾çµ¦ã€Œ%sã€ï¼Œä½†åœ¨é‡æ–°ç·¨è­¯çš„程åºä¸­æœªå®šç¾©ï¼Œæˆ–相å"
+
+#: tlink.c:775
+#, gcc-internal-format
+msgid "ld returned %d exit status"
+msgstr "ld 回傳 %d"
+
+#: toplev.c:513
+#, gcc-internal-format
+msgid "invalid option argument %qs"
+msgstr "無效的é¸é …åƒæ•¸ %qs"
+
+#: toplev.c:603
+#, gcc-internal-format
+msgid "getting core file size maximum limit: %m"
+msgstr ""
+
+#: toplev.c:606
+#, gcc-internal-format
+msgid "setting core file size limit to maximum: %m"
+msgstr ""
+
+#: toplev.c:824
+#, gcc-internal-format
+msgid "%q+F declared %<static%> but never defined"
+msgstr "%q+F 宣告為 %<static%> å»å¾žæœªå®šç¾©éŽ"
+
+#: toplev.c:849
+#, gcc-internal-format
+msgid "%q+D defined but not used"
+msgstr "%q+D 定義後未使用"
+
+#: toplev.c:892 toplev.c:916
+#, gcc-internal-format
+msgid "%qs is deprecated (declared at %s:%d)"
+msgstr "%qs å·²éŽæ™‚(æ–¼ %s:%d 宣告)"
+
+#: toplev.c:920
+#, gcc-internal-format
+msgid "type is deprecated (declared at %s:%d)"
+msgstr "é¡žåž‹å·²éŽæ™‚(æ–¼ %s:%d 宣告)"
+
+#: toplev.c:926
+#, gcc-internal-format
+msgid "%qs is deprecated"
+msgstr "%qs å·²éŽæ™‚"
+
+#: toplev.c:928
+#, gcc-internal-format
+msgid "type is deprecated"
+msgstr "é¡žåž‹å·²éŽæ™‚"
+
+#: toplev.c:1095
+#, gcc-internal-format
+msgid "unrecognized gcc debugging option: %c"
+msgstr "無法辨識的 gcc 除錯é¸é …:%c"
+
+#: toplev.c:1248
+#, gcc-internal-format
+msgid "can%'t open %s for writing: %m"
+msgstr "無法開啟 %s 並寫入:%m"
+
+#: toplev.c:1592
+#, gcc-internal-format
+msgid "instruction scheduling not supported on this target machine"
+msgstr "指令調度在此目標平臺上ä¸å—支æ´"
+
+#: toplev.c:1596
+#, gcc-internal-format
+msgid "this target machine does not have delayed branches"
+msgstr "此目標平臺沒有延é²è½‰ç§»æŒ‡ä»¤"
+
+#: toplev.c:1610
+#, gcc-internal-format
+msgid "-f%sleading-underscore not supported on this target machine"
+msgstr "-f%sleading-underscore 在此目標平臺上ä¸å—支æ´"
+
+#: toplev.c:1683
+#, gcc-internal-format
+msgid "target system does not support the \"%s\" debug format"
+msgstr "目的系統ä¸æ”¯æ´ã€Œ%sã€é™¤éŒ¯æ ¼å¼"
+
+#: toplev.c:1695
+#, gcc-internal-format
+msgid "variable tracking requested, but useless unless producing debug info"
+msgstr ""
+
+#: toplev.c:1698
+#, gcc-internal-format
+msgid "variable tracking requested, but not supported by this debug format"
+msgstr ""
+
+#: toplev.c:1718
+#, gcc-internal-format
+msgid "can%'t open %s: %m"
+msgstr "無法開啟%s:%m"
+
+#: toplev.c:1725
+#, gcc-internal-format
+msgid "-ffunction-sections not supported for this target"
+msgstr "-ffunction-sections 在此目標平臺上ä¸å—支æ´"
+
+#: toplev.c:1730
+#, gcc-internal-format
+msgid "-fdata-sections not supported for this target"
+msgstr "-fdata-sections 在此目標平臺上ä¸å—支æ´"
+
+#: toplev.c:1737
+#, gcc-internal-format
+msgid "-ffunction-sections disabled; it makes profiling impossible"
+msgstr "-ffunction-sections 被åœç”¨ï¼›å› æ­¤ä¸å¯èƒ½é€²è¡Œå–樣"
+
+#: toplev.c:1744
+#, gcc-internal-format
+msgid "-fprefetch-loop-arrays not supported for this target"
+msgstr "-fprefetch-loop-arrays 在此目標平臺上ä¸å—支æ´"
+
+#: toplev.c:1750
+#, gcc-internal-format
+msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)"
+msgstr "-fprefetch-loop-arrays 在此目標平臺上ä¸å—支æ´(嘗試 -march é–‹é—œ)"
+
+#: toplev.c:1759
+#, gcc-internal-format
+msgid "-fprefetch-loop-arrays is not supported with -Os"
+msgstr "-fprefetch-loop-arrays ä¸æ”¯æ´èˆ‡ -Os 並用"
+
+#: toplev.c:1765
+#, gcc-internal-format
+msgid "-ffunction-sections may affect debugging on some targets"
+msgstr "-ffunction-sections 在æŸäº›ç›®æ¨™å¹³è‡ºä¸Šå¯èƒ½æœƒå½±éŸ¿é™¤éŒ¯"
+
+#: toplev.c:1780
+#, gcc-internal-format
+msgid "-fstack-protector not supported for this target"
+msgstr "-fstack-protector 在此目標平臺上ä¸å—支æ´"
+
+#: toplev.c:1793
+#, gcc-internal-format
+msgid "unwind tables currently requires a frame pointer for correctness"
+msgstr "解繞表目å‰éœ€è¦å †ç–Šæ¡†æž¶æŒ‡æ¨™ä¾†ä¿è­‰æ­£ç¢ºæ€§"
+
+#: toplev.c:1898
+#, gcc-internal-format
+msgid "error writing to %s: %m"
+msgstr "寫入 %s 時發生錯誤:%m"
+
+#: toplev.c:1900 java/jcf-parse.c:1105 java/jcf-write.c:3539
+#, gcc-internal-format
+msgid "error closing %s: %m"
+msgstr "關閉 %s 時發生錯誤:%m"
+
+#: tree-cfg.c:1445 tree-cfg.c:2083 tree-cfg.c:2086
+#, gcc-internal-format
+msgid "%Hwill never be executed"
+msgstr "%Hæ°¸é ä¸æœƒè¢«åŸ·è¡Œ"
+
+#: tree-cfg.c:3172
+#, gcc-internal-format
+msgid "SSA name in freelist but still referenced"
+msgstr ""
+
+#: tree-cfg.c:3181
+#, gcc-internal-format
+msgid "ASSERT_EXPR with an always-false condition"
+msgstr ""
+
+#: tree-cfg.c:3191
+#, gcc-internal-format
+msgid "GIMPLE register modified with BIT_FIELD_REF"
+msgstr ""
+
+#: tree-cfg.c:3226
+#, gcc-internal-format
+msgid "invariant not recomputed when ADDR_EXPR changed"
+msgstr ""
+
+#: tree-cfg.c:3232
+#, gcc-internal-format
+msgid "constant not recomputed when ADDR_EXPR changed"
+msgstr ""
+
+#: tree-cfg.c:3237
+#, gcc-internal-format
+msgid "side effects not recomputed when ADDR_EXPR changed"
+msgstr ""
+
+#: tree-cfg.c:3253
+#, gcc-internal-format
+msgid "address taken, but ADDRESSABLE bit not set"
+msgstr ""
+
+#: tree-cfg.c:3263
+#, gcc-internal-format
+msgid "non-boolean used in condition"
+msgstr "æ¢ä»¶é‹ç®—å¼ä½¿ç”¨äº†éžå¸ƒæž—值"
+
+#: tree-cfg.c:3268
+#, gcc-internal-format
+msgid "invalid conditional operand"
+msgstr "無效的æ¢ä»¶é‹ç®—å…ƒ"
+
+#: tree-cfg.c:3323
+#, gcc-internal-format
+msgid "invalid reference prefix"
+msgstr "無效的åƒç…§å­—首"
+
+#: tree-cfg.c:3388
+#, gcc-internal-format
+msgid "is not a valid GIMPLE statement"
+msgstr "ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„ GIMPLE 敘述"
+
+#: tree-cfg.c:3408
+#, gcc-internal-format
+msgid "statement marked for throw, but doesn%'t"
+msgstr ""
+
+#: tree-cfg.c:3413
+#, gcc-internal-format
+msgid "statement marked for throw in middle of block"
+msgstr ""
+
+#: tree-cfg.c:3508
+#, gcc-internal-format
+msgid "bb_for_stmt (phi) is set to a wrong basic block"
+msgstr ""
+
+#: tree-cfg.c:3523
+#, gcc-internal-format
+msgid "PHI def is not a GIMPLE value"
+msgstr ""
+
+#: tree-cfg.c:3539 tree-cfg.c:3562
+#, gcc-internal-format
+msgid "incorrect sharing of tree nodes"
+msgstr "å°æ¨¹çµå€æ®µçš„共享ä¸æ­£ç¢º"
+
+#: tree-cfg.c:3553
+#, gcc-internal-format
+msgid "bb_for_stmt (stmt) is set to a wrong basic block"
+msgstr ""
+
+#: tree-cfg.c:3571
+#, gcc-internal-format
+msgid "verify_stmts failed"
+msgstr "verify_stmts 失敗"
+
+#: tree-cfg.c:3592
+#, gcc-internal-format
+msgid "ENTRY_BLOCK has a statement list associated with it"
+msgstr ""
+
+#: tree-cfg.c:3598
+#, gcc-internal-format
+msgid "EXIT_BLOCK has a statement list associated with it"
+msgstr ""
+
+#: tree-cfg.c:3605
+#, gcc-internal-format
+msgid "fallthru to exit from bb %d"
+msgstr ""
+
+#: tree-cfg.c:3627
+#, gcc-internal-format
+msgid "nonlocal label %s is not first in a sequence of labels in bb %d"
+msgstr ""
+
+#: tree-cfg.c:3636
+#, gcc-internal-format
+msgid "label %s to block does not match in bb %d"
+msgstr "標籤 %s 在基本å€å¡Š %d 中ä¸åŒ¹é…"
+
+#: tree-cfg.c:3645
+#, gcc-internal-format
+msgid "label %s has incorrect context in bb %d"
+msgstr "標籤 %s 在基本å€å¡Š %d 中上下文ä¸æ­£ç¢º"
+
+#: tree-cfg.c:3659
+#, gcc-internal-format
+msgid "control flow in the middle of basic block %d"
+msgstr "基本å€å¡Š %d 中出ç¾æµç¨‹æŽ§åˆ¶"
+
+#: tree-cfg.c:3669
+#, gcc-internal-format
+msgid "label %s in the middle of basic block %d"
+msgstr "標籤 %s 在基本å€å¡Š %d 中間"
+
+#: tree-cfg.c:3688
+#, gcc-internal-format
+msgid "fallthru edge after a control statement in bb %d"
+msgstr ""
+
+#: tree-cfg.c:3703
+#, gcc-internal-format
+msgid "structured COND_EXPR at the end of bb %d"
+msgstr ""
+
+#: tree-cfg.c:3716 tree-cfg.c:3754 tree-cfg.c:3767 tree-cfg.c:3838
+#, gcc-internal-format
+msgid "wrong outgoing edge flags at end of bb %d"
+msgstr ""
+
+#: tree-cfg.c:3724
+#, gcc-internal-format
+msgid "%<then%> label does not match edge at end of bb %d"
+msgstr "%<then%> 標籤在基本å€å¡Š %d çµå°¾ä¸åŒ¹é…é‚Š"
+
+#: tree-cfg.c:3732
+#, gcc-internal-format
+msgid "%<else%> label does not match edge at end of bb %d"
+msgstr "%<else%> 標籤在基本å€å¡Š %d çµå°¾ä¸åŒ¹é…é‚Š"
+
+#: tree-cfg.c:3742
+#, gcc-internal-format
+msgid "explicit goto at end of bb %d"
+msgstr "基本å€å¡Š %d 末尾明確的 goto"
+
+#: tree-cfg.c:3772
+#, gcc-internal-format
+msgid "return edge does not point to exit in bb %d"
+msgstr ""
+
+#: tree-cfg.c:3805
+#, gcc-internal-format
+msgid "found default case not at end of case vector"
+msgstr "é è¨­ case 沒有出ç¾åœ¨ case å‘é‡æœ«å°¾"
+
+#: tree-cfg.c:3811
+#, gcc-internal-format
+msgid "case labels not sorted:"
+msgstr "case 標籤未排åºï¼š "
+
+#: tree-cfg.c:3822
+#, gcc-internal-format
+msgid "no default case found at end of case vector"
+msgstr "case å‘é‡æœ«å°¾æ²’有é è¨­ case"
+
+#: tree-cfg.c:3830
+#, gcc-internal-format
+msgid "extra outgoing edge %d->%d"
+msgstr "多餘的出邊 %d->%d"
+
+#: tree-cfg.c:3852
+#, gcc-internal-format
+msgid "missing edge %i->%i"
+msgstr "缺少邊 %i->%i"
+
+#: tree-cfg.c:5146 tree-cfg.c:5150
+#, gcc-internal-format
+msgid "%H%<noreturn%> function does return"
+msgstr "%H%<noreturn%> 函å¼ç¢ºå¯¦æœƒå›žå‚³"
+
+#: tree-cfg.c:5172 tree-cfg.c:5177
+#, gcc-internal-format
+msgid "%Hcontrol reaches end of non-void function"
+msgstr "%H在有回傳值的函å¼ä¸­ï¼ŒæŽ§åˆ¶æµç¨‹åˆ°é”函å¼å°¾"
+
+#: tree-cfg.c:5237
+#, gcc-internal-format
+msgid "%Jfunction might be possible candidate for attribute %<noreturn%>"
+msgstr "%J函å¼æ˜¯å±¬æ€§ %<noreturn%> å¯èƒ½çš„å‚™é¸"
+
+#: tree-dump.c:856
+#, gcc-internal-format
+msgid "could not open dump file %qs: %s"
+msgstr "無法開啟傾å°æª”案 %qs:%s"
+
+#: tree-dump.c:987
+#, gcc-internal-format
+msgid "ignoring unknown option %q.*s in %<-fdump-%s%>"
+msgstr ""
+
+#: tree-eh.c:1767
+#, gcc-internal-format
+msgid "EH edge %i->%i is missing"
+msgstr "缺少 EH 邊 %i->%i"
+
+#: tree-eh.c:1772
+#, gcc-internal-format
+msgid "EH edge %i->%i miss EH flag"
+msgstr "EH 邊 %i->%i 缺少 EH 旗標"
+
+#. ??? might not be mistake.
+#: tree-eh.c:1778
+#, gcc-internal-format
+msgid "EH edge %i->%i has duplicated regions"
+msgstr ""
+
+#: tree-eh.c:1812
+#, gcc-internal-format
+msgid "BB %i can not throw but has EH edges"
+msgstr ""
+
+#: tree-eh.c:1819
+#, gcc-internal-format
+msgid "BB %i last statement has incorrectly set region"
+msgstr ""
+
+#: tree-eh.c:1830
+#, gcc-internal-format
+msgid "unnecessary EH edge %i->%i"
+msgstr "ä¸éœ€è¦çš„ EH é‚Š %i->%i"
+
+#: tree-inline.c:1381
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it uses alloca (override using the always_inline attribute)"
+msgstr "å‡½å¼ %q+F 無法被內è¯ï¼Œå› ç‚ºå®ƒä½¿ç”¨äº† alloca (使用 always_inline 屬性強制內è¯)"
+
+#: tree-inline.c:1393
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it uses setjmp"
+msgstr "å‡½å¼ %q+F 無法被內è¯ï¼Œå› ç‚ºå®ƒä½¿ç”¨äº† setjmp"
+
+#: tree-inline.c:1407
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it uses variable argument lists"
+msgstr "å‡½å¼ %q+F 無法被內è¯ï¼Œå› ç‚ºå®ƒä½¿ç”¨äº†è®Šé•·å¼•æ•¸è¡¨"
+
+#: tree-inline.c:1418
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it uses setjmp-longjmp exception handling"
+msgstr "å‡½å¼ %q+F 無法被內è¯ï¼Œå› ç‚ºå®ƒä½¿ç”¨äº† setjmp-longjmp 異常處ç†"
+
+#: tree-inline.c:1425
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it uses non-local goto"
+msgstr "å‡½å¼ %q+F 無法被內è¯ï¼Œå› ç‚ºä½¿ç”¨äº†éžå€åŸŸæ€§çš„ goto"
+
+#: tree-inline.c:1436
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it uses __builtin_return or __builtin_apply_args"
+msgstr "å‡½å¼ %q+F 無法被內è¯ï¼Œå› ç‚ºä½¿ç”¨äº† __builtin_return 或 __builtin_apply_args"
+
+#: tree-inline.c:1455
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it contains a computed goto"
+msgstr "å‡½å¼ %q+F 無法被內è¯ï¼Œå› ç‚ºåŒ…å«ä¸€å€‹åŸ·è¡Œæ™‚ goto"
+
+#: tree-inline.c:1469
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it receives a non-local goto"
+msgstr "å‡½å¼ %q+F 無法被內è¯ï¼Œå› ç‚ºå®ƒæŽ¥å—一個éžå€åŸŸæ€§çš„ goto"
+
+#: tree-inline.c:1494
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it uses variable sized variables"
+msgstr "å‡½å¼ %q+F 無法被內è¯ï¼Œå› ç‚ºä½¿ç”¨äº†è®Šé•·è®Šæ•¸"
+
+#: tree-inline.c:2033 tree-inline.c:2043
+#, gcc-internal-format
+msgid "inlining failed in call to %q+F: %s"
+msgstr "å‘¼å« %q+F 時內è¯å¤±æ•—:%s"
+
+#: tree-inline.c:2034 tree-inline.c:2045
+#, gcc-internal-format
+msgid "called from here"
+msgstr "從此處呼å«"
+
+#: tree-mudflap.c:847
+#, gcc-internal-format
+msgid "mudflap checking not yet implemented for ARRAY_RANGE_REF"
+msgstr ""
+
+#: tree-mudflap.c:1038
+#, gcc-internal-format
+msgid "mudflap cannot track %qs in stub function"
+msgstr ""
+
+#: tree-mudflap.c:1265
+#, gcc-internal-format
+msgid "mudflap cannot track unknown size extern %qs"
+msgstr ""
+
+#: tree-nomudflap.c:51
+#, gcc-internal-format
+msgid "mudflap: this language is not supported"
+msgstr "mudflap:這個語言ä¸å—支æ´"
+
+#: tree-optimize.c:478
+#, gcc-internal-format
+msgid "size of return value of %q+D is %u bytes"
+msgstr "%q+D 回傳值的大å°ç‚º %u ä½å…ƒçµ„"
+
+#: tree-optimize.c:481
+#, gcc-internal-format
+msgid "size of return value of %q+D is larger than %wd bytes"
+msgstr "%q+D 回傳值的大å°ç‚º %wd ä½å…ƒçµ„"
+
+#: tree-outof-ssa.c:614 tree-outof-ssa.c:629 tree-outof-ssa.c:643
+#: tree-outof-ssa.c:665 tree-outof-ssa.c:1120 tree-outof-ssa.c:1872
+#: tree-ssa-live.c:429 tree-ssa-live.c:1835
+#, gcc-internal-format
+msgid "SSA corruption"
+msgstr "SSA æ壞"
+
+#: tree-outof-ssa.c:2287
+#, gcc-internal-format
+msgid " Pending stmts not issued on PRED edge (%d, %d)\n"
+msgstr ""
+
+#: tree-outof-ssa.c:2293
+#, gcc-internal-format
+msgid " Pending stmts not issued on SUCC edge (%d, %d)\n"
+msgstr ""
+
+#: tree-outof-ssa.c:2300
+#, gcc-internal-format
+msgid " Pending stmts not issued on ENTRY edge (%d, %d)\n"
+msgstr ""
+
+#: tree-outof-ssa.c:2306
+#, gcc-internal-format
+msgid " Pending stmts not issued on EXIT edge (%d, %d)\n"
+msgstr ""
+
+#: tree-profile.c:216
+#, gcc-internal-format
+msgid "unimplemented functionality"
+msgstr "未實作的功能"
+
+#: tree-ssa-loop-niter.c:1035
+#, gcc-internal-format
+msgid "%H%s"
+msgstr "%H%s"
+
+#: tree-ssa-operands.c:1328
+#, gcc-internal-format
+msgid "internal error"
+msgstr "內部錯誤"
+
+#: tree-ssa.c:111
+#, gcc-internal-format
+msgid "expected an SSA_NAME object"
+msgstr "需è¦ä¸€å€‹ SSA_NAME 物件"
+
+#: tree-ssa.c:117
+#, gcc-internal-format
+msgid "type mismatch between an SSA_NAME and its symbol"
+msgstr ""
+
+#: tree-ssa.c:123
+#, gcc-internal-format
+msgid "found an SSA_NAME that had been released into the free pool"
+msgstr ""
+
+#: tree-ssa.c:129
+#, gcc-internal-format
+msgid "found a virtual definition for a GIMPLE register"
+msgstr ""
+
+#: tree-ssa.c:135
+#, gcc-internal-format
+msgid "found a real definition for a non-register"
+msgstr "找到éžæš«å­˜å™¨çš„真實定義"
+
+#: tree-ssa.c:142
+#, gcc-internal-format
+msgid "found real variable when subvariables should have appeared"
+msgstr ""
+
+#: tree-ssa.c:171
+#, gcc-internal-format
+msgid "SSA_NAME created in two different blocks %i and %i"
+msgstr ""
+
+#: tree-ssa.c:180
+#, gcc-internal-format
+msgid "SSA_NAME_DEF_STMT is wrong"
+msgstr "SSA_NAME_DEF_STMT ä¸æ­£ç¢º"
+
+#: tree-ssa.c:238
+#, gcc-internal-format
+msgid "missing definition"
+msgstr "定義缺失"
+
+#: tree-ssa.c:244
+#, gcc-internal-format
+msgid "definition in block %i does not dominate use in block %i"
+msgstr ""
+
+#: tree-ssa.c:252
+#, gcc-internal-format
+msgid "definition in block %i follows the use"
+msgstr ""
+
+#: tree-ssa.c:259
+#, gcc-internal-format
+msgid "SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set"
+msgstr ""
+
+#: tree-ssa.c:267
+#, gcc-internal-format
+msgid "no immediate_use list"
+msgstr "沒有 immediate_use 清單"
+
+#: tree-ssa.c:279
+#, gcc-internal-format
+msgid "wrong immediate use list"
+msgstr "錯誤的 immediate use 清單"
+
+#: tree-ssa.c:312
+#, gcc-internal-format
+msgid "incoming edge count does not match number of PHI arguments"
+msgstr ""
+
+#: tree-ssa.c:327
+#, gcc-internal-format
+msgid "PHI argument is missing for edge %d->%d"
+msgstr "é‚Š %d->%d 缺少 PHI åƒæ•¸"
+
+#: tree-ssa.c:336
+#, gcc-internal-format
+msgid "PHI argument is not SSA_NAME, or invariant"
+msgstr ""
+
+#: tree-ssa.c:348
+#, gcc-internal-format
+msgid "wrong edge %d->%d for PHI argument"
+msgstr "PHI åƒæ•¸é‚Š %d->%d 錯誤"
+
+#: tree-ssa.c:397
+#, gcc-internal-format
+msgid "non-addressable variable inside an alias set"
+msgstr ""
+
+#: tree-ssa.c:413
+#, gcc-internal-format
+msgid "addressable variable that is an alias tag but is not in any alias set"
+msgstr ""
+
+#: tree-ssa.c:423
+#, gcc-internal-format
+msgid "verify_flow_insensitive_alias_info failed"
+msgstr "verify_flow_sensitive_alias_info 失敗"
+
+#: tree-ssa.c:465
+#, gcc-internal-format
+msgid "dereferenced pointers should have a name or a type tag"
+msgstr "æ領的指標應具有一個å稱或類型標記"
+
+#: tree-ssa.c:472
+#, gcc-internal-format
+msgid "pointers with a memory tag, should have points-to sets"
+msgstr ""
+
+#: tree-ssa.c:480
+#, gcc-internal-format
+msgid "pointer escapes but its name tag is not call-clobbered"
+msgstr ""
+
+#: tree-ssa.c:489
+#, gcc-internal-format
+msgid "verify_flow_sensitive_alias_info failed"
+msgstr "verify_flow_sensitive_alias_info 失敗"
+
+#: tree-ssa.c:566
+#, gcc-internal-format
+msgid "alias set of a pointer's type tag should be a superset of the corresponding name tag"
+msgstr ""
+
+#: tree-ssa.c:582
+#, gcc-internal-format
+msgid "two different pointers with identical points-to sets but different name tags"
+msgstr ""
+
+#: tree-ssa.c:614
+#, gcc-internal-format
+msgid "verify_name_tags failed"
+msgstr "verify_name_tags 失敗"
+
+#: tree-ssa.c:685
+#, gcc-internal-format
+msgid "AUX pointer initialized for edge %d->%d"
+msgstr "為邊 %d->%d åˆå§‹åŒ– AUX 指標"
+
+#: tree-ssa.c:708
+#, gcc-internal-format
+msgid "stmt (%p) marked modified after optimization pass : "
+msgstr ""
+
+#: tree-ssa.c:726
+#, gcc-internal-format
+msgid "statement makes a memory store, but has no V_MAY_DEFS nor V_MUST_DEFS"
+msgstr ""
+
+#: tree-ssa.c:737
+#, gcc-internal-format
+msgid "statement makes aliased stores, but has no V_MAY_DEFS"
+msgstr ""
+
+#: tree-ssa.c:776
+#, gcc-internal-format
+msgid "verify_ssa failed"
+msgstr "verify_ssa 失敗"
+
+#. We only do data flow with SSA_NAMEs, so that's all we
+#. can warn about.
+#: tree-ssa.c:1163
+#, gcc-internal-format
+msgid "%H%qD is used uninitialized in this function"
+msgstr "%H此函å¼ä¸­çš„ %qD 在使用å‰æœªåˆå§‹åŒ–"
+
+#: tree-ssa.c:1201
+#, gcc-internal-format
+msgid "%H%qD may be used uninitialized in this function"
+msgstr "%H此函å¼ä¸­çš„ %qD 在使用å‰å¯èƒ½æœªåˆå§‹åŒ–"
+
+#: tree-vect-transform.c:561
+#, gcc-internal-format
+msgid "no support for induction"
+msgstr "ä¸æ”¯æ´æ­¸ç´"
+
+#: tree.c:3497
+#, gcc-internal-format
+msgid "%q+D already declared with dllexport attribute: dllimport ignored"
+msgstr "%q+D 已被宣告為具有 dllexport 屬性:忽略 dllimport"
+
+#: tree.c:3509
+#, gcc-internal-format
+msgid "%q+D redeclared without dllimport attribute after being referenced with dll linkage"
+msgstr "%q+D é‡å®£å‘Šæ™‚沒有 dllimport 屬性,但已被åšç‚º dllimport 連çµåƒç…§éŽ"
+
+#: tree.c:3525 config/i386/winnt-cxx.c:70
+#, gcc-internal-format
+msgid "%q+D redeclared without dllimport attribute: previous dllimport ignored"
+msgstr "%q+D é‡å®£å‘Šæ™‚沒有 dllimport 屬性:忽略先å‰çš„ dllimport"
+
+#: tree.c:3577 config/darwin.c:1236 config/arm/arm.c:2890
+#: config/arm/arm.c:2918 config/avr/avr.c:4656 config/h8300/h8300.c:5282
+#: config/h8300/h8300.c:5306 config/i386/i386.c:2066 config/i386/i386.c:16701
+#: config/ia64/ia64.c:534 config/m68hc11/m68hc11.c:1118
+#: config/sh/symbian.c:409 config/sh/symbian.c:416
+#, gcc-internal-format
+msgid "%qs attribute ignored"
+msgstr "忽略 %qs 屬性"
+
+#: tree.c:3596
+#, gcc-internal-format
+msgid "inline function %q+D declared as dllimport: attribute ignored"
+msgstr "å…§è¯å‡½å¼ %q+D 宣告為 dllimport:忽略此屬性"
+
+#: tree.c:3604
+#, gcc-internal-format
+msgid "function %q+D definition is marked dllimport"
+msgstr "å‡½å¼ %q+D 的定義被標記為 dllimport"
+
+#: tree.c:3612 config/sh/symbian.c:431
+#, gcc-internal-format
+msgid "variable %q+D definition is marked dllimport"
+msgstr "變數 %q+D 的定義被標記為 dllimport"
+
+#: tree.c:3635 config/sh/symbian.c:506
+#, gcc-internal-format
+msgid "external linkage required for symbol %q+D because of %qs attribute"
+msgstr ""
+
+#: tree.c:5029
+#, gcc-internal-format
+msgid "arrays of functions are not meaningful"
+msgstr "函å¼é™£åˆ—是沒有æ„義的"
+
+#: tree.c:5081
+#, gcc-internal-format
+msgid "function return type cannot be function"
+msgstr "函å¼ä¸èƒ½å›žå‚³å‡½å¼"
+
+#: tree.c:6000
+#, gcc-internal-format
+msgid "tree check: %s, have %s in %s, at %s:%d"
+msgstr "樹檢查:%s,得到 %s 在 %s,於 %s:%d"
+
+#: tree.c:6037
+#, gcc-internal-format
+msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
+msgstr "樹檢查:ä¸éœ€è¦ %s,得到 %s 在 %s,於 %s:%d"
+
+#: tree.c:6050
+#, gcc-internal-format
+msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
+msgstr "樹檢查:需è¦é¡žåˆ¥ %qs,得到 %qs(%s) 在 %s,於 %s:%d"
+
+#: tree.c:6075
+#, gcc-internal-format
+msgid "tree check: expected tree that contains %qs structure, have %qs in %s, at %s:%d"
+msgstr "樹檢查:需è¦åŒ…å« %qs çµæ§‹çš„樹,得到 %s 在 %s,於 %s:%d"
+
+#: tree.c:6089
+#, gcc-internal-format
+msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
+msgstr ""
+
+#: tree.c:6101
+#, gcc-internal-format
+msgid "tree check: accessed elt %d of phi_node with %d elts in %s, at %s:%d"
+msgstr ""
+
+#: tree.c:6113
+#, gcc-internal-format
+msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
+msgstr ""
+
+#: value-prof.c:101
+#, gcc-internal-format
+msgid "%HCorrupted value profile: %s profiler overall count (%d) does not match BB count (%d)"
+msgstr ""
+
+#: varasm.c:470
+#, gcc-internal-format
+msgid "%+D causes a section type conflict"
+msgstr "%+D 導致一個å€æ®µé¡žåž‹è¡çª"
+
+#: varasm.c:930 varasm.c:938
+#, gcc-internal-format
+msgid "register name not specified for %q+D"
+msgstr "%q+D 的暫存器å無效"
+
+#: varasm.c:940
+#, gcc-internal-format
+msgid "invalid register name for %q+D"
+msgstr "%q+D 的暫存器å無效"
+
+#: varasm.c:942
+#, gcc-internal-format
+msgid "data type of %q+D isn%'t suitable for a register"
+msgstr "為 %q+D 指定的暫存器ä¸é©åˆæ­¤è³‡æ–™é¡žåž‹"
+
+#: varasm.c:945
+#, gcc-internal-format
+msgid "register specified for %q+D isn%'t suitable for data type"
+msgstr "為 %q+D 指定的暫存器ä¸é©åˆæ­¤è³‡æ–™é¡žåž‹"
+
+#: varasm.c:955
+#, gcc-internal-format
+msgid "global register variable has initial value"
+msgstr "全域暫存器變數有åˆå§‹å€¼"
+
+#: varasm.c:959
+#, gcc-internal-format
+msgid "optimization may eliminate reads and/or writes to register variables"
+msgstr "最佳化å¯èƒ½æœƒåŽ»é™¤å°æš«å­˜å™¨è®Šæ•¸çš„讀寫"
+
+#: varasm.c:997
+#, gcc-internal-format
+msgid "register name given for non-register variable %q+D"
+msgstr "為éžæš«å­˜å™¨è®Šæ•¸ %q+D 給定了暫存器å"
+
+#: varasm.c:1074
+#, gcc-internal-format
+msgid "global destructors not supported on this target"
+msgstr "全域解構函å¼åœ¨æ­¤ç›®æ¨™å¹³è‡ºä¸Šä¸å—支æ´"
+
+#: varasm.c:1135
+#, gcc-internal-format
+msgid "global constructors not supported on this target"
+msgstr "全域建構å¼åœ¨æ­¤ç›®æ¨™å¹³è‡ºä¸Šä¸å—支æ´"
+
+#: varasm.c:1697
+#, gcc-internal-format
+msgid "alignment of %q+D is greater than maximum object file alignment. Using %d"
+msgstr "%q+D çš„å°é½Šè¦æ±‚大於目的檔案的最大å°é½Šé‚Šç•Œã€‚使用 %d"
+
+#: varasm.c:1736
+#, gcc-internal-format
+msgid "thread-local COMMON data not implemented"
+msgstr "執行緒å€åŸŸæ€§çš„ COMMON 資料沒有實作"
+
+#: varasm.c:1761
+#, gcc-internal-format
+msgid "requested alignment for %q+D is greater than implemented alignment of %wu"
+msgstr "%q+D 需è¦çš„å°é½Šé‚Šç•Œå¤§æ–¼å¯¦ä½œçš„å°é½Šé‚Šç•Œ %wu"
+
+#: varasm.c:3933
+#, gcc-internal-format
+msgid "no-op convert from %wd to %wd bytes in initializer"
+msgstr ""
+
+#: varasm.c:3977
+#, gcc-internal-format
+msgid "initializer for integer value is too complicated"
+msgstr "整數值的åˆå§‹å€¼è¨­å®šå¤ªè¤‡é›œ"
+
+#: varasm.c:3982
+#, gcc-internal-format
+msgid "initializer for floating value is not a floating constant"
+msgstr "浮點值的åˆå§‹å€¼è¨­å®šä¸æ˜¯ä¸€å€‹æµ®é»žå¸¸æ•¸"
+
+#: varasm.c:4251
+#, gcc-internal-format
+msgid "invalid initial value for member %qs"
+msgstr "æˆå“¡ %qs çš„åˆå§‹å€¼ç„¡æ•ˆ"
+
+#: varasm.c:4451 varasm.c:4495
+#, gcc-internal-format
+msgid "weak declaration of %q+D must precede definition"
+msgstr "%q+D 的弱宣告必須在定義之å‰"
+
+#: varasm.c:4459
+#, gcc-internal-format
+msgid "weak declaration of %q+D after first use results in unspecified behavior"
+msgstr "%q+D 的弱宣告出ç¾åœ¨ç¬¬ä¸€æ¬¡ä½¿ç”¨ä¹‹å¾Œå°‡å°Žè‡´ä¸å¯é æœŸçš„行為"
+
+#: varasm.c:4493
+#, gcc-internal-format
+msgid "weak declaration of %q+D must be public"
+msgstr "%q+D 的弱宣告必須是公共的"
+
+#: varasm.c:4502
+#, gcc-internal-format
+msgid "weak declaration of %q+D not supported"
+msgstr "ä¸æ”¯æ´ %q+D 的弱宣告"
+
+#: varasm.c:4532
+#, gcc-internal-format
+msgid "only weak aliases are supported in this configuration"
+msgstr "æ­¤é…置下åªæ”¯æ´å¼±åˆ¥å"
+
+#: varasm.c:4762
+#, gcc-internal-format
+msgid "%Jweakref is not supported in this configuration"
+msgstr "%J別ååƒç…§åœ¨æ­¤é…置下ä¸å—支æ´"
+
+#: varasm.c:4835
+#, gcc-internal-format
+msgid "%q+D aliased to undefined symbol %qs"
+msgstr "%q+D 是未定義符號 %qs 的別å"
+
+#: varasm.c:4840
+#, gcc-internal-format
+msgid "%q+D aliased to external symbol %qs"
+msgstr "%q+D 是外部符號 %qs 的別å"
+
+#: varasm.c:4879
+#, gcc-internal-format
+msgid "weakref %q+D ultimately targets itself"
+msgstr "weakref %q+D 最終åƒç…§å…¶è‡ªèº«"
+
+#: varasm.c:4892
+#, gcc-internal-format
+msgid "%Jalias definitions not supported in this configuration"
+msgstr "%J別å定義在此é…置下ä¸å—支æ´"
+
+#: varasm.c:4897
+#, gcc-internal-format
+msgid "%Jonly weak aliases are supported in this configuration"
+msgstr "%Jæ­¤é…置下åªæ”¯æ´å¼±åˆ¥å"
+
+#: varasm.c:4954
+#, gcc-internal-format
+msgid "visibility attribute not supported in this configuration; ignored"
+msgstr "å¯è¦‹æ€§å±¬æ€§åœ¨æ­¤é…置下ä¸å—支æ´ï¼›å·²å¿½ç•¥"
+
+#: varray.c:207
+#, gcc-internal-format
+msgid "virtual array %s[%lu]: element %lu out of bounds in %s, at %s:%d"
+msgstr "虛陣列 %s[%lu]:元素 %lu 越界,在 %s 中,於 %s:%d"
+
+#: varray.c:217
+#, gcc-internal-format
+msgid "underflowed virtual array %s in %s, at %s:%d"
+msgstr "虛擬陣列 %s å‘下溢ä½ï¼Œåœ¨ %s 中,於 %s:%d"
+
+#: vec.c:153
+#, gcc-internal-format
+msgid "vector %s %s domain error, in %s at %s:%u"
+msgstr "å‘é‡ %s %s 欄ä½éŒ¯èª¤ï¼Œåœ¨ %s æ–¼ %s:%u"
+
+#. Print an error message for unrecognized stab codes.
+#: xcoffout.c:187
+#, gcc-internal-format
+msgid "no sclass for %s stab (0x%x)"
+msgstr ""
+
+#: config/darwin-c.c:86
+#, gcc-internal-format
+msgid "too many #pragma options align=reset"
+msgstr ""
+
+#: config/darwin-c.c:106 config/darwin-c.c:109 config/darwin-c.c:111
+#: config/darwin-c.c:113
+#, gcc-internal-format
+msgid "malformed '#pragma options', ignoring"
+msgstr "「#pragma optionsã€æ ¼å¼éŒ¯èª¤ - 已忽略"
+
+#: config/darwin-c.c:116
+#, gcc-internal-format
+msgid "junk at end of '#pragma options'"
+msgstr "「#pragma optionsã€æœ«å°¾æœ‰ç„¡ç”¨å­—å…ƒ"
+
+#: config/darwin-c.c:126
+#, gcc-internal-format
+msgid "malformed '#pragma options align={mac68k|power|reset}', ignoring"
+msgstr ""
+
+#: config/darwin-c.c:138
+#, gcc-internal-format
+msgid "missing '(' after '#pragma unused', ignoring"
+msgstr "「#pragma unusedã€å¾Œé¢ç¼ºå°‘「(ã€ï¼Œå¿½ç•¥"
+
+#: config/darwin-c.c:156
+#, gcc-internal-format
+msgid "missing ')' after '#pragma unused', ignoring"
+msgstr "「#pragma unusedã€å¾Œé¢ç¼ºå°‘「)ã€ï¼Œå¿½ç•¥"
+
+#: config/darwin-c.c:159
+#, gcc-internal-format
+msgid "junk at end of '#pragma unused'"
+msgstr "「#pragma unusedã€æœ«å°¾æœ‰ç„¡ç”¨å­—å…ƒ"
+
+#: config/darwin-c.c:385
+#, gcc-internal-format
+msgid "subframework include %s conflicts with framework include"
+msgstr ""
+
+#: config/darwin-c.c:577
+#, gcc-internal-format
+msgid "Unknown value %qs of -mmacosx-version-min"
+msgstr ""
+
+#: config/darwin.c:1350
+#, gcc-internal-format
+msgid "internal and protected visibility attributes not supported in this configuration; ignored"
+msgstr "內部和ä¿è­·çš„å¯è¦‹æ€§å±¬æ€§åœ¨æ­¤é…置下ä¸å—支æ´ï¼›å·²å¿½ç•¥"
+
+#: config/host-darwin.c:63
+#, gcc-internal-format
+msgid "couldn't unmap pch_address_space: %m"
+msgstr ""
+
+#: config/sol2-c.c:94 config/sol2-c.c:110
+#, gcc-internal-format
+msgid "malformed %<#pragma align%>, ignoring"
+msgstr "%<#pragma align%> æ ¼å¼éŒ¯èª¤ - 已忽略"
+
+#: config/sol2-c.c:103
+#, gcc-internal-format
+msgid "invalid alignment for %<#pragma align%>, ignoring"
+msgstr "%<#pragma align%> 指定的å°é½Šé‚Šç•Œç„¡æ•ˆï¼Œå¿½ç•¥"
+
+#: config/sol2-c.c:118
+#, gcc-internal-format
+msgid "%<#pragma align%> must appear before the declaration of %D, ignoring"
+msgstr ""
+
+#: config/sol2-c.c:130 config/sol2-c.c:142
+#, gcc-internal-format
+msgid "malformed %<#pragma align%>"
+msgstr "%<#pragma align%> æ ¼å¼éŒ¯èª¤"
+
+#: config/sol2-c.c:137
+#, gcc-internal-format
+msgid "junk at end of %<#pragma align%>"
+msgstr "%<#pragma align%> 末尾有無用字元"
+
+#: config/sol2-c.c:158 config/sol2-c.c:165
+#, gcc-internal-format
+msgid "malformed %<#pragma init%>, ignoring"
+msgstr "%<#pragma init%> æ ¼å¼éŒ¯èª¤ - 已忽略"
+
+#: config/sol2-c.c:188 config/sol2-c.c:200
+#, gcc-internal-format
+msgid "malformed %<#pragma init%>"
+msgstr "%<#pragma init%> æ ¼å¼éŒ¯èª¤"
+
+#: config/sol2-c.c:195
+#, gcc-internal-format
+msgid "junk at end of %<#pragma init%>"
+msgstr "%<#pragma init%> 末尾有無用字元"
+
+#: config/sol2-c.c:216 config/sol2-c.c:223
+#, gcc-internal-format
+msgid "malformed %<#pragma fini%>, ignoring"
+msgstr "%<#pragma fini%> æ ¼å¼éŒ¯èª¤ - 已忽略"
+
+#: config/sol2-c.c:246 config/sol2-c.c:258
+#, gcc-internal-format
+msgid "malformed %<#pragma fini%>"
+msgstr "%<#pragma fini%> æ ¼å¼éŒ¯èª¤"
+
+#: config/sol2-c.c:253
+#, gcc-internal-format
+msgid "junk at end of %<#pragma fini%>"
+msgstr "%<#pragma fini%> 末尾有無用字元"
+
+#: config/sol2.c:54
+#, gcc-internal-format
+msgid "ignoring %<#pragma align%> for explicitly aligned %q+D"
+msgstr "為明確å°é½Šçš„ %q+D 忽略 %<#pragma align%>"
+
+#. 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
+#, gcc-internal-format
+msgid "alias definitions not supported in Mach-O; ignored"
+msgstr ""
+
+#. No profiling.
+#: config/vx-common.h:83
+#, gcc-internal-format
+msgid "profiler support for VxWorks"
+msgstr "å° VxWorks çš„å–樣支æ´"
+
+#: config/windiss.h:37
+#, gcc-internal-format
+msgid "profiler support for WindISS"
+msgstr "å° WindISS çš„å–樣支æ´"
+
+#: config/alpha/alpha.c:231 config/rs6000/rs6000.c:1578
+#, gcc-internal-format
+msgid "bad value %qs for -mtls-size switch"
+msgstr "-mtls-size 開關的值 %qs ä¸æ­£ç¢º"
+
+#: config/alpha/alpha.c:285
+#, gcc-internal-format
+msgid "-f%s ignored for Unicos/Mk (not supported)"
+msgstr "-f%s 在 Unicos/Mk 上被忽略(ä¸å—支æ´)"
+
+#: config/alpha/alpha.c:309
+#, gcc-internal-format
+msgid "-mieee not supported on Unicos/Mk"
+msgstr "-mieee 在 Unicos/Mk 上ä¸è¢«æ”¯æ´"
+
+#: config/alpha/alpha.c:320
+#, gcc-internal-format
+msgid "-mieee-with-inexact not supported on Unicos/Mk"
+msgstr "-mieee-with-inexact 在 Unicos/Mk 上ä¸è¢«æ”¯æ´"
+
+#: config/alpha/alpha.c:337
+#, gcc-internal-format
+msgid "bad value %qs for -mtrap-precision switch"
+msgstr "-mtrap-precision 開關的值 %qs ä¸æ­£ç¢º"
+
+#: config/alpha/alpha.c:351
+#, gcc-internal-format
+msgid "bad value %qs for -mfp-rounding-mode switch"
+msgstr "-mfp-rounding-mode 開關的值 %qs ä¸æ­£ç¢º"
+
+#: config/alpha/alpha.c:366
+#, gcc-internal-format
+msgid "bad value %qs for -mfp-trap-mode switch"
+msgstr "-mfp-trap-mode 開關的值 %qs ä¸æ­£ç¢º"
+
+#: config/alpha/alpha.c:380 config/alpha/alpha.c:392
+#, gcc-internal-format
+msgid "bad value %qs for -mcpu switch"
+msgstr "-mcpu 開關的值 %qs 錯誤"
+
+#: config/alpha/alpha.c:399
+#, gcc-internal-format
+msgid "trap mode not supported on Unicos/Mk"
+msgstr "陷阱模å¼åœ¨ Unicos/Mk 上ä¸è¢«æ”¯æ´"
+
+#: config/alpha/alpha.c:406
+#, gcc-internal-format
+msgid "fp software completion requires -mtrap-precision=i"
+msgstr ""
+
+#: config/alpha/alpha.c:422
+#, gcc-internal-format
+msgid "rounding mode not supported for VAX floats"
+msgstr "æ¨å…¥æ¨¡å¼ä¸ç‚º VAX 浮點數所支æ´"
+
+#: config/alpha/alpha.c:427
+#, gcc-internal-format
+msgid "trap mode not supported for VAX floats"
+msgstr "陷阱模å¼ä¸ç‚º VAX 浮點數所支æ´"
+
+#: config/alpha/alpha.c:431
+#, gcc-internal-format
+msgid "128-bit long double not supported for VAX floats"
+msgstr "128 ä½ long double 在 VAX 上ä¸å—支æ´"
+
+#: config/alpha/alpha.c:459
+#, gcc-internal-format
+msgid "L%d cache latency unknown for %s"
+msgstr "L%d å¿«å–延é²ä¸æ˜Žï¼Œå° %s 來說"
+
+#: config/alpha/alpha.c:474
+#, gcc-internal-format
+msgid "bad value %qs for -mmemory-latency"
+msgstr "-mmemory-latency 開關的值 %qs 錯誤"
+
+#: config/alpha/alpha.c:6566 config/alpha/alpha.c:6569 config/s390/s390.c:8109
+#: config/s390/s390.c:8112
+#, gcc-internal-format
+msgid "bad builtin fcode"
+msgstr "錯誤的內建 fcode"
+
+#: config/arc/arc.c:390
+#, gcc-internal-format
+msgid "argument of %qs attribute is not a string constant"
+msgstr "%qs 屬性的引數ä¸æ˜¯ä¸€å€‹å­—串常數"
+
+#: config/arc/arc.c:398
+#, gcc-internal-format
+msgid "argument of %qs attribute is not \"ilink1\" or \"ilink2\""
+msgstr "%qs 屬性的引數ä¸æ˜¯ã€Œilink1ã€æˆ–「ilink2ã€"
+
+#: config/arm/arm.c:912
+#, gcc-internal-format
+msgid "switch -mcpu=%s conflicts with -march= switch"
+msgstr "é–‹é—œ -mcpu=%s 與 -march= é–‹é—œè¡çª"
+
+#: config/arm/arm.c:922 config/rs6000/rs6000.c:1230 config/sparc/sparc.c:706
+#, gcc-internal-format
+msgid "bad value (%s) for %s switch"
+msgstr "開關的åƒæ•¸(%s,屬於開關%s)ä¸æ­£ç¢º"
+
+#: config/arm/arm.c:1032
+#, gcc-internal-format
+msgid "target CPU does not support interworking"
+msgstr "目的 CPU ä¸æ”¯æ´äº¤äº’工作"
+
+#: config/arm/arm.c:1038
+#, gcc-internal-format
+msgid "target CPU does not support THUMB instructions"
+msgstr "目的 CPU ä¸æ”¯æ´ THUMB 指令"
+
+#: config/arm/arm.c:1056
+#, gcc-internal-format
+msgid "enabling backtrace support is only meaningful when compiling for the Thumb"
+msgstr ""
+
+#: config/arm/arm.c:1059
+#, gcc-internal-format
+msgid "enabling callee interworking support is only meaningful when compiling for the Thumb"
+msgstr ""
+
+#: config/arm/arm.c:1062
+#, gcc-internal-format
+msgid "enabling caller interworking support is only meaningful when compiling for the Thumb"
+msgstr ""
+
+#: config/arm/arm.c:1066
+#, gcc-internal-format
+msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
+msgstr "-mapcs-stack-check å’Œ -mno-apcs-frame 互ä¸ç›¸å®¹"
+
+#: config/arm/arm.c:1074
+#, gcc-internal-format
+msgid "-fpic and -mapcs-reent are incompatible"
+msgstr "-fpic å’Œ -mapcs-reent 互ä¸ç›¸å®¹"
+
+#: config/arm/arm.c:1077
+#, gcc-internal-format
+msgid "APCS reentrant code not supported. Ignored"
+msgstr "ä¸æ”¯æ´ APCS é‡å…¥ç¨‹å¼ç¢¼ã€‚已忽略"
+
+#: config/arm/arm.c:1085
+#, gcc-internal-format
+msgid "-g with -mno-apcs-frame may not give sensible debugging"
+msgstr "-g 與 -mno-apcs-frame 並用å¯èƒ½ä¸èƒ½çµ¦å‡ºæœ‰æ„義的除錯資訊"
+
+#: config/arm/arm.c:1093
+#, gcc-internal-format
+msgid "passing floating point arguments in fp regs not yet supported"
+msgstr "å°šä¸æ”¯æ´åœ¨æµ®é»žæš«å­˜å™¨ä¸­å‚³éžæµ®é»žåƒæ•¸"
+
+#: config/arm/arm.c:1135
+#, gcc-internal-format
+msgid "invalid ABI option: -mabi=%s"
+msgstr "無效的 ABI é¸é …:-mabi=%s"
+
+#: config/arm/arm.c:1141
+#, gcc-internal-format
+msgid "iwmmxt requires an AAPCS compatible ABI for proper operation"
+msgstr ""
+
+#: config/arm/arm.c:1144
+#, gcc-internal-format
+msgid "iwmmxt abi requires an iwmmxt capable cpu"
+msgstr "iwmmxt abi 需è¦ç›¸æ‡‰ CPU 的支æ´"
+
+#: config/arm/arm.c:1154
+#, gcc-internal-format
+msgid "invalid floating point emulation option: -mfpe=%s"
+msgstr "無效的浮點模擬é¸é …:-mfpe=%s"
+
+#: config/arm/arm.c:1171
+#, gcc-internal-format
+msgid "invalid floating point option: -mfpu=%s"
+msgstr "無效的浮點é¸é …:-mfpu=%s"
+
+#: config/arm/arm.c:1211
+#, gcc-internal-format
+msgid "invalid floating point abi: -mfloat-abi=%s"
+msgstr "無效的浮點 ABI:-mfloat-abi=%s"
+
+#: config/arm/arm.c:1218
+#, gcc-internal-format
+msgid "-mfloat-abi=hard and VFP"
+msgstr "-mfloat-abi=hard 和 VFP"
+
+#: config/arm/arm.c:1241
+#, gcc-internal-format
+msgid "invalid thread pointer option: -mtp=%s"
+msgstr "無效的執行緒指é˜é¸é …:-mtp=%s"
+
+#: config/arm/arm.c:1254
+#, gcc-internal-format
+msgid "can not use -mtp=cp15 with -mthumb"
+msgstr "-mtp=cp15 å’Œ -mthumb ä¸èƒ½ä¸¦ç”¨"
+
+#: config/arm/arm.c:1268
+#, gcc-internal-format
+msgid "structure size boundary can only be set to %s"
+msgstr "çµæ§‹å¤§å°é‚Šç•Œåªèƒ½è¢«è¨­å®šç‚º %s"
+
+#: config/arm/arm.c:1277
+#, gcc-internal-format
+msgid "-mpic-register= is useless without -fpic"
+msgstr "-mpic-register= ä¸èˆ‡ -fpic 並用時ä¸èµ·ä½œç”¨"
+
+#: config/arm/arm.c:1284
+#, gcc-internal-format
+msgid "unable to use '%s' for PIC register"
+msgstr "「%sã€ä¸èƒ½åšç‚º PIC 暫存器"
+
+#: config/arm/arm.c:2858 config/arm/arm.c:2876 config/avr/avr.c:4676
+#: config/bfin/bfin.c:2733 config/c4x/c4x.c:4076 config/h8300/h8300.c:5258
+#: config/i386/i386.c:2030 config/m68hc11/m68hc11.c:1155
+#: config/m68k/m68k.c:376 config/mcore/mcore.c:3032 config/mt/mt.c:1274
+#: config/rs6000/rs6000.c:17383 config/sh/sh.c:7568 config/sh/sh.c:7589
+#: config/sh/sh.c:7612 config/stormy16/stormy16.c:2241 config/v850/v850.c:2111
+#, gcc-internal-format
+msgid "%qs attribute only applies to functions"
+msgstr "%qs 屬性åªèƒ½å¥—用於函å¼"
+
+#: config/arm/arm.c:11997
+#, gcc-internal-format
+msgid "unable to compute real location of stacked parameter"
+msgstr ""
+
+#. @@@ better error message
+#: config/arm/arm.c:12642 config/arm/arm.c:12679
+#, gcc-internal-format
+msgid "selector must be an immediate"
+msgstr "é¸æ“‡å­å¿…須是立å³æ•¸å€¼"
+
+#. @@@ better error message
+#: config/arm/arm.c:12722 config/i386/i386.c:15478 config/i386/i386.c:15512
+#, gcc-internal-format
+msgid "mask must be an immediate"
+msgstr "é®ç½©å¿…須是一個立å³æ•¸å€¼"
+
+#: config/arm/arm.c:13381
+#, gcc-internal-format
+msgid "no low registers available for popping high registers"
+msgstr "高暫存器彈堆疊時沒有å¯ç”¨çš„低暫存器"
+
+#: config/arm/arm.c:13605
+#, gcc-internal-format
+msgid "interrupt Service Routines cannot be coded in Thumb mode"
+msgstr ""
+
+#: config/arm/pe.c:165 config/mcore/mcore.c:2898
+#, gcc-internal-format
+msgid "initialized variable %q+D is marked dllimport"
+msgstr "經åˆå§‹åŒ–的變數 %q+D 被標記為 dllimport"
+
+#: config/arm/pe.c:174
+#, gcc-internal-format
+msgid "static variable %q+D is marked dllimport"
+msgstr "經åˆå§‹åŒ–的變數 %q+D 被標記為 dllimport"
+
+#: config/avr/avr.c:531
+#, gcc-internal-format
+msgid "large frame pointer change (%d) with -mtiny-stack"
+msgstr "框架指標發生大的變更(%d),但å»æŒ‡å®šäº† -mtiny-stack"
+
+#: config/avr/avr.c:4649
+#, gcc-internal-format
+msgid "only initialized variables can be placed into program memory area"
+msgstr ""
+
+#: config/avr/avr.c:4693
+#, gcc-internal-format
+msgid "%qs appears to be a misspelled interrupt handler"
+msgstr "%qs 似乎是一個拼寫錯的æ’斷處ç†è€…"
+
+#: config/avr/avr.c:4701
+#, gcc-internal-format
+msgid "%qs appears to be a misspelled signal handler"
+msgstr "%qs 似乎是一個拼寫錯的信號處ç†è€…"
+
+#: config/avr/avr.c:4770
+#, gcc-internal-format
+msgid "only uninitialized variables can be placed in the .noinit section"
+msgstr "åªæœ‰æœªåˆå§‹åŒ–的變數æ‰èƒ½æ”¾åœ¨ .noinit å€æ®µä¸­"
+
+#: config/avr/avr.c:4784
+#, gcc-internal-format
+msgid "MCU %qs supported for assembler only"
+msgstr "MCU %qs åªæ”¯æ´çµ„譯器"
+
+#: config/avr/avr.h:713
+#, gcc-internal-format
+msgid "trampolines not supported"
+msgstr "ä¸æ”¯æ´è¹¦åºŠ"
+
+#: config/bfin/bfin.c:1815 config/m68k/m68k.c:294
+#, gcc-internal-format
+msgid "-mshared-library-id=%s is not between 0 and %d"
+msgstr "-mshared-library-id=%s ä¸åœ¨ 0 å’Œ %d 之間"
+
+#: config/bfin/bfin.c:1835
+#, gcc-internal-format
+msgid "-mshared-library-id= specified without -mid-shared-library"
+msgstr "指定了 -mshared-library-id= å»æ²’有使用 -mid-shared-library"
+
+#: config/bfin/bfin.c:2738
+#, gcc-internal-format
+msgid "multiple function type attributes specified"
+msgstr "指定了多個函å¼é¡žåž‹å±¬æ€§"
+
+#: config/bfin/bfin.c:2794
+#, gcc-internal-format
+msgid "`%s' attribute only applies to functions"
+msgstr "「%sã€å±¬æ€§åªèƒ½ç”¨æ–¼å‡½å¼"
+
+#: config/bfin/bfin.c:2805
+#, gcc-internal-format
+msgid "can't apply both longcall and shortcall attributes to the same function"
+msgstr ""
+
+#: config/c4x/c4x-c.c:72
+#, gcc-internal-format
+msgid "missing '(' after '#pragma %s' - ignored"
+msgstr "「#pragma %sã€å¾Œç¼ºå°‘「(〠- 已忽略"
+
+#: config/c4x/c4x-c.c:75
+#, gcc-internal-format
+msgid "missing function name in '#pragma %s' - ignored"
+msgstr "「#pragma %sã€ä¸­ç¼ºå°‘函å¼å,忽略"
+
+#: config/c4x/c4x-c.c:80
+#, gcc-internal-format
+msgid "malformed '#pragma %s' - ignored"
+msgstr "「#pragma %sã€æ ¼å¼éŒ¯èª¤ - 已忽略"
+
+#: config/c4x/c4x-c.c:82
+#, gcc-internal-format
+msgid "missing section name in '#pragma %s' - ignored"
+msgstr "「#pragma %sã€ä¸­ç¼ºå°‘å€æ®µå,忽略"
+
+#: config/c4x/c4x-c.c:87
+#, gcc-internal-format
+msgid "missing ')' for '#pragma %s' - ignored"
+msgstr "「#pragma %sã€ç¼ºå°‘「(〠- 已忽略"
+
+#: config/c4x/c4x-c.c:90
+#, gcc-internal-format
+msgid "junk at end of '#pragma %s'"
+msgstr "「#pragma %sã€æœ«å°¾æœ‰ç„¡ç”¨å­—å…ƒ"
+
+#: config/c4x/c4x.c:860
+#, gcc-internal-format
+msgid "ISR %s requires %d words of local vars, max is 32767"
+msgstr "ISR %s éœ€è¦ %d 字大å°çš„局部變數,最大值為 32767"
+
+#. This function is for retrieving a part of an instruction name for
+#. an operator, for immediate output. If that ever happens for
+#. MULT, we need to apply TARGET_MUL_BUG in the caller. Make sure
+#. we notice.
+#: config/cris/cris.c:435
+#, gcc-internal-format
+msgid "MULT case in cris_op_str"
+msgstr ""
+
+#: config/cris/cris.c:813
+#, gcc-internal-format
+msgid "invalid use of ':' modifier"
+msgstr "錯誤地使用了「:ã€ä¿®é£¾ç¬¦"
+
+#: config/cris/cris.c:986
+#, gcc-internal-format
+msgid "internal error: bad register: %d"
+msgstr "內部錯誤:錯誤的暫存器:%dt"
+
+#: config/cris/cris.c:1528
+#, gcc-internal-format
+msgid "internal error: sideeffect-insn affecting main effect"
+msgstr ""
+
+#: config/cris/cris.c:1552
+#, gcc-internal-format
+msgid "unknown cc_attr value"
+msgstr "ä¸æ˜Žçš„ cc_attr 值"
+
+#. If we get here, the caller got its initial tests wrong.
+#: config/cris/cris.c:1903
+#, gcc-internal-format
+msgid "internal error: cris_side_effect_mode_ok with bad operands"
+msgstr ""
+
+#: config/cris/cris.c:2106
+#, gcc-internal-format
+msgid "-max-stackframe=%d is not usable, not between 0 and %d"
+msgstr "-max-stackframe=%d 無法使用,ä¸åœ¨ 0 å’Œ %d 之間"
+
+#: config/cris/cris.c:2134
+#, gcc-internal-format
+msgid "unknown CRIS version specification in -march= or -mcpu= : %s"
+msgstr "-march= 或 -mcpu= 中ä¸æ˜Žçš„ CRIS CPU 版本設定:%s"
+
+#: config/cris/cris.c:2170
+#, gcc-internal-format
+msgid "unknown CRIS cpu version specification in -mtune= : %s"
+msgstr "-mtune= 中ä¸æ˜Žçš„ CRIS CPU 版本設定:%s"
+
+#: config/cris/cris.c:2188
+#, gcc-internal-format
+msgid "-fPIC and -fpic are not supported in this configuration"
+msgstr "-fPIC å’Œ -fpic 在此é…置下ä¸å—支æ´"
+
+#: config/cris/cris.c:2203
+#, gcc-internal-format
+msgid "that particular -g option is invalid with -maout and -melinux"
+msgstr ""
+
+#: config/cris/cris.c:2416
+#, gcc-internal-format
+msgid "Unknown src"
+msgstr "ä¸æ˜Žä¾†æº"
+
+#: config/cris/cris.c:2477
+#, gcc-internal-format
+msgid "Unknown dest"
+msgstr "ä¸æ˜Žç›®çš„"
+
+#: config/cris/cris.c:2762
+#, gcc-internal-format
+msgid "stackframe too big: %d bytes"
+msgstr "堆疊框架太大:%d ä½å…ƒçµ„"
+
+#: config/cris/cris.c:3214 config/cris/cris.c:3241
+#, gcc-internal-format
+msgid "expand_binop failed in movsi got"
+msgstr ""
+
+#: config/cris/cris.c:3322
+#, gcc-internal-format
+msgid "emitting PIC operand, but PIC register isn't set up"
+msgstr ""
+
+#. Definitions for GCC. Part of the machine description for CRIS.
+#. Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+#. Free Software Foundation, Inc.
+#. Contributed by Axis Communications. Written by Hans-Peter Nilsson.
+#.
+#. 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, 51 Franklin Street, Fifth Floor,
+#. Boston, MA 02110-1301, USA.
+#. After the first "Node:" comment comes all preprocessor directives and
+#. attached declarations described in the info files, the "Using and
+#. Porting GCC" manual (uapgcc), in the same order as found in the "Target
+#. macros" section in the gcc-2.9x CVS edition of 2000-03-17. FIXME: Not
+#. really, but needs an update anyway.
+#.
+#. There is no generic copy-of-uapgcc comment, you'll have to see uapgcc
+#. for that. If applicable, there is a CRIS-specific comment. The order
+#. of macro definitions follow the order in the manual. Every section in
+#. the manual (node in the info pages) has an introductory `Node:
+#. <subchapter>' comment. If no macros are defined for a section, only
+#. the section-comment is present.
+#. Note that other header files (e.g. config/elfos.h, config/linux.h,
+#. config/cris/linux.h and config/cris/aout.h) are responsible for lots of
+#. settings not repeated below. This file contains general CRIS
+#. definitions and definitions for the cris-*-elf subtarget.
+#. We don't want to use gcc_assert for everything, as that can be
+#. compiled out.
+#: config/cris/cris.h:44
+#, gcc-internal-format
+msgid "CRIS-port assertion failed: "
+msgstr "CRIS-port 判定語錯誤:"
+
+#. Node: Caller Saves
+#. (no definitions)
+#. Node: Function entry
+#. See cris.c for TARGET_ASM_FUNCTION_PROLOGUE and
+#. TARGET_ASM_FUNCTION_EPILOGUE.
+#. Node: Profiling
+#: config/cris/cris.h:871
+#, gcc-internal-format
+msgid "no FUNCTION_PROFILER for CRIS"
+msgstr "CRIS 沒有 FUNCTION_PROFILER"
+
+#: config/crx/crx.h:355
+#, gcc-internal-format
+msgid "Profiler support for CRX"
+msgstr "å° CRX çš„å–樣支æ´"
+
+#: config/crx/crx.h:366
+#, gcc-internal-format
+msgid "Trampoline support for CRX"
+msgstr "å° CRX 的蹦床支æ´"
+
+#: config/frv/frv.c:8623
+#, gcc-internal-format
+msgid "accumulator is not a constant integer"
+msgstr "累加數ä¸æ˜¯ä¸€å€‹æ•´å¸¸æ•¸"
+
+#: config/frv/frv.c:8628
+#, gcc-internal-format
+msgid "accumulator number is out of bounds"
+msgstr "累加器個數越界"
+
+#: config/frv/frv.c:8639
+#, gcc-internal-format
+msgid "inappropriate accumulator for %qs"
+msgstr "%qs 的累加器ä¸åˆé©"
+
+#: config/frv/frv.c:8717
+#, gcc-internal-format
+msgid "invalid IACC argument"
+msgstr "無效的 IACC 引數"
+
+#: config/frv/frv.c:8740
+#, gcc-internal-format
+msgid "%qs expects a constant argument"
+msgstr "%qs 需è¦ä¸€å€‹å¸¸æ•¸å¼•æ•¸"
+
+#: config/frv/frv.c:8745
+#, gcc-internal-format
+msgid "constant argument out of range for %qs"
+msgstr "å¸¸æ•¸å¼•æ•¸è¶…éŽ %qs 的範åœ"
+
+#: config/frv/frv.c:9227
+#, gcc-internal-format
+msgid "media functions are not available unless -mmedia is used"
+msgstr "多媒體函å¼åªåœ¨ä½¿ç”¨-mmedia 的情æ³ä¸‹å¯ç”¨"
+
+#: config/frv/frv.c:9239
+#, gcc-internal-format
+msgid "this media function is only available on the fr500"
+msgstr "此多媒體函å¼åªåœ¨ fr500 上å¯ç”¨"
+
+#: config/frv/frv.c:9267
+#, gcc-internal-format
+msgid "this media function is only available on the fr400 and fr550"
+msgstr "此多媒體函å¼åªåœ¨ fr400 å’Œ fr550 上å¯ç”¨"
+
+#: config/frv/frv.c:9286
+#, gcc-internal-format
+msgid "this builtin function is only available on the fr405 and fr450"
+msgstr "此內建函å¼åªåœ¨ fr405 å’Œ fr450 上å¯ç”¨"
+
+#: config/frv/frv.c:9295
+#, gcc-internal-format
+msgid "this builtin function is only available on the fr500 and fr550"
+msgstr "此內建函å¼åªåœ¨ fr500 å’Œ fr550 上å¯ç”¨"
+
+#: config/frv/frv.c:9307
+#, gcc-internal-format
+msgid "this builtin function is only available on the fr450"
+msgstr "此內建函å¼åªåœ¨ fr450 上å¯ç”¨"
+
+#: config/h8300/h8300.c:331
+#, gcc-internal-format
+msgid "-ms2600 is used without -ms"
+msgstr "-ms2600 未與 -ms 一起使用"
+
+#: config/h8300/h8300.c:337
+#, gcc-internal-format
+msgid "-mn is used without -mh or -ms"
+msgstr "-mn 未與 -mh 或 -ms 一起使用"
+
+#: config/i386/host-cygwin.c:65
+#, gcc-internal-format
+msgid "can't extend PCH file: %m"
+msgstr "無法擴充 PCH 檔案:%m"
+
+#: config/i386/host-cygwin.c:76
+#, gcc-internal-format
+msgid "can't set position in PCH file: %m"
+msgstr "ä¸èƒ½åœ¨ PCH 檔案中設定ä½ç½®ï¼š%m"
+
+#: config/i386/i386.c:1322
+#, gcc-internal-format
+msgid "code model %s not supported in PIC mode"
+msgstr "程å¼ç¢¼æ¨¡å¼ %s 在 PIC 模å¼ä¸‹ä¸å—支æ´"
+
+#: config/i386/i386.c:1330 config/sparc/sparc.c:670
+#, gcc-internal-format
+msgid "bad value (%s) for -mcmodel= switch"
+msgstr "-mcmodel= 值(%s)ä¸æ­£ç¢º"
+
+#: config/i386/i386.c:1346
+#, gcc-internal-format
+msgid "bad value (%s) for -masm= switch"
+msgstr "-masm= 值(%s)ä¸æ­£ç¢º"
+
+#: config/i386/i386.c:1349
+#, gcc-internal-format
+msgid "code model %qs not supported in the %s bit mode"
+msgstr "程å¼ç¢¼æ¨¡å¼ %qs 在 %s ä½æ¨¡å¼ä¸‹ä¸å—支æ´"
+
+#: config/i386/i386.c:1352
+#, gcc-internal-format
+msgid "code model %<large%> not supported yet"
+msgstr "尚未支æ´ç¨‹å¼ç¢¼æ¨¡å¼ %<large%>"
+
+#: config/i386/i386.c:1354
+#, gcc-internal-format
+msgid "%i-bit mode not compiled in"
+msgstr "æœªç·¨è­¯å…¥å° %i ä½æ¨¡å¼çš„支æ´"
+
+#: config/i386/i386.c:1384 config/i386/i386.c:1408
+#, gcc-internal-format
+msgid "CPU you selected does not support x86-64 instruction set"
+msgstr "您é¸æ“‡çš„ CPU ä¸æ”¯æ´ x86-64 指令集"
+
+#: config/i386/i386.c:1390 config/mt/mt.c:803
+#, gcc-internal-format
+msgid "bad value (%s) for -march= switch"
+msgstr "-march= 所帶åƒæ•¸(%s)ä¸æ­£ç¢º"
+
+#: config/i386/i386.c:1421
+#, gcc-internal-format
+msgid "bad value (%s) for -mtune= switch"
+msgstr "-mtune= 所帶åƒæ•¸(%s)ä¸æ­£ç¢º"
+
+#: config/i386/i386.c:1438
+#, gcc-internal-format
+msgid "-mregparm=%d is not between 0 and %d"
+msgstr "-mregparm=%d ä¸åœ¨ 0 å’Œ %d 之間"
+
+#: config/i386/i386.c:1451
+#, gcc-internal-format
+msgid "-malign-loops is obsolete, use -falign-loops"
+msgstr "-malign-loops 已經éŽæ™‚,請使用 -falign-loops"
+
+#: config/i386/i386.c:1456 config/i386/i386.c:1469 config/i386/i386.c:1482
+#, gcc-internal-format
+msgid "-malign-loops=%d is not between 0 and %d"
+msgstr "-malign-loops=%d ä¸åœ¨ 0 å’Œ %d 之間"
+
+#: config/i386/i386.c:1464
+#, gcc-internal-format
+msgid "-malign-jumps is obsolete, use -falign-jumps"
+msgstr "-malign-jumps 已經éŽæ™‚,請使用 -falign-jumps"
+
+#: config/i386/i386.c:1477
+#, gcc-internal-format
+msgid "-malign-functions is obsolete, use -falign-functions"
+msgstr "-malign-functions å·²éŽæ™‚,請使用 -falign-functions"
+
+#: config/i386/i386.c:1515
+#, gcc-internal-format
+msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
+msgstr "-mpreferred-stack-boundary=%d ä¸åœ¨ %d å’Œ 12 之間"
+
+#: config/i386/i386.c:1527
+#, gcc-internal-format
+msgid "-mbranch-cost=%d is not between 0 and 5"
+msgstr "-mbranch-cost=%d ä¸åœ¨ 0 å’Œ 5 之間"
+
+#: config/i386/i386.c:1535
+#, gcc-internal-format
+msgid "-mlarge-data-threshold=%d is negative"
+msgstr "-mlarge-data-threshold=%d 為負"
+
+#: config/i386/i386.c:1547
+#, gcc-internal-format
+msgid "bad value (%s) for -mtls-dialect= switch"
+msgstr "為 -mtls-dialect= 開關指定了錯誤的值(%s)"
+
+#: config/i386/i386.c:1594
+#, gcc-internal-format
+msgid "-malign-double makes no sense in the 64bit mode"
+msgstr "-malign-double 在 64 ä½å…ƒæ¨¡å¼ä¸‹ç„¡æ„義"
+
+#: config/i386/i386.c:1596
+#, gcc-internal-format
+msgid "-mrtd calling convention not supported in the 64bit mode"
+msgstr "-mrtd 呼å«ç´„定在 64 ä½å…ƒæ¨¡å¼ä¸‹ä¸æ”¯æ´"
+
+#: config/i386/i386.c:1616
+#, gcc-internal-format
+msgid "-msseregparm used without SSE enabled"
+msgstr "使用了 -msseregparm å»æ²’有啟用 SEE"
+
+#: config/i386/i386.c:1628 config/i386/i386.c:1639
+#, gcc-internal-format
+msgid "SSE instruction set disabled, using 387 arithmetics"
+msgstr "SSE 指令集已åœç”¨ï¼Œä½¿ç”¨ 387 指令"
+
+#: config/i386/i386.c:1644
+#, gcc-internal-format
+msgid "387 instruction set disabled, using SSE arithmetics"
+msgstr "387 指令集已åœç”¨ï¼Œä½¿ç”¨ SSE 指令"
+
+#: config/i386/i386.c:1651
+#, gcc-internal-format
+msgid "bad value (%s) for -mfpmath= switch"
+msgstr "-mfpmath= 開關的值(%s)錯誤"
+
+#: config/i386/i386.c:1673
+#, gcc-internal-format
+msgid "unwind tables currently require either a frame pointer or -maccumulate-outgoing-args for correctness"
+msgstr "解æ²è¡¨ç›®å‰éœ€è¦æ¡†æž¶æŒ‡æ¨™æˆ– -maccumulate-outgoing-args 來ä¿è­‰æ­£ç¢ºæ€§"
+
+#: config/i386/i386.c:2043 config/i386/i386.c:2085
+#, gcc-internal-format
+msgid "fastcall and regparm attributes are not compatible"
+msgstr "fastcall å’Œ regparm 屬性互ä¸ç›¸å®¹"
+
+#: config/i386/i386.c:2050
+#, gcc-internal-format
+msgid "%qs attribute requires an integer constant argument"
+msgstr "%qs 屬性需è¦ä¸€å€‹æ•´å¸¸æ•¸åšç‚ºå¼•æ•¸"
+
+#: config/i386/i386.c:2056
+#, gcc-internal-format
+msgid "argument to %qs attribute larger than %d"
+msgstr "%qs 屬性的引數大於 %d"
+
+#: config/i386/i386.c:2077 config/i386/i386.c:2112
+#, gcc-internal-format
+msgid "fastcall and cdecl attributes are not compatible"
+msgstr "fastcall å’Œ cdecl 屬性互ä¸ç›¸å®¹"
+
+#: config/i386/i386.c:2081
+#, gcc-internal-format
+msgid "fastcall and stdcall attributes are not compatible"
+msgstr "fastcall å’Œ stdcall 屬性互ä¸ç›¸å®¹"
+
+#: config/i386/i386.c:2095 config/i386/i386.c:2108
+#, gcc-internal-format
+msgid "stdcall and cdecl attributes are not compatible"
+msgstr "stdcall å’Œ cdecl 屬性互ä¸ç›¸å®¹"
+
+#: config/i386/i386.c:2099
+#, gcc-internal-format
+msgid "stdcall and fastcall attributes are not compatible"
+msgstr "stdcall å’Œ fastcall 屬性互ä¸ç›¸å®¹"
+
+#: config/i386/i386.c:2234
+#, gcc-internal-format
+msgid "Calling %qD with attribute sseregparm without SSE/SSE2 enabled"
+msgstr "帶屬性 sseregparm å‘¼å« %qD å»æ²’有啟用 SSE/SSE2"
+
+#: config/i386/i386.c:2237
+#, gcc-internal-format
+msgid "Calling %qT with attribute sseregparm without SSE/SSE2 enabled"
+msgstr "帶屬性 sseregparm å‘¼å« %qT å»æ²’有啟用 SSE/SSE2"
+
+#: config/i386/i386.c:2962
+#, gcc-internal-format
+msgid "SSE register return with SSE disabled"
+msgstr "å·²åœç”¨ SSE å»åœ¨ SSE 暫存器中回傳"
+
+#: config/i386/i386.c:2964
+#, gcc-internal-format
+msgid "SSE register argument with SSE disabled"
+msgstr "å·²åœç”¨ SSE å»åœ¨ SSE 暫存器中傳éžåƒæ•¸"
+
+#: config/i386/i386.c:3279
+#, gcc-internal-format
+msgid "SSE vector argument without SSE enabled changes the ABI"
+msgstr "沒有啟用 SSE,å»å‡ºç¾äº† SSE å‘é‡å¼•æ•¸ï¼Œé€™è®Šæ›´äº† ABI"
+
+#: config/i386/i386.c:3296
+#, gcc-internal-format
+msgid "MMX vector argument without MMX enabled changes the ABI"
+msgstr "沒有啟用 MMX,å»å‡ºç¾äº† MMX å‘é‡å¼•æ•¸ï¼Œé€™è®Šæ›´äº† ABI"
+
+#: config/i386/i386.c:3562
+#, gcc-internal-format
+msgid "SSE vector return without SSE enabled changes the ABI"
+msgstr "沒有啟用 SSE,å»æœ‰ SSE å‘é‡å›žå‚³å€¼ï¼Œé€™è®Šæ›´äº† ABI"
+
+#: config/i386/i386.c:3572
+#, gcc-internal-format
+msgid "MMX vector return without MMX enabled changes the ABI"
+msgstr "沒有啟用 MMXå»å›žå‚³ MMX å‘é‡ï¼Œé€™è®Šæ›´äº† ABI"
+
+#: config/i386/i386.c:6933
+#, gcc-internal-format
+msgid "extended registers have no high halves"
+msgstr "擴充的暫存器沒有高åŠéƒ¨åˆ†"
+
+#: config/i386/i386.c:6948
+#, gcc-internal-format
+msgid "unsupported operand size for extended register"
+msgstr "擴充的暫存器ä¸æ”¯æ´çš„é‹ç®—元大å°"
+
+#: config/i386/i386.c:15206 config/rs6000/rs6000.c:7157
+#, gcc-internal-format
+msgid "selector must be an integer constant in the range 0..%wi"
+msgstr "é¸æ“‡å­å¿…須是 0 到 %wi 間的整常數"
+
+#: config/i386/i386.c:15544
+#, gcc-internal-format
+msgid "shift must be an immediate"
+msgstr "å移值必須是立å³æ•¸å€¼"
+
+#: config/i386/i386.c:16711
+#, gcc-internal-format
+msgid "%qs incompatible attribute ignored"
+msgstr "%qs 忽略ä¸ç›¸å®¹çš„屬性"
+
+#: config/i386/winnt-cxx.c:74
+#, gcc-internal-format
+msgid "key method %q+D of dllimport'd class defined"
+msgstr "定義了 dllimport 的類別的關éµæ–¹æ³• %q+D"
+
+#: config/i386/winnt-cxx.c:95 config/sh/symbian.c:173
+#, gcc-internal-format
+msgid "definition of static data member %q+D of dllimport'd class"
+msgstr "為 dllimport 類別定義了éœæ…‹è³‡æ–™æˆå“¡ %q+D"
+
+#: config/i386/winnt.c:74
+#, gcc-internal-format
+msgid "%qs attribute only applies to variables"
+msgstr "%qs 屬性åªèƒ½ç‚ºè®Šæ•¸ä½¿ç”¨"
+
+#: config/i386/winnt.c:103
+#, gcc-internal-format
+msgid "%qs attribute applies only to initialized variables with external linkage"
+msgstr "%qs 屬性åªèƒ½ç‚ºå…·æœ‰å¤–部連çµçš„å·²åˆå§‹åŒ–的變數使用"
+
+#: config/i386/winnt.c:214
+#, gcc-internal-format
+msgid "inconsistent dll linkage for %q+D, dllexport assumed"
+msgstr "%q+D çš„ dll 連çµä¸ä¸€è‡´ï¼Œå‡å®šç‚º dllexport"
+
+#: config/i386/winnt.c:254 config/sh/symbian.c:273
+#, gcc-internal-format
+msgid "%qs declared as both exported to and imported from a DLL"
+msgstr "%qs 既被宣告從 DLL 中導出的åˆè¢«å®£å‘Šç‚ºè‡ª DLL 中導入的"
+
+#: config/i386/winnt.c:549
+#, gcc-internal-format
+msgid "%q+D causes a section type conflict"
+msgstr "%q+D 導致一個å€æ®µé¡žåž‹è¡çª"
+
+#: config/i386/cygming.h:166
+#, gcc-internal-format
+msgid "-f%s ignored for target (all code is position independent)"
+msgstr "-f%s 在目標平臺上被忽略(所有程å¼ç¢¼éƒ½æ˜¯èˆ‡ä½ç½®ç„¡é—œçš„)"
+
+#: config/i386/djgpp.h:181
+#, gcc-internal-format
+msgid "-mbnu210 is ignored (option is obsolete)"
+msgstr "-mbnu210 被忽略(é¸é …å·²éŽæ™‚)"
+
+#: config/i386/i386-interix.h:257
+#, gcc-internal-format
+msgid "ms-bitfields not supported for objc"
+msgstr "objc ä¸æ”¯æ´ ms-bitfields"
+
+#: config/ia64/ia64-c.c:52
+#, gcc-internal-format
+msgid "malformed #pragma builtin"
+msgstr "#pragma builtin æ ¼å¼éŒ¯èª¤"
+
+#: config/ia64/ia64.c:502 config/m32r/m32r.c:373
+#, gcc-internal-format
+msgid "invalid argument of %qs attribute"
+msgstr "屬性 %qs çš„åƒæ•¸ç„¡æ•ˆ"
+
+#: config/ia64/ia64.c:514
+#, gcc-internal-format
+msgid "%Jan address area attribute cannot be specified for local variables"
+msgstr "%Jä¸èƒ½ç‚ºå±€éƒ¨è®Šæ•¸æŒ‡å®šä½å€å€åŸŸå±¬æ€§"
+
+#: config/ia64/ia64.c:521
+#, gcc-internal-format
+msgid "address area of %q+D conflicts with previous declaration"
+msgstr "%q+D 的資料å€åŸŸèˆ‡å…ˆå‰çš„宣告è¡çª"
+
+#: config/ia64/ia64.c:528
+#, gcc-internal-format
+msgid "%Jaddress area attribute cannot be specified for functions"
+msgstr "%Jä¸èƒ½ç‚ºå‡½å¼æŒ‡å®šä½å€å€åŸŸå±¬æ€§"
+
+#: config/ia64/ia64.c:5029 config/pa/pa.c:327
+#, gcc-internal-format
+msgid "value of -mfixed-range must have form REG1-REG2"
+msgstr "-mfixed-range 值必須有「暫存器1-暫存器2ã€çš„å½¢å¼"
+
+#: config/ia64/ia64.c:5056 config/pa/pa.c:354
+#, gcc-internal-format
+msgid "%s-%s is an empty range"
+msgstr "%s-%s 是一個空的範åœ"
+
+#: config/ia64/ia64.c:5084
+#, gcc-internal-format
+msgid "bad value %<%s%> for -mtls-size= switch"
+msgstr "-mtls-size= 開關的值 %<%s%> 無效"
+
+#: config/ia64/ia64.c:5112
+#, gcc-internal-format
+msgid "bad value %<%s%> for -mtune= switch"
+msgstr "-mtune= 所帶åƒæ•¸ %<%s%> ä¸æ­£ç¢º"
+
+#: config/ia64/ia64.c:5131
+#, gcc-internal-format
+msgid "not yet implemented: latency-optimized inline square root"
+msgstr "尚未實作:最å°å»¶é²æœ€ä½³åŒ–çš„å…§è¯å¹³æ–¹æ ¹é‹ç®—"
+
+#: config/iq2000/iq2000.c:1808
+#, gcc-internal-format
+msgid "gp_offset (%ld) or end_offset (%ld) is less than zero"
+msgstr ""
+
+#: config/iq2000/iq2000.c:2589
+#, gcc-internal-format
+msgid "argument %qd is not a constant"
+msgstr "引數 %qd ä¸æ˜¯ä¸€å€‹å¸¸æ•¸"
+
+#: config/iq2000/iq2000.c:2892 config/mt/mt.c:348 config/xtensa/xtensa.c:1773
+#, gcc-internal-format
+msgid "PRINT_OPERAND_ADDRESS, null pointer"
+msgstr "PRINT_OPERAND_ADDRESS,空指標"
+
+#: config/iq2000/iq2000.c:3047
+#, gcc-internal-format
+msgid "PRINT_OPERAND: Unknown punctuation '%c'"
+msgstr "PRINT_OPERAND:ä¸æ˜Žçš„標點「%cã€"
+
+#: config/iq2000/iq2000.c:3056 config/mips/mips.c:5395
+#: config/xtensa/xtensa.c:1627
+#, gcc-internal-format
+msgid "PRINT_OPERAND null pointer"
+msgstr "PRINT_OPERAND 空指標"
+
+#: config/m32c/m32c-pragma.c:64
+#, gcc-internal-format
+msgid "junk at end of #pragma GCC memregs [0..16]"
+msgstr "#pragma GCC memregs [0..16] 末尾有無用字元"
+
+#: config/m32c/m32c-pragma.c:71
+#, gcc-internal-format
+msgid "#pragma GCC memregs must precede any function decls"
+msgstr "#pragma GCC memregs 必須出ç¾åœ¨æ‰€æœ‰å‡½å¼å®£å‘Šä¹‹å‰"
+
+#: config/m32c/m32c-pragma.c:82 config/m32c/m32c-pragma.c:89
+#, gcc-internal-format
+msgid "#pragma GCC memregs takes a number [0..16]"
+msgstr "#pragma GCC memregs éœ€è¦ [0..16] 範åœå…§çš„數"
+
+#: config/m32c/m32c.c:412
+#, gcc-internal-format
+msgid "invalid target memregs value '%d'"
+msgstr "無效的目的 memregs 值「%dã€"
+
+#: config/m68hc11/m68hc11.c:279
+#, gcc-internal-format
+msgid "-f%s ignored for 68HC11/68HC12 (not supported)"
+msgstr "-f%s 為 68HC11/68HC12 忽略(ä¸å—支æ´)"
+
+#: config/m68hc11/m68hc11.c:1240
+#, gcc-internal-format
+msgid "%<trap%> and %<far%> attributes are not compatible, ignoring %<far%>"
+msgstr "%<trap%> å’Œ %<far%> 屬性互ä¸ç›¸å®¹ï¼Œå¿½ç•¥ %<far%>"
+
+#: config/m68hc11/m68hc11.c:1247
+#, gcc-internal-format
+msgid "%<trap%> attribute is already used"
+msgstr "已經使用了 %<trap%> 屬性"
+
+#: config/m68k/m68k.c:321
+#, gcc-internal-format
+msgid "cannot specify both -msep-data and -mid-shared-library"
+msgstr "ä¸èƒ½åŒæ™‚指定 -msep-data å’Œ -mid-shared-library"
+
+#: config/m68k/m68k.c:333
+#, gcc-internal-format
+msgid "-fPIC is not currently supported on the 68000 or 68010"
+msgstr "-fPIC ç›®å‰åœ¨ 68000 å’Œ 68010 上ä¸å—支æ´"
+
+#: config/m68k/m68k.c:640 config/rs6000/rs6000.c:13646
+#, gcc-internal-format
+msgid "stack limit expression is not supported"
+msgstr "ä¸æ”¯æ´å †ç–Šé™åˆ¶é‹ç®—å¼"
+
+#: config/mips/mips.c:4584
+#, gcc-internal-format
+msgid "-%s conflicts with the other architecture options, which specify a %s processor"
+msgstr "-%s 與指定了 %s 處ç†å™¨çš„其它架構é¸é …è¡çª"
+
+#: config/mips/mips.c:4600
+#, gcc-internal-format
+msgid "-march=%s is not compatible with the selected ABI"
+msgstr "-march=%s èˆ‡æ‰€é¸ ABI ä¸ç›¸å®¹"
+
+#: config/mips/mips.c:4618
+#, gcc-internal-format
+msgid "-mgp64 used with a 32-bit processor"
+msgstr "-mgp64 與 32 ä½å…ƒè™•ç†å™¨ä¸€èµ·ä½¿ç”¨"
+
+#: config/mips/mips.c:4620
+#, gcc-internal-format
+msgid "-mgp32 used with a 64-bit ABI"
+msgstr "-mgp32 與 64 ä½å…ƒ ABI 一起使用"
+
+#: config/mips/mips.c:4622
+#, gcc-internal-format
+msgid "-mgp64 used with a 32-bit ABI"
+msgstr "-mgp64 與 32 ä½å…ƒ ABI 一起使用"
+
+#: config/mips/mips.c:4640 config/mips/mips.c:4642 config/mips/mips.c:4644
+#: config/mips/mips.c:4720
+#, gcc-internal-format
+msgid "unsupported combination: %s"
+msgstr "ä¸æ”¯æ´çš„組åˆï¼š%s"
+
+#: config/mips/mips.c:4715
+#, gcc-internal-format
+msgid "generation of Branch Likely instructions enabled, but not supported by architecture"
+msgstr "產生 Branch Likely 指令被啟用,但並ä¸ç‚ºæž¶æ§‹æ‰€æ”¯æ´"
+
+#: config/mips/mips.c:4732
+#, gcc-internal-format
+msgid "-G is incompatible with PIC code which is the default"
+msgstr "-G 與é è¨­ç”¢ç”Ÿçš„ PIC 程å¼ç¢¼ä¸ç›¸å®¹"
+
+#: config/mips/mips.c:4799
+#, gcc-internal-format
+msgid "-mips3d requires -mpaired-single"
+msgstr "-mips3d éœ€è¦ -mpaired-single"
+
+#: config/mips/mips.c:4808
+#, gcc-internal-format
+msgid "-mips3d/-mpaired-single must be used with -mfp64 -mhard-float"
+msgstr "-mips3d/-mpaired-single 必須與 -mfp64 -mhard-float 一起使用"
+
+#: config/mips/mips.c:4813
+#, gcc-internal-format
+msgid "-mips3d/-mpaired-single must be used with -mips64"
+msgstr "-mips3d/-mpaired-single 必須與 -mips64 一起使用"
+
+#: config/mips/mips.c:4816
+#, gcc-internal-format
+msgid "-mips16 and -mdsp cannot be used together"
+msgstr "-mips16 å’Œ -mdsp ä¸èƒ½ä¸€èµ·ä½¿ç”¨"
+
+#: config/mips/mips.c:5332
+#, gcc-internal-format
+msgid "internal error: %%) found without a %%( in assembler pattern"
+msgstr "內部錯誤:找ä¸åˆ°çµ„譯器形å¼çš„ %%( 與已有的 %%) 匹é…"
+
+#: config/mips/mips.c:5346
+#, gcc-internal-format
+msgid "internal error: %%] found without a %%[ in assembler pattern"
+msgstr "內部錯誤:找ä¸åˆ°çµ„譯器形å¼çš„ %%[ 與已有的 %%] 匹é…"
+
+#: config/mips/mips.c:5359
+#, gcc-internal-format
+msgid "internal error: %%> found without a %%< in assembler pattern"
+msgstr "內部錯誤:找ä¸åˆ°çµ„譯器形å¼çš„ %%< 與已有的 %%> 匹é…"
+
+#: config/mips/mips.c:5372
+#, gcc-internal-format
+msgid "internal error: %%} found without a %%{ in assembler pattern"
+msgstr "內部錯誤:找ä¸åˆ°çµ„譯器形å¼çš„ %%{ 與已有的 %%} 匹é…"
+
+#: config/mips/mips.c:5386
+#, gcc-internal-format
+msgid "PRINT_OPERAND: unknown punctuation '%c'"
+msgstr "PRINT_OPERAND:ä¸æ˜Žçš„標點「%cã€"
+
+#: config/mips/mips.c:8149
+#, gcc-internal-format
+msgid "cannot handle inconsistent calls to %qs"
+msgstr "無法處ç†å° %qs ä¸ä¸€è‡´çš„呼å«"
+
+#: config/mips/mips.c:9548
+#, gcc-internal-format
+msgid "the cpu name must be lower case"
+msgstr "cpu å必須是å°å¯«"
+
+#: config/mips/mips.c:10214
+#, gcc-internal-format
+msgid "invalid argument to builtin function"
+msgstr "給內建函å¼çš„引數無效"
+
+#. Output assembler code to FILE to increment profiler label # LABELNO
+#. for profiling a function entry.
+#: config/mips/mips.h:2108
+#, gcc-internal-format
+msgid "mips16 function profiling"
+msgstr "mips16 函å¼å–樣"
+
+#: config/mmix/mmix.c:227
+#, gcc-internal-format
+msgid "-f%s not supported: ignored"
+msgstr "-f%s ä¸å—支æ´ï¼šå·²å¿½ç•¥"
+
+#: config/mmix/mmix.c:655
+#, gcc-internal-format
+msgid "support for mode %qs"
+msgstr "æ”¯æ´ %qs 模å¼"
+
+#: config/mmix/mmix.c:669
+#, gcc-internal-format
+msgid "too large function value type, needs %d registers, have only %d registers for this"
+msgstr ""
+
+#: config/mmix/mmix.c:839
+#, gcc-internal-format
+msgid "function_profiler support for MMIX"
+msgstr "å° MMIX çš„ function_profiler 支æ´"
+
+#: config/mmix/mmix.c:861
+#, gcc-internal-format
+msgid "MMIX Internal: Last named vararg would not fit in a register"
+msgstr "MMIX 內部錯誤:最後一個具åçš„ä¸å®šåƒæ•¸ç„¡æ³•æ”¾å…¥æš«å­˜å™¨ä¸­"
+
+#: config/mmix/mmix.c:1476 config/mmix/mmix.c:1500 config/mmix/mmix.c:1616
+#, gcc-internal-format
+msgid "MMIX Internal: Bad register: %d"
+msgstr "MMIX 內部錯誤:錯誤的暫存器:%d"
+
+#. Presumably there's a missing case above if we get here.
+#: config/mmix/mmix.c:1608
+#, gcc-internal-format
+msgid "MMIX Internal: Missing %qc case in mmix_print_operand"
+msgstr "MMIX 內部錯誤:mmix_print_operand 缺少 %qc 類型"
+
+#: config/mmix/mmix.c:1894
+#, gcc-internal-format
+msgid "stack frame not a multiple of 8 bytes: %wd"
+msgstr "堆疊框架大å°ä¸æ˜¯ 8 ä½å…ƒçµ„çš„å€æ•¸ï¼š%wd"
+
+#: config/mmix/mmix.c:2130
+#, gcc-internal-format
+msgid "stack frame not a multiple of octabyte: %wd"
+msgstr "堆疊框架大å°ä¸æ˜¯ 8 ä½å…ƒçµ„çš„å€æ•¸ï¼š%wd"
+
+#: config/mmix/mmix.c:2470 config/mmix/mmix.c:2534
+#, gcc-internal-format
+msgid "MMIX Internal: %s is not a shiftable int"
+msgstr "MMIX 內部錯誤:%s ä¸æ˜¯ä¸€å€‹å¯ç§»ä½çš„整數"
+
+#: config/mt/mt.c:311
+#, gcc-internal-format
+msgid "info pointer NULL"
+msgstr "info 指標為 NULL"
+
+#: config/pa/pa.c:459
+#, gcc-internal-format
+msgid "PIC code generation is not supported in the portable runtime model"
+msgstr "PIC 程å¼ç¢¼ç”¢ç”Ÿåœ¨å¯ç§»æ¤åŸ·è¡Œæ™‚模型中ä¸å—支æ´"
+
+#: config/pa/pa.c:464
+#, gcc-internal-format
+msgid "PIC code generation is not compatible with fast indirect calls"
+msgstr "PIC 程å¼ç¢¼ç”¢ç”Ÿèˆ‡å¿«é€Ÿé–“接呼å«ä¸ç›¸å®¹"
+
+#: config/pa/pa.c:469
+#, gcc-internal-format
+msgid "-g is only supported when using GAS on this processor,"
+msgstr "此處ç†å™¨åªæœ‰ä½¿ç”¨ GAS 時æ‰æ”¯æ´ -g"
+
+#: config/pa/pa.c:470
+#, gcc-internal-format
+msgid "-g option disabled"
+msgstr "-g é¸é …已被åœç”¨"
+
+#: config/pa/pa.c:8016
+#, gcc-internal-format
+msgid "alignment (%u) for %s exceeds maximum alignment for global common data. Using %u"
+msgstr ""
+
+#: config/pa/pa-hpux11.h:85
+#, gcc-internal-format
+msgid "-munix=98 option required for C89 Amendment 1 features.\n"
+msgstr "使用 C89 修訂版 1 的特性必須指定 -munix=98 é¸é …。\n"
+
+#: config/rs6000/host-darwin.c:52
+#, gcc-internal-format
+msgid "Segmentation Fault (code)"
+msgstr "段錯誤 (程å¼ç¢¼)"
+
+#: config/rs6000/host-darwin.c:121
+#, gcc-internal-format
+msgid "Segmentation Fault"
+msgstr "段錯誤"
+
+#: config/rs6000/host-darwin.c:135
+#, gcc-internal-format
+msgid "While setting up signal stack: %m"
+msgstr "當設定信號堆疊時:%m"
+
+#: config/rs6000/host-darwin.c:141
+#, gcc-internal-format
+msgid "While setting up signal handler: %m"
+msgstr "當設定信號處ç†è€…時:%m"
+
+#. 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:53
+#, gcc-internal-format
+msgid "ignoring malformed #pragma longcall"
+msgstr "忽略格å¼éŒ¯èª¤çš„ #pragma longcall"
+
+#: config/rs6000/rs6000-c.c:66
+#, gcc-internal-format
+msgid "missing open paren"
+msgstr "缺少左括號"
+
+#: config/rs6000/rs6000-c.c:68
+#, gcc-internal-format
+msgid "missing number"
+msgstr "缺少數字"
+
+#: config/rs6000/rs6000-c.c:70
+#, gcc-internal-format
+msgid "missing close paren"
+msgstr "缺少å³æ‹¬è™Ÿ"
+
+#: config/rs6000/rs6000-c.c:73
+#, gcc-internal-format
+msgid "number must be 0 or 1"
+msgstr "數字必須是 0 或 1"
+
+#: config/rs6000/rs6000-c.c:76
+#, gcc-internal-format
+msgid "junk at end of #pragma longcall"
+msgstr "#pragma longcall 末尾有無用字元"
+
+#: config/rs6000/rs6000-c.c:2530
+#, gcc-internal-format
+msgid "passing arg %d of %qE discards qualifiers frompointer target type"
+msgstr "傳éžåƒæ•¸ %d (屬於 %qE)時丟棄了指標目的類型的類型é™å®š"
+
+#: config/rs6000/rs6000-c.c:2573
+#, gcc-internal-format
+msgid "invalid parameter combination for AltiVec intrinsic"
+msgstr "å° AltiVec 內建函å¼ä¾†èªªç„¡æ•ˆçš„åƒé™£åˆ—åˆ"
+
+#: config/rs6000/rs6000.c:1254
+#, gcc-internal-format
+msgid "-mmultiple is not supported on little endian systems"
+msgstr "-mmultiple 在低ä½ä½å…ƒçµ„在å‰çš„系統上ä¸å—支æ´"
+
+#: config/rs6000/rs6000.c:1261
+#, gcc-internal-format
+msgid "-mstring is not supported on little endian systems"
+msgstr "-mstring 在低ä½ä½å…ƒçµ„在å‰çš„系統上ä¸å—支æ´"
+
+#: config/rs6000/rs6000.c:1275
+#, gcc-internal-format
+msgid "unknown -mdebug-%s switch"
+msgstr "ä¸æ˜Žçš„ -mdebug-%s é–‹é—œ"
+
+#: config/rs6000/rs6000.c:1287
+#, gcc-internal-format
+msgid "unknown -mtraceback arg %qs; expecting %<full%>, %<partial%> or %<none%>"
+msgstr "ä¸æ˜Žçš„ -mtraceback åƒæ•¸ %qsï¼›éœ€è¦ %<full%>ã€%<partial%> 或 %<none%>"
+
+#: config/rs6000/rs6000.c:1333
+#, gcc-internal-format
+msgid "AltiVec and E500 instructions cannot coexist"
+msgstr "AltiVec å’Œ E500 指令ä¸èƒ½å…±å­˜"
+
+#: config/rs6000/rs6000.c:1561
+#, gcc-internal-format
+msgid "unknown -m%s= option specified: '%s'"
+msgstr "指定了ä¸æ˜Žçš„ -m%s= é¸é …:「%sã€"
+
+#: config/rs6000/rs6000.c:1766
+#, gcc-internal-format
+msgid "not configured for ABI: '%s'"
+msgstr "沒有為此 ABI é…置:「%sã€"
+
+#: config/rs6000/rs6000.c:1776
+#, gcc-internal-format
+msgid "Using darwin64 ABI"
+msgstr "使用 darwin64 ABI"
+
+#: config/rs6000/rs6000.c:1781
+#, gcc-internal-format
+msgid "Using old darwin ABI"
+msgstr "使用舊å¼çš„ Darwin ABI"
+
+#: config/rs6000/rs6000.c:1787
+#, gcc-internal-format
+msgid "Using IBM extended precision long double"
+msgstr ""
+
+#: config/rs6000/rs6000.c:1792
+#, gcc-internal-format
+msgid "Using IEEE extended precision long double"
+msgstr ""
+
+#: config/rs6000/rs6000.c:1797
+#, gcc-internal-format
+msgid "unknown ABI specified: '%s'"
+msgstr "指定了ä¸æ˜Žçš„ ABI:「%sã€"
+
+#: config/rs6000/rs6000.c:1824
+#, gcc-internal-format
+msgid "invalid option for -mfloat-gprs: '%s'"
+msgstr "-mfloat-gprs çš„é¸é …無效:「%sã€"
+
+#: config/rs6000/rs6000.c:1834
+#, gcc-internal-format
+msgid "Unknown switch -mlong-double-%s"
+msgstr "ä¸æ˜Žçš„é–‹é—œ -mlong-double-%s"
+
+#: config/rs6000/rs6000.c:1855
+#, gcc-internal-format
+msgid "-malign-power is not supported for 64-bit Darwin; it is incompatible with the installed C and C++ libraries"
+msgstr "-malign-power 在 64 ä½å…ƒ Darwin 下ä¸å—支æ´ï¼›å®ƒèˆ‡å·²å®‰è£çš„ C å’Œ C++ 函å¼åº«ä¸ç›¸å®¹"
+
+#: config/rs6000/rs6000.c:1863
+#, gcc-internal-format
+msgid "unknown -malign-XXXXX option specified: '%s'"
+msgstr "指定了ä¸æ˜Žçš„ -malign-XXXXX é¸é …:「%sã€"
+
+#: config/rs6000/rs6000.c:4225
+#, gcc-internal-format
+msgid "GCC vector returned by reference: non-standard ABI extension with no compatibility guarantee"
+msgstr "GCC 回傳å‘é‡åƒç…§ï¼šéžæ¨™æº–çš„ ABI 擴充,ä¸ä¿è­‰ç›¸å®¹æ€§"
+
+#: config/rs6000/rs6000.c:4298
+#, gcc-internal-format
+msgid "cannot return value in vector register because altivec instructions are disabled, use -maltivec to enable them"
+msgstr "ä¸èƒ½åœ¨å‘é‡æš«å­˜å™¨ä¸­å›žå‚³å€¼ï¼Œå› ç‚º altivec 指令集已被åœç”¨ï¼Œä½¿ç”¨ -maltivec 啟用"
+
+#: config/rs6000/rs6000.c:4544
+#, gcc-internal-format
+msgid "cannot pass argument in vector register because altivec instructions are disabled, use -maltivec to enable them"
+msgstr "ä¸èƒ½åœ¨å‘é‡æš«å­˜å™¨ä¸­å‚³éžåƒæ•¸ï¼Œå› ç‚º altivec 指令集已被åœç”¨ï¼Œä½¿ç”¨ -maltivec 啟用"
+
+#: config/rs6000/rs6000.c:5400
+#, gcc-internal-format
+msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
+msgstr "GCC 傳éžå‘é‡åƒç…§ï¼šéžæ¨™æº–çš„ ABI 擴充,ä¸ä¿è­‰ç›¸å®¹æ€§"
+
+#: config/rs6000/rs6000.c:6571
+#, gcc-internal-format
+msgid "argument 1 must be a 5-bit signed literal"
+msgstr "引數 1 必須是一個 5 ä½æœ‰è™Ÿå­—é¢å€¼"
+
+#: config/rs6000/rs6000.c:6674 config/rs6000/rs6000.c:7468
+#, gcc-internal-format
+msgid "argument 2 must be a 5-bit unsigned literal"
+msgstr "引數 2 必須是一個 5 ä½ç„¡è™Ÿå­—é¢å€¼"
+
+#: config/rs6000/rs6000.c:6714
+#, gcc-internal-format
+msgid "argument 1 of __builtin_altivec_predicate must be a constant"
+msgstr "__builtin_altivec_predicate 的第一個引數必須是常數"
+
+#: config/rs6000/rs6000.c:6767
+#, gcc-internal-format
+msgid "argument 1 of __builtin_altivec_predicate is out of range"
+msgstr "__builtin_altivec_predicate 的第 1 個引數越界"
+
+#: config/rs6000/rs6000.c:6929
+#, gcc-internal-format
+msgid "argument 3 must be a 4-bit unsigned literal"
+msgstr "引數 3 必須是一個 4 ä½ç„¡è™Ÿå­—é¢å€¼"
+
+#: config/rs6000/rs6000.c:7101
+#, gcc-internal-format
+msgid "argument to %qs must be a 2-bit unsigned literal"
+msgstr "%qs 的引數必須是一個 2 ä½ç„¡è™ŸåŽŸæ–‡"
+
+#: config/rs6000/rs6000.c:7245
+#, gcc-internal-format
+msgid "unresolved overload for Altivec builtin %qF"
+msgstr ""
+
+#: config/rs6000/rs6000.c:7327
+#, gcc-internal-format
+msgid "argument to dss must be a 2-bit unsigned literal"
+msgstr "dss 的引數必須是一個 2 ä½ç„¡è™ŸåŽŸæ–‡"
+
+#: config/rs6000/rs6000.c:7588
+#, gcc-internal-format
+msgid "argument 1 of __builtin_spe_predicate must be a constant"
+msgstr "__builtin_spe_predicate 的第一個引數必須是常數"
+
+#: config/rs6000/rs6000.c:7660
+#, gcc-internal-format
+msgid "argument 1 of __builtin_spe_predicate is out of range"
+msgstr "__builtin_spe_predicate 的第 1 個引數越界"
+
+#: config/rs6000/rs6000.c:13609
+#, gcc-internal-format
+msgid "stack frame too large"
+msgstr "堆疊框架太大"
+
+#: config/rs6000/rs6000.c:16169
+#, gcc-internal-format
+msgid "no profiling of 64-bit code for this ABI"
+msgstr "æ­¤ ABI ä¸æ”¯æ´å–樣 64 ä½å…ƒç¨‹å¼ç¢¼"
+
+#: config/rs6000/rs6000.c:17278
+#, gcc-internal-format
+msgid "use of %<long%> in AltiVec types is invalid for 64-bit code"
+msgstr "å°æ–¼ 64 ä½å…ƒç¨‹å¼ç¢¼åœ¨ AltiVec 類型中使用 %<long%> 無效"
+
+#: config/rs6000/rs6000.c:17280
+#, gcc-internal-format
+msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
+msgstr "在 AltiVec 類型中使用 %<long%> å·²éŽæ™‚;請改用 %<int%>"
+
+#: config/rs6000/rs6000.c:17284
+#, gcc-internal-format
+msgid "use of %<long long%> in AltiVec types is invalid"
+msgstr "在 AltiVec 類型中使用 %<long long%> 無效"
+
+#: config/rs6000/rs6000.c:17286
+#, gcc-internal-format
+msgid "use of %<double%> in AltiVec types is invalid"
+msgstr "在 AltiVec 類型中使用 %<double%> 無效"
+
+#: config/rs6000/rs6000.c:17288
+#, gcc-internal-format
+msgid "use of %<long double%> in AltiVec types is invalid"
+msgstr "在 AltiVec 類型中使用 %<long double%> 無效"
+
+#: config/rs6000/rs6000.c:17290
+#, gcc-internal-format
+msgid "use of boolean types in AltiVec types is invalid"
+msgstr "在 AltiVec 類型中使用布林類型無效"
+
+#: config/rs6000/rs6000.c:17292
+#, gcc-internal-format
+msgid "use of %<complex%> in AltiVec types is invalid"
+msgstr "在 AltiVec 類型中使用 %<complex%> 無效"
+
+#: config/rs6000/aix43.h:39 config/rs6000/aix51.h:38 config/rs6000/aix52.h:38
+#, gcc-internal-format
+msgid "-maix64 and POWER architecture are incompatible"
+msgstr "-maix64 å’Œ POWER 架構互ä¸ç›¸å®¹"
+
+#: config/rs6000/aix43.h:44 config/rs6000/aix51.h:43 config/rs6000/aix52.h:43
+#, gcc-internal-format
+msgid "-maix64 requires PowerPC64 architecture remain enabled"
+msgstr "-maix64 éœ€è¦ PowerPC64 架構被啟用"
+
+#: config/rs6000/aix43.h:50 config/rs6000/aix52.h:49
+#, gcc-internal-format
+msgid "soft-float and long-double-128 are incompatible"
+msgstr "soft-float 與 long-double-128 互ä¸ç›¸å®¹"
+
+#: config/rs6000/aix43.h:54 config/rs6000/aix51.h:47 config/rs6000/aix52.h:53
+#, gcc-internal-format
+msgid "-maix64 required: 64-bit computation with 32-bit addressing not yet supported"
+msgstr "éœ€è¦ -maix64:目å‰å°šä¸æ”¯æ´ 64 ä½å…ƒè¨ˆç®—å’Œ 32 ä½å…ƒå®šå€æ··ç”¨"
+
+#. The Darwin ABI always includes AltiVec, can't be (validly) turned
+#. off.
+#: config/rs6000/darwin.h:75
+#, gcc-internal-format
+msgid "-mdynamic-no-pic overrides -fpic or -fPIC"
+msgstr "-mdynamic-no-pic 覆寫了 -fpic 或 -fPIC"
+
+#. Darwin doesn't support -fpic.
+#: config/rs6000/darwin.h:81
+#, gcc-internal-format
+msgid "-fpic is not supported; -fPIC assumed"
+msgstr "-fpic ä¸è¢«æ”¯æ´ï¼›æ”¹ç”¨ -fPIC"
+
+#: config/rs6000/darwin.h:88
+#, gcc-internal-format
+msgid "-m64 requires PowerPC64 architecture, enabling"
+msgstr "-m64 éœ€è¦ PowerPC64 架構,正在啟用"
+
+#. See note below.
+#. if (!rs6000_explicit_options.long_double)
+#. rs6000_long_double_type_size = 128;
+#: config/rs6000/eabispe.h:45 config/rs6000/linuxspe.h:62
+#, gcc-internal-format
+msgid "-m64 not supported in this configuration"
+msgstr "在目å‰é…置下 -m64 ä¸è¢«æ”¯æ´"
+
+#: config/rs6000/linux64.h:109
+#, gcc-internal-format
+msgid "-m64 requires a PowerPC64 cpu"
+msgstr "-m64 éœ€è¦ PowerPC64 CPU"
+
+#. 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:1593
+#, gcc-internal-format
+msgid "RETURN_ADDRESS_OFFSET not supported"
+msgstr "RETURN_ADDRESS_OFFSET ä¸å—支æ´"
+
+#. 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:130
+#, gcc-internal-format
+msgid "bad value for -mcall-%s"
+msgstr "-mcall-%s 值ä¸æ­£ç¢º"
+
+#: config/rs6000/sysv4.h:146
+#, gcc-internal-format
+msgid "bad value for -msdata=%s"
+msgstr "-msdata=%s 值ä¸æ­£ç¢º"
+
+#: config/rs6000/sysv4.h:163
+#, gcc-internal-format
+msgid "-mrelocatable and -msdata=%s are incompatible"
+msgstr "-mrelocatable 與 -msdata=%s 互ä¸ç›¸å®¹"
+
+#: config/rs6000/sysv4.h:172
+#, gcc-internal-format
+msgid "-f%s and -msdata=%s are incompatible"
+msgstr "-f%s å’Œ -msdata=%s 互ä¸ç›¸å®¹"
+
+#: config/rs6000/sysv4.h:181
+#, gcc-internal-format
+msgid "-msdata=%s and -mcall-%s are incompatible"
+msgstr "-msdata=%s 與 -mcall-%s 互ä¸ç›¸å®¹"
+
+#: config/rs6000/sysv4.h:190
+#, gcc-internal-format
+msgid "-mrelocatable and -mno-minimal-toc are incompatible"
+msgstr "-mrelocatable å’Œ -mno-minimal-toc 互ä¸ç›¸å®¹"
+
+#: config/rs6000/sysv4.h:196
+#, gcc-internal-format
+msgid "-mrelocatable and -mcall-%s are incompatible"
+msgstr "-mrelocatable 與 -mcall-%s 互ä¸ç›¸å®¹"
+
+#: config/rs6000/sysv4.h:203
+#, gcc-internal-format
+msgid "-fPIC and -mcall-%s are incompatible"
+msgstr "-fPIC 與 -mcall-%s 互ä¸ç›¸å®¹"
+
+#: config/rs6000/sysv4.h:210
+#, gcc-internal-format
+msgid "-mcall-aixdesc must be big endian"
+msgstr "-mcall-aixdesc 必須是高ä½ä½å…ƒçµ„在å‰"
+
+#: config/rs6000/sysv4.h:215
+#, gcc-internal-format
+msgid "-msecure-plt not supported by your assembler"
+msgstr "-msecure-plt ä¸ç‚ºæ‚¨çš„組譯器所支æ´"
+
+#: config/rs6000/sysv4.h:220
+#, gcc-internal-format
+msgid "-msoft-float and -mlong-double-128 not supported"
+msgstr ""
+
+#: config/rs6000/sysv4.h:234
+#, gcc-internal-format
+msgid "-m%s not supported in this configuration"
+msgstr "-m%s 在此é…置下ä¸å—支æ´"
+
+#: config/s390/s390.c:1339
+#, gcc-internal-format
+msgid "stack guard value must be an exact power of 2"
+msgstr "堆疊防護值必須是 2 的整數次方"
+
+#: config/s390/s390.c:1346
+#, gcc-internal-format
+msgid "stack size must be an exact power of 2"
+msgstr "堆疊大å°å¿…須剛好是 2 çš„æŸæ¬¡æ–¹"
+
+#: config/s390/s390.c:1391
+#, gcc-internal-format
+msgid "z/Architecture mode not supported on %s"
+msgstr "z/Architecture 模å¼åœ¨ %s 上ä¸å—支æ´"
+
+#: config/s390/s390.c:1393
+#, gcc-internal-format
+msgid "64-bit ABI not supported in ESA/390 mode"
+msgstr "64-bit ABI 在 ESA/390 模å¼ä¸‹ä¸å—支æ´"
+
+#: config/s390/s390.c:1404
+#, gcc-internal-format
+msgid "-mbackchain -mpacked-stack -mhard-float are not supported in combination"
+msgstr "-mbackchain -mpacked-stack -mhard-float 一起使用ä¸å—支æ´"
+
+#: config/s390/s390.c:1410
+#, gcc-internal-format
+msgid "-mstack-size implies use of -mstack-guard"
+msgstr "-mstack-size æ„味著使用 -mstack-guard"
+
+#: config/s390/s390.c:1412
+#, gcc-internal-format
+msgid "stack size must be greater than the stack guard value"
+msgstr "堆疊大å°å¿…須大於堆疊防護值"
+
+#: config/s390/s390.c:1414
+#, gcc-internal-format
+msgid "stack size must not be greater than 64k"
+msgstr "堆疊大å°ä¸èƒ½å¤§æ–¼ 64K"
+
+#: config/s390/s390.c:1417
+#, gcc-internal-format
+msgid "-mstack-guard implies use of -mstack-size"
+msgstr "-mstack-guard æ„味著使用 -mstack-size"
+
+#: config/s390/s390.c:6566
+#, gcc-internal-format
+msgid "total size of local variables exceeds architecture limit"
+msgstr "局部變數大å°ç¸½å’Œè¶…éŽæž¶æ§‹æ¥µå€¼ã€‚"
+
+#: config/s390/s390.c:7153
+#, gcc-internal-format
+msgid "frame size of %qs is "
+msgstr "%qs 的框架大å°æ˜¯"
+
+#: config/s390/s390.c:7153
+#, gcc-internal-format
+msgid " bytes"
+msgstr " ä½å…ƒçµ„"
+
+#: config/s390/s390.c:7157
+#, gcc-internal-format
+msgid "%qs uses dynamic stack allocation"
+msgstr "%qs 使用動態堆疊指派"
+
+#: config/sh/sh.c:6483
+#, gcc-internal-format
+msgid "__builtin_saveregs not supported by this subtarget"
+msgstr "__builtin_saveregs 在此å­ç›®çš„上ä¸å—支æ´"
+
+#: config/sh/sh.c:7488
+#, gcc-internal-format
+msgid "%qs attribute only applies to interrupt functions"
+msgstr "%qs 屬性åªèƒ½å¥—用到æ’斷函å¼ä¸Š"
+
+#: config/sh/sh.c:7574
+#, gcc-internal-format
+msgid "attribute interrupt_handler is not compatible with -m5-compact"
+msgstr "屬性 interrupt_handler 與 -m5-compact ä¸ç›¸å®¹"
+
+#. The argument must be a constant string.
+#: config/sh/sh.c:7596
+#, gcc-internal-format
+msgid "%qs attribute argument not a string constant"
+msgstr "%qs 屬性的åƒæ•¸ä¸æ˜¯ä¸€å€‹å­—串常數"
+
+#. The argument must be a constant integer.
+#: config/sh/sh.c:7621
+#, gcc-internal-format
+msgid "%qs attribute argument not an integer constant"
+msgstr "%qs 屬性的åƒæ•¸ä¸æ˜¯ä¸€å€‹æ•´åž‹å¸¸æ•¸"
+
+#: config/sh/sh.c:9673
+#, gcc-internal-format
+msgid "r0 needs to be available as a call-clobbered register"
+msgstr "r0 需è¦åšç‚ºå‘¼å«ç¯¡æ”¹çš„暫存器"
+
+#: config/sh/sh.c:9694
+#, gcc-internal-format
+msgid "Need a second call-clobbered general purpose register"
+msgstr "需è¦å¦ä¸€å€‹å‘¼å«ç¯¡æ”¹çš„通用暫存器"
+
+#: config/sh/sh.c:9702
+#, gcc-internal-format
+msgid "Need a call-clobbered target register"
+msgstr "需è¦ä¸€å€‹å‘¼å«ç¯¡æ”¹çš„通用暫存器"
+
+#: config/sh/symbian.c:147
+#, gcc-internal-format
+msgid "function %q+D is defined after prior declaration as dllimport: attribute ignored"
+msgstr "å‡½å¼ %q+D 在定義å‰è¢«å®£å‘Šç‚º dllimport:忽略此屬性"
+
+#: config/sh/symbian.c:159
+#, gcc-internal-format
+msgid "inline function %q+D is declared as dllimport: attribute ignored"
+msgstr "å…§è¯å‡½å¼ %q+D 宣告為 dllimport:忽略此屬性。"
+
+#: config/sh/symbian.c:280
+#, gcc-internal-format
+msgid "failure in redeclaration of %q+D: dllimport'd symbol lacks external linkage"
+msgstr "無法é‡å®£å‘Š %q+D:dllimport 符號沒有外部連çµã€‚"
+
+#: config/sh/symbian.c:326
+#, gcc-internal-format
+msgid "%s %q+D %s after being referenced with dllimport linkage"
+msgstr "%s %q+D %s 已被åšç‚º dllimport 連çµåƒç…§éŽã€‚"
+
+#: config/sh/symbian.c:892 cp/tree.c:2335
+#, gcc-internal-format
+msgid "lang_* check: failed in %s, at %s:%d"
+msgstr "lang_* check:在 %s 中失敗,於 %s:%d"
+
+#. FIXME
+#: config/sh/netbsd-elf.h:95
+#, gcc-internal-format
+msgid "unimplemented-shmedia profiling"
+msgstr "未實作 - shmedia å–樣"
+
+#. There are no delay slots on SHmedia.
+#. Relaxation isn't yet supported for SHmedia
+#. After reload, if conversion does little good but can cause ICEs: - find_if_block doesn't do anything for SH because we don't have conditional execution patterns. (We use conditional move patterns, which are handled differently, and only before reload). - find_cond_trap doesn't do anything for the SH because we #. don't have conditional traps. - find_if_case_1 uses redirect_edge_and_branch_force in the only path that does an optimization, and this causes an ICE when branch targets are in registers. - find_if_case_2 doesn't do anything for the SHmedia after reload except when it can redirect a tablejump - and that's rather rare.
+#. -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:611
+#, gcc-internal-format
+msgid "profiling is still experimental for this target"
+msgstr "å–樣最佳化在此目標平臺上ä»åªå±¬è©¦é©—性質"
+
+#. Only the sh64-elf assembler fully supports .quad properly.
+#. User supplied - leave it alone.
+#. The debugging information is sufficient, but gdb doesn't implement this yet
+#. Never run scheduling before reload, since that can break global alloc, and generates slower code anyway due to the pressure on R0.
+#. Enable sched1 for SH4; ready queue will be reordered by the target hooks when pressure is high. We can not do this for SH3 and lower as they give spill failures for R0.
+#. ??? Current exception handling places basic block boundaries after call_insns. It causes the high pressure on R0 and gives spill failures for R0 in reload. See PR 22553 and the thread on gcc-patches <http://gcc.gnu.org/ml/gcc-patches/2005-10/msg00816.html>.
+#: config/sh/sh.h:676
+#, gcc-internal-format
+msgid "ignoring -fschedule-insns because of exception handling bug"
+msgstr "忽略 -fschedule-insns 以繞開異常處ç†çš„缺陷"
+
+#: config/sparc/sparc.c:643
+#, gcc-internal-format
+msgid "%s is not supported by this configuration"
+msgstr "%s ä¸ç‚ºé€™å€‹é…置所支æ´"
+
+#: config/sparc/sparc.c:650
+#, gcc-internal-format
+msgid "-mlong-double-64 not allowed with -m64"
+msgstr "-mlong-double-64 ä¸å…許與 -m64 一起使用"
+
+#: config/sparc/sparc.c:675
+#, gcc-internal-format
+msgid "-mcmodel= is not supported on 32 bit systems"
+msgstr "32 ä½å…ƒç³»çµ±ä¸æ”¯æ´ -mcmodel="
+
+#: config/stormy16/stormy16.c:497
+#, gcc-internal-format
+msgid "constant halfword load operand out of range"
+msgstr "常數åŠå­—載入é‹ç®—元超éŽç¯„åœ"
+
+#: config/stormy16/stormy16.c:507
+#, gcc-internal-format
+msgid "constant arithmetic operand out of range"
+msgstr "常數算術é‹ç®—元超éŽç¯„åœ"
+
+#: config/stormy16/stormy16.c:1108
+#, gcc-internal-format
+msgid "local variable memory requirements exceed capacity"
+msgstr "局部變數記憶體需求超éŽå®¹é‡é™åˆ¶"
+
+#: config/stormy16/stormy16.c:1274
+#, gcc-internal-format
+msgid "function_profiler support"
+msgstr "function_profiler 支æ´"
+
+#: config/stormy16/stormy16.c:1363
+#, gcc-internal-format
+msgid "cannot use va_start in interrupt function"
+msgstr "ä¸èƒ½ç‚ºæ’斷函å¼ä½¿ç”¨ va_start"
+
+#: config/stormy16/stormy16.c:1895
+#, gcc-internal-format
+msgid "switch statement of size %lu entries too large"
+msgstr "switch 敘述太大(%lu 個æ¢ç›®)"
+
+#: config/stormy16/stormy16.c:2263
+#, gcc-internal-format
+msgid "%<__BELOW100__%> attribute only applies to variables"
+msgstr "屬性 %<__BELOW100__%> åªå°è®Šæ•¸é¡žåž‹èµ·ä½œç”¨"
+
+#: config/stormy16/stormy16.c:2270
+#, gcc-internal-format
+msgid "__BELOW100__ attribute not allowed with auto storage class"
+msgstr "__BELOW100__ 屬性ä¸å…許用於自動存儲類別"
+
+#: config/v850/v850-c.c:67
+#, gcc-internal-format
+msgid "#pragma GHS endXXXX found without previous startXXX"
+msgstr "#pragma GHS endXXXX å‰æ²’有 startXXX"
+
+#: config/v850/v850-c.c:70
+#, gcc-internal-format
+msgid "#pragma GHS endXXX does not match previous startXXX"
+msgstr "#pragma GHS endXXX 與先å‰çš„ startXXX ä¸åŒ¹é…"
+
+#: config/v850/v850-c.c:96
+#, gcc-internal-format
+msgid "cannot set interrupt attribute: no current function"
+msgstr "無法設定æ’斷屬性:沒有目å‰å‡½å¼"
+
+#: config/v850/v850-c.c:104
+#, gcc-internal-format
+msgid "cannot set interrupt attribute: no such identifier"
+msgstr "無法設定æ’斷屬性:沒有這個識別碼"
+
+#: config/v850/v850-c.c:149
+#, gcc-internal-format
+msgid "junk at end of #pragma ghs section"
+msgstr "#pragma ghs section 末尾有無用字元"
+
+#: config/v850/v850-c.c:166
+#, gcc-internal-format
+msgid "unrecognized section name \"%s\""
+msgstr "ä¸æ˜Žçš„å€æ®µå「%sã€"
+
+#: config/v850/v850-c.c:181
+#, gcc-internal-format
+msgid "malformed #pragma ghs section"
+msgstr "æ ¼å¼éŒ¯èª¤çš„ #pragma ghs section"
+
+#: config/v850/v850-c.c:200
+#, gcc-internal-format
+msgid "junk at end of #pragma ghs interrupt"
+msgstr "#pragma ghs interrupt 末尾有無用字元"
+
+#: config/v850/v850-c.c:211
+#, gcc-internal-format
+msgid "junk at end of #pragma ghs starttda"
+msgstr "#pragma ghs starttda 末尾有無用字元"
+
+#: config/v850/v850-c.c:222
+#, gcc-internal-format
+msgid "junk at end of #pragma ghs startsda"
+msgstr "#pragma ghs startsda 末尾有無用字元"
+
+#: config/v850/v850-c.c:233
+#, gcc-internal-format
+msgid "junk at end of #pragma ghs startzda"
+msgstr "#pragma ghs startzda 末尾有無用字元"
+
+#: config/v850/v850-c.c:244
+#, gcc-internal-format
+msgid "junk at end of #pragma ghs endtda"
+msgstr "#pragma ghs endtda 末尾有無用字元"
+
+#: config/v850/v850-c.c:255
+#, gcc-internal-format
+msgid "junk at end of #pragma ghs endsda"
+msgstr "#pragma ghs endsda 末尾有無用字元"
+
+#: config/v850/v850-c.c:266
+#, gcc-internal-format
+msgid "junk at end of #pragma ghs endzda"
+msgstr "#pragma ghs endzda 末尾有無用字元"
+
+#: config/v850/v850.c:172
+#, gcc-internal-format
+msgid "value passed to %<-m%s%> is too large"
+msgstr "傳éžçµ¦ %<-m%s%> 的值太大"
+
+#: config/v850/v850.c:2147
+#, gcc-internal-format
+msgid "%Jdata area attributes cannot be specified for local variables"
+msgstr "%Jä¸èƒ½ç‚ºå±€éƒ¨è®Šæ•¸æŒ‡å®šè³‡æ–™å€åŸŸå±¬æ€§"
+
+#: config/v850/v850.c:2158
+#, gcc-internal-format
+msgid "data area of %q+D conflicts with previous declaration"
+msgstr "%q+D 的資料å€åŸŸèˆ‡å…ˆå‰çš„宣告è¡çª"
+
+#: config/v850/v850.c:2288
+#, gcc-internal-format
+msgid "bogus JR construction: %d"
+msgstr "誤判的 JR 建構:%d"
+
+#: config/v850/v850.c:2306 config/v850/v850.c:2415
+#, gcc-internal-format
+msgid "bad amount of stack space removal: %d"
+msgstr ""
+
+#: config/v850/v850.c:2395
+#, gcc-internal-format
+msgid "bogus JARL construction: %d\n"
+msgstr "誤判的 JARL 建構:%d\n"
+
+#: config/v850/v850.c:2694
+#, gcc-internal-format
+msgid "bogus DISPOSE construction: %d"
+msgstr "誤判的 DISPOSE 建構:%d"
+
+#: config/v850/v850.c:2713
+#, gcc-internal-format
+msgid "too much stack space to dispose of: %d"
+msgstr "è¦æ¨æ£„太多的堆疊空間:%d"
+
+#: config/v850/v850.c:2815
+#, gcc-internal-format
+msgid "bogus PREPEARE construction: %d"
+msgstr "誤判的 PREPEARE 建構:%d"
+
+#: config/v850/v850.c:2834
+#, gcc-internal-format
+msgid "too much stack space to prepare: %d"
+msgstr "è¦æº–備太多的堆疊空間:%d"
+
+#: config/xtensa/xtensa.c:1505
+#, gcc-internal-format
+msgid "boolean registers required for the floating-point option"
+msgstr "浮點é¸é …需è¦å¸ƒæž—暫存器"
+
+#: config/xtensa/xtensa.c:1551
+#, gcc-internal-format
+msgid "-f%s is not supported with CONST16 instructions"
+msgstr "CONST16 指令ä¸æ”¯æ´ -f%s"
+
+#: config/xtensa/xtensa.c:1556
+#, gcc-internal-format
+msgid "PIC is required but not supported with CONST16 instructions"
+msgstr "éœ€è¦ PIC,但 CONST16 指令ä¸æ”¯æ´"
+
+#: config/xtensa/xtensa.c:2414
+#, gcc-internal-format
+msgid "only uninitialized variables can be placed in a .bss section"
+msgstr "åªæœ‰æœªåˆå§‹åŒ–的變數æ‰èƒ½æ”¾åœ¨ .bss å€æ®µä¸­"
+
+#: ada/misc.c:262
+#, gcc-internal-format
+msgid "missing argument to \"-%s\""
+msgstr "「-%sã€ç¼ºå°‘åƒæ•¸"
+
+#: ada/misc.c:303
+#, gcc-internal-format
+msgid "%<-gnat%> misspelled as %<-gant%>"
+msgstr "%<-gnat%> 被錯誤地拼寫為 %<-gant%>"
+
+#: cp/call.c:286
+#, gcc-internal-format
+msgid "unable to call pointer to member function here"
+msgstr "無法在這裡呼å«å‡½å¼æˆå“¡æŒ‡æ¨™"
+
+#: cp/call.c:2389
+#, gcc-internal-format
+msgid "%s %D(%T, %T, %T) <built-in>"
+msgstr "%s %D(%T, %T, %T) <內建>"
+
+#: cp/call.c:2394
+#, gcc-internal-format
+msgid "%s %D(%T, %T) <built-in>"
+msgstr "%s %D(%T, %T) <內建>"
+
+#: cp/call.c:2398
+#, gcc-internal-format
+msgid "%s %D(%T) <built-in>"
+msgstr "%s %D(%T) <內建>"
+
+#: cp/call.c:2402
+#, gcc-internal-format
+msgid "%s %T <conversion>"
+msgstr "%s %T <轉æ›>"
+
+#: cp/call.c:2404
+#, gcc-internal-format
+msgid "%s %+#D <near match>"
+msgstr "%s %+#D <就近匹é…>"
+
+#: cp/call.c:2406 cp/pt.c:1327
+#, gcc-internal-format
+msgid "%s %+#D"
+msgstr "%s %+#D"
+
+#: cp/call.c:2628
+#, gcc-internal-format
+msgid "conversion from %qT to %qT is ambiguous"
+msgstr "從 %qT 到 %qT 的轉æ›æœ‰æ­§ç¾©"
+
+#: cp/call.c:2779 cp/call.c:2797 cp/call.c:2855
+#, gcc-internal-format
+msgid "no matching function for call to %<%D(%A)%>"
+msgstr "å° %<%D(%A)%> 的呼å«æ²’有匹é…的函å¼"
+
+#: cp/call.c:2800 cp/call.c:2858
+#, gcc-internal-format
+msgid "call of overloaded %<%D(%A)%> is ambiguous"
+msgstr "呼å«å¤šè¼‰çš„ %<%D(%A)%> 有歧義"
+
+#. It's no good looking for an overloaded operator() on a
+#. pointer-to-member-function.
+#: cp/call.c:2926
+#, gcc-internal-format
+msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*"
+msgstr "沒有物件ä¸èƒ½å‘¼å«æˆå“¡å‡½å¼æŒ‡æ¨™ %E,考慮使用 .* 或 ->*"
+
+#: cp/call.c:3000
+#, gcc-internal-format
+msgid "no match for call to %<(%T) (%A)%>"
+msgstr "å° %<(%T) (%A)%> 的呼å«æ²’有匹é…"
+
+#: cp/call.c:3009
+#, gcc-internal-format
+msgid "call of %<(%T) (%A)%> is ambiguous"
+msgstr "å° %<(%T) (%A)%> 的呼å«æœ‰æ­§ç¾©"
+
+#: cp/call.c:3047
+#, gcc-internal-format
+msgid "%s for ternary %<operator?:%> in %<%E ? %E : %E%>"
+msgstr "%s 為三元 %<operator?:%> 在 %<%E ? %E : %E%> 中"
+
+#: cp/call.c:3053
+#, gcc-internal-format
+msgid "%s for %<operator%s%> in %<%E%s%>"
+msgstr "%s 為 %<operator%s%> 在 %<%E%s%> 中"
+
+#: cp/call.c:3057
+#, gcc-internal-format
+msgid "%s for %<operator[]%> in %<%E[%E]%>"
+msgstr "%s 為 %<operator[]%> 在 %<%E[%E]%> 中"
+
+#: cp/call.c:3062
+#, gcc-internal-format
+msgid "%s for %qs in %<%s %E%>"
+msgstr "%s 為 %qs 在 %<%s %E%>"
+
+#: cp/call.c:3067
+#, gcc-internal-format
+msgid "%s for %<operator%s%> in %<%E %s %E%>"
+msgstr "%s 為 %<operator%s%> 在 %<%E %s %E%> 中"
+
+#: cp/call.c:3070
+#, gcc-internal-format
+msgid "%s for %<operator%s%> in %<%s%E%>"
+msgstr "%s 為 %<operator%s%> 在 %<%s%E%> 中"
+
+#: cp/call.c:3162
+#, gcc-internal-format
+msgid "ISO C++ forbids omitting the middle term of a ?: expression"
+msgstr "ISO C ä¸å…許çœç•¥ ?: é‹ç®—å¼ä¸­çš„第二項"
+
+#: cp/call.c:3239
+#, gcc-internal-format
+msgid "%qE has type %<void%> and is not a throw-expression"
+msgstr "%qE 類型為 %<void%>,ä¸æ˜¯ä¸€å€‹ throw é‹ç®—å¼"
+
+#: cp/call.c:3278 cp/call.c:3488
+#, gcc-internal-format
+msgid "operands to ?: have different types"
+msgstr "?: çš„é‹ç®—元有ä¸åŒçš„é¡žåž‹"
+
+#: cp/call.c:3442
+#, gcc-internal-format
+msgid "enumeral mismatch in conditional expression: %qT vs %qT"
+msgstr "æ¢ä»¶é‹ç®—å¼ä¸­åˆ—舉ä¸åŒ¹é…:%qT å° %qT"
+
+#: cp/call.c:3449
+#, gcc-internal-format
+msgid "enumeral and non-enumeral type in conditional expression"
+msgstr "列舉和éžåˆ—舉類型一起出ç¾åœ¨æ¢ä»¶é‹ç®—å¼ä¸­"
+
+#: cp/call.c:3743
+#, gcc-internal-format
+msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
+msgstr "%<%D(int)%> 沒有出ç¾åœ¨å­—å°¾ %qs 中,嘗試使用字首é‹ç®—å­"
+
+#: cp/call.c:3816
+#, gcc-internal-format
+msgid "comparison between %q#T and %q#T"
+msgstr "在 %q#T 和 %q#T 間比較"
+
+#: cp/call.c:4075
+#, gcc-internal-format
+msgid "no suitable %<operator %s%> for %qT"
+msgstr "沒有åˆé©çš„ %<operator %s%> 給 %qT"
+
+#: cp/call.c:4092
+#, gcc-internal-format
+msgid "%q+#D is private"
+msgstr "%q+#D 是ç§æœ‰çš„"
+
+#: cp/call.c:4094
+#, gcc-internal-format
+msgid "%q+#D is protected"
+msgstr "%q+#D 是ä¿è­·çš„"
+
+#: cp/call.c:4096
+#, gcc-internal-format
+msgid "%q+#D is inaccessible"
+msgstr "%q+#D 無法存å–"
+
+#: cp/call.c:4097
+#, gcc-internal-format
+msgid "within this context"
+msgstr "在此上下文中"
+
+#: cp/call.c:4186 cp/cvt.c:264
+#, gcc-internal-format
+msgid "invalid conversion from %qT to %qT"
+msgstr "從類型 %qT 到類型 %qT 的轉æ›ç„¡æ•ˆ"
+
+#: cp/call.c:4188
+#, gcc-internal-format
+msgid " initializing argument %P of %qD"
+msgstr " åˆå§‹åŒ–引數 %P,屬於 %qD"
+
+#: cp/call.c:4200
+#, gcc-internal-format
+msgid "passing NULL to non-pointer argument %P of %qD"
+msgstr "å°‡ NULL åšç‚ºéžæŒ‡æ¨™å¼•æ•¸ %P 傳éžçµ¦ %qD"
+
+#: cp/call.c:4203
+#, gcc-internal-format
+msgid "converting to non-pointer type %qT from NULL"
+msgstr "å°‡ NULL 轉æ›åˆ°éžæŒ‡æ¨™é¡žåž‹ %qT"
+
+#: cp/call.c:4211
+#, gcc-internal-format
+msgid "passing %qT for argument %P to %qD"
+msgstr "å°‡ %qT åšç‚ºå¼•æ•¸ %P 傳éžçµ¦ %qD"
+
+#: cp/call.c:4214
+#, gcc-internal-format
+msgid "converting to %qT from %qT"
+msgstr "當轉æ›åˆ° %qT (從 %qT)時"
+
+#: cp/call.c:4353
+#, gcc-internal-format
+msgid "cannot bind bitfield %qE to %qT"
+msgstr "無法將ä½å…ƒæ®µ %qE 繫çµåˆ° %qT"
+
+#: cp/call.c:4356 cp/call.c:4372
+#, gcc-internal-format
+msgid "cannot bind packed field %qE to %qT"
+msgstr "ä¸èƒ½å°‡ç·Šå¯¦çš„æ¬„ä½ %qE 繫çµåˆ° %qT"
+
+#: cp/call.c:4359
+#, gcc-internal-format
+msgid "cannot bind rvalue %qE to %qT"
+msgstr "無法將å³å€¼ %qE 繫çµåˆ° %qT"
+
+#: cp/call.c:4473
+#, gcc-internal-format
+msgid "cannot pass objects of non-POD type %q#T through %<...%>; call will abort at runtime"
+msgstr "ä¸èƒ½é€éŽ %<...%> 傳éžæœ‰éžç°¡å–®èˆŠè³‡æ–™é¡žåž‹ %q#T 的物件;呼å«æœƒåœ¨åŸ·è¡Œæ™‚中止"
+
+#. Undefined behavior [expr.call] 5.2.2/7.
+#: cp/call.c:4499
+#, gcc-internal-format
+msgid "cannot receive objects of non-POD type %q#T through %<...%>; call will abort at runtime"
+msgstr "ä¸èƒ½é€éŽ %<...%> 接å—有éžç°¡å–®èˆŠè³‡æ–™é¡žåž‹ %q#T 的物件;呼å«æœƒåœ¨åŸ·è¡Œæ™‚中止"
+
+#: cp/call.c:4542
+#, gcc-internal-format
+msgid "the default argument for parameter %d of %qD has not yet been parsed"
+msgstr "åƒæ•¸ %d(屬於 %qD)尚未被解æžåˆ°"
+
+#: cp/call.c:4621
+#, gcc-internal-format
+msgid "argument of function call might be a candidate for a format attribute"
+msgstr "函å¼çš„引數å¯èƒ½æ˜¯ format 屬性的備é¸"
+
+#: cp/call.c:4758
+#, gcc-internal-format
+msgid "passing %qT as %<this%> argument of %q#D discards qualifiers"
+msgstr "å°‡ %qT åšç‚º %q#D çš„ %<this%> 引數時丟棄了類型é™å®š"
+
+#: cp/call.c:4777
+#, gcc-internal-format
+msgid "%qT is not an accessible base of %qT"
+msgstr "%qT 是 %qT 的一個ä¸å¯å­˜å–的基礎類別"
+
+#: cp/call.c:5027
+#, gcc-internal-format
+msgid "could not find class$ field in java interface type %qT"
+msgstr "在 java 介é¢é¡žåž‹ %qT 中找ä¸åˆ° class$ 欄ä½"
+
+#: cp/call.c:5264
+#, gcc-internal-format
+msgid "call to non-function %qD"
+msgstr "呼å«éžå‡½å¼çš„ %qD"
+
+#: cp/call.c:5386
+#, gcc-internal-format
+msgid "no matching function for call to %<%T::%s(%A)%#V%>"
+msgstr "å° %<%T::%s(%A)%#V%> 的呼å«æ²’有匹é…的函å¼"
+
+#: cp/call.c:5404
+#, gcc-internal-format
+msgid "call of overloaded %<%s(%A)%> is ambiguous"
+msgstr "å°å¤šè¼‰çš„ %<%s(%A)%> 的呼å«æœ‰æ­§ç¾©"
+
+#: cp/call.c:5428
+#, gcc-internal-format
+msgid "cannot call member function %qD without object"
+msgstr "沒有物件無法呼å«æˆå“¡å‡½å¼ %qD"
+
+#: cp/call.c:6033
+#, gcc-internal-format
+msgid "passing %qT chooses %qT over %qT"
+msgstr "å‚³éž %qT 時é¸æ“‡ %qT 而ä¸æ˜¯ %qT"
+
+#: cp/call.c:6035 cp/name-lookup.c:4257
+#, gcc-internal-format
+msgid " in call to %qD"
+msgstr " åœ¨å‘¼å« %qD 時"
+
+#: cp/call.c:6092
+#, gcc-internal-format
+msgid "choosing %qD over %qD"
+msgstr "é¸æ“‡ %qD 而ä¸æ˜¯ %qD"
+
+#: cp/call.c:6093
+#, gcc-internal-format
+msgid " for conversion from %qT to %qT"
+msgstr " 當從 %qT 轉æ›ç‚º %qT 時"
+
+#: cp/call.c:6095
+#, gcc-internal-format
+msgid " because conversion sequence for the argument is better"
+msgstr " 因為å‰è€…的引數類型轉æ›åºåˆ—更好"
+
+#: cp/call.c:6209
+#, gcc-internal-format
+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++ èªç‚ºæœ‰æ­§ç¾©ï¼Œç›¡ç®¡ç¬¬ä¸€å€‹å‚™é¸çš„最差類型轉æ›è¦å¥½æ–¼ç¬¬äºŒå€‹å‚™é¸çš„最差類型轉æ›"
+
+#: cp/call.c:6353
+#, gcc-internal-format
+msgid "could not convert %qE to %qT"
+msgstr "ä¸èƒ½å°‡ %qE 轉æ›ç‚º %qT"
+
+#: cp/call.c:6478
+#, gcc-internal-format
+msgid "invalid initialization of non-const reference of type %qT from a temporary of type %qT"
+msgstr "將類型為 %qT çš„éž const åƒç…§åˆå§‹åŒ–為類型為 %qT 的臨時變數無效"
+
+#: cp/call.c:6482
+#, gcc-internal-format
+msgid "invalid initialization of reference of type %qT from expression of type %qT"
+msgstr "將類型為 %qT çš„åƒç…§åˆå§‹åŒ–為類型為 %qT çš„é‹ç®—å¼ç„¡æ•ˆ"
+
+#: cp/class.c:281
+#, gcc-internal-format
+msgid "cannot convert from base %qT to derived type %qT via virtual base %qT"
+msgstr "無法從基礎類別 %qT 轉æ›åˆ°è¡ç”Ÿé¡žåˆ¥ %qT,é€éŽè™›åŸºç¤Žé¡žåˆ¥ %qT"
+
+#: cp/class.c:945
+#, gcc-internal-format
+msgid "Java class %qT cannot have a destructor"
+msgstr "Java 類別 %qT ä¸èƒ½æœ‰è§£æ§‹å‡½å¼"
+
+#: cp/class.c:947
+#, gcc-internal-format
+msgid "Java class %qT cannot have an implicit non-trivial destructor"
+msgstr "Java 類別 %qT ä¸èƒ½æœ‰éš±å«çš„éžå¹³å‡¡çš„解構函å¼"
+
+#: cp/class.c:1054
+#, gcc-internal-format
+msgid "repeated using declaration %q+D"
+msgstr "é‡è¤‡çš„ using 宣告 %q+D"
+
+#: cp/class.c:1056
+#, gcc-internal-format
+msgid "using declaration %q+D conflicts with a previous using declaration"
+msgstr "using 宣告 %q+D 與先å‰çš„一個 using 宣告è¡çª"
+
+#: cp/class.c:1061
+#, gcc-internal-format
+msgid "%q+#D cannot be overloaded"
+msgstr "%q+#D 無法被多載"
+
+#: cp/class.c:1062
+#, gcc-internal-format
+msgid "with %q+#D"
+msgstr "與 %q+#D"
+
+#: cp/class.c:1124
+#, gcc-internal-format
+msgid "conflicting access specifications for method %q+D, ignored"
+msgstr "方法 %q+D 的權é™è¨­å®šè¡çªï¼Œå·²å¿½ç•¥"
+
+#: cp/class.c:1127
+#, gcc-internal-format
+msgid "conflicting access specifications for field %qE, ignored"
+msgstr "æ¬„ä½ %qE 的權é™è¨­å®šè¡çªï¼Œå·²å¿½ç•¥"
+
+#: cp/class.c:1188 cp/class.c:1196
+#, gcc-internal-format
+msgid "%q+D invalid in %q#T"
+msgstr "%q+D 無效,在 %q#T 中"
+
+#: cp/class.c:1189
+#, gcc-internal-format
+msgid " because of local method %q+#D with same name"
+msgstr " 因為局部方法 %q+#D 與之åŒå"
+
+#: cp/class.c:1197
+#, gcc-internal-format
+msgid " because of local member %q+#D with same name"
+msgstr " 因為局部æˆå“¡ %q+#D 與之åŒå"
+
+#: cp/class.c:1239
+#, gcc-internal-format
+msgid "base class %q#T has a non-virtual destructor"
+msgstr "基礎類別 %q#T 有一個éžè™›è§£æ§‹å‡½å¼"
+
+#: cp/class.c:1553
+#, gcc-internal-format
+msgid "all member functions in class %qT are private"
+msgstr "類別 %qT 中所有æˆå“¡å‡½å¼éƒ½æ˜¯ç§æœ‰çš„"
+
+#: cp/class.c:1564
+#, gcc-internal-format
+msgid "%q#T only defines a private destructor and has no friends"
+msgstr "%q#T 僅定義了一個ç§æœ‰è§£æ§‹å‡½å¼ä¸”沒有夥伴"
+
+#: cp/class.c:1607
+#, gcc-internal-format
+msgid "%q#T only defines private constructors and has no friends"
+msgstr "%q#T 僅定義了一個ç§æœ‰å»ºæ§‹å¼ä¸”沒有夥伴"
+
+#: cp/class.c:2000
+#, gcc-internal-format
+msgid "no unique final overrider for %qD in %qT"
+msgstr "%qD 的最終多載在 %qT 中ä¸å”¯ä¸€"
+
+#. Here we know it is a hider, and no overrider exists.
+#: cp/class.c:2419
+#, gcc-internal-format
+msgid "%q+D was hidden"
+msgstr "%q+D 被隱è—"
+
+#: cp/class.c:2420
+#, gcc-internal-format
+msgid " by %q+D"
+msgstr " 為 %q+D"
+
+#: cp/class.c:2461 cp/decl2.c:1072
+#, gcc-internal-format
+msgid "%q+#D invalid; an anonymous union can only have non-static data members"
+msgstr "%q+#D 無效;匿åè¯åˆåªèƒ½æœ‰éžéœæ…‹çš„資料æˆå“¡"
+
+#: cp/class.c:2467 cp/decl2.c:1078
+#, gcc-internal-format
+msgid "private member %q+#D in anonymous union"
+msgstr "匿åè¯åˆä¸­å‡ºç¾ç§æœ‰æˆå“¡ %q+#D"
+
+#: cp/class.c:2469 cp/decl2.c:1080
+#, gcc-internal-format
+msgid "protected member %q+#D in anonymous union"
+msgstr "匿åè¯åˆä¸­å‡ºç¾ä¿è­·æˆå“¡ %q+#D"
+
+#: cp/class.c:2635
+#, gcc-internal-format
+msgid "bit-field %q+#D with non-integral type"
+msgstr "ä½å…ƒæ®µ %q+#D 有éžæ•´æ•¸çš„é¡žåž‹"
+
+#: cp/class.c:2652
+#, gcc-internal-format
+msgid "bit-field %q+D width not an integer constant"
+msgstr "ä½å…ƒæ®µ %q+D 的寬度ä¸æ˜¯ä¸€å€‹æ•´æ•¸å¸¸æ•¸"
+
+#: cp/class.c:2657
+#, gcc-internal-format
+msgid "negative width in bit-field %q+D"
+msgstr "ä½å…ƒæ®µ %q+D 寬度為負"
+
+#: cp/class.c:2662
+#, gcc-internal-format
+msgid "zero width for bit-field %q+D"
+msgstr "ä½å…ƒæ®µ %q+D 寬度為 0"
+
+#: cp/class.c:2668
+#, gcc-internal-format
+msgid "width of %q+D exceeds its type"
+msgstr "%q+D 的寬度超éŽäº†å®ƒçš„é¡žåž‹"
+
+#: cp/class.c:2677
+#, gcc-internal-format
+msgid "%q+D is too small to hold all values of %q#T"
+msgstr "%q+D 太å°è€Œä¸èƒ½å­˜æ”¾ %q#T 的所有å¯èƒ½å€¼"
+
+#: cp/class.c:2736
+#, gcc-internal-format
+msgid "member %q+#D with constructor not allowed in union"
+msgstr "有建構å¼çš„æˆå“¡ %q+#D ä¸èƒ½ç”¨åœ¨è¯åˆä¸­"
+
+#: cp/class.c:2739
+#, gcc-internal-format
+msgid "member %q+#D with destructor not allowed in union"
+msgstr "有解構函å¼çš„æˆå“¡ %q+#D ä¸èƒ½ç”¨åœ¨è¯åˆä¸­"
+
+#: cp/class.c:2741
+#, gcc-internal-format
+msgid "member %q+#D with copy assignment operator not allowed in union"
+msgstr "有複製賦值é‹ç®—å­çš„æˆå“¡ %q+#D ä¸èƒ½ç”¨åœ¨è¯åˆä¸­"
+
+#: cp/class.c:2764
+#, gcc-internal-format
+msgid "multiple fields in union %qT initialized"
+msgstr "åˆå§‹åŒ–了è¯åˆ %qT 中的多個欄ä½"
+
+#: cp/class.c:2826
+#, gcc-internal-format
+msgid "ignoring packed attribute on unpacked non-POD field %q+#D"
+msgstr "為éžç·Šå¯¦çš„éžç°¡å–®èˆŠè³‡æ–™æ¬„ä½ %q+#D 忽略 packed 屬性"
+
+#: cp/class.c:2886
+#, gcc-internal-format
+msgid "%q+D may not be static because it is a member of a union"
+msgstr "%q+D ä¸èƒ½æ˜¯éœæ…‹çš„,因為它是è¯åˆçš„æˆå“¡"
+
+#: cp/class.c:2891
+#, gcc-internal-format
+msgid "%q+D may not have reference type %qT because it is a member of a union"
+msgstr "%q+D ä¸èƒ½æœ‰åƒç…§é¡žåž‹ %qT,因為它是è¯åˆçš„æˆå“¡"
+
+#: cp/class.c:2900
+#, gcc-internal-format
+msgid "field %q+D in local class cannot be static"
+msgstr "å±€éƒ¨é¡žåˆ¥ä¸­çš„æ¬„ä½ %q+D ä¸èƒ½æ˜¯éœæ…‹çš„"
+
+#: cp/class.c:2906
+#, gcc-internal-format
+msgid "field %q+D invalidly declared function type"
+msgstr "æ¬„ä½ %q+D 無效地宣告為函å¼é¡žåž‹"
+
+#: cp/class.c:2912
+#, gcc-internal-format
+msgid "field %q+D invalidly declared method type"
+msgstr "æ¬„ä½ %q+D 無效地宣告為方法類型"
+
+#: cp/class.c:2944
+#, gcc-internal-format
+msgid "non-static reference %q+#D in class without a constructor"
+msgstr "類別中有éžéœæ…‹åƒç…§ %q+#D,å»æ²’有æ供建構å¼"
+
+#: cp/class.c:2991
+#, gcc-internal-format
+msgid "non-static const member %q+#D in class without a constructor"
+msgstr "類別中有éžéœæ…‹å¸¸æ•¸æˆå“¡ %q+#D å»æ²’有建構å¼"
+
+#: cp/class.c:3006
+#, gcc-internal-format
+msgid "field %q+#D with same name as class"
+msgstr "æ¬„ä½ %q+#D 與類別åŒå"
+
+#: cp/class.c:3039
+#, gcc-internal-format
+msgid "%q#T has pointer data members"
+msgstr "%q#T 有指標資料æˆå“¡"
+
+#: cp/class.c:3043
+#, gcc-internal-format
+msgid " but does not override %<%T(const %T&)%>"
+msgstr " 但沒有多載 %<%T(const %T&)%>"
+
+#: cp/class.c:3045
+#, gcc-internal-format
+msgid " or %<operator=(const %T&)%>"
+msgstr " 或 %<operator=(const %T&)%>"
+
+#: cp/class.c:3048
+#, gcc-internal-format
+msgid " but does not override %<operator=(const %T&)%>"
+msgstr " 也沒有多載 %<operator=(const %T&)%>"
+
+#: cp/class.c:3504
+#, gcc-internal-format
+msgid "offset of empty base %qT may not be ABI-compliant and maychange in a future version of GCC"
+msgstr "空基礎類別 %qT çš„å移é‡å¯èƒ½èˆ‡ ABI ä¸ç›¸å®¹ï¼Œä¸¦ä¸”å¯èƒ½åœ¨ GCC 的未來版本中變更"
+
+#: cp/class.c:3616
+#, gcc-internal-format
+msgid "class %qT will be considered nearly empty in a future version of GCC"
+msgstr "在 GCC 的未來版本中類別 %qT 將被看作幾乎為空"
+
+#: cp/class.c:3698
+#, gcc-internal-format
+msgid "initializer specified for non-virtual method %q+D"
+msgstr "為éžè™›æ–¹æ³• %q+D 指定了åˆå§‹å€¼è¨­å®šé …"
+
+#: cp/class.c:4360
+#, gcc-internal-format
+msgid "offset of virtual base %qT is not ABI-compliant and may change in a future version of GCC"
+msgstr "虛基礎類別 %qT çš„å移é‡èˆ‡ ABI ä¸ç›¸å®¹ï¼Œä¸¦ä¸”å¯èƒ½åœ¨ GCC 的未來版本中變更"
+
+#: cp/class.c:4459
+#, gcc-internal-format
+msgid "direct base %qT inaccessible in %qT due to ambiguity"
+msgstr "由於存在歧義,直接基礎類別 %qT 在 %qT 中無法存å–"
+
+#: cp/class.c:4471
+#, gcc-internal-format
+msgid "virtual base %qT inaccessible in %qT due to ambiguity"
+msgstr "由於存在歧義,虛基礎類別 %qT 在 %qT 中無法存å–"
+
+#: cp/class.c:4648
+#, gcc-internal-format
+msgid "size assigned to %qT may not be ABI-compliant and may change in a future version of GCC"
+msgstr "賦於 %qT 的大å°å¯èƒ½èˆ‡ ABI ä¸ç›¸å®¹ï¼Œä¸¦ä¸”å¯èƒ½åœ¨ GCC 的未來版本中變更"
+
+#. Versions of G++ before G++ 3.4 did not reset the
+#. DECL_MODE.
+#: cp/class.c:4687
+#, gcc-internal-format
+msgid "the offset of %qD may not be ABI-compliant and may change in a future version of GCC"
+msgstr "%qD çš„å移é‡å¯èƒ½èˆ‡ ABI ä¸ç›¸å®¹ï¼Œä¸¦ä¸”å¯èƒ½åœ¨ GCC 的未來版本中變更"
+
+#: cp/class.c:4715
+#, gcc-internal-format
+msgid "offset of %q+D is not ABI-compliant and may change in a future version of GCC"
+msgstr "%q+D çš„å移é‡èˆ‡ ABI ä¸ç›¸å®¹ï¼Œä¸¦ä¸”在 GCC 的未來版本中å¯èƒ½æœƒæœ‰è®ŠåŒ–"
+
+#: cp/class.c:4724
+#, gcc-internal-format
+msgid "%q+D contains empty classes which may cause base classes to be placed at different locations in a future version of GCC"
+msgstr "%q+D 包å«ä¸€å€‹ç©ºé¡žåˆ¥ï¼ŒåŸºç¤Žé¡žåˆ¥çš„ä½ç½®åœ¨ GCC 的未來版本å¯èƒ½æœƒæœ‰è®ŠåŒ–"
+
+#: cp/class.c:4783
+#, gcc-internal-format
+msgid "layout of classes derived from empty class %qT may change in a future version of GCC"
+msgstr "空類別 %qT çš„è¡ç”Ÿé¡žåˆ¥çš„版é¢è¨­ç½®åœ¨ GCC 的未來版本中å¯èƒ½æœƒèµ·è®ŠåŒ–"
+
+#: cp/class.c:4929 cp/parser.c:13211
+#, gcc-internal-format
+msgid "redefinition of %q#T"
+msgstr "%q#T é‡å®šç¾©"
+
+#: cp/class.c:5079
+#, gcc-internal-format
+msgid "%q#T has virtual functions but non-virtual destructor"
+msgstr "%q#T 有虛函å¼å»æ²’有虛解構函å¼"
+
+#: cp/class.c:5181
+#, gcc-internal-format
+msgid "trying to finish struct, but kicked out due to previous parse errors"
+msgstr "試圖完æˆçµæ§‹ï¼Œä½†ç‚ºå…ˆå‰çš„解æžéŒ¯èª¤æ‰€æ’æ–·"
+
+#: cp/class.c:5628
+#, gcc-internal-format
+msgid "language string %<\"%E\"%> not recognized"
+msgstr "語言字串 %<\"%E\"%> ä¸å¯è­˜åˆ¥"
+
+#: cp/class.c:5714
+#, gcc-internal-format
+msgid "cannot resolve overloaded function %qD based on conversion to type %qT"
+msgstr "無法解æžå¤šè¼‰å‡½å¼ %qD,基於å‘é¡žåž‹ %qT 的轉æ›"
+
+#: cp/class.c:5841
+#, gcc-internal-format
+msgid "no matches converting function %qD to type %q#T"
+msgstr "沒有å¯å°‡å‡½å¼ %qD 轉æ›åˆ°é¡žåž‹ %q#T 的匹é…é …"
+
+#: cp/class.c:5864
+#, gcc-internal-format
+msgid "converting overloaded function %qD to type %q#T is ambiguous"
+msgstr "å°‡å¤šè¼‰å‡½å¼ %qD 轉æ›ç‚ºé¡žåž‹ %q#T 有歧義"
+
+#: cp/class.c:5890
+#, gcc-internal-format
+msgid "assuming pointer to member %qD"
+msgstr "å‡å®šæ˜¯æˆå“¡æŒ‡æ¨™ %qD"
+
+#: cp/class.c:5893
+#, gcc-internal-format
+msgid "(a pointer to member can only be formed with %<&%E%>)"
+msgstr "(æˆå“¡æŒ‡æ¨™åªèƒ½ç”¨ %<&%E%> 構æˆ)"
+
+#: cp/class.c:5938 cp/class.c:5969 cp/class.c:6121 cp/class.c:6128
+#, gcc-internal-format
+msgid "not enough type information"
+msgstr "類型資訊ä¸å……分"
+
+#: cp/class.c:5955
+#, gcc-internal-format
+msgid "argument of type %qT does not match %qT"
+msgstr "引數類型為 %qT,與 %qT ä¸åŒ¹é…"
+
+#: cp/class.c:6105
+#, gcc-internal-format
+msgid "invalid operation on uninstantiated type"
+msgstr "å°æœªåˆå§‹åŒ–類型的作業無效"
+
+#. [basic.scope.class]
+#.
+#. A name N used in a class S shall refer to the same declaration
+#. in its context and when re-evaluated in the completed scope of
+#. S.
+#: cp/class.c:6342 cp/decl.c:1136 cp/name-lookup.c:508
+#, gcc-internal-format
+msgid "declaration of %q#D"
+msgstr "%q#D 的宣告"
+
+#: cp/class.c:6343
+#, gcc-internal-format
+msgid "changes meaning of %qD from %q+#D"
+msgstr "變更了 %qD çš„åŽŸæ„ %q+#D"
+
+#: cp/cp-gimplify.c:120
+#, gcc-internal-format
+msgid "continue statement not within loop or switch"
+msgstr "continue 敘述ä¸åœ¨å¾ªç’°æˆ–開關敘述內"
+
+#: cp/cp-gimplify.c:365
+#, gcc-internal-format
+msgid "statement with no effect"
+msgstr "敘述ä¸èµ·ä½œç”¨"
+
+#: cp/cvt.c:91
+#, gcc-internal-format
+msgid "can't convert from incomplete type %qT to %qT"
+msgstr "無法永é ä¸å®Œå…¨é¡žåž‹ %qT 轉æ›åˆ° %qT"
+
+#: cp/cvt.c:100
+#, gcc-internal-format
+msgid "conversion of %qE from %qT to %qT is ambiguous"
+msgstr "å°‡ %qE 從 %qT 轉æ›åˆ° %qT 有歧義"
+
+#: cp/cvt.c:169 cp/cvt.c:238 cp/cvt.c:285
+#, gcc-internal-format
+msgid "cannot convert %qE from type %qT to type %qT"
+msgstr "無法將 %qE 從類型 %qT 轉æ›åˆ°é¡žåž‹ %qT"
+
+#: cp/cvt.c:198 cp/cvt.c:202
+#, gcc-internal-format
+msgid "pointer to member cast from %qT to %qT is via virtual base"
+msgstr "æˆå“¡æŒ‡æ¨™ç¶“由虛基礎類別從 %qT 轉æ›åˆ° %qT"
+
+#: cp/cvt.c:498
+#, gcc-internal-format
+msgid "conversion from %qT to %qT discards qualifiers"
+msgstr "從 %qT 到 %qT 的轉æ›ä¸Ÿå¤±äº†é™å®šè³‡è¨Š"
+
+#: cp/cvt.c:516 cp/typeck.c:4978
+#, gcc-internal-format
+msgid "casting %qT to %qT does not dereference pointer"
+msgstr "從 %qT 轉æ›åˆ° %qT 並未æ領指標"
+
+#: cp/cvt.c:543
+#, gcc-internal-format
+msgid "cannot convert type %qT to type %qT"
+msgstr "ä¸èƒ½å°‡é¡žåž‹ %qT 轉æ›ç‚ºé¡žåž‹ %qT"
+
+#: cp/cvt.c:679
+#, gcc-internal-format
+msgid "conversion from %q#T to %q#T"
+msgstr "從 %q#T 到 %q#T 的轉æ›"
+
+#: cp/cvt.c:691 cp/cvt.c:711
+#, gcc-internal-format
+msgid "%q#T used where a %qT was expected"
+msgstr "ä¸æ‡‰ä½¿ç”¨ %q#T 而應使用 %qT"
+
+#: cp/cvt.c:726
+#, gcc-internal-format
+msgid "%q#T used where a floating point value was expected"
+msgstr "需è¦æµ®é»žæ•¸å€¼æ™‚使用了 %q#T"
+
+#: cp/cvt.c:773
+#, gcc-internal-format
+msgid "conversion from %qT to non-scalar type %qT requested"
+msgstr "請求從 %qT 轉æ›åˆ°éžæ¨™é‡é¡žåž‹ %qT"
+
+#: cp/cvt.c:807
+#, gcc-internal-format
+msgid "pseudo-destructor is not called"
+msgstr "å½è§£æ§‹å‡½å¼æœªè¢«å‘¼å«"
+
+#: cp/cvt.c:866
+#, gcc-internal-format
+msgid "object of incomplete type %qT will not be accessed in %s"
+msgstr "具有ä¸å®Œå…¨é¡žåž‹ %qT 的物件ä¸æœƒåœ¨ %s 中被存å–"
+
+#: cp/cvt.c:869
+#, gcc-internal-format
+msgid "object of type %qT will not be accessed in %s"
+msgstr "類型為 %qT 的物件ä¸æœƒåœ¨ %s 中被存å–"
+
+#: cp/cvt.c:885
+#, gcc-internal-format
+msgid "object %qE of incomplete type %qT will not be accessed in %s"
+msgstr "物件 %qE 具有ä¸å®Œå…¨çš„é¡žåž‹ %qT,ä¸æœƒåœ¨ %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:901
+#, gcc-internal-format
+msgid "%s cannot resolve address of overloaded function"
+msgstr "%s 無法解æžå¤šè¼‰åŒ–函å¼ä½å€"
+
+#. Only warn when there is no &.
+#: cp/cvt.c:907
+#, gcc-internal-format
+msgid "%s is a reference, not call, to function %qE"
+msgstr "%s 是å°å‡½å¼ %qE 的一個åƒç…§è€Œä¸æ˜¯å‘¼å«"
+
+#: cp/cvt.c:921
+#, gcc-internal-format
+msgid "%s has no effect"
+msgstr "%s ä¸èµ·ä½œç”¨"
+
+#: cp/cvt.c:953
+#, gcc-internal-format
+msgid "value computed is not used"
+msgstr "計算出的值未被使用"
+
+#: cp/cvt.c:1061
+#, gcc-internal-format
+msgid "converting NULL to non-pointer type"
+msgstr "å°‡ NULL 轉æ›ç‚ºéžæŒ‡æ¨™é¡žåž‹"
+
+#: cp/cvt.c:1134
+#, gcc-internal-format
+msgid "ambiguous default type conversion from %qT"
+msgstr "%qT çš„é è¨­é¡žåž‹è½‰æ›æœ‰æ­§ç¾©"
+
+#: cp/cvt.c:1136
+#, gcc-internal-format
+msgid " candidate conversions include %qD and %qD"
+msgstr " å‚™é¸è½‰æ›åŒ…括 %qD å’Œ %qD"
+
+#: cp/decl.c:1002
+#, gcc-internal-format
+msgid "%qD was declared %<extern%> and later %<static%>"
+msgstr "%qD 先被宣告為 %<extern%> 後åˆè¢«å®£å‘Šç‚º %<static%>"
+
+#: cp/decl.c:1003 cp/decl.c:1508 objc/objc-act.c:2920 objc/objc-act.c:7487
+#, gcc-internal-format
+msgid "previous declaration of %q+D"
+msgstr "%q+D çš„å‰ä¸€å€‹å®£å‘Š"
+
+#: cp/decl.c:1036
+#, gcc-internal-format
+msgid "declaration of %qF throws different exceptions"
+msgstr "%qF 的宣告拋出ä¸åŒçš„異常"
+
+#: cp/decl.c:1037
+#, gcc-internal-format
+msgid "from previous declaration %q+F"
+msgstr "從先å‰çš„宣告 %q+F"
+
+#: cp/decl.c:1089
+#, gcc-internal-format
+msgid "function %q+D redeclared as inline"
+msgstr "å‡½å¼ %q+D é‡å®£å‘Šç‚ºå…§è¯çš„"
+
+#: cp/decl.c:1091
+#, gcc-internal-format
+msgid "previous declaration of %q+D with attribute noinline"
+msgstr "å…ˆå‰ %q+D 的宣告帶有 noinline 屬性"
+
+#: cp/decl.c:1098
+#, gcc-internal-format
+msgid "function %q+D redeclared with attribute noinline"
+msgstr "å‡½å¼ %q+D é‡å®£å‘Šç‚ºå¸¶æœ‰ä¸å¯å…§è¯å±¬æ€§"
+
+#: cp/decl.c:1100
+#, gcc-internal-format
+msgid "previous declaration of %q+D was inline"
+msgstr "%q+D å…ˆå‰è¢«å®£å‘Šç‚ºå…§è¯çš„"
+
+#: cp/decl.c:1123 cp/decl.c:1196
+#, gcc-internal-format
+msgid "shadowing %s function %q#D"
+msgstr "éš±è—了 %s å‡½å¼ %q#D"
+
+#: cp/decl.c:1132
+#, gcc-internal-format
+msgid "library function %q#D redeclared as non-function %q#D"
+msgstr "函å¼åº«å‡½å¼ %q#D é‡å®£å‘Šç‚ºéžå‡½å¼ %q#D"
+
+#: cp/decl.c:1137
+#, gcc-internal-format
+msgid "conflicts with built-in declaration %q#D"
+msgstr "與內建宣告 %q#D è¡çª"
+
+#: cp/decl.c:1191 cp/decl.c:1300 cp/decl.c:1316
+#, gcc-internal-format
+msgid "new declaration %q#D"
+msgstr "å° %q#D 的新宣告"
+
+#: cp/decl.c:1192
+#, gcc-internal-format
+msgid "ambiguates built-in declaration %q#D"
+msgstr "使內建宣告 %q#D 出ç¾æ­§ç¾©"
+
+#: cp/decl.c:1264
+#, gcc-internal-format
+msgid "%q#D redeclared as different kind of symbol"
+msgstr "%q#D 被é‡æ–°å®£å‘Šç‚ºä¸åŒæ„義的符號"
+
+#: cp/decl.c:1267
+#, gcc-internal-format
+msgid "previous declaration of %q+#D"
+msgstr "%q+#D çš„å‰ä¸€å€‹å®£å‘Š"
+
+#: cp/decl.c:1286
+#, gcc-internal-format
+msgid "declaration of template %q#D"
+msgstr "範本宣告 %q#D"
+
+#: cp/decl.c:1287 cp/name-lookup.c:509
+#, gcc-internal-format
+msgid "conflicts with previous declaration %q+#D"
+msgstr "與先å‰çš„宣告 %q+#D è¡çª"
+
+#: cp/decl.c:1301 cp/decl.c:1317
+#, gcc-internal-format
+msgid "ambiguates old declaration %q+#D"
+msgstr "使舊的宣告 %q+#D 出ç¾æ­§ç¾©"
+
+#: cp/decl.c:1309
+#, gcc-internal-format
+msgid "declaration of C function %q#D conflicts with"
+msgstr "C å‡½å¼ %q#D 的宣告"
+
+#: cp/decl.c:1311
+#, gcc-internal-format
+msgid "previous declaration %q+#D here"
+msgstr "與此處早先的宣告 %q+#D è¡çª"
+
+#: cp/decl.c:1324
+#, gcc-internal-format
+msgid "conflicting declaration %q#D"
+msgstr "相互è¡çªçš„宣告 %q#D"
+
+#: cp/decl.c:1325
+#, gcc-internal-format
+msgid "%q+D has a previous declaration as %q#D"
+msgstr "%q+D 早先被宣告為 %q#D"
+
+#. [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:1377
+#, gcc-internal-format
+msgid "declaration of namespace %qD conflicts with"
+msgstr "命å空間 %qD 的宣告存在è¡çªï¼Œèˆ‡"
+
+#: cp/decl.c:1378
+#, gcc-internal-format
+msgid "previous declaration of namespace %q+D here"
+msgstr "命å空間 %q+D 早先的宣告在這裡"
+
+#: cp/decl.c:1389
+#, gcc-internal-format
+msgid "%q+#D previously defined here"
+msgstr "%q+#D 已在此定義éŽ"
+
+#: cp/decl.c:1390
+#, gcc-internal-format
+msgid "%q+#D previously declared here"
+msgstr "%q+#D 已在此宣告éŽ"
+
+#. Prototype decl follows defn w/o prototype.
+#: cp/decl.c:1399
+#, gcc-internal-format
+msgid "prototype for %q+#D"
+msgstr "%q+#D 的原型"
+
+#: cp/decl.c:1400
+#, gcc-internal-format
+msgid "%Jfollows non-prototype definition here"
+msgstr "%J在這裡的éžåŽŸåž‹å®šç¾©ä¹‹å¾Œ"
+
+#: cp/decl.c:1412
+#, gcc-internal-format
+msgid "previous declaration of %q+#D with %qL linkage"
+msgstr "%q+#D 的早先宣告有 %qL 連çµ"
+
+#: cp/decl.c:1414
+#, gcc-internal-format
+msgid "conflicts with new declaration with %qL linkage"
+msgstr "與帶有 %qL 連çµçš„新宣告è¡çª"
+
+#: cp/decl.c:1437 cp/decl.c:1443
+#, gcc-internal-format
+msgid "default argument given for parameter %d of %q#D"
+msgstr "為åƒæ•¸ %d (屬於 %q#D)指定了é è¨­å¼•æ•¸"
+
+#: cp/decl.c:1439 cp/decl.c:1445
+#, gcc-internal-format
+msgid "after previous specification in %q+#D"
+msgstr "但先å‰åœ¨ %q+#D 中已有指定"
+
+#: cp/decl.c:1454
+#, gcc-internal-format
+msgid "%q#D was used before it was declared inline"
+msgstr "%q#D 在被宣告為內è¯ä¹‹å‰è¢«ç”¨åˆ°"
+
+#: cp/decl.c:1455
+#, gcc-internal-format
+msgid "%Jprevious non-inline declaration here"
+msgstr "%Jå…ˆå‰çš„éžå…§è¯å®£å‘Šåœ¨é€™è£¡"
+
+#: cp/decl.c:1507
+#, gcc-internal-format
+msgid "redundant redeclaration of %qD in same scope"
+msgstr "åŒä¸€ä½œç”¨æ¬„ä½ä¸­ %qD 冗餘的é‡å®£å‘Š"
+
+#. 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:1759
+#, gcc-internal-format
+msgid "explicit specialization of %qD after first use"
+msgstr "在åˆæ¬¡ä½¿ç”¨å¾Œæ˜Žç¢ºç‰¹ä¾‹åŒ– %qD"
+
+#: cp/decl.c:1838
+#, gcc-internal-format
+msgid "%q+D: visibility attribute ignored because it"
+msgstr "%q+D:å¯è¦‹æ€§å±¬æ€§è¢«å¿½ç•¥ï¼Œå› ç‚ºå®ƒ"
+
+#: cp/decl.c:1840
+#, gcc-internal-format
+msgid "%Jconflicts with previous declaration here"
+msgstr "%J與此處先å‰çš„宣告è¡çª"
+
+#: cp/decl.c:2230 cp/decl.c:2252
+#, gcc-internal-format
+msgid "jump to label %qD"
+msgstr "跳轉至標籤 %qD"
+
+#: cp/decl.c:2232 cp/decl.c:2254
+#, gcc-internal-format
+msgid "jump to case label"
+msgstr "跳轉至 case 標籤"
+
+#: cp/decl.c:2235 cp/decl.c:2257
+#, gcc-internal-format
+msgid "%H from here"
+msgstr "%H 從這裡"
+
+#: cp/decl.c:2240
+#, gcc-internal-format
+msgid " crosses initialization of %q+#D"
+msgstr " ç•¥éŽ %q+#D çš„åˆå§‹åŒ–"
+
+#: cp/decl.c:2242 cp/decl.c:2356
+#, gcc-internal-format
+msgid " enters scope of non-POD %q+#D"
+msgstr " 進入éžç°¡å–®èˆŠè³‡æ–™ %q+#D 的作用欄ä½"
+
+#: cp/decl.c:2261 cp/decl.c:2360
+#, gcc-internal-format
+msgid " enters try block"
+msgstr " 進入 try å€å¡Š"
+
+#: cp/decl.c:2263 cp/decl.c:2362
+#, gcc-internal-format
+msgid " enters catch block"
+msgstr " 進入 catch å€å¡Š"
+
+#: cp/decl.c:2340
+#, gcc-internal-format
+msgid "jump to label %q+D"
+msgstr "跳轉至標籤 %q+D"
+
+#: cp/decl.c:2341
+#, gcc-internal-format
+msgid " from here"
+msgstr " 從這裡"
+
+#. Can't skip init of __exception_info.
+#: cp/decl.c:2352
+#, gcc-internal-format
+msgid "%J enters catch block"
+msgstr "%J 進入 catch å€å¡Š"
+
+#: cp/decl.c:2354
+#, gcc-internal-format
+msgid " skips initialization of %q+#D"
+msgstr " ç•¥éŽ %q+#D çš„åˆå§‹åŒ–"
+
+#: cp/decl.c:2388
+#, gcc-internal-format
+msgid "label named wchar_t"
+msgstr "標籤å為 wchar_t"
+
+#: cp/decl.c:2391
+#, gcc-internal-format
+msgid "duplicate label %qD"
+msgstr "é‡è¤‡çš„標籤 %qD"
+
+#: cp/decl.c:2647 cp/parser.c:3652
+#, gcc-internal-format
+msgid "%qD used without template parameters"
+msgstr "%qD 使用時未帶範本åƒæ•¸"
+
+#: cp/decl.c:2664 cp/decl.c:2755
+#, gcc-internal-format
+msgid "no class template named %q#T in %q#T"
+msgstr "æ²’å…·å為 %q#T 的類別範本,在%q#T 中 "
+
+#: cp/decl.c:2685 cp/decl.c:2695 cp/decl.c:2715
+#, gcc-internal-format
+msgid "no type named %q#T in %q#T"
+msgstr "æ²’å…·å為 %q#T 的類型,在%q#T 中 "
+
+#: cp/decl.c:2764
+#, gcc-internal-format
+msgid "template parameters do not match template"
+msgstr "範本åƒæ•¸èˆ‡ç¯„本ä¸ç¬¦"
+
+#: cp/decl.c:2765 cp/friend.c:317 cp/friend.c:325
+#, gcc-internal-format
+msgid "%q+D declared here"
+msgstr "%q+D 已在此宣告éŽ"
+
+#: cp/decl.c:3439
+#, gcc-internal-format
+msgid "%Jan anonymous union cannot have function members"
+msgstr "%J一個匿åè¯åˆä¸èƒ½æœ‰å‡½å¼æˆå“¡"
+
+#: cp/decl.c:3457
+#, gcc-internal-format
+msgid "member %q+#D with constructor not allowed in anonymous aggregate"
+msgstr "有建構å¼çš„æˆå“¡ %q+#D ä¸å…許在匿åèšåˆä¸­å‡ºç¾"
+
+#: cp/decl.c:3460
+#, gcc-internal-format
+msgid "member %q+#D with destructor not allowed in anonymous aggregate"
+msgstr "有構構函å¼çš„æˆå“¡ %q+#D ä¸å…許在匿åèšåˆä¸­å‡ºç¾"
+
+#: cp/decl.c:3463
+#, gcc-internal-format
+msgid "member %q+#D with copy assignment operator not allowed in anonymous aggregate"
+msgstr "有複製賦值é‹ç®—å­çš„æˆå“¡ %q+#D ä¸èƒ½ç”¨åœ¨è¯åˆä¸­"
+
+#: cp/decl.c:3488
+#, gcc-internal-format
+msgid "multiple types in one declaration"
+msgstr "一個宣告指定了多個類型"
+
+#: cp/decl.c:3492
+#, gcc-internal-format
+msgid "redeclaration of C++ built-in type %qT"
+msgstr "å° C++ 內建類型 %qT çš„é‡å®£å‘Š"
+
+#: cp/decl.c:3529
+#, gcc-internal-format
+msgid "missing type-name in typedef-declaration"
+msgstr "typedef 宣告中缺少類型å"
+
+#: cp/decl.c:3537
+#, gcc-internal-format
+msgid "ISO C++ prohibits anonymous structs"
+msgstr "ISO C++ ä¸å…許匿åçµæ§‹"
+
+#: cp/decl.c:3544
+#, gcc-internal-format
+msgid "%qs can only be specified for functions"
+msgstr "åªèƒ½ç‚ºå‡½å¼æŒ‡å®š %qs"
+
+#: cp/decl.c:3550
+#, gcc-internal-format
+msgid "%<friend%> can only be specified inside a class"
+msgstr "%<friend%> åªèƒ½åœ¨é¡žåˆ¥ä¸­æŒ‡å®š"
+
+#: cp/decl.c:3552
+#, gcc-internal-format
+msgid "%<explicit%> can only be specified for constructors"
+msgstr "åªèƒ½ç‚ºå»ºæ§‹å¼æŒ‡å®š %<explicit%>"
+
+#: cp/decl.c:3554
+#, gcc-internal-format
+msgid "a storage class can only be specified for objects and functions"
+msgstr "åªèƒ½ç‚ºç‰©ä»¶å’Œå‡½å¼æŒ‡å®šå­˜å„²é¡žåˆ¥"
+
+#: cp/decl.c:3560
+#, gcc-internal-format
+msgid "qualifiers can only be specified for objects and functions"
+msgstr "åªèƒ½ç‚ºç‰©ä»¶å’Œå‡½å¼æŒ‡å®šé¡žåž‹é™å®š"
+
+#: cp/decl.c:3590
+#, gcc-internal-format
+msgid "attribute ignored in declaration of %q+#T"
+msgstr "屬性於 %q+#T 的宣告中被忽略"
+
+#: cp/decl.c:3591
+#, gcc-internal-format
+msgid "attribute for %q+#T must follow the %qs keyword"
+msgstr "%q+#T 的屬性必須跟在 %qs é—œéµå­—後é¢"
+
+#: cp/decl.c:3711
+#, gcc-internal-format
+msgid "function %q#D is initialized like a variable"
+msgstr "å‡½å¼ %q#D åƒè®Šæ•¸ä¸€æ¨£è¢«åˆå§‹åŒ–"
+
+#: cp/decl.c:3723
+#, gcc-internal-format
+msgid "declaration of %q#D has %<extern%> and is initialized"
+msgstr "%q#D 宣告有 %<extern%> 並被åˆå§‹åŒ–"
+
+#: cp/decl.c:3753
+#, gcc-internal-format
+msgid "%q#D is not a static member of %q#T"
+msgstr "%q#D ä¸æ˜¯ %q#T çš„éœæ…‹æˆå“¡"
+
+#: cp/decl.c:3759
+#, gcc-internal-format
+msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
+msgstr "ISO C++ ä¸å…許將 %<%T::%D%> 定義為 %<%T::%D%>"
+
+#: cp/decl.c:3768
+#, gcc-internal-format
+msgid "template header not allowed in member definition of explicitly specialized class"
+msgstr "範本頭ä¸å…許出ç¾åœ¨æ˜Žç¢ºç‰¹ä¾‹åŒ–類別的æˆå“¡å®šç¾©ä¸­"
+
+#: cp/decl.c:3777
+#, gcc-internal-format
+msgid "duplicate initialization of %qD"
+msgstr "ISO C++ ä¸å…許æˆå“¡ %qD çš„åˆå§‹åŒ–"
+
+#: cp/decl.c:3816
+#, gcc-internal-format
+msgid "declaration of %q#D outside of class is not definition"
+msgstr "出ç¾åœ¨é¡žåˆ¥å¤–çš„ %q#D 的宣告ä¸æ˜¯å®šç¾©"
+
+#: cp/decl.c:3865
+#, gcc-internal-format
+msgid "variable %q#D has initializer but incomplete type"
+msgstr "變數 %q#D 有åˆå§‹å€¼è¨­å®šï¼Œä½†æ˜¯é¡žåž‹ä¸å®Œå…¨"
+
+#: cp/decl.c:3872 cp/decl.c:4570
+#, gcc-internal-format
+msgid "elements of array %q#D have incomplete type"
+msgstr "陣列 %q#D 的元素類型ä¸å®Œå…¨"
+
+#: cp/decl.c:3888
+#, gcc-internal-format
+msgid "aggregate %q#D has incomplete type and cannot be defined"
+msgstr "èšåˆ %q#D é¡žåž‹ä¸å®Œå…¨ï¼Œç„¡æ³•è¢«å®šç¾©"
+
+#: cp/decl.c:3938
+#, gcc-internal-format
+msgid "%qD declared as reference but not initialized"
+msgstr "%qD 宣告為åƒç…§å»æœªè¢«åˆå§‹åŒ–"
+
+#: cp/decl.c:3944
+#, gcc-internal-format
+msgid "ISO C++ forbids use of initializer list to initialize reference %qD"
+msgstr "ISO C++ ä¸å…許使用åˆå§‹å€¼è¨­å®šæ¸…單來åˆå§‹åŒ–åƒç…§ %qD"
+
+#: cp/decl.c:3970
+#, gcc-internal-format
+msgid "cannot initialize %qT from %qT"
+msgstr "ä¸èƒ½åˆå§‹åŒ– %qT,從 %qT"
+
+#: cp/decl.c:4003
+#, gcc-internal-format
+msgid "initializer fails to determine size of %qD"
+msgstr "åˆå§‹å€¼è¨­å®šç„¡æ³•æ±ºå®š %qD 的大å°"
+
+#: cp/decl.c:4008
+#, gcc-internal-format
+msgid "array size missing in %qD"
+msgstr "%qD 缺少陣列大å°"
+
+#: cp/decl.c:4018
+#, gcc-internal-format
+msgid "zero-size array %qD"
+msgstr "大å°ç‚º 0 的陣列 %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:4054
+#, gcc-internal-format
+msgid "storage size of %qD isn't known"
+msgstr "%qD 的存儲大å°ä¸æ˜Ž"
+
+#: cp/decl.c:4076
+#, gcc-internal-format
+msgid "storage size of %qD isn't constant"
+msgstr "%qD 的存儲大å°ä¸æ˜¯å¸¸æ•¸"
+
+#: cp/decl.c:4131
+#, gcc-internal-format
+msgid "sorry: semantics of inline function static data %q+#D are wrong (you'll wind up with multiple copies)"
+msgstr "å°ä¸èµ·ï¼šå…§è¯å‡½å¼ä¸­éœæ…‹è³‡æ–™ %q+#D 的語義是錯的(您會得到此變數的多份複製)"
+
+#: cp/decl.c:4134
+#, gcc-internal-format
+msgid "%J you can work around this by removing the initializer"
+msgstr "%J 變通的作法是刪除åˆå§‹å€¼è¨­å®š"
+
+#: cp/decl.c:4161
+#, gcc-internal-format
+msgid "uninitialized const %qD"
+msgstr "未åˆå§‹åŒ–的常數 %qD"
+
+#: cp/decl.c:4236
+#, gcc-internal-format
+msgid "name %qD used in a GNU-style designated initializer for an array"
+msgstr "å稱 %qD 用在 GNU 風格的陣列指定元素åˆå§‹å€¼è¨­å®šä¸­"
+
+#: cp/decl.c:4282
+#, gcc-internal-format
+msgid "invalid type %qT as initializer for a vector of type %qT"
+msgstr "無效類型 %qT åšç‚ºé¡žåž‹ç‚º %qT çš„å‘é‡çš„åˆå§‹åŒ–設定"
+
+#: cp/decl.c:4324
+#, gcc-internal-format
+msgid "initializer for %qT must be brace-enclosed"
+msgstr "%qT çš„åˆå§‹åŒ–設定必須在大括號內"
+
+#: cp/decl.c:4339
+#, gcc-internal-format
+msgid "ISO C++ does not allow designated initializers"
+msgstr "ISO C++ ä¸å…許指定元素åˆå§‹å€¼è¨­å®š"
+
+#: cp/decl.c:4344
+#, gcc-internal-format
+msgid "%qT has no non-static data member named %qD"
+msgstr "%qT æ²’å…·å為 %qD çš„éžéœæ…‹è³‡æ–™æˆå“¡"
+
+#: cp/decl.c:4393
+#, gcc-internal-format
+msgid "braces around scalar initializer for type %qT"
+msgstr "é¡žåž‹ %qT 的標é‡åˆå§‹åŒ–帶大括號"
+
+#: cp/decl.c:4471
+#, gcc-internal-format
+msgid "missing braces around initializer for %qT"
+msgstr "%qT çš„åˆå§‹å€¼è¨­å®šå‘¨åœç¼ºå°‘大括號"
+
+#: cp/decl.c:4526
+#, gcc-internal-format
+msgid "too many initializers for %qT"
+msgstr "%qT çš„åˆå§‹å€¼è¨­å®šé …太多"
+
+#: cp/decl.c:4564
+#, gcc-internal-format
+msgid "variable-sized object %qD may not be initialized"
+msgstr "å¯è®Šå¤§å°çš„物件 %qD ä¸èƒ½è¢«åˆå§‹åŒ–"
+
+#: cp/decl.c:4575
+#, gcc-internal-format
+msgid "%qD has incomplete type"
+msgstr "%qD é¡žåž‹ä¸å®Œå…¨"
+
+#: cp/decl.c:4621
+#, gcc-internal-format
+msgid "%qD must be initialized by constructor, not by %<{...}%>"
+msgstr "%qD 必須由建構å¼è€Œä¸æ˜¯ %<{...}%> åˆå§‹åŒ–"
+
+#: cp/decl.c:4657
+#, gcc-internal-format
+msgid "array %qD initialized by parenthesized string literal %qE"
+msgstr "陣列 %qD 被有括號的字é¢å­—串 %qE 所åˆå§‹åŒ–"
+
+#: cp/decl.c:4672
+#, gcc-internal-format
+msgid "structure %qD with uninitialized const members"
+msgstr "çµæ§‹ %qD 有未åˆå§‹åŒ–的常數æˆå“¡"
+
+#: cp/decl.c:4674
+#, gcc-internal-format
+msgid "structure %qD with uninitialized reference members"
+msgstr "çµæ§‹ %qD 有未åˆå§‹åŒ–çš„åƒç…§æˆå“¡"
+
+#: cp/decl.c:4881
+#, gcc-internal-format
+msgid "assignment (not initialization) in declaration"
+msgstr "賦值(ä¸æ˜¯åˆå§‹åŒ–)出ç¾åœ¨å®£å‘Šä¸­"
+
+#: cp/decl.c:4898
+#, gcc-internal-format
+msgid "cannot initialize %qD to namespace %qD"
+msgstr "ä¸èƒ½å°‡ %qD åˆå§‹åŒ–到命å空間 %qD"
+
+#: cp/decl.c:4948
+#, gcc-internal-format
+msgid "shadowing previous type declaration of %q#D"
+msgstr "éš±è—了早先的類型宣告 %q#D"
+
+#: cp/decl.c:4978
+#, gcc-internal-format
+msgid "%qD cannot be thread-local because it has non-POD type %qT"
+msgstr "%qD ä¸èƒ½æ˜¯åŸ·è¡Œç·’å€åŸŸæ€§çš„,因為它有éžç°¡å–®èˆŠè³‡æ–™çš„é¡žåž‹ %qT"
+
+#: cp/decl.c:5003
+#, gcc-internal-format
+msgid "%qD is thread-local and so cannot be dynamically initialized"
+msgstr "%qD 是執行緒å€åŸŸæ€§çš„,所以ä¸èƒ½è¢«å‹•æ…‹åœ°åˆå§‹åŒ–"
+
+#: cp/decl.c:5021
+#, gcc-internal-format
+msgid "%qD cannot be initialized by a non-constant expression when being declared"
+msgstr "%qD ä¸èƒ½ç”±ä¸€å€‹å®£å‘Šæ™‚éžå¸¸æ•¸çš„é‹ç®—å¼åˆå§‹åŒ–"
+
+#: cp/decl.c:5611
+#, gcc-internal-format
+msgid "destructor for alien class %qT cannot be a member"
+msgstr "其它類別 %qT 的解構函å¼ä¸èƒ½åšç‚ºæˆå“¡"
+
+#: cp/decl.c:5613
+#, gcc-internal-format
+msgid "constructor for alien class %qT cannot be a member"
+msgstr "其它類別 %qT 的建構å¼ä¸èƒ½åšç‚ºæˆå“¡"
+
+#: cp/decl.c:5634
+#, gcc-internal-format
+msgid "%qD declared as a %<virtual%> %s"
+msgstr "%qD 宣告為 %<virtual%> %s"
+
+#: cp/decl.c:5636
+#, gcc-internal-format
+msgid "%qD declared as an %<inline%> %s"
+msgstr "%qD 宣告為 %<inline%> %s"
+
+#: cp/decl.c:5638
+#, gcc-internal-format
+msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in %s declaration"
+msgstr "為 %qD 指定的 %<const%> 和 %<volatile%> 在 %s 宣告中無效"
+
+#: cp/decl.c:5642
+#, gcc-internal-format
+msgid "%q+D declared as a friend"
+msgstr "%q+D 宣告為夥伴"
+
+#: cp/decl.c:5648
+#, gcc-internal-format
+msgid "%q+D declared with an exception specification"
+msgstr "%q+D 宣告時有異常指定"
+
+#: cp/decl.c:5682
+#, gcc-internal-format
+msgid "definition of %qD is not in namespace enclosing %qT"
+msgstr "%qD 的定義ä¸åœ¨åŒ…å« %qT 的命å空間中"
+
+#: cp/decl.c:5742
+#, gcc-internal-format
+msgid "defining explicit specialization %qD in friend declaration"
+msgstr "在夥伴宣告中定義明確特例化 %qD"
+
+#. Something like `template <class T> friend void f<T>()'.
+#: cp/decl.c:5752
+#, gcc-internal-format
+msgid "invalid use of template-id %qD in declaration of primary template"
+msgstr "在基本範本的宣告中å°ç¯„本識別碼 %qD 的使用無效"
+
+#: cp/decl.c:5782
+#, gcc-internal-format
+msgid "default arguments are not allowed in declaration of friend template specialization %qD"
+msgstr "夥伴範本特例化 %qD 中ä¸å…許出ç¾é è¨­åƒæ•¸"
+
+#: cp/decl.c:5790
+#, gcc-internal-format
+msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
+msgstr "%<inline%> ä¸å…許用於夥伴範本特例化 %qD 的宣告"
+
+#: cp/decl.c:5833
+#, gcc-internal-format
+msgid "cannot declare %<::main%> to be a template"
+msgstr "ä¸èƒ½å°‡ %<::main%> 宣告為一個範本"
+
+#: cp/decl.c:5835
+#, gcc-internal-format
+msgid "cannot declare %<::main%> to be inline"
+msgstr "ä¸èƒ½å°‡ %<::main%> 宣告為 inline"
+
+#: cp/decl.c:5837
+#, gcc-internal-format
+msgid "cannot declare %<::main%> to be static"
+msgstr "ä¸èƒ½å°‡ %<::main%> 宣告為 static"
+
+#: cp/decl.c:5843
+#, gcc-internal-format
+msgid "%<::main%> must return %<int%>"
+msgstr "%<::main%> 必須回傳 %<int%>"
+
+#: cp/decl.c:5875
+#, gcc-internal-format
+msgid "non-local function %q#D uses anonymous type"
+msgstr "éžå±€éƒ¨å‡½å¼ %q#D 使用匿åé¡žåž‹"
+
+#: cp/decl.c:5878 cp/decl.c:6148
+#, gcc-internal-format
+msgid "%q+#D does not refer to the unqualified type, so it is not used for linkage"
+msgstr "%q+#D 未指明éžé™å®šé¡žåž‹ï¼Œæ‰€ä»¥å®ƒä¸åšç‚ºå¤–部連çµ"
+
+#: cp/decl.c:5884
+#, gcc-internal-format
+msgid "non-local function %q#D uses local type %qT"
+msgstr "éžå±€éƒ¨å‡½å¼ %q#D 使用了局部類型 %qT"
+
+#: cp/decl.c:5907
+#, gcc-internal-format
+msgid "%smember function %qD cannot have cv-qualifier"
+msgstr "%sæˆå“¡å‡½å¼ %qD ä¸èƒ½æ“有 cv é™å®šç¬¦"
+
+#: cp/decl.c:5976
+#, gcc-internal-format
+msgid "definition of implicitly-declared %qD"
+msgstr "éš±å«å®£å‘Šçš„ %qD 的定義"
+
+#: cp/decl.c:5996 cp/decl2.c:704
+#, gcc-internal-format
+msgid "no %q#D member function declared in class %qT"
+msgstr "æˆå“¡å‡½å¼ %q#D 未在類別 %qT 中宣告"
+
+#. 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:6145
+#, gcc-internal-format
+msgid "non-local variable %q#D uses anonymous type"
+msgstr "éžå±€éƒ¨è®Šæ•¸ %q#D 使用了匿åé¡žåž‹"
+
+#: cp/decl.c:6154
+#, gcc-internal-format
+msgid "non-local variable %q#D uses local type %qT"
+msgstr "éžå±€éƒ¨è®Šæ•¸ %q#D 使用了局部類型 %qT"
+
+#: cp/decl.c:6271
+#, gcc-internal-format
+msgid "invalid in-class initialization of static data member of non-integral type %qT"
+msgstr "類別中å°å…·æœ‰éžæ•´æ•¸é¡žåž‹ %qT çš„éœæ…‹è³‡æ–™æˆå“¡çš„åˆå§‹åŒ–無效"
+
+#: cp/decl.c:6281
+#, gcc-internal-format
+msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
+msgstr "ISO C++ ä¸å…許在類別內åˆå§‹åŒ–éžå¸¸æ•¸éœæ…‹æˆå“¡ %qD"
+
+#: cp/decl.c:6285
+#, gcc-internal-format
+msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
+msgstr "ISO C++ ä¸å…許åˆå§‹åŒ–æˆå“¡å¸¸æ•¸ %qD,因為它有éžæ•´æ•¸çš„é¡žåž‹ %qT"
+
+#: cp/decl.c:6309
+#, gcc-internal-format
+msgid "size of array %qD has non-integral type %qT"
+msgstr "陣列 %qD 的大å°å…·æœ‰éžæ•´æ•¸é¡žåž‹ %qT"
+
+#: cp/decl.c:6311
+#, gcc-internal-format
+msgid "size of array has non-integral type %qT"
+msgstr "陣列 %qT 的大å°çš„é¡žåž‹ä¸æ˜¯æ•´æ•¸"
+
+#: cp/decl.c:6347
+#, gcc-internal-format
+msgid "size of array %qD is negative"
+msgstr "陣列 %qD 的大å°ç‚ºè² "
+
+#: cp/decl.c:6349
+#, gcc-internal-format
+msgid "size of array is negative"
+msgstr "陣列大å°ç‚ºè² æ•¸"
+
+#: cp/decl.c:6357
+#, gcc-internal-format
+msgid "ISO C++ forbids zero-size array %qD"
+msgstr "ISO C ä¸å…許大å°ç‚º 0 的陣列 %qD"
+
+#: cp/decl.c:6359
+#, gcc-internal-format
+msgid "ISO C++ forbids zero-size array"
+msgstr "ISO C++ ä¸å…許大å°ç‚º 0 的陣列"
+
+#: cp/decl.c:6366
+#, gcc-internal-format
+msgid "size of array %qD is not an integral constant-expression"
+msgstr "陣列 %qD 的大å°ä¸æ˜¯ä¸€å€‹æ•´æ•¸å¸¸é‹ç®—å¼"
+
+#: cp/decl.c:6369
+#, gcc-internal-format
+msgid "size of array is not an integral constant-expression"
+msgstr "陣列大å°ä¸æ˜¯ä¸€å€‹æ•´æ•¸å¸¸é‹ç®—å¼"
+
+#: cp/decl.c:6375
+#, gcc-internal-format
+msgid "ISO C++ forbids variable-size array %qD"
+msgstr "ISO C++ ä¸å…許彈性陣列 %qD"
+
+#: cp/decl.c:6377
+#, gcc-internal-format
+msgid "ISO C++ forbids variable-size array"
+msgstr "ISO C++ ä¸å…許彈性陣列"
+
+#: cp/decl.c:6407
+#, gcc-internal-format
+msgid "overflow in array dimension"
+msgstr "陣列維數溢出"
+
+#: cp/decl.c:6481
+#, gcc-internal-format
+msgid "declaration of %qD as %s"
+msgstr "%qD 宣告為 %s"
+
+#: cp/decl.c:6483
+#, gcc-internal-format
+msgid "creating %s"
+msgstr "建立 %s"
+
+#: cp/decl.c:6495
+#, gcc-internal-format
+msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
+msgstr "多維陣列 %qD 的宣告必須至少指定除第一維以外所有維的大å°"
+
+#: cp/decl.c:6499
+#, gcc-internal-format
+msgid "multidimensional array must have bounds for all dimensions except the first"
+msgstr "宣告多維陣列必須至少指定除第一維以外所有維的大å°"
+
+#: cp/decl.c:6534
+#, gcc-internal-format
+msgid "return type specification for constructor invalid"
+msgstr "為建構å¼æŒ‡å®šå›žå‚³å€¼ç„¡æ•ˆ"
+
+#: cp/decl.c:6544
+#, gcc-internal-format
+msgid "return type specification for destructor invalid"
+msgstr "指定解構函å¼çš„回傳類型無效"
+
+#: cp/decl.c:6557
+#, gcc-internal-format
+msgid "operator %qT declared to return %qT"
+msgstr "é‹ç®—å­ %qT 宣告為有 %qT 回傳值"
+
+#: cp/decl.c:6559
+#, gcc-internal-format
+msgid "return type specified for %<operator %T%>"
+msgstr "為 %<operator %T%> 指定了回傳值"
+
+#: cp/decl.c:6581
+#, gcc-internal-format
+msgid "unnamed variable or field declared void"
+msgstr "ç„¡å變數或欄ä½å®£å‘Šç‚º void"
+
+#: cp/decl.c:6585
+#, gcc-internal-format
+msgid "variable or field %qE declared void"
+msgstr "è®Šæ•¸æˆ–æ¬„ä½ %qE 宣告為 void"
+
+#: cp/decl.c:6588
+#, gcc-internal-format
+msgid "variable or field declared void"
+msgstr "變數或欄ä½å®£å‘Šç‚º void"
+
+#: cp/decl.c:6743
+#, gcc-internal-format
+msgid "type %qT is not derived from type %qT"
+msgstr "é¡žåž‹ %qT ä¸æ˜¯ç”±é¡žåž‹ %qT è¡ç”Ÿçš„"
+
+#: cp/decl.c:6759 cp/decl.c:6847 cp/decl.c:7933
+#, gcc-internal-format
+msgid "declaration of %qD as non-function"
+msgstr "%qD 沒有宣告為一個函å¼"
+
+#: cp/decl.c:6765
+#, gcc-internal-format
+msgid "declaration of %qD as non-member"
+msgstr "%qD 未宣告為æˆå“¡"
+
+#: cp/decl.c:6796
+#, gcc-internal-format
+msgid "declarator-id missing; using reserved word %qD"
+msgstr "缺少宣告識別碼:使用了ä¿ç•™å­— %qD"
+
+#: cp/decl.c:6880
+#, gcc-internal-format
+msgid "two or more data types in declaration of %qs"
+msgstr "%qs 的宣告指定了兩個以上的資料類型"
+
+#: cp/decl.c:6944 cp/decl.c:6946
+#, gcc-internal-format
+msgid "ISO C++ forbids declaration of %qs with no type"
+msgstr "ISO C++ ä¸å…許宣告無類型的 %qs"
+
+#: cp/decl.c:6971
+#, gcc-internal-format
+msgid "short, signed or unsigned invalid for %qs"
+msgstr "為 %qs 使用 shortã€signed 或 unsigned 無效"
+
+#: cp/decl.c:6973
+#, gcc-internal-format
+msgid "long, short, signed or unsigned invalid for %qs"
+msgstr "為 %qs 使用 longã€shortã€signed 或 unsigned 無效"
+
+#: cp/decl.c:6975
+#, gcc-internal-format
+msgid "long and short specified together for %qs"
+msgstr "為 %qs åŒæ™‚給定了 long å’Œ short"
+
+#: cp/decl.c:6977
+#, gcc-internal-format
+msgid "long or short specified with char for %qs"
+msgstr "為 char %qs 給定了 long 或 short"
+
+#: cp/decl.c:6979
+#, gcc-internal-format
+msgid "long or short specified with floating type for %qs"
+msgstr "為浮點類型 %qs 給定了 long 或 short"
+
+#: cp/decl.c:6981
+#, gcc-internal-format
+msgid "signed and unsigned given together for %qs"
+msgstr "為 %qs åŒæ™‚給定了 signed å’Œ unsigned"
+
+#: cp/decl.c:6987
+#, gcc-internal-format
+msgid "long, short, signed or unsigned used invalidly for %qs"
+msgstr "為 %qs 使用 longã€shortã€signed 或 unsigned 無效"
+
+#: cp/decl.c:7052
+#, gcc-internal-format
+msgid "complex invalid for %qs"
+msgstr "å° %qs 而言無效的複數"
+
+#: cp/decl.c:7081
+#, gcc-internal-format
+msgid "qualifiers are not allowed on declaration of %<operator %T%>"
+msgstr "%<operator %T%> 的宣告中ä¸èƒ½ä½¿ç”¨é™å®šç¬¦"
+
+#: cp/decl.c:7093 cp/typeck.c:6630
+#, gcc-internal-format
+msgid "ignoring %qV qualifiers added to function type %qT"
+msgstr "忽略 %qV é™å®šç¬¦ï¼Œåœ¨å‡½å¼é¡žåž‹ %qT 上"
+
+#: cp/decl.c:7116
+#, gcc-internal-format
+msgid "member %qD cannot be declared both virtual and static"
+msgstr "æˆå“¡ %qD ä¸èƒ½æ—¢è¢«å®£å‘Šç‚ºè™›å‡½å¼ï¼Œåˆè¢«å®£å‘Šç‚ºéœæ…‹å‡½å¼"
+
+#: cp/decl.c:7124
+#, gcc-internal-format
+msgid "%<%T::%D%> is not a valid declarator"
+msgstr "%<%T::%D%> ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„宣告"
+
+#: cp/decl.c:7132
+#, gcc-internal-format
+msgid "typedef declaration invalid in parameter declaration"
+msgstr "åƒæ•¸å®£å‘Šä¸­å‡ºç¾çš„ typedef 宣告無效"
+
+#: cp/decl.c:7136
+#, gcc-internal-format
+msgid "storage class specifiers invalid in parameter declarations"
+msgstr "為åƒæ•¸å®£å‘ŠæŒ‡å®šäº†ç„¡æ•ˆçš„存儲類別"
+
+#: cp/decl.c:7143
+#, gcc-internal-format
+msgid "virtual outside class declaration"
+msgstr "virtual 用在類別宣告以外"
+
+#: cp/decl.c:7157 cp/decl.c:7166
+#, gcc-internal-format
+msgid "multiple storage classes in declaration of %qs"
+msgstr "%qs 的宣告指定了多個存儲類別"
+
+#: cp/decl.c:7189
+#, gcc-internal-format
+msgid "storage class specified for %qs"
+msgstr "為 %qs 指定了存儲類別"
+
+#: cp/decl.c:7223
+#, gcc-internal-format
+msgid "top-level declaration of %qs specifies %<auto%>"
+msgstr "在頂層將 %qs 宣告為 %<auto%>"
+
+#: cp/decl.c:7235
+#, gcc-internal-format
+msgid "storage class specifiers invalid in friend function declarations"
+msgstr "為夥伴函å¼å®£å‘ŠæŒ‡å®šäº†ç„¡æ•ˆçš„存儲類別"
+
+#: cp/decl.c:7352
+#, gcc-internal-format
+msgid "destructor cannot be static member function"
+msgstr "解構函å¼ä¸èƒ½æ˜¯éœæ…‹æˆå“¡å‡½å¼"
+
+#: cp/decl.c:7355
+#, gcc-internal-format
+msgid "destructors may not be cv-qualified"
+msgstr "解構函å¼ä¸èƒ½è¢« cv é™å®š"
+
+#: cp/decl.c:7375
+#, gcc-internal-format
+msgid "constructor cannot be static member function"
+msgstr "建構å¼ä¸èƒ½æ˜¯éœæ…‹æˆå“¡å‡½å¼"
+
+#: cp/decl.c:7378
+#, gcc-internal-format
+msgid "constructors cannot be declared virtual"
+msgstr "建構å¼ä¸èƒ½è¢«å®£å‘Šç‚ºè™›å‡½å¼"
+
+#: cp/decl.c:7383
+#, gcc-internal-format
+msgid "constructors may not be cv-qualified"
+msgstr "建構å¼ä¸èƒ½å¸¶ cv é™å®š"
+
+#: cp/decl.c:7403
+#, gcc-internal-format
+msgid "can't initialize friend function %qs"
+msgstr "無法åˆå§‹åŒ–å¤¥ä¼´å‡½å¼ %qs"
+
+#. Cannot be both friend and virtual.
+#: cp/decl.c:7407
+#, gcc-internal-format
+msgid "virtual functions cannot be friends"
+msgstr "虛函å¼ä¸èƒ½æ˜¯å¤¥ä¼´"
+
+#: cp/decl.c:7411
+#, gcc-internal-format
+msgid "friend declaration not in class definition"
+msgstr "夥伴宣告ä¸åœ¨é¡žåˆ¥å®šç¾©å…§"
+
+#: cp/decl.c:7413
+#, gcc-internal-format
+msgid "can't define friend function %qs in a local class definition"
+msgstr "局部類別定義中ä¸èƒ½å®šç¾©å¤¥ä¼´å‡½å¼ %qs"
+
+#: cp/decl.c:7426
+#, gcc-internal-format
+msgid "destructors may not have parameters"
+msgstr "解構函å¼ä¸èƒ½æœ‰åƒæ•¸"
+
+#: cp/decl.c:7445 cp/decl.c:7452
+#, gcc-internal-format
+msgid "cannot declare reference to %q#T"
+msgstr "ç„¡æ³•å®£å‘Šå° %q#T çš„åƒç…§"
+
+#: cp/decl.c:7446
+#, gcc-internal-format
+msgid "cannot declare pointer to %q#T"
+msgstr "無法宣告åƒç…§ %q#T 的指標"
+
+#: cp/decl.c:7454
+#, gcc-internal-format
+msgid "cannot declare pointer to %q#T member"
+msgstr "無法宣告åƒç…§ %q#T æˆå“¡çš„指標"
+
+#: cp/decl.c:7493
+#, gcc-internal-format
+msgid "%qD is a namespace"
+msgstr "%qD 是一個命å空間"
+
+#: cp/decl.c:7532
+#, gcc-internal-format
+msgid "template-id %qD used as a declarator"
+msgstr "範本識別碼 %qD åšç‚ºå®£å‘Š"
+
+#: cp/decl.c:7582
+#, gcc-internal-format
+msgid "member functions are implicitly friends of their class"
+msgstr "æˆå“¡å‡½å¼éš±å«åœ°æˆç‚ºæ‰€å±¬é¡žåˆ¥çš„夥伴"
+
+#: cp/decl.c:7584
+#, gcc-internal-format
+msgid "extra qualification %<%T::%> on member %qs"
+msgstr "有多餘的é™å®š %<%T::%> æ–¼æˆå“¡ %qs 上"
+
+#: cp/decl.c:7595
+#, gcc-internal-format
+msgid "cannot define member function %<%T::%s%> within %<%T%>"
+msgstr "無法定義æˆå“¡å‡½å¼ %<%T::%s%> æ–¼ %<%T%> 之內"
+
+#: cp/decl.c:7596
+#, gcc-internal-format
+msgid "cannot declare member function %<%T::%s%> within %<%T%>"
+msgstr "無法宣告æˆå“¡å‡½å¼ %<%T::%s%> æ–¼ %<%T%> 之內"
+
+#: cp/decl.c:7621
+#, gcc-internal-format
+msgid "cannot declare member %<%T::%s%> within %qT"
+msgstr "無法宣告æˆå“¡ %<%T::%s%> æ–¼ %qT 之內"
+
+#: cp/decl.c:7661
+#, gcc-internal-format
+msgid "data member may not have variably modified type %qT"
+msgstr "資料æˆå“¡ä¸èƒ½å…·æœ‰å¯è®Šé¡žåž‹ %qT"
+
+#: cp/decl.c:7663
+#, gcc-internal-format
+msgid "parameter may not have variably modified type %qT"
+msgstr "åƒæ•¸ä¸èƒ½å…·æœ‰å¯è®Šé¡žåž‹ %qT"
+
+#. [dcl.fct.spec] The explicit specifier shall only be used in
+#. declarations of constructors within a class definition.
+#: cp/decl.c:7671
+#, gcc-internal-format
+msgid "only declarations of constructors can be %<explicit%>"
+msgstr "åªæœ‰å»ºæ§‹å¼æ‰èƒ½è¢«å®£å‘Šç‚º %<explicit%>"
+
+#: cp/decl.c:7679
+#, gcc-internal-format
+msgid "non-member %qs cannot be declared %<mutable%>"
+msgstr "éžæˆå“¡ %qs ä¸èƒ½è¢«å®£å‘Šç‚º %<mutable%>"
+
+#: cp/decl.c:7684
+#, gcc-internal-format
+msgid "non-object member %qs cannot be declared %<mutable%>"
+msgstr "éžç‰©ä»¶æˆå“¡ %qs ä¸èƒ½è¢«å®£å‘Šç‚º %<mutable%>"
+
+#: cp/decl.c:7690
+#, gcc-internal-format
+msgid "function %qs cannot be declared %<mutable%>"
+msgstr "å‡½å¼ %qs ä¸èƒ½è¢«å®£å‘Šç‚º %<mutable%>"
+
+#: cp/decl.c:7695
+#, gcc-internal-format
+msgid "static %qs cannot be declared %<mutable%>"
+msgstr "éœæ…‹ %qs ä¸èƒ½è¢«å®£å‘Šç‚º %<mutable%>"
+
+#: cp/decl.c:7700
+#, gcc-internal-format
+msgid "const %qs cannot be declared %<mutable%>"
+msgstr "常數 %qs ä¸èƒ½è¢«å®£å‘Šç‚º %<mutable%>"
+
+#: cp/decl.c:7720
+#, gcc-internal-format
+msgid "%Jtypedef name may not be a nested-name-specifier"
+msgstr "%Jtypedef åä¸èƒ½æ˜¯å·¢ç‹€å指定"
+
+#: cp/decl.c:7736
+#, gcc-internal-format
+msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
+msgstr "ISO C++ ä¸å…許嵌類別的類型 %qD 與其所屬的類別åŒå"
+
+#: cp/decl.c:7835
+#, gcc-internal-format
+msgid "qualified function types cannot be used to declare %s functions"
+msgstr "é™å®šçš„函å¼é¡žåž‹ä¸èƒ½ç”¨ä¾†å®£å‘Š %s 函å¼"
+
+#: cp/decl.c:7861
+#, gcc-internal-format
+msgid "type qualifiers specified for friend class declaration"
+msgstr "為夥伴類別宣告指定了類型é™å®š"
+
+#: cp/decl.c:7866
+#, gcc-internal-format
+msgid "%<inline%> specified for friend class declaration"
+msgstr "夥伴函å¼å®£å‘Šä¸­å‡ºç¾äº† %<inline%>"
+
+#: cp/decl.c:7874
+#, gcc-internal-format
+msgid "template parameters cannot be friends"
+msgstr "範本åƒæ•¸ä¸èƒ½æ˜¯å¤¥ä¼´"
+
+#: cp/decl.c:7876
+#, gcc-internal-format
+msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
+msgstr "å¤¥ä¼´å®£å‘Šéœ€è¦ classï¼Œå³ %<friend class %T::%D%>"
+
+#: cp/decl.c:7880
+#, gcc-internal-format
+msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
+msgstr "å¤¥ä¼´å®£å‘Šéœ€è¦ classï¼Œå³ %<friend %#T%>"
+
+#: cp/decl.c:7893
+#, gcc-internal-format
+msgid "trying to make class %qT a friend of global scope"
+msgstr "試圖讓 %qT æˆç‚ºå…¨åŸŸæ¬„ä½çš„夥伴"
+
+#: cp/decl.c:7904
+#, gcc-internal-format
+msgid "invalid qualifiers on non-member function type"
+msgstr "éžæˆå“¡å‡½å¼é¡žåž‹ä¸Šçš„é™å®šç¬¦ç„¡æ•ˆ"
+
+#: cp/decl.c:7923
+#, gcc-internal-format
+msgid "abstract declarator %qT used as declaration"
+msgstr "抽象宣告 %qT åšç‚ºå®£å‘Š"
+
+#: cp/decl.c:7948
+#, gcc-internal-format
+msgid "cannot use %<::%> in parameter declaration"
+msgstr "ä¸èƒ½åœ¨åƒæ•¸å®£å‘Šä¸­ä½¿ç”¨ %<::%>"
+
+#. Something like struct S { int N::j; };
+#: cp/decl.c:7993
+#, gcc-internal-format
+msgid "invalid use of %<::%>"
+msgstr "錯誤地使用了 %<::%>"
+
+#: cp/decl.c:8008
+#, gcc-internal-format
+msgid "can't make %qD into a method -- not in a class"
+msgstr "%qD ä¸èƒ½æ˜¯ä¸€å€‹æ–¹æ³• -- ä¸åœ¨é¡žåˆ¥ä¸­"
+
+#: cp/decl.c:8017
+#, gcc-internal-format
+msgid "function %qD declared virtual inside a union"
+msgstr "è¯åˆæˆå“¡å‡½å¼ %qD 被宣告為虛函å¼"
+
+#: cp/decl.c:8026
+#, gcc-internal-format
+msgid "%qD cannot be declared virtual, since it is always static"
+msgstr "%qD ä¸èƒ½å®£å‘Šç‚ºè™›å‡½å¼ï¼Œå› ç‚ºå®ƒç¸½æ˜¯éœæ…‹çš„"
+
+#: cp/decl.c:8044
+#, gcc-internal-format
+msgid "expected qualified name in friend declaration for destructor %qD"
+msgstr "åœ¨è§£æ§‹å‡½å¼ %qD 中的夥伴宣告需è¦é™å®šå"
+
+#: cp/decl.c:8054
+#, gcc-internal-format
+msgid "declaration of %qD as member of %qT"
+msgstr "%qD 宣告為 %qT 的一個æˆå“¡"
+
+#: cp/decl.c:8130
+#, gcc-internal-format
+msgid "field %qD has incomplete type"
+msgstr "æ¬„ä½ %qD é¡žåž‹ä¸å®Œå…¨"
+
+#: cp/decl.c:8132
+#, gcc-internal-format
+msgid "name %qT has incomplete type"
+msgstr "å稱 %qT é¡žåž‹ä¸å®Œå…¨"
+
+#: cp/decl.c:8141
+#, gcc-internal-format
+msgid " in instantiation of template %qT"
+msgstr " 在範本 %qT 的實體化中"
+
+#: cp/decl.c:8151
+#, gcc-internal-format
+msgid "%qE is neither function nor member function; cannot be declared friend"
+msgstr "%qE æ—¢ä¸æ˜¯å‡½å¼ä¹Ÿä¸æ˜¯æˆå“¡å‡½å¼ï¼›ä¸èƒ½å®£å‘Šç‚ºå¤¥ä¼´"
+
+#. 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:8202
+#, gcc-internal-format
+msgid "ISO C++ forbids initialization of member %qD"
+msgstr "ISO C++ ä¸å…許æˆå“¡ %qD çš„åˆå§‹åŒ–"
+
+#: cp/decl.c:8204
+#, gcc-internal-format
+msgid "making %qD static"
+msgstr "使 %qD æˆç‚ºéœæ…‹çš„"
+
+#: cp/decl.c:8273
+#, gcc-internal-format
+msgid "storage class %<auto%> invalid for function %qs"
+msgstr "å‡½å¼ %qs 的存儲類別 %<auto%> 無效"
+
+#: cp/decl.c:8275
+#, gcc-internal-format
+msgid "storage class %<register%> invalid for function %qs"
+msgstr "å‡½å¼ %qs 的存儲類別 %<register%> 無效"
+
+#: cp/decl.c:8277
+#, gcc-internal-format
+msgid "storage class %<__thread%> invalid for function %qs"
+msgstr "å‡½å¼ %qs 的存儲類別 %<__thread%> 無效"
+
+#: cp/decl.c:8288
+#, gcc-internal-format
+msgid "%<static%> specified invalid for function %qs declared out of global scope"
+msgstr "在全域作用欄ä½å¤–ç‚ºå‡½å¼ %qs 指定 %<static%> 無效"
+
+#: cp/decl.c:8291
+#, gcc-internal-format
+msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
+msgstr "在全域作用欄ä½å¤–ç‚ºå‡½å¼ %qs 指定 %<inline%> 無效"
+
+#: cp/decl.c:8299
+#, gcc-internal-format
+msgid "virtual non-class function %qs"
+msgstr "è™›å‡½å¼ %qs ä¸æ˜¯é¡žåˆ¥æˆå“¡"
+
+#: cp/decl.c:8330
+#, gcc-internal-format
+msgid "cannot declare member function %qD to have static linkage"
+msgstr "ä¸èƒ½å°‡æˆå“¡å‡½å¼ %qD 宣告為有éœæ…‹é€£çµ"
+
+#. FIXME need arm citation
+#: cp/decl.c:8337
+#, gcc-internal-format
+msgid "cannot declare static function inside another function"
+msgstr "ä¸èƒ½åœ¨å¦ä¸€å€‹å‡½å¼ä¸­å®£å‘Šä¸€å€‹éœæ…‹å‡½å¼"
+
+#: cp/decl.c:8366
+#, gcc-internal-format
+msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member"
+msgstr "與宣告ä¸åŒï¼Œå®šç¾©éœæ…‹è³‡æ–™æˆå“¡æ™‚ä¸èƒ½ä½¿ç”¨ %<static%>"
+
+#: cp/decl.c:8373
+#, gcc-internal-format
+msgid "static member %qD declared %<register%>"
+msgstr "éœæ…‹æˆå“¡ %qD 宣告為 %<register%>"
+
+#: cp/decl.c:8378
+#, gcc-internal-format
+msgid "cannot explicitly declare member %q#D to have extern linkage"
+msgstr "ä¸èƒ½æ˜Žç¢ºåœ°å°‡æˆå“¡ %q#D 宣告為有外部連çµ"
+
+#: cp/decl.c:8516
+#, gcc-internal-format
+msgid "default argument for %q#D has type %qT"
+msgstr "%q#D çš„é è¨­å¼•æ•¸é¡žåž‹ç‚º %qT"
+
+#: cp/decl.c:8519
+#, gcc-internal-format
+msgid "default argument for parameter of type %qT has type %qT"
+msgstr "類型為 %qT çš„åƒæ•¸çš„é è¨­å¼•æ•¸å»æœ‰é¡žåž‹ %qT"
+
+#: cp/decl.c:8536
+#, gcc-internal-format
+msgid "default argument %qE uses local variable %qD"
+msgstr "é è¨­å¼•æ•¸ %qE 使用了局部變數 %qD"
+
+#: cp/decl.c:8604
+#, gcc-internal-format
+msgid "parameter %qD invalidly declared method type"
+msgstr "åƒæ•¸ %qD 被無效地被宣告為具有方法類型"
+
+#: cp/decl.c:8628
+#, gcc-internal-format
+msgid "parameter %qD includes %s to array of unknown bound %qT"
+msgstr "åƒæ•¸ %qD 包å«äº† %s,後者åƒç…§æœ‰ä¸æ˜Žé‚Šç•Œ %qT 的陣列"
+
+#. [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:8787
+#, gcc-internal-format
+msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
+msgstr "無效的建構å¼ï¼šæ‚¨è¦çš„å¯èƒ½æ˜¯ %<%T (const %T&)%>"
+
+#: cp/decl.c:8906
+#, gcc-internal-format
+msgid "%qD may not be declared within a namespace"
+msgstr "%qD ä¸èƒ½åœ¨å‘½å空間宣告"
+
+#: cp/decl.c:8908
+#, gcc-internal-format
+msgid "%qD may not be declared as static"
+msgstr "%qD ä¸èƒ½è¢«å®£å‘Šç‚ºéœæ…‹çš„"
+
+#: cp/decl.c:8929
+#, gcc-internal-format
+msgid "%qD must be a nonstatic member function"
+msgstr "%qD 必須是一個éžéœæ…‹çš„æˆå“¡å‡½å¼"
+
+#: cp/decl.c:8938
+#, gcc-internal-format
+msgid "%qD must be either a non-static member function or a non-member function"
+msgstr "%qD 必須是一個éžéœæ…‹æˆå“¡å‡½å¼æˆ–éžæˆå“¡å‡½å¼"
+
+#: cp/decl.c:8958
+#, gcc-internal-format
+msgid "%qD must have an argument of class or enumerated type"
+msgstr "%qD 的引數必須有類別或列舉類型"
+
+#: cp/decl.c:8999
+#, gcc-internal-format
+msgid "conversion to %s%s will never use a type conversion operator"
+msgstr "å‘ %s%s 的轉æ›æ°¸é ä¸æœƒç”¨åˆ°é¡žåž‹è½‰æ›é‹ç®—å­"
+
+#. 13.4.0.3
+#: cp/decl.c:9006
+#, gcc-internal-format
+msgid "ISO C++ prohibits overloading operator ?:"
+msgstr "ISO C++ ä¸å…許多載 ?: é‹ç®—å­"
+
+#: cp/decl.c:9056
+#, gcc-internal-format
+msgid "postfix %qD must take %<int%> as its argument"
+msgstr "å­—å°¾ %qD 必須使用 %<int%> åšç‚ºå®ƒçš„åƒæ•¸"
+
+#: cp/decl.c:9060
+#, gcc-internal-format
+msgid "postfix %qD must take %<int%> as its second argument"
+msgstr "å­—å°¾ %qD 必須使用 %<int%> åšç‚ºå®ƒçš„第二個åƒæ•¸"
+
+#: cp/decl.c:9067
+#, gcc-internal-format
+msgid "%qD must take either zero or one argument"
+msgstr "%qD 必須帶 0 或 1 個引數"
+
+#: cp/decl.c:9069
+#, gcc-internal-format
+msgid "%qD must take either one or two arguments"
+msgstr "%qD 必須帶 1 或 2 個引數"
+
+#: cp/decl.c:9090
+#, gcc-internal-format
+msgid "prefix %qD should return %qT"
+msgstr "字首 %qD 應當回傳 %qT"
+
+#: cp/decl.c:9096
+#, gcc-internal-format
+msgid "postfix %qD should return %qT"
+msgstr "字尾 %qD 應當回傳 %qT"
+
+#: cp/decl.c:9105
+#, gcc-internal-format
+msgid "%qD must take %<void%>"
+msgstr "%qD 必須有 %<void%> 類型"
+
+#: cp/decl.c:9107 cp/decl.c:9115
+#, gcc-internal-format
+msgid "%qD must take exactly one argument"
+msgstr "%qD 帶且僅帶 1 個引數"
+
+#: cp/decl.c:9117
+#, gcc-internal-format
+msgid "%qD must take exactly two arguments"
+msgstr "%qD 帶且僅帶 2 個引數"
+
+#: cp/decl.c:9125
+#, gcc-internal-format
+msgid "user-defined %qD always evaluates both arguments"
+msgstr "使用者定義的 %qD 總是計算所有兩個åƒæ•¸"
+
+#: cp/decl.c:9139
+#, gcc-internal-format
+msgid "%qD should return by value"
+msgstr "%qD 應當回傳值而éžåƒç…§"
+
+#: cp/decl.c:9151 cp/decl.c:9154
+#, gcc-internal-format
+msgid "%qD cannot have default arguments"
+msgstr "%qD ä¸èƒ½æœ‰é è¨­åƒæ•¸"
+
+#: cp/decl.c:9211
+#, gcc-internal-format
+msgid "using template type parameter %qT after %qs"
+msgstr "使用範本類型åƒæ•¸ %qT,在 %qs 後"
+
+#: cp/decl.c:9226
+#, gcc-internal-format
+msgid "using typedef-name %qD after %qs"
+msgstr "使用 typedef å %qD,在 %qs 後"
+
+#: cp/decl.c:9227
+#, gcc-internal-format
+msgid "%q+D has a previous declaration here"
+msgstr "%q+D å…ˆå‰åœ¨æ­¤è™•æœ‰éŽå®£å‘Š"
+
+#: cp/decl.c:9235
+#, gcc-internal-format
+msgid "%qT referred to as %qs"
+msgstr "%qT åšç‚º %qs 被åƒç…§"
+
+#: cp/decl.c:9236 cp/decl.c:9243
+#, gcc-internal-format
+msgid "%q+T has a previous declaration here"
+msgstr "%q+T å…ˆå‰åœ¨æ­¤è™•æœ‰éŽå®£å‘Š"
+
+#: cp/decl.c:9242
+#, gcc-internal-format
+msgid "%qT referred to as enum"
+msgstr "%qT åšç‚ºåˆ—舉被åƒç…§"
+
+#. 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:9257
+#, gcc-internal-format
+msgid "template argument required for %<%s %T%>"
+msgstr "%<%s %T%> 需è¦ç¯„本åƒæ•¸"
+
+#: cp/decl.c:9305 cp/name-lookup.c:2627
+#, gcc-internal-format
+msgid "%qD has the same name as the class in which it is declared"
+msgstr "%qD 與其宣告所在的類別åŒå"
+
+#: cp/decl.c:9443
+#, gcc-internal-format
+msgid "use of enum %q#D without previous declaration"
+msgstr "使用列舉 %q#D å‰æ²’有給出宣告"
+
+#: cp/decl.c:9461
+#, gcc-internal-format
+msgid "redeclaration of %qT as a non-template"
+msgstr "%qT é‡å®£å‘Šç‚ºéžç¯„本"
+
+#: cp/decl.c:9568
+#, gcc-internal-format
+msgid "derived union %qT invalid"
+msgstr "è¡ç”Ÿè¯åˆ %qT 無效"
+
+#: cp/decl.c:9574
+#, gcc-internal-format
+msgid "Java class %qT cannot have multiple bases"
+msgstr "Java 類別 %qT ä¸èƒ½æœ‰å¤šå€‹åŸºç¤Žé¡žåˆ¥"
+
+#: cp/decl.c:9582
+#, gcc-internal-format
+msgid "Java class %qT cannot have virtual bases"
+msgstr "Java 類別 %qT ä¸èƒ½æœ‰è™›åŸºç¤Žé¡žåˆ¥"
+
+#: cp/decl.c:9601
+#, gcc-internal-format
+msgid "base type %qT fails to be a struct or class type"
+msgstr "基礎類別型 %qT ä¸æ˜¯çµæ§‹æˆ–類別"
+
+#: cp/decl.c:9634
+#, gcc-internal-format
+msgid "recursive type %qT undefined"
+msgstr "éžè¿´çš„é¡žåž‹ %qT 未定義"
+
+#: cp/decl.c:9636
+#, gcc-internal-format
+msgid "duplicate base type %qT invalid"
+msgstr "é‡è¤‡çš„基礎類別型 %qT 無效"
+
+#: cp/decl.c:9706
+#, gcc-internal-format
+msgid "multiple definition of %q#T"
+msgstr "%q#T 多次定義"
+
+#: cp/decl.c:9707
+#, gcc-internal-format
+msgid "%Jprevious definition here"
+msgstr "%Jå‰ä¸€å€‹å®šç¾©åœ¨é€™è£¡"
+
+#. DR 377
+#.
+#. IF no integral type can represent all the enumerator values, the
+#. enumeration is ill-formed.
+#: cp/decl.c:9846
+#, gcc-internal-format
+msgid "no integral type can represent all of the enumerator values for %qT"
+msgstr "沒有一個整數類型å¯ä»¥è¡¨ç¤º %qT 的所有列舉值"
+
+#: cp/decl.c:9957
+#, gcc-internal-format
+msgid "enumerator value for %qD not integer constant"
+msgstr "%qD 的列舉值ä¸æ˜¯æ•´æ•¸å¸¸æ•¸"
+
+#: cp/decl.c:9985
+#, gcc-internal-format
+msgid "overflow in enumeration values at %qD"
+msgstr "%qD 處列舉值溢出"
+
+#: cp/decl.c:10060
+#, gcc-internal-format
+msgid "return type %q#T is incomplete"
+msgstr "回傳值類型 %q#T 為ä¸å®Œå…¨"
+
+#: cp/decl.c:10170 cp/typeck.c:6377
+#, gcc-internal-format
+msgid "%<operator=%> should return a reference to %<*this%>"
+msgstr "%<operator=%> æ‡‰ç•¶å›žå‚³ä¸€å€‹å° %<*this%> çš„åƒç…§"
+
+#: cp/decl.c:10536
+#, gcc-internal-format
+msgid "parameter %qD declared void"
+msgstr "åƒæ•¸ %qD 被宣告為 void"
+
+#: cp/decl.c:11042
+#, gcc-internal-format
+msgid "invalid member function declaration"
+msgstr "無效的æˆå“¡å‡½å¼å®£å‘Š"
+
+#: cp/decl.c:11057
+#, gcc-internal-format
+msgid "%qD is already defined in class %qT"
+msgstr "%qD 已在類別 %qT 中定義éŽ"
+
+#: cp/decl.c:11267
+#, gcc-internal-format
+msgid "static member function %q#D declared with type qualifiers"
+msgstr "éœæ…‹æˆå“¡å‡½å¼ %q#D 的宣告帶有類型é™å®šç¬¦"
+
+#: cp/decl2.c:271
+#, gcc-internal-format
+msgid "name missing for member function"
+msgstr "æˆå“¡å‡½å¼æ²’å…·åå­—"
+
+#: cp/decl2.c:364 cp/decl2.c:378
+#, gcc-internal-format
+msgid "ambiguous conversion for array subscript"
+msgstr "為陣列下標的轉æ›æœ‰æ­§ç¾©"
+
+#: cp/decl2.c:372
+#, gcc-internal-format
+msgid "invalid types %<%T[%T]%> for array subscript"
+msgstr "%<%T[%T]%> åšç‚ºé™£åˆ—下標類型無效"
+
+#: cp/decl2.c:415
+#, gcc-internal-format
+msgid "deleting array %q#D"
+msgstr "刪除陣列 %q#D"
+
+#: cp/decl2.c:421
+#, gcc-internal-format
+msgid "type %q#T argument given to %<delete%>, expected pointer"
+msgstr "%<delete%> çš„åƒæ•¸é¡žåž‹æ‡‰ç‚ºæŒ‡æ¨™è€Œéž %q#T"
+
+#: cp/decl2.c:433
+#, gcc-internal-format
+msgid "cannot delete a function. Only pointer-to-objects are valid arguments to %<delete%>"
+msgstr "ä¸èƒ½ delete 一個函å¼ã€‚åªæœ‰åƒç…§ç‰©ä»¶çš„指標æ‰æ˜¯ %<delete%> 的有效åƒæ•¸"
+
+#: cp/decl2.c:441
+#, gcc-internal-format
+msgid "deleting %qT is undefined"
+msgstr "刪除 %qT 未定義"
+
+#. 14.5.2.2 [temp.mem]
+#.
+#. A local class shall not have member templates.
+#: cp/decl2.c:477
+#, gcc-internal-format
+msgid "invalid declaration of member template %q#D in local class"
+msgstr "局部類別中å°æˆå“¡ç¯„本 %q#D 的宣告無效"
+
+#: cp/decl2.c:486
+#, gcc-internal-format
+msgid "invalid use of %<virtual%> in template declaration of %q#D"
+msgstr "在 %q#D 的範本宣告中使用 %<virtual%> 無效"
+
+#: cp/decl2.c:496 cp/pt.c:3024
+#, gcc-internal-format
+msgid "template declaration of %q#D"
+msgstr "%q#D 宣告為範本"
+
+#: cp/decl2.c:545
+#, gcc-internal-format
+msgid "Java method %qD has non-Java return type %qT"
+msgstr "Java 方法 %qD å›žå‚³éž Java é¡žåž‹ %qT"
+
+#: cp/decl2.c:561
+#, gcc-internal-format
+msgid "Java method %qD has non-Java parameter type %qT"
+msgstr "Java 方法 %qD æœ‰éž Java é¡žåž‹åƒæ•¸ %qT"
+
+#: cp/decl2.c:666
+#, gcc-internal-format
+msgid "prototype for %q#D does not match any in class %qT"
+msgstr "%q#D 的原型ä¸åŒ¹é…類別 %qT 中的任何一個"
+
+#: cp/decl2.c:763
+#, gcc-internal-format
+msgid "local class %q#T shall not have static data member %q#D"
+msgstr "局部類別 %q#T ä¸æ‡‰ç•¶æ“有éœæ…‹è³‡æ–™æˆå“¡ %q#D"
+
+#: cp/decl2.c:771
+#, gcc-internal-format
+msgid "initializer invalid for static member with constructor"
+msgstr "建構å¼ä¸­å°éœæ…‹æˆå“¡çš„åˆå§‹åŒ–無效"
+
+#: cp/decl2.c:774
+#, gcc-internal-format
+msgid "(an out of class initialization is required)"
+msgstr "(需è¦ä¸€å€‹é¡žåˆ¥å¤–çš„åˆå§‹åŒ–)"
+
+#: cp/decl2.c:842
+#, gcc-internal-format
+msgid "member %qD conflicts with virtual function table field name"
+msgstr "æˆå“¡ %qD 與虛函å¼è¡¨çš„欄ä½åè¡çª"
+
+#: cp/decl2.c:861
+#, gcc-internal-format
+msgid "applying attributes to template parameters is not implemented"
+msgstr "將屬性套用到範本åƒæ•¸å°šæœªå¯¦ä½œ"
+
+#: cp/decl2.c:871
+#, gcc-internal-format
+msgid "%qD is already defined in %qT"
+msgstr "%qD 已在 %qT 中定義éŽ"
+
+#: cp/decl2.c:892
+#, gcc-internal-format
+msgid "initializer specified for static member function %qD"
+msgstr "為éœæ…‹æˆå“¡å‡½å¼ %qD 指定了åˆå§‹å€¼"
+
+#: cp/decl2.c:915
+#, gcc-internal-format
+msgid "field initializer is not constant"
+msgstr "欄ä½åˆå§‹å€¼è¨­å®šä¸æ˜¯ä¸€å€‹å¸¸æ•¸"
+
+#: cp/decl2.c:942
+#, gcc-internal-format
+msgid "%<asm%> specifiers are not permitted on non-static data members"
+msgstr "%<asm%> 指定ä¸å…許用於éžéœæ…‹è³‡æ–™æˆå“¡"
+
+#: cp/decl2.c:990
+#, gcc-internal-format
+msgid "cannot declare %qD to be a bit-field type"
+msgstr "ä¸èƒ½å°‡ %qD 宣告為ä½å…ƒæ®µé¡žåž‹"
+
+#: cp/decl2.c:1000
+#, gcc-internal-format
+msgid "cannot declare bit-field %qD with function type"
+msgstr "ä¸èƒ½å°‡ä½å…ƒæ®µ %qD 宣告為函å¼é¡žåž‹"
+
+#: cp/decl2.c:1007
+#, gcc-internal-format
+msgid "%qD is already defined in the class %qT"
+msgstr "%qD 已在類別 %qT 中定義éŽ"
+
+#: cp/decl2.c:1014
+#, gcc-internal-format
+msgid "static member %qD cannot be a bit-field"
+msgstr "éœæ…‹æˆå“¡ %qD ä¸èƒ½æ˜¯ä½å…ƒæ®µ"
+
+#: cp/decl2.c:1059
+#, gcc-internal-format
+msgid "anonymous struct not inside named type"
+msgstr "匿åçµæ§‹ä¸åœ¨å…·åé¡žåž‹å…§"
+
+#: cp/decl2.c:1142
+#, gcc-internal-format
+msgid "namespace-scope anonymous aggregates must be static"
+msgstr "命å空間欄ä½çš„匿åèšåˆå¿…須是éœæ…‹çš„"
+
+#: cp/decl2.c:1149
+#, gcc-internal-format
+msgid "anonymous union with no members"
+msgstr "匿åè¯åˆæ²’有æˆå“¡"
+
+#: cp/decl2.c:1185
+#, gcc-internal-format
+msgid "%<operator new%> must return type %qT"
+msgstr "%<operator new%> 必須回傳 %qT"
+
+#: cp/decl2.c:1194
+#, gcc-internal-format
+msgid "%<operator new%> takes type %<size_t%> (%qT) as first parameter"
+msgstr "%<operator new%> 的第一個åƒæ•¸é¡žåž‹ç‚º %<size_t%> (%qT)"
+
+#: cp/decl2.c:1223
+#, gcc-internal-format
+msgid "%<operator delete%> must return type %qT"
+msgstr "%<operator delete%> 必須回傳 %qT"
+
+#: cp/decl2.c:1232
+#, gcc-internal-format
+msgid "%<operator delete%> takes type %qT as first parameter"
+msgstr "%<operator delete%> 的第一個åƒæ•¸é¡žåž‹ç‚º %qT"
+
+#: cp/decl2.c:3065
+#, gcc-internal-format
+msgid "inline function %q+D used but never defined"
+msgstr "使用了內è¯å‡½å¼ %q+D 但從未定義éŽ"
+
+#: cp/decl2.c:3219
+#, gcc-internal-format
+msgid "default argument missing for parameter %P of %q+#D"
+msgstr "åƒæ•¸ %P (屬於 %q+#D)缺少é è¨­å¼•æ•¸"
+
+#. Can't throw a reference.
+#: cp/except.c:267
+#, gcc-internal-format
+msgid "type %qT is disallowed in Java %<throw%> or %<catch%>"
+msgstr "在 Java %<throw%> 或 %<catch%> 中ä¸èƒ½ä½¿ç”¨é¡žåž‹ %qT"
+
+#: cp/except.c:278
+#, gcc-internal-format
+msgid "call to Java %<catch%> or %<throw%> with %<jthrowable%> undefined"
+msgstr "å‘¼å« Java %<catch%> 或 %<throw%> 時 %<jthrowable%> 未定義"
+
+#. Thrown object must be a Throwable.
+#: cp/except.c:285
+#, gcc-internal-format
+msgid "type %qT is not derived from %<java::lang::Throwable%>"
+msgstr "é¡žåž‹ %qT ä¸æ˜¯å¾ž %<java::lang::Throwable%> è¡ç”Ÿä¾†çš„"
+
+#: cp/except.c:348
+#, gcc-internal-format
+msgid "mixing C++ and Java catches in a single translation unit"
+msgstr "在åŒä¸€å€‹ç¿»è­¯å–®å…ƒä¸­æ··åˆä½¿ç”¨ C++ å’Œ Java 異常ç²å–"
+
+#: cp/except.c:608
+#, gcc-internal-format
+msgid "throwing NULL, which has integral, not pointer type"
+msgstr "拋出 NULL,它的類型是整數而ä¸æ˜¯æŒ‡æ¨™"
+
+#: cp/except.c:631 cp/init.c:1929
+#, gcc-internal-format
+msgid "%qD should never be overloaded"
+msgstr "%qD æ°¸é ä¸æ‡‰è©²è¢«å¤šè¼‰"
+
+#: cp/except.c:698
+#, gcc-internal-format
+msgid " in thrown expression"
+msgstr " 在拋出的é‹ç®—å¼ä¸­"
+
+#: cp/except.c:846
+#, gcc-internal-format
+msgid "expression %qE of abstract class type %qT cannot be used in throw-expression"
+msgstr "é‹ç®—å¼ %qE 具有抽象類別類型 %qT,ä¸èƒ½ç”¨æ–¼ throw é‹ç®—å¼ä¸­"
+
+#: cp/except.c:931
+#, gcc-internal-format
+msgid "%Hexception of type %qT will be caught"
+msgstr "%H類型為 %qT 的異常將由"
+
+#: cp/except.c:933
+#, gcc-internal-format
+msgid "%H by earlier handler for %qT"
+msgstr "%H %qT å…ˆå‰çš„處ç†è€…ç²å–"
+
+#: cp/except.c:963
+#, gcc-internal-format
+msgid "%H%<...%> handler must be the last handler for its try block"
+msgstr "%H%<...%> 處ç†è€…必須是其 try å€å¡Šä¸­çš„最後一個處ç†è€…"
+
+#: cp/friend.c:152
+#, gcc-internal-format
+msgid "%qD is already a friend of class %qT"
+msgstr "%qD 已經是類別 %qT 的夥伴"
+
+#: cp/friend.c:228
+#, gcc-internal-format
+msgid "invalid type %qT declared %<friend%>"
+msgstr "無效的類型 %qT 宣告為 %<friend%>"
+
+#. [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
+#, gcc-internal-format
+msgid "partial specialization %qT declared %<friend%>"
+msgstr "部分特例化範本 %qT 宣告為 %<friend%>"
+
+#: cp/friend.c:252
+#, gcc-internal-format
+msgid "class %qT is implicitly friends with itself"
+msgstr "類別 %qT éš±å«åœ°æˆç‚ºå…¶è‡ªèº«çš„夥伴"
+
+#: cp/friend.c:310
+#, gcc-internal-format
+msgid "%qT is not a member of %qT"
+msgstr "%qT ä¸æ˜¯ %qT çš„æˆå“¡"
+
+#: cp/friend.c:315
+#, gcc-internal-format
+msgid "%qT is not a member class template of %qT"
+msgstr "%qT ä¸æ˜¯ %qT çš„æˆå“¡é¡žåˆ¥ç¯„本"
+
+#: cp/friend.c:323
+#, gcc-internal-format
+msgid "%qT is not a nested class of %qT"
+msgstr "%qT ä¸æ˜¯ %qT 的巢狀類別"
+
+#. template <class T> friend class T;
+#: cp/friend.c:336
+#, gcc-internal-format
+msgid "template parameter type %qT declared %<friend%>"
+msgstr "範本åƒæ•¸é¡žåž‹ %qT 宣告為 %<friend%>"
+
+#. template <class T> friend class A; where A is not a template
+#: cp/friend.c:342
+#, gcc-internal-format
+msgid "%q#T is not a template"
+msgstr "%q#T ä¸æ˜¯ä¸€å€‹ç¯„本"
+
+#: cp/friend.c:364
+#, gcc-internal-format
+msgid "%qD is already a friend of %qT"
+msgstr "%qD 已經是 %qT 的夥伴"
+
+#: cp/friend.c:373
+#, gcc-internal-format
+msgid "%qT is already a friend of %qT"
+msgstr "%qT 已經是 %qT 的夥伴"
+
+#: cp/friend.c:497
+#, gcc-internal-format
+msgid "member %qD declared as friend before type %qT defined"
+msgstr "æˆå“¡ %qD 在類型 %qT 被定義之å‰å®£å‘Šç‚ºå¤¥ä¼´"
+
+#: cp/friend.c:553
+#, gcc-internal-format
+msgid "friend declaration %q#D declares a non-template function"
+msgstr "夥伴宣告 %q#D 宣告了一個éžç¯„本函å¼"
+
+#: cp/friend.c:557
+#, gcc-internal-format
+msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning"
+msgstr "(如果這ä¸æ˜¯æ‚¨åŽŸä¾†çš„想法,請確定此函å¼ç¯„本已經宣告éŽï¼Œä¸¦åœ¨é€™è£¡çš„函å¼å後é¢åŠ å…¥ <>) -Wno-non-template-friend åœç”¨æ­¤è­¦å‘Š"
+
+#: cp/init.c:327
+#, gcc-internal-format
+msgid "%J%qD should be initialized in the member initialization list"
+msgstr "%J%qD 應該在æˆå“¡åˆå§‹åŒ–清單中被åˆå§‹åŒ–"
+
+#: cp/init.c:375
+#, gcc-internal-format
+msgid "%Jdefault-initialization of %q#D, which has reference type"
+msgstr "%Jé è¨­åˆå§‹åŒ–具有åƒç…§é¡žåž‹çš„ %q#D"
+
+#: cp/init.c:381
+#, gcc-internal-format
+msgid "%Juninitialized reference member %qD"
+msgstr "%J未åˆå§‹åŒ–çš„åƒç…§æˆå“¡ %qD"
+
+#: cp/init.c:384
+#, gcc-internal-format
+msgid "%Juninitialized member %qD with %<const%> type %qT"
+msgstr "%J未åˆå§‹åŒ–çš„æˆå“¡ %qD 具有 %<const%> é¡žåž‹ %qT"
+
+#: cp/init.c:527
+#, gcc-internal-format
+msgid "%q+D will be initialized after"
+msgstr "%q+D 將隨後被åˆå§‹åŒ–"
+
+#: cp/init.c:530
+#, gcc-internal-format
+msgid "base %qT will be initialized after"
+msgstr "基礎類別 %qT 將在"
+
+#: cp/init.c:533
+#, gcc-internal-format
+msgid " %q+#D"
+msgstr " %q+#D"
+
+#: cp/init.c:535
+#, gcc-internal-format
+msgid " base %qT"
+msgstr " 基礎類別 %qT"
+
+#: cp/init.c:536
+#, gcc-internal-format
+msgid "%J when initialized here"
+msgstr "%J 當在這裡åˆå§‹åŒ–時"
+
+#: cp/init.c:552
+#, gcc-internal-format
+msgid "%Jmultiple initializations given for %qD"
+msgstr "%J為 %qD 給定了多個åˆå§‹åŒ–設定"
+
+#: cp/init.c:555
+#, gcc-internal-format
+msgid "%Jmultiple initializations given for base %qT"
+msgstr "%J為基礎類別 %qT 給定了多個åˆå§‹åŒ–設定"
+
+#: cp/init.c:622
+#, gcc-internal-format
+msgid "%Jinitializations for multiple members of %qT"
+msgstr "%Jåˆå§‹åŒ– %qT 的多個æˆå“¡"
+
+#: cp/init.c:684
+#, gcc-internal-format
+msgid "%Jbase class %q#T should be explicitly initialized in the copy constructor"
+msgstr "%J基礎類別 %q#T 應該在複製建構å¼ä¸­æ˜Žç¢ºåœ°åˆå§‹åŒ–"
+
+#: cp/init.c:908 cp/init.c:927
+#, gcc-internal-format
+msgid "class %qT does not have any field named %qD"
+msgstr "類別 %qT æ²’å…·å為 %qD 的欄ä½"
+
+#: cp/init.c:914
+#, gcc-internal-format
+msgid "%q#D is a static data member; it can only be initialized at its definition"
+msgstr "%q#D 是一個éœæ…‹è³‡æ–™æˆå“¡ï¼›å®ƒåªèƒ½åœ¨å®šç¾©æ™‚被åˆå§‹åŒ–"
+
+#: cp/init.c:921
+#, gcc-internal-format
+msgid "%q#D is not a non-static data member of %qT"
+msgstr "%q#D ä¸æ˜¯ %qT çš„éžéœæ…‹è³‡æ–™æˆå“¡"
+
+#: cp/init.c:960
+#, gcc-internal-format
+msgid "unnamed initializer for %qT, which has no base classes"
+msgstr "å°æ²’有基礎類別的 %qT çš„ç„¡ååˆå§‹åŒ–"
+
+#: cp/init.c:968
+#, gcc-internal-format
+msgid "unnamed initializer for %qT, which uses multiple inheritance"
+msgstr "å°ä½¿ç”¨äº†å¤šç¹¼æ‰¿çš„ %qT çš„ç„¡ååˆå§‹åŒ–"
+
+#: cp/init.c:1014
+#, gcc-internal-format
+msgid "%qD is both a direct base and an indirect virtual base"
+msgstr "%qD 既是一個直接基礎類別åˆæ˜¯ä¸€å€‹é–“接虛基礎類別"
+
+#: cp/init.c:1022
+#, gcc-internal-format
+msgid "type %qT is not a direct or virtual base of %qT"
+msgstr "é¡žåž‹ %qT ä¸æ˜¯ %qT 的直接或虛基礎類別"
+
+#: cp/init.c:1025
+#, gcc-internal-format
+msgid "type %qT is not a direct base of %qT"
+msgstr "é¡žåž‹ %qT ä¸æ˜¯ %qT 的直接基礎類別"
+
+#: cp/init.c:1105
+#, gcc-internal-format
+msgid "bad array initializer"
+msgstr "錯誤的陣列åˆå§‹å€¼è¨­å®š"
+
+#: cp/init.c:1304
+#, gcc-internal-format
+msgid "%qT is not an aggregate type"
+msgstr "%qT ä¸æ˜¯ä¸€å€‹èšåˆé¡žåž‹"
+
+#: cp/init.c:1398
+#, gcc-internal-format
+msgid "qualified type %qT does not match destructor name %<~%T%>"
+msgstr "é™å®šçš„é¡žåž‹ %qT ä¸åŒ¹é…解構函å¼å %<~%T%>"
+
+#: cp/init.c:1406
+#, gcc-internal-format
+msgid "incomplete type %qT does not have member %qD"
+msgstr "ä¸å®Œå…¨é¡žåž‹ %qT 沒有æˆå“¡ %qD"
+
+#: cp/init.c:1425
+#, gcc-internal-format
+msgid "%qD is not a member of type %qT"
+msgstr "%qD ä¸æ˜¯é¡žåž‹ %qT çš„æˆå“¡"
+
+#: cp/init.c:1444
+#, gcc-internal-format
+msgid "invalid pointer to bit-field %qD"
+msgstr "åƒç…§ä½å…ƒæ®µ %qD 指標無效"
+
+#: cp/init.c:1546
+#, gcc-internal-format
+msgid "invalid use of non-static member function %qD"
+msgstr "å°éžéœæ…‹æˆå“¡å‡½å¼ %qD 的使用無效"
+
+#: cp/init.c:1552
+#, gcc-internal-format
+msgid "invalid use of non-static data member %qD"
+msgstr "å°éžéœæ…‹è³‡æ–™æˆå“¡ %qD 的無效使用"
+
+#: cp/init.c:1687
+#, gcc-internal-format
+msgid "size in array new must have integral type"
+msgstr "陣列 new 的大å°å¿…須有整數類型"
+
+#: cp/init.c:1690
+#, gcc-internal-format
+msgid "zero size array reserves no space"
+msgstr "未為大å°ç‚º 0 的陣列ä¿ç•™ç©ºé–“"
+
+#: cp/init.c:1698
+#, gcc-internal-format
+msgid "new cannot be applied to a reference type"
+msgstr "new ä¸èƒ½ç”¨æ–¼åƒç…§é¡žåž‹"
+
+#: cp/init.c:1704
+#, gcc-internal-format
+msgid "new cannot be applied to a function type"
+msgstr "new ä¸èƒ½ç”¨æ–¼å‡½å¼é¡žåž‹"
+
+#: cp/init.c:1736
+#, gcc-internal-format
+msgid "call to Java constructor, while %<jclass%> undefined"
+msgstr "å‘¼å« Java 建構å¼ï¼Œä½†æ²’有定義 %<jclass%>"
+
+#: cp/init.c:1752
+#, gcc-internal-format
+msgid "can't find class$"
+msgstr "找ä¸åˆ°é¡žåˆ¥$"
+
+#: cp/init.c:1880
+#, gcc-internal-format
+msgid "invalid type %<void%> for new"
+msgstr "å° new 而言類型 %<void%> 無效"
+
+#: cp/init.c:1890
+#, gcc-internal-format
+msgid "uninitialized const in %<new%> of %q#T"
+msgstr "%<new%> %q#T 時常數未åˆå§‹åŒ–"
+
+#: cp/init.c:1924
+#, gcc-internal-format
+msgid "call to Java constructor with %qs undefined"
+msgstr "å‘¼å« Java 建構å¼ï¼Œä½†æ²’有定義 %qs"
+
+#: cp/init.c:1964
+#, gcc-internal-format
+msgid "no suitable %qD found in class %qT"
+msgstr "找ä¸åˆ°åˆé©çš„ %qD,在類別 %qT 中"
+
+#: cp/init.c:1969
+#, gcc-internal-format
+msgid "request for member %qD is ambiguous"
+msgstr "å°æˆå“¡ %qD 的請求有歧義"
+
+#: cp/init.c:2109
+#, gcc-internal-format
+msgid "ISO C++ forbids initialization in array new"
+msgstr "ISO C++ ä¸å…許在陣列 new 中åˆå§‹åŒ–"
+
+#: cp/init.c:2597
+#, gcc-internal-format
+msgid "initializer ends prematurely"
+msgstr "åˆå§‹å€¼è¨­å®šåœ¨å®Œæˆä¹‹å‰çµæŸ"
+
+#: cp/init.c:2652
+#, gcc-internal-format
+msgid "cannot initialize multi-dimensional array with initializer"
+msgstr "ä¸èƒ½ç”¨åˆå§‹å€¼è¨­å®šé …來åˆå§‹åŒ–多維陣列"
+
+#: cp/init.c:2813
+#, gcc-internal-format
+msgid "possible problem detected in invocation of delete operator:"
+msgstr "åµæ¸¬åˆ°å‘¼å« delete é‹ç®—å­æ™‚å¯èƒ½å‡ºç¾çš„å•é¡Œï¼š"
+
+#: cp/init.c:2816
+#, gcc-internal-format
+msgid "neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined."
+msgstr "解構函å¼å’Œé¡žåˆ¥ç‰¹å®šçš„ delete é‹ç®—å­å‡ä¸æœƒè¢«å‘¼å«ï¼Œå³ä½¿å®ƒå€‘在類別定義時已經宣告。"
+
+#: cp/init.c:2837
+#, gcc-internal-format
+msgid "unknown array size in delete"
+msgstr "delete 時陣列大å°ä¸æ˜Ž"
+
+#: cp/init.c:3070
+#, gcc-internal-format
+msgid "type to vector delete is neither pointer or array type"
+msgstr "å‘é‡ delete 的引數類型既éžæŒ‡æ¨™ä¹Ÿéžé™£åˆ—"
+
+#: cp/lex.c:468
+#, gcc-internal-format
+msgid "junk at end of #pragma %s"
+msgstr "#pragma %s 末尾有無用字元"
+
+#: cp/lex.c:475
+#, gcc-internal-format
+msgid "invalid #pragma %s"
+msgstr "無效的 #pragma %s"
+
+#: cp/lex.c:483
+#, gcc-internal-format
+msgid "#pragma vtable no longer supported"
+msgstr "#pragma vtable ä¸å†å—支æ´"
+
+#: cp/lex.c:562
+#, gcc-internal-format
+msgid "#pragma implementation for %qs appears after file is included"
+msgstr "檔案在 %qs çš„ #pragma implementation 出ç¾å‰å·²è¢«åŒ…å«"
+
+#: cp/lex.c:587
+#, gcc-internal-format
+msgid "junk at end of #pragma GCC java_exceptions"
+msgstr "#pragma GCC java_exceptions 末尾有無用字元"
+
+#: cp/lex.c:601
+#, gcc-internal-format
+msgid "%qD not defined"
+msgstr "%qD 未定義"
+
+#: cp/lex.c:605
+#, gcc-internal-format
+msgid "%qD was not declared in this scope"
+msgstr "%qD 在此作用欄ä½ä¸­å°šæœªå®£å‘Š"
+
+#. 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:642
+#, gcc-internal-format
+msgid "there are no arguments to %qD that depend on a template parameter, so a declaration of %qD must be available"
+msgstr "%qD 的引數ä¸ä¾è³´ç¯„本åƒæ•¸ï¼Œæ‰€ä»¥ %qD 的宣告必須å¯ç”¨"
+
+#: cp/lex.c:651
+#, gcc-internal-format
+msgid "(if you use %<-fpermissive%>, G++ will accept your code, but allowing the use of an undeclared name is deprecated)"
+msgstr "(如果您使用 %<-fpermissive%>,G++ 會接å—您的程å¼ç¢¼ï¼Œä½†æ˜¯å…許使用未定義的å稱是éŽæ™‚的風格)"
+
+#: cp/mangle.c:2139
+#, gcc-internal-format
+msgid "call_expr cannot be mangled due to a defect in the C++ ABI"
+msgstr "由於 C++ ABI 的缺陷,call_expr ä¸èƒ½è¢«ä¿®é£¾"
+
+#: cp/mangle.c:2147
+#, gcc-internal-format
+msgid "zero-operand casts cannot be mangled due to a defect in the C++ ABI"
+msgstr "由於 C++ ABI 的缺陷,零é‹ç®—元的轉æ›ä¸èƒ½è¢«ä¿®é£¾"
+
+#: cp/mangle.c:2197
+#, gcc-internal-format
+msgid "omitted middle operand to %<?:%> operand cannot be mangled"
+msgstr "çœç•¥çš„ %<?:%> 中é‹ç®—å…ƒä¸èƒ½è¢«ä¿®é£¾"
+
+#: cp/mangle.c:2507
+#, gcc-internal-format
+msgid "the mangled name of %qD will change in a future version of GCC"
+msgstr "%qD 修飾後的å稱將在 GCC 的未來版本中有變化"
+
+#: cp/method.c:457
+#, gcc-internal-format
+msgid "generic thunk code fails for method %q#D which uses %<...%>"
+msgstr "通用的轉æ›å±¤ç¨‹å¼ç¢¼(thunk)å°ä½¿ç”¨äº† %<...%> 的方法 %q#D 失效"
+
+#: cp/method.c:693
+#, gcc-internal-format
+msgid "non-static const member %q#D, can't use default assignment operator"
+msgstr "éžéœæ…‹çš„常數æˆå“¡ %q#D,ä¸èƒ½ä½¿ç”¨é è¨­çš„賦值é‹ç®—å­"
+
+#: cp/method.c:699
+#, gcc-internal-format
+msgid "non-static reference member %q#D, can't use default assignment operator"
+msgstr "éžéœæ…‹çš„åƒç…§æˆå“¡ %q#D,ä¸èƒ½ä½¿ç”¨é è¨­çš„賦值é‹ç®—å­"
+
+#: cp/method.c:811
+#, gcc-internal-format
+msgid "%Hsynthesized method %qD first required here "
+msgstr "%H在這裡第一次需è¦ç”¢ç”Ÿçš„方法 %qD"
+
+#: cp/method.c:1140
+#, gcc-internal-format
+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 "由於隱å«çš„虛解構函å¼ï¼Œé¡žåˆ¥ %qT çš„ vtable 版é¢è¨­ç½®å¯èƒ½èˆ‡ ABI ä¸ç›¸å®¹ï¼Œä¸¦ä¸”å¯èƒ½åœ¨ GCC 的未來版本中變更"
+
+#: cp/name-lookup.c:697
+#, gcc-internal-format
+msgid "redeclaration of %<wchar_t%> as %qT"
+msgstr "%<wchar_t%> é‡å®£å‘Šç‚º %qT"
+
+#. 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:727
+#, gcc-internal-format
+msgid "invalid redeclaration of %q+D"
+msgstr "å° %q+#D 無效的é‡å®£å‘Š"
+
+#: cp/name-lookup.c:728
+#, gcc-internal-format
+msgid "as %qD"
+msgstr "åšç‚º %qD"
+
+#: cp/name-lookup.c:816
+#, gcc-internal-format
+msgid "type mismatch with previous external decl of %q#D"
+msgstr "類型與先å‰çš„ %q#D 的外部宣告ä¸åŒ¹é…"
+
+#: cp/name-lookup.c:817
+#, gcc-internal-format
+msgid "previous external decl of %q+#D"
+msgstr "å…ˆå‰ %q+#D 的外部宣告"
+
+#: cp/name-lookup.c:908
+#, gcc-internal-format
+msgid "extern declaration of %q#D doesn't match"
+msgstr "%q#D 的外部宣告ä¸åŒ¹é…"
+
+#: cp/name-lookup.c:909
+#, gcc-internal-format
+msgid "global declaration %q+#D"
+msgstr "全域宣告 %q+#D"
+
+#: cp/name-lookup.c:946 cp/name-lookup.c:953
+#, gcc-internal-format
+msgid "declaration of %q#D shadows a parameter"
+msgstr "%q#D 的宣告隱è—了一個åƒæ•¸"
+
+#. Location of previous decl is not useful in this case.
+#: cp/name-lookup.c:978
+#, gcc-internal-format
+msgid "declaration of %qD shadows a member of 'this'"
+msgstr "%qD 的宣告隱è—了「thisã€çš„一個æˆå“¡"
+
+#: cp/name-lookup.c:984
+#, gcc-internal-format
+msgid "declaration of %qD shadows a previous local"
+msgstr "%qD 的宣告隱è—了先å‰çš„一個局部變數"
+
+#: cp/name-lookup.c:991
+#, gcc-internal-format
+msgid "declaration of %qD shadows a global declaration"
+msgstr "%qD 的宣告隱è—了一個全域宣告"
+
+#: cp/name-lookup.c:1114
+#, gcc-internal-format
+msgid "name lookup of %qD changed"
+msgstr "%qD çš„å稱查閱已變更"
+
+#: cp/name-lookup.c:1115
+#, gcc-internal-format
+msgid " matches this %q+D under ISO standard rules"
+msgstr " 在 ISO 標準è¦å‰‡ä¸‹åŒ¹é…æ­¤ %q+D"
+
+#: cp/name-lookup.c:1117
+#, gcc-internal-format
+msgid " matches this %q+D under old rules"
+msgstr " 在舊è¦å‰‡ä¸‹åŒ¹é…æ­¤ %q+D"
+
+#: cp/name-lookup.c:1135 cp/name-lookup.c:1143
+#, gcc-internal-format
+msgid "name lookup of %qD changed for new ISO %<for%> scoping"
+msgstr "在新的 ISO %<for%> 作用欄ä½ä¸­ï¼Œ%qD çš„å稱æœå°‹æœ‰è®ŠåŒ–"
+
+#: cp/name-lookup.c:1137
+#, gcc-internal-format
+msgid " cannot use obsolete binding at %q+D because it has a destructor"
+msgstr " ä¸èƒ½åœ¨ %q+D 使用éŽæ™‚的繫çµï¼Œå› ç‚ºå®ƒæœ‰è§£æ§‹å‡½å¼"
+
+#: cp/name-lookup.c:1145
+#, gcc-internal-format
+msgid " using obsolete binding at %q+D"
+msgstr " 在 %q+D 使用éŽæ™‚的繫çµ"
+
+#: cp/name-lookup.c:1198
+#, gcc-internal-format
+msgid "%s %s(%E) %p %d\n"
+msgstr "%s %s(%E) %p %d\n"
+
+#: cp/name-lookup.c:1201
+#, gcc-internal-format
+msgid "%s %s %p %d\n"
+msgstr "%s %s %p %d\n"
+
+#: cp/name-lookup.c:1327
+#, gcc-internal-format
+msgid "XXX is_class_level != (current_scope == class_scope)\n"
+msgstr "XXX is_class_level != (current_scope == class_scope)\n"
+
+#: cp/name-lookup.c:1885
+#, gcc-internal-format
+msgid "%q#D hides constructor for %q#T"
+msgstr "%q#D éš±è—了 %q#T 的建構å¼"
+
+#: cp/name-lookup.c:1901
+#, gcc-internal-format
+msgid "%q#D conflicts with previous using declaration %q#D"
+msgstr "%q#D 與先å‰çš„ using 宣告 %q#D è¡çª"
+
+#: cp/name-lookup.c:1921
+#, gcc-internal-format
+msgid "previous non-function declaration %q+#D"
+msgstr "å…ˆå‰å°æ–¼ %q+#D çš„éžå‡½å¼å®£å‘Š"
+
+#: cp/name-lookup.c:1922
+#, gcc-internal-format
+msgid "conflicts with function declaration %q#D"
+msgstr "與函å¼å®£å‘Š %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:2000 cp/name-lookup.c:2025
+#, gcc-internal-format
+msgid "%qT is not a namespace"
+msgstr "%qT ä¸æ˜¯ä¸€å€‹å‘½å空間"
+
+#. 7.3.3/5
+#. A using-declaration shall not name a template-id.
+#: cp/name-lookup.c:2010
+#, gcc-internal-format
+msgid "a using-declaration cannot specify a template-id. Try %<using %D%>"
+msgstr "using 宣告ä¸èƒ½æŒ‡å®šä¸€å€‹ç¯„本識別碼。請嘗試 %<using %D%>"
+
+#: cp/name-lookup.c:2017
+#, gcc-internal-format
+msgid "namespace %qD not allowed in using-declaration"
+msgstr "ä¸å…許在 using 宣告中使用命å空間 %qD"
+
+#: cp/name-lookup.c:2053
+#, gcc-internal-format
+msgid "%qD not declared"
+msgstr "%qD 未宣告"
+
+#: cp/name-lookup.c:2074 cp/name-lookup.c:2111 cp/name-lookup.c:2145
+#, gcc-internal-format
+msgid "%qD is already declared in this scope"
+msgstr "%qD 已在此作用欄ä½ä¸­å®£å‘ŠéŽ"
+
+#: cp/name-lookup.c:2151
+#, gcc-internal-format
+msgid "using declaration %qD introduced ambiguous type %qT"
+msgstr "using 宣告 %qD 引入了一個有歧義的類型 %qT"
+
+#: cp/name-lookup.c:2743
+#, gcc-internal-format
+msgid "using-declaration for non-member at class scope"
+msgstr "在類別作用欄ä½ä½¿ç”¨éžæˆå“¡çš„ using 宣告"
+
+#: cp/name-lookup.c:2750
+#, gcc-internal-format
+msgid "%<%T::%D%> names destructor"
+msgstr "%<%T::%D%> 指定了解構函å¼"
+
+#: cp/name-lookup.c:2755
+#, gcc-internal-format
+msgid "%<%T::%D%> names constructor"
+msgstr "%<%T::%D%> 指定了建構å¼"
+
+#: cp/name-lookup.c:2760
+#, gcc-internal-format
+msgid "%<%T::%D%> names constructor in %qT"
+msgstr "%<%T::%D%> 在 %qT 內指定了建構å¼"
+
+#: cp/name-lookup.c:2809
+#, gcc-internal-format
+msgid "no members matching %<%T::%D%> in %q#T"
+msgstr "沒有與 %<%T::%D%> 匹é…çš„æˆå“¡ï¼Œåœ¨ %q#T 中"
+
+#: cp/name-lookup.c:2877
+#, gcc-internal-format
+msgid "declaration of %qD not in a namespace surrounding %qD"
+msgstr "%qD 的宣告ä¸åœ¨åŒ…å« %qD 的命å空間中"
+
+#: cp/name-lookup.c:2885
+#, gcc-internal-format
+msgid "explicit qualification in declaration of %qD"
+msgstr "%qD 的宣告中有明確的é™å®š"
+
+#: cp/name-lookup.c:2925
+#, gcc-internal-format
+msgid "%qD should have been declared inside %qD"
+msgstr "%qD 應當已在 %qD 內部宣告éŽ"
+
+#: cp/name-lookup.c:2987
+#, gcc-internal-format
+msgid "namespace alias %qD not allowed here, assuming %qD"
+msgstr "這裡ä¸å…許命å空間別å %qD,å‡å®šç‚º %qD"
+
+#: cp/name-lookup.c:3294
+#, gcc-internal-format
+msgid "strong using only meaningful at namespace scope"
+msgstr "å¼· using åªåœ¨å‘½å空間作用欄ä½æœ‰æ„義"
+
+#: cp/name-lookup.c:3301
+#, gcc-internal-format
+msgid "%qD attribute directive ignored"
+msgstr "指定 %qD 屬性被忽略"
+
+#: cp/name-lookup.c:3451
+#, gcc-internal-format
+msgid "%qD denotes an ambiguous type"
+msgstr "%qD 表示一個有歧義的類型"
+
+#: cp/name-lookup.c:3452
+#, gcc-internal-format
+msgid "%J first type here"
+msgstr "%J 第一個類型在這裡"
+
+#: cp/name-lookup.c:3453
+#, gcc-internal-format
+msgid "%J other type here"
+msgstr "%J 其它類型在這裡"
+
+#. This happens for A::B where B is a template, and there are no
+#. template arguments.
+#: cp/name-lookup.c:3563 cp/parser.c:4495 cp/typeck.c:1807
+#, gcc-internal-format
+msgid "invalid use of %qD"
+msgstr "錯誤地使用了 %qD"
+
+#: cp/name-lookup.c:3603
+#, gcc-internal-format
+msgid "%<%D::%D%> is not a template"
+msgstr "%<%D::%D%> ä¸æ˜¯ä¸€å€‹ç¯„本"
+
+#: cp/name-lookup.c:3618
+#, gcc-internal-format
+msgid "%qD undeclared in namespace %qD"
+msgstr "%qD 未宣告於命å空間 %qD 中"
+
+#: cp/name-lookup.c:4255
+#, gcc-internal-format
+msgid "%q+D is not a function,"
+msgstr "%q+D ä¸æ˜¯ä¸€å€‹å‡½å¼ï¼Œ"
+
+#: cp/name-lookup.c:4256
+#, gcc-internal-format
+msgid " conflict with %q+D"
+msgstr " 與 %q+D è¡çª"
+
+#: cp/name-lookup.c:5090
+#, gcc-internal-format
+msgid "XXX entering pop_everything ()\n"
+msgstr "XXX 進入 pop_everything ()\n"
+
+#: cp/name-lookup.c:5099
+#, gcc-internal-format
+msgid "XXX leaving pop_everything ()\n"
+msgstr "XXX 離開 pop_everything ()\n"
+
+#: cp/parser.c:1873
+#, gcc-internal-format
+msgid "minimum/maximum operators are deprecated"
+msgstr "minimum/maximum é‹ç®—å­å·²éŽæ™‚"
+
+#: cp/parser.c:1893
+#, gcc-internal-format
+msgid "%<#pragma%> is not allowed here"
+msgstr "在這裡ä¸å…許使用 %<#pragma%>"
+
+#: cp/parser.c:1922
+#, gcc-internal-format
+msgid "%<%D::%D%> has not been declared"
+msgstr "%<%D::%D%> 尚未宣告"
+
+#: cp/parser.c:1925 cp/semantics.c:2396
+#, gcc-internal-format
+msgid "%<::%D%> has not been declared"
+msgstr "%<::%D%> 尚未宣告"
+
+#: cp/parser.c:1928
+#, gcc-internal-format
+msgid "request for member %qD in non-class type %qT"
+msgstr "請求æˆå“¡ %qD,在éžé¡žåˆ¥é¡žåž‹ %qT 中"
+
+#: cp/parser.c:1931
+#, gcc-internal-format
+msgid "%<%T::%D%> has not been declared"
+msgstr "%<%T::%D%> 尚未宣告"
+
+#: cp/parser.c:1934
+#, gcc-internal-format
+msgid "%qD has not been declared"
+msgstr "%qD 未宣告"
+
+#: cp/parser.c:1937
+#, gcc-internal-format
+msgid "%<%D::%D%> %s"
+msgstr "%<%D::%D%> %s"
+
+#: cp/parser.c:1939
+#, gcc-internal-format
+msgid "%<::%D%> %s"
+msgstr "%<::%D%> %s"
+
+#: cp/parser.c:1941
+#, gcc-internal-format
+msgid "%qD %s"
+msgstr "%qD %s"
+
+#: cp/parser.c:1993
+#, gcc-internal-format
+msgid "new types may not be defined in a return type"
+msgstr "ä¸èƒ½åœ¨å›žå‚³é¡žåž‹ä¸­å®šç¾©æ–°é¡žåž‹"
+
+#: cp/parser.c:1994
+#, gcc-internal-format
+msgid "(perhaps a semicolon is missing after the definition of %qT)"
+msgstr "(%qT 的定義末尾å¯èƒ½ç¼ºå°‘一個分號)"
+
+#: cp/parser.c:2013 cp/parser.c:3696 cp/pt.c:4400
+#, gcc-internal-format
+msgid "%qT is not a template"
+msgstr "%qT ä¸æ˜¯ä¸€å€‹ç¯„本"
+
+#: cp/parser.c:2015
+#, gcc-internal-format
+msgid "%qE is not a template"
+msgstr "%qE ä¸æ˜¯ä¸€å€‹ç¯„本"
+
+#: cp/parser.c:2017
+#, gcc-internal-format
+msgid "invalid template-id"
+msgstr "無效的範本 ID"
+
+#: cp/parser.c:2046
+#, gcc-internal-format
+msgid "%s cannot appear in a constant-expression"
+msgstr "%s ä¸èƒ½å‡ºç¾åœ¨å¸¸æ•¸é‹ç®—å¼ä¸­"
+
+#: cp/parser.c:2071
+#, gcc-internal-format
+msgid "invalid use of template-name %qE without an argument list"
+msgstr "使用範本å %qE 時ä¸å¸¶å¼•æ•¸è¡¨ç„¡æ•ˆ"
+
+#. Issue an error message.
+#: cp/parser.c:2076
+#, gcc-internal-format
+msgid "%qE does not name a type"
+msgstr "%qE 沒有命å一個類型"
+
+#: cp/parser.c:2108
+#, gcc-internal-format
+msgid "(perhaps %<typename %T::%E%> was intended)"
+msgstr "(也許您本æ„是想用 %<typename %T::%E%>)"
+
+#: cp/parser.c:2123
+#, gcc-internal-format
+msgid "%qE in namespace %qE does not name a type"
+msgstr "%qE 在命å空間 %qE 中沒有命å一個類型"
+
+#: cp/parser.c:2126
+#, gcc-internal-format
+msgid "%qE in class %qT does not name a type"
+msgstr "%qE 在類別 %qT 中沒有命å一個類型"
+
+#: cp/parser.c:2846
+#, gcc-internal-format
+msgid "ISO C++ forbids braced-groups within expressions"
+msgstr "ISO C++ ä¸å…許在é‹ç®—å¼ä¸­ä½¿ç”¨å¤§æ‹¬è™Ÿçµ„"
+
+#: cp/parser.c:2855
+#, gcc-internal-format
+msgid "statement-expressions are allowed only inside functions"
+msgstr "敘述é‹ç®—å¼åªèƒ½ç”¨æ–¼å‡½å¼å…§"
+
+#: cp/parser.c:2906
+#, gcc-internal-format
+msgid "%<this%> may not be used in this context"
+msgstr "%<this%> ä¸èƒ½ç”¨åœ¨æ­¤ä¸Šä¸‹æ–‡ä¸­"
+
+#: cp/parser.c:3057
+#, gcc-internal-format
+msgid "local variable %qD may not appear in this context"
+msgstr "局部變數 %qD ä¸æ‡‰å‡ºç¾åœ¨æ­¤ä¸Šä¸‹æ–‡ä¸­"
+
+#: cp/parser.c:3433
+#, gcc-internal-format
+msgid "declaration of %<~%T%> as member of %qT"
+msgstr "%<~%T%> 宣告為 %qT 的一個æˆå“¡"
+
+#: cp/parser.c:3446
+#, gcc-internal-format
+msgid "typedef-name %qD used as destructor declarator"
+msgstr "typedef å %qD 用於解構函å¼å®£å‘Š"
+
+#: cp/parser.c:3655 cp/parser.c:12662 cp/parser.c:14789
+#, gcc-internal-format
+msgid "reference to %qD is ambiguous"
+msgstr "å° %qD çš„åƒç…§æœ‰æ­§ç¾©"
+
+#: cp/parser.c:3697 cp/typeck.c:1878 cp/typeck.c:1898
+#, gcc-internal-format
+msgid "%qD is not a template"
+msgstr "%qD ä¸æ˜¯ä¸€å€‹ç¯„本"
+
+#: cp/parser.c:4088
+#, gcc-internal-format
+msgid "ISO C++ forbids compound-literals"
+msgstr "ISO C++ ä¸å…許複åˆå­—é¢å€¼"
+
+#: cp/parser.c:4420
+#, gcc-internal-format
+msgid "%qE does not have class type"
+msgstr "%qE ä¸æ˜¯ä¸€å€‹é¡žåˆ¥"
+
+#: cp/parser.c:5019
+#, gcc-internal-format
+msgid "array bound forbidden after parenthesized type-id"
+msgstr "括起的類型識別碼後é¢ä¸èƒ½å‡ºç¾é™£åˆ—é‚Šç•Œ"
+
+#: cp/parser.c:5020
+#, gcc-internal-format
+msgid "try removing the parentheses around the type-id"
+msgstr "請嘗試刪除類型識別碼兩邊的括號"
+
+#: cp/parser.c:5222
+#, gcc-internal-format
+msgid "expression in new-declarator must have integral or enumeration type"
+msgstr "new 宣告中的é‹ç®—å¼å¿…須具有整數或列舉類型"
+
+#: cp/parser.c:5411
+#, gcc-internal-format
+msgid "use of old-style cast"
+msgstr "使用舊å¼çš„類型轉æ›"
+
+#: cp/parser.c:6195
+#, gcc-internal-format
+msgid "case label %qE not within a switch statement"
+msgstr "case 標籤 %qE 未出ç¾åœ¨ switch 敘述中"
+
+#: cp/parser.c:6744
+#, gcc-internal-format
+msgid "ISO C++ forbids computed gotos"
+msgstr "ISO C++ ä¸å…許執行時å¯çŸ¥çš„ goto 目的"
+
+#: cp/parser.c:6869
+#, gcc-internal-format
+msgid "extra %<;%>"
+msgstr "多餘的 %<;%>"
+
+#: cp/parser.c:7202
+#, gcc-internal-format
+msgid "mixing declarations and function-definitions is forbidden"
+msgstr "ä¸èƒ½æ··åˆå®£å‘Šå’Œå‡½å¼å®šç¾©"
+
+#: cp/parser.c:7511
+#, gcc-internal-format
+msgid "ISO C++ does not support %<long long%>"
+msgstr "ISO C++ ä¸æ”¯æ´ %<long long%>"
+
+#: cp/parser.c:7531
+#, gcc-internal-format
+msgid "duplicate %qs"
+msgstr "é‡è¤‡çš„ %qs"
+
+#: cp/parser.c:7538
+#, gcc-internal-format
+msgid "class definition may not be declared a friend"
+msgstr "類別定義ä¸èƒ½è¢«å®£å‘Šç‚ºå¤¥ä¼´"
+
+#: cp/parser.c:7852
+#, gcc-internal-format
+msgid "only constructors take base initializers"
+msgstr "åªæœ‰å»ºæ§‹å¼æ‰èƒ½æœ‰åŸºç¤Žé¡žåˆ¥åˆå§‹å€¼è¨­å®š"
+
+#: cp/parser.c:7904
+#, gcc-internal-format
+msgid "anachronistic old-style base class initializer"
+msgstr "年代錯誤的舊å¼åŸºç¤Žé¡žåˆ¥åˆå§‹å€¼è¨­å®š"
+
+#: cp/parser.c:7948
+#, gcc-internal-format
+msgid "keyword %<typename%> not allowed in this context (a qualified member initializer is implicitly a type)"
+msgstr "é—œéµå­— %<typename%> ä¸å…許用在此上下文中(é™å®šçš„åˆå§‹å€¼è¨­å®šéš±å«åœ°æ˜¯ä¸€å€‹é¡žåž‹)"
+
+#. Warn that we do not support `export'.
+#: cp/parser.c:8314
+#, gcc-internal-format
+msgid "keyword %<export%> not implemented, and will be ignored"
+msgstr "é—œéµå­— %<export%> 未實作,將被忽略"
+
+#. Otherwise, emit an error about the invalid digraph, but continue
+#. parsing because we got our argument list.
+#: cp/parser.c:8687
+#, gcc-internal-format
+msgid "%<<::%> cannot begin a template-argument list"
+msgstr "ä¸èƒ½ä»¥ %<<::%> 開始一個範本引數清單"
+
+#: cp/parser.c:8688
+#, gcc-internal-format
+msgid "%<<:%> is an alternate spelling for %<[%>. Insert whitespace between %<<%> and %<::%>"
+msgstr "%<<:%> 是 %<[%> çš„å¦ä¸€ç¨®æ‹¼æ³•ã€‚請在 %<<%> å’Œ %<::%> 間加上空格"
+
+#: cp/parser.c:8695
+#, gcc-internal-format
+msgid "(if you use -fpermissive G++ will accept your code)"
+msgstr "(如果您使用 -fpermissive G++ 會接å—您的程å¼ç¢¼)"
+
+#: cp/parser.c:8759
+#, gcc-internal-format
+msgid "parse error in template argument list"
+msgstr "範本引數表語法錯誤"
+
+#. Explain what went wrong.
+#: cp/parser.c:8872
+#, gcc-internal-format
+msgid "non-template %qD used as template"
+msgstr "éžç¯„本 %qD åšç‚ºç¯„本"
+
+#: cp/parser.c:8873
+#, gcc-internal-format
+msgid "use %<%T::template %D%> to indicate that it is a template"
+msgstr "使用 %<%T::template %D%> 來表示這是一個範本"
+
+#: cp/parser.c:9386
+#, gcc-internal-format
+msgid "template specialization with C linkage"
+msgstr "特例化範本有 C 連çµ"
+
+#: cp/parser.c:9492 cp/parser.c:15418
+#, gcc-internal-format
+msgid "template declaration of %qs"
+msgstr "%qs 宣告為範本"
+
+#: cp/parser.c:9965
+#, gcc-internal-format
+msgid "using %<typename%> outside of template"
+msgstr "在範本外使用 %<typename%>"
+
+#: cp/parser.c:10162
+#, gcc-internal-format
+msgid "type attributes are honored only at type definition"
+msgstr "類型屬性åªåœ¨é¡žåž‹å®šç¾©æ™‚起作用"
+
+#: cp/parser.c:10364
+#, gcc-internal-format
+msgid "%qD is not a namespace-name"
+msgstr "%qD ä¸æ˜¯ä¸€å€‹å‘½å空間"
+
+#. [namespace.udecl]
+#.
+#. A using declaration shall not name a template-id.
+#: cp/parser.c:10554
+#, gcc-internal-format
+msgid "a template-id may not appear in a using-declaration"
+msgstr "範本識別碼ä¸å…許出ç¾åœ¨ using 宣告中"
+
+#: cp/parser.c:10884
+#, gcc-internal-format
+msgid "an asm-specification is not allowed on a function-definition"
+msgstr "函å¼å®šç¾©ä¸­ä¸å…è¨±å‡ºç¾ asm 指定"
+
+#: cp/parser.c:10886
+#, gcc-internal-format
+msgid "attributes are not allowed on a function-definition"
+msgstr "函å¼å®šç¾©ä¸­ä¸å…許有屬性"
+
+#: cp/parser.c:11018
+#, gcc-internal-format
+msgid "attributes after parenthesized initializer ignored"
+msgstr "括起的åˆå§‹å€¼è¨­å®šå¾Œå‡ºç¾çš„屬性被忽略"
+
+#: cp/parser.c:11398
+#, gcc-internal-format
+msgid "array bound is not an integer constant"
+msgstr "陣列邊界ä¸æ˜¯ä¸€å€‹æ•´æ•¸å¸¸æ•¸"
+
+#: cp/parser.c:11469
+#, gcc-internal-format
+msgid "%<%T::%D%> is not a type"
+msgstr "%<%T::%D%> ä¸æ˜¯ä¸€å€‹é¡žåž‹"
+
+#: cp/parser.c:11494
+#, gcc-internal-format
+msgid "invalid use of constructor as a template"
+msgstr "將建構å¼åšç‚ºç¯„本用法無效"
+
+#: cp/parser.c:11495
+#, gcc-internal-format
+msgid "use %<%T::%D%> instead of %<%T::%D%> to name the constructor in a qualified name"
+msgstr "使用 %<%T::%D%> 而ä¸æ˜¯ %<%T::%D%> 來以é™å®šå指定建構å¼"
+
+#: cp/parser.c:11723
+#, gcc-internal-format
+msgid "duplicate cv-qualifier"
+msgstr "é‡è¤‡çš„ cv é™å®š"
+
+#: cp/parser.c:12259
+#, gcc-internal-format
+msgid "file ends in default argument"
+msgstr "檔案在é è¨­åƒæ•¸è™•çµæŸ"
+
+#: cp/parser.c:12321
+#, gcc-internal-format
+msgid "deprecated use of default argument for parameter of non-function"
+msgstr "為éžå‡½å¼æŒ‡å®šé è¨­åƒæ•¸çš„用法已éŽæ™‚"
+
+#: cp/parser.c:12324
+#, gcc-internal-format
+msgid "default arguments are only permitted for function parameters"
+msgstr "é è¨­åƒæ•¸åªå…許出ç¾åœ¨å‡½å¼åƒæ•¸ä¸­"
+
+#: cp/parser.c:13084
+#, gcc-internal-format
+msgid "invalid class name in declaration of %qD"
+msgstr "%qD 的宣告中類別å無效"
+
+#: cp/parser.c:13095
+#, gcc-internal-format
+msgid "declaration of %qD in %qD which does not enclose %qD"
+msgstr "%qD 宣告出ç¾åœ¨ %qD 中,而後者並ä¸åŒ…å« %qD"
+
+#: cp/parser.c:13108
+#, gcc-internal-format
+msgid "extra qualification ignored"
+msgstr "忽略é¡å¤–çš„é™å®š"
+
+#: cp/parser.c:13119
+#, gcc-internal-format
+msgid "an explicit specialization must be preceded by %<template <>%>"
+msgstr "明確特例化å‰å¿…須有 %<template <>%>"
+
+#: cp/parser.c:13212
+#, gcc-internal-format
+msgid "previous definition of %q+#T"
+msgstr "%q+#T 的上一個定義"
+
+#: cp/parser.c:13443
+#, gcc-internal-format
+msgid "%Hextra %<;%>"
+msgstr "%H多餘的 %<;%>"
+
+#: cp/parser.c:13461
+#, gcc-internal-format
+msgid "a class-key must be used when declaring a friend"
+msgstr "宣告夥伴時必須使用 class é—œéµå­—"
+
+#: cp/parser.c:13475
+#, gcc-internal-format
+msgid "friend declaration does not name a class or function"
+msgstr "夥伴宣告沒有指定類別或函å¼å"
+
+#: cp/parser.c:13652
+#, gcc-internal-format
+msgid "pure-specifier on function-definition"
+msgstr "函å¼å®šç¾©ä¸Šæœ‰ pure 指定"
+
+#: cp/parser.c:13925
+#, gcc-internal-format
+msgid "keyword %<typename%> not allowed outside of templates"
+msgstr "é—œéµå­— %<typename%> ä¸èƒ½åœ¨ç¯„本以外使用"
+
+#: cp/parser.c:13927
+#, gcc-internal-format
+msgid "keyword %<typename%> not allowed in this context (the base class is implicitly a type)"
+msgstr "é—œéµå­— %<typename%> ä¸å…許用在此上下文中(基礎類別隱å«åœ°æ˜¯ä¸€å€‹é¡žåž‹)"
+
+#: cp/parser.c:14202
+#, gcc-internal-format
+msgid "invalid catch parameter"
+msgstr "無效的 catch åƒæ•¸"
+
+#: cp/parser.c:14958
+#, gcc-internal-format
+msgid "too few template-parameter-lists"
+msgstr "範本åƒæ•¸è¡¨å¤ªå°‘"
+
+#. Otherwise, there are too many template parameter lists. We have
+#. something like:
+#.
+#. template <class T> template <class U> void S::f();
+#: cp/parser.c:14973
+#, gcc-internal-format
+msgid "too many template-parameter-lists"
+msgstr "範本åƒæ•¸è¡¨å¤ªå¤š"
+
+#. Skip the entire function.
+#: cp/parser.c:15197
+#, gcc-internal-format
+msgid "invalid function declaration"
+msgstr "無效的函å¼å®£å‘Š"
+
+#. Issue an error message.
+#: cp/parser.c:15234
+#, gcc-internal-format
+msgid "named return values are no longer supported"
+msgstr "å…·å回傳值ä¸å†è¢«æ”¯æ´"
+
+#: cp/parser.c:15298
+#, gcc-internal-format
+msgid "template with C linkage"
+msgstr "C 連çµçš„範本"
+
+#: cp/parser.c:15631
+#, gcc-internal-format
+msgid "%H%<>>%> should be %<> >%> within a nested template argument list"
+msgstr "%H在巢狀範本引數清單中應當使用 %<> >%> è€Œéž %<>>%>"
+
+#: cp/parser.c:15646
+#, gcc-internal-format
+msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
+msgstr "å¯ç–‘çš„ %<>>%>,使用 %<>%> 來çµæŸç¯„本引數清單"
+
+#: cp/parser.c:16206
+#, gcc-internal-format
+msgid "%qs tag used in naming %q#T"
+msgstr "使用了 %qs 標記,在命å %q#T 時"
+
+#: cp/parser.c:16227
+#, gcc-internal-format
+msgid "%qD redeclared with different access"
+msgstr "%qD é‡å®£å‘Šæ™‚有ä¸åŒçš„å¯å­˜å–性"
+
+#: cp/parser.c:16244
+#, gcc-internal-format
+msgid "%<template%> (as a disambiguator) is only allowed within templates"
+msgstr "åšç‚ºæ¶ˆæ­§ç¾©çš„ %<template%> åªèƒ½ç”¨æ–¼ç¯„本內"
+
+#: cp/parser.c:16481 cp/parser.c:17404 cp/parser.c:17535
+#, gcc-internal-format
+msgid "misplaced %<@%D%> Objective-C++ construct"
+msgstr "ä½ç½®éŒ¯èª¤çš„ %<@%D%> Objective-C++ 建構"
+
+#: cp/parser.c:16622
+#, gcc-internal-format
+msgid "%<@encode%> must specify a type as an argument"
+msgstr "%<@encode%> 必須指定一個類型åšç‚ºå¼•æ•¸"
+
+#: cp/parser.c:16937
+#, gcc-internal-format
+msgid "invalid Objective-C++ selector name"
+msgstr "無效的 Objective-C++ é¸æ“‡å­å"
+
+#: cp/parser.c:17268
+#, gcc-internal-format
+msgid "identifier expected after %<@protocol%>"
+msgstr "%<@protocol%> 需è¦è­˜åˆ¥ç¢¼"
+
+#: cp/parser.c:17558
+#, gcc-internal-format
+msgid "inter-module optimizations not implemented for C++"
+msgstr "模組間最佳化æ·æœªç‚º C++ 實作"
+
+#: cp/pt.c:239
+#, gcc-internal-format
+msgid "data member %qD cannot be a member template"
+msgstr "資料æˆå“¡ %qD ä¸èƒ½æ˜¯æˆå“¡ç¯„本"
+
+#: cp/pt.c:251
+#, gcc-internal-format
+msgid "invalid member template declaration %qD"
+msgstr "無效的æˆå“¡ç¯„本宣告 %qD"
+
+#: cp/pt.c:573
+#, gcc-internal-format
+msgid "explicit specialization in non-namespace scope %qD"
+msgstr "明確特例化出ç¾åœ¨éžå‘½åç©ºé–“ä½œç”¨æ¬„ä½ %qD 中"
+
+#: cp/pt.c:584
+#, gcc-internal-format
+msgid "enclosing class templates are not explicitly specialized"
+msgstr "所包å«çš„類別範本並未被明確特例化"
+
+#: cp/pt.c:668
+#, gcc-internal-format
+msgid "specialization of %qD in different namespace"
+msgstr "在ä¸åŒå‘½åç©ºé–“å…§å° %qD 的特例化"
+
+#: cp/pt.c:669 cp/pt.c:759
+#, gcc-internal-format
+msgid " from definition of %q+#D"
+msgstr " 從 %q+#D 的定義"
+
+#: cp/pt.c:686
+#, gcc-internal-format
+msgid "explicit instantiation of %qD in namespace %qD (which does not enclose namespace %qD)"
+msgstr "%qD 的明確實體化出ç¾åœ¨å‘½å空間 %qD 中,而後者並ä¸åŒ…å«å‘½å空間 %qD"
+
+#: cp/pt.c:726
+#, gcc-internal-format
+msgid "specialization of %qT after instantiation"
+msgstr "%qT 的實體化在特例化之後"
+
+#: cp/pt.c:758
+#, gcc-internal-format
+msgid "specializing %q#T in different namespace"
+msgstr "在ä¸åŒå‘½å空間中特例化 %q#T"
+
+#: cp/pt.c:773
+#, gcc-internal-format
+msgid "specialization %qT after instantiation %qT"
+msgstr "%qT 的實體化在 %qT 的特例化之後"
+
+#: cp/pt.c:785
+#, gcc-internal-format
+msgid "explicit specialization of non-template %qT"
+msgstr "明確特例化éžç¯„本 %qT"
+
+#: cp/pt.c:1179
+#, gcc-internal-format
+msgid "specialization of %qD after instantiation"
+msgstr "%qD 的特例化在實體化之後"
+
+#: cp/pt.c:1383
+#, gcc-internal-format
+msgid "%qD is not a function template"
+msgstr "%qD ä¸æ˜¯ä¸€å€‹å‡½å¼ç¯„本"
+
+#: cp/pt.c:1577
+#, gcc-internal-format
+msgid "template-id %qD for %q+D does not match any template declaration"
+msgstr "範本識別碼 %qD(屬於 %q+D)ä¸åŒ¹é…任何範本宣告"
+
+#: cp/pt.c:1585
+#, gcc-internal-format
+msgid "ambiguous template specialization %qD for %q+D"
+msgstr "有歧義的範本特例化 %qD (為 %q+D)"
+
+#. This case handles bogus declarations like template <>
+#. template <class T> void f<int>();
+#: cp/pt.c:1816 cp/pt.c:1870
+#, gcc-internal-format
+msgid "template-id %qD in declaration of primary template"
+msgstr "範本識別碼 %qD 出ç¾åœ¨åŸºæœ¬ç¯„本的宣告中"
+
+#: cp/pt.c:1829
+#, gcc-internal-format
+msgid "template parameter list used in explicit instantiation"
+msgstr "明確åˆå§‹åŒ–中出ç¾äº†ç¯„本åƒæ•¸æ¸…å–®"
+
+#: cp/pt.c:1835
+#, gcc-internal-format
+msgid "definition provided for explicit instantiation"
+msgstr "為明確實體化æ供的定義"
+
+#: cp/pt.c:1843
+#, gcc-internal-format
+msgid "too many template parameter lists in declaration of %qD"
+msgstr "%qD 宣告時範本åƒæ•¸è¡¨å¤ªå¤š"
+
+#: cp/pt.c:1846
+#, gcc-internal-format
+msgid "too few template parameter lists in declaration of %qD"
+msgstr "%qD 宣告時範本åƒæ•¸è¡¨å¤ªå°‘"
+
+#: cp/pt.c:1848
+#, gcc-internal-format
+msgid "explicit specialization of %qD must be introduced by %<template <>%>"
+msgstr "%qD 的明確特例化必須由 %<template <>%> 引入"
+
+#: cp/pt.c:1867
+#, gcc-internal-format
+msgid "function template partial specialization %qD is not allowed"
+msgstr "函å¼ç¯„本部分特例化 %qD 是ä¸å…許的"
+
+#: cp/pt.c:1899
+#, gcc-internal-format
+msgid "default argument specified in explicit specialization"
+msgstr "明確特例化時指定了é è¨­åƒæ•¸"
+
+#: cp/pt.c:1928
+#, gcc-internal-format
+msgid "%qD is not a template function"
+msgstr "%qD ä¸æ˜¯ä¸€å€‹ç¯„本函å¼"
+
+#. 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:1990
+#, gcc-internal-format
+msgid "specialization of implicitly-declared special member function"
+msgstr "特例化了隱å«å®£å‘Šçš„特殊æˆå“¡å‡½å¼"
+
+#: cp/pt.c:2034
+#, gcc-internal-format
+msgid "no member function %qD declared in %qT"
+msgstr "æˆå“¡å‡½å¼ %qD 未在 %qT 中宣告"
+
+#: cp/pt.c:2258
+#, gcc-internal-format
+msgid "declaration of %q+#D"
+msgstr "%q+#D 的宣告"
+
+#: cp/pt.c:2259
+#, gcc-internal-format
+msgid " shadows template parm %q+#D"
+msgstr " éš±è—了模版åƒæ•¸ %q+#D"
+
+#: cp/pt.c:2662
+#, gcc-internal-format
+msgid "template parameters not used in partial specialization:"
+msgstr "部分特例化中未用到範本åƒæ•¸ï¼š"
+
+#: cp/pt.c:2666
+#, gcc-internal-format
+msgid " %qD"
+msgstr " %qD"
+
+#: cp/pt.c:2677
+#, gcc-internal-format
+msgid "partial specialization %qT does not specialize any template arguments"
+msgstr "部分特例化 %qT 並未特例化任何範本åƒæ•¸"
+
+#: cp/pt.c:2702
+#, gcc-internal-format
+msgid "template argument %qE involves template parameter(s)"
+msgstr "範本引數 %qE 混雜了範本åƒæ•¸"
+
+#: cp/pt.c:2746
+#, gcc-internal-format
+msgid "type %qT of template argument %qE depends on template parameter(s)"
+msgstr "é¡žåž‹ %qT(屬於範本引數 %qE)å–決於範本åƒæ•¸"
+
+#: cp/pt.c:2833
+#, gcc-internal-format
+msgid "no default argument for %qD"
+msgstr "%qD 沒有é è¨­åƒæ•¸"
+
+#: cp/pt.c:2992
+#, gcc-internal-format
+msgid "template class without a name"
+msgstr "範本類別沒具åå­—"
+
+#. [temp.mem]
+#.
+#. A destructor shall not be a member template.
+#: cp/pt.c:3000
+#, gcc-internal-format
+msgid "destructor %qD declared as member template"
+msgstr "è§£æ§‹å‡½å¼ %qD 被宣告為一個æˆå“¡ç¯„本"
+
+#. [basic.stc.dynamic.allocation]
+#.
+#. An allocation function can be a function
+#. template. ... Template allocation functions shall
+#. have two or more parameters.
+#: cp/pt.c:3015
+#, gcc-internal-format
+msgid "invalid template declaration of %qD"
+msgstr "%qD 範本宣告無效"
+
+#: cp/pt.c:3095
+#, gcc-internal-format
+msgid "%qD does not declare a template type"
+msgstr "%qD 沒有宣告一個範本類型"
+
+#: cp/pt.c:3101
+#, gcc-internal-format
+msgid "template definition of non-template %q#D"
+msgstr "å°éžç¯„本 %q#D 的範本定義"
+
+#: cp/pt.c:3144
+#, gcc-internal-format
+msgid "expected %d levels of template parms for %q#D, got %d"
+msgstr "éœ€è¦ %d ç´šçš„ %q#D 範本åƒæ•¸ï¼Œå»çµ¦å‡ºäº† %d ç´š"
+
+#: cp/pt.c:3156
+#, gcc-internal-format
+msgid "got %d template parameters for %q#D"
+msgstr "得到 %d 個範本åƒæ•¸ï¼Œç‚º %q#D"
+
+#: cp/pt.c:3159
+#, gcc-internal-format
+msgid "got %d template parameters for %q#T"
+msgstr "得到 %d 個範本åƒæ•¸ï¼Œç‚º %q#T"
+
+#: cp/pt.c:3161
+#, gcc-internal-format
+msgid " but %d required"
+msgstr " ä½†å¯¦éš›éœ€è¦ %d 個"
+
+#: cp/pt.c:3258
+#, gcc-internal-format
+msgid "%qT is not a template type"
+msgstr "%qT ä¸æ˜¯ä¸€å€‹ç¯„本類型"
+
+#: cp/pt.c:3271
+#, gcc-internal-format
+msgid "template specifiers not specified in declaration of %qD"
+msgstr "%qD 的宣告中沒有 template é™å®š"
+
+#: cp/pt.c:3281
+#, gcc-internal-format
+msgid "previous declaration %q+D"
+msgstr "å…ˆå‰çš„宣告 %q+D"
+
+#: cp/pt.c:3282
+#, gcc-internal-format
+msgid "used %d template parameter(s) instead of %d"
+msgstr "使用了 %d 個範本åƒæ•¸ï¼Œè€Œä¸æ˜¯ %d 個"
+
+#: cp/pt.c:3301
+#, gcc-internal-format
+msgid "template parameter %q+#D"
+msgstr "範本åƒæ•¸ %q+#D"
+
+#: cp/pt.c:3302
+#, gcc-internal-format
+msgid "redeclared here as %q#D"
+msgstr "在這裡åˆè¢«å®£å‘Šç‚º %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:3312
+#, gcc-internal-format
+msgid "redefinition of default argument for %q#D"
+msgstr "é‡å®šç¾© %q#D çš„é è¨­åƒæ•¸"
+
+#: cp/pt.c:3313
+#, gcc-internal-format
+msgid "%J original definition appeared here"
+msgstr "%J 原始定義出ç¾åœ¨é€™è£¡"
+
+#: cp/pt.c:3409
+#, gcc-internal-format
+msgid "%qE is not a valid template argument for type %qT because function %qD has not external linkage"
+msgstr "%qE ä¸æ˜¯é¡žåž‹ %qT çš„æœ‰æ•ˆç¯„æœ¬å¼•æ•¸ï¼Œå› ç‚ºå‡½å¼ %qD 沒有外部連çµ"
+
+#: cp/pt.c:3450
+#, gcc-internal-format
+msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
+msgstr "%qE ä¸æ˜¯é¡žåž‹ %qT 的有效範本引數,因為字é¢å­—串ä¸èƒ½ç”¨åœ¨æ­¤ä¸Šä¸‹æ–‡ä¸­"
+
+#: cp/pt.c:3525
+#, gcc-internal-format
+msgid "%qE is not a valid template argument for type %qT because it is a non-constant expression"
+msgstr "%qE ä¸æ˜¯é¡žåž‹ %qT 的有效範本引數,因為它是一個éžå¸¸æ•¸çš„é‹ç®—å¼"
+
+#: cp/pt.c:3575
+#, gcc-internal-format
+msgid "%qE is not a valid template argument for type %qT because it is not a constant pointer"
+msgstr "%qE ä¸æ˜¯é¡žåž‹ %qT 的有效範本引數,因為它ä¸æ˜¯ä¸€å€‹å¸¸æ•¸æŒ‡æ¨™"
+
+#: cp/pt.c:3595
+#, gcc-internal-format
+msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
+msgstr "%qE ä¸æ˜¯é¡žåž‹ %qT 的有效範本引數,因為 cv é™å®šè¡çª"
+
+#: cp/pt.c:3602
+#, gcc-internal-format
+msgid "%qE is not a valid template argument for type %qT because it is not a lvalue"
+msgstr "%qE ä¸æ˜¯é¡žåž‹ %qT 的有效範本引數,因為它ä¸æ˜¯ä¸€å€‹å·¦å€¼"
+
+#: cp/pt.c:3615
+#, gcc-internal-format
+msgid "%qE is not a valid template argument for type %qT because object %qD has not external linkage"
+msgstr "%qE ä¸æ˜¯é¡žåž‹ %qT 的有效範本引數,因為物件 %qD 沒有外部連çµ"
+
+#: cp/pt.c:3655
+#, gcc-internal-format
+msgid "%qE is not a valid template argument for type %qT because it is a pointer"
+msgstr "%qE ä¸æ˜¯é¡žåž‹ %qT 的有效範本引數,因為它是一個指標"
+
+#: cp/pt.c:3657
+#, gcc-internal-format
+msgid "try using %qE instead"
+msgstr "嘗試使用 %qE 代替"
+
+#: cp/pt.c:3692
+#, gcc-internal-format
+msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
+msgstr "%qE ä¸æ˜¯é¡žåž‹ %qT 的有效範本引數,因為它的類型是 %qT"
+
+#: cp/pt.c:3695
+#, gcc-internal-format
+msgid "standard conversions are not allowed in this context"
+msgstr "此上下文中ä¸å…許標準轉æ›"
+
+#: cp/pt.c:3864
+#, gcc-internal-format
+msgid "to refer to a type member of a template parameter, use %<typename %E%>"
+msgstr "需è¦ä½¿ç”¨æŸå€‹ç¯„本åƒæ•¸çš„é¡žåž‹æˆå“¡æ™‚,請使用 %<typename %E%>"
+
+#: cp/pt.c:3879 cp/pt.c:3898 cp/pt.c:3938
+#, gcc-internal-format
+msgid "type/value mismatch at argument %d in template parameter list for %qD"
+msgstr "引數 %d çš„é¡žåž‹/值ä¸åŒ¹é…,在 %qD 的範本åƒæ•¸æ¸…單中"
+
+#: cp/pt.c:3883
+#, gcc-internal-format
+msgid " expected a constant of type %qT, got %qT"
+msgstr " 需è¦ä¸€å€‹ %qT 類型的常數,å»çµ¦å‡ºäº† %qT"
+
+#: cp/pt.c:3887
+#, gcc-internal-format
+msgid " expected a class template, got %qE"
+msgstr " 需è¦ä¸€å€‹é¡žåˆ¥ç¯„本,å»çµ¦å‡ºäº† %qE"
+
+#: cp/pt.c:3889
+#, gcc-internal-format
+msgid " expected a type, got %qE"
+msgstr " 需è¦ä¸€å€‹é¡žåž‹ï¼Œå»çµ¦å‡ºäº† %qE"
+
+#: cp/pt.c:3902
+#, gcc-internal-format
+msgid " expected a type, got %qT"
+msgstr " 需è¦ä¸€å€‹é¡žåž‹ï¼Œå»çµ¦å‡ºäº† %qT"
+
+#: cp/pt.c:3904
+#, gcc-internal-format
+msgid " expected a class template, got %qT"
+msgstr " 需è¦ä¸€å€‹é¡žåˆ¥ç¯„本,å»çµ¦å‡ºäº† %qT"
+
+#: cp/pt.c:3941
+#, gcc-internal-format
+msgid " expected a template of type %qD, got %qD"
+msgstr " 需è¦ä¸€å€‹é¡žåž‹ç‚º %qD 的範本,å»çµ¦å‡ºäº† %qD"
+
+#: cp/pt.c:3984
+#, gcc-internal-format
+msgid "could not convert template argument %qE to %qT"
+msgstr "ä¸èƒ½å°‡ç¯„本åƒæ•¸å¾ž %qE 轉æ›åˆ° %qT"
+
+#: cp/pt.c:4023
+#, gcc-internal-format
+msgid "wrong number of template arguments (%d, should be %d)"
+msgstr "範本åƒæ•¸æ•¸ç›®ä¸æ­£ç¢º(ä¸æ‡‰æ˜¯ %d 個而應是 %d 個)"
+
+#: cp/pt.c:4027
+#, gcc-internal-format
+msgid "provided for %q+D"
+msgstr "æ供給 %q+D"
+
+#: cp/pt.c:4057
+#, gcc-internal-format
+msgid "template argument %d is invalid"
+msgstr "範本åƒæ•¸ %d 無效"
+
+#: cp/pt.c:4412
+#, gcc-internal-format
+msgid "non-template type %qT used as a template"
+msgstr "éžç¯„本類型 %qT åšç‚ºç¯„本"
+
+#: cp/pt.c:4414
+#, gcc-internal-format
+msgid "for template declaration %q+D"
+msgstr "å°æ–¼ç¯„本宣告 %q+D"
+
+#: cp/pt.c:5064
+#, gcc-internal-format
+msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %qD"
+msgstr "範本實體化深度超éŽæœ€å¤§å€¼ %d(使用 use -ftemplate-depth-NN 來增大最大值),在實體化 %qD 時"
+
+#: cp/pt.c:6612
+#, gcc-internal-format
+msgid "instantiation of %q+D as type %qT"
+msgstr "%q+D 按類型 %qT 實體化"
+
+#: cp/pt.c:6791
+#, gcc-internal-format
+msgid "invalid parameter type %qT"
+msgstr "無效的åƒæ•¸é¡žåž‹ %qT"
+
+#: cp/pt.c:6793
+#, gcc-internal-format
+msgid "in declaration %q+D"
+msgstr "在宣告 %q+D 中"
+
+#: cp/pt.c:6866
+#, gcc-internal-format
+msgid "function returning an array"
+msgstr "函å¼å›žå‚³äº†ä¸€å€‹é™£åˆ—"
+
+#: cp/pt.c:6868
+#, gcc-internal-format
+msgid "function returning a function"
+msgstr "函å¼å›žå‚³äº†ä¸€å€‹å‡½å¼"
+
+#: cp/pt.c:6895
+#, gcc-internal-format
+msgid "creating pointer to member function of non-class type %qT"
+msgstr "產生éžé¡žåˆ¥é¡žåž‹ %qT çš„æˆå“¡å‡½å¼æŒ‡æ¨™"
+
+#: cp/pt.c:7076
+#, gcc-internal-format
+msgid "creating array with negative size (%qE)"
+msgstr "建立大å°ç‚ºè² çš„陣列(%qE)"
+
+#: cp/pt.c:7293
+#, gcc-internal-format
+msgid "forming reference to void"
+msgstr "å½¢æˆå° void çš„åƒç…§"
+
+#: cp/pt.c:7295
+#, gcc-internal-format
+msgid "forming %s to reference type %qT"
+msgstr "å½¢æˆ %s,åƒç…§åƒç…§é¡žåž‹ %qT"
+
+#: cp/pt.c:7332
+#, gcc-internal-format
+msgid "creating pointer to member of non-class type %qT"
+msgstr "產生éžé¡žåˆ¥é¡žåž‹ %qT çš„æˆå“¡æŒ‡æ¨™"
+
+#: cp/pt.c:7338
+#, gcc-internal-format
+msgid "creating pointer to member reference type %qT"
+msgstr "產生åƒç…§é¡žåž‹ %qT çš„æˆå“¡æŒ‡æ¨™"
+
+#: cp/pt.c:7344
+#, gcc-internal-format
+msgid "creating pointer to member of type void"
+msgstr "建立åƒç…§ void é¡žåž‹çš„æˆå“¡æŒ‡æ¨™"
+
+#: cp/pt.c:7411
+#, gcc-internal-format
+msgid "creating array of %qT"
+msgstr "產生 %qT 的陣列"
+
+#: cp/pt.c:7417
+#, gcc-internal-format
+msgid "creating array of %qT, which is an abstract class type"
+msgstr "產生抽象類型 %qT 的陣列"
+
+#: cp/pt.c:7461
+#, gcc-internal-format
+msgid "%qT is not a class, struct, or union type"
+msgstr "%qT ä¸æ˜¯é¡žåˆ¥ã€çµæ§‹æˆ–è¯åˆé¡žåž‹"
+
+#: cp/pt.c:7496
+#, gcc-internal-format
+msgid "%qT resolves to %qT, which is not an enumeration type"
+msgstr "%qT 被解æžåˆ°éžåˆ—舉類型 %qT"
+
+#: cp/pt.c:7499
+#, gcc-internal-format
+msgid "%qT resolves to %qT, which is is not a class type"
+msgstr "%qT 被解æžåˆ°éžé¡žåˆ¥é¡žåž‹ %qT"
+
+#: cp/pt.c:7561
+#, gcc-internal-format
+msgid "use of %qs in template"
+msgstr "在範本中使用 %qs"
+
+#: cp/pt.c:7693
+#, gcc-internal-format
+msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
+msgstr "ä¾è³´å %qE 被解æžç‚ºéžé¡žåž‹ï¼Œä½†å¯¦é«”化å»ç”¢ç”Ÿäº†ä¸€å€‹é¡žåž‹"
+
+#: cp/pt.c:7695
+#, gcc-internal-format
+msgid "say %<typename %E%> if a type is meant"
+msgstr "如果您想指定類型,請使用 %<typename %E%>"
+
+#: cp/pt.c:7818
+#, gcc-internal-format
+msgid "using invalid field %qD"
+msgstr "ä½¿ç”¨ç„¡æ•ˆæ¬„ä½ %qD"
+
+#: cp/pt.c:8924
+#, gcc-internal-format
+msgid "%qT is not a class or namespace"
+msgstr "%qT æ—¢ä¸æ˜¯é¡žåˆ¥ä¹Ÿä¸æ˜¯å‘½å空間"
+
+#: cp/pt.c:8927
+#, gcc-internal-format
+msgid "%qD is not a class or namespace"
+msgstr "%qD æ—¢ä¸æ˜¯é¡žåˆ¥ä¹Ÿä¸æ˜¯å‘½å空間"
+
+#: cp/pt.c:9076
+#, gcc-internal-format
+msgid "%qT is/uses anonymous type"
+msgstr "%qT 是/使用了匿åé¡žåž‹"
+
+#: cp/pt.c:9078
+#, gcc-internal-format
+msgid "%qT uses local type %qT"
+msgstr "%qT 使用了局部類型 %qT"
+
+#: cp/pt.c:9087
+#, gcc-internal-format
+msgid "%qT is a variably modified type"
+msgstr "%qT 是一個å¯è®Šé¡žåž‹"
+
+#: cp/pt.c:9098
+#, gcc-internal-format
+msgid "integral expression %qE is not constant"
+msgstr "æ•´åž‹é‹ç®—å¼ %qE ä¸æ˜¯å¸¸æ•¸"
+
+#: cp/pt.c:9103
+#, gcc-internal-format
+msgid " trying to instantiate %qD"
+msgstr " 試圖實體化 %qD"
+
+#: cp/pt.c:11094
+#, gcc-internal-format
+msgid "ambiguous class template instantiation for %q#T"
+msgstr "%q#T 的類別範本實體化有歧義"
+
+#: cp/pt.c:11097
+#, gcc-internal-format
+msgid "%s %+#T"
+msgstr "%s %+#T"
+
+#: cp/pt.c:11120 cp/pt.c:11191
+#, gcc-internal-format
+msgid "explicit instantiation of non-template %q#D"
+msgstr "å°éžç¯„本 %q#D 的明確實體化"
+
+#: cp/pt.c:11136 cp/pt.c:11186
+#, gcc-internal-format
+msgid "no matching template for %qD found"
+msgstr "沒有找到與 %qD 匹é…的範本"
+
+#: cp/pt.c:11142
+#, gcc-internal-format
+msgid "explicit instantiation of %q#D"
+msgstr "å° %q#D 的明確實體化"
+
+#: cp/pt.c:11178
+#, gcc-internal-format
+msgid "duplicate explicit instantiation of %q#D"
+msgstr "å° %q#D é‡è¤‡çš„明確實體化"
+
+#: cp/pt.c:11200
+#, gcc-internal-format
+msgid "ISO C++ forbids the use of %<extern%> on explicit instantiations"
+msgstr "ISO C++ ä¸å…許在明確實體化時使用 %<extern%>"
+
+#: cp/pt.c:11205 cp/pt.c:11298
+#, gcc-internal-format
+msgid "storage class %qD applied to template instantiation"
+msgstr "為範本實體化化套用了存儲類型 %qD"
+
+#: cp/pt.c:11270
+#, gcc-internal-format
+msgid "explicit instantiation of non-template type %qT"
+msgstr "明確實體化éžç¯„本類型 %qT"
+
+#: cp/pt.c:11279
+#, gcc-internal-format
+msgid "explicit instantiation of %q#T before definition of template"
+msgstr "%q#T 的明確實體化出ç¾åœ¨ç¯„本定義之å‰"
+
+#: cp/pt.c:11287
+#, gcc-internal-format
+msgid "ISO C++ forbids the use of %qE on explicit instantiations"
+msgstr "ISO C++ ä¸å…許在明確實體化時使用 %qE"
+
+#: cp/pt.c:11332
+#, gcc-internal-format
+msgid "duplicate explicit instantiation of %q#T"
+msgstr "å° %q#T é‡è¤‡çš„明確實體化"
+
+#: cp/pt.c:11745
+#, gcc-internal-format
+msgid "explicit instantiation of %qD but no definition available"
+msgstr "明確實體化 %qD 時沒有å¯ç”¨çš„定義"
+
+#: cp/pt.c:11892
+#, gcc-internal-format
+msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use -ftemplate-depth-NN to increase the maximum)"
+msgstr "範本實體化深度超éŽäº†æœ€å¤§å€¼ %d,當實體化 %q+D 時,å¯èƒ½æ˜¯ç”±æ–¼ç”¢ç”Ÿè™›å‡½å¼è¡¨æ‰€è‡´(使用 -ftemplate-depth-NN 來增大最大值)"
+
+#: cp/pt.c:12165
+#, gcc-internal-format
+msgid "%q#T is not a valid type for a template constant parameter"
+msgstr "%q#T ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„範本常數åƒæ•¸é¡žåž‹"
+
+#: cp/repo.c:113
+#, gcc-internal-format
+msgid "-frepo must be used with -c"
+msgstr "-frepo 必須與 -c 一起使用"
+
+#: cp/repo.c:201
+#, gcc-internal-format
+msgid "mysterious repository information in %s"
+msgstr "%s 的存儲資訊很詭異"
+
+#: cp/repo.c:215
+#, gcc-internal-format
+msgid "can't create repository information file %qs"
+msgstr "無法建立存儲資訊檔案 %qs"
+
+#: cp/rtti.c:270
+#, gcc-internal-format
+msgid "cannot use typeid with -fno-rtti"
+msgstr "在指定 -fno-rtti 的情æ³ä¸‹ä¸èƒ½ä½¿ç”¨ typeid"
+
+#: cp/rtti.c:276
+#, gcc-internal-format
+msgid "must #include <typeinfo> before using typeid"
+msgstr "在使用 typeid 之å‰å¿…須先 #include <typeinfo>"
+
+#: cp/rtti.c:348
+#, gcc-internal-format
+msgid "cannot create type information for type %qT because its size is variable"
+msgstr "無法為類型 %qT 建立類型資訊,因為它的大å°æ˜¯å¯è®Šçš„"
+
+#: cp/rtti.c:598 cp/rtti.c:612
+#, gcc-internal-format
+msgid "dynamic_cast of %q#D to %q#T can never succeed"
+msgstr "從 %q#D 到 %q#T çš„å‹•æ…‹_轉æ›æ°¸é ä¸æœƒæˆåŠŸ"
+
+#: cp/rtti.c:691
+#, gcc-internal-format
+msgid "cannot dynamic_cast %qE (of type %q#T) to type %q#T (%s)"
+msgstr "無法將 %qE 從類型 %qT å‹•æ…‹_轉æ›åˆ°é¡žåž‹ %q#T (%s)"
+
+#: cp/search.c:257
+#, gcc-internal-format
+msgid "%qT is an ambiguous base of %qT"
+msgstr "%qT 是 %qT 的有歧義的基礎類別"
+
+#: cp/search.c:275
+#, gcc-internal-format
+msgid "%qT is an inaccessible base of %qT"
+msgstr "%qT 是 %qT ä¸å¯å­˜å–的基礎類別"
+
+#: cp/search.c:1846
+#, gcc-internal-format
+msgid "deprecated covariant return type for %q+#D"
+msgstr "%q+#D çš„å”變回傳類型已éŽæ™‚"
+
+#: cp/search.c:1848 cp/search.c:1863 cp/search.c:1868
+#, gcc-internal-format
+msgid " overriding %q+#D"
+msgstr " 覆寫了 %q+#D"
+
+#: cp/search.c:1862
+#, gcc-internal-format
+msgid "invalid covariant return type for %q+#D"
+msgstr "%q+#D çš„å”變回傳類型無效"
+
+#: cp/search.c:1867
+#, gcc-internal-format
+msgid "conflicting return type specified for %q+#D"
+msgstr "為 %q+#D 指定了è¡çªçš„回傳類型"
+
+#: cp/search.c:1877
+#, gcc-internal-format
+msgid "looser throw specifier for %q+#F"
+msgstr "放鬆 %q+#F çš„ throw é™å®š"
+
+#: cp/search.c:1878
+#, gcc-internal-format
+msgid " overriding %q+#F"
+msgstr " 覆寫了 %q+#F"
+
+#. A static member function cannot match an inherited
+#. virtual member function.
+#: cp/search.c:1971
+#, gcc-internal-format
+msgid "%q+#D cannot be declared"
+msgstr "無法宣告 %q+#D"
+
+#: cp/search.c:1972
+#, gcc-internal-format
+msgid " since %q+#D declared in base class"
+msgstr " 因為 %q+#D 已在基礎類別中宣告éŽ"
+
+#: cp/semantics.c:1240
+#, gcc-internal-format
+msgid "type of asm operand %qE could not be determined"
+msgstr "無法確定 asm é‹ç®—å…ƒ %qE çš„é¡žåž‹"
+
+#: cp/semantics.c:1359
+#, gcc-internal-format
+msgid "invalid use of member %q+D in static member function"
+msgstr "在éœæ…‹æˆå“¡å‡½å¼ä¸­ä½¿ç”¨æˆå“¡ %q+D 無效"
+
+#: cp/semantics.c:1361
+#, gcc-internal-format
+msgid "invalid use of non-static data member %q+D"
+msgstr "å°éžéœæ…‹è³‡æ–™æˆå“¡ %q+D 的無效使用"
+
+#: cp/semantics.c:1362 cp/semantics.c:1401
+#, gcc-internal-format
+msgid "from this location"
+msgstr "從這個地方"
+
+#: cp/semantics.c:1400
+#, gcc-internal-format
+msgid "object missing in reference to %q+D"
+msgstr "å° %q+D çš„åƒç…§ç¼ºå°‘物件"
+
+#: cp/semantics.c:1866
+#, gcc-internal-format
+msgid "arguments to destructor are not allowed"
+msgstr "解構函å¼ä¸èƒ½æœ‰åƒæ•¸"
+
+#: cp/semantics.c:1917
+#, gcc-internal-format
+msgid "%<this%> is unavailable for static member functions"
+msgstr "éœæ…‹æˆå“¡å‡½å¼ä¸­ä¸èƒ½ä½¿ç”¨ %<this%>"
+
+#: cp/semantics.c:1923
+#, gcc-internal-format
+msgid "invalid use of %<this%> in non-member function"
+msgstr "在éžæˆå“¡å‡½å¼ä¸­ä½¿ç”¨ %<this%> 無效"
+
+#: cp/semantics.c:1925
+#, gcc-internal-format
+msgid "invalid use of %<this%> at top level"
+msgstr "在頂層使用 %<this%> 無效"
+
+#: cp/semantics.c:1949
+#, gcc-internal-format
+msgid "invalid qualifying scope in pseudo-destructor name"
+msgstr "å½è§£æ§‹å‡½å¼åçš„é™å®šä½œç”¨æ¬„ä½ç„¡æ•ˆ"
+
+#: cp/semantics.c:1969
+#, gcc-internal-format
+msgid "%qE is not of type %qT"
+msgstr "%qE çš„é¡žåž‹ä¸æ˜¯ %qT"
+
+#: cp/semantics.c:2071
+#, gcc-internal-format
+msgid "template type parameters must use the keyword %<class%> or %<typename%>"
+msgstr "範本åƒæ•¸å¿…須使用 %<class%> 或 %<typename%> é—œéµå­—"
+
+#: cp/semantics.c:2115
+#, gcc-internal-format
+msgid "invalid use of type %qT as a default value for a template template-parameter"
+msgstr "將類型 %qT åšç‚ºç¯„本的範本åƒæ•¸çš„é è¨­å€¼ç„¡æ•ˆ"
+
+#: cp/semantics.c:2118
+#, gcc-internal-format
+msgid "invalid use of %qD as a default value for a template template-parameter"
+msgstr "å°‡ %qD åšç‚ºç¯„本的範本åƒæ•¸çš„é è¨­å€¼ç„¡æ•ˆ"
+
+#: cp/semantics.c:2122
+#, gcc-internal-format
+msgid "invalid default argument for a template template parameter"
+msgstr "範本的範本åƒæ•¸çš„é è¨­å¼•æ•¸ç„¡æ•ˆ"
+
+#: cp/semantics.c:2139
+#, gcc-internal-format
+msgid "definition of %q#T inside template parameter list"
+msgstr "在範本åƒæ•¸æ¸…單中定義了 %q#T"
+
+#: cp/semantics.c:2150
+#, gcc-internal-format
+msgid "invalid definition of qualified type %qT"
+msgstr "å°é™å®šé¡žåž‹ %qT 的定義無效"
+
+#: cp/semantics.c:2353
+#, gcc-internal-format
+msgid "invalid base-class specification"
+msgstr "無效的基礎類別"
+
+#: cp/semantics.c:2362
+#, gcc-internal-format
+msgid "base class %qT has cv qualifiers"
+msgstr "基礎類別 %qT 有 cv é™å®š"
+
+#: cp/semantics.c:2384
+#, gcc-internal-format
+msgid "incomplete type %qT used in nested name specifier"
+msgstr "巢狀å指定中使用了ä¸å®Œå…¨çš„é¡žåž‹ %qT"
+
+#: cp/semantics.c:2387
+#, gcc-internal-format
+msgid "reference to %<%T::%D%> is ambiguous"
+msgstr "å° %<%T::%D%> çš„åƒç…§æœ‰æ­§ç¾©"
+
+#: cp/semantics.c:2391 cp/typeck.c:1642
+#, gcc-internal-format
+msgid "%qD is not a member of %qT"
+msgstr "%qD ä¸æ˜¯ %qT çš„æˆå“¡"
+
+#: cp/semantics.c:2394
+#, gcc-internal-format
+msgid "%qD is not a member of %qD"
+msgstr "%qD ä¸æ˜¯ %qD çš„æˆå“¡"
+
+#: cp/semantics.c:2508
+#, gcc-internal-format
+msgid "use of %<auto%> variable from containing function"
+msgstr "在包å«å‡½å¼ä¸­ä½¿ç”¨ %<auto%> 變數"
+
+#: cp/semantics.c:2509
+#, gcc-internal-format
+msgid "use of parameter from containing function"
+msgstr "在包å«å‡½å¼ä¸­ä½¿ç”¨åƒæ•¸"
+
+#: cp/semantics.c:2510
+#, gcc-internal-format
+msgid " %q+#D declared here"
+msgstr " %q+#D 已在此宣告éŽ"
+
+#: cp/semantics.c:2548
+#, gcc-internal-format
+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 "範本åƒæ•¸ %qD(類型為 %qT)ä¸å…許出ç¾åœ¨æ•´æ•¸é‹ç®—å¼ä¸­ï¼Œå› ç‚ºå®ƒçš„é¡žåž‹ä¸æ˜¯æ•´æ•¸æˆ–列舉"
+
+#: cp/semantics.c:2714
+#, gcc-internal-format
+msgid "%qD cannot appear in a constant-expression"
+msgstr "%qD ä¸èƒ½å‡ºç¾åœ¨å¸¸æ•¸é‹ç®—å¼ä¸­"
+
+#: cp/semantics.c:2722
+#, gcc-internal-format
+msgid "use of namespace %qD as expression"
+msgstr "命å空間 %qD åšç‚ºé‹ç®—å¼"
+
+#: cp/semantics.c:2727
+#, gcc-internal-format
+msgid "use of class template %qT as expression"
+msgstr "將類別範本 %qT åšç‚ºé‹ç®—å¼"
+
+#. Ambiguous reference to base members.
+#: cp/semantics.c:2733
+#, gcc-internal-format
+msgid "request for member %qD is ambiguous in multiple inheritance lattice"
+msgstr "åœ¨å¤šç¹¼æ‰¿ç¶²æ ¼ä¸­å° %qD çš„å­˜å–有歧義"
+
+#: cp/semantics.c:2845
+#, gcc-internal-format
+msgid "type of %qE is unknown"
+msgstr "%qE çš„é¡žåž‹ä¸æ˜Ž"
+
+#: cp/tree.c:560
+#, gcc-internal-format
+msgid "%qV qualifiers cannot be applied to %qT"
+msgstr "%qV é™å®šç¬¦ä¸èƒ½å¥—用到 %qT 上"
+
+#: cp/tree.c:1783
+#, gcc-internal-format
+msgid "%qE attribute can only be applied to Java class definitions"
+msgstr "åªèƒ½ç‚º Java 類別定義套用 %qE 屬性"
+
+#: cp/tree.c:1812
+#, gcc-internal-format
+msgid "%qE attribute can only be applied to class definitions"
+msgstr "åªèƒ½ç‚ºé¡žåˆ¥å®šç¾©å¥—用 %qE 屬性"
+
+#: cp/tree.c:1818
+#, gcc-internal-format
+msgid "%qE is obsolete; g++ vtables are now COM-compatible by default"
+msgstr "%qE å·²éŽæ™‚:g++ 的虛函å¼è¡¨ç¾åœ¨é è¨­èˆ‡ COM 相容"
+
+#: cp/tree.c:1842
+#, gcc-internal-format
+msgid "requested init_priority is not an integer constant"
+msgstr "請求的 init_priority ä¸æ˜¯ä¸€å€‹æ•´æ•¸å¸¸æ•¸"
+
+#: cp/tree.c:1863
+#, gcc-internal-format
+msgid "can only use %qE attribute on file-scope definitions of objects of class type"
+msgstr "åªèƒ½å°‡ %qE 屬性用於æŸå€‹é¡žåˆ¥çš„物件的檔案作用欄ä½å®šç¾©"
+
+#: cp/tree.c:1871
+#, gcc-internal-format
+msgid "requested init_priority is out of range"
+msgstr "請求的 init_priority 越界"
+
+#: cp/tree.c:1881
+#, gcc-internal-format
+msgid "requested init_priority is reserved for internal use"
+msgstr "請求的 init_priority ä¿ç•™ç‚ºå…§éƒ¨ä½¿ç”¨"
+
+#: cp/tree.c:1892
+#, gcc-internal-format
+msgid "%qE attribute is not supported on this platform"
+msgstr "%qE 屬性在此平å°ä¸Šä¸å—支æ´"
+
+#: cp/typeck.c:435 cp/typeck.c:449 cp/typeck.c:549
+#, gcc-internal-format
+msgid "%s between distinct pointer types %qT and %qT lacks a cast"
+msgstr "%s(在ä¸åŒçš„指標類型 %qT å’Œ %qT 之間)需è¦ä¸€å€‹è½‰æ›"
+
+#: cp/typeck.c:511
+#, gcc-internal-format
+msgid "ISO C++ forbids %s between pointer of type %<void *%> and pointer-to-function"
+msgstr "ISO C++ ä¸å…許在 %<void *%> 和函å¼æŒ‡æ¨™é–“ %s"
+
+#: cp/typeck.c:569
+#, gcc-internal-format
+msgid "%s between distinct pointer-to-member types %qT and %qT lacks a cast"
+msgstr "%s(在ä¸åŒçš„æˆå“¡æŒ‡æ¨™é¡žåž‹ %qT å’Œ %qT 之間)需è¦ä¸€å€‹è½‰æ›"
+
+#: cp/typeck.c:1258
+#, gcc-internal-format
+msgid "invalid application of %qs to a member function"
+msgstr "%qs 用於æˆå“¡å‡½å¼ç„¡æ•ˆ"
+
+#: cp/typeck.c:1293
+#, gcc-internal-format
+msgid "invalid application of %qs to a bit-field"
+msgstr "å°ä½å…ƒæ®µä½¿ç”¨ %qs 無效"
+
+#: cp/typeck.c:1298
+#, gcc-internal-format
+msgid "ISO C++ forbids applying %qs to an expression of function type"
+msgstr "ISO C++ ä¸å…許將 %qs 套用到函å¼é¡žåž‹çš„é‹ç®—å¼ä¸Š"
+
+#: cp/typeck.c:1335
+#, gcc-internal-format
+msgid "invalid use of non-static member function"
+msgstr "å°éžéœæ…‹æˆå“¡å‡½å¼çš„使用無效"
+
+#: cp/typeck.c:1502
+#, gcc-internal-format
+msgid "deprecated conversion from string constant to %qT'"
+msgstr "從字串常數到 %qT 的轉æ›å·²éŽæ™‚"
+
+#: cp/typeck.c:1613 cp/typeck.c:1961
+#, gcc-internal-format
+msgid "request for member %qD in %qE, which is of non-class type %qT"
+msgstr "å°æˆå“¡ %qD 的請求出ç¾åœ¨ %qE 中,而後者具有éžé¡žåˆ¥é¡žåž‹ %qT"
+
+#: cp/typeck.c:1640
+#, gcc-internal-format
+msgid "invalid use of nonstatic data member %qE"
+msgstr "å°éžéœæ…‹è³‡æ–™æˆå“¡ %qE 的使用無效"
+
+#: cp/typeck.c:1692 cp/typeck.c:1720
+#, gcc-internal-format
+msgid "invalid access to non-static data member %qD of NULL object"
+msgstr "å° NULL 物件éžéœæ…‹è³‡æ–™æˆå“¡ %qD çš„å­˜å–無效"
+
+#: cp/typeck.c:1695 cp/typeck.c:1722
+#, gcc-internal-format
+msgid "(perhaps the %<offsetof%> macro was used incorrectly)"
+msgstr "(å¯èƒ½éŒ¯èª¤ä½¿ç”¨äº† %<offsetof%> 巨集)"
+
+#: cp/typeck.c:1833
+#, gcc-internal-format
+msgid "qualified type %qT does not match destructor name ~%qT"
+msgstr "é™å®šçš„é¡žåž‹ %qT ä¸åŒ¹é…解構函å¼å ~%qT"
+
+#: cp/typeck.c:1839
+#, gcc-internal-format
+msgid "the type being destroyed is %qT, but the destructor refers to %qT"
+msgstr "被解構的類型是 %qT,但解構函å¼å»ä½¿ç”¨äº† %qT"
+
+#: cp/typeck.c:2004
+#, gcc-internal-format
+msgid "%<%D::%D%> is not a member of %qT"
+msgstr "%<%D::%D%> ä¸æ˜¯ %qT çš„æˆå“¡"
+
+#: cp/typeck.c:2015
+#, gcc-internal-format
+msgid "%qT is not a base of %qT"
+msgstr "%qT ä¸æ˜¯ %qT 的基礎類別"
+
+#: cp/typeck.c:2034
+#, gcc-internal-format
+msgid "%qD has no member named %qE"
+msgstr "%qD æ²’å…·å為 %qE çš„æˆå“¡"
+
+#: cp/typeck.c:2049
+#, gcc-internal-format
+msgid "%qD is not a member template function"
+msgstr "%qD ä¸æ˜¯ä¸€å€‹æˆå“¡ç¯„本函å¼"
+
+#. A pointer to incomplete type (other than cv void) can be
+#. dereferenced [expr.unary.op]/1
+#: cp/typeck.c:2169
+#, gcc-internal-format
+msgid "%qT is not a pointer-to-object type"
+msgstr "%qT ä¸æ˜¯ä¸€å€‹åƒç…§ç‰©ä»¶çš„é¡žåž‹"
+
+#: cp/typeck.c:2194
+#, gcc-internal-format
+msgid "invalid use of %qs on pointer to member"
+msgstr "å°‡ %qs 用在æˆå“¡æŒ‡æ¨™ä¸Šç„¡æ•ˆ"
+
+#: cp/typeck.c:2200
+#, gcc-internal-format
+msgid "invalid type argument"
+msgstr "無效的類型åƒæ•¸"
+
+#: cp/typeck.c:2223
+#, gcc-internal-format
+msgid "subscript missing in array reference"
+msgstr "陣列åƒç…§ç¼ºå°‘下標"
+
+#: cp/typeck.c:2305
+#, gcc-internal-format
+msgid "ISO C++ forbids subscripting non-lvalue array"
+msgstr "ISO C++ ä¸å…許按下標存å–éžå·¦å€¼çš„陣列"
+
+#: cp/typeck.c:2316
+#, gcc-internal-format
+msgid "subscripting array declared %<register%>"
+msgstr "按下標存å–宣告為 %<register%> 的陣列"
+
+#: cp/typeck.c:2399
+#, gcc-internal-format
+msgid "object missing in use of %qE"
+msgstr "使用 %qE 時缺少物件"
+
+#: cp/typeck.c:2513
+#, gcc-internal-format
+msgid "ISO C++ forbids calling %<::main%> from within program"
+msgstr "ISO C++ ä¸å…許在程å¼è£¡å‘¼å« %<::main%>"
+
+#: cp/typeck.c:2538
+#, gcc-internal-format
+msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>"
+msgstr "必須用 %<.*%> or %<->*%> å‘¼å« <%E (...)%> 中的æˆå“¡å‡½å¼æŒ‡æ¨™"
+
+#: cp/typeck.c:2552
+#, gcc-internal-format
+msgid "%qE cannot be used as a function"
+msgstr "%qE ä¸èƒ½åšç‚ºå‡½å¼"
+
+#: cp/typeck.c:2632
+#, gcc-internal-format
+msgid "too many arguments to %s %q+#D"
+msgstr "給予 %s %q+#D 的引數太多"
+
+#: cp/typeck.c:2633 cp/typeck.c:2735
+#, gcc-internal-format
+msgid "at this point in file"
+msgstr "在檔案的這個地方"
+
+#: cp/typeck.c:2636
+#, gcc-internal-format
+msgid "too many arguments to function"
+msgstr "給予函å¼çš„引數太多"
+
+#: cp/typeck.c:2670
+#, gcc-internal-format
+msgid "parameter %P of %qD has incomplete type %qT"
+msgstr "åƒæ•¸ %P (屬於 %qD)çš„é¡žåž‹ %qT ä¸å®Œå…¨"
+
+#: cp/typeck.c:2673
+#, gcc-internal-format
+msgid "parameter %P has incomplete type %qT"
+msgstr "åƒæ•¸ %P çš„é¡žåž‹ %qT ä¸å®Œå…¨"
+
+#: cp/typeck.c:2734
+#, gcc-internal-format
+msgid "too few arguments to %s %q+#D"
+msgstr "給予 %s %q+#D 的引數太少"
+
+#: cp/typeck.c:2738
+#, gcc-internal-format
+msgid "too few arguments to function"
+msgstr "給予函å¼çš„引數太少"
+
+#: cp/typeck.c:2886 cp/typeck.c:2896
+#, gcc-internal-format
+msgid "assuming cast to type %qT from overloaded function"
+msgstr "å‡å®šå¾žå¤šè¼‰å‡½å¼è½‰æ›åˆ°é¡žåž‹ %qT"
+
+#: cp/typeck.c:2964
+#, gcc-internal-format
+msgid "division by zero in %<%E / 0%>"
+msgstr "%<%E / 0%> 中被零除"
+
+#: cp/typeck.c:2966
+#, gcc-internal-format
+msgid "division by zero in %<%E / 0.%>"
+msgstr "%<%E / 0.%> 中被零除"
+
+#: cp/typeck.c:3001
+#, gcc-internal-format
+msgid "division by zero in %<%E %% 0%>"
+msgstr "%<%E / %% 0%> 中被零除"
+
+#: cp/typeck.c:3003
+#, gcc-internal-format
+msgid "division by zero in %<%E %% 0.%>"
+msgstr "%<%E / %% 0.%> 中被零除"
+
+#: cp/typeck.c:3083
+#, gcc-internal-format
+msgid "%s rotate count is negative"
+msgstr "%s 循環移ä½æ¬¡æ•¸ç‚ºè² "
+
+#: cp/typeck.c:3086
+#, gcc-internal-format
+msgid "%s rotate count >= width of type"
+msgstr "%s 循環移ä½æ¬¡æ•¸å¤§æ–¼æˆ–等於類型寬度"
+
+#: cp/typeck.c:3120 cp/typeck.c:3125 cp/typeck.c:3221 cp/typeck.c:3226
+#, gcc-internal-format
+msgid "ISO C++ forbids comparison between pointer and integer"
+msgstr "ISO C++ ä¸å…許比較指標和整數的值"
+
+#: cp/typeck.c:3240
+#, gcc-internal-format
+msgid "unordered comparison on non-floating point argument"
+msgstr "éžæµ®é»žå¼•æ•¸é–“的無效比較"
+
+#: cp/typeck.c:3278
+#, gcc-internal-format
+msgid "invalid operands of types %qT and %qT to binary %qO"
+msgstr "é‹ç®—元類型 %qT å’Œ %qT å°äºŒé€²ä½ %qO 而言無效"
+
+#: cp/typeck.c:3442
+#, gcc-internal-format
+msgid "comparison between types %q#T and %q#T"
+msgstr "在類型 %q#T 和 %q#T 間比較"
+
+#: cp/typeck.c:3478
+#, gcc-internal-format
+msgid "comparison between signed and unsigned integer expressions"
+msgstr "在有號和無號整數é‹ç®—å¼é–“比較"
+
+#. Some sort of arithmetic operation involving NULL was
+#. performed. Note that pointer-difference and pointer-addition
+#. have already been handled above, and so we don't end up here in
+#. that case.
+#: cp/typeck.c:3557
+#, gcc-internal-format
+msgid "NULL used in arithmetic"
+msgstr "ç®—è¡“é‹ç®—å¼ä¸­ä½¿ç”¨äº† NULL"
+
+#: cp/typeck.c:3615
+#, gcc-internal-format
+msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
+msgstr "ISO C++ ä¸å…許在減法中使用類型為 %<void *%> 的指標"
+
+#: cp/typeck.c:3617
+#, gcc-internal-format
+msgid "ISO C++ forbids using pointer to a function in subtraction"
+msgstr "ISO C++ ä¸å…許在減法中使用函å¼æŒ‡æ¨™"
+
+#: cp/typeck.c:3619
+#, gcc-internal-format
+msgid "ISO C++ forbids using pointer to a method in subtraction"
+msgstr "ISO C++ ä¸å…許在減法中使用åƒç…§æ–¹æ³•çš„指標"
+
+#: cp/typeck.c:3631
+#, gcc-internal-format
+msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
+msgstr "在指標算術中使用åƒç…§ä¸å®Œå…¨é¡žåž‹çš„指標無效"
+
+#: cp/typeck.c:3691
+#, gcc-internal-format
+msgid "invalid use of %qE to form a pointer-to-member-function"
+msgstr "用 %qE å½¢æˆæˆå“¡å‡½å¼æŒ‡æ¨™çš„用法無效。"
+
+#: cp/typeck.c:3694
+#, gcc-internal-format
+msgid " a qualified-id is required"
+msgstr " 需è¦ä¸€å€‹é™å®šçš„識別碼"
+
+#: cp/typeck.c:3699
+#, gcc-internal-format
+msgid "parenthesis around %qE cannot be used to form a pointer-to-member-function"
+msgstr "%qE 兩邊的括號ä¸èƒ½ç”¨ä¾†å»ºæ§‹ä¸€å€‹æˆå“¡å‡½å¼æŒ‡æ¨™"
+
+#: cp/typeck.c:3722
+#, gcc-internal-format
+msgid "taking address of temporary"
+msgstr "å–臨時變數的ä½å€"
+
+#: cp/typeck.c:3966
+#, gcc-internal-format
+msgid "ISO C++ forbids %sing an enum"
+msgstr "ISO C++ ä¸å…許 %sing 一個列舉"
+
+#: cp/typeck.c:3977
+#, gcc-internal-format
+msgid "cannot %s a pointer to incomplete type %qT"
+msgstr "ä¸èƒ½å°‡æŒ‡æ¨™ %s 到ä¸å®Œå…¨çš„é¡žåž‹ %qT"
+
+#: cp/typeck.c:3983
+#, gcc-internal-format
+msgid "ISO C++ forbids %sing a pointer of type %qT"
+msgstr "ISO C++ ä¸å…許 %s 一個類型為 %qT 的指標"
+
+#: cp/typeck.c:4008
+#, gcc-internal-format
+msgid "cast to non-reference type used as lvalue"
+msgstr "å‘éžåƒç…§é¡žåž‹çš„轉æ›åšç‚ºå·¦å€¼"
+
+#: cp/typeck.c:4043
+#, gcc-internal-format
+msgid "invalid use of %<--%> on bool variable %qD"
+msgstr "å°æ–¼ bool 變數 %qD 使用 %<--%> 無效"
+
+#. ARM $3.4
+#: cp/typeck.c:4072
+#, gcc-internal-format
+msgid "ISO C++ forbids taking address of function %<::main%>"
+msgstr "ISO C++ ä¸å…許å–å‡½å¼ %<::main%> çš„ä½å€"
+
+#. An expression like &memfn.
+#: cp/typeck.c:4126
+#, gcc-internal-format
+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++ ä¸å…許é€éŽæå–一個未é™å®šçš„或帶括號的éžéœæ…‹æˆå“¡å‡½å¼çš„ä½å€ä¾†å½¢æˆä¸€å€‹æˆå“¡å‡½å¼æŒ‡æ¨™ã€‚請使用 %<&%T::%D%>"
+
+#: cp/typeck.c:4131
+#, gcc-internal-format
+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++ ä¸å…許é€éŽå–已繫çµçš„æˆå“¡å‡½å¼çš„ä½å€ä¾†å»ºæ§‹æˆå“¡å‡½å¼æŒ‡æ¨™ã€‚請改用 %<&%T::%D%>"
+
+#: cp/typeck.c:4159
+#, gcc-internal-format
+msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression"
+msgstr "ISO C++ ä¸å…許å–轉æ›åˆ°éžå·¦å€¼é‹ç®—å¼çš„ä½å€"
+
+#: cp/typeck.c:4179
+#, gcc-internal-format
+msgid "cannot create pointer to reference member %qD"
+msgstr "ä¸èƒ½å»ºç«‹åƒç…§åƒç…§æˆå“¡ %qD 的指標"
+
+#: cp/typeck.c:4411
+#, gcc-internal-format
+msgid "cannot take the address of %<this%>, which is an rvalue expression"
+msgstr "無法å–å³å€¼é‹ç®—å¼ %<this%> çš„ä½å€"
+
+#: cp/typeck.c:4434
+#, gcc-internal-format
+msgid "address of explicit register variable %qD requested"
+msgstr "è¦æ±‚明確暫存器變數 %qD çš„ä½å€ã€‚"
+
+#: cp/typeck.c:4439
+#, gcc-internal-format
+msgid "address requested for %qD, which is declared %<register%>"
+msgstr "請求宣告為 %<register%> çš„ %qD çš„ä½å€"
+
+#: cp/typeck.c:4505
+#, gcc-internal-format
+msgid "%s expression list treated as compound expression"
+msgstr "%s é‹ç®—å¼æ¸…單被看作複åˆé‹ç®—å¼"
+
+#: cp/typeck.c:4899
+#, gcc-internal-format
+msgid "invalid static_cast from type %qT to type %qT"
+msgstr "從類型 %qT 到類型 %qT 中的 static_cast 無效"
+
+#: cp/typeck.c:4921
+#, gcc-internal-format
+msgid "converting from %qT to %qT"
+msgstr "從 %qT 轉æ›åˆ° %qT"
+
+#: cp/typeck.c:4966
+#, gcc-internal-format
+msgid "invalid cast of an rvalue expression of type %qT to type %qT"
+msgstr "從具有類型 %qT çš„å³å€¼é‹ç®—å¼åˆ°é¡žåž‹ %qT 中的轉æ›ç„¡æ•ˆ"
+
+#: cp/typeck.c:5025
+#, gcc-internal-format
+msgid "cast from %qT to %qT loses precision"
+msgstr "從 %qT 到 %qT 的轉æ›æ失精度"
+
+#: cp/typeck.c:5052
+#, gcc-internal-format
+msgid "cast from %qT to %qT increases required alignment of target type"
+msgstr "從 %qT 到 %qT 的轉æ›å¢žå¤§äº†ç›®çš„é¡žåž‹çš„å°é½Šéœ€æ±‚"
+
+#. 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:5071
+#, gcc-internal-format
+msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
+msgstr "ISO C++ ä¸å…許在函å¼æŒ‡æ¨™å’Œç‰©ä»¶æŒ‡æ¨™é–“進行轉æ›"
+
+#: cp/typeck.c:5082
+#, gcc-internal-format
+msgid "invalid cast from type %qT to type %qT"
+msgstr "從類型 %qT 到類型 %qT 的轉æ›ç„¡æ•ˆ"
+
+#: cp/typeck.c:5138
+#, gcc-internal-format
+msgid "invalid use of const_cast with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
+msgstr "在類型 %qT 上使用 const_cast 無效,因為它既ä¸æ˜¯æŒ‡æ¨™ï¼Œä¹Ÿä¸æ˜¯åƒç…§ï¼Œä¹Ÿä¸æ˜¯è³‡æ–™æˆå“¡æŒ‡æ¨™"
+
+#: cp/typeck.c:5147
+#, gcc-internal-format
+msgid "invalid use of const_cast with type %qT, which is a pointer or reference to a function type"
+msgstr "在類型 %qT 上使用 const_cast 無效,因為它是一個指標函å¼é¡žåž‹çš„指標或åƒç…§"
+
+#: cp/typeck.c:5169
+#, gcc-internal-format
+msgid "invalid const_cast of an rvalue of type %qT to type %qT"
+msgstr "從類型 %qT 到類型 %qT 中的 const_cast 無效"
+
+#: cp/typeck.c:5220
+#, gcc-internal-format
+msgid "invalid const_cast from type %qT to type %qT"
+msgstr "從類型 %qT 到類型 %qT 中的 const_cast 無效"
+
+#: cp/typeck.c:5288 cp/typeck.c:5293
+#, gcc-internal-format
+msgid "ISO C++ forbids casting to an array type %qT"
+msgstr "ISO C++ ä¸å…許轉æ›ç‚ºé™£åˆ—é¡žåž‹ %qT"
+
+#: cp/typeck.c:5301
+#, gcc-internal-format
+msgid "invalid cast to function type %qT"
+msgstr "å‘函å¼é¡žåž‹ %qT 的轉æ›ç„¡æ•ˆ"
+
+#: cp/typeck.c:5517
+#, gcc-internal-format
+msgid " in evaluation of %<%Q(%#T, %#T)%>"
+msgstr " 在求 %<%Q(%#T, %#T)%> 值時"
+
+#: cp/typeck.c:5586
+#, gcc-internal-format
+msgid "incompatible types in assignment of %qT to %qT"
+msgstr "å°‡ %qT 賦值給 %qT 時類型ä¸ç›¸å®¹"
+
+#: cp/typeck.c:5593
+#, gcc-internal-format
+msgid "ISO C++ forbids assignment of arrays"
+msgstr "ISO C++ ä¸å…許å°é™£åˆ—賦值"
+
+#: cp/typeck.c:5713
+#, gcc-internal-format
+msgid " in pointer to member function conversion"
+msgstr " 在æˆå“¡å‡½å¼æŒ‡æ¨™è½‰æ›ä¸­"
+
+#: cp/typeck.c:5724 cp/typeck.c:5750
+#, gcc-internal-format
+msgid "pointer to member cast via virtual base %qT"
+msgstr "æˆå“¡æŒ‡æ¨™è½‰æ›ç¶“由虛基礎類別 %qT"
+
+#: cp/typeck.c:5727
+#, gcc-internal-format
+msgid "pointer to member conversion via virtual base %qT"
+msgstr "æˆå“¡æŒ‡æ¨™è½‰æ›ç¶“由虛基礎類別 %qT"
+
+#: cp/typeck.c:5736
+#, gcc-internal-format
+msgid " in pointer to member conversion"
+msgstr " 在æˆå“¡æŒ‡æ¨™è½‰æ›ä¸­"
+
+#: cp/typeck.c:5826
+#, gcc-internal-format
+msgid "invalid conversion to type %qT from type %qT"
+msgstr "到類型 %qT 的轉æ›ç„¡æ•ˆï¼Œå¾žé¡žåž‹ %qT"
+
+#: cp/typeck.c:6070
+#, gcc-internal-format
+msgid "cannot convert %qT to %qT for argument %qP to %qD"
+msgstr "ä¸èƒ½å¾ž %qT 轉æ›åˆ° %qT,為引數 %qP(屬於 %qD)"
+
+#: cp/typeck.c:6073
+#, gcc-internal-format
+msgid "cannot convert %qT to %qT in %s"
+msgstr "ä¸èƒ½å°‡ %qT 轉æ›ç‚º %qT,在 %s 中"
+
+#: cp/typeck.c:6084
+#, gcc-internal-format
+msgid "%s might be a candidate for a format attribute"
+msgstr "%s å¯èƒ½æ˜¯ format 屬性的一個備é¸"
+
+#: cp/typeck.c:6157 cp/typeck.c:6159
+#, gcc-internal-format
+msgid "in passing argument %P of %q+D"
+msgstr "在傳éžå¼•æ•¸ %P (屬於 %q+D)"
+
+#: cp/typeck.c:6209
+#, gcc-internal-format
+msgid "returning reference to temporary"
+msgstr "回傳臨時變數的åƒç…§"
+
+#: cp/typeck.c:6216
+#, gcc-internal-format
+msgid "reference to non-lvalue returned"
+msgstr "回傳了一個éžå·¦å€¼çš„åƒç…§"
+
+#: cp/typeck.c:6228
+#, gcc-internal-format
+msgid "reference to local variable %q+D returned"
+msgstr "回傳了å°å±€éƒ¨è®Šæ•¸çš„ %q+D çš„åƒç…§"
+
+#: cp/typeck.c:6231
+#, gcc-internal-format
+msgid "address of local variable %q+D returned"
+msgstr "回傳了局部變數的 %q+D çš„ä½å€"
+
+#: cp/typeck.c:6265
+#, gcc-internal-format
+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:6273
+#, gcc-internal-format
+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:6276
+#, gcc-internal-format
+msgid "returning a value from a constructor"
+msgstr "建構å¼å›žå‚³å€¼"
+
+#: cp/typeck.c:6299
+#, gcc-internal-format
+msgid "return-statement with no value, in function returning %qT"
+msgstr "在回傳 %qT 的函å¼ä¸­ï¼Œå›žå‚³æ•˜è¿°ä¸å¸¶å›žå‚³å€¼"
+
+#: cp/typeck.c:6320
+#, gcc-internal-format
+msgid "return-statement with a value, in function returning 'void'"
+msgstr "在回傳「voidã€çš„函å¼ä¸­ï¼Œå›žå‚³æ•˜è¿°å¸¶å›žå‚³å€¼"
+
+#: cp/typeck.c:6351
+#, gcc-internal-format
+msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or -fcheck-new is in effect)"
+msgstr "%<operator new%> ä¸èƒ½å›žå‚³ NULL,除éžå®ƒè¢«å®£å‘Šç‚º %<throw()%> (或 -fcheck-new 起作用)"
+
+#: cp/typeck2.c:54
+#, gcc-internal-format
+msgid "type %qT is not a base type for type %qT"
+msgstr "é¡žåž‹ %qT ä¸æ˜¯é¡žåž‹ %qT 的基礎類別"
+
+#: cp/typeck2.c:294
+#, gcc-internal-format
+msgid "cannot declare variable %q+D to be of abstract type %qT"
+msgstr "ä¸èƒ½å°‡è®Šæ•¸ %q+D 宣告為具有抽象類型 %qT"
+
+#: cp/typeck2.c:297
+#, gcc-internal-format
+msgid "cannot declare parameter %q+D to be of abstract type %qT"
+msgstr "ä¸èƒ½å°‡åƒæ•¸ %q+D 宣告為具有抽象類型 %qT"
+
+#: cp/typeck2.c:300
+#, gcc-internal-format
+msgid "cannot declare field %q+D to be of abstract type %qT"
+msgstr "ä¸èƒ½å°‡æ¬„ä½ %q+D 宣告為具有抽象類型 %qT"
+
+#: cp/typeck2.c:304
+#, gcc-internal-format
+msgid "invalid abstract return type for member function %q+#D"
+msgstr "æˆå“¡å‡½å¼ %q+#D 的抽象回傳類型無效"
+
+#: cp/typeck2.c:306
+#, gcc-internal-format
+msgid "invalid abstract return type for function %q+#D"
+msgstr "å‡½å¼ %q+#D 的抽象回傳類型無效"
+
+#. Here we do not have location information.
+#: cp/typeck2.c:309
+#, gcc-internal-format
+msgid "invalid abstract type %qT for %qE"
+msgstr "抽象類型 %qT 無效,å°æ–¼ %qE 無效"
+
+#: cp/typeck2.c:311
+#, gcc-internal-format
+msgid "invalid abstract type for %q+D"
+msgstr "%q+D 的抽象類型無效"
+
+#: cp/typeck2.c:314
+#, gcc-internal-format
+msgid "cannot allocate an object of abstract type %qT"
+msgstr "無法為有抽象類型 %qT 的物件指派記憶體"
+
+#: cp/typeck2.c:322
+#, gcc-internal-format
+msgid "%J because the following virtual functions are pure within %qT:"
+msgstr "%J 因為下列虛函å¼åœ¨ %qT 中為抽象函å¼ï¼š"
+
+#: cp/typeck2.c:326
+#, gcc-internal-format
+msgid "\t%+#D"
+msgstr "\t%+#D"
+
+#: cp/typeck2.c:333
+#, gcc-internal-format
+msgid "%J since type %qT has pure virtual functions"
+msgstr "%J 因為類型 %qT 有抽象函å¼"
+
+#: cp/typeck2.c:588
+#, gcc-internal-format
+msgid "constructor syntax used, but no constructor declared for type %qT"
+msgstr "使用了建構å¼çš„語法,但沒有為類型 %qT 宣告建構å¼"
+
+#: cp/typeck2.c:602
+#, gcc-internal-format
+msgid "cannot initialize arrays using this syntax"
+msgstr "ä¸èƒ½ç”¨ä»¥èªžæ³•åˆå§‹åŒ–陣列"
+
+#: cp/typeck2.c:678
+#, gcc-internal-format
+msgid "int-array initialized from non-wide string"
+msgstr "int 型陣列由éžå¯¬å­—串åˆå§‹åŒ–"
+
+#: cp/typeck2.c:717
+#, gcc-internal-format
+msgid "cannot initialize aggregate of type %qT with a compound literal"
+msgstr "ä¸å¯ä½¿ç”¨è¤‡åˆåŽŸæ–‡åˆå§‹åŒ–類型為 %qT çš„èšé›†"
+
+#: cp/typeck2.c:791 cp/typeck2.c:889
+#, gcc-internal-format
+msgid "non-trivial designated initializers not supported"
+msgstr "ä¸å¹³å‡¡çš„代ç†åˆå§‹å€¼è¨­å®šä¸å—支æ´"
+
+#: cp/typeck2.c:911 cp/typeck2.c:925
+#, gcc-internal-format
+msgid "missing initializer for member %qD"
+msgstr "æˆå“¡ %qD 缺少åˆå§‹å€¼è¨­å®š"
+
+#: cp/typeck2.c:916
+#, gcc-internal-format
+msgid "uninitialized const member %qD"
+msgstr "未åˆå§‹åŒ–的常數æˆå“¡ %qD"
+
+#: cp/typeck2.c:918
+#, gcc-internal-format
+msgid "member %qD with uninitialized const fields"
+msgstr "æˆå“¡ %qD 有未åˆå§‹åŒ–的常數欄ä½"
+
+#: cp/typeck2.c:920
+#, gcc-internal-format
+msgid "member %qD is uninitialized reference"
+msgstr "æˆå“¡ %qD 是未åˆå§‹åŒ–çš„åƒç…§"
+
+#: cp/typeck2.c:975
+#, gcc-internal-format
+msgid "no field %qD found in union being initialized"
+msgstr "在åˆå§‹åŒ–çš„è¯åˆä¸­æ‰¾ä¸åˆ°æ¬„ä½ %qD"
+
+#: cp/typeck2.c:984
+#, gcc-internal-format
+msgid "index value instead of field name in union initializer"
+msgstr "在è¯åˆåˆå§‹å€¼è¨­å®šä¸­å‡ºç¾äº†ç´¢å¼•å€¼è€Œä¸æ˜¯æ¬„ä½å"
+
+#: cp/typeck2.c:997
+#, gcc-internal-format
+msgid "union %qT with no named members cannot be initialized"
+msgstr "ä¸å«å…·åæˆå“¡çš„è¯åˆ %qT ä¸èƒ½è¢«åˆå§‹åŒ–"
+
+#: cp/typeck2.c:1144
+#, gcc-internal-format
+msgid "circular pointer delegation detected"
+msgstr "åµæ¸¬åˆ°å¾ªç’°æŒ‡æ¨™ä»£ç†"
+
+#: cp/typeck2.c:1157
+#, gcc-internal-format
+msgid "base operand of %<->%> has non-pointer type %qT"
+msgstr "%<->%> 的基é‹ç®—元具有éžæŒ‡æ¨™é¡žåž‹ %qT"
+
+#: cp/typeck2.c:1181
+#, gcc-internal-format
+msgid "result of %<operator->()%> yields non-pointer result"
+msgstr "%<operator->()%> çš„çµæžœçµ¦å‡ºäº†éžæŒ‡æ¨™çš„çµæžœ"
+
+#: cp/typeck2.c:1183
+#, gcc-internal-format
+msgid "base operand of %<->%> is not a pointer"
+msgstr "%<->%> çš„å·¦é‹ç®—å…ƒä¸æ˜¯ä¸€å€‹æŒ‡æ¨™"
+
+#: cp/typeck2.c:1207
+#, gcc-internal-format
+msgid "%qE cannot be used as a member pointer, since it is of type %qT"
+msgstr "%qE ä¸èƒ½åšç‚ºæˆå“¡æŒ‡æ¨™ï¼Œå› ç‚ºå®ƒçš„類型為 %qT"
+
+#: cp/typeck2.c:1216
+#, gcc-internal-format
+msgid "cannot apply member pointer %qE to %qE, which is of non-aggregate type %qT"
+msgstr "無法將æˆå“¡æŒ‡æ¨™ %qE 套用到 %qE 上,因為後者的類型 %qT ä¸æ˜¯ä¸€å€‹èšé›†"
+
+#: cp/typeck2.c:1238
+#, gcc-internal-format
+msgid "pointer to member type %qT incompatible with object type %qT"
+msgstr "æˆå“¡æŒ‡æ¨™é¡žåž‹ %qT 與物件類型 %qT ä¸ç›¸å®¹"
+
+#: cp/typeck2.c:1461
+#, gcc-internal-format
+msgid "call to function %qD which throws incomplete type %q#T"
+msgstr "呼å«çš„å‡½å¼ %qD 會拋出ä¸å®Œå…¨çš„é¡žåž‹ %q#T"
+
+#: cp/typeck2.c:1464
+#, gcc-internal-format
+msgid "call to function which throws incomplete type %q#T"
+msgstr "呼å«çš„函å¼æœƒæ‹‹å‡ºä¸å®Œå…¨çš„é¡žåž‹ %q#T"
+
+#: fortran/f95-lang.c:263
+#, gcc-internal-format
+msgid "Unexpected type in truthvalue_conversion"
+msgstr "truthvalue_conversion 中類型éžé æœŸ"
+
+#: fortran/f95-lang.c:316
+#, gcc-internal-format
+msgid "can't open input file: %s"
+msgstr "無法開啟輸入檔案:%s"
+
+#: fortran/f95-lang.c:643
+#, gcc-internal-format
+msgid "global register variable %qs used in nested function"
+msgstr "巢狀函å¼ä¸­ä½¿ç”¨äº†å…¨åŸŸæš«å­˜å™¨è®Šæ•¸ %qs"
+
+#: fortran/f95-lang.c:647
+#, gcc-internal-format
+msgid "register variable %qs used in nested function"
+msgstr "巢狀函å¼ä¸­ä½¿ç”¨äº†æš«å­˜å™¨è®Šæ•¸ %qs"
+
+#: fortran/f95-lang.c:654
+#, gcc-internal-format
+msgid "address of global register variable %qs requested"
+msgstr "è¦æ±‚全域暫存器變數 %qs çš„ä½å€"
+
+#: fortran/f95-lang.c:672
+#, gcc-internal-format
+msgid "address of register variable %qs requested"
+msgstr "è¦æ±‚暫存器變數 %qs çš„ä½å€"
+
+#: fortran/trans-array.c:3055
+#, gcc-internal-format
+msgid "Possible frontend bug: array constructor not expanded"
+msgstr "å‰ç«¯ç¨‹å¼å¯èƒ½çš„程å¼ç¼ºé™·ï¼šé™£åˆ—建構å¼æœªèƒ½å±•é–‹"
+
+#: fortran/trans-array.c:4175
+#, gcc-internal-format
+msgid "Possible frontend bug: Deferred array size without pointer or allocatable attribute."
+msgstr "å¯èƒ½çš„å‰ç«¯ç¨‹å¼ç¼ºé™·ï¼šæ領陣列大å°æ™‚沒有指標或å¯æŒ‡æ´¾å±¬æ€§ã€‚"
+
+#: fortran/trans-array.c:4626
+#, gcc-internal-format
+msgid "bad expression type during walk (%d)"
+msgstr ""
+
+#: fortran/trans-const.c:334
+#, gcc-internal-format
+msgid "gfc_conv_constant_to_tree(): invalid type: %s"
+msgstr "gfc_conv_constant_to_tree():無效類型;%s"
+
+#: fortran/trans-decl.c:897
+#, gcc-internal-format
+msgid "intrinsic variable which isn't a procedure"
+msgstr "內建函å¼è®Šæ•¸ä¸æ˜¯ä¸€å€‹ç¨‹åº"
+
+#: fortran/trans-decl.c:2273
+#, gcc-internal-format
+msgid "Function does not return a value"
+msgstr "函å¼æ²’有回傳一個值"
+
+#. I don't think this should ever happen.
+#: fortran/trans-decl.c:2378
+#, gcc-internal-format
+msgid "module symbol %s in wrong namespace"
+msgstr "模組符號 %s 在錯誤的命å空間中"
+
+#: fortran/trans-decl.c:2397
+#, gcc-internal-format
+msgid "backend decl for module variable %s already exists"
+msgstr "模組變數 %s 的後端程å¼å®£å‘Šå·²å­˜åœ¨"
+
+#: fortran/trans-decl.c:2479
+#, gcc-internal-format
+msgid "unused parameter %qs"
+msgstr "未使用的åƒæ•¸ %qs"
+
+#: fortran/trans-decl.c:2484
+#, gcc-internal-format
+msgid "unused variable %qs"
+msgstr "未使用的變數 %qs"
+
+#: fortran/trans-decl.c:2689
+#, gcc-internal-format
+msgid "Function return value not set"
+msgstr "未設定函å¼å›žå‚³å€¼"
+
+#: fortran/trans-expr.c:1027
+#, gcc-internal-format
+msgid "Unknown intrinsic op"
+msgstr "ä¸æ˜Žçš„內建作業"
+
+#: fortran/trans-intrinsic.c:637
+#, gcc-internal-format
+msgid "Intrinsic function %s(%d) not recognized"
+msgstr "å…§éƒ¨å‡½å¼ %s(%d) 無法識別"
+
+#: fortran/trans-io.c:1730
+#, gcc-internal-format
+msgid "Bad IO basetype (%d)"
+msgstr "錯誤的 IO 基礎類別型(%d)"
+
+#: fortran/trans-types.c:213
+#, gcc-internal-format
+msgid "integer kind=8 not available for -fdefault-integer-8 option"
+msgstr "integer kind=8 在指定了 -fdefault-integer-8 é¸é …時無法使用"
+
+#: fortran/trans-types.c:225
+#, gcc-internal-format
+msgid "real kind=8 not available for -fdefault-real-8 option"
+msgstr "real kind=8 在指定了 -fdefault-real-8 é¸é …時無法使用"
+
+#: fortran/trans-types.c:238
+#, gcc-internal-format
+msgid "Use of -fdefault-double-8 requires -fdefault-real-8"
+msgstr "使用 -fdefault-double-8 æ™‚éœ€è¦ -fdefault-real-8"
+
+#: fortran/trans-types.c:950
+#, gcc-internal-format
+msgid "Array element size too big"
+msgstr "陣列元素太大"
+
+#: fortran/trans.c:625
+#, gcc-internal-format
+msgid "gfc_trans_code(): Bad statement code"
+msgstr "gfc_trans_code():錯誤的敘述程å¼ç¢¼"
+
+#. I changed this from sorry(...) because it should not return.
+#. TODO: Remove gfc_todo_error before releasing version 1.0.
+#: fortran/trans.h:579
+#, gcc-internal-format
+msgid "gfc_todo: Not Implemented: "
+msgstr "gfc_todo:尚未實作:"
+
+#: java/check-init.c:248
+#, gcc-internal-format
+msgid "Can't reassign a value to the final variable %qs"
+msgstr "ä¸èƒ½ç‚º final 變數 %qs é‡æ–°è³¦å€¼"
+
+#: java/check-init.c:518 java/check-init.c:531
+#, gcc-internal-format
+msgid "variable %qD may not have been initialized"
+msgstr "變數 %qD å¯èƒ½æœªç¶“åˆå§‹åŒ–"
+
+#: java/check-init.c:948
+#, gcc-internal-format
+msgid "internal error in check-init: tree code not implemented: %s"
+msgstr "check-init 時發生內部錯誤:樹程å¼ç¢¼å°šæœªå¯¦ä½œï¼š%s"
+
+#: java/check-init.c:1021
+#, gcc-internal-format
+msgid "%Jfinal field %qD may not have been initialized"
+msgstr "%Jfinal æ¬„ä½ %qD å¯èƒ½æœªç¶“åˆå§‹åŒ–"
+
+#: java/class.c:757
+#, gcc-internal-format
+msgid "bad method signature"
+msgstr "錯誤的方法簽å"
+
+#: java/class.c:802
+#, gcc-internal-format
+msgid "misplaced ConstantValue attribute (not in any field)"
+msgstr "ConstantValue 屬性ä½ç½®éŒ¯èª¤(ä¸åœ¨ä»»ä½•æ¬„ä½å…§)"
+
+#: java/class.c:805
+#, gcc-internal-format
+msgid "duplicate ConstantValue attribute for field '%s'"
+msgstr "為欄ä½ã€Œ%sã€é‡è¤‡æŒ‡å®šäº† ConstantValue 屬性"
+
+#: java/class.c:816
+#, gcc-internal-format
+msgid "ConstantValue attribute of field '%s' has wrong type"
+msgstr "欄ä½ã€Œ%sã€çš„ ConstantValue 屬性類型錯誤"
+
+#: java/class.c:1444
+#, gcc-internal-format
+msgid "%Jabstract method in non-abstract class"
+msgstr "%JéžæŠ½è±¡é¡žåˆ¥ä¸­å‡ºç¾æŠ½è±¡æ–¹æ³•"
+
+#: java/class.c:2377
+#, gcc-internal-format
+msgid "non-static method %q+D overrides static method"
+msgstr "éžéœæ…‹æ–¹æ³• %q+D 覆寫了éœæ…‹æ–¹æ³•"
+
+#: java/decl.c:1328
+#, gcc-internal-format
+msgid "%q+D used prior to declaration"
+msgstr "%q+D 在宣告å‰ä½¿ç”¨"
+
+#: java/decl.c:1369
+#, gcc-internal-format
+msgid "declaration of %qs shadows a parameter"
+msgstr "%qs 的宣告隱è—了一個åƒæ•¸"
+
+#: java/decl.c:1372
+#, gcc-internal-format
+msgid "declaration of %qs shadows a symbol from the parameter list"
+msgstr "å° %qs 的宣告隱è—了åƒæ•¸æ¸…單中的一個符號"
+
+#: java/decl.c:1833
+#, gcc-internal-format
+msgid "In %+D: overlapped variable and exception ranges at %d"
+msgstr "在 %+D 中:é‡ç–Šçš„變數和異常範åœï¼Œåœ¨ %d"
+
+#: java/decl.c:1896
+#, gcc-internal-format
+msgid "bad type in parameter debug info"
+msgstr "åƒæ•¸é™¤éŒ¯è³‡è¨Šä¸­é¡žåž‹éŒ¯èª¤"
+
+#: java/decl.c:1905
+#, gcc-internal-format
+msgid "bad PC range for debug info for local %q+D"
+msgstr "局部變數 %q+D 的呼å«è³‡è¨Šä¸­ PC 範åœéŒ¯èª¤"
+
+#: java/expr.c:369
+#, gcc-internal-format
+msgid "need to insert runtime check for %s"
+msgstr "需è¦ç‚º %s 加入執行時檢查"
+
+#: java/expr.c:498 java/expr.c:545
+#, gcc-internal-format
+msgid "assert: %s is assign compatible with %s"
+msgstr "assert:%s 與 %s 賦值相容"
+
+#: java/expr.c:665
+#, gcc-internal-format
+msgid "stack underflow - dup* operation"
+msgstr "堆疊å‘ä¸‹æº¢ä½ - dup* 作業"
+
+#: java/expr.c:1651
+#, gcc-internal-format
+msgid "reference %qs is ambiguous: appears in interface %qs and interface %qs"
+msgstr "åƒç…§ %qs 有歧義:出ç¾åœ¨ä»‹é¢ %qs å’Œä»‹é¢ %qs 中"
+
+#: java/expr.c:1679
+#, gcc-internal-format
+msgid "field %qs not found"
+msgstr "找ä¸åˆ°æ¬„ä½ %qs。"
+
+#: java/expr.c:2069
+#, gcc-internal-format
+msgid "method '%s' not found in class"
+msgstr "在類別中找ä¸åˆ°æ–¹æ³•ã€Œ%sã€"
+
+#: java/expr.c:2274
+#, gcc-internal-format
+msgid "failed to find class '%s'"
+msgstr "找ä¸åˆ°é¡žåˆ¥ã€Œ%sã€"
+
+#: java/expr.c:2312
+#, gcc-internal-format
+msgid "class '%s' has no method named '%s' matching signature '%s'"
+msgstr "類別「%sã€æ²’å…·å為「%sã€çš„方法能夠匹é…簽字「%sã€"
+
+#: java/expr.c:2343
+#, gcc-internal-format
+msgid "invokestatic on non static method"
+msgstr "éœæ…‹å‘¼å«éžéœæ…‹æ–¹æ³•"
+
+#: java/expr.c:2348
+#, gcc-internal-format
+msgid "invokestatic on abstract method"
+msgstr "ç‚ºæŠ½è±¡æ–¹æ³•å‘¼å« invokestatic"
+
+#: java/expr.c:2356
+#, gcc-internal-format
+msgid "invoke[non-static] on static method"
+msgstr "éžéœæ…‹åœ°å‘¼å«éœæ…‹æ–¹æ³•"
+
+#: java/expr.c:2682
+#, gcc-internal-format
+msgid "missing field '%s' in '%s'"
+msgstr "缺少欄ä½ã€Œ%sã€ï¼Œåœ¨ã€Œ%sã€ä¸­"
+
+#: java/expr.c:2689
+#, gcc-internal-format
+msgid "mismatching signature for field '%s' in '%s'"
+msgstr "ä¸åŒ¹é…的欄ä½ç°½å「%sã€(在 「%sã€ä¸­)"
+
+#: java/expr.c:2712
+#, gcc-internal-format
+msgid "assignment to final field %q+D not in field's class"
+msgstr "å° final æ¬„ä½ %q+D 的賦值出ç¾åœ¨è©²æ¬„ä½æ‰€å±¬é¡žåˆ¥ä»¥å¤–"
+
+#: java/expr.c:2717
+#, gcc-internal-format
+msgid "assignment to final static field %q+D not in class initializer"
+msgstr "å° final static æ¬„ä½ %q+D 的賦值沒有出ç¾åœ¨é¡žåˆ¥åˆå§‹å€¼è¨­å®šé …中"
+
+#: java/expr.c:2726
+#, gcc-internal-format
+msgid "assignment to final field %q+D not in constructor"
+msgstr "å° final æ¬„ä½ %q+D 的賦值出ç¾åœ¨å»ºæ§‹å¼ä»¥å¤–"
+
+#: java/expr.c:2916
+#, gcc-internal-format
+msgid "invalid PC in line number table"
+msgstr "列號表中 PC 無效"
+
+#: java/expr.c:2964
+#, gcc-internal-format
+msgid "unreachable bytecode from %d to before %d"
+msgstr "ä¸æœƒåŸ·è¡Œåˆ°çš„ä½å…ƒçµ„碼,從 %d 到 %d 之å‰"
+
+#: java/expr.c:3006
+#, gcc-internal-format
+msgid "unreachable bytecode from %d to the end of the method"
+msgstr "ä¸æœƒåŸ·è¡Œåˆ°çš„ä½å…ƒçµ„碼,從 %d 直到方法末尾"
+
+#. duplicate code from LOAD macro
+#: java/expr.c:3306
+#, gcc-internal-format
+msgid "unrecogized wide sub-instruction"
+msgstr "無法辨識的寬å­æŒ‡ä»¤"
+
+#: java/gjavah.c:718
+#, gcc-internal-format
+msgid "static field has same name as method"
+msgstr "éœæ…‹æ¬„ä½èˆ‡æ–¹æ³•åŒå"
+
+#: java/gjavah.c:1266
+#, gcc-internal-format
+msgid "couldn't find class %s"
+msgstr "找ä¸åˆ°é¡žåˆ¥ %s"
+
+#: java/gjavah.c:1273
+#, gcc-internal-format
+msgid "parse error while reading %s"
+msgstr "è®€å– %s 時語法錯誤"
+
+#: java/gjavah.c:1499 java/gjavah.c:1601 java/gjavah.c:1676
+#, gcc-internal-format
+msgid "unparseable signature: '%s'"
+msgstr "無法進行解æžçš„ç°½å:「%sã€"
+
+#: java/gjavah.c:2066
+#, gcc-internal-format
+msgid "Not a valid Java .class file."
+msgstr "ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„ Java .class 檔案。"
+
+#: java/gjavah.c:2074 java/jcf-parse.c:756
+#, gcc-internal-format
+msgid "error while parsing constant pool"
+msgstr "解æžå¸¸æ•¸æ± æ™‚發生錯誤"
+
+#: java/gjavah.c:2080
+#, gcc-internal-format
+msgid "error in constant pool entry #%d"
+msgstr "常數池æ¢ç›® #%d 發生錯誤"
+
+#: java/gjavah.c:2223
+#, gcc-internal-format
+msgid "class is of array type\n"
+msgstr "陣列類型的類別\n"
+
+#: java/gjavah.c:2231
+#, gcc-internal-format
+msgid "base class is of array type"
+msgstr "基礎類別是陣列"
+
+#: java/gjavah.c:2429 java/gjavah.c:2556
+#, gcc-internal-format
+msgid "no classes specified"
+msgstr "未指定類別"
+
+#: java/gjavah.c:2522
+#, gcc-internal-format
+msgid "'-MG' option is unimplemented"
+msgstr "「-MGã€é¸é …尚未實作"
+
+#: java/gjavah.c:2564
+#, gcc-internal-format
+msgid "can't specify both -o and -MD"
+msgstr "ä¸èƒ½åŒæ™‚指定 -o å’Œ -MD"
+
+#: java/gjavah.c:2587
+#, gcc-internal-format
+msgid "%s: no such class"
+msgstr "%s:沒有這個檔案"
+
+#: java/jcf-io.c:550
+#, gcc-internal-format
+msgid "source file for class %qs is newer than its matching class file. Source file %qs used instead"
+msgstr "類別 %qs 的來æºæª”案比與之匹é…的類別檔案新。改用來æºæª”案 %qs"
+
+#: java/jcf-parse.c:372
+#, gcc-internal-format
+msgid "bad string constant"
+msgstr "錯誤的字串常數"
+
+#: java/jcf-parse.c:390
+#, gcc-internal-format
+msgid "bad value constant type %d, index %d"
+msgstr "常數值錯誤,類型 %d,索引 %d"
+
+#: java/jcf-parse.c:582
+#, gcc-internal-format
+msgid "can't reopen %s: %m"
+msgstr "無法é‡æ–°é–‹å•Ÿ %s:%m"
+
+#: java/jcf-parse.c:589
+#, gcc-internal-format
+msgid "can't close %s: %m"
+msgstr "無法關閉 %s:%m"
+
+#: java/jcf-parse.c:724 java/jcf-parse.c:730
+#, gcc-internal-format
+msgid "cannot find file for class %s"
+msgstr "無法為類別 %s 找到檔案"
+
+#: java/jcf-parse.c:753
+#, gcc-internal-format
+msgid "not a valid Java .class file"
+msgstr "ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„ Java .class 檔案。"
+
+#. FIXME - where was first time
+#: java/jcf-parse.c:771
+#, gcc-internal-format
+msgid "reading class %s for the second time from %s"
+msgstr "第二次讀å–類別 %s,從 %s"
+
+#: java/jcf-parse.c:789
+#, gcc-internal-format
+msgid "error while parsing fields"
+msgstr "解æžæ¬„ä½æ™‚發生錯誤"
+
+#: java/jcf-parse.c:792
+#, gcc-internal-format
+msgid "error while parsing methods"
+msgstr "解æžæ–¹æ³•æ™‚發生錯誤"
+
+#: java/jcf-parse.c:795
+#, gcc-internal-format
+msgid "error while parsing final attributes"
+msgstr "è§£æž final 屬性時發生錯誤"
+
+#: java/jcf-parse.c:812
+#, gcc-internal-format
+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 "在 %qs 中發ç¾çš„ %<java.lang.Object%> 沒有特殊的零長度的 %<gnu.gcj.gcj-compiled%> 屬性,此一般æ„味著您的類別路徑設定有å•é¡Œã€‚用 %<info gcj \"Input Options\"%> å¯æª¢è¦–如何設定類別路徑的 info é "
+
+#: java/jcf-parse.c:846
+#, gcc-internal-format
+msgid "%Hduplicate class will only be compiled once"
+msgstr "%Hé‡è¤‡çš„類別åªæœƒè¢«ç·¨è­¯ä¸€æ¬¡"
+
+#: java/jcf-parse.c:900
+#, gcc-internal-format
+msgid "missing Code attribute"
+msgstr "缺少 Code 屬性"
+
+#: java/jcf-parse.c:1182
+#, gcc-internal-format
+msgid "no input file specified"
+msgstr "沒有指定輸入檔案"
+
+#: java/jcf-parse.c:1217
+#, gcc-internal-format
+msgid "can't close input file %s: %m"
+msgstr "ä¸èƒ½é—œé–‰è¼¸å…¥æª”案 %s:%m"
+
+#: java/jcf-parse.c:1264
+#, gcc-internal-format
+msgid "bad zip/jar file %s"
+msgstr "æ壞的 zip/jar 檔案 %s"
+
+#: java/jcf-parse.c:1485
+#, gcc-internal-format
+msgid "error while reading %s from zip file"
+msgstr "從 zip æª”æ¡ˆè®€å– %s 時發生錯誤"
+
+#: java/jcf-write.c:2668
+#, gcc-internal-format
+msgid "internal error in generate_bytecode_insn - tree code not implemented: %s"
+msgstr "generate_bytecode_insn 時發生內部錯誤 - 樹程å¼ç¢¼å°šæœªå¯¦ä½œï¼š%s"
+
+#: java/jcf-write.c:3042
+#, gcc-internal-format
+msgid "field initializer type mismatch"
+msgstr "欄ä½åˆå§‹å€¼è¨­å®šé¡žåž‹ä¸åŒ¹é…"
+
+#: java/jcf-write.c:3499
+#, gcc-internal-format
+msgid "can't create directory %s: %m"
+msgstr "無法建立目錄 %s:%m"
+
+#: java/jcf-write.c:3532
+#, gcc-internal-format
+msgid "can't open %s for writing: %m"
+msgstr "無法為寫入開啟 %s:%m"
+
+#: java/jcf-write.c:3552
+#, gcc-internal-format
+msgid "can't create %s: %m"
+msgstr "無法建立 %s:%m"
+
+#: java/jv-scan.c:194
+#, gcc-internal-format
+msgid "only one of '--print-main', '--list-class', and '--complexity' allowed"
+msgstr "「--print-mainã€ã€ã€Œ--list-classã€å’Œã€Œ--complexityã€åªèƒ½ä½¿ç”¨å…¶ä¸­ä¸€å€‹"
+
+#: java/jv-scan.c:197
+#, gcc-internal-format
+msgid "can't open output file '%s'"
+msgstr "無法開啟輸出檔案「%sã€"
+
+#: java/jv-scan.c:233
+#, gcc-internal-format
+msgid "file not found '%s'"
+msgstr "檔案找ä¸åˆ°ã€Œ%sã€"
+
+#: java/jvspec.c:436
+#, gcc-internal-format
+msgid "warning: already-compiled .class files ignored with -C"
+msgstr "警告:-C 忽略已經編譯的 .class 檔案"
+
+#: java/lang.c:615
+#, gcc-internal-format
+msgid "can't do dependency tracking with input from stdin"
+msgstr "從標準輸入輸入時無法進行ä¾è³´é …追蹤"
+
+#: java/lang.c:631
+#, gcc-internal-format
+msgid "couldn't determine target name for dependency tracking"
+msgstr "ä¸èƒ½ç¢ºå®šä¾è³´é …追蹤的目的å"
+
+#: java/lex.c:260
+#, gcc-internal-format
+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 ""
+"ä¸æ˜Žçš„編碼: %qs\n"
+"這æ„味著您的å€åŸŸç·¨ç¢¼ä¸ç‚ºæ‚¨ç³»çµ±çš„ iconv(3) 實作所支æ´ã€‚如果您\n"
+"並ä¸éœ€è¦ç‚ºæ‚¨çš„輸入檔案指定一個特別的編碼方å¼ï¼Œæ‚¨å¯ä»¥å˜—試使用\n"
+"%<--encoding=UTF-8%> é¸é …"
+
+#: java/lex.c:631
+#, gcc-internal-format
+msgid "internal error - bad unget"
+msgstr "內部錯誤 - bad unget"
+
+#: java/mangle_name.c:140 java/mangle_name.c:210
+#, gcc-internal-format
+msgid "internal error - invalid Utf8 name"
+msgstr "內部錯誤 - 無效的 utf8 å"
+
+#: java/typeck.c:531
+#, gcc-internal-format
+msgid "junk at end of signature string"
+msgstr "ç°½å稱符串末尾有無用字元"
+
+#: java/verify-glue.c:387
+#, gcc-internal-format
+msgid "verification failed: %s"
+msgstr "驗證失敗:%s"
+
+#: java/verify-glue.c:389
+#, gcc-internal-format
+msgid "verification failed at PC=%d: %s"
+msgstr "PC=%d 處校驗錯:%s"
+
+#: java/verify-glue.c:473
+#, gcc-internal-format
+msgid "bad pc in exception_table"
+msgstr "異常_表中 PC 錯誤"
+
+#: java/parse.h:129
+#, gcc-internal-format
+msgid "%s method can't be abstract"
+msgstr "%s 方法ä¸èƒ½è¢«æŠ½è±¡çš„"
+
+#: java/parse.h:133
+#, gcc-internal-format
+msgid "Constructor can't be %s"
+msgstr "建構å¼ä¸å¯ä»¥æ˜¯ %s"
+
+#. Standard error messages
+#: java/parse.h:356
+#, gcc-internal-format
+msgid "Incompatible type for %qs. Can't convert %qs to boolean"
+msgstr "%qs çš„é¡žåž‹ä¸ç›¸å®¹ã€‚ä¸èƒ½å°‡ %qs 轉æ›ç‚ºå¸ƒæž—é¡žåž‹"
+
+#: java/parse.h:361
+#, gcc-internal-format
+msgid "Incompatible type for %qs. Can't convert %qs to numeric type"
+msgstr "%qs çš„é¡žåž‹ä¸ç›¸å®¹ã€‚ä¸èƒ½å°‡ %qs 轉æ›ç‚ºæ•¸å€¼é¡žåž‹"
+
+#: java/parse.h:369
+#, gcc-internal-format
+msgid "Incompatible type for %qs. Explicit cast needed to convert %qs to integral"
+msgstr "%qs çš„é¡žåž‹ä¸ç›¸å®¹ã€‚需è¦æ˜Žç¢ºåœ°å°‡ %qs 轉æ›ç‚ºæ•´æ•¸é¡žåž‹"
+
+#: java/parse.h:374
+#, gcc-internal-format
+msgid "Incompatible type for %qs. Can't convert %qs to integral"
+msgstr "%qs çš„é¡žåž‹ä¸ç›¸å®¹ã€‚ä¸èƒ½å°‡ %qs 轉æ›ç‚ºæ•´æ•¸é¡žåž‹"
+
+#: java/parse.h:381
+#, gcc-internal-format
+msgid "Variable %qs may not have been initialized"
+msgstr "變數 %qs å¯èƒ½æœªç¶“åˆå§‹åŒ–"
+
+#: objc/objc-act.c:710
+#, gcc-internal-format
+msgid "%<@end%> must appear in an @implementation context"
+msgstr "%<@end%> 必須出ç¾åœ¨ @implementation 上下文中"
+
+#: objc/objc-act.c:739
+#, gcc-internal-format
+msgid "method declaration not in @interface context"
+msgstr "方法宣告ä¸åœ¨@interface 上下文中"
+
+#: objc/objc-act.c:750
+#, gcc-internal-format
+msgid "method definition not in @implementation context"
+msgstr "方法定義ä¸åœ¨ @implementation 上下文中"
+
+#: objc/objc-act.c:1174
+#, gcc-internal-format
+msgid "comparison of distinct Objective-C types lacks a cast"
+msgstr "比較ç¨ä¸€ç„¡äºŒçš„ Objective-C 類型時缺少轉æ›"
+
+#: objc/objc-act.c:1178
+#, gcc-internal-format
+msgid "initialization from distinct Objective-C type"
+msgstr "從ç¨ä¸€ç„¡äºŒçš„ Objective-C é¡žåž‹åˆå§‹åŒ–"
+
+#: objc/objc-act.c:1182
+#, gcc-internal-format
+msgid "assignment from distinct Objective-C type"
+msgstr "從ç¨ä¸€ç„¡äºŒçš„ Objective-C 類型賦值"
+
+#: objc/objc-act.c:1186
+#, gcc-internal-format
+msgid "distinct Objective-C type in return"
+msgstr "回傳ç¨ä¸€ç„¡äºŒçš„ Objective-C é¡žåž‹"
+
+#: objc/objc-act.c:1190
+#, gcc-internal-format
+msgid "passing argument %d of %qE from distinct Objective-C type"
+msgstr "æ°¸é ä¸åŒçš„ Objective-C 類型傳éžåƒæ•¸ %d (屬於 %qE)"
+
+#: objc/objc-act.c:1345
+#, gcc-internal-format
+msgid "statically allocated instance of Objective-C class %qs"
+msgstr "éœæ…‹æŒ‡æ´¾çš„ Objective-C 類別 %qs 的實體"
+
+#: objc/objc-act.c:1416
+#, gcc-internal-format
+msgid "protocol %qs has circular dependency"
+msgstr "å”定 %qs 存在循環ä¾è³´"
+
+#: objc/objc-act.c:1438 objc/objc-act.c:6571
+#, gcc-internal-format
+msgid "cannot find protocol declaration for %qs"
+msgstr "找ä¸åˆ° %qs çš„å”定宣告"
+
+#: objc/objc-act.c:1905 objc/objc-act.c:3339 objc/objc-act.c:7180
+#: objc/objc-act.c:7516 objc/objc-act.c:7570 objc/objc-act.c:7595
+#, gcc-internal-format
+msgid "cannot find interface declaration for %qs"
+msgstr "找ä¸åˆ° %qs 的介é¢å®£å‘Š"
+
+#: objc/objc-act.c:1909
+#, gcc-internal-format
+msgid "interface %qs does not have valid constant string layout"
+msgstr "ä»‹é¢ %qs 常數字串版é¢è¨­ç½®ç„¡æ•ˆ"
+
+#: objc/objc-act.c:1914
+#, gcc-internal-format
+msgid "cannot find reference tag for class %qs"
+msgstr "找ä¸åˆ°é¡žåˆ¥ %qs çš„åƒç…§æ¨™è¨˜"
+
+#: objc/objc-act.c:2539
+#, gcc-internal-format
+msgid "%Hcreating selector for nonexistent method %qE"
+msgstr "%H為ä¸å­˜åœ¨çš„方法 %qE 建立é¸æ“‡å­"
+
+#: objc/objc-act.c:2741
+#, gcc-internal-format
+msgid "%qs is not an Objective-C class name or alias"
+msgstr "%qs ä¸æ˜¯ä¸€å€‹ Objective-C 類別å或別å"
+
+#: objc/objc-act.c:2867 objc/objc-act.c:2898 objc/objc-act.c:7444
+#: objc/objc-act.c:7745 objc/objc-act.c:7775
+#, gcc-internal-format
+msgid "Objective-C declarations may only appear in global scope"
+msgstr "Objective-C 宣告åªèƒ½å‡ºç¾åœ¨å…¨åŸŸä½œç”¨æ¬„ä½ä¸­"
+
+#: objc/objc-act.c:2872
+#, gcc-internal-format
+msgid "cannot find class %qs"
+msgstr "找ä¸åˆ°é¡žåˆ¥ %qs"
+
+#: objc/objc-act.c:2874
+#, gcc-internal-format
+msgid "class %qs already exists"
+msgstr "類別 %qs 已存在"
+
+#: objc/objc-act.c:2918 objc/objc-act.c:7485
+#, gcc-internal-format
+msgid "%qs redeclared as different kind of symbol"
+msgstr "%qs 被é‡æ–°å®£å‘Šç‚ºä¸åŒæ„義的符號"
+
+#: objc/objc-act.c:3192
+#, gcc-internal-format
+msgid "strong-cast assignment has been intercepted"
+msgstr "強轉æ›çš„賦值被打斷"
+
+#: objc/objc-act.c:3234
+#, gcc-internal-format
+msgid "strong-cast may possibly be needed"
+msgstr "å¯èƒ½éœ€è¦å¼·é¡žåž‹è½‰æ›"
+
+#: objc/objc-act.c:3244
+#, gcc-internal-format
+msgid "instance variable assignment has been intercepted"
+msgstr "實體變數的賦值被打斷"
+
+#: objc/objc-act.c:3263
+#, gcc-internal-format
+msgid "pointer arithmetic for garbage-collected objects not allowed"
+msgstr "ä¸å…許在被無用收集的物件上進行指標算術é‹ç®—"
+
+#: objc/objc-act.c:3269
+#, gcc-internal-format
+msgid "global/static variable assignment has been intercepted"
+msgstr "全域/éœæ…‹è®Šæ•¸è³¦å€¼å·²è¢«æ‰“æ–·"
+
+#: objc/objc-act.c:3452
+#, gcc-internal-format
+msgid "use %<-fobjc-exceptions%> to enable Objective-C exception syntax"
+msgstr "使用 %<-fobjc-exceptions%> 來啟用 Objective-C 異常語法"
+
+#: objc/objc-act.c:3794
+#, gcc-internal-format
+msgid "@catch parameter is not a known Objective-C class type"
+msgstr "@catch åƒæ•¸ä¸æ˜¯ä¸€å€‹å·²çŸ¥çš„ Objective-C 類別類型"
+
+#: objc/objc-act.c:3810
+#, gcc-internal-format
+msgid "exception of type %<%T%> will be caught"
+msgstr "類型為 %<%T%> 的異常將被ç²å–"
+
+#: objc/objc-act.c:3812
+#, gcc-internal-format
+msgid "%H by earlier handler for %<%T%>"
+msgstr "%H 為早先的 %<%T%> 的處ç†è€…"
+
+#: objc/objc-act.c:3865
+#, gcc-internal-format
+msgid "%<@try%> without %<@catch%> or %<@finally%>"
+msgstr "%<@try%> 缺少å°æ‡‰çš„ %<@catch%> 或 %<@finally%>"
+
+#: objc/objc-act.c:3913
+#, gcc-internal-format
+msgid "%<@throw%> (rethrow) used outside of a @catch block"
+msgstr "在 @catch å€å¡Šå¤–使用 %<@throw%> (rethrow)"
+
+#: objc/objc-act.c:4311
+#, gcc-internal-format
+msgid "type %q+D does not have a known size"
+msgstr "é¡žåž‹ %q+D 大å°ä¸æ˜Ž"
+
+#: objc/objc-act.c:4944
+#, gcc-internal-format
+msgid "%J%s %qs"
+msgstr "%J%s %qs"
+
+#: objc/objc-act.c:4967 objc/objc-act.c:4986
+#, gcc-internal-format
+msgid "inconsistent instance variable specification"
+msgstr "ä¸ä¸€è‡´çš„實體變數指定"
+
+#: objc/objc-act.c:5843
+#, gcc-internal-format
+msgid "can not use an object as parameter to a method"
+msgstr "ä¸èƒ½å°‡ç‰©ä»¶åšç‚ºæ–¹æ³•çš„åƒæ•¸"
+
+#: objc/objc-act.c:6066
+#, gcc-internal-format
+msgid "multiple %s named %<%c%s%> found"
+msgstr "找到多個 %s å為 %<%c%s%>"
+
+#: objc/objc-act.c:6295
+#, gcc-internal-format
+msgid "no super class declared in @interface for %qs"
+msgstr "@interface 中沒有為 %qs 定義超類別"
+
+#: objc/objc-act.c:6333
+#, gcc-internal-format
+msgid "found %<-%s%> instead of %<+%s%> in protocol(s)"
+msgstr "在å”定中找到了 %<-%s%> 而ä¸æ˜¯ %<+%s%>"
+
+#: objc/objc-act.c:6392
+#, gcc-internal-format
+msgid "invalid receiver type %qs"
+msgstr "無效的接收者類型 %qs"
+
+#: objc/objc-act.c:6407
+#, gcc-internal-format
+msgid "%<%c%s%> not found in protocol(s)"
+msgstr "在å”定中找ä¸åˆ° %<%c%s%>"
+
+#: objc/objc-act.c:6421
+#, gcc-internal-format
+msgid "%qs may not respond to %<%c%s%>"
+msgstr "%qs å¯èƒ½ä¸å›žæ‡‰ %<%c%s%>"
+
+#: objc/objc-act.c:6429
+#, gcc-internal-format
+msgid "no %<%c%s%> method found"
+msgstr "找ä¸åˆ°æ–¹æ³• %<%c%s%>"
+
+#: objc/objc-act.c:6435
+#, gcc-internal-format
+msgid "(Messages without a matching method signature"
+msgstr "(訊æ¯ç¼ºå°‘匹é…的方法簽å"
+
+#: objc/objc-act.c:6436
+#, gcc-internal-format
+msgid "will be assumed to return %<id%> and accept"
+msgstr "將被å‡å®šç‚ºå›žå‚³ %<id%> 並接å—"
+
+#: objc/objc-act.c:6437
+#, gcc-internal-format
+msgid "%<...%> as arguments.)"
+msgstr "%<...%> åšç‚ºå¼•æ•¸ã€‚)"
+
+#: objc/objc-act.c:6670
+#, gcc-internal-format
+msgid "undeclared selector %qs"
+msgstr "未宣告的é¸æ“‡è€… %qs"
+
+#. 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:6712
+#, gcc-internal-format
+msgid "instance variable %qs accessed in class method"
+msgstr "實體變數 %qs 在類別方法中被存å–"
+
+#: objc/objc-act.c:6944
+#, gcc-internal-format
+msgid "duplicate declaration of method %<%c%s%>"
+msgstr "é‡è¤‡å®£å‘Šæ–¹æ³• %<%c%s%>"
+
+#: objc/objc-act.c:7005
+#, gcc-internal-format
+msgid "duplicate interface declaration for category %<%s(%s)%>"
+msgstr "類別 %<%s(%s)%> 有é‡è¤‡çš„介é¢å®£å‘Š"
+
+#: objc/objc-act.c:7032
+#, gcc-internal-format
+msgid "illegal reference type specified for instance variable %qs"
+msgstr "為實體變數 %qs 指定了無效的åƒç…§é¡žåž‹"
+
+#: objc/objc-act.c:7043
+#, gcc-internal-format
+msgid "instance variable %qs has unknown size"
+msgstr "實體變數 %qs 大å°ä¸æ˜Ž"
+
+#: objc/objc-act.c:7068
+#, gcc-internal-format
+msgid "type %qs has no default constructor to call"
+msgstr "é¡žåž‹ %qs 沒有å¯ä»¥å‘¼å«çš„é è¨­å»ºæ§‹å¼"
+
+#: objc/objc-act.c:7074
+#, gcc-internal-format
+msgid "destructor for %qs shall not be run either"
+msgstr "%qs 的解構函å¼ä¹Ÿä¸èƒ½è¢«å‘¼å«"
+
+#. Vtable pointers are Real Bad(tm), since Obj-C cannot
+#. initialize them.
+#: objc/objc-act.c:7086
+#, gcc-internal-format
+msgid "type %qs has virtual member functions"
+msgstr "é¡žåž‹ %qs 有虛æˆå“¡å‡½å¼"
+
+#: objc/objc-act.c:7087
+#, gcc-internal-format
+msgid "illegal aggregate type %qs specified for instance variable %qs"
+msgstr "無效的èšåˆé¡žåž‹ %qs 指定給實體變數 %qs"
+
+#: objc/objc-act.c:7097
+#, gcc-internal-format
+msgid "type %qs has a user-defined constructor"
+msgstr "é¡žåž‹ %qs 有一個使用者定義的建構å¼"
+
+#: objc/objc-act.c:7099
+#, gcc-internal-format
+msgid "type %qs has a user-defined destructor"
+msgstr "é¡žåž‹ %qs 有一個使用者定義的解構函å¼"
+
+#: objc/objc-act.c:7103
+#, gcc-internal-format
+msgid "C++ constructors and destructors will not be invoked for Objective-C fields"
+msgstr "ä¸æœƒç‚º Objective-C 欄ä½å‘¼å« C++ 建構和解構函å¼"
+
+#: objc/objc-act.c:7209
+#, gcc-internal-format
+msgid "instance variable %qs is declared private"
+msgstr "實體變數 %qs 被宣告為ç§æœ‰çš„"
+
+#: objc/objc-act.c:7220
+#, gcc-internal-format
+msgid "instance variable %qs is %s; this will be a hard error in the future"
+msgstr "實體變數 %qs 是 %s;這在將來會是一個嚴é‡çš„錯誤"
+
+#: objc/objc-act.c:7227
+#, gcc-internal-format
+msgid "instance variable %qs is declared %s"
+msgstr "實體變數 %qs 宣告為 %s"
+
+#: objc/objc-act.c:7253 objc/objc-act.c:7341
+#, gcc-internal-format
+msgid "incomplete implementation of class %qs"
+msgstr "類別 %qs 的實作ä¸å®Œå…¨"
+
+#: objc/objc-act.c:7257 objc/objc-act.c:7346
+#, gcc-internal-format
+msgid "incomplete implementation of category %qs"
+msgstr "類別 %qs 的實作ä¸å®Œå…¨"
+
+#: objc/objc-act.c:7262 objc/objc-act.c:7351
+#, gcc-internal-format
+msgid "method definition for %<%c%s%> not found"
+msgstr "找ä¸åˆ° %<%c%s%> 的方法定義"
+
+#: objc/objc-act.c:7392
+#, gcc-internal-format
+msgid "%s %qs does not fully implement the %qs protocol"
+msgstr "%s %qs 沒有完全實作 %qs å”定"
+
+#: objc/objc-act.c:7450 objc/objc-act.c:9118
+#, gcc-internal-format
+msgid "%<@end%> missing in implementation context"
+msgstr "實作上下文中缺少 %<@end%> "
+
+#: objc/objc-act.c:7469
+#, gcc-internal-format
+msgid "cannot find interface declaration for %qs, superclass of %qs"
+msgstr "找ä¸åˆ° %qs,%qs 的超類別的介é¢å®£å‘Š"
+
+#: objc/objc-act.c:7499
+#, gcc-internal-format
+msgid "reimplementation of class %qs"
+msgstr "類別 %qs çš„åˆä¸€æ¬¡å¯¦ä½œ"
+
+#: objc/objc-act.c:7531
+#, gcc-internal-format
+msgid "conflicting super class name %qs"
+msgstr "è¡çªçš„基礎類別å %qs"
+
+#: objc/objc-act.c:7533
+#, gcc-internal-format
+msgid "previous declaration of %qs"
+msgstr "%qs å…ˆå‰çš„宣告"
+
+#: objc/objc-act.c:7547 objc/objc-act.c:7549
+#, gcc-internal-format
+msgid "duplicate interface declaration for class %qs"
+msgstr "類別 %qs 有é‡è¤‡çš„介é¢å®£å‘Š"
+
+#: objc/objc-act.c:7803
+#, gcc-internal-format
+msgid "duplicate declaration for protocol %qs"
+msgstr "é‡è¤‡å®£å‘Šå”定 %qs"
+
+#. Add a readable method name to the warning.
+#: objc/objc-act.c:8361
+#, gcc-internal-format
+msgid "%J%s %<%c%s%>"
+msgstr "%J%s %<%c%s%>"
+
+#: objc/objc-act.c:8691
+#, gcc-internal-format
+msgid "no super class declared in interface for %qs"
+msgstr "沒有在 %qs 的介é¢ä¸­å®£å‘Šè¶…類別"
+
+#: objc/objc-act.c:8740
+#, gcc-internal-format
+msgid "[super ...] must appear in a method context"
+msgstr "[super ...] 必須出ç¾åœ¨æ–¹æ³•ä¸Šä¸‹æ–‡ä¸­"
+
+#: objc/objc-act.c:8780
+#, gcc-internal-format
+msgid "method possibly missing a [super dealloc] call"
+msgstr "方法å¯èƒ½ç¼ºå°‘一個 [super dealloc] 呼å«"
+
+#: objc/objc-act.c:9408
+#, gcc-internal-format
+msgid "local declaration of %qs hides instance variable"
+msgstr "%qs 的局部宣告隱è—了實體變數"
+
+#: treelang/tree1.c:278
+#, gcc-internal-format
+msgid "%HDuplicate name %q.*s."
+msgstr "%Hé‡è¤‡çš„å稱 %q.*s."
+
+#: treelang/treetree.c:814
+#, gcc-internal-format
+msgid "Global register variable %qD used in nested function."
+msgstr "在巢狀函å¼ä¸­ä½¿ç”¨äº†å…¨åŸŸæš«å­˜å™¨è®Šæ•¸ %qD"
+
+#: treelang/treetree.c:818
+#, gcc-internal-format
+msgid "Register variable %qD used in nested function."
+msgstr "在巢狀函å¼ä¸­ä½¿ç”¨äº†æš«å­˜å™¨è®Šæ•¸ %qD"
+
+#: treelang/treetree.c:824
+#, gcc-internal-format
+msgid "Address of global register variable %qD requested."
+msgstr "è¦æ±‚全域暫存器變數 %qD çš„ä½å€ã€‚"
+
+#: treelang/treetree.c:829
+#, gcc-internal-format
+msgid "Address of register variable %qD requested."
+msgstr "è¦æ±‚暫存器變數 %qD çš„ä½å€ã€‚"
+
+#: treelang/treetree.c:1214
+#, gcc-internal-format
+msgid "%qD attribute ignored"
+msgstr "忽略 %qD 屬性"
diff --git a/gcc/print-tree.c b/gcc/print-tree.c
index 02e5c7b9c61..eed02f235f6 100644
--- a/gcc/print-tree.c
+++ b/gcc/print-tree.c
@@ -458,6 +458,9 @@ print_node (FILE *file, const char *prefix, tree node, int indent)
print_node (file, "offset", DECL_FIELD_OFFSET (node), indent + 4);
print_node (file, "bit offset", DECL_FIELD_BIT_OFFSET (node),
indent + 4);
+ if (DECL_BIT_FIELD_TYPE (node))
+ print_node (file, "bit_field_type", DECL_BIT_FIELD_TYPE (node),
+ indent + 4);
}
print_node_brief (file, "context", DECL_CONTEXT (node), indent + 4);
diff --git a/gcc/profile.c b/gcc/profile.c
index 2f6d8aa5708..4e2213a6e2d 100644
--- a/gcc/profile.c
+++ b/gcc/profile.c
@@ -490,7 +490,6 @@ compute_branch_probabilities (void)
{
edge e;
edge_iterator ei;
- rtx note;
if (bb->count < 0)
{
@@ -546,37 +545,9 @@ compute_branch_probabilities (void)
index = 19;
hist_br_prob[index]++;
- /* Do this for RTL only. */
- if (!ir_type ())
- {
- note = find_reg_note (BB_END (bb), REG_BR_PROB, 0);
- /* There may be already note put by some other pass, such
- as builtin_expect expander. */
- if (note)
- XEXP (note, 0) = GEN_INT (prob);
- else
- REG_NOTES (BB_END (bb))
- = gen_rtx_EXPR_LIST (REG_BR_PROB, GEN_INT (prob),
- REG_NOTES (BB_END (bb)));
- }
num_branches++;
}
}
- /* Otherwise try to preserve the existing REG_BR_PROB probabilities
- tree based profile guessing put into code. BB can be the
- ENTRY_BLOCK, and it can have multiple (fake) successors in
- EH cases, but it still has no code; don't crash in this case. */
- else if (profile_status == PROFILE_ABSENT
- && !ir_type ()
- && EDGE_COUNT (bb->succs) > 1
- && BB_END (bb)
- && (note = find_reg_note (BB_END (bb), REG_BR_PROB, 0)))
- {
- int prob = INTVAL (XEXP (note, 0));
-
- BRANCH_EDGE (bb)->probability = prob;
- FALLTHRU_EDGE (bb)->probability = REG_BR_PROB_BASE - prob;
- }
/* As a last resort, distribute the probabilities evenly.
Use simple heuristics that if there are normal edges,
give all abnormals frequency of 0, otherwise distribute the
@@ -972,8 +943,7 @@ branch_prob (void)
flag_bits |= GCOV_ARC_FALLTHROUGH;
/* On trees we don't have fallthru flags, but we can
recompute them from CFG shape. */
- if (ir_type ()
- && e->flags & (EDGE_TRUE_VALUE | EDGE_FALSE_VALUE)
+ if (e->flags & (EDGE_TRUE_VALUE | EDGE_FALSE_VALUE)
&& e->src->next_bb == e->dest)
flag_bits |= GCOV_ARC_FALLTHROUGH;
@@ -989,116 +959,57 @@ branch_prob (void)
/* Line numbers. */
if (coverage_begin_output ())
{
+ gcov_position_t offset;
+
/* Initialize the output. */
output_location (NULL, 0, NULL, NULL);
- if (!ir_type ())
+ FOR_EACH_BB (bb)
{
- gcov_position_t offset;
-
- FOR_EACH_BB (bb)
- {
- rtx insn = BB_HEAD (bb);
- int ignore_next_note = 0;
-
- offset = 0;
-
- /* We are looking for line number notes. Search backward
- before basic block to find correct ones. */
- insn = prev_nonnote_insn (insn);
- if (!insn)
- insn = get_insns ();
- else
- insn = NEXT_INSN (insn);
+ block_stmt_iterator bsi;
- while (insn != BB_END (bb))
- {
- if (NOTE_P (insn))
- {
- /* Must ignore the line number notes that
- immediately follow the end of an inline function
- to avoid counting it twice. There is a note
- before the call, and one after the call. */
- if (NOTE_LINE_NUMBER (insn)
- == NOTE_INSN_REPEATED_LINE_NUMBER)
- ignore_next_note = 1;
- else if (NOTE_LINE_NUMBER (insn) <= 0)
- /*NOP*/;
- else if (ignore_next_note)
- ignore_next_note = 0;
- else
- {
- expanded_location s;
- NOTE_EXPANDED_LOCATION (s, insn);
- output_location (s.file, s.line, &offset, bb);
- }
- }
- insn = NEXT_INSN (insn);
- }
+ offset = 0;
- if (offset)
- {
- /* A file of NULL indicates the end of run. */
- gcov_write_unsigned (0);
- gcov_write_string (NULL);
- gcov_write_length (offset);
- }
+ if (bb == ENTRY_BLOCK_PTR->next_bb)
+ {
+ expanded_location curr_location =
+ expand_location (DECL_SOURCE_LOCATION (current_function_decl));
+ output_location (curr_location.file, curr_location.line,
+ &offset, bb);
}
- }
- else
- {
- gcov_position_t offset;
- FOR_EACH_BB (bb)
+ for (bsi = bsi_start (bb); !bsi_end_p (bsi); bsi_next (&bsi))
{
- block_stmt_iterator bsi;
-
- offset = 0;
-
- if (bb == ENTRY_BLOCK_PTR->next_bb)
- {
- expanded_location curr_location =
- expand_location (DECL_SOURCE_LOCATION
- (current_function_decl));
- output_location (curr_location.file, curr_location.line,
- &offset, bb);
- }
-
- for (bsi = bsi_start (bb); !bsi_end_p (bsi); bsi_next (&bsi))
- {
- tree stmt = bsi_stmt (bsi);
- if (EXPR_HAS_LOCATION (stmt))
- output_location (EXPR_FILENAME (stmt),
- EXPR_LINENO (stmt),
- &offset, bb);
- }
+ tree stmt = bsi_stmt (bsi);
+ if (EXPR_HAS_LOCATION (stmt))
+ output_location (EXPR_FILENAME (stmt), EXPR_LINENO (stmt),
+ &offset, bb);
+ }
- /* Notice GOTO expressions we eliminated while constructing the
- CFG. */
- if (single_succ_p (bb) && single_succ_edge (bb)->goto_locus)
- {
- /* ??? source_locus type is marked deprecated in input.h. */
- source_locus curr_location = single_succ_edge (bb)->goto_locus;
- /* ??? The FILE/LINE API is inconsistent for these cases. */
+ /* Notice GOTO expressions we eliminated while constructing the
+ CFG. */
+ if (single_succ_p (bb) && single_succ_edge (bb)->goto_locus)
+ {
+ /* ??? source_locus type is marked deprecated in input.h. */
+ source_locus curr_location = single_succ_edge (bb)->goto_locus;
+ /* ??? The FILE/LINE API is inconsistent for these cases. */
#ifdef USE_MAPPED_LOCATION
- output_location (LOCATION_FILE (curr_location),
- LOCATION_LINE (curr_location),
- &offset, bb);
+ output_location (LOCATION_FILE (curr_location),
+ LOCATION_LINE (curr_location), &offset, bb);
#else
- output_location (curr_location->file, curr_location->line,
- &offset, bb);
+ output_location (curr_location->file, curr_location->line,
+ &offset, bb);
#endif
- }
+ }
- if (offset)
- {
- /* A file of NULL indicates the end of run. */
- gcov_write_unsigned (0);
- gcov_write_string (NULL);
- gcov_write_length (offset);
- }
+ if (offset)
+ {
+ /* A file of NULL indicates the end of run. */
+ gcov_write_unsigned (0);
+ gcov_write_string (NULL);
+ gcov_write_length (offset);
}
- }
+ }
}
ENTRY_BLOCK_PTR->index = ENTRY_BLOCK;
@@ -1133,26 +1044,11 @@ branch_prob (void)
instrument_values (values);
/* Commit changes done by instrumentation. */
- if (ir_type ())
- bsi_commit_edge_inserts ();
- else
- {
- commit_edge_insertions_watch_calls ();
- allocate_reg_info (max_reg_num (), FALSE, FALSE);
- }
+ bsi_commit_edge_inserts ();
}
free_aux_for_edges ();
- if (!ir_type ())
- {
- /* Re-merge split basic blocks and the mess introduced by
- insert_insn_on_edge. */
- cleanup_cfg (profile_arc_flag ? CLEANUP_EXPENSIVE : 0);
- if (dump_file)
- dump_flow_info (dump_file, dump_flags);
- }
-
free_edge_list (el);
if (flag_branch_probabilities)
profile_status = PROFILE_READ;
diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c
index daf3d2296ae..0f6cabbbc27 100644
--- a/gcc/reg-stack.c
+++ b/gcc/reg-stack.c
@@ -174,9 +174,7 @@
#include "tree-pass.h"
#include "target.h"
#include "df.h"
-
-DEF_VEC_I(char);
-DEF_VEC_ALLOC_I(char,heap);
+#include "vecprim.h"
#ifdef STACK_REGS
diff --git a/gcc/regclass.c b/gcc/regclass.c
index 80dfebd7c07..573b0ea0ee8 100644
--- a/gcc/regclass.c
+++ b/gcc/regclass.c
@@ -812,8 +812,7 @@ struct costs
/* Structure used to record preferences of given pseudo. */
struct reg_pref
{
- /* (enum reg_class) prefclass is the preferred class. May be
- NO_REGS if no class is better than memory. */
+ /* (enum reg_class) prefclass is the preferred class. */
char prefclass;
/* altclass is a register class that we should use for allocating
@@ -1316,10 +1315,6 @@ regclass (rtx f, int nregs)
best = reg_class_subunion[(int) best][class];
}
- /* If no register class is better than memory, use memory. */
- if (p->mem_cost < best_cost)
- best = NO_REGS;
-
/* Record the alternate register class; i.e., a class for which
every register in it is better than using memory. If adding a
class would make a smaller class (i.e., no union of just those
@@ -1530,7 +1525,7 @@ record_reg_classes (int n_alts, int n_ops, rtx *ops,
to what we would add if this register were not in the
appropriate class. */
- if (reg_pref && reg_pref[REGNO (op)].prefclass != NO_REGS)
+ if (reg_pref)
alt_cost
+= (may_move_in_cost[mode]
[(unsigned char) reg_pref[REGNO (op)].prefclass]
@@ -1756,7 +1751,7 @@ record_reg_classes (int n_alts, int n_ops, rtx *ops,
to what we would add if this register were not in the
appropriate class. */
- if (reg_pref && reg_pref[REGNO (op)].prefclass != NO_REGS)
+ if (reg_pref)
alt_cost
+= (may_move_in_cost[mode]
[(unsigned char) reg_pref[REGNO (op)].prefclass]
@@ -1842,8 +1837,7 @@ record_reg_classes (int n_alts, int n_ops, rtx *ops,
int class;
unsigned int nr;
- if (regno >= FIRST_PSEUDO_REGISTER && reg_pref != 0
- && reg_pref[regno].prefclass != NO_REGS)
+ if (regno >= FIRST_PSEUDO_REGISTER && reg_pref != 0)
{
enum reg_class pref = reg_pref[regno].prefclass;
@@ -2177,13 +2171,28 @@ allocate_reg_info (size_t num_regs, int new_p, int renumber_p)
if (!reg_n_info)
{
- VARRAY_REG_INIT (reg_n_info, regno_allocated, "reg_n_info");
+ reg_n_info = VEC_alloc (reg_info_p, heap, regno_allocated);
+ VEC_safe_grow (reg_info_p, heap, reg_n_info, regno_allocated);
+ memset (VEC_address (reg_info_p, reg_n_info), 0,
+ sizeof (reg_info_p) * regno_allocated);
renumber = xmalloc (size_renumber);
reg_pref_buffer = XNEWVEC (struct reg_pref, regno_allocated);
}
else
{
- VARRAY_GROW (reg_n_info, regno_allocated);
+ size_t old_length = VEC_length (reg_info_p, reg_n_info);
+ if (old_length < regno_allocated)
+ {
+ reg_info_p *addr;
+ VEC_safe_grow (reg_info_p, heap, reg_n_info, regno_allocated);
+ addr = VEC_address (reg_info_p, reg_n_info);
+ memset (&addr[old_length], 0,
+ sizeof (reg_info_p) * (regno_allocated - old_length));
+ }
+ else if (regno_allocated < old_length)
+ {
+ VEC_truncate (reg_info_p, reg_n_info, regno_allocated);
+ }
if (new_p) /* If we're zapping everything, no need to realloc. */
{
@@ -2239,7 +2248,8 @@ allocate_reg_info (size_t num_regs, int new_p, int renumber_p)
for (i = min_index+local_min; i <= max; i++)
{
- VARRAY_REG (reg_n_info, i) = &reg_data->data[i-min_index];
+ VEC_replace (reg_info_p, reg_n_info, i,
+ &reg_data->data[i-min_index]);
REG_BASIC_BLOCK (i) = REG_BLOCK_UNKNOWN;
renumber[i] = -1;
reg_pref_buffer[i].prefclass = (char) NO_REGS;
@@ -2266,7 +2276,7 @@ free_reg_info (void)
struct reg_info_data *reg_data;
struct reg_info_data *reg_next;
- VARRAY_FREE (reg_n_info);
+ VEC_free (reg_info_p, heap, reg_n_info);
for (reg_data = reg_info_head; reg_data; reg_data = reg_next)
{
reg_next = reg_data->next;
diff --git a/gcc/regs.h b/gcc/regs.h
index d29e0e1aace..ee074b9ed1b 100644
--- a/gcc/regs.h
+++ b/gcc/regs.h
@@ -65,15 +65,20 @@ typedef struct reg_info_def
int basic_block; /* # of basic blocks (REG n) is used in */
} reg_info;
-extern varray_type reg_n_info;
+typedef reg_info *reg_info_p;
+
+DEF_VEC_P(reg_info_p);
+DEF_VEC_ALLOC_P(reg_info_p,heap);
+
+extern VEC(reg_info_p,heap) *reg_n_info;
/* Indexed by n, gives number of times (REG n) is used or set. */
-#define REG_N_REFS(N) (VARRAY_REG (reg_n_info, N)->refs)
+#define REG_N_REFS(N) (VEC_index (reg_info_p, reg_n_info, N)->refs)
/* Estimate frequency of references to register N. */
-#define REG_FREQ(N) (VARRAY_REG (reg_n_info, N)->freq)
+#define REG_FREQ(N) (VEC_index (reg_info_p, reg_n_info, N)->freq)
/* The weights for each insn varries from 0 to REG_FREQ_BASE.
This constant does not need to be high, as in infrequently executed
@@ -97,7 +102,7 @@ extern varray_type reg_n_info;
??? both regscan and flow allocate space for this. We should settle
on just copy. */
-#define REG_N_SETS(N) (VARRAY_REG (reg_n_info, N)->sets)
+#define REG_N_SETS(N) (VEC_index (reg_info_p, reg_n_info, N)->sets)
/* Indexed by N, gives number of insns in which register N dies.
Note that if register N is live around loops, it can die
@@ -105,7 +110,7 @@ extern varray_type reg_n_info;
So this is only a reliable indicator of how many regions of life there are
for registers that are contained in one basic block. */
-#define REG_N_DEATHS(N) (VARRAY_REG (reg_n_info, N)->deaths)
+#define REG_N_DEATHS(N) (VEC_index (reg_info_p, reg_n_info, N)->deaths)
/* Get the number of consecutive words required to hold pseudo-reg N. */
@@ -124,13 +129,14 @@ extern varray_type reg_n_info;
/* Indexed by N, gives number of CALL_INSNS across which (REG n) is live. */
-#define REG_N_CALLS_CROSSED(N) (VARRAY_REG (reg_n_info, N)->calls_crossed)
+#define REG_N_CALLS_CROSSED(N) \
+ (VEC_index (reg_info_p, reg_n_info, N)->calls_crossed)
/* Indexed by N, gives number of CALL_INSNS that may throw, across which
(REG n) is live. */
#define REG_N_THROWING_CALLS_CROSSED(N) \
- (VARRAY_REG (reg_n_info, N)->throw_calls_crossed)
+ (VEC_index (reg_info_p, reg_n_info, N)->throw_calls_crossed)
/* Total number of instructions at which (REG n) is live.
The larger this is, the less priority (REG n) gets for
@@ -147,7 +153,8 @@ extern varray_type reg_n_info;
is not required. global.c makes an allocno for this but does
not try to assign a hard register to it. */
-#define REG_LIVE_LENGTH(N) (VARRAY_REG (reg_n_info, N)->live_length)
+#define REG_LIVE_LENGTH(N) \
+ (VEC_index (reg_info_p, reg_n_info, N)->live_length)
/* Vector of substitutions of register numbers,
used to map pseudo regs into hardware regs.
@@ -182,7 +189,7 @@ extern enum machine_mode reg_raw_mode[FIRST_PSEUDO_REGISTER];
It is sometimes adjusted for subsequent changes during loop,
but not adjusted by cse even if cse invalidates it. */
-#define REGNO_FIRST_UID(N) (VARRAY_REG (reg_n_info, N)->first_uid)
+#define REGNO_FIRST_UID(N) (VEC_index (reg_info_p, reg_n_info, N)->first_uid)
/* Vector indexed by regno; gives uid of last insn using that reg.
This is computed by reg_scan for use by cse and loop.
@@ -190,7 +197,7 @@ extern enum machine_mode reg_raw_mode[FIRST_PSEUDO_REGISTER];
but not adjusted by cse even if cse invalidates it.
This is harmless since cse won't scan through a loop end. */
-#define REGNO_LAST_UID(N) (VARRAY_REG (reg_n_info, N)->last_uid)
+#define REGNO_LAST_UID(N) (VEC_index (reg_info_p, reg_n_info, N)->last_uid)
/* List made of EXPR_LIST rtx's which gives pairs of pseudo registers
that have to go in the same hard reg. */
diff --git a/gcc/reload.c b/gcc/reload.c
index dd028cd3362..c4ae334631c 100644
--- a/gcc/reload.c
+++ b/gcc/reload.c
@@ -1287,7 +1287,9 @@ push_reload (rtx in, rtx out, rtx *inloc, rtx *outloc,
#ifdef SECONDARY_MEMORY_NEEDED
/* If a memory location is needed for the copy, make one. */
- if (in != 0 && (REG_P (in) || GET_CODE (in) == SUBREG)
+ if (in != 0
+ && (REG_P (in)
+ || (GET_CODE (in) == SUBREG && REG_P (SUBREG_REG (in))))
&& reg_or_subregno (in) < FIRST_PSEUDO_REGISTER
&& SECONDARY_MEMORY_NEEDED (REGNO_REG_CLASS (reg_or_subregno (in)),
class, inmode))
@@ -1317,7 +1319,9 @@ push_reload (rtx in, rtx out, rtx *inloc, rtx *outloc,
n_reloads++;
#ifdef SECONDARY_MEMORY_NEEDED
- if (out != 0 && (REG_P (out) || GET_CODE (out) == SUBREG)
+ if (out != 0
+ && (REG_P (out)
+ || (GET_CODE (out) == SUBREG && REG_P (SUBREG_REG (out))))
&& reg_or_subregno (out) < FIRST_PSEUDO_REGISTER
&& SECONDARY_MEMORY_NEEDED (class,
REGNO_REG_CLASS (reg_or_subregno (out)),
diff --git a/gcc/reload.h b/gcc/reload.h
index a63010c630a..fbb315ef0fe 100644
--- a/gcc/reload.h
+++ b/gcc/reload.h
@@ -155,7 +155,7 @@ extern struct reload rld[MAX_RELOADS];
extern int n_reloads;
#endif
-extern GTY (()) struct varray_head_tag *reg_equiv_memory_loc_varray;
+extern GTY (()) VEC(rtx,gc) *reg_equiv_memory_loc_vec;
extern rtx *reg_equiv_constant;
extern rtx *reg_equiv_invariant;
extern rtx *reg_equiv_memory_loc;
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 838de48acec..86cd67b282a 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -113,7 +113,7 @@ rtx *reg_equiv_memory_loc;
/* We allocate reg_equiv_memory_loc inside a varray so that the garbage
collector can keep track of what is inside. */
-varray_type reg_equiv_memory_loc_varray;
+VEC(rtx,gc) *reg_equiv_memory_loc_vec;
/* Element N is the address of stack slot to which pseudo reg N is equivalent.
This is used when the address is not valid as a memory address
@@ -497,7 +497,6 @@ init_reload (void)
INIT_REG_SET (&spilled_pseudos);
INIT_REG_SET (&pseudos_counted);
- VARRAY_RTX_INIT (reg_equiv_memory_loc_varray, 0, "reg_equiv_memory_loc");
}
/* List of insn chains that are currently unused. */
@@ -1254,7 +1253,7 @@ reload (rtx first, int global)
free (reg_equiv_invariant);
reg_equiv_constant = 0;
reg_equiv_invariant = 0;
- VARRAY_GROW (reg_equiv_memory_loc_varray, 0);
+ VEC_free (rtx, gc, reg_equiv_memory_loc_vec);
reg_equiv_memory_loc = 0;
if (offsets_known_at)
diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c
index c74e44f12c6..bd2b77c6562 100644
--- a/gcc/rtlanal.c
+++ b/gcc/rtlanal.c
@@ -67,6 +67,22 @@ static int non_rtx_starting_operands[NUM_RTX_CODE];
and set by `-m...' switches. Must be defined in rtlanal.c. */
int target_flags;
+
+/* Truncation narrows the mode from SOURCE mode to DESTINATION mode.
+ If TARGET_MODE_REP_EXTENDED (DESTINATION, DESTINATION_REP) is
+ SIGN_EXTEND then while narrowing we also have to enforce the
+ representation and sign-extend the value to mode DESTINATION_REP.
+
+ If the value is already sign-extended to DESTINATION_REP mode we
+ can just switch to DESTINATION mode on it. For each pair of
+ integral modes SOURCE and DESTINATION, when truncating from SOURCE
+ to DESTINATION, NUM_SIGN_BIT_COPIES_IN_REP[SOURCE][DESTINATION]
+ contains the number of high-order bits in SOURCE that have to be
+ copies of the sign-bit so that we can do this mode-switch to
+ DESTINATION. */
+
+static unsigned int
+num_sign_bit_copies_in_rep[MAX_MODE_INT + 1][MAX_MODE_INT + 1];
/* Return 1 if the value of X is unstable
(would be different at a different point in the program).
@@ -4696,6 +4712,50 @@ get_condition (rtx jump, rtx *earliest, int allow_cc_mode, int valid_at_insn_p)
allow_cc_mode, valid_at_insn_p);
}
+/* Initialize the table NUM_SIGN_BIT_COPIES_IN_REP based on
+ TARGET_MODE_REP_EXTENDED.
+
+ Note that we assume that the property of
+ TARGET_MODE_REP_EXTENDED(B, C) is sticky to the integral modes
+ narrower than mode B. I.e., if A is a mode narrower than B then in
+ order to be able to operate on it in mode B, mode A needs to
+ satisfy the requirements set by the representation of mode B. */
+
+static void
+init_num_sign_bit_copies_in_rep (void)
+{
+ enum machine_mode mode, in_mode;
+
+ for (in_mode = GET_CLASS_NARROWEST_MODE (MODE_INT); in_mode != VOIDmode;
+ in_mode = GET_MODE_WIDER_MODE (mode))
+ for (mode = GET_CLASS_NARROWEST_MODE (MODE_INT); mode != in_mode;
+ mode = GET_MODE_WIDER_MODE (mode))
+ {
+ enum machine_mode i;
+
+ /* Currently, it is assumed that TARGET_MODE_REP_EXTENDED
+ extends to the next widest mode. */
+ gcc_assert (targetm.mode_rep_extended (mode, in_mode) == UNKNOWN
+ || GET_MODE_WIDER_MODE (mode) == in_mode);
+
+ /* We are in in_mode. Count how many bits outside of mode
+ have to be copies of the sign-bit. */
+ for (i = mode; i != in_mode; i = GET_MODE_WIDER_MODE (i))
+ {
+ enum machine_mode wider = GET_MODE_WIDER_MODE (i);
+
+ if (targetm.mode_rep_extended (i, wider) == SIGN_EXTEND
+ /* We can only check sign-bit copies starting from the
+ top-bit. In order to be able to check the bits we
+ have already seen we pretend that subsequent bits
+ have to be sign-bit copies too. */
+ || num_sign_bit_copies_in_rep [in_mode][mode])
+ num_sign_bit_copies_in_rep [in_mode][mode]
+ += GET_MODE_BITSIZE (wider) - GET_MODE_BITSIZE (i);
+ }
+ }
+}
+
/* Suppose that truncation from the machine mode of X to MODE is not a
no-op. See if there is anything special about X so that we can
assume it already contains a truncated value of MODE. */
@@ -4703,9 +4763,20 @@ get_condition (rtx jump, rtx *earliest, int allow_cc_mode, int valid_at_insn_p)
bool
truncated_to_mode (enum machine_mode mode, rtx x)
{
- return REG_P (x) && rtl_hooks.reg_truncated_to_mode (mode, x);
-}
+ /* This register has already been used in MODE without explicit
+ truncation. */
+ if (REG_P (x) && rtl_hooks.reg_truncated_to_mode (mode, x))
+ return true;
+
+ /* See if we already satisfy the requirements of MODE. If yes we
+ can just switch to MODE. */
+ if (num_sign_bit_copies_in_rep[GET_MODE (x)][mode]
+ && (num_sign_bit_copies (x, GET_MODE (x))
+ >= num_sign_bit_copies_in_rep[GET_MODE (x)][mode] + 1))
+ return true;
+ return false;
+}
/* Initialize non_rtx_starting_operands, which is used to speed up
for_each_rtx. */
@@ -4719,6 +4790,8 @@ init_rtlanal (void)
const char *first = strpbrk (format, "eEV");
non_rtx_starting_operands[i] = first ? first - format : -1;
}
+
+ init_num_sign_bit_copies_in_rep ();
}
/* Check whether this is a constant pool constant. */
diff --git a/gcc/sched-int.h b/gcc/sched-int.h
index a769434b9f6..f679760f96e 100644
--- a/gcc/sched-int.h
+++ b/gcc/sched-int.h
@@ -438,7 +438,7 @@ enum SPEC_TYPES_OFFSETS {
/* This dependence is to the instruction in the recovery block, that was
formed to recover after control-speculation failure.
- Thus, this dependence can be be overcome with generating of the copy of
+ Thus, this dependence can be overcome with generating of the copy of
this instruction in the recovery block. */
#define BE_IN_CONTROL (((ds_t) DEP_WEAK_MASK) << BE_IN_CONTROL_BITS_OFFSET)
diff --git a/gcc/stor-layout.c b/gcc/stor-layout.c
index 723e0689201..b95e0759412 100644
--- a/gcc/stor-layout.c
+++ b/gcc/stor-layout.c
@@ -663,6 +663,10 @@ update_alignment_for_field (record_layout_info rli, tree field,
bool user_align;
bool is_bitfield;
+ /* Do not attempt to align an ERROR_MARK node */
+ if (TREE_CODE (type) == ERROR_MARK)
+ return 0;
+
/* Lay out the field so we know what alignment it needs. */
layout_decl (field, known_align);
desired_align = DECL_ALIGN (field);
@@ -775,6 +779,12 @@ place_union_field (record_layout_info rli, tree field)
DECL_FIELD_BIT_OFFSET (field) = bitsize_zero_node;
SET_DECL_OFFSET_ALIGN (field, BIGGEST_ALIGNMENT);
+ /* If this is an ERROR_MARK return *after* having set the
+ field at the start of the union. This helps when parsing
+ invalid fields. */
+ if (TREE_CODE (TREE_TYPE (field)) == ERROR_MARK)
+ return;
+
/* We assume the union's size will be a multiple of a byte so we don't
bother with BITPOS. */
if (TREE_CODE (rli->t) == UNION_TYPE)
@@ -823,17 +833,6 @@ place_field (record_layout_info rli, tree field)
gcc_assert (TREE_CODE (field) != ERROR_MARK);
- if (TREE_CODE (type) == ERROR_MARK)
- {
- if (TREE_CODE (field) == FIELD_DECL)
- {
- DECL_FIELD_OFFSET (field) = size_int (0);
- DECL_FIELD_BIT_OFFSET (field) = bitsize_int (0);
- }
-
- return;
- }
-
/* If FIELD is static, then treat it like a separate variable, not
really like a structure field. If it is a FUNCTION_DECL, it's a
method. In both cases, all we do is lay out the decl, and we do
@@ -858,6 +857,16 @@ place_field (record_layout_info rli, tree field)
return;
}
+ else if (TREE_CODE (type) == ERROR_MARK)
+ {
+ /* Place this field at the current allocation position, so we
+ maintain monotonicity. */
+ DECL_FIELD_OFFSET (field) = rli->offset;
+ DECL_FIELD_BIT_OFFSET (field) = rli->bitpos;
+ SET_DECL_OFFSET_ALIGN (field, rli->offset_align);
+ return;
+ }
+
/* Work out the known alignment so far. Note that A & (-A) is the
value of the least-significant bit in A that is one. */
if (! integer_zerop (rli->bitpos))
diff --git a/gcc/target-def.h b/gcc/target-def.h
index 750015128e7..3fd22f495ee 100644
--- a/gcc/target-def.h
+++ b/gcc/target-def.h
@@ -373,6 +373,10 @@ Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#define TARGET_MIN_DIVISIONS_FOR_RECIP_MUL default_min_divisions_for_recip_mul
#endif
+#ifndef TARGET_MODE_REP_EXTENDED
+#define TARGET_MODE_REP_EXTENDED default_mode_rep_extended
+#endif
+
#ifndef TARGET_VALID_POINTER_MODE
#define TARGET_VALID_POINTER_MODE default_valid_pointer_mode
#endif
@@ -637,6 +641,7 @@ Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
TARGET_STRIP_NAME_ENCODING, \
TARGET_SHIFT_TRUNCATION_MASK, \
TARGET_MIN_DIVISIONS_FOR_RECIP_MUL, \
+ TARGET_MODE_REP_EXTENDED, \
TARGET_VALID_POINTER_MODE, \
TARGET_SCALAR_MODE_SUPPORTED_P, \
TARGET_VECTOR_MODE_SUPPORTED_P, \
diff --git a/gcc/target.h b/gcc/target.h
index b9d35782a61..f0287545d7e 100644
--- a/gcc/target.h
+++ b/gcc/target.h
@@ -520,6 +520,14 @@ struct gcc_target
the reciprocal. */
unsigned int (* min_divisions_for_recip_mul) (enum machine_mode mode);
+ /* If the representation of integral MODE is such that values are
+ always sign-extended to a wider mode MODE_REP then return
+ SIGN_EXTEND. Return UNKNOWN otherwise. */
+ /* Note that the return type ought to be RTX_CODE, but that's not
+ necessarily defined at this point. */
+ int (* mode_rep_extended) (enum machine_mode mode,
+ enum machine_mode mode_rep);
+
/* True if MODE is valid for a pointer in __attribute__((mode("MODE"))). */
bool (* valid_pointer_mode) (enum machine_mode mode);
diff --git a/gcc/targhooks.c b/gcc/targhooks.c
index f33704b0101..a12d6b557ba 100644
--- a/gcc/targhooks.c
+++ b/gcc/targhooks.c
@@ -156,6 +156,15 @@ default_min_divisions_for_recip_mul (enum machine_mode mode ATTRIBUTE_UNUSED)
return have_insn_for (DIV, mode) ? 3 : 2;
}
+/* The default implementation of TARGET_MODE_REP_EXTENDED. */
+
+int
+default_mode_rep_extended (enum machine_mode mode ATTRIBUTE_UNUSED,
+ enum machine_mode mode_rep ATTRIBUTE_UNUSED)
+{
+ return UNKNOWN;
+}
+
/* Generic hook that takes a CUMULATIVE_ARGS pointer and returns true. */
bool
diff --git a/gcc/targhooks.h b/gcc/targhooks.h
index 7c99b081a50..f6d50ddf6e2 100644
--- a/gcc/targhooks.h
+++ b/gcc/targhooks.h
@@ -34,6 +34,7 @@ extern enum machine_mode default_eh_return_filter_mode (void);
extern unsigned HOST_WIDE_INT default_shift_truncation_mask
(enum machine_mode);
extern unsigned int default_min_divisions_for_recip_mul (enum machine_mode);
+extern int default_mode_rep_extended (enum machine_mode, enum machine_mode);
extern tree default_stack_protect_guard (void);
extern tree default_external_stack_protect_fail (void);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 41ba91e905c..e6096c11bfe 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,333 @@
+2006-04-24 Andrew Pinski <pinskia@gcc.gnu.org>
+ Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/27236
+ * gcc.dg/tree-ssa/pr27236.c: New testcase.
+
+2006-04-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR c++/19963
+ * g++.dg/other/incomplete2.C: New test.
+
+2006-04-24 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/26869
+ * gcc.dg/torture/pr26869.c: New testcase.
+
+2006-04-24 Andrew Pinski <pinskia@gcc.gnu.org>
+ Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/27218
+ * g++.dg/tree-ssa/pr27218.C: New testcase.
+
+2006-04-23 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/26912
+ * g++.dg/template/friend41.C: New test.
+
+2006-04-23 David Edelsohn <edelsohn@gnu.org>
+
+ * g++.dg/opt/pr15551.C: Include cstdio.
+ (main): Use remove instead of unlink.
+
+2006-04-23 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc.dg/sibcall-7.c: New test.
+ * gcc.dg/tree-ssa/tailrecursion-1.c: Pass -foptimize-sibling-calls.
+ * gcc.dg/tree-ssa/tailrecursion-2.c: Likewise.
+ * gcc.dg/tree-ssa/tailrecursion-3.c: Likewise.
+ * gcc.dg/tree-ssa/tailrecursion-4.c: Likewise.
+ * gcc.dg/tree-ssa/tailrecursion-5.c: Likewise.
+
+2006-04-23 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/26534
+ * g++.dg/opt/bitfield1.C: New test.
+ * g++.dg/compat/abi/bitfield1_main.C: Add -w.
+ * g++.dg/compat/abi/bitfield1_x.C: Likewise.
+ * g++.dg/compat/abi/bitfield1_y.C: Likewise.
+ * g++.dg/compat/abi/bitfield2_main.C: Likewise.
+ * g++.dg/compat/abi/bitfield2_x.C: Likewise.
+ * g++.dg/compat/abi/bitfield2_y.C: Likewise.
+ * g++.dg/abi/bitfield1.C: Add dg-warning markers.
+ * g++.dg/abi/bitfield2.C: Likewise.
+ * g++.dg/init/bitfield1.C: Likewise.
+
+2006-04-23 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/25099
+ * gfortran.dg/elemental_subroutine_4.f90: New test.
+ * gfortran.dg/assumed_size_refs_1.f90: Add error to non-conforming
+ call sub (m, x).
+
+2006-04-22 Joseph S. Myers <joseph@codesourcery.com>
+
+ * gcc.c-torture/compile/20060421-1.c: New testcase.
+
+2006-04-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR c/25875
+ * gcc.dg/init-bad-4.c: New test.
+
+2006-04-21 Paul Brook <paul@codesourcery.com>
+
+ * gcc.dg/arm-vfp1.c: Skip on iWMMXt cpus.
+
+2006-04-21 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/27122
+ * gfortran.dg/defined_operators_1.f90: New test.
+ * gfortran.dg/assumed_charlen_function_1.f90: Add new error and
+ remove old ones associated, incorrectly, with Note 5.46.
+
+ PR fortran/27113
+ * gfortran.dg/character_array_constructor_1.f90: New test.
+
+2006-04-20 Jakub Jelinek <jakub@redhat.com>
+
+ * gcc.dg/20060419-1.c: New test.
+
+2006-04-19 Carlos O'Donell <carlos@codesourcery.com>
+
+ PR c/26774
+ * gcc.dg/struct-parse-1.c: New test case.
+
+2006-04-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR c++/26558
+ * g++.dg/parse/template19.C: New test.
+
+ PR c++/26739
+ * g++.old-deja/g++.pt/friend36.C: Adjust error markers.
+
+ PR c++/26036
+ * g++.dg/expr/call3.C: New test.
+
+ PR c++/10385
+ * g++.dg/conversion/dynamic1.C: New test.
+
+2006-04-19 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/27102
+ * g++.dg/template/crash35.C: Tweak error markers.
+ * g++.dg/template/crash46.C: New test.
+ * g++.old-deja/g++.brendan/friend4.C: Tweak error markers.
+ * g++.old-deja/g++.pt/incomplete1.C: Likewise.
+
+2006-04-19 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ PR rtl-optimization/14261
+ * gcc.c-torture/compile/20060419-1.c: Added.
+
+2006-04-18 Bernhard Fischer <aldot@gcc.gnu.org>
+
+ * gfortran.dg/label_1.f90: Adjust dg-error.
+
+2006-04-16 Roger Sayle <roger@eyesopen.com>
+
+ PR target/26961
+ * gcc.dg/fold-cond-1.c: New test case.
+ * gcc.dg/pr26961-1.c: Likewise.
+
+2006-04-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libgfortran/27138
+ * gfortran.dg/read_bad_advance.f90: New test.
+
+2006-04-16 Roger Sayle <roger@eyesopen.com>
+ Dale Johannesen <dalej@apple.com>
+
+ PR target/24076
+ * gcc.target/i386/vecinit-3.c: New testcase.
+ * gcc.target/i386/vecinit-4.c: Likewise.
+ * gcc.target/i386/sse-18.c: Likewise.
+ * gcc.target/i386/sse-19.c: Likewise.
+
+2006-04-16 Thomas Koenig <Thomas.Koenig@online.de>
+
+ * gfortran.dg/allocate_zerosize_1.f90: New test.
+
+2006-04-16 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/26365
+ * g++.dg/template/crash45.C: New test.
+
+2006-04-16 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/26787
+ * gfortran.dg/proc_assign_1.f90: New test.
+ * gfortran.dg/procedure_lvalue.f90: Change message.
+ * gfortran.dg/namelist_4.f90: Add new error.
+
+ PR fortran/25597
+ PR fortran/27096
+ * gfortran.dg/auto_pointer_array_result_1.f90
+
+ PR fortran/27089
+ * gfortran.dg/specification_type_resolution_1.f90
+
+ PR fortran/18803
+ PR fortran/25669
+ PR fortran/26834
+ * gfortran.dg/bounds_temporaries_1.f90: New test.
+
+ PR fortran/27124
+ * gfortran.dg/array_return_value_1.f90: New test.
+
+2006-04-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/25336
+ * gfortran/dg/g77/20030115-1.f: Delete duplicate test.
+
+2006-04-15 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/26823
+ * g++.dg/gomp/pr26823-1.C: New test.
+ * g++.dg/gomp/pr26823-2.C: New test.
+
+2006-04-13 Uros Bizjak <uros@kss-loka.si>
+
+ PR middle-end/27134
+ * gcc.dg/pr27314.c: New test.
+
+2006-04-13 Richard Henderson <rth@redhat.com>
+
+ * g++.dg/gomp/block-0.C: Update expected matches.
+
+2006-04-13 DJ Delorie <dj@redhat.com>
+
+ * lib/target-supports.exp (check_effective_target_int32plus): New.
+ (check_effective_target_ptr32plus): New.
+ (check_effective_target_size32plus): New.
+ (check_effective_target_int16): New.
+ (check_profiling_available): Add m32c to the list of unsupported targets.
+
+ * gcc.c-torture/compile/20000804-1.c: Skip m32c also.
+ * gcc.c-torture/compile/20001226-1.c: Skip m32c due to small
+ memory size.
+ * gcc.c-torture/compile/20010327-1.c: Skip m32c due to non-SI
+ pointers.
+ * gcc.c-torture/compile/20020604-1.c: Skip m32c due to small
+ size_t.
+ * gcc.c-torture/compile/20050303-1.c: Require >=32 bit integers
+ and size_t.
+ * gcc.c-torture/compile/980506-1.c: Require >=32 bit size_t.
+ * gcc.c-torture/execute/20020404-1.x: Check for any 16 bit target,
+ not just xstormy16. Skip m32c due to weird pointer size.
+ * gcc.c-torture/execute/20021024-1.x: Check for any 16 bit target,
+ not just xstormy16.
+ * gcc.c-torture/execute/shiftdi.x: Check for any 16 bit target,
+ not just xstormy16.
+ * gcc.dg/20020312-2.c: Add m32c support.
+ * gcc.dg/20040622-2.c: Require >=32 bit pointers.
+ * gcc.dg/20050321-1.c: XFail m32c due to incorrect malloc prototype
+ in test.
+ * gcc.dg/20050321-2.c: Require >=32 bit integers.
+ * gcc.dg/asm-1.c: Skip if int and short are the same size.
+ * gcc.dg/fold-mod-1.c: Require >=32 bit integers.
+ * gcc.dg/fold-overflow-1.c: Skip m32c due to small const types in asm.
+ * gcc.dg/format/bitfld-1.c: Require >=32 bit integers due to printf formats
+ * gcc.dg/init-string-2.c: Require >=32 bit integers.
+ * gcc.dg/max-1.c: Skip m32c in r8c or m16c mode due to small pointers.
+ * gcc.dg/noncompile/920923-1.c: Skip small-int message for int16 hosts.
+ * gcc.dg/pch/struct-1.c: Require >= 32 bit integers.
+ * gcc.dg/pr14796-2.c: Require >=32 bit integers.
+ * gcc.dg/pr17112-1.c: Require >=32 bit integers.
+ * gcc.dg/pr18241-1.c: XFail m32c due to incorrect memset prototype
+ in test.
+ * gcc.dg/pr18241-2.c: XFail m32c due to incorrect memset prototype
+ in test.
+ * gcc.dg/pr19340.c: Skip m32c due to lack of scheduling.
+ * gcc.dg/pr23049.c: Require >=32 bit integers.
+ * gcc.dg/torture/pr26565.c: Skip m32c as everything is already packed.
+ * gcc.dg/torture/pr26587.c: Require >=32 bit integers.
+ * gcc.dg/torture/pr26630.c: Require >=32 bit integers.
+ * gcc.dg/tree-ssa/loop-10.c: Require >=32 bit integers.
+ * gcc.dg/tree-ssa/loop-2.c: Require >=32 bit size_t.
+ * gcc.dg/tree-ssa/loop-4.c: Require >=32 bit size_t.
+ * gcc.dg/tree-ssa/ltrans-1.c: Require >=32 bit size_t.
+ * gcc.dg/tree-ssa/ltrans-2.c: Require >=32 bit size_t.
+ * gcc.dg/tree-ssa/ltrans-3.c: Require >=32 bit size_t.
+ * gcc.dg/tree-ssa/ltrans-4.c: Require >=32 bit size_t.
+ * gcc.dg/tree-ssa/pr14341.c: Require >=32 bit integers.
+ * gcc.dg/tree-ssa/pr23382.c: XFail m32c due to incorrect malloc
+ prototype in test.
+ * gcc.dg/tree-ssa/pr24627.c: Require >=32 bit integers.
+ * gcc.dg/tree-ssa/pr26180.c: Require >=32 bit integers.
+ * gcc.dg/tree-ssa/vrp14.c: Require >=32 bit integers.
+ * gcc.dg/tree-ssa/vrp21.c: Require >=32 bit integers.
+ * gcc.dg/tree-ssa/vrp22.c: Require >=32 bit integers.
+
+ * gcc.c-torture/execute/20040629-1.x: New. Require >16 bit integers.
+ * gcc.c-torture/execute/20040703-1.x: Likewise.
+ * gcc.c-torture/execute/20040705-1.x: Likewise.
+ * gcc.c-torture/execute/20040705-2.x: Likewise.
+ * gcc.c-torture/execute/20040709-1.x: Likewise.
+ * gcc.c-torture/execute/20040709-2.x: Likewise.
+ * gcc.c-torture/execute/20040811-1.x: Likewise.
+ * gcc.c-torture/execute/20050316-1.x: Likewise.
+ * gcc.c-torture/execute/bitfld-4.x: Likewise.
+ * gcc.c-torture/execute/pr19689.x: Likewise.
+ * gcc.c-torture/execute/pr7284-1.x: Likewise.
+ * gcc.c-torture/execute/usmul.x: Likewise.
+ * gcc.c-torture/execute/vrp-5.x: Likewise.
+ * gcc.c-torture/execute/vrp-6.x: Likewise.
+ * gcc.dg/debug/20041023-1.s: Likewise.
+
+2006-04-13 Roger Sayle <roger@eyesopen.com>
+
+ * gcc.target/i386/20050113-1.c: Tweak testcase to reflect that casts
+ of integers to a vector types are now constant expressions in C.
+ * gcc.dg/vect/vect-fold-1.c: New test case.
+
+2006-04-13 Paolo Bonzini <bonzini@gnu.org>
+ Ulrich Weigand <uweigand@de.ibm.com>
+
+ PR target/27006
+ * gcc.dg/vmx/pr27006.c: New testcase.
+
+2006-04-12 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libgfortran/26766
+ * gfortran.dg/write_recursive.f90: New test.
+
+2006-04-11 Mark Mitchell <mark@codesourcery.com>
+
+ * g++.dg/parse/dtor7.C: New test.
+ * g++.dg/parse/new1.C: Add error marker.
+ * g++.dg/template/new3.C: New test.
+
+ PR c++/26122
+ * g++.dg/template/pure1.C: New test.
+
+ PR c++/26295
+ * g++.dg/parse/ptrmem4.C: New test.
+
+2006-04-10 Jeff Law <law@redhat.com>
+
+ PR/27087
+ * gcc.c-torture/compile/pr27087.c: New test.
+
+2006-04-10 Aldy Hernandez <aldyh@redhat.com>
+
+ PR/21391
+ * gcc.dg/20060410.c: New.
+
+2006-04-10 Matthias Klose <doko@debian.org>
+
+ * testsuite/lib/gcc-defs.exp (gcc-set-multilib-library-path):
+ Recognize multilib directory names containing underscores.
+
+2006-04-10 Roger Sayle <roger@eyesopen.com>
+
+ * gcc.target/i386/vecinit-1.c: New test case.
+ * gcc.target/i386/vecinit-2.c: Likewise.
+
+2006-04-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/27057
+ * g++.dg/debug/dwarf2-2.C: New test.
+
2006-04-09 Richard Sandiford <richard@codesourcery.com>
PR rtl-optimization/27073
diff --git a/gcc/testsuite/g++.dg/abi/bitfield1.C b/gcc/testsuite/g++.dg/abi/bitfield1.C
index c707c85d82b..d5d04bcd73a 100644
--- a/gcc/testsuite/g++.dg/abi/bitfield1.C
+++ b/gcc/testsuite/g++.dg/abi/bitfield1.C
@@ -19,7 +19,7 @@ int main ()
{
A a;
- a.bitS = 1;
+ a.bitS = 1; // { dg-warning "overflow" }
a.bitU = 1;
a.bit = 1;
diff --git a/gcc/testsuite/g++.dg/abi/bitfield2.C b/gcc/testsuite/g++.dg/abi/bitfield2.C
index d4d1d582649..452861ec29a 100644
--- a/gcc/testsuite/g++.dg/abi/bitfield2.C
+++ b/gcc/testsuite/g++.dg/abi/bitfield2.C
@@ -19,9 +19,9 @@ int main ()
{
A a;
- a.bitS = 1;
+ a.bitS = 1; // { dg-warning "overflow" }
a.bitU = 1;
- a.bit = 1;
+ a.bit = 1; // { dg-warning "overflow" }
if (a.bitS != -1)
return 1;
diff --git a/gcc/testsuite/g++.dg/compat/abi/bitfield1_main.C b/gcc/testsuite/g++.dg/compat/abi/bitfield1_main.C
index cdb7a45a744..ce9aa1f09ad 100644
--- a/gcc/testsuite/g++.dg/compat/abi/bitfield1_main.C
+++ b/gcc/testsuite/g++.dg/compat/abi/bitfield1_main.C
@@ -1,4 +1,4 @@
-// { dg-options "-ansi -pedantic-errors -funsigned-bitfields" }
+// { dg-options "-w -ansi -pedantic-errors -funsigned-bitfields" }
// Copyright (C) 2001 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 15 Dec 2001 <nathan@codesourcery.com>
diff --git a/gcc/testsuite/g++.dg/compat/abi/bitfield1_x.C b/gcc/testsuite/g++.dg/compat/abi/bitfield1_x.C
index e081c4bc943..727632af89d 100644
--- a/gcc/testsuite/g++.dg/compat/abi/bitfield1_x.C
+++ b/gcc/testsuite/g++.dg/compat/abi/bitfield1_x.C
@@ -1,4 +1,4 @@
-// { dg-options "-ansi -pedantic-errors -funsigned-bitfields" }
+// { dg-options "-w -ansi -pedantic-errors -funsigned-bitfields" }
#include "bitfield1.h"
diff --git a/gcc/testsuite/g++.dg/compat/abi/bitfield1_y.C b/gcc/testsuite/g++.dg/compat/abi/bitfield1_y.C
index 10581dab0a4..28277671825 100644
--- a/gcc/testsuite/g++.dg/compat/abi/bitfield1_y.C
+++ b/gcc/testsuite/g++.dg/compat/abi/bitfield1_y.C
@@ -1,4 +1,4 @@
-// { dg-options "-ansi -pedantic-errors -funsigned-bitfields" }
+// { dg-options "-w -ansi -pedantic-errors -funsigned-bitfields" }
extern "C" void abort (void);
diff --git a/gcc/testsuite/g++.dg/compat/abi/bitfield2_main.C b/gcc/testsuite/g++.dg/compat/abi/bitfield2_main.C
index df74037b66b..4169843f93e 100644
--- a/gcc/testsuite/g++.dg/compat/abi/bitfield2_main.C
+++ b/gcc/testsuite/g++.dg/compat/abi/bitfield2_main.C
@@ -1,4 +1,4 @@
-// { dg-options "-ansi -pedantic-errors -fsigned-bitfields" }
+// { dg-options "-w -ansi -pedantic-errors -fsigned-bitfields" }
// Copyright (C) 2001 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 15 Dec 2001 <nathan@codesourcery.com>
diff --git a/gcc/testsuite/g++.dg/compat/abi/bitfield2_x.C b/gcc/testsuite/g++.dg/compat/abi/bitfield2_x.C
index 47b448dda26..080d21b41ea 100644
--- a/gcc/testsuite/g++.dg/compat/abi/bitfield2_x.C
+++ b/gcc/testsuite/g++.dg/compat/abi/bitfield2_x.C
@@ -1,4 +1,4 @@
-// { dg-options "-ansi -pedantic-errors -fsigned-bitfields" }
+// { dg-options "-w -ansi -pedantic-errors -fsigned-bitfields" }
#include "bitfield1.h"
diff --git a/gcc/testsuite/g++.dg/compat/abi/bitfield2_y.C b/gcc/testsuite/g++.dg/compat/abi/bitfield2_y.C
index 55edab5cbfe..d2757832861 100644
--- a/gcc/testsuite/g++.dg/compat/abi/bitfield2_y.C
+++ b/gcc/testsuite/g++.dg/compat/abi/bitfield2_y.C
@@ -1,4 +1,4 @@
-// { dg-options "-ansi -pedantic-errors -fsigned-bitfields" }
+// { dg-options "-w -ansi -pedantic-errors -fsigned-bitfields" }
extern "C" void abort (void);
diff --git a/gcc/testsuite/g++.dg/conversion/dynamic1.C b/gcc/testsuite/g++.dg/conversion/dynamic1.C
new file mode 100644
index 00000000000..a781cbaa3fb
--- /dev/null
+++ b/gcc/testsuite/g++.dg/conversion/dynamic1.C
@@ -0,0 +1,15 @@
+// PR c++/10385
+// Origin: <douglas@coc.ufrj.br>
+// { dg-do compile }
+
+struct A
+{
+ void foo();
+};
+
+A& bar();
+
+void baz()
+{
+ dynamic_cast<A&>( bar().foo ); // { dg-error "cannot dynamic_cast" }
+}
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2-2.C b/gcc/testsuite/g++.dg/debug/dwarf2-2.C
new file mode 100644
index 00000000000..9e6dbd2169d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/debug/dwarf2-2.C
@@ -0,0 +1,17 @@
+// PR debug/27057
+// { dg-do compile }
+// { dg-options "-g -feliminate-dwarf2-dups" }
+
+namespace N
+{
+}
+
+struct A
+{
+ void foo ();
+};
+
+void A::foo ()
+{
+ using namespace N;
+}
diff --git a/gcc/testsuite/g++.dg/expr/call3.C b/gcc/testsuite/g++.dg/expr/call3.C
new file mode 100644
index 00000000000..01f354a669c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/expr/call3.C
@@ -0,0 +1,12 @@
+// PR c++/26036
+// Origin: <ben@pc-doctor.com>
+// { dg-do compile }
+
+struct A
+{
+ int i;
+};
+
+A foo(int); // { dg-error "too few arguments" }
+
+int j = foo().i; // { dg-error "at this point" }
diff --git a/gcc/testsuite/g++.dg/gomp/block-0.C b/gcc/testsuite/g++.dg/gomp/block-0.C
index 1be534d59df..fa7865d8b93 100644
--- a/gcc/testsuite/g++.dg/gomp/block-0.C
+++ b/gcc/testsuite/g++.dg/gomp/block-0.C
@@ -29,5 +29,5 @@ void foo()
}
}
-// { dg-final { scan-tree-dump-times "terminate" 8 "omplower" } }
+// { dg-final { scan-tree-dump-times "terminate" 10 "omplower" } }
// { dg-final { cleanup-tree-dump "omplower" } }
diff --git a/gcc/testsuite/g++.dg/gomp/pr26823-1.C b/gcc/testsuite/g++.dg/gomp/pr26823-1.C
new file mode 100644
index 00000000000..d24eddbdfb2
--- /dev/null
+++ b/gcc/testsuite/g++.dg/gomp/pr26823-1.C
@@ -0,0 +1,23 @@
+// PR middle-end/26823
+// { dg-do compile }
+
+struct A
+{
+ ~A () {}
+};
+
+struct B
+{
+ A a;
+ B ();
+};
+
+void
+foo ()
+{
+#pragma omp parallel
+ {
+ B b[1];
+ new int;
+ }
+}
diff --git a/gcc/testsuite/g++.dg/gomp/pr26823-2.C b/gcc/testsuite/g++.dg/gomp/pr26823-2.C
new file mode 100644
index 00000000000..d4747cff5e5
--- /dev/null
+++ b/gcc/testsuite/g++.dg/gomp/pr26823-2.C
@@ -0,0 +1,29 @@
+// PR middle-end/26823
+// { dg-do compile }
+
+struct A
+{
+ ~A () {}
+};
+
+extern void bar ();
+
+void
+foo ()
+{
+#pragma omp parallel
+ {
+ {
+ A a;
+ bar ();
+ }
+ {
+ A a;
+ bar ();
+ }
+ {
+ A a;
+ bar ();
+ }
+ }
+}
diff --git a/gcc/testsuite/g++.dg/init/bitfield1.C b/gcc/testsuite/g++.dg/init/bitfield1.C
index 786a116a562..70a06d0e144 100644
--- a/gcc/testsuite/g++.dg/init/bitfield1.C
+++ b/gcc/testsuite/g++.dg/init/bitfield1.C
@@ -14,11 +14,11 @@ void f ();
int main ()
{
(f(), a.j) = 1;
- (f(), a).j = 2;
- (b ? a.j : a2.k) = 3;
+ (f(), a).j = 2; // { dg-warning "overflow" }
+ (b ? a.j : a2.k) = 3; // { dg-warning "overflow" }
(b ? a : a2).j = 0;
++(a.j) = 1;
- (a.j = 2) = 3;
+ (a.j = 2) = 3; // { dg-warning "overflow" }
}
diff --git a/gcc/testsuite/g++.dg/opt/bitfield1.C b/gcc/testsuite/g++.dg/opt/bitfield1.C
new file mode 100644
index 00000000000..49699961313
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/bitfield1.C
@@ -0,0 +1,18 @@
+// PR c++/26534
+// { dg-do run }
+// { dg-options "-w -O2" }
+
+struct X
+{
+ unsigned a:4;
+};
+
+unsigned i;
+
+int main()
+{
+ struct X x = { 63u };
+ i = x.a;
+ if (i != 15)
+ return 1;
+}
diff --git a/gcc/testsuite/g++.dg/opt/pr15551.C b/gcc/testsuite/g++.dg/opt/pr15551.C
index eb5441f837d..dc3ddc44662 100644
--- a/gcc/testsuite/g++.dg/opt/pr15551.C
+++ b/gcc/testsuite/g++.dg/opt/pr15551.C
@@ -7,6 +7,7 @@
#include <cstring>
#include <fstream>
+#include <cstdio>
using namespace std;
ostream* logfile;
@@ -19,7 +20,7 @@ int main () {
strcpy(expList, "foo");
delete logfile;
- unlink ("bar");
+ remove ("bar");
return 0;
}
diff --git a/gcc/testsuite/g++.dg/other/incomplete2.C b/gcc/testsuite/g++.dg/other/incomplete2.C
new file mode 100644
index 00000000000..127bf588e93
--- /dev/null
+++ b/gcc/testsuite/g++.dg/other/incomplete2.C
@@ -0,0 +1,14 @@
+// PR c++/19963
+// { dg-do compile }
+
+struct A;
+
+struct B
+{
+ A a : 1; // { dg-error "incomplete" }
+};
+
+struct S
+{
+ S : 1; // { dg-error "incomplete" }
+};
diff --git a/gcc/testsuite/g++.dg/parse/dtor7.C b/gcc/testsuite/g++.dg/parse/dtor7.C
index 3525624e18d..a8095126667 100644
--- a/gcc/testsuite/g++.dg/parse/dtor7.C
+++ b/gcc/testsuite/g++.dg/parse/dtor7.C
@@ -1,4 +1,4 @@
// PR c++/25856
struct A; // { dg-error "forward" }
-A::~A() {} // { dg-error "undefined" }
+A::~A() {} // { dg-error "incomplete" }
diff --git a/gcc/testsuite/g++.dg/parse/new1.C b/gcc/testsuite/g++.dg/parse/new1.C
index 31dad773935..d61c44633ce 100644
--- a/gcc/testsuite/g++.dg/parse/new1.C
+++ b/gcc/testsuite/g++.dg/parse/new1.C
@@ -1,7 +1,7 @@
-struct T;
+struct T; // { dg-error "forward" }
T* manage(T* t);
template <class Obj> struct ObjectSlot0_ {
void create() {
- void* tmp = manage(new T());
+ void* tmp = manage(new T()); // { dg-error "incomplete" }
}
};
diff --git a/gcc/testsuite/g++.dg/parse/ptrmem4.C b/gcc/testsuite/g++.dg/parse/ptrmem4.C
new file mode 100644
index 00000000000..fea08f20609
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/ptrmem4.C
@@ -0,0 +1,4 @@
+// PR c++/26295
+
+namespace A {}
+int (A::*B)(); // { dg-error "namespace" }
diff --git a/gcc/testsuite/g++.dg/parse/template19.C b/gcc/testsuite/g++.dg/parse/template19.C
new file mode 100644
index 00000000000..dc1a67334b5
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/template19.C
@@ -0,0 +1,11 @@
+// PR c++/26558
+// Origin: Jan Gorski <slimak@yk74.internetdsl.tpnet.pl>
+// { dg-do compile }
+
+template<int> struct A
+{
+ template<int> void foo()
+ {
+ foo<0>::; // { dg-error "before" }
+ }
+};
diff --git a/gcc/testsuite/g++.dg/template/crash35.C b/gcc/testsuite/g++.dg/template/crash35.C
index dd8aa2f0906..348d91d0caf 100644
--- a/gcc/testsuite/g++.dg/template/crash35.C
+++ b/gcc/testsuite/g++.dg/template/crash35.C
@@ -5,5 +5,5 @@ 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" }
+ const foo bar;
}
diff --git a/gcc/testsuite/g++.dg/template/crash45.C b/gcc/testsuite/g++.dg/template/crash45.C
new file mode 100644
index 00000000000..f138e3d6169
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/crash45.C
@@ -0,0 +1,13 @@
+// PR c++/26365
+
+struct A {};
+
+namespace N
+{
+ template<int> void foo();
+}
+
+void bar(A *p)
+{
+ p->N::foo<0>; // { dg-error "not a member" }
+}
diff --git a/gcc/testsuite/g++.dg/template/crash46.C b/gcc/testsuite/g++.dg/template/crash46.C
new file mode 100644
index 00000000000..6fbda7c0767
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/crash46.C
@@ -0,0 +1,5 @@
+// PR c++/27102
+
+template <class T>
+void T::foo() {} // { dg-error "invalid" }
+
diff --git a/gcc/testsuite/g++.dg/template/friend41.C b/gcc/testsuite/g++.dg/template/friend41.C
new file mode 100644
index 00000000000..6d686019d9a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/friend41.C
@@ -0,0 +1,11 @@
+// PR c++/26912
+
+struct Foo {
+ template<class T> int func() const;
+};
+
+class Bar {
+ friend int Foo::func<int>() const;
+};
+
+
diff --git a/gcc/testsuite/g++.dg/template/new3.C b/gcc/testsuite/g++.dg/template/new3.C
new file mode 100644
index 00000000000..c6c108903e1
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/new3.C
@@ -0,0 +1,17 @@
+extern void *operator new(__SIZE_TYPE__); // { dg-error "candidate" }
+
+template <class T >
+struct C
+{
+ void f() {
+ int* node;
+ new (&node) int(0); // { dg-error "new" }
+ }
+};
+
+void* operator new(__SIZE_TYPE__, void* __p);
+
+void g() {
+ C<int> c;
+ c.f();
+}
diff --git a/gcc/testsuite/g++.dg/template/pure1.C b/gcc/testsuite/g++.dg/template/pure1.C
new file mode 100644
index 00000000000..ca9b94e00b7
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/pure1.C
@@ -0,0 +1,6 @@
+// PR c++/26122
+
+struct A
+{
+ template<int> void foo() = 1; // { dg-error "pure" }
+};
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr27218.C b/gcc/testsuite/g++.dg/tree-ssa/pr27218.C
new file mode 100644
index 00000000000..644d2fca9ac
--- /dev/null
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr27218.C
@@ -0,0 +1,17 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+struct Vector
+{
+ double _x, _y;
+};
+typedef Vector Point;
+Vector d;
+static inline Vector f(void)
+{
+ return d;
+}
+void add_duck (void)
+{
+ new Point (f());
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/friend4.C b/gcc/testsuite/g++.old-deja/g++.brendan/friend4.C
index af33199a14e..4d436e5c9c6 100644
--- a/gcc/testsuite/g++.old-deja/g++.brendan/friend4.C
+++ b/gcc/testsuite/g++.old-deja/g++.brendan/friend4.C
@@ -2,5 +2,5 @@
// GROUPS passed friends
// do_friend should complain that foo was declared as a friend of
// A before A was defined
-struct A;
+struct A; // { dg-error "forward" }
struct B { friend A::foo (); };// { dg-error "" } .*
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend36.C b/gcc/testsuite/g++.old-deja/g++.pt/friend36.C
index 051803b2e3d..f5cb8d40a06 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/friend36.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/friend36.C
@@ -1,12 +1,12 @@
// { dg-do assemble }
template <class T>
-void f(T) {} // { dg-error "" } previously defined here
+void f(T) {} // { dg-error "previously" }
template <class U>
struct S {
template <class T>
- friend void f(T) {} // { dg-error "" } redeclaration
+ friend void f(T) {} // { dg-error "redefinition" }
};
S<int> si;
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/incomplete1.C b/gcc/testsuite/g++.old-deja/g++.pt/incomplete1.C
index 37c30a44805..9189df22276 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/incomplete1.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/incomplete1.C
@@ -6,6 +6,6 @@
// Inspired by by 756. We'd ICE when trying to define a member of an
// incomplete template type.
-template<class X> struct ObjCount; // { dg-error "" } forward decl
+template<class X> struct ObjCount;
template<class X> int ObjCount<X>::m; // { dg-error "" } undefined type
diff --git a/gcc/testsuite/gcc.c-torture/compile/20000804-1.c b/gcc/testsuite/gcc.c-torture/compile/20000804-1.c
index 1825cba14da..0decbc9e0b9 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20000804-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20000804-1.c
@@ -2,6 +2,7 @@
statement to force a 'long long' (64-bits) to go in a register. */
/* { dg-do assemble { xfail m6811-*-* m6812-*-* h8300-*-* } } */
/* { dg-skip-if "" { { i?86-*-* x86_64-*-* } && ilp32 } { "-fpic" "-fPIC" } { "" } } */
+/* { dg-skip-if "No 64-bit registers" { m32c-*-* } { "*" } { "" } } */
/* Copyright (C) 2000, 2003 Free Software Foundation */
__complex__ long long f ()
diff --git a/gcc/testsuite/gcc.c-torture/compile/20001226-1.c b/gcc/testsuite/gcc.c-torture/compile/20001226-1.c
index 0e71b1445ee..9f1645af099 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20001226-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20001226-1.c
@@ -2,6 +2,7 @@
than 64K. */
/* { dg-do assemble { xfail m6811-*-* m6812-*-* } } */
/* { dg-xfail-if "jump beyond 128K not supported" "xtensa-*-*" "-O0" "" } */
+/* { dg-skip-if "" { m32c-*-* } { "*" } { "" } } */
/* This testcase exposed two branch shortening bugs on powerpc. */
diff --git a/gcc/testsuite/gcc.c-torture/compile/20010327-1.c b/gcc/testsuite/gcc.c-torture/compile/20010327-1.c
index 10f7e39516f..189990ade3f 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20010327-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20010327-1.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "non-SI pointers" { m32c-*-* } { "*" } { "" } } */
+
/* This testcase tests whether GCC can produce static initialized data
that references addresses of size 'unsigned long', even if that's not
the same as __SIZE_TYPE__. (See 20011114-1.c for the same test of
@@ -5,5 +7,6 @@
Some rare environments might not have the required relocs to support
this; they should have this test disabled in the .x file. */
+
extern void _text;
static unsigned long x = (unsigned long) &_text - 0x10000000L - 1;
diff --git a/gcc/testsuite/gcc.c-torture/compile/20020604-1.c b/gcc/testsuite/gcc.c-torture/compile/20020604-1.c
index ef24e1cf139..61632f725f4 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20020604-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20020604-1.c
@@ -1,6 +1,7 @@
/* The array is too big. */
/* { dg-xfail-if "The array too big" { "h8300-*-*" } { "-mno-h" "-mn" } { "" } } */
/* { dg-do assemble { xfail m6811-*-* m6812-*-* } } */
+/* { dg-skip-if "" { m32c-*-* } { } { } } */
/* PR c/6957
This testcase ICEd at -O2 on IA-32, because
diff --git a/gcc/testsuite/gcc.c-torture/compile/20050303-1.c b/gcc/testsuite/gcc.c-torture/compile/20050303-1.c
index 5993a452153..22154b30af5 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20050303-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20050303-1.c
@@ -1,3 +1,6 @@
+/* { dg-require-effective-target int32plus } */
+/* { dg-require-effective-target size32plus } */
+
void crc()
{
int toread;
diff --git a/gcc/testsuite/gcc.c-torture/compile/20060419-1.c b/gcc/testsuite/gcc.c-torture/compile/20060419-1.c
new file mode 100644
index 00000000000..dc346ae02a1
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20060419-1.c
@@ -0,0 +1,21 @@
+/* This failed because if conversion didn't handle insv patterns properly. */
+
+union y
+{
+ int a;
+ unsigned short b;
+};
+
+extern void bar (unsigned short u, union y v);
+
+void
+foo (int check)
+{
+ union y x;
+
+ if (check != 0)
+ x.b = 1;
+ else
+ x.b = 2;
+ bar (x.b, x);
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/20060421-1.c b/gcc/testsuite/gcc.c-torture/compile/20060421-1.c
new file mode 100644
index 00000000000..1bd4079b4c8
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20060421-1.c
@@ -0,0 +1,9 @@
+/* This test used to ICE on ARM with -mcpu=iwmmxt. */
+void
+foo (void)
+{
+ long long int a;
+ unsigned long b[249]; /* >= 249 causes failure */
+ register unsigned int c;
+ b[c] = (a & (1ULL << c)) ? 1 : 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/980506-1.c b/gcc/testsuite/gcc.c-torture/compile/980506-1.c
index 9bc2d8afc3e..6cccb1eae81 100644
--- a/gcc/testsuite/gcc.c-torture/compile/980506-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/980506-1.c
@@ -1,6 +1,7 @@
/* The arrays are too large for the xstormy16 - won't fit in 16 bits. */
/* { dg-xfail-if "The array too big" { "h8300-*-*" } { "-mno-h" "-mn" } { "" } } */
/* { dg-do assemble { xfail xstormy16-*-* m6811-*-* m6812-*-* } } */
+/* { dg-require-effective-target size32plus } */
unsigned char TIFFFax2DMode[20][256];
unsigned char TIFFFax2DNextState[20][256];
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr27087.c b/gcc/testsuite/gcc.c-torture/compile/pr27087.c
new file mode 100644
index 00000000000..3add13bcbeb
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr27087.c
@@ -0,0 +1,23 @@
+extern int ptbl[4];
+extern int ctbl[4];
+
+void doViews(void) {
+ int *c = ctbl, *p = ptbl;
+ while (1)
+ {
+ p++;
+ c++;
+ if (*p)
+ {
+ if (c == p)
+ {
+ if (*c)
+ return;
+ }
+ else
+ return;
+ }
+ }
+
+ g();
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20020404-1.x b/gcc/testsuite/gcc.c-torture/execute/20020404-1.x
index 25ed5786b83..e4fd61a44a0 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20020404-1.x
+++ b/gcc/testsuite/gcc.c-torture/execute/20020404-1.x
@@ -1,7 +1,15 @@
-# 16-bit "int"
-if { [istarget "xstormy16-*"] } {
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
return 1
}
+# m32c pointers can be 24 bits in a 32 bit variable, so the test
+# patterns may get truncated.
+if { [istarget "m32c-*-*"] } {
+ return 1
+}
+
+
return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/20021024-1.x b/gcc/testsuite/gcc.c-torture/execute/20021024-1.x
index 25ed5786b83..121fcfecc2c 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20021024-1.x
+++ b/gcc/testsuite/gcc.c-torture/execute/20021024-1.x
@@ -1,7 +1,7 @@
-# 16-bit "int"
-if { [istarget "xstormy16-*"] } {
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
return 1
}
-return 0
-
+return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040629-1.x b/gcc/testsuite/gcc.c-torture/execute/20040629-1.x
new file mode 100644
index 00000000000..121fcfecc2c
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20040629-1.x
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+ return 1
+}
+
+return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040703-1.x b/gcc/testsuite/gcc.c-torture/execute/20040703-1.x
new file mode 100644
index 00000000000..121fcfecc2c
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20040703-1.x
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+ return 1
+}
+
+return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040705-1.x b/gcc/testsuite/gcc.c-torture/execute/20040705-1.x
new file mode 100644
index 00000000000..121fcfecc2c
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20040705-1.x
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+ return 1
+}
+
+return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040705-2.x b/gcc/testsuite/gcc.c-torture/execute/20040705-2.x
new file mode 100644
index 00000000000..121fcfecc2c
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20040705-2.x
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+ return 1
+}
+
+return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040709-1.x b/gcc/testsuite/gcc.c-torture/execute/20040709-1.x
new file mode 100644
index 00000000000..121fcfecc2c
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20040709-1.x
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+ return 1
+}
+
+return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040709-2.x b/gcc/testsuite/gcc.c-torture/execute/20040709-2.x
new file mode 100644
index 00000000000..121fcfecc2c
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20040709-2.x
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+ return 1
+}
+
+return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040811-1.x b/gcc/testsuite/gcc.c-torture/execute/20040811-1.x
new file mode 100644
index 00000000000..121fcfecc2c
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20040811-1.x
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+ return 1
+}
+
+return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20050316-1.x b/gcc/testsuite/gcc.c-torture/execute/20050316-1.x
new file mode 100644
index 00000000000..121fcfecc2c
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20050316-1.x
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+ return 1
+}
+
+return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/bitfld-4.x b/gcc/testsuite/gcc.c-torture/execute/bitfld-4.x
new file mode 100644
index 00000000000..121fcfecc2c
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/bitfld-4.x
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+ return 1
+}
+
+return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr19689.x b/gcc/testsuite/gcc.c-torture/execute/pr19689.x
new file mode 100644
index 00000000000..121fcfecc2c
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr19689.x
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+ return 1
+}
+
+return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr7284-1.x b/gcc/testsuite/gcc.c-torture/execute/pr7284-1.x
new file mode 100644
index 00000000000..121fcfecc2c
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr7284-1.x
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+ return 1
+}
+
+return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/shiftdi.x b/gcc/testsuite/gcc.c-torture/execute/shiftdi.x
index 25ed5786b83..121fcfecc2c 100644
--- a/gcc/testsuite/gcc.c-torture/execute/shiftdi.x
+++ b/gcc/testsuite/gcc.c-torture/execute/shiftdi.x
@@ -1,7 +1,7 @@
-# 16-bit "int"
-if { [istarget "xstormy16-*"] } {
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
return 1
}
-return 0
-
+return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/usmul.x b/gcc/testsuite/gcc.c-torture/execute/usmul.x
new file mode 100644
index 00000000000..121fcfecc2c
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/usmul.x
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+ return 1
+}
+
+return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/vrp-5.x b/gcc/testsuite/gcc.c-torture/execute/vrp-5.x
new file mode 100644
index 00000000000..121fcfecc2c
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/vrp-5.x
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+ return 1
+}
+
+return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/vrp-6.x b/gcc/testsuite/gcc.c-torture/execute/vrp-6.x
new file mode 100644
index 00000000000..121fcfecc2c
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/vrp-6.x
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+ return 1
+}
+
+return 0;
diff --git a/gcc/testsuite/gcc.dg/20020312-2.c b/gcc/testsuite/gcc.dg/20020312-2.c
index 211fd755ad8..6acc1e6cbb5 100644
--- a/gcc/testsuite/gcc.dg/20020312-2.c
+++ b/gcc/testsuite/gcc.dg/20020312-2.c
@@ -70,6 +70,8 @@ extern void abort (void);
# define PIC_REG "r12"
#elif defined(__x86_64__)
/* No pic register. */
+#elif defined(__m32c__)
+/* No pic register. */
#else
# error "Modify the test for your target."
#endif
diff --git a/gcc/testsuite/gcc.dg/20040622-2.c b/gcc/testsuite/gcc.dg/20040622-2.c
index 32974018d54..0be320fa4e2 100644
--- a/gcc/testsuite/gcc.dg/20040622-2.c
+++ b/gcc/testsuite/gcc.dg/20040622-2.c
@@ -1,4 +1,5 @@
/* { dg-do link } */
+/* { dg-require-effective-target ptr32plus } */
/* This validates codegen for [r1+32760] on Darwin. */
void f(char x[32688], double *y, double *z) __attribute__((noinline));
void f(char x[32688], double *y, double *z) {}
diff --git a/gcc/testsuite/gcc.dg/20050321-1.c b/gcc/testsuite/gcc.dg/20050321-1.c
index 01c68cd5ed9..5455db44304 100644
--- a/gcc/testsuite/gcc.dg/20050321-1.c
+++ b/gcc/testsuite/gcc.dg/20050321-1.c
@@ -3,6 +3,8 @@
/* { dg-do compile } */
/* { dg-options "-O2 -fmodulo-sched" } */
+/* malloc doesn't take a long. */
+/* { dg-xfail-if "" { "m32c-*-*" } { "*" } { "" } } */
extern void * malloc (long);
struct s {
diff --git a/gcc/testsuite/gcc.dg/20050321-2.c b/gcc/testsuite/gcc.dg/20050321-2.c
index 06d87cc225b..7f7e1c09dff 100644
--- a/gcc/testsuite/gcc.dg/20050321-2.c
+++ b/gcc/testsuite/gcc.dg/20050321-2.c
@@ -6,6 +6,7 @@
/* { dg-do link { target fpic } } */
/* { dg-options "-g1 -fpic" } */
/* { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))" "PIC unsupported" { xfail *-*-netware* } 0 } */
+/* { dg-require-effective-target int32plus } */
#define A(n) \
case n##1: return n##1 * 131 + 63; \
diff --git a/gcc/testsuite/gcc.dg/20060410.c b/gcc/testsuite/gcc.dg/20060410.c
new file mode 100644
index 00000000000..88253bb43f3
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20060410.c
@@ -0,0 +1,16 @@
+/* { dg-do compile } */
+/* { dg-options "-g" } */
+
+/* Make sure we didn't eliminate foo because we thought it was unused. */
+
+struct foo
+{
+ int i;
+};
+
+int bar (void)
+{
+ return ((struct foo *)0x1234)->i;
+}
+
+/* { dg-final { scan-assembler "foo" } } */
diff --git a/gcc/testsuite/gcc.dg/20060419-1.c b/gcc/testsuite/gcc.dg/20060419-1.c
new file mode 100644
index 00000000000..754774162a2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20060419-1.c
@@ -0,0 +1,4 @@
+struct T {
+ unsigned char f[1] __attribute__((packed)); /* { dg-warning "ignored for field of type.*unsigned char\\\[1\\\]" } */
+ unsigned char g[14] __attribute__((packed)); /* { dg-warning "ignored for field of type.*unsigned char\\\[14\\\]" } */
+};
diff --git a/gcc/testsuite/gcc.dg/arm-vfp1.c b/gcc/testsuite/gcc.dg/arm-vfp1.c
index 5898e8027e6..3b6a45dc23f 100644
--- a/gcc/testsuite/gcc.dg/arm-vfp1.c
+++ b/gcc/testsuite/gcc.dg/arm-vfp1.c
@@ -1,6 +1,7 @@
/* { dg-do compile } */
/* { dg-options "-O2 -mfpu=vfp -mfloat-abi=softfp" } */
/* { dg-require-effective-target arm32 } */
+/* { dg-skip-if "" { *-*-* } { "-mcpu=iwmmxt" "-march=iwmmxt" } { "" } } */
extern float fabsf (float);
extern float sqrtf (float);
diff --git a/gcc/testsuite/gcc.dg/asm-1.c b/gcc/testsuite/gcc.dg/asm-1.c
index 3bf5c29c4cd..fecac780f69 100644
--- a/gcc/testsuite/gcc.dg/asm-1.c
+++ b/gcc/testsuite/gcc.dg/asm-1.c
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-require-effective-target int32plus } */
struct x {
int selector;
diff --git a/gcc/testsuite/gcc.dg/fold-cond-1.c b/gcc/testsuite/gcc.dg/fold-cond-1.c
new file mode 100644
index 00000000000..e9212d1ae7b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/fold-cond-1.c
@@ -0,0 +1,28 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-original" } */
+
+_Bool test1(int a, int b)
+{
+ return a ? b : 0;
+}
+
+_Bool test2(int c, int d)
+{
+ return c ? d : 1;
+}
+
+_Bool test3(int e, int f)
+{
+ return e ? 0 : f;
+}
+
+_Bool test4(int g, int h)
+{
+ return g ? 1 : h;
+}
+
+/* { dg-final { scan-tree-dump-times "a != 0 \&\& b != 0" 1 "original" } } */
+/* { dg-final { scan-tree-dump-times "c == 0 \\|\\| d != 0" 1 "original" } } */
+/* { dg-final { scan-tree-dump-times "e == 0 \&\& f != 0" 1 "original" } } */
+/* { dg-final { scan-tree-dump-times "\\(g \\| h\\) != 0" 1 "original" } } */
+/* { dg-final { cleanup-tree-dump "original" } } */
diff --git a/gcc/testsuite/gcc.dg/fold-mod-1.c b/gcc/testsuite/gcc.dg/fold-mod-1.c
index 4a26d0fc088..3f7696f1760 100644
--- a/gcc/testsuite/gcc.dg/fold-mod-1.c
+++ b/gcc/testsuite/gcc.dg/fold-mod-1.c
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-require-effective-target int32plus } */
/* { dg-options "-fdump-tree-gimple" } */
#define ABS(x) (x > 0 ? x : -x)
diff --git a/gcc/testsuite/gcc.dg/fold-overflow-1.c b/gcc/testsuite/gcc.dg/fold-overflow-1.c
index 5e410b9bafb..bed8aac9f9b 100644
--- a/gcc/testsuite/gcc.dg/fold-overflow-1.c
+++ b/gcc/testsuite/gcc.dg/fold-overflow-1.c
@@ -1,4 +1,5 @@
/* { dg-compile } */
+/* { dg-skip-if "consts are shorts, not longs" { "m32c-*-*" } { "*" } { "" } } */
/* { dg-options "-O -ftrapping-math" } */
/* There should be exactly 2 +Inf in the assembly file. */
diff --git a/gcc/testsuite/gcc.dg/format/bitfld-1.c b/gcc/testsuite/gcc.dg/format/bitfld-1.c
index 2cea5d220e5..e828ad97cd5 100644
--- a/gcc/testsuite/gcc.dg/format/bitfld-1.c
+++ b/gcc/testsuite/gcc.dg/format/bitfld-1.c
@@ -2,6 +2,7 @@
/* Origin: Joseph Myers <joseph@codesourcery.com> */
/* { dg-do compile } */
/* { dg-options "-std=gnu99 -Wformat" } */
+/* { dg-require-effective-target int32plus } */
#include "format.h"
@@ -28,8 +29,12 @@ foo (void)
printf ("%d%u", x.s15, x.s15);
printf ("%d%u", x.u16, x.u16);
printf ("%d%u", x.s16, x.s16);
+#if __INT_MAX__ > 32767
+ /* If integers are 16 bits, there doesn't seem to be a way of
+ printing these without getting an error. */
printf ("%d%u", x.u31, x.u31);
printf ("%d%u", x.s31, x.s31);
+#endif
#if __LONG_MAX__ > 2147483647 && __INT_MAX__ >= 2147483647
/* If long is wider than 32 bits, the 32-bit bit-fields are int or
unsigned int or promote to those types. Otherwise, long is 32
diff --git a/gcc/testsuite/gcc.dg/init-bad-4.c b/gcc/testsuite/gcc.dg/init-bad-4.c
new file mode 100644
index 00000000000..3f03002908a
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/init-bad-4.c
@@ -0,0 +1,5 @@
+/* PR c/25875 */
+/* Origin: Richard Guenther <rguenth@gcc.gnu.org> */
+/* { dg-do compile } */
+
+struct A { } a = (struct A) {{ (X)0 }}; /* { dg-error "no members|extra brace|near|undeclared|constant|compound" } */
diff --git a/gcc/testsuite/gcc.dg/init-string-2.c b/gcc/testsuite/gcc.dg/init-string-2.c
index 828897b3ca9..9efd44b3d2f 100644
--- a/gcc/testsuite/gcc.dg/init-string-2.c
+++ b/gcc/testsuite/gcc.dg/init-string-2.c
@@ -5,6 +5,7 @@
relevant circumstances can be obtained portably; may still fail if
char, short and int do not all have distinct precisions. */
/* { dg-do compile } */
+/* { dg-require-effective-target int32plus } */
/* { dg-options "-std=c99 -pedantic-errors -fshort-enums -fshort-wchar" } */
#include <limits.h>
diff --git a/gcc/testsuite/gcc.dg/max-1.c b/gcc/testsuite/gcc.dg/max-1.c
index 7f03edc590d..02aaa46c3b5 100644
--- a/gcc/testsuite/gcc.dg/max-1.c
+++ b/gcc/testsuite/gcc.dg/max-1.c
@@ -2,6 +2,8 @@
/* Test case reduced by Andrew Pinski <pinskia@physics.uc.edu> */
/* { dg-do run } */
/* { dg-options "-O1 -fno-tree-lrs" } */
+/* m32c has varying sized pointers */
+/* { dg-skip-if "" { "m32c-*-*" } { "*" } { "-mcpu=m32c" "-mcpu=m32cm" } } */
extern void abort (void);
diff --git a/gcc/testsuite/gcc.dg/noncompile/920923-1.c b/gcc/testsuite/gcc.dg/noncompile/920923-1.c
index 4ff008467f5..8011f28cbb4 100644
--- a/gcc/testsuite/gcc.dg/noncompile/920923-1.c
+++ b/gcc/testsuite/gcc.dg/noncompile/920923-1.c
@@ -115,7 +115,7 @@ init_mem()
"mem_hash != (prec_t)0", 370, "b.c"),
0)));
flush_hash(mem_hash, 32);
- build_ptables(mem_base, 1024*(1<<13)); /* { dg-bogus "integer overflow" "int smaller than 32 bits" } */
+ build_ptables(mem_base, 1024*(1<<13)); /* { dg-bogus "integer overflow" "int smaller than 32 bits" { xfail int16 } } */
}
struct tm {
diff --git a/gcc/testsuite/gcc.dg/pch/struct-1.c b/gcc/testsuite/gcc.dg/pch/struct-1.c
index d6c03e7b84d..698e88b285a 100644
--- a/gcc/testsuite/gcc.dg/pch/struct-1.c
+++ b/gcc/testsuite/gcc.dg/pch/struct-1.c
@@ -1,3 +1,4 @@
+/* { dg-require-effective-target int32plus } */
#include "struct-1.h"
struct ChainSearchRecord {
diff --git a/gcc/testsuite/gcc.dg/pr14796-2.c b/gcc/testsuite/gcc.dg/pr14796-2.c
index 195530b8d93..2de5411a490 100644
--- a/gcc/testsuite/gcc.dg/pr14796-2.c
+++ b/gcc/testsuite/gcc.dg/pr14796-2.c
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-require-effective-target int32plus } */
/* { dg-options "-fdump-tree-gimple" } */
int f (int a) {
diff --git a/gcc/testsuite/gcc.dg/pr17112-1.c b/gcc/testsuite/gcc.dg/pr17112-1.c
index 09c3758abed..04d3a2e0e21 100644
--- a/gcc/testsuite/gcc.dg/pr17112-1.c
+++ b/gcc/testsuite/gcc.dg/pr17112-1.c
@@ -1,5 +1,6 @@
/* PR middle-end/17112 */
/* { dg-do run } */
+/* { dg-require-effective-target int32plus } */
/* { dg-options "-O2" } */
extern void abort(void);
diff --git a/gcc/testsuite/gcc.dg/pr18241-1.c b/gcc/testsuite/gcc.dg/pr18241-1.c
index 99c9e38e615..f5134d317b2 100644
--- a/gcc/testsuite/gcc.dg/pr18241-1.c
+++ b/gcc/testsuite/gcc.dg/pr18241-1.c
@@ -1,4 +1,6 @@
/* { dg-do run } */
+/* memset doesn't take unsigned long */
+/* { dg-xfail-if "" { "m32c-*-*" } { "*" } { "" } } */
/* { dg-options "-std=gnu99 -Wall -Wextra -O1" } */
extern void *memset (void*, int, unsigned long);
diff --git a/gcc/testsuite/gcc.dg/pr18241-2.c b/gcc/testsuite/gcc.dg/pr18241-2.c
index 502dc553eeb..89221247ad0 100644
--- a/gcc/testsuite/gcc.dg/pr18241-2.c
+++ b/gcc/testsuite/gcc.dg/pr18241-2.c
@@ -1,4 +1,6 @@
/* { dg-do run } */
+/* memset doesn't take unsigned long */
+/* { dg-xfail-if "" { "m32c-*-*" } { "*" } { "" } } */
/* { dg-options "-std=gnu99 -Wall -Wextra -O1" } */
extern void *memset (void*, int, unsigned long);
diff --git a/gcc/testsuite/gcc.dg/pr19340.c b/gcc/testsuite/gcc.dg/pr19340.c
index 89c82f6bfe2..27cd8c8cc27 100644
--- a/gcc/testsuite/gcc.dg/pr19340.c
+++ b/gcc/testsuite/gcc.dg/pr19340.c
@@ -1,6 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O1 -fschedule-insns2 -fsched2-use-traces" } */
-/* { dg-skip-if "No scheduling" { mmix-*-* cris-*-* m68k-*-* } { "*" } { "" } } */
+/* { dg-skip-if "No scheduling" { mmix-*-* cris-*-* m68k-*-* m32c-*-* } { "*" } { "" } } */
extern double f (double x);
diff --git a/gcc/testsuite/gcc.dg/pr23049.c b/gcc/testsuite/gcc.dg/pr23049.c
index 0a71cecb217..e58cef8fe16 100644
--- a/gcc/testsuite/gcc.dg/pr23049.c
+++ b/gcc/testsuite/gcc.dg/pr23049.c
@@ -7,6 +7,7 @@
the above expression. */
/* { dg-do compile } */
+/* { dg-require-effective-target int32plus } */
/* { dg-options "-O3 -ftree-vectorize" } */
static unsigned short int crc_table[256];
diff --git a/gcc/testsuite/gcc.dg/pr26961-1.c b/gcc/testsuite/gcc.dg/pr26961-1.c
new file mode 100644
index 00000000000..56907d89d47
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr26961-1.c
@@ -0,0 +1,8 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+long long foo(int i, int j)
+{
+ return i ? (long long)(!j) : 0;
+}
+
diff --git a/gcc/testsuite/gcc.dg/pr27314.c b/gcc/testsuite/gcc.dg/pr27314.c
new file mode 100644
index 00000000000..d99be5eb805
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr27314.c
@@ -0,0 +1,14 @@
+/* { dg-do compile } */
+/* { dg-options "-O1 -ffast-math" } */
+
+extern double floor (double);
+
+inline int bar (double x)
+{
+ return (int) floor (x);
+}
+
+int foo (int i)
+{
+ return bar (i);
+}
diff --git a/gcc/testsuite/gcc.dg/sibcall-7.c b/gcc/testsuite/gcc.dg/sibcall-7.c
new file mode 100644
index 00000000000..273c2c36d21
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/sibcall-7.c
@@ -0,0 +1,43 @@
+/* Simple check that tail recursive call optimization is also
+ controlled by -foptimize-sibling-calls.
+
+ Copyright (C) 2006 Free Software Foundation Inc.
+ Original test by Hans-Peter Nilsson <hp@bitrange.com> */
+
+/* { dg-do run } */
+/* { dg-options "-O2 -fno-optimize-sibling-calls" } */
+
+
+extern void abort (void);
+
+extern void recurser_void (int);
+extern void track (int);
+
+int main (void)
+{
+ recurser_void (0);
+ return 0;
+}
+
+void recurser_void (int n)
+{
+ if (n == 0 || n == 7)
+ track (n);
+
+ if (n == 10)
+ return;
+
+ recurser_void (n + 1);
+}
+
+void *trackpoint;
+
+void track (int n)
+{
+ char stackpos[1];
+
+ if (n == 0)
+ trackpoint = stackpos;
+ else if (n != 7 || trackpoint == stackpos)
+ abort ();
+}
diff --git a/gcc/testsuite/gcc.dg/struct-parse-1.c b/gcc/testsuite/gcc.dg/struct-parse-1.c
new file mode 100644
index 00000000000..32c115797fd
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/struct-parse-1.c
@@ -0,0 +1,11 @@
+/* Copyright (C) 2006 Free Software Foundation, Inc. */
+/* Contributed by Carlos O'Donell on 2006-03-31 */
+
+/* This code caused the C frontend to loop
+ forever exhausting all system memory, or ICE */
+/* Origin: Carlos O'Donell <carlos@codesourcery.com> */
+
+/* { dg-options "-std=c99" } */
+struct s { int a; int b; struct t c; }; /* { dg-error "error: field 'c' has incomplete type" } */
+struct s d = { .b = 0 };
+
diff --git a/gcc/testsuite/gcc.dg/torture/pr26565.c b/gcc/testsuite/gcc.dg/torture/pr26565.c
index 9b431407f44..d7620329fe4 100644
--- a/gcc/testsuite/gcc.dg/torture/pr26565.c
+++ b/gcc/testsuite/gcc.dg/torture/pr26565.c
@@ -1,4 +1,6 @@
/* { dg-do run } */
+/* m32c is already packed. */
+/* { dg-skip-if "" { "m32c-*-*" } { "*" } { "" } } */
void *memcpy(void *dest, const void *src, __SIZE_TYPE__ n);
diff --git a/gcc/testsuite/gcc.dg/torture/pr26587.c b/gcc/testsuite/gcc.dg/torture/pr26587.c
index fd3c690e77f..ad5d60f3a8d 100644
--- a/gcc/testsuite/gcc.dg/torture/pr26587.c
+++ b/gcc/testsuite/gcc.dg/torture/pr26587.c
@@ -1,4 +1,5 @@
/* { dg-do run } */
+/* { dg-require-effective-target int32plus } */
extern void abort(void);
typedef unsigned int BF_word;
diff --git a/gcc/testsuite/gcc.dg/torture/pr26630.c b/gcc/testsuite/gcc.dg/torture/pr26630.c
index 08cf5f65576..96bab36a0f7 100644
--- a/gcc/testsuite/gcc.dg/torture/pr26630.c
+++ b/gcc/testsuite/gcc.dg/torture/pr26630.c
@@ -1,4 +1,5 @@
/* { dg-do run } */
+/* { dg-require-effective-target int32plus } */
extern void abort(void);
int main()
diff --git a/gcc/testsuite/gcc.dg/torture/pr26869.c b/gcc/testsuite/gcc.dg/torture/pr26869.c
new file mode 100644
index 00000000000..6743319d109
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr26869.c
@@ -0,0 +1,7 @@
+/* { dg-do compile } */
+
+_Complex float f (_Complex float b, _Complex float c)
+{
+ _Complex float a = 1.0 + 0.0i;
+ return a / c;
+}
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-10.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-10.c
index 4b67c82312a..03c2ddd515d 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/loop-10.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-10.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-optimized" } */
+/* { dg-require-effective-target int32plus } */
int bar (void);
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c
index afb0d16c32c..8f319594f84 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c
@@ -2,6 +2,7 @@
/* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-optimized" } */
+/* { dg-require-effective-target size32plus } */
/* Size of this structure should be sufficiently weird so that no memory
addressing mode applies. */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c
index 89d956136bb..a6c8c8fd34a 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c
@@ -2,6 +2,7 @@
/* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-optimized" } */
+/* { dg-require-effective-target size32plus } */
/* Size of this structure should be sufficiently weird so that no memory
addressing mode applies. */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ltrans-1.c b/gcc/testsuite/gcc.dg/tree-ssa/ltrans-1.c
index 33b82cbb746..a3a9975c51d 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/ltrans-1.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ltrans-1.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2 -ftree-loop-linear -fdump-tree-ltrans-all" } */
+/* { dg-require-effective-target size32plus } */
double u[1782225];
int foo(int N, int *res)
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ltrans-2.c b/gcc/testsuite/gcc.dg/tree-ssa/ltrans-2.c
index 9cfa60d2d99..9548bf21706 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/ltrans-2.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ltrans-2.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2 -ftree-loop-linear -fdump-tree-ltrans-all" } */
+/* { dg-require-effective-target size32plus } */
double u[1782225];
int foo(int N, int *res)
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ltrans-3.c b/gcc/testsuite/gcc.dg/tree-ssa/ltrans-3.c
index 0cb266f4cc4..86424ab1369 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/ltrans-3.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ltrans-3.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2 -ftree-loop-linear -fdump-tree-ltrans-all" } */
+/* { dg-require-effective-target size32plus } */
double u[1782225];
int foo(int N, int *res)
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ltrans-4.c b/gcc/testsuite/gcc.dg/tree-ssa/ltrans-4.c
index 4e60eae4d51..e2d6abced60 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/ltrans-4.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ltrans-4.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2 -ftree-loop-linear -fdump-tree-ltrans-all" } */
+/* { dg-require-effective-target size32plus } */
double u[1782225];
int foo(int N, int *res)
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr14341.c b/gcc/testsuite/gcc.dg/tree-ssa/pr14341.c
index ee661a0f3a9..0287a25cc38 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr14341.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr14341.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-vrp1" } */
+/* { dg-require-effective-target int32plus } */
void fn_call (int);
int h(int, int);
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr23382.c b/gcc/testsuite/gcc.dg/tree-ssa/pr23382.c
index b1dd6d54822..e515417076d 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr23382.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr23382.c
@@ -1,5 +1,7 @@
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-alias-vops" } */
+/* malloc doesn't take a long */
+/* { dg-xfail-if "" { "m32c-*-*" } { "*" } { "" } } */
struct a
{
int length;
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr24627.c b/gcc/testsuite/gcc.dg/tree-ssa/pr24627.c
index 011410cbb37..c065eef84f4 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr24627.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr24627.c
@@ -1,5 +1,6 @@
/* { dg-do run } */
/* { dg-options "-O" } */
+/* { dg-require-effective-target int32plus } */
extern void abort (void);
typedef unsigned int u_int32;
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr26180.c b/gcc/testsuite/gcc.dg/tree-ssa/pr26180.c
index 730115b686b..13c302dea3a 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr26180.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr26180.c
@@ -1,5 +1,6 @@
/* { dg-do run } */
/* { dg-options "-O2" } */
+/* { dg-require-effective-target int32plus } */
void abort(void);
int bar(int x, int y)
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr27236.c b/gcc/testsuite/gcc.dg/tree-ssa/pr27236.c
new file mode 100644
index 00000000000..b623486294a
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr27236.c
@@ -0,0 +1,19 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-optimized" } */
+
+static inline int inline_read(volatile int *mem)
+{
+ return *mem;
+}
+int foo_read(volatile int *mem)
+{
+ return inline_read(mem);
+}
+unsigned int foo(volatile int *mem)
+{
+ foo_read(mem);
+ return foo_read(mem);
+}
+
+/* { dg-final { scan-tree-dump-times "foo_read" 5 "optimized" } } */
+/* { dg-final { cleanup-tree-dump "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-1.c b/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-1.c
index af65736661f..8802bc8bc69 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-1.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O1 -fdump-tree-tailr-details" } */
+/* { dg-options "-O1 -foptimize-sibling-calls -fdump-tree-tailr-details" } */
int
t(int a)
{
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-2.c b/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-2.c
index d0bc8b9c230..9fe3af9855a 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-2.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-2.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O1 -fdump-tree-tailr-details" } */
+/* { dg-options "-O1 -foptimize-sibling-calls -fdump-tree-tailr-details" } */
int
t(char *a)
{
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-3.c b/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-3.c
index 4e0ca133e5d..ca727df391d 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-3.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-3.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O1 -fdump-tree-tailr-details" } */
+/* { dg-options "-O1 -foptimize-sibling-calls -fdump-tree-tailr-details" } */
int
t(int a)
{
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-4.c b/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-4.c
index edab9833f0f..bb43d76aca9 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-4.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-4.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O1 -fdump-tree-tailr-details" } */
+/* { dg-options "-O1 -foptimize-sibling-calls -fdump-tree-tailr-details" } */
int
t(int a)
{
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-5.c b/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-5.c
index 2a0af0a714b..53a2cdb15e3 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-5.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-5.c
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-O1 -fdump-tree-optimized" } */
+/* { dg-options "-O1 -foptimize-sibling-calls -fdump-tree-optimized" } */
extern void abort (void);
extern void exit (int);
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp14.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp14.c
index 833a73dcadc..a65d8a16d70 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/vrp14.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp14.c
@@ -1,5 +1,6 @@
/* { dg-do run } */
/* { dg-options "-O2" } */
+/* { dg-require-effective-target int32plus } */
struct tree_decl
{
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp21.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp21.c
index 0e675d91147..9a4e4e783c1 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/vrp21.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp21.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O1 -ftree-vrp -fdump-tree-vrp1" } */
+/* { dg-require-effective-target int32plus } */
extern void link_error ();
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp22.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp22.c
index 6120d072377..cbd4dc529dd 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/vrp22.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp22.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O1 -ftree-vrp -fdump-tree-vrp1" } */
+/* { dg-require-effective-target int32plus } */
extern void link_error ();
diff --git a/gcc/testsuite/gcc.dg/vect/vect-fold-1.c b/gcc/testsuite/gcc.dg/vect/vect-fold-1.c
new file mode 100644
index 00000000000..88b68b7cf4a
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/vect-fold-1.c
@@ -0,0 +1,16 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-dom1" } */
+
+typedef unsigned char v4qi __attribute__ ((vector_size (4)));
+
+v4qi c;
+
+void foo()
+{
+ v4qi a = { 1, 2, 3, 4 };
+ v4qi b = { 5, 6, 7, 8 };
+ c = a + b;
+}
+
+/* { dg-final { scan-tree-dump-times "c = { 6, 8, 10, 12 }" 1 "dom1" } } */
+/* { dg-final { cleanup-tree-dump "dom1" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-recip.c b/gcc/testsuite/gcc.dg/vect/vect-recip.c
new file mode 100644
index 00000000000..89af9843fef
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/vect-recip.c
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target vect_float } */
+
+void f(float *__restrict__ qa, float *__restrict__ qb,
+ float *__restrict__ qc, float *__restrict__ rtrms)
+{
+ int i;
+ static float qam[600];
+ static float qbm[600];
+ static float qcm[600];
+ for(i=0;i<600;i++)
+ {
+ float a = rtrms[i];
+ qam[i] = qa[i]/a;
+ qbm[i] = qb[i]/a;
+ qcm[i] = qc[i]/a;
+ }
+}
diff --git a/gcc/testsuite/gcc.dg/vmx/pr27006.c b/gcc/testsuite/gcc.dg/vmx/pr27006.c
new file mode 100644
index 00000000000..1b92252b383
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vmx/pr27006.c
@@ -0,0 +1,23 @@
+/* { dg-do run */
+/* { dg-options "-maltivec" } */
+
+extern void abort ();
+
+typedef union
+{
+ int i[4];
+ __attribute__((altivec(vector__))) int v;
+} vec_int4;
+
+int main (void)
+{
+ vec_int4 i1;
+
+ i1.v = (__attribute__((altivec(vector__))) int){31, 31, 31, 31};
+
+ if (i1.i[0] != 31)
+ abort ();
+
+ return 0;
+}
+
diff --git a/gcc/testsuite/gcc.target/i386/20050113-1.c b/gcc/testsuite/gcc.target/i386/20050113-1.c
index e7f69e36641..b1d3cecf41f 100644
--- a/gcc/testsuite/gcc.target/i386/20050113-1.c
+++ b/gcc/testsuite/gcc.target/i386/20050113-1.c
@@ -3,4 +3,4 @@
/* { dg-options "-mmmx" } */
typedef short int V __attribute__ ((vector_size (8)));
-static V v = (V) 0x00FF00FF00FF00FFLL; /* { dg-error "is not constant" } */
+static V v = (V) 0x00FF00FF00FF00FFLL;
diff --git a/gcc/testsuite/gcc.target/i386/sse-18.c b/gcc/testsuite/gcc.target/i386/sse-18.c
new file mode 100644
index 00000000000..61026a110d7
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/sse-18.c
@@ -0,0 +1,38 @@
+/* { dg-do run } */
+/* { dg-options "-O3 -msse2" } */
+extern void abort(void);
+#include <emmintrin.h>
+#include "../../gcc.dg/i386-cpuid.h"
+__m128i foo (char) __attribute__((noinline));
+__m128i foo (char x) {
+ return _mm_set1_epi8(x);
+}
+__m128i bar (char) __attribute__((noinline));
+__m128i bar (char x) {
+ return _mm_set_epi8 (x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x);
+}
+
+main() {
+ int i, j;
+ union u { __m128i v; char c[16]; };
+ union u x, y;
+ unsigned long cpu_facilities;
+
+ cpu_facilities = i386_cpuid ();
+
+ if ((cpu_facilities & (bit_MMX | bit_SSE | bit_CMOV))
+ != (bit_MMX | bit_SSE | bit_CMOV))
+ /* If host has no vector support, pass. */
+ return 0;
+
+ for (i = -128; i <= 127; i++)
+ {
+ x.v = foo ((char)i);
+ y.v = bar ((char)i);
+ for (j=0; j<16; j++)
+ if (x.c[j] != y.c[j])
+ abort();
+ }
+ return 0;
+}
+
diff --git a/gcc/testsuite/gcc.target/i386/sse-19.c b/gcc/testsuite/gcc.target/i386/sse-19.c
new file mode 100644
index 00000000000..43c090bd4e1
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/sse-19.c
@@ -0,0 +1,29 @@
+/* { dg-do compile } */
+/* { dg-options "-O3 -msse2" } */
+/* { dg-final { scan-assembler "punpcklbw" } } */
+extern void abort();
+#include <emmintrin.h>
+__m128i foo (char) __attribute__((noinline));
+__m128i foo (char x) {
+ return _mm_set1_epi8(x);
+}
+__m128i bar (char) __attribute__((noinline));
+__m128i bar (char x) {
+ return _mm_set_epi8 (x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x);
+}
+
+main() {
+ int i, j;
+ union u { __m128i v; char c[16]; };
+ union u x, y;
+ for (i = -128; i <= 127; i++)
+ {
+ x.v = foo ((char)i);
+ y.v = bar ((char)i);
+ for (j=0; j<16; j++)
+ if (x.c[j] != y.c[j])
+ abort();
+ }
+ return 0;
+}
+
diff --git a/gcc/testsuite/gcc.target/i386/vecinit-1.c b/gcc/testsuite/gcc.target/i386/vecinit-1.c
new file mode 100644
index 00000000000..86cad897669
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/vecinit-1.c
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -msse2" } */
+#define vector __attribute__((vector_size(16)))
+
+float a;
+vector float f1(void) { return (vector float){ a, 0.0, 0.0, 0.0}; }
+vector float f2(void) { return (vector float){ 0.0, a, 0.0, 0.0}; }
+vector float f3(void) { return (vector float){ 0.0, 0.0, a, 0.0}; }
+vector float f4(void) { return (vector float){ 0.0, 0.0, 0.0, a}; }
+/* { dg-final { scan-assembler-not "movaps" } } */
+/* { dg-final { scan-assembler-not "xor" } } */
diff --git a/gcc/testsuite/gcc.target/i386/vecinit-2.c b/gcc/testsuite/gcc.target/i386/vecinit-2.c
new file mode 100644
index 00000000000..41e502711a7
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/vecinit-2.c
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -msse2" } */
+#define vector __attribute__((vector_size(16)))
+
+int a;
+vector int f1(void) { return (vector int){ a, 0, 0, 0}; }
+vector int f2(void) { return (vector int){ 0, a, 0, 0}; }
+vector int f3(void) { return (vector int){ 0, 0, a, 0}; }
+vector int f4(void) { return (vector int){ 0, 0, 0, a}; }
+/* { dg-final { scan-assembler-not "movaps" } } */
+/* { dg-final { scan-assembler-not "xor" } } */
diff --git a/gcc/testsuite/gcc.target/i386/vecinit-3.c b/gcc/testsuite/gcc.target/i386/vecinit-3.c
new file mode 100644
index 00000000000..4cbf52133b4
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/vecinit-3.c
@@ -0,0 +1,8 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -msse2" } */
+#define vector __attribute__((vector_size(16)))
+
+char a;
+vector char f(void) { return (vector char){ a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a }; }
+/* { dg-final { scan-assembler-not "sall" } } */
diff --git a/gcc/testsuite/gcc.target/i386/vecinit-4.c b/gcc/testsuite/gcc.target/i386/vecinit-4.c
new file mode 100644
index 00000000000..7a8c1d0f6c1
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/vecinit-4.c
@@ -0,0 +1,7 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -msse2" } */
+#define vector __attribute__((vector_size(16)))
+
+short a;
+vector short f(void) { return (vector short){ a, a, a, a, a, a, a, a }; }
+/* { dg-final { scan-assembler-not "sall" } } */
diff --git a/gcc/testsuite/gfortran.dg/allocate_zerosize_1.f90 b/gcc/testsuite/gfortran.dg/allocate_zerosize_1.f90
new file mode 100644
index 00000000000..c482ea0f3b3
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/allocate_zerosize_1.f90
@@ -0,0 +1,31 @@
+! { dg-do run }
+program main
+ implicit none
+ real, allocatable :: a(:), b(:,:)
+ integer :: n,m
+ character (len=2) :: one, two
+
+ one = ' 1'
+ two = ' 2'
+
+ allocate (a(1:-1))
+ if (size(a) /= 0) call abort
+ deallocate (a)
+
+ allocate (b(1:-1,0:10))
+ if (size(b) /= 0) call abort
+ deallocate (b)
+
+ ! Use variables for array bounds. The internal reads
+ ! are there to hide fact that these are actually constant.
+
+ read (unit=one, fmt='(I2)') n
+ allocate (a(n:-1))
+ if (size(a) /= 0) call abort
+ deallocate (a)
+
+ read (unit=two, fmt='(I2)') m
+ allocate (b(1:3, m:0))
+ if (size(b) /= 0) call abort
+ deallocate (b)
+end program main
diff --git a/gcc/testsuite/gfortran.dg/array_return_value_1.f90 b/gcc/testsuite/gfortran.dg/array_return_value_1.f90
new file mode 100644
index 00000000000..45699ffd7d5
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/array_return_value_1.f90
@@ -0,0 +1,24 @@
+! { dg-do run }
+! Tests the fix for PR27124 in which the unpacking of argument
+! temporaries and of array result temporaries occurred in the
+! incorrect order.
+!
+! Test is based on the original example, provided by
+! Philippe Schaffnit <P.Schaffnit@access.rwth-aachen.de>
+!
+ PROGRAM Test
+ INTEGER :: Array(2, 3) = reshape ((/1,4,2,5,3,6/),(/2,3/))
+ integer :: Brray(2, 3) = 0
+ Brray(1,:) = Function_Test (Array(1,:))
+ if (any(reshape (Brray, (/6/)) .ne. (/11, 0, 12, 0, 13, 0/))) call abort ()
+ Array(1,:) = Function_Test (Array(1,:))
+ if (any(reshape (Array, (/6/)) .ne. (/11, 4, 12, 5, 13, 6/))) call abort ()
+
+ contains
+ FUNCTION Function_Test (Input)
+ INTEGER, INTENT(IN) :: Input(1:3)
+ INTEGER :: Function_Test(1:3)
+ Function_Test = Input + 10
+ END FUNCTION Function_Test
+ END PROGRAM Test
+
diff --git a/gcc/testsuite/gfortran.dg/assumed_charlen_function_1.f90 b/gcc/testsuite/gfortran.dg/assumed_charlen_function_1.f90
index e10fd70b584..a28934e2597 100644
--- a/gcc/testsuite/gfortran.dg/assumed_charlen_function_1.f90
+++ b/gcc/testsuite/gfortran.dg/assumed_charlen_function_1.f90
@@ -17,7 +17,7 @@ END MODULE M1
MODULE INTEGER_SETS
INTERFACE OPERATOR (.IN.)
- FUNCTION ELEMENT(X,A)
+ FUNCTION ELEMENT(X,A) ! { dg-error "cannot be assumed character length" }
USE M1
CHARACTER(LEN=*) :: ELEMENT
INTEGER, INTENT(IN) :: X
@@ -59,7 +59,6 @@ function not_OK (ch)
not_OK = ch
end function not_OK
- use INTEGER_SETS
use m1
character(4) :: answer
@@ -74,11 +73,8 @@ end function not_OK
end function ext
end interface
- answer = i.IN.z ! { dg-error "cannot be used|Operands of user operator" }
- answer = ext (2) ! { dg-error "but cannot be used" }
-
answer = not_OK ("unOK") ! { dg-error "since it is not a dummy" }
END
-! { dg-final { cleanup-modules "M1 INTEGER_SETS" } }
+! { dg-final { cleanup-modules "M1" } }
diff --git a/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90 b/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90
index ff42c02a623..1590ec5c697 100644
--- a/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90
+++ b/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90
@@ -35,7 +35,7 @@ contains
x = fcn (m) ! { dg-error "upper bound in the last dimension" }
m(:, 1:2) = fcn (q)
call sub (m, x) ! { dg-error "upper bound in the last dimension" }
- call sub (m(1:2, 1:2), x)
+ call sub (m(1:2, 1:2), x) ! { dg-error "Incompatible ranks in elemental subroutine" }
print *, p
call DHSEQR(x)
diff --git a/gcc/testsuite/gfortran.dg/auto_char_pointer_array_result_1.f90 b/gcc/testsuite/gfortran.dg/auto_char_pointer_array_result_1.f90
new file mode 100644
index 00000000000..8e3eb94c261
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/auto_char_pointer_array_result_1.f90
@@ -0,0 +1,36 @@
+! { dg-do run }
+! Tests the fixes for PR25597 and PR27096.
+!
+! This test combines the PR testcases.
+!
+ character(10), dimension (2) :: implicit_result
+ character(10), dimension (2) :: explicit_result
+ character(10), dimension (2) :: source
+ source = "abcdefghij"
+ explicit_result = join_1(source)
+ if (any (explicit_result .ne. source)) call abort ()
+
+ implicit_result = reallocate_hnv (source, size(source, 1), LEN (source))
+ if (any (implicit_result .ne. source)) call abort ()
+
+contains
+
+! This function would cause an ICE in gfc_trans_deferred_array.
+ function join_1(self) result(res)
+ character(len=*), dimension(:) :: self
+ character(len=len(self)), dimension(:), pointer :: res
+ allocate (res(2))
+ res = self
+ end function
+
+! This function originally ICEd and latterly caused a runtime error.
+ FUNCTION reallocate_hnv(p, n, LEN)
+ CHARACTER(LEN=LEN), DIMENSION(:), POINTER :: reallocate_hnv
+ character(*), dimension(:) :: p
+ ALLOCATE (reallocate_hnv(n))
+ reallocate_hnv = p
+ END FUNCTION reallocate_hnv
+
+end
+
+
diff --git a/gcc/testsuite/gfortran.dg/auto_pointer_array_result_1.f90 b/gcc/testsuite/gfortran.dg/auto_pointer_array_result_1.f90
new file mode 100644
index 00000000000..7e7cde5fbdd
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/auto_pointer_array_result_1.f90
@@ -0,0 +1,36 @@
+! { dg-do run }
+! Tests the fixes for PR25597 and PR27096.
+!
+! This test combines the PR testcases.
+!
+ character(10), dimension (2) :: implicit_result
+ character(10), dimension (2) :: explicit_result
+ character(10), dimension (2) :: source
+ source = "abcdefghij"
+ explicit_result = join_1(source)
+ if (any (explicit_result .ne. source)) call abort ()
+
+ implicit_result = reallocate_hnv (source, size(source, 1), LEN (source))
+ if (any (implicit_result .ne. source)) call abort ()
+
+contains
+
+! This function would cause an ICE in gfc_trans_deferred_array.
+ function join_1(self) result(res)
+ character(len=*), dimension(:) :: self
+ character(len=len(self)), dimension(:), pointer :: res
+ allocate (res(2))
+ res = self
+ end function
+
+! This function originally ICEd and latterly caused a runtime error.
+ FUNCTION reallocate_hnv(p, n, LEN)
+ CHARACTER(LEN=LEN), DIMENSION(:), POINTER :: reallocate_hnv
+ character(*), dimension(:) :: p
+ ALLOCATE (reallocate_hnv(n))
+ reallocate_hnv = p
+ END FUNCTION reallocate_hnv
+
+end
+
+
diff --git a/gcc/testsuite/gfortran.dg/bounds_temporaries_1.f90 b/gcc/testsuite/gfortran.dg/bounds_temporaries_1.f90
new file mode 100644
index 00000000000..a277566735d
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/bounds_temporaries_1.f90
@@ -0,0 +1,64 @@
+! { dg-do compile }
+! This tests the fix for PRs 26834, 25669 and 18803, in which
+! shape information for the lbound and ubound intrinsics was not
+! transferred to the scalarizer. For this reason, an ICE would
+! ensue, whenever these functions were used in temporaries.
+!
+! The tests are lifted from the PRs and some further checks are
+! done to make sure that nothing is broken.
+!
+! This is PR26834
+subroutine gfcbug34 ()
+ implicit none
+ type t
+ integer, pointer :: i (:) => NULL ()
+ end type t
+ type(t), save :: gf
+ allocate (gf%i(20))
+ write(*,*) 'ubound:', ubound (gf% i)
+ write(*,*) 'lbound:', lbound (gf% i)
+end subroutine gfcbug34
+
+! This is PR25669
+subroutine foo (a)
+ real a(*)
+ call bar (a, LBOUND(a),2)
+end subroutine foo
+subroutine bar (b, i, j)
+ real b(i:j)
+ print *, i, j
+ print *, b(i:j)
+end subroutine bar
+
+! This is PR18003
+subroutine io_bug()
+ integer :: a(10)
+ print *, ubound(a)
+end subroutine io_bug
+
+! This checks that lbound and ubound are OK in temporary
+! expressions.
+subroutine io_bug_plus()
+ integer :: a(10, 10), b(2)
+ print *, ubound(a)*(/1,2/)
+ print *, (/1,2/)*ubound(a)
+end subroutine io_bug_plus
+
+ character(4) :: ch(2), ech(2) = (/'ABCD', 'EFGH'/)
+ real(4) :: a(2)
+ equivalence (ech,a) ! { dg-warning "default CHARACTER EQUIVALENCE statement" }
+ integer(1) :: i(8) = (/(j, j = 1,8)/)
+
+! Check that the bugs have gone
+ call io_bug ()
+ call io_bug_plus ()
+ call foo ((/1.0,2.0,3.0/))
+ call gfcbug34 ()
+
+! Check that we have not broken other intrinsics.
+ print *, cos ((/1.0,2.0/))
+ print *, transfer (a, ch)
+ print *, i(1:4) * transfer (a, i, 4) * 2
+end
+
+
diff --git a/gcc/testsuite/gfortran.dg/character_array_constructor_1.f90 b/gcc/testsuite/gfortran.dg/character_array_constructor_1.f90
new file mode 100644
index 00000000000..ac0f7e315df
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/character_array_constructor_1.f90
@@ -0,0 +1,47 @@
+! { dg-do run }
+! Tests the fix for PR27113, in which character structure
+! components would produce the TODO compilation error "complex
+! character array constructors".
+!
+! Test based on part of tonto-2.2;
+! Contributed by Paul Thomas <pault@gcc.gnu.org>
+!
+ type BASIS_TYPE
+ character(len=8) :: label
+ end type
+
+ type(BASIS_TYPE), dimension(:), pointer :: ptr
+ character(8), dimension(2) :: carray
+
+ allocate (ptr(2))
+ ptr(1)%label = "Label 1"
+ ptr(2)%label = "Label 2"
+
+! This is the original bug
+ call read_library_data_((/ptr%label/))
+
+ carray(1) = "Label 3"
+ carray(2) = "Label 4"
+
+! Mix a character array with the character component of a derived type pointer array.
+ call read_library_data_((/carray, ptr%label/))
+
+! Finally, add a constant (character(8)).
+ call read_library_data_((/carray, ptr%label, "Label 5 "/))
+
+contains
+
+ subroutine read_library_data_ (chr)
+ character(*), dimension(:) :: chr
+ character(len = len(chr)) :: tmp
+ if (size(chr,1) == 2) then
+ if (any (chr .ne. (/"Label 1", "Label 2"/))) call abort ()
+ elseif (size(chr,1) == 4) then
+ if (any (chr .ne. (/"Label 3", "Label 4","Label 1", "Label 2"/))) call abort ()
+ elseif (size(chr,1) == 5) then
+ if (any (chr .ne. (/"Label 3", "Label 4","Label 1", "Label 2", "Label 5"/))) &
+ call abort ()
+ end if
+ end subroutine read_library_data_
+
+end
diff --git a/gcc/testsuite/gfortran.dg/defined_operators_1.f90 b/gcc/testsuite/gfortran.dg/defined_operators_1.f90
new file mode 100644
index 00000000000..f7688b87a55
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/defined_operators_1.f90
@@ -0,0 +1,56 @@
+! { dg-do compile }
+! { dg-options "-std=legacy" }
+! Tests the fix for PR27122, in which the requirements of 12.3.2.1.1
+! for defined operators were not enforced.
+!
+! Based on PR test by Thomas Koenig <tkoenig@gcc.gnu.org>
+!
+module mymod
+ interface operator (.foo.)
+ module procedure foo_0 ! { dg-error "must have at least one argument" }
+ module procedure foo_1 ! { dg-error "must be INTENT" }
+ module procedure foo_2 ! { dg-error "cannot be optional" }
+ module procedure foo_3 ! { dg-error "must have, at most, two arguments" }
+ module procedure foo_1_OK
+ module procedure foo_2_OK
+ function foo_chr (chr) ! { dg-error "cannot be assumed character length" }
+ character(*) :: foo_chr
+ character(*), intent(in) :: chr
+ end function foo_chr
+ subroutine bad_foo (chr) ! { dg-error "must be a FUNCTION" }
+ character(*), intent(in) :: chr
+ end subroutine bad_foo
+ end interface
+contains
+ function foo_0 ()
+ integer :: foo_1
+ foo_0 = 1
+ end function foo_0
+ function foo_1 (a)
+ integer :: foo_1
+ integer :: a
+ foo_1 = 1
+ end function foo_1
+ function foo_1_OK (a)
+ integer :: foo_1_OK
+ integer, intent (in) :: a
+ foo_1_OK = 1
+ end function foo_1_OK
+ function foo_2 (a, b)
+ integer :: foo_2
+ integer, intent(in) :: a
+ integer, intent(in), optional :: b
+ foo_2 = 2 * a + b
+ end function foo_2
+ function foo_2_OK (a, b)
+ real :: foo_2_OK
+ real, intent(in) :: a
+ real, intent(in) :: b
+ foo_2_OK = 2.0 * a + b
+ end function foo_2_OK
+ function foo_3 (a, b, c)
+ integer :: foo_3
+ integer, intent(in) :: a, b, c
+ foo_3 = a + 3 * b - c
+ end function foo_3
+end module mymod
diff --git a/gcc/testsuite/gfortran.dg/elemental_subroutine_4.f90 b/gcc/testsuite/gfortran.dg/elemental_subroutine_4.f90
new file mode 100644
index 00000000000..1a3446264cf
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/elemental_subroutine_4.f90
@@ -0,0 +1,38 @@
+! { dg-do compile }
+! Test the fix for PR25099, in which conformance checking was not being
+! done for elemental subroutines and therefore for interface assignments.
+!
+! Contributed by Joost VandeVondele <jv244@cam.ac.uk>
+!
+module elem_assign
+ implicit none
+ type mytype
+ integer x
+ end type mytype
+ interface assignment(=)
+ module procedure myassign
+ end interface assignment(=)
+ contains
+ elemental subroutine myassign(x,y)
+ type(mytype), intent(out) :: x
+ type(mytype), intent(in) :: y
+ x%x = y%x
+ end subroutine myassign
+end module elem_assign
+
+ use elem_assign
+ integer :: I(2,2),J(2)
+ type (mytype) :: w(2,2), x(4), y(5), z(4)
+! The original PR
+ CALL S(I,J) ! { dg-error "Incompatible ranks in elemental subroutine" }
+! Check interface assignments
+ x = w ! { dg-error "Incompatible ranks in elemental subroutine" }
+ x = y ! { dg-error "different shape for elemental subroutine" }
+ x = z
+CONTAINS
+ ELEMENTAL SUBROUTINE S(I,J)
+ INTEGER, INTENT(IN) :: I,J
+ END SUBROUTINE S
+END
+
+! { dg-final { cleanup-modules "elem_assign" } }
diff --git a/gcc/testsuite/gfortran.dg/g77/20030115-1.f b/gcc/testsuite/gfortran.dg/g77/20030115-1.f
deleted file mode 100644
index faa08e5205e..00000000000
--- a/gcc/testsuite/gfortran.dg/g77/20030115-1.f
+++ /dev/null
@@ -1,17 +0,0 @@
-C { dg-do compile }
- SUBROUTINE FOO (B)
-
- 10 CALL BAR(A)
- ASSIGN 20 TO M ! { dg-warning "Obsolete: ASSIGN" "ASSIGN" }
-
- IF(100.LT.A) GOTO 10
- GOTO 40
-C
- 20 IF(B.LT.ABS(A)) GOTO 10
- ASSIGN 30 TO M ! { dg-warning "Obsolete: ASSIGN" "ASSIGN" }
- GOTO 40
-C
- 30 ASSIGN 10 TO M ! { dg-warning "Obsolete: ASSIGN" "ASSIGN" }
- 40 GOTO M,(10,20,30) ! { dg-warning "Obsolete: Assigned" "Assigned GO TO" }
-
- END
diff --git a/gcc/testsuite/gfortran.dg/label_1.f90 b/gcc/testsuite/gfortran.dg/label_1.f90
index 149c79f1029..94f3b5e61ad 100644
--- a/gcc/testsuite/gfortran.dg/label_1.f90
+++ b/gcc/testsuite/gfortran.dg/label_1.f90
@@ -3,7 +3,7 @@
program a
0056780 continue ! { dg-error "Too many digits" }
-0 continue ! { dg-error "Statement label at" }
+0 continue ! { dg-error "Zero is not a valid statement label" }
stop 001234 ! { dg-error "Too many digits" }
end program a
diff --git a/gcc/testsuite/gfortran.dg/namelist_4.f90 b/gcc/testsuite/gfortran.dg/namelist_4.f90
index 9e62a1f370f..52a5bc9938c 100644
--- a/gcc/testsuite/gfortran.dg/namelist_4.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_4.f90
@@ -28,8 +28,9 @@ program P1
CONTAINS
! This has the additional wrinkle of a reference to the object.
INTEGER FUNCTION F1()
- NAMELIST /NML3/ F2 ! { dg-error "PROCEDURE attribute conflicts" }
- f2 = 1 ! Used to ICE here
+ NAMELIST /NML3/ F2 ! { dg-error "PROCEDURE attribute conflicts" }
+! Used to ICE here
+ f2 = 1 ! { dg-error "is not a VALUE" }
F1=1
END FUNCTION
INTEGER FUNCTION F2()
diff --git a/gcc/testsuite/gfortran.dg/proc_assign_1.f90 b/gcc/testsuite/gfortran.dg/proc_assign_1.f90
new file mode 100644
index 00000000000..a0f725080c2
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/proc_assign_1.f90
@@ -0,0 +1,78 @@
+! { dg-do compile }
+! This tests the patch for PR26787 in which it was found that setting
+! the result of one module procedure from within another produced an
+! ICE rather than an error.
+!
+! This is an "elaborated" version of the original testcase from
+! Joshua Cogliati <jjcogliati-r1@yahoo.com>
+!
+function ext1 ()
+ integer ext1, ext2, arg
+ ext1 = 1
+ entry ext2 (arg)
+ ext2 = arg
+contains
+ subroutine int_1 ()
+ ext1 = arg * arg ! OK - host associated.
+ end subroutine int_1
+end function ext1
+
+module simple
+ implicit none
+contains
+ integer function foo ()
+ foo = 10 ! OK - function result
+ call foobar ()
+ contains
+ subroutine foobar ()
+ integer z
+ foo = 20 ! OK - host associated.
+ end subroutine foobar
+ end function foo
+ subroutine bar() ! This was the original bug.
+ foo = 10 ! { dg-error "is not a VALUE" }
+ end subroutine bar
+ integer function oh_no ()
+ oh_no = 1
+ foo = 5 ! { dg-error "is not a VALUE" }
+ end function oh_no
+end module simple
+
+module simpler
+ implicit none
+contains
+ integer function foo_er ()
+ foo_er = 10 ! OK - function result
+ end function foo_er
+end module simpler
+
+ use simpler
+ real w, stmt_fcn
+ interface
+ function ext1 ()
+ integer ext1
+ end function ext1
+ function ext2 (arg)
+ integer ext2, arg
+ end function ext2
+ end interface
+ stmt_fcn (w) = sin (w)
+ call x (y ())
+ x = 10 ! { dg-error "Expected VARIABLE" }
+ y = 20 ! { dg-error "is not a VALUE" }
+ foo_er = 8 ! { dg-error "is not a VALUE" }
+ ext1 = 99 ! { dg-error "is not a VALUE" }
+ ext2 = 99 ! { dg-error "is not a VALUE" }
+ stmt_fcn = 1.0 ! { dg-error "Expected VARIABLE" }
+ w = stmt_fcn (1.0)
+contains
+ subroutine x (i)
+ integer i
+ y = i ! { dg-error "is not a VALUE" }
+ end subroutine x
+ function y ()
+ integer y
+ y = 2 ! OK - function result
+ end function y
+end
+! { dg-final { cleanup-modules "simple simpler" } } \ No newline at end of file
diff --git a/gcc/testsuite/gfortran.dg/procedure_lvalue.f90 b/gcc/testsuite/gfortran.dg/procedure_lvalue.f90
index 2a2c3550454..634eaca0e27 100644
--- a/gcc/testsuite/gfortran.dg/procedure_lvalue.f90
+++ b/gcc/testsuite/gfortran.dg/procedure_lvalue.f90
@@ -14,7 +14,7 @@ end module t
subroutine r
use t
- b = 1. ! { dg-error "l-value since it is a procedure" }
+ b = 1. ! { dg-error "is not a VALUE" }
y = a(1.)
end subroutine r
diff --git a/gcc/testsuite/gfortran.dg/read_bad_advance.f90 b/gcc/testsuite/gfortran.dg/read_bad_advance.f90
new file mode 100644
index 00000000000..5b43cfecc7f
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/read_bad_advance.f90
@@ -0,0 +1,32 @@
+! { dg-do run }
+! PR27138 Failure to advance line on bad list directed read.
+! Submitted by Jerry DeLisle <jvdelisle@gcc.gnu.org>
+ program test
+ implicit none
+ integer :: ntype = 55
+ real :: rtype
+ complex :: ctype
+ logical :: ltype
+ OPEN (10)
+ write(10,*) "aaaa aaaa aaaa aaaa"
+ write(10,*) "bbbb bbbb bbbb bbbb"
+ write(10,*) "cccc cccc cccc cccc"
+ write(10,*) "dddd dddd dddd dddd"
+ write(10,*) " "
+ write(10,*) "1234 5678 9012 3456"
+ rewind(10)
+ READ (10,*,END=77,ERR=77) ntype
+ goto 99
+ 77 READ (10,*,END=78,ERR=78) rtype
+ goto 99
+ 78 READ (10,*,END=79,ERR=79) ctype
+ goto 99
+ 79 READ (10,*,END=80,ERR=80) ltype
+ goto 99
+ 80 READ (10,*,END=99,ERR=99) ntype
+ if (ntype.ne.1234) goto 99
+ close(10, status="delete")
+ stop
+ 99 close(10, status="delete")
+ call abort()
+ end program test
diff --git a/gcc/testsuite/gfortran.dg/specification_type_resolution_1.f90 b/gcc/testsuite/gfortran.dg/specification_type_resolution_1.f90
new file mode 100644
index 00000000000..b830b5dfc7d
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/specification_type_resolution_1.f90
@@ -0,0 +1,31 @@
+! { dg-do compile }
+! Test of the fix of PR27089, where gfortran was unable to resolve the
+! type of n_elements_uncommon_with_ in the specification expression on
+! line 21.
+!
+! Test extracted from vec{int}.F90 of tonto.
+!
+module test
+ public n_elements_uncommon_with_
+ interface n_elements_uncommon_with_
+ module procedure n_elements_uncommon_with
+ end interface
+contains
+ pure function n_elements_uncommon_with(x) result(res)
+ integer(4), dimension(:), intent(in) :: x
+ integer(4) :: res
+ res = size (x, 1)
+ end function
+ pure function elements_uncommon_with(x) result(res)
+ integer(4), dimension(:), intent(in) :: x
+ integer(4), dimension(n_elements_uncommon_with_(x)) :: res
+ res = x
+ end function
+end module test
+ use test
+ integer(4) :: z(4)
+ z = 1
+ print *, elements_uncommon_with (z)
+ print *, n_elements_uncommon_with_ (z)
+end
+! { dg-final { cleanup-modules "test" } }
diff --git a/gcc/testsuite/gfortran.dg/write_recursive.f90 b/gcc/testsuite/gfortran.dg/write_recursive.f90
new file mode 100644
index 00000000000..20014abd228
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/write_recursive.f90
@@ -0,0 +1,39 @@
+! { dg-do run }
+! PR26766 Recursive I/O with internal units
+! Test case derived from example in PR
+! Submitted by Jerry DeLisle <jvdelisle@gcc.gnu.org>
+program pr26766
+ implicit none
+ character (len=8) :: str, tmp
+ write (str, '(a)') bar (1234)
+ if (str.ne."abcd") call abort()
+ str = "wxyz"
+ write (str, '(2a4)') foo (1), bar (1)
+ if (str.ne."abcdabcd") call abort()
+
+contains
+
+ function foo (i) result (s)
+ integer, intent(in) :: i
+ character (len=4) :: s, t
+ if (i < 0) then
+ s = "1234"
+ else
+ ! Internal I/O, allowed recursive in f2003, see section 9.11
+ write (s, '(a)') "abcd"
+ end if
+ end function foo
+
+ function bar (i) result (s)
+ integer, intent(in) :: i
+ character (len=4) :: s, t
+ if (i < 0) then
+ s = "4567"
+ else
+ write (s, '(a)') foo(i)
+ end if
+ end function bar
+
+end program pr26766
+
+
diff --git a/gcc/testsuite/lib/gcc-defs.exp b/gcc/testsuite/lib/gcc-defs.exp
index afee893d9a1..3b60200a600 100644
--- a/gcc/testsuite/lib/gcc-defs.exp
+++ b/gcc/testsuite/lib/gcc-defs.exp
@@ -238,7 +238,7 @@ proc gcc-set-multilib-library-path { compiler } {
if { [is_remote host] == 0 && [which $compiler] != 0 } {
foreach i "[exec $compiler --print-multi-lib]" {
set mldir ""
- regexp -- "\[a-z0-9=/\.-\]*;" $i mldir
+ regexp -- "\[a-z0-9=_/\.-\]*;" $i mldir
set mldir [string trimright $mldir "\;@"]
if { "$mldir" == "." } {
continue
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 40f06982897..abe4fb97687 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -300,6 +300,7 @@ proc check_profiling_available { test_what } {
|| [istarget xscale*-*-elf]
|| [istarget cris-*-*]
|| [istarget h8300-*-*]
+ || [istarget m32c-*-elf]
|| [istarget m68k-*-elf]
|| [istarget mips*-*-elf]
|| [istarget xtensa-*-elf]
@@ -926,6 +927,42 @@ proc check_effective_target_ilp32 { } {
}]
}
+# Return 1 if we're generating 32-bit or larger integers using default
+# options, 0 otherwise.
+
+proc check_effective_target_int32plus { } {
+ return [check_no_compiler_messages int32plus object {
+ int dummy[sizeof (int) >= 4 ? 1 : -1];
+ }]
+}
+
+# Return 1 if we're generating 32-bit or larger pointers using default
+# options, 0 otherwise.
+
+proc check_effective_target_ptr32plus { } {
+ return [check_no_compiler_messages ptr32plus object {
+ int dummy[sizeof (void *) >= 4 ? 1 : -1];
+ }]
+}
+
+# Return 1 if we support 32-bit or larger array and structure sizes
+# using default options, 0 otherwise.
+
+proc check_effective_target_size32plus { } {
+ return [check_no_compiler_messages size32plus object {
+ char dummy[65537];
+ }]
+}
+
+# Returns 1 if we're generating 16-bit or smaller integers with the
+# default options, 0 otherwise.
+
+proc check_effective_target_int16 { } {
+ return [check_no_compiler_messages int16 object {
+ int dummy[sizeof (int) < 4 ? 1 : -1];
+ }]
+}
+
# Return 1 if we're generating 64-bit code using default options, 0
# otherwise.
diff --git a/gcc/timevar.def b/gcc/timevar.def
index b2c03f179f4..32f44674f1b 100644
--- a/gcc/timevar.def
+++ b/gcc/timevar.def
@@ -121,6 +121,7 @@ DEFTIMEVAR (TV_TREE_SSA_VERIFY , "tree SSA verifier")
DEFTIMEVAR (TV_TREE_STMT_VERIFY , "tree STMT verifier")
DEFTIMEVAR (TV_CGRAPH_VERIFY , "callgraph verifier")
DEFTIMEVAR (TV_DOM_FRONTIERS , "dominance frontiers")
+DEFTIMEVAR (TV_DOMINANCE , "dominance computation")
DEFTIMEVAR (TV_CONTROL_DEPENDENCES , "control dependences")
DEFTIMEVAR (TV_OVERLOAD , "overload resolution")
DEFTIMEVAR (TV_TEMPLATE_INSTANTIATION, "template instantiation")
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index 147ae3e1dbd..e14652be6d5 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -103,7 +103,6 @@ static void make_edges (void);
static void make_cond_expr_edges (basic_block);
static void make_switch_expr_edges (basic_block);
static void make_goto_expr_edges (basic_block);
-static void make_omp_sections_edges (basic_block);
static edge tree_redirect_edge_and_branch (edge, basic_block);
static edge tree_try_redirect_by_replacing_jump (edge, basic_block);
static unsigned int split_critical_edges (void);
@@ -447,6 +446,7 @@ static void
make_edges (void)
{
basic_block bb;
+ struct omp_region *cur_region = NULL;
/* Create an edge from entry to the first block with executable
statements in it. */
@@ -460,7 +460,8 @@ make_edges (void)
if (last)
{
- switch (TREE_CODE (last))
+ enum tree_code code = TREE_CODE (last);
+ switch (code)
{
case GOTO_EXPR:
make_goto_expr_edges (bb);
@@ -522,20 +523,55 @@ make_edges (void)
case OMP_ORDERED:
case OMP_CRITICAL:
case OMP_SECTION:
+ cur_region = new_omp_region (bb, code, cur_region);
fallthru = true;
break;
- case OMP_RETURN_EXPR:
- /* In the case of an OMP_SECTION, we may have already made
- an edge in make_omp_sections_edges. */
- fallthru = EDGE_COUNT (bb->succs) == 0;
- break;
-
case OMP_SECTIONS:
- make_omp_sections_edges (bb);
+ cur_region = new_omp_region (bb, code, cur_region);
fallthru = false;
break;
+ case OMP_RETURN:
+ /* In the case of an OMP_SECTION, the edge will go somewhere
+ other than the next block. This will be created later. */
+ cur_region->exit = bb;
+ fallthru = cur_region->type != OMP_SECTION;
+ cur_region = cur_region->outer;
+ break;
+
+ case OMP_CONTINUE:
+ cur_region->cont = bb;
+ switch (cur_region->type)
+ {
+ case OMP_FOR:
+ /* ??? Technically there should be a some sort of loopback
+ edge here, but it goes to a block that doesn't exist yet,
+ and without it, updating the ssa form would be a real
+ bear. Fortunately, we don't yet do ssa before expanding
+ these nodes. */
+ break;
+
+ case OMP_SECTIONS:
+ /* Wire up the edges into and out of the nested sections. */
+ /* ??? Similarly wrt loopback. */
+ {
+ struct omp_region *i;
+ for (i = cur_region->inner; i ; i = i->next)
+ {
+ gcc_assert (i->type == OMP_SECTION);
+ make_edge (cur_region->entry, i->entry, 0);
+ make_edge (i->exit, bb, EDGE_FALLTHRU);
+ }
+ }
+ break;
+
+ default:
+ gcc_unreachable ();
+ }
+ fallthru = true;
+ break;
+
default:
gcc_assert (!stmt_ends_bb_p (last));
fallthru = true;
@@ -548,6 +584,9 @@ make_edges (void)
make_edge (bb, bb->next_bb, EDGE_FALLTHRU);
}
+ if (root_omp_region)
+ free_omp_regions ();
+
/* Fold COND_EXPR_COND of each COND_EXPR. */
fold_cond_expr_cond ();
@@ -556,35 +595,6 @@ make_edges (void)
}
-/* Link an OMP_SECTIONS block to all the OMP_SECTION blocks in its body. */
-
-static void
-make_omp_sections_edges (basic_block bb)
-{
- basic_block exit_bb;
- size_t i, n;
- tree vec, stmt;
-
- stmt = last_stmt (bb);
- vec = OMP_SECTIONS_SECTIONS (stmt);
- n = TREE_VEC_LENGTH (vec);
- exit_bb = bb_for_stmt (TREE_VEC_ELT (vec, n - 1));
-
- for (i = 0; i < n - 1; i += 2)
- {
- basic_block start_bb = bb_for_stmt (TREE_VEC_ELT (vec, i));
- basic_block end_bb = bb_for_stmt (TREE_VEC_ELT (vec, i + 1));
- make_edge (bb, start_bb, 0);
- make_edge (end_bb, exit_bb, EDGE_FALLTHRU);
- }
-
- /* Once the CFG has been built, the vector of sections is no longer
- useful. The region can be easily obtained with build_omp_regions.
- Furthermore, this sharing of tree expressions is not allowed by the
- statement verifier. */
- OMP_SECTIONS_SECTIONS (stmt) = NULL_TREE;
-}
-
/* Create the edges for a COND_EXPR starting at block BB.
At this point, both clauses must contain only simple gotos. */
@@ -2498,7 +2508,7 @@ is_ctrl_altering_stmt (tree t)
}
/* OpenMP directives alter control flow. */
- if (flag_openmp && OMP_DIRECTIVE_P (t))
+ if (OMP_DIRECTIVE_P (t))
return true;
/* If a statement can throw, it alters control flow. */
@@ -4549,7 +4559,9 @@ move_stmt_r (tree *tp, int *walk_subtrees, void *data)
if (p->block && IS_EXPR_CODE_CLASS (TREE_CODE_CLASS (TREE_CODE (t))))
TREE_BLOCK (t) = p->block;
- if (OMP_DIRECTIVE_P (t) && TREE_CODE (t) != OMP_RETURN_EXPR)
+ if (OMP_DIRECTIVE_P (t)
+ && TREE_CODE (t) != OMP_RETURN
+ && TREE_CODE (t) != OMP_CONTINUE)
{
/* Do not remap variables inside OMP directives. Variables
referenced in clauses and directive header belong to the
@@ -4733,9 +4745,16 @@ find_outermost_region_in_block (struct function *src_cfun,
int stmt_region;
stmt_region = lookup_stmt_eh_region_fn (src_cfun, stmt);
- if (stmt_region > 0
- && (region < 0 || eh_region_outer_p (src_cfun, stmt_region, region)))
- region = stmt_region;
+ if (stmt_region > 0)
+ {
+ if (region < 0)
+ region = stmt_region;
+ else if (stmt_region != region)
+ {
+ region = eh_region_outermost (src_cfun, stmt_region, region);
+ gcc_assert (region != -1);
+ }
+ }
}
return region;
diff --git a/gcc/tree-cfgcleanup.c b/gcc/tree-cfgcleanup.c
index fb1ea761d32..ab452c4af5a 100644
--- a/gcc/tree-cfgcleanup.c
+++ b/gcc/tree-cfgcleanup.c
@@ -765,13 +765,12 @@ merge_phi_nodes (void)
for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
{
tree result = PHI_RESULT (phi);
- int num_uses = num_imm_uses (result);
use_operand_p imm_use;
tree use_stmt;
/* If the PHI's result is never used, then we can just
ignore it. */
- if (num_uses == 0)
+ if (has_zero_uses (result))
continue;
/* Get the single use of the result of this PHI node. */
diff --git a/gcc/tree-complex.c b/gcc/tree-complex.c
index 0529131301a..65466bbadb3 100644
--- a/gcc/tree-complex.c
+++ b/gcc/tree-complex.c
@@ -652,6 +652,8 @@ update_parameter_components (void)
type = TREE_TYPE (type);
ssa_name = default_def (parm);
+ if (!ssa_name)
+ continue;
r = build1 (REALPART_EXPR, type, ssa_name);
i = build1 (IMAGPART_EXPR, type, ssa_name);
diff --git a/gcc/tree-flow.h b/gcc/tree-flow.h
index 3b858e610f4..cdf38af822f 100644
--- a/gcc/tree-flow.h
+++ b/gcc/tree-flow.h
@@ -470,6 +470,51 @@ extern void bsi_insert_after (block_stmt_iterator *, tree,
extern void bsi_replace (const block_stmt_iterator *, tree, bool);
/*---------------------------------------------------------------------------
+ OpenMP Region Tree
+---------------------------------------------------------------------------*/
+
+/* Parallel region information. Every parallel and workshare
+ directive is enclosed between two markers, the OMP_* directive
+ and a corresponding OMP_RETURN statement. */
+
+struct omp_region
+{
+ /* The enclosing region. */
+ struct omp_region *outer;
+
+ /* First child region. */
+ struct omp_region *inner;
+
+ /* Next peer region. */
+ struct omp_region *next;
+
+ /* Block containing the omp directive as its last stmt. */
+ basic_block entry;
+
+ /* Block containing the OMP_RETURN as its last stmt. */
+ basic_block exit;
+
+ /* Block containing the OMP_CONTINUE as its last stmt. */
+ basic_block cont;
+
+ /* If this is a combined parallel+workshare region, this is a list
+ of additional arguments needed by the combined parallel+workshare
+ library call. */
+ tree ws_args;
+
+ /* The code for the omp directive of this region. */
+ enum tree_code type;
+
+ /* True if this is a combined parallel+workshare region. */
+ bool is_combined_parallel;
+};
+
+extern struct omp_region *root_omp_region;
+extern struct omp_region *new_omp_region (basic_block, enum tree_code,
+ struct omp_region *);
+extern void free_omp_regions (void);
+
+/*---------------------------------------------------------------------------
Function prototypes
---------------------------------------------------------------------------*/
/* In tree-cfg.c */
diff --git a/gcc/tree-gimple.c b/gcc/tree-gimple.c
index b47b0012c68..7b5202771c3 100644
--- a/gcc/tree-gimple.c
+++ b/gcc/tree-gimple.c
@@ -224,7 +224,8 @@ is_gimple_stmt (tree t)
case OMP_MASTER:
case OMP_ORDERED:
case OMP_CRITICAL:
- case OMP_RETURN_EXPR:
+ case OMP_RETURN:
+ case OMP_CONTINUE:
/* These are always void. */
return true;
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index 3e35842a76e..309bb406fb8 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -590,6 +590,7 @@ copy_body_r (tree *tp, int *walk_subtrees, void *data)
if (n)
{
tree new;
+ tree old;
/* If we happen to get an ADDR_EXPR in n->value, strip
it manually here as we'll eventually get ADDR_EXPRs
which lie about their types pointed to. In this case
@@ -598,13 +599,17 @@ copy_body_r (tree *tp, int *walk_subtrees, void *data)
does other useful transformations, try that first, though. */
tree type = TREE_TYPE (TREE_TYPE ((tree)n->value));
new = unshare_expr ((tree)n->value);
+ old = *tp;
*tp = fold_indirect_ref_1 (type, new);
if (! *tp)
{
if (TREE_CODE (new) == ADDR_EXPR)
*tp = TREE_OPERAND (new, 0);
else
- *tp = build1 (INDIRECT_REF, type, new);
+ {
+ *tp = build1 (INDIRECT_REF, type, new);
+ TREE_THIS_VOLATILE (*tp) = TREE_THIS_VOLATILE (old);
+ }
}
*walk_subtrees = 0;
return NULL;
@@ -893,7 +898,7 @@ copy_cfg_body (copy_body_data * id, gcov_type count, int frequency,
*new_cfun = *DECL_STRUCT_FUNCTION (callee_fndecl);
new_cfun->cfg = NULL;
new_cfun->decl = new_fndecl = copy_node (callee_fndecl);
- new_cfun->ib_boundaries_block = (varray_type) 0;
+ new_cfun->ib_boundaries_block = NULL;
DECL_STRUCT_FUNCTION (new_fndecl) = new_cfun;
push_cfun (new_cfun);
init_empty_tree_cfg ();
@@ -1603,7 +1608,8 @@ estimate_num_insns_1 (tree *tp, int *walk_subtrees, void *data)
case PHI_NODE:
case WITH_SIZE_EXPR:
case OMP_CLAUSE:
- case OMP_RETURN_EXPR:
+ case OMP_RETURN:
+ case OMP_CONTINUE:
break;
/* We don't account constants for now. Assume that the cost is amortized
@@ -2072,6 +2078,7 @@ expand_call_inline (basic_block bb, tree stmt, tree *tp, void *data)
if (CALL_EXPR_RETURN_SLOT_OPT (t))
{
return_slot_addr = build_fold_addr_expr (modify_dest);
+ STRIP_USELESS_TYPE_CONVERSION (return_slot_addr);
modify_dest = NULL;
}
}
diff --git a/gcc/tree-into-ssa.c b/gcc/tree-into-ssa.c
index e0b6e6e16d2..29ad2fc6d60 100644
--- a/gcc/tree-into-ssa.c
+++ b/gcc/tree-into-ssa.c
@@ -47,6 +47,7 @@ Boston, MA 02110-1301, USA. */
#include "domwalk.h"
#include "ggc.h"
#include "params.h"
+#include "vecprim.h"
/* This file builds the SSA form for a function as described in:
R. Cytron, J. Ferrante, B. Rosen, M. Wegman, and K. Zadeck. Efficiently
@@ -103,12 +104,6 @@ static htab_t def_blocks;
associated with the current block. */
static VEC(tree,heap) *block_defs_stack;
-/* Basic block vectors used in this file ought to be allocated in the
- heap. We use pointer vector, because ints can be easily passed by
- value. */
-DEF_VEC_I(int);
-DEF_VEC_ALLOC_I(int,heap);
-
/* Set of existing SSA names being replaced by update_ssa. */
static sbitmap old_ssa_names;
diff --git a/gcc/tree-mudflap.c b/gcc/tree-mudflap.c
index 1a62859e6f1..4bca1f46b10 100644
--- a/gcc/tree-mudflap.c
+++ b/gcc/tree-mudflap.c
@@ -48,6 +48,10 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
/* Internal function decls */
+
+/* Options. */
+#define flag_mudflap_threads (flag_mudflap == 2)
+
/* Helpers. */
static tree mf_build_string (const char *string);
static tree mf_varname_tree (tree);
@@ -1232,6 +1236,10 @@ mudflap_finish_file (void)
{
tree ctor_statements = NULL_TREE;
+ /* No need to continue when there were errors. */
+ if (errorcount != 0 || sorrycount != 0)
+ return;
+
/* Insert a call to __mf_init. */
{
tree call2_stmt = build_function_call_expr (mf_init_fndecl, NULL_TREE);
@@ -1256,9 +1264,6 @@ mudflap_finish_file (void)
{
gcc_assert (DECL_P (obj));
- if (TREE_TYPE (obj) == error_mark_node)
- continue;
-
if (mf_marked_p (obj))
continue;
diff --git a/gcc/tree-outof-ssa.c b/gcc/tree-outof-ssa.c
index f2841ae00e8..e41b0ff1ec6 100644
--- a/gcc/tree-outof-ssa.c
+++ b/gcc/tree-outof-ssa.c
@@ -46,6 +46,7 @@ Boston, MA 02110-1301, USA. */
#include "tree-ssa-live.h"
#include "tree-pass.h"
#include "toplev.h"
+#include "vecprim.h"
/* Flags to pass to remove_ssa_form. */
@@ -53,9 +54,6 @@ Boston, MA 02110-1301, USA. */
#define SSANORM_COMBINE_TEMPS 0x2
#define SSANORM_COALESCE_PARTITIONS 0x4
-DEF_VEC_I(int);
-DEF_VEC_ALLOC_I(int,heap);
-
/* 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
edges represented as pairs of nodes.
@@ -1323,7 +1321,7 @@ static inline void add_value_to_list (temp_expr_table_p, value_expr_p *, int);
static inline void add_info_to_list (temp_expr_table_p, value_expr_p *,
value_expr_p);
static value_expr_p remove_value_from_list (value_expr_p *, int);
-static void add_dependance (temp_expr_table_p, int, tree);
+static void add_dependence (temp_expr_table_p, int, tree);
static bool check_replaceable (temp_expr_table_p, tree);
static void finish_expr (temp_expr_table_p, int, bool);
static void mark_replaceable (temp_expr_table_p, tree);
@@ -1512,7 +1510,7 @@ remove_value_from_list (value_expr_p *list, int value)
expression table. */
static void
-add_dependance (temp_expr_table_p tab, int version, tree var)
+add_dependence (temp_expr_table_p tab, int version, tree var)
{
int i, x;
value_expr_p info;
@@ -1595,7 +1593,7 @@ check_replaceable (temp_expr_table_p tab, tree stmt)
/* Add this expression to the dependency list for each use partition. */
FOR_EACH_SSA_TREE_OPERAND (var, stmt, iter, SSA_OP_USE)
{
- add_dependance (tab, version, var);
+ add_dependence (tab, version, var);
use_vars = tab->expr_vars[SSA_NAME_VERSION (var)];
if (use_vars)
diff --git a/gcc/tree-pretty-print.c b/gcc/tree-pretty-print.c
index a8a33a50fcf..b86d2ce9077 100644
--- a/gcc/tree-pretty-print.c
+++ b/gcc/tree-pretty-print.c
@@ -1822,8 +1822,15 @@ dump_generic_node (pretty_printer *buffer, tree node, int spc, int flags,
dump_omp_clauses (buffer, OMP_SINGLE_CLAUSES (node), spc, flags);
goto dump_omp_body;
- case OMP_RETURN_EXPR:
+ case OMP_RETURN:
pp_string (buffer, "OMP_RETURN");
+ if (OMP_RETURN_NOWAIT (node))
+ pp_string (buffer, " [nowait]");
+ is_expr = false;
+ break;
+
+ case OMP_CONTINUE:
+ pp_string (buffer, "OMP_CONTINUE");
is_expr = false;
break;
diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c
index 3ad4b0ffe1c..4e8b5a4374a 100644
--- a/gcc/tree-ssa-alias.c
+++ b/gcc/tree-ssa-alias.c
@@ -46,6 +46,7 @@ Boston, MA 02110-1301, USA. */
#include "ipa-type-escape.h"
#include "vec.h"
#include "bitmap.h"
+#include "vecprim.h"
/* Obstack used to hold grouping bitmaps and other temporary bitmaps used by
aliasing */
@@ -135,9 +136,6 @@ bitmap addressable_vars;
having to keep track of too many V_MAY_DEF expressions at call sites. */
tree global_var;
-DEF_VEC_I(int);
-DEF_VEC_ALLOC_I(int,heap);
-
/* qsort comparison function to sort type/name tags by DECL_UID. */
static int
@@ -316,6 +314,7 @@ set_initial_properties (struct alias_info *ai)
unsigned int i;
referenced_var_iterator rvi;
tree var;
+ tree ptr;
FOR_EACH_REFERENCED_VAR (var, rvi)
{
@@ -336,9 +335,8 @@ set_initial_properties (struct alias_info *ai)
}
}
- for (i = 0; i < VARRAY_ACTIVE_SIZE (ai->processed_ptrs); i++)
+ for (i = 0; VEC_iterate (tree, ai->processed_ptrs, i, ptr); i++)
{
- tree ptr = VARRAY_TREE (ai->processed_ptrs, i);
struct ptr_info_def *pi = SSA_NAME_PTR_INFO (ptr);
var_ann_t v_ann = var_ann (SSA_NAME_VAR (ptr));
@@ -426,6 +424,26 @@ compute_call_clobbered (struct alias_info *ai)
}
+/* Helper for recalculate_used_alone. Return a conservatively correct
+ answer as to whether STMT may make a store on the LHS to SYM. */
+
+static bool
+lhs_may_store_to (tree stmt, tree sym ATTRIBUTE_UNUSED)
+{
+ tree lhs = TREE_OPERAND (stmt, 0);
+
+ lhs = get_base_address (lhs);
+
+ if (!lhs)
+ return false;
+
+ if (TREE_CODE (lhs) == SSA_NAME)
+ return false;
+ /* We could do better here by looking at the type tag of LHS, but it
+ is unclear whether this is worth it. */
+ return true;
+}
+
/* Recalculate the used_alone information for SMTs . */
void
@@ -457,38 +475,45 @@ recalculate_used_alone (void)
{
for (bsi = bsi_start (bb); !bsi_end_p (bsi); bsi_next (&bsi))
{
+ bool iscall = false;
+ ssa_op_iter iter;
+
stmt = bsi_stmt (bsi);
+
if (TREE_CODE (stmt) == CALL_EXPR
|| (TREE_CODE (stmt) == MODIFY_EXPR
&& TREE_CODE (TREE_OPERAND (stmt, 1)) == CALL_EXPR))
- VEC_safe_push (tree, heap, calls, stmt);
- else
{
- ssa_op_iter iter;
+ iscall = true;
+ VEC_safe_push (tree, heap, calls, stmt);
+ }
+
+ FOR_EACH_SSA_TREE_OPERAND (var, stmt, iter,
+ SSA_OP_VUSE | SSA_OP_VIRTUAL_DEFS)
+ {
+ tree svar = var;
- FOR_EACH_SSA_TREE_OPERAND (var, stmt, iter,
- SSA_OP_VUSE | SSA_OP_VIRTUAL_DEFS)
+ if (TREE_CODE (var) == SSA_NAME)
+ svar = SSA_NAME_VAR (var);
+
+ if (TREE_CODE (svar) == SYMBOL_MEMORY_TAG)
{
- tree svar = var;
-
- if(TREE_CODE (var) == SSA_NAME)
- svar = SSA_NAME_VAR (var);
-
- if (TREE_CODE (svar) == SYMBOL_MEMORY_TAG)
+ /* We only care about the LHS on calls. */
+ if (iscall && !lhs_may_store_to (stmt, svar))
+ continue;
+
+ if (!SMT_USED_ALONE (svar))
{
- if (!SMT_USED_ALONE (svar))
- {
- SMT_USED_ALONE (svar) = true;
-
- /* Only need to mark for renaming if it wasn't
- used alone before. */
- if (!SMT_OLD_USED_ALONE (svar))
- mark_sym_for_renaming (svar);
- }
+ SMT_USED_ALONE (svar) = true;
+
+ /* Only need to mark for renaming if it wasn't
+ used alone before. */
+ if (!SMT_OLD_USED_ALONE (svar))
+ mark_sym_for_renaming (svar);
}
}
- }
- }
+ }
+ }
}
/* Update the operands on all the calls we saw. */
@@ -834,7 +859,7 @@ init_alias_info (void)
ai = XCNEW (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->processed_ptrs = VEC_alloc (tree, heap, 50);
ai->written_vars = BITMAP_ALLOC (&alias_obstack);
ai->dereferenced_ptrs_store = BITMAP_ALLOC (&alias_obstack);
ai->dereferenced_ptrs_load = BITMAP_ALLOC (&alias_obstack);
@@ -918,7 +943,7 @@ delete_alias_info (struct alias_info *ai)
tree var;
sbitmap_free (ai->ssa_names_visited);
- ai->processed_ptrs = NULL;
+ VEC_free (tree, heap, ai->processed_ptrs);
for (i = 0; i < ai->num_addressable_vars; i++)
free (ai->addressable_vars[i]);
@@ -1060,20 +1085,19 @@ static void
compute_flow_sensitive_aliasing (struct alias_info *ai)
{
size_t i;
+ tree ptr;
- for (i = 0; i < VARRAY_ACTIVE_SIZE (ai->processed_ptrs); i++)
+ for (i = 0; VEC_iterate (tree, ai->processed_ptrs, i, ptr); i++)
{
- tree ptr = VARRAY_TREE (ai->processed_ptrs, i);
if (!find_what_p_points_to (ptr))
set_pt_anything (ptr);
}
create_name_tags ();
- for (i = 0; i < VARRAY_ACTIVE_SIZE (ai->processed_ptrs); i++)
+ for (i = 0; VEC_iterate (tree, ai->processed_ptrs, i, ptr); i++)
{
unsigned j;
- tree ptr = VARRAY_TREE (ai->processed_ptrs, i);
struct ptr_info_def *pi = SSA_NAME_PTR_INFO (ptr);
var_ann_t v_ann = var_ann (SSA_NAME_VAR (ptr));
bitmap_iterator bi;
@@ -1386,6 +1410,7 @@ static void
group_aliases (struct alias_info *ai)
{
size_t i;
+ tree ptr;
/* Sort the POINTERS array in descending order of contributed
virtual operands. */
@@ -1453,10 +1478,9 @@ group_aliases (struct alias_info *ai)
into p_5->field, but that is wrong because there have been
modifications to 'SMT.20' in between. To prevent this we have to
replace 'a' with 'SMT.20' in the name tag of p_5. */
- for (i = 0; i < VARRAY_ACTIVE_SIZE (ai->processed_ptrs); i++)
+ for (i = 0; VEC_iterate (tree, ai->processed_ptrs, i, ptr); i++)
{
size_t j;
- tree ptr = VARRAY_TREE (ai->processed_ptrs, i);
tree name_tag = SSA_NAME_PTR_INFO (ptr)->name_mem_tag;
VEC(tree,gc) *aliases;
tree alias;
diff --git a/gcc/tree-ssa-copy.c b/gcc/tree-ssa-copy.c
index fca44d76c05..f1b67b5bf2a 100644
--- a/gcc/tree-ssa-copy.c
+++ b/gcc/tree-ssa-copy.c
@@ -117,6 +117,21 @@ may_propagate_copy (tree dest, tree orig)
else if (get_alias_set (TREE_TYPE (type_d)) !=
get_alias_set (TREE_TYPE (type_o)))
return false;
+
+ /* Also verify flow-sensitive information is compatible. */
+ if (SSA_NAME_PTR_INFO (orig) && SSA_NAME_PTR_INFO (dest))
+ {
+ struct ptr_info_def *orig_ptr_info = SSA_NAME_PTR_INFO (orig);
+ struct ptr_info_def *dest_ptr_info = SSA_NAME_PTR_INFO (dest);
+
+ if (orig_ptr_info->name_mem_tag
+ && dest_ptr_info->name_mem_tag
+ && orig_ptr_info->pt_vars
+ && dest_ptr_info->pt_vars
+ && !bitmap_intersect_p (dest_ptr_info->pt_vars,
+ orig_ptr_info->pt_vars))
+ return false;
+ }
}
/* If the destination is a SSA_NAME for a virtual operand, then we have
diff --git a/gcc/tree-ssa-dom.c b/gcc/tree-ssa-dom.c
index 6f7c2ebad56..2777d550916 100644
--- a/gcc/tree-ssa-dom.c
+++ b/gcc/tree-ssa-dom.c
@@ -2318,7 +2318,7 @@ propagate_rhs_into_lhs (tree stmt, tree lhs, tree rhs, bitmap interesting_names)
The maximum number of times we can re-execute the loop is
bounded by the maximum number of times a given SSA_NAME
appears in a single statement. */
- if (all && num_imm_uses (lhs) != 0)
+ if (all && !has_zero_uses (lhs))
goto repeat;
/* If we were able to propagate away all uses of LHS, then
@@ -2439,7 +2439,7 @@ eliminate_degenerate_phis (void)
A set bit indicates that the statement or PHI node which
defines the SSA_NAME should be (re)examined to determine if
- it has become a degenerate PHI or trival const/copy propagation
+ it has become a degenerate PHI or trivial const/copy propagation
opportunity.
Experiments have show we generally get better compilation
diff --git a/gcc/tree-ssa-dse.c b/gcc/tree-ssa-dse.c
index 17ed1297aff..85be46961da 100644
--- a/gcc/tree-ssa-dse.c
+++ b/gcc/tree-ssa-dse.c
@@ -269,7 +269,7 @@ dse_optimize_stmt (struct dom_walk_data *walk_data,
/* If this virtual def does not have precisely one use, then
we will not be able to eliminate STMT. */
- if (num_imm_uses (defvar) != 1)
+ if (! has_single_use (defvar))
{
fail = true;
break;
diff --git a/gcc/tree-ssa-live.c b/gcc/tree-ssa-live.c
index 5b9ead1f927..a5fe403ef53 100644
--- a/gcc/tree-ssa-live.c
+++ b/gcc/tree-ssa-live.c
@@ -38,6 +38,7 @@ Boston, MA 02110-1301, USA. */
#include "tree-dump.h"
#include "tree-ssa-live.h"
#include "toplev.h"
+#include "vecprim.h"
static void live_worklist (tree_live_info_p, int *, int);
static tree_live_info_p new_tree_live_info (var_map);
@@ -881,7 +882,7 @@ tpa_init (var_map map)
x = MAX (40, (num_partitions / 20));
tpa->trees = VEC_alloc (tree, heap, x);
- VARRAY_INT_INIT (tpa->first_partition, x, "first_partition");
+ tpa->first_partition = VEC_alloc (int, heap, x);
return tpa;
@@ -898,7 +899,8 @@ tpa_remove_partition (tpa_p tpa, int tree_index, int partition_index)
i = tpa_first_partition (tpa, tree_index);
if (i == partition_index)
{
- VARRAY_INT (tpa->first_partition, tree_index) = tpa->next_partition[i];
+ VEC_replace (int, tpa->first_partition, tree_index,
+ tpa->next_partition[i]);
}
else
{
@@ -923,6 +925,7 @@ tpa_delete (tpa_p tpa)
return;
VEC_free (tree, heap, tpa->trees);
+ VEC_free (int, heap, tpa->first_partition);
free (tpa->partition_to_tree_map);
free (tpa->next_partition);
free (tpa);
@@ -957,20 +960,20 @@ tpa_compact (tpa_p tpa)
if (tpa_next_partition (tpa, first) == NO_PARTITION)
{
swap_t = VEC_index (tree, tpa->trees, last);
- swap_i = VARRAY_INT (tpa->first_partition, last);
+ swap_i = VEC_index (int, tpa->first_partition, last);
/* Update the last entry. Since it is known to only have one
partition, there is nothing else to update. */
VEC_replace (tree, tpa->trees, last,
VEC_index (tree, tpa->trees, x));
- VARRAY_INT (tpa->first_partition, last)
- = VARRAY_INT (tpa->first_partition, x);
+ VEC_replace (int, tpa->first_partition, last,
+ VEC_index (int, tpa->first_partition, x));
tpa->partition_to_tree_map[tpa_first_partition (tpa, last)] = last;
/* Since this list is known to have more than one partition, update
the list owner entries. */
VEC_replace (tree, tpa->trees, x, swap_t);
- VARRAY_INT (tpa->first_partition, x) = swap_i;
+ VEC_replace (int, tpa->first_partition, x, swap_i);
for (y = tpa_first_partition (tpa, x);
y != NO_PARTITION;
y = tpa_next_partition (tpa, y))
@@ -1040,16 +1043,16 @@ root_var_init (var_map map)
ann = var_ann (t);
if (ann->root_var_processed)
{
- rv->next_partition[p] = VARRAY_INT (rv->first_partition,
- VAR_ANN_ROOT_INDEX (ann));
- VARRAY_INT (rv->first_partition, VAR_ANN_ROOT_INDEX (ann)) = p;
+ rv->next_partition[p] = VEC_index (int, rv->first_partition,
+ VAR_ANN_ROOT_INDEX (ann));
+ VEC_replace (int, rv->first_partition, VAR_ANN_ROOT_INDEX (ann), p);
}
else
{
ann->root_var_processed = 1;
VAR_ANN_ROOT_INDEX (ann) = rv->num_trees++;
VEC_safe_push (tree, heap, rv->trees, t);
- VARRAY_PUSH_INT (rv->first_partition, p);
+ VEC_safe_push (int, heap, rv->first_partition, p);
}
rv->partition_to_tree_map[p] = VAR_ANN_ROOT_INDEX (ann);
}
@@ -1119,12 +1122,12 @@ type_var_init (var_map map)
{
tv->num_trees++;
VEC_safe_push (tree, heap, tv->trees, t);
- VARRAY_PUSH_INT (tv->first_partition, p);
+ VEC_safe_push (int, heap, tv->first_partition, p);
}
else
{
- tv->next_partition[p] = VARRAY_INT (tv->first_partition, y);
- VARRAY_INT (tv->first_partition, y) = p;
+ tv->next_partition[p] = VEC_index (int, tv->first_partition, y);
+ VEC_replace (int, tv->first_partition, y, p);
}
tv->partition_to_tree_map[p] = y;
}
@@ -1385,9 +1388,6 @@ add_conflicts_if_valid (tpa_p tpa, conflict_graph graph,
}
}
-DEF_VEC_I(int);
-DEF_VEC_ALLOC_I(int,heap);
-
/* Return a conflict graph for the information contained in LIVE_INFO. Only
conflicts between items in the same TPA list are added. If optional
coalesce list CL is passed in, any copies encountered are added. */
diff --git a/gcc/tree-ssa-live.h b/gcc/tree-ssa-live.h
index 2c4127402fa..f0c59028e19 100644
--- a/gcc/tree-ssa-live.h
+++ b/gcc/tree-ssa-live.h
@@ -24,6 +24,7 @@ Boston, MA 02110-1301, USA. */
#define _TREE_SSA_LIVE_H 1
#include "partition.h"
+#include "vecprim.h"
/* Used to create the variable mapping when we go out of SSA form. */
typedef struct _var_map
@@ -338,7 +339,7 @@ make_live_on_entry (tree_live_info_p live, basic_block bb , int p)
typedef struct tree_partition_associator_d
{
VEC(tree,heap) *trees;
- varray_type first_partition;
+ VEC(int,heap) *first_partition;
int *next_partition;
int *partition_to_tree_map;
int num_trees;
@@ -384,7 +385,7 @@ tpa_tree (tpa_p tpa, int i)
static inline int
tpa_first_partition (tpa_p tpa, int i)
{
- return VARRAY_INT (tpa->first_partition, i);
+ return VEC_index (int, tpa->first_partition, i);
}
diff --git a/gcc/tree-ssa-loop-prefetch.c b/gcc/tree-ssa-loop-prefetch.c
index 4b63d076be9..b58dbf6fccd 100644
--- a/gcc/tree-ssa-loop-prefetch.c
+++ b/gcc/tree-ssa-loop-prefetch.c
@@ -204,7 +204,7 @@ struct mem_ref
struct mem_ref *next; /* The next reference in the group. */
};
-/* Dumps information obout reference REF to FILE. */
+/* Dumps information about reference REF to FILE. */
static void
dump_mem_ref (FILE *file, struct mem_ref *ref)
diff --git a/gcc/tree-ssa-math-opts.c b/gcc/tree-ssa-math-opts.c
index 609c408ed8c..4d02894eb29 100644
--- a/gcc/tree-ssa-math-opts.c
+++ b/gcc/tree-ssa-math-opts.c
@@ -279,6 +279,35 @@ is_division_by (tree use_stmt, tree def)
&& TREE_OPERAND (TREE_OPERAND (use_stmt, 1), 1) == def;
}
+/* Return the LHS of a RDIV_EXPR that computes a reciprocal in type TYPE. */
+static tree
+get_constant_one (tree type)
+{
+ tree scalar, cst;
+ int i;
+
+ gcc_assert (FLOAT_TYPE_P (type));
+ switch (TREE_CODE (type))
+ {
+ case REAL_TYPE:
+ return build_real (type, dconst1);
+
+ case VECTOR_TYPE:
+ scalar = build_real (TREE_TYPE (type), dconst1);
+
+ /* Create 'vect_cst_ = {cst,cst,...,cst}' */
+ cst = NULL_TREE;
+ for (i = TYPE_VECTOR_SUBPARTS (type); --i >= 0; )
+ cst = tree_cons (NULL_TREE, scalar, cst);
+
+ return build_vector (type, cst);
+
+ default:
+ /* Complex operations have been split already. */
+ gcc_unreachable ();
+ }
+}
+
/* Walk the subset of the dominator tree rooted at OCC, setting the
RECIP_DEF field to a definition of 1.0 / DEF that can be used in
the given basic block. The field may be left NULL, of course,
@@ -304,8 +333,8 @@ insert_reciprocals (block_stmt_iterator *def_bsi, struct occurrence *occ,
type = TREE_TYPE (def);
recip_def = make_rename_temp (type, "reciptmp");
new_stmt = build2 (MODIFY_EXPR, void_type_node, recip_def,
- fold_build2 (RDIV_EXPR, type,
- build_real (type, dconst1), def));
+ fold_build2 (RDIV_EXPR, type, get_constant_one (type),
+ def));
if (occ->bb_has_division)
diff --git a/gcc/tree-ssa-operands.c b/gcc/tree-ssa-operands.c
index ff0d4d82cb6..7ef064718cc 100644
--- a/gcc/tree-ssa-operands.c
+++ b/gcc/tree-ssa-operands.c
@@ -2096,11 +2096,12 @@ get_expr_operands (tree stmt, tree *expr_p, int flags)
case OMP_PARALLEL:
case OMP_SECTIONS:
case OMP_FOR:
- case OMP_RETURN_EXPR:
case OMP_SINGLE:
case OMP_MASTER:
case OMP_ORDERED:
case OMP_CRITICAL:
+ case OMP_RETURN:
+ case OMP_CONTINUE:
/* Expressions that make no memory references. */
return;
diff --git a/gcc/tree-ssa-reassoc.c b/gcc/tree-ssa-reassoc.c
index 4d298fe9495..477d8c8e407 100644
--- a/gcc/tree-ssa-reassoc.c
+++ b/gcc/tree-ssa-reassoc.c
@@ -1032,7 +1032,7 @@ negate_value (tree tonegate, block_stmt_iterator *bsi)
if (TREE_CODE (tonegate) == SSA_NAME
&& TREE_CODE (negatedef) == MODIFY_EXPR
&& TREE_CODE (TREE_OPERAND (negatedef, 0)) == SSA_NAME
- && num_imm_uses (TREE_OPERAND (negatedef, 0)) == 1
+ && has_single_use (TREE_OPERAND (negatedef, 0))
&& TREE_CODE (TREE_OPERAND (negatedef, 1)) == PLUS_EXPR)
{
block_stmt_iterator bsi;
@@ -1331,7 +1331,7 @@ reassociate_bb (basic_block bb)
/* There may be no immediate uses left by the time we
get here because we may have eliminated them all. */
- if (TREE_CODE (lhs) == SSA_NAME && num_imm_uses (lhs) == 0)
+ if (TREE_CODE (lhs) == SSA_NAME && has_zero_uses (lhs))
continue;
TREE_VISITED (stmt) = 1;
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c
index 990398c1803..7a00de45611 100644
--- a/gcc/tree-ssa-structalias.c
+++ b/gcc/tree-ssa-structalias.c
@@ -3041,7 +3041,7 @@ update_alias_info (tree stmt, struct alias_info *ai)
if (!TEST_BIT (ai->ssa_names_visited, SSA_NAME_VERSION (op)))
{
SET_BIT (ai->ssa_names_visited, SSA_NAME_VERSION (op));
- VARRAY_PUSH_TREE (ai->processed_ptrs, op);
+ VEC_safe_push (tree, heap, ai->processed_ptrs, op);
}
/* If STMT is a PHI node, then it will not have pointer
diff --git a/gcc/tree-ssa-structalias.h b/gcc/tree-ssa-structalias.h
index bc129dde134..46fe0c13ad0 100644
--- a/gcc/tree-ssa-structalias.h
+++ b/gcc/tree-ssa-structalias.h
@@ -34,7 +34,7 @@ struct alias_info
sbitmap ssa_names_visited;
/* Array of SSA_NAME pointers processed by the points-to collector. */
- varray_type processed_ptrs;
+ VEC(tree,heap) *processed_ptrs;
/* ADDRESSABLE_VARS contains all the global variables and locals that
have had their address taken. */
@@ -52,11 +52,6 @@ struct alias_info
/* 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. */
- varray_type num_references;
-
/* Total number of virtual operands that will be needed to represent
all the aliases of all the pointers found in the program. */
long total_alias_vops;
diff --git a/gcc/tree-tailcall.c b/gcc/tree-tailcall.c
index bdc5c95de88..fb9948e672d 100644
--- a/gcc/tree-tailcall.c
+++ b/gcc/tree-tailcall.c
@@ -1017,7 +1017,7 @@ execute_tail_calls (void)
struct tree_opt_pass pass_tail_recursion =
{
"tailr", /* name */
- NULL, /* gate */
+ gate_tail_calls, /* gate */
execute_tail_recursion, /* execute */
NULL, /* sub */
NULL, /* next */
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index fa419599ea6..872a466a55d 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -1703,7 +1703,7 @@ extract_range_from_unary_expr (value_range_t *vr, tree expr)
new_max = fold_convert (outer_type, orig_max);
/* Verify the new min/max values are gimple values and
- that they compare equal to the orignal input's
+ that they compare equal to the original input's
min/max values. */
if (is_gimple_val (new_min)
&& is_gimple_val (new_max)
diff --git a/gcc/tree.c b/gcc/tree.c
index b67c2fa371a..48b4c655faa 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -1209,7 +1209,6 @@ integer_zerop (tree expr)
STRIP_NOPS (expr);
return ((TREE_CODE (expr) == INTEGER_CST
- && ! TREE_CONSTANT_OVERFLOW (expr)
&& TREE_INT_CST_LOW (expr) == 0
&& TREE_INT_CST_HIGH (expr) == 0)
|| (TREE_CODE (expr) == COMPLEX_CST
@@ -1226,7 +1225,6 @@ integer_onep (tree expr)
STRIP_NOPS (expr);
return ((TREE_CODE (expr) == INTEGER_CST
- && ! TREE_CONSTANT_OVERFLOW (expr)
&& TREE_INT_CST_LOW (expr) == 1
&& TREE_INT_CST_HIGH (expr) == 0)
|| (TREE_CODE (expr) == COMPLEX_CST
@@ -1250,8 +1248,7 @@ integer_all_onesp (tree expr)
&& integer_zerop (TREE_IMAGPART (expr)))
return 1;
- else if (TREE_CODE (expr) != INTEGER_CST
- || TREE_CONSTANT_OVERFLOW (expr))
+ else if (TREE_CODE (expr) != INTEGER_CST)
return 0;
uns = TYPE_UNSIGNED (TREE_TYPE (expr));
@@ -1303,7 +1300,7 @@ integer_pow2p (tree expr)
&& integer_zerop (TREE_IMAGPART (expr)))
return 1;
- if (TREE_CODE (expr) != INTEGER_CST || TREE_CONSTANT_OVERFLOW (expr))
+ if (TREE_CODE (expr) != INTEGER_CST)
return 0;
prec = (POINTER_TYPE_P (TREE_TYPE (expr))
@@ -1341,7 +1338,6 @@ integer_nonzerop (tree expr)
STRIP_NOPS (expr);
return ((TREE_CODE (expr) == INTEGER_CST
- && ! TREE_CONSTANT_OVERFLOW (expr)
&& (TREE_INT_CST_LOW (expr) != 0
|| TREE_INT_CST_HIGH (expr) != 0))
|| (TREE_CODE (expr) == COMPLEX_CST
@@ -1434,7 +1430,6 @@ real_zerop (tree expr)
STRIP_NOPS (expr);
return ((TREE_CODE (expr) == REAL_CST
- && ! TREE_CONSTANT_OVERFLOW (expr)
&& REAL_VALUES_EQUAL (TREE_REAL_CST (expr), dconst0))
|| (TREE_CODE (expr) == COMPLEX_CST
&& real_zerop (TREE_REALPART (expr))
@@ -1449,7 +1444,6 @@ real_onep (tree expr)
STRIP_NOPS (expr);
return ((TREE_CODE (expr) == REAL_CST
- && ! TREE_CONSTANT_OVERFLOW (expr)
&& REAL_VALUES_EQUAL (TREE_REAL_CST (expr), dconst1))
|| (TREE_CODE (expr) == COMPLEX_CST
&& real_onep (TREE_REALPART (expr))
@@ -1464,7 +1458,6 @@ real_twop (tree expr)
STRIP_NOPS (expr);
return ((TREE_CODE (expr) == REAL_CST
- && ! TREE_CONSTANT_OVERFLOW (expr)
&& REAL_VALUES_EQUAL (TREE_REAL_CST (expr), dconst2))
|| (TREE_CODE (expr) == COMPLEX_CST
&& real_twop (TREE_REALPART (expr))
@@ -1479,7 +1472,6 @@ real_minus_onep (tree expr)
STRIP_NOPS (expr);
return ((TREE_CODE (expr) == REAL_CST
- && ! TREE_CONSTANT_OVERFLOW (expr)
&& REAL_VALUES_EQUAL (TREE_REAL_CST (expr), dconstm1))
|| (TREE_CODE (expr) == COMPLEX_CST
&& real_minus_onep (TREE_REALPART (expr))
@@ -1725,7 +1717,6 @@ int_size_in_bytes (tree type)
t = TYPE_SIZE_UNIT (type);
if (t == 0
|| TREE_CODE (t) != INTEGER_CST
- || TREE_OVERFLOW (t)
|| TREE_INT_CST_HIGH (t) != 0
/* If the result would appear negative, it's too big to represent. */
|| (HOST_WIDE_INT) TREE_INT_CST_LOW (t) < 0)
@@ -4404,7 +4395,6 @@ int
host_integerp (tree t, int pos)
{
return (TREE_CODE (t) == INTEGER_CST
- && ! TREE_OVERFLOW (t)
&& ((TREE_INT_CST_HIGH (t) == 0
&& (HOST_WIDE_INT) TREE_INT_CST_LOW (t) >= 0)
|| (! pos && TREE_INT_CST_HIGH (t) == -1
diff --git a/gcc/tree.def b/gcc/tree.def
index 2b84abdf085..ffc772fa173 100644
--- a/gcc/tree.def
+++ b/gcc/tree.def
@@ -987,11 +987,8 @@ DEFTREECODE (OMP_FOR, "omp_for", tcc_statement, 6)
/* OpenMP - #pragma omp sections [clause1 ... clauseN]
Operand 0: OMP_SECTIONS_BODY: Sections body.
- Operand 1: OMP_SECTIONS_CLAUSES: List of clauses.
- Operand 2: OMP_SECTIONS_SECTIONS: Vector of the different sections
- in the body. Only valid after lowering and destroyed
- after the CFG has been built. */
-DEFTREECODE (OMP_SECTIONS, "omp_sections", tcc_statement, 3)
+ Operand 1: OMP_SECTIONS_CLAUSES: List of clauses. */
+DEFTREECODE (OMP_SECTIONS, "omp_sections", tcc_statement, 2)
/* OpenMP - #pragma omp single
Operand 0: OMP_SINGLE_BODY: Single section body.
@@ -1015,6 +1012,13 @@ DEFTREECODE (OMP_ORDERED, "omp_ordered", tcc_statement, 1)
Operand 1: OMP_CRITICAL_NAME: Identifier for critical section. */
DEFTREECODE (OMP_CRITICAL, "omp_critical", tcc_statement, 2)
+/* Return from an OpenMP directive. */
+DEFTREECODE (OMP_RETURN, "omp_return", tcc_statement, 0)
+
+/* OpenMP - An intermediate tree code to mark the location of the
+ loop or sections iteration in the partially lowered code. */
+DEFTREECODE (OMP_CONTINUE, "omp_continue", tcc_statement, 0)
+
/* OpenMP - #pragma omp atomic
Operand 0: The address at which the atomic operation is to be performed.
This address should be stabilized with save_expr.
@@ -1026,9 +1030,6 @@ DEFTREECODE (OMP_ATOMIC, "omp_atomic", tcc_statement, 2)
/* OpenMP clauses. */
DEFTREECODE (OMP_CLAUSE, "omp_clause", tcc_exceptional, 0)
-/* Return from an OpenMP directive. */
-DEFTREECODE (OMP_RETURN_EXPR, "omp_return", tcc_statement, 0)
-
/* Reduction operations.
Operations that take a vector of elements and "reduce" it to a scalar
result (e.g. summing the elements of the vector, finding the minimum over
diff --git a/gcc/tree.h b/gcc/tree.h
index 2eb29755c89..771f191d18e 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -170,14 +170,15 @@ extern const enum tree_code_class tree_code_type[];
#define OMP_DIRECTIVE_P(NODE) \
(TREE_CODE (NODE) == OMP_PARALLEL \
- || TREE_CODE (NODE) == OMP_SECTIONS \
- || TREE_CODE (NODE) == OMP_SECTION \
|| TREE_CODE (NODE) == OMP_FOR \
- || TREE_CODE (NODE) == OMP_RETURN_EXPR \
+ || TREE_CODE (NODE) == OMP_SECTIONS \
|| TREE_CODE (NODE) == OMP_SINGLE \
+ || TREE_CODE (NODE) == OMP_SECTION \
|| TREE_CODE (NODE) == OMP_MASTER \
|| TREE_CODE (NODE) == OMP_ORDERED \
- || TREE_CODE (NODE) == OMP_CRITICAL)
+ || TREE_CODE (NODE) == OMP_CRITICAL \
+ || TREE_CODE (NODE) == OMP_RETURN \
+ || TREE_CODE (NODE) == OMP_CONTINUE)
/* Number of argument-words in each kind of tree-node. */
@@ -437,6 +438,10 @@ struct tree_common GTY(())
CALL_EXPR
DECL_BY_REFERENCE in
PARM_DECL, RESULT_DECL
+ OMP_RETURN_NOWAIT in
+ OMP_RETURN
+ OMP_SECTION_LAST in
+ OMP_SECTION
protected_flag:
@@ -1546,7 +1551,6 @@ struct tree_constructor GTY(())
#define OMP_SECTIONS_BODY(NODE) TREE_OPERAND (OMP_SECTIONS_CHECK (NODE), 0)
#define OMP_SECTIONS_CLAUSES(NODE) TREE_OPERAND (OMP_SECTIONS_CHECK (NODE), 1)
-#define OMP_SECTIONS_SECTIONS(NODE) TREE_OPERAND (OMP_SECTIONS_CHECK (NODE), 2)
#define OMP_SECTION_BODY(NODE) TREE_OPERAND (OMP_SECTION_CHECK (NODE), 0)
@@ -1566,6 +1570,18 @@ struct tree_constructor GTY(())
OMP_CLAUSE_PRIVATE, \
OMP_CLAUSE_COPYPRIVATE), 0)
+/* True on an OMP_SECTION statement that was the last lexical member.
+ This status is meaningful in the implementation of lastprivate. */
+#define OMP_SECTION_LAST(NODE) \
+ TREE_PRIVATE (OMP_SECTION_CHECK (NODE))
+
+/* True on an OMP_RETURN statement if the return does not require a
+ thread synchronization via some sort of barrier. The exact barrier
+ that would otherwise be emitted is dependent on the OMP statement
+ with which this return is associated. */
+#define OMP_RETURN_NOWAIT(NODE) \
+ TREE_PRIVATE (OMP_RETURN_CHECK (NODE))
+
/* True on a PRIVATE clause if its decl is kept around for debugging
information only and its DECL_VALUE_EXPR is supposed to point
to what it has been remapped to. */
diff --git a/gcc/treelang/ChangeLog b/gcc/treelang/ChangeLog
index 3cd85d6ffcc..312f65cb7f3 100644
--- a/gcc/treelang/ChangeLog
+++ b/gcc/treelang/ChangeLog
@@ -1,3 +1,7 @@
+2006-04-22 Matthias Klose <doko@debian.org>
+
+ * Make-lang.in(treelang.check): Don't set and pass TRANSFORM.
+
2006-03-29 Carlos O'Donell <caros@codesourcery.com>
* Make-lang.in: Rename docdir to gcc_docdir.
diff --git a/gcc/treelang/Make-lang.in b/gcc/treelang/Make-lang.in
index 53998de1dad..018f6216e00 100644
--- a/gcc/treelang/Make-lang.in
+++ b/gcc/treelang/Make-lang.in
@@ -1,7 +1,7 @@
# Top level makefile fragment for TREELANG For GCC. -*- makefile -*-
-# Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005,
+# 2006 Free Software Foundation, Inc.
#This file is part of GCC.
@@ -288,7 +288,6 @@ treelang.check: $(TESTSUITEDIR)/site.exp
srcdir=`cd ${srcdir}; ${PWD_COMMAND}` ; export srcdir ; \
cd testsuite; \
EXPECT=${EXPECT} ; export EXPECT ; \
- TRANSFORM=$(program_transform_name); export TRANSFORM; \
if [ -f $${rootme}/../expect/expect ] ; then \
TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; ${PWD_COMMAND}` ; \
export TCL_LIBRARY ; fi ; \
diff --git a/gcc/value-prof.c b/gcc/value-prof.c
index f08979020e9..59b0f351530 100644
--- a/gcc/value-prof.c
+++ b/gcc/value-prof.c
@@ -342,7 +342,7 @@ tree_mod_pow2 (tree stmt, tree operation, tree op1, tree op2, int prob,
gcov_type count, gcov_type all)
{
tree stmt1, stmt2, stmt3, stmt4;
- tree tmp1, tmp2, tmp3;
+ tree tmp2, tmp3;
tree label_decl1 = create_artificial_label ();
tree label_decl2 = create_artificial_label ();
tree label_decl3 = create_artificial_label ();
@@ -357,19 +357,17 @@ tree_mod_pow2 (tree stmt, tree operation, tree op1, tree op2, int prob,
bb = bb_for_stmt (stmt);
bsi = bsi_for_stmt (stmt);
- tmp1 = create_tmp_var (optype, "PROF");
tmp2 = create_tmp_var (optype, "PROF");
tmp3 = create_tmp_var (optype, "PROF");
- stmt1 = build2 (MODIFY_EXPR, optype, tmp1, fold_convert (optype, op2));
stmt2 = build2 (MODIFY_EXPR, optype, tmp2,
- build2 (PLUS_EXPR, optype, op2, integer_minus_one_node));
+ build2 (PLUS_EXPR, optype, op2, build_int_cst (optype, -1)));
stmt3 = build2 (MODIFY_EXPR, optype, tmp3,
- build2 (BIT_AND_EXPR, optype, tmp2, tmp1));
+ build2 (BIT_AND_EXPR, optype, tmp2, op2));
stmt4 = build3 (COND_EXPR, void_type_node,
- build2 (NE_EXPR, boolean_type_node, tmp3, integer_zero_node),
- build1 (GOTO_EXPR, void_type_node, label_decl2),
- build1 (GOTO_EXPR, void_type_node, label_decl1));
- bsi_insert_before (&bsi, stmt1, BSI_SAME_STMT);
+ build2 (NE_EXPR, boolean_type_node,
+ tmp3, build_int_cst (optype, 0)),
+ build1 (GOTO_EXPR, void_type_node, label_decl2),
+ build1 (GOTO_EXPR, void_type_node, label_decl1));
bsi_insert_before (&bsi, stmt2, BSI_SAME_STMT);
bsi_insert_before (&bsi, stmt3, BSI_SAME_STMT);
bsi_insert_before (&bsi, stmt4, BSI_SAME_STMT);
diff --git a/gcc/vecprim.h b/gcc/vecprim.h
new file mode 100644
index 00000000000..f27e44a6beb
--- /dev/null
+++ b/gcc/vecprim.h
@@ -0,0 +1,30 @@
+/* VEC types for primitive types
+ Copyright (C) 2006 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, 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301, USA. */
+
+#ifndef GCC_VECPRIM_H
+#define GCC_VECPRIM_H
+
+DEF_VEC_I(char);
+DEF_VEC_ALLOC_I(char,heap);
+
+DEF_VEC_I(int);
+DEF_VEC_ALLOC_I(int,heap);
+
+#endif /* GCC_VECPRIM_H */