diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-07-03 11:40:08 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-07-03 11:40:08 +0000 |
commit | 6983fe1e36db7532af100486b526f4131926025b (patch) | |
tree | 92a4c336516c44b56768d1319d2fe84c13b85e98 | |
parent | f33a0367d52b7cd93be9089eee3ccebb8b9e687d (diff) | |
download | gcc-6983fe1e36db7532af100486b526f4131926025b.tar.gz |
2013-07-03 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk rev 200637 using svnmerge.py
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@200641 138bc75d-0d04-0410-961f-82ee72b054a4
165 files changed, 7067 insertions, 4528 deletions
diff --git a/ChangeLog.MELT b/ChangeLog.MELT index db1d23e13d1..719f75ffa6e 100644 --- a/ChangeLog.MELT +++ b/ChangeLog.MELT @@ -1,4 +1,8 @@ +2013-07-03 Basile Starynkevitch <basile@starynkevitch.net> + + MELT branch merged with trunk rev 200637 using svnmerge.py + 2013-06-27 Basile Starynkevitch <basile@starynkevitch.net> MELT branch merged with trunk rev 200479 using svnmerge.py diff --git a/fixincludes/tests/base/linux/compiler.h b/fixincludes/tests/base/linux/compiler.h new file mode 100644 index 00000000000..713527644bd --- /dev/null +++ b/fixincludes/tests/base/linux/compiler.h @@ -0,0 +1,14 @@ +/* DO NOT EDIT THIS FILE. + + It has been auto-edited by fixincludes from: + + "fixinc/tests/inc/linux/compiler.h" + + This had to be done to correct non-standard usages in the + original, manufacturer supplied header file. */ + + + +#if defined( COMPLIER_H_TRADCPP_CHECK ) +/* __builtin_warning(x, y...) is obsolete */ +#endif /* COMPLIER_H_TRADCPP_CHECK */ diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ee0130ebe05..9a403cb4b87 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,445 @@ +2013-07-03 Yufeng Zhang <yufeng.zhang@arm.com> + + * config/aarch64/aarch64.h (enum arm_abi_type): Remove. + (ARM_ABI_AAPCS64): Ditto. + (arm_abi): Ditto. + (ARM_DEFAULT_ABI): Ditto. + +2013-07-03 James Greenhalgh <james.greenhalgh@arm.com> + + * config/aarch64/aarch64-builtins.c + (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1. + * config/aarch64/aarch64-simd-builtins.def (ld1): New. + (st1): Likewise. + * config/aarch64/aarch64-simd.md + (aarch64_ld1<VALL:mode>): New. + (aarch64_st1<VALL:mode>): Likewise. + * config/aarch64/arm_neon.h + (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins. + +2013-07-02 Sriraman Tallam <tmsriram@google.com> + + * config/i386/i386.c (gate_insert_vzeroupper): Check if target + ISA is AVX. + (ix86_option_override_internal):Turn on all -mavx target flags by + default as they are dependent on AVX anyway. + +2013-07-02 Cary Coutant <ccoutant@google.com> + + * dwarf2out.c (loc_checksum): Call hash_loc_operands for a + deterministic hash. + (loc_checksum_ordered): Likewise. + (hash_loc_operands): Remove inline keyword. + +2013-07-02 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/57741 + * tree-vect-loop.c (vect_is_simple_iv_evolution): Disallow + non-INTEGRAL_TYPE_P non-SCALAR_FLOAT_TYPE_P SSA_NAME step_exprs, + or SCALAR_FLOAT_TYPE_P SSA_NAMEs if !flag_associative_math. + Allow REAL_CST step_exprs if flag_associative_math. + (get_initial_def_for_induction): Handle SCALAR_FLOAT_TYPE_P step_expr. + +2013-07-02 Ian Bolton <ian.bolton@arm.com> + + * config/aarch64/aarch64-simd.md (absdi2): Support abs for + DI mode. + +2013-07-02 Ian Bolton <ian.bolton@arm.com> + + * config/aarch64/aarch64.md (*extr_insv_reg<mode>): New pattern. + +2013-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + + * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit + encoding. + (iorsi3_insn): Likewise. + (arm_xorsi3): Likewise. + +2013-07-01 Sofiane Naci <sofiane.naci@arm.com> + + * arm.md (attribute "wtype"): Delete. Move attribute values from here + to ... + (attribute "type"): ... here, and prefix with "wmmx_". + (attribute "core_cycles"): Update for attribute changes. + * iwmmxt.md (tbcstv8qi): Update for attribute changes. + (tbcstv4hi): Likewise. + (tbcstv2si): Likewise. + (iwmmxt_iordi3): Likewise. + (iwmmxt_xordi3): Likewise. + (iwmmxt_anddi3): Likewise. + (iwmmxt_nanddi3): Likewise. + (iwmmxt_arm_movdi): Likewise. + (iwmmxt_movsi_insn): Likewise. + (mov<mode>_internal): Likewise. + (and<mode>3_iwmmxt): Likewise. + (ior<mode>3_iwmmxt): Likewise. + (xor<mode>3_iwmmxt): Likewise. + (add<mode>3_iwmmxt): Likewise. + (ssaddv8qi3): Likewise. + (ssaddv4hi3): Likewise. + (ssaddv2si3): Likewise. + (usaddv8qi3): Likewise. + (usaddv4hi3): Likewise. + (usaddv2si3): Likewise. + (sub<mode>3_iwmmxt): Likewise. + (sssubv8qi3): Likewise. + (sssubv4hi3): Likewise. + (sssubv2si3): Likewise. + (ussubv8qi3): Likewise. + (ussubv4hi3): Likewise. + (ussubv2si3): Likewise. + (mulv4hi3_iwmmxt): Likewise. + (smulv4hi3_highpart): Likewise. + (umulv4hi3_highpart): Likewise. + (iwmmxt_wmacs): Likewise. + (iwmmxt_wmacsz): Likewise. + (iwmmxt_wmacu): Likewise. + (iwmmxt_wmacuz): Likewise. + (iwmmxt_clrdi): Likewise. + (iwmmxt_clrv8qi): Likewise. + (iwmmxt_clr4hi): Likewise. + (iwmmxt_clr2si): Likewise. + (iwmmxt_uavgrndv8qi3): Likewise. + (iwmmxt_uavgrndv4hi3): Likewise. + (iwmmxt_uavgv8qi3): Likewise. + (iwmmxt_uavgv4hi3): Likewise. + (iwmmxt_tinsrb): Likewise. + (iwmmxt_tinsrh): Likewise. + (iwmmxt_tinsrw): Likewise. + (iwmmxt_textrmub): Likewise. + (iwmmxt_textrmsb): Likewise. + (iwmmxt_textrmuh): Likewise. + (iwmmxt_textrmsh): Likewise. + (iwmmxt_textrmw): Likewise. + (iwmxxt_wshufh): Likewise. + (eqv8qi3): Likewise. + (eqv4hi3): Likewise. + (eqv2si3): Likewise. + (gtuv8qi3): Likewise. + (gtuv4hi3): Likewise. + (gtuv2si3): Likewise. + (gtv8qi3): Likewise. + (gtv4hi3): Likewise. + (gtv2si3): Likewise. + (smax<mode>3_iwmmxt): Likewise. + (umax<mode>3_iwmmxt): Likewise. + (smin<mode>3_iwmmxt): Likewise. + (umin<mode>3_iwmmxt): Likewise. + (iwmmxt_wpackhss): Likewise. + (iwmmxt_wpackwss): Likewise. + (iwmmxt_wpackdss): Likewise. + (iwmmxt_wpackhus): Likewise. + (iwmmxt_wpackwus): Likewise. + (iwmmxt_wpackdus): Likewise. + (iwmmxt_wunpckihb): Likewise. + (iwmmxt_wunpckihh): Likewise. + (iwmmxt_wunpckihw): Likewise. + (iwmmxt_wunpckilb): Likewise. + (iwmmxt_wunpckilh): Likewise. + (iwmmxt_wunpckilw): Likewise. + (iwmmxt_wunpckehub): Likewise. + (iwmmxt_wunpckehuh): Likewise. + (iwmmxt_wunpckehuw): Likewise. + (iwmmxt_wunpckehsb): Likewise. + (iwmmxt_wunpckehsh): Likewise. + (iwmmxt_wunpckehsw): Likewise. + (iwmmxt_wunpckelub): Likewise. + (iwmmxt_wunpckeluh): Likewise. + (iwmmxt_wunpckeluw): Likewise. + (iwmmxt_wunpckelsb): Likewise. + (iwmmxt_wunpckelsh): Likewise. + (iwmmxt_wunpckelsw): Likewise. + (ror<mode>3): Likewise. + (ashr<mode>3_iwmmxt): Likewise. + (lshr<mode>3_iwmmxt): Likewise. + (ashl<mode>3_iwmmxt): Likewise. + (ror<mode>3_di): Likewise. + (ashr<mode>3_di): Likewise. + (lshr<mode>3_di): Likewise. + (ashl<mode>3_di): Likewise. + (iwmmxt_wmadds): Likewise. + (iwmmxt_wmaddu): Likewise. + (iwmmxt_tmia): Likewise. + (iwmmxt_tmiaph): Likewise. + (iwmmxt_tmiabb): Likewise. + (iwmmxt_tmiatb): Likewise. + (iwmmxt_tmiabt): Likewise. + (iwmmxt_tmiatt): Likewise. + (iwmmxt_tmovmskb): Likewise. + (iwmmxt_tmovmskh): Likewise. + (iwmmxt_tmovmskw): Likewise. + (iwmmxt_waccb): Likewise. + (iwmmxt_wacch): Likewise. + (iwmmxt_waccw): Likewise. + (iwmmxt_waligni): Likewise. + (iwmmxt_walignr): Likewise. + (iwmmxt_walignr0): Likewise. + (iwmmxt_walignr1): Likewise. + (iwmmxt_walignr2): Likewise. + (iwmmxt_walignr3): Likewise. + (iwmmxt_wsadb): Likewise. + (iwmmxt_wsadh): Likewise. + (iwmmxt_wsadbz): Likewise. + (iwmmxt_wsadhz): Likewise. + * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes. + (iwmmxt_wabsdiffb): Likewise. + (iwmmxt_wabsdiffh): Likewise. + (iwmmxt_wabsdiffw): Likewise. + (iwmmxt_waddsubhx): Likewise + (iwmmxt_wsubaddhx): Likewise. + (addc<mode>3): Likewise. + (iwmmxt_avg4): Likewise. + (iwmmxt_avg4r): Likewise. + (iwmmxt_wmaddsx): Likewise. + (iwmmxt_wmaddux): Likewise. + (iwmmxt_wmaddsn): Likewise. + (iwmmxt_wmaddun): Likewise. + (iwmmxt_wmulwsm): Likewise. + (iwmmxt_wmulwum): Likewise. + (iwmmxt_wmulsmr): Likewise. + (iwmmxt_wmulumr): Likewise. + (iwmmxt_wmulwsmr): Likewise. + (iwmmxt_wmulwumr): Likewise. + (iwmmxt_wmulwl): Likewise. + (iwmmxt_wqmulm): Likewise. + (iwmmxt_wqmulwm): Likewise. + (iwmmxt_wqmulmr): Likewise. + (iwmmxt_wqmulwmr): Likewise. + (iwmmxt_waddbhusm): Likewise. + (iwmmxt_waddbhusl): Likewise. + (iwmmxt_wqmiabb): Likewise. + (iwmmxt_wqmiabt): Likewise. + (iwmmxt_wqmiatb): Likewise. + (iwmmxt_wqmiatt): Likewise. + (iwmmxt_wqmiabbn): Likewise. + (iwmmxt_wqmiabtn): Likewise. + (iwmmxt_wqmiatbn): Likewise. + (iwmmxt_wqmiattn): Likewise. + (iwmmxt_wmiabb): Likewise. + (iwmmxt_wmiabt): Likewise. + (iwmmxt_wmiatb): Likewise. + (iwmmxt_wmiatt): Likewise. + (iwmmxt_wmiabbn): Likewise. + (iwmmxt_wmiabtn): Likewise. + (iwmmxt_wmiatbn): Likewise. + (iwmmxt_wmiattn): Likewise. + (iwmmxt_wmiawbb): Likewise. + (iwmmxt_wmiawbt): Likewise. + (iwmmxt_wmiawtb): Likewise. + (iwmmxt_wmiawtt): Likewise. + (iwmmxt_wmiawbbn): Likewise. + (iwmmxt_wmiawbtn): Likewise. + (iwmmxt_wmiawtbn): Likewise. + (iwmmxt_wmiawttn): Likewise. + (iwmmxt_wmerge): Likewise. + (iwmmxt_tandc<mode>3): Likewise. + (iwmmxt_torc<mode>3): Likewise. + (iwmmxt_torvsc<mode>3): Likewise. + (iwmmxt_textrc<mode>3): Likewise. + * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes. + (wmmxt_pack): Likewise. + (wmmxt_mult_c1): Likewise. + (wmmxt_mult_c2): Likewise. + (wmmxt_alu_c1): Likewise. + (wmmxt_alu_c2): Likewise. + (wmmxt_alu_c3): Likewise. + (wmmxt_transfer_c1): Likewise. + (wmmxt_transfer_c2): Likewise. + (wmmxt_transfer_c3): Likewise. + (marvell_f_iwmmxt_wstr): Likewise. + (marvell_f_iwmmxt_wldr): Likewise. + +2013-06-29 Yufeng Zhang <yufeng.zhang@arm.com> + + * config/aarch64/aarch64.c: Remove junk from the beginning of the + file. + +2013-06-28 Vladimir Makarov <vmakarov@redhat.com> + + Revert: + 2013-06-28 Vladimir Makarov <vmakarov@redhat.com> + * lra-constraints.c (need_for_split_p): Check call used hard regs + living through calls. + + * lra-constraints.c (inherit_in_ebb): Reset live_hard_regs for + call used regs for call insn. + +2013-06-28 Jakub Jelinek <jakub@redhat.com> + + PR target/57736 + * config/i386/i386.c (ix86_expand_builtin): If target == NULL + and mode is VOIDmode, don't create a VOIDmode pseudo to copy result + into. + +2013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com> + + * builtins.def: Fixed the function type of CILKPLUS_BUILTIN. + +2013-06-28 Vladimir Makarov <vmakarov@redhat.com> + + * lra-constraints.c (need_for_split_p): Check call used hard regs + living through calls. + +2013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com> + + PR target/57744 + * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode + to tie with any other modes. Eliminate Altivec vector mode tests, + since these are a subset of ALTIVEC or VSX vector modes. Simplify + code, to return 0 if testing MODE2 for a condition, if we've + already tested MODE1 for the same condition. + +2013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com> + + * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust + layout. + +2013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com> + + * config/aarch64/aarch64-protos.h (aarch64_symbol_type): + Update comment w.r.t SYMBOL_TINY_ABSOLUTE. + +2013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com> + + * config/aarch64/aarch64-protos.h + aarch64_classify_symbol_expression): Define. + (aarch64_symbolic_constant_p): Remove. + * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove + static. Fix line length and white space. + (aarch64_symbolic_constant_p): Remove. + * config/aarch64/predicates.md (aarch64_valid_symref): + Use aarch64_classify_symbol_expression. + +2013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + + * config/arm/constraints.md (Ts): New constraint. + * config/arm/arm.md (arm_movqi_insn): Add alternatives for + 16-bit encodings. + (compare_scc): Use "Ts" constraint for operand 0. + (ior_scc_scc): Likewise. + (and_scc_scc): Likewise. + (and_scc_scc_nodom): Likewise. + (ior_scc_scc_cmp): Likewise for operand 7. + (and_scc_scc_cmp): Likewise. + * config/arm/thumb2.md (thumb2_movsi_insn): + Add alternatives for 16-bit encodings. + (thumb2_movhi_insn): Likewise. + (thumb2_movsicc_insn): Likewise. + (thumb2_and_scc): Take 'and' outside cond_exec. Use "Ts" constraint. + (thumb2_negscc): Use "Ts" constraint. + Move mvn instruction outside cond_exec block. + * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives + for 16-bit encodings. + +2013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + + * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit + encoding. + (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it. + (mulsi3subsi): Likewise. + (mulsidi3adddi): Likewise. + (mulsidi3_v6): Likewise. + (umulsidi3_v6): Likewise. + (umulsidi3adddi_v6): Likewise. + (smulsi3_highpart_v6): Likewise. + (umulsi3_highpart_v6): Likewise. + (mulhisi3tb): Likewise. + (mulhisi3bt): Likewise. + (mulhisi3tt): Likewise. + (maddhisi4): Likewise. + (maddhisi4tb): Likewise. + (maddhisi4tt): Likewise. + (maddhidi4): Likewise. + (maddhidi4tb): Likewise. + (maddhidi4tt): Likewise. + (zeroextractsi_compare0_scratch): Likewise. + (insv_zero): Likewise. + (insv_t2): Likewise. + (anddi_notzesidi_di): Likewise. + (anddi_notsesidi_di): Likewise. + (andsi_notsi_si): Likewise. + (iordi_zesidi_di): Likewise. + (xordi_zesidi_di): Likewise. + (andsi_iorsi3_notsi): Likewise. + (smax_0): Likewise. + (smax_m1): Likewise. + (smin_0): Likewise. + (not_shiftsi): Likewise. + (unaligned_loadsi): Likewise. + (unaligned_loadhis): Likewise. + (unaligned_loadhiu): Likewise. + (unaligned_storesi): Likewise. + (unaligned_storehi): Likewise. + (extv_reg): Likewise. + (extzv_t2): Likewise. + (divsi3): Likewise. + (udivsi3): Likewise. + (arm_zero_extendhisi2addsi): Likewise. + (arm_zero_extendqisi2addsi): Likewise. + (compareqi_eq0): Likewise. + (arm_extendhisi2_v6): Likewise. + (arm_extendqisi2addsi): Likewise. + (arm_movt): Likewise. + (thumb2_ldrd): Likewise. + (thumb2_ldrd_base): Likewise. + (thumb2_ldrd_base_neg): Likewise. + (thumb2_strd): Likewise. + (thumb2_strd_base): Likewise. + (thumb2_strd_base_neg): Likewise. + (arm_negsi2): Add alternative for 16-bit encoding. + (arm_one_cmplsi2): Likewise. + +2013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + + * config/arm/predicates.md (arm_cond_move_operator): New predicate. + * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate. + (movdfcc): Likewise. + * config/arm/vfp.md (*thumb2_movsf_vfp): + Disable predication for arm_restrict_it. + (*thumb2_movsfcc_vfp): Disable for arm_restrict_it. + (*thumb2_movdfcc_vfp): Likewise. + (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp, + *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp, + *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp, + *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp, + *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp, + *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4, + *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4, + *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2, + *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2, + *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2, + *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp, + *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2): + Disable predication for arm_restrict_it. + +2013-06-28 Kirill Yukhin <kirill.yukhin@intel.com> + + * config/i386/bmiintrin.h (_bextr_u32): New. + (_bextr_u64): Ditto. + +2013-06-27 Richard Sandiford <rdsandiford@googlemail.com> + + * config.gcc (mips*-mti-elf*, mips*-sde-elf*, mips64r5900-*-elf*) + (mips64r5900el-*-elf*): Include mips/n32-elf.h. + * config/mips/sde.h (LOCAL_LABEL_PREFIX, NO_DOLLAR_IN_LABEL) + (LONG_DOUBLE_TYPE_SIZE, LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move to... + * config/mips/n32-elf.h: ...this new file. + +2013-06-27 Marc Glisse <marc.glisse@inria.fr> + + PR target/57224 + * config/i386/i386.c (enum ix86_builtins, bdesc_args): Remove + IX86_BUILTIN_CMPNGTSS and IX86_BUILTIN_CMPNGESS. + +2013-06-27 Catherine Moore <clm@codesourcery.com> + + * config/mips/mips-tables.opt: Regenerate. + * config/mips/mips-cpus.def: Add m14ke and m14kec. + * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): m14ke* implies + -mdspr2. + * doc/invoke.texi: Add -m14kc. + 2013-06-27 Jakub Jelinek <jakub@redhat.com> PR target/57623 diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP index 99bf8134130..cf01905311d 100644 --- a/gcc/DATESTAMP +++ b/gcc/DATESTAMP @@ -1 +1 @@ -20130627 +20130703 diff --git a/gcc/builtins.def b/gcc/builtins.def index 91879a64dc0..9b55b1f7a96 100644 --- a/gcc/builtins.def +++ b/gcc/builtins.def @@ -158,9 +158,9 @@ along with GCC; see the file COPYING3. If not see (flag_asan || flag_tsan)) #undef DEF_CILKPLUS_BUILTIN -#define DEF_CILKPLUS_BUILTIN(ENUM, NAME, TYPE, ATTRS) \ - DEF_BUILTIN (ENUM, NAME, BUILT_IN_NORMAL, TYPE, TYPE, \ - false, false, true, ATTRS, false, flag_enable_cilkplus) +#define DEF_CILKPLUS_BUILTIN(ENUM, NAME, TYPE, ATTRS) \ + DEF_BUILTIN (ENUM, NAME, BUILT_IN_NORMAL, BT_FN_INT_VAR, BT_LAST, \ + false, false, false, ATTRS, false, flag_enable_cilkplus) /* Define an attribute list for math functions that are normally "impure" because some of them may write into global memory for diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index bc73a809a55..c9a4f70e8bc 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,10 @@ +2013-06-27 Marc Glisse <marc.glisse@inria.fr> + + PR c++/57509 + * c-common.h (c_build_vec_perm_expr): New complain argument. + * c-common.c (c_build_vec_perm_expr): Likewise. + Use save_expr also in C++. + 2013-06-22 Gabriel Dos Reis <gdr@integrable-solutions.net> * c-common.c (c_common_nodes_and_builtins): Use cxx11 in lieu of cxx0x. diff --git a/gcc/c-family/array-notation-common.c b/gcc/c-family/array-notation-common.c index 8eab89ba6fb..5e17009ee87 100644 --- a/gcc/c-family/array-notation-common.c +++ b/gcc/c-family/array-notation-common.c @@ -101,15 +101,11 @@ length_mismatch_in_expr_p (location_t loc, vec<vec<an_parts> >list) /* If length is a INTEGER, and list[ii][jj] is an integer then check if they are equal. If they are not equal then return true. */ - if (TREE_CODE (list[ii][jj].length) == INTEGER_CST) - { - l_node = int_cst_value (list[ii][jj].length); - l_length = int_cst_value (length); - if (absu_hwi (l_length) != absu_hwi (l_node)) - { - error_at (loc, "length mismatch in expression"); - return true; - } + if (TREE_CODE (list[ii][jj].length) == INTEGER_CST + && !tree_int_cst_equal (list[ii][jj].length, length)) + { + error_at (loc, "length mismatch in expression"); + return true; } } else @@ -271,6 +267,8 @@ find_rank (location_t loc, tree orig_expr, tree expr, bool ignore_builtin_fn, /* If it is a built-in function, then we know it returns a scalar. */ return true; + if (!find_rank (loc, orig_expr, func_name, ignore_builtin_fn, rank)) + return false; FOR_EACH_CALL_EXPR_ARG (arg, iter, expr) { if (!find_rank (loc, orig_expr, arg, ignore_builtin_fn, rank)) @@ -358,6 +356,9 @@ extract_array_notation_exprs (tree node, bool ignore_builtin_fn, vec_safe_push (*array_list, node); return; } + /* This will extract array notations in function pointers. */ + extract_array_notation_exprs (CALL_EXPR_FN (node), ignore_builtin_fn, + array_list); FOR_EACH_CALL_EXPR_ARG (arg, iter, node) extract_array_notation_exprs (arg, ignore_builtin_fn, array_list); } @@ -433,6 +434,9 @@ replace_array_notations (tree *orig, bool ignore_builtin_fn, } return; } + /* Fixes array notations in array notations in function pointers. */ + replace_array_notations (&CALL_EXPR_FN (*orig), ignore_builtin_fn, list, + array_operand); ii = 0; FOR_EACH_CALL_EXPR_ARG (arg, iter, *orig) { @@ -575,53 +579,49 @@ cilkplus_extract_an_triplets (vec<tree, va_gc> *list, size_t size, size_t rank, vec<vec<struct cilkplus_an_parts> > *node) { vec<vec<tree> > array_exprs = vNULL; - struct cilkplus_an_parts init = { NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE, - false }; + node->safe_grow_cleared (size); array_exprs.safe_grow_cleared (size); - for (size_t ii = 0; ii < size; ii++) - for (size_t jj = 0; jj < rank; jj++) + + if (rank > 0) + for (size_t ii = 0; ii < size; ii++) { - (*node)[ii].safe_push (init); - array_exprs[ii].safe_push (NULL_TREE); + (*node)[ii].safe_grow_cleared (rank); + array_exprs[ii].safe_grow_cleared (rank); } - for (size_t ii = 0; ii < size; ii++) { size_t jj = 0; tree ii_tree = (*list)[ii]; while (ii_tree) - if (TREE_CODE (ii_tree) == ARRAY_NOTATION_REF) - { - array_exprs[ii][jj] = ii_tree; - jj++; - ii_tree = ARRAY_NOTATION_ARRAY (ii_tree); - } - else if (TREE_CODE (ii_tree) == ARRAY_REF) - ii_tree = TREE_OPERAND (ii_tree, 0); - else if (TREE_CODE (ii_tree) == VAR_DECL - || TREE_CODE (ii_tree) == CALL_EXPR - || TREE_CODE (ii_tree) == PARM_DECL) - break; - else - gcc_unreachable (); + { + if (TREE_CODE (ii_tree) == ARRAY_NOTATION_REF) + { + array_exprs[ii][jj] = ii_tree; + jj++; + ii_tree = ARRAY_NOTATION_ARRAY (ii_tree); + } + else if (TREE_CODE (ii_tree) == ARRAY_REF) + ii_tree = TREE_OPERAND (ii_tree, 0); + else + break; + } } for (size_t ii = 0; ii < size; ii++) if (TREE_CODE ((*list)[ii]) == ARRAY_NOTATION_REF) for (size_t jj = 0; jj < rank; jj++) - if (TREE_CODE (array_exprs[ii][jj]) == ARRAY_NOTATION_REF) - { - tree ii_tree = array_exprs[ii][jj]; - (*node)[ii][jj].is_vector = true; - (*node)[ii][jj].value = ARRAY_NOTATION_ARRAY (ii_tree); - (*node)[ii][jj].start = ARRAY_NOTATION_START (ii_tree); - (*node)[ii][jj].length = - fold_build1 (CONVERT_EXPR, integer_type_node, - ARRAY_NOTATION_LENGTH (ii_tree)); - (*node)[ii][jj].stride = - fold_build1 (CONVERT_EXPR, integer_type_node, - ARRAY_NOTATION_STRIDE (ii_tree)); - } + { + tree ii_tree = array_exprs[ii][jj]; + (*node)[ii][jj].is_vector = true; + (*node)[ii][jj].value = ARRAY_NOTATION_ARRAY (ii_tree); + (*node)[ii][jj].start = ARRAY_NOTATION_START (ii_tree); + (*node)[ii][jj].length = + fold_build1 (CONVERT_EXPR, integer_type_node, + ARRAY_NOTATION_LENGTH (ii_tree)); + (*node)[ii][jj].stride = + fold_build1 (CONVERT_EXPR, integer_type_node, + ARRAY_NOTATION_STRIDE (ii_tree)); + } } /* Replaces all the __sec_implicit_arg functions in LIST with the induction @@ -637,16 +637,15 @@ fix_sec_implicit_args (location_t loc, vec <tree, va_gc> *list, vec <tree, va_gc> *array_operand = NULL; for (size_t ii = 0; ii < vec_safe_length (list); ii++) if (TREE_CODE ((*list)[ii]) == CALL_EXPR - && TREE_CODE (CALL_EXPR_FN ((*list)[ii])) == ADDR_EXPR && is_sec_implicit_index_fn (CALL_EXPR_FN ((*list)[ii]))) { int idx = extract_sec_implicit_index_arg (loc, (*list)[ii]); - if (idx < (int) rank && idx >= 0) - vec_safe_push (array_operand, an_loop_info[idx].var); - else if (idx == -1) + if (idx < 0) /* In this case, the returning function would have emitted an error thus it is not necessary to do so again. */ return NULL; + else if (idx < (int) rank) + vec_safe_push (array_operand, an_loop_info[idx].var); else { error_at (loc, "__sec_implicit_index argument %d must be " diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c index 8b780c20845..8f7f5e52b0a 100644 --- a/gcc/c-family/c-common.c +++ b/gcc/c-family/c-common.c @@ -2260,7 +2260,8 @@ vector_types_convertible_p (const_tree t1, const_tree t2, bool emit_lax_note) an implementation accident and this semantics is not guaranteed to the user. */ tree -c_build_vec_perm_expr (location_t loc, tree v0, tree v1, tree mask) +c_build_vec_perm_expr (location_t loc, tree v0, tree v1, tree mask, + bool complain) { tree ret; bool wrap = true; @@ -2280,22 +2281,25 @@ c_build_vec_perm_expr (location_t loc, tree v0, tree v1, tree mask) if (TREE_CODE (TREE_TYPE (mask)) != VECTOR_TYPE || TREE_CODE (TREE_TYPE (TREE_TYPE (mask))) != INTEGER_TYPE) { - error_at (loc, "__builtin_shuffle last argument must " - "be an integer vector"); + if (complain) + error_at (loc, "__builtin_shuffle last argument must " + "be an integer vector"); return error_mark_node; } if (TREE_CODE (TREE_TYPE (v0)) != VECTOR_TYPE || TREE_CODE (TREE_TYPE (v1)) != VECTOR_TYPE) { - error_at (loc, "__builtin_shuffle arguments must be vectors"); + if (complain) + error_at (loc, "__builtin_shuffle arguments must be vectors"); return error_mark_node; } if (TYPE_MAIN_VARIANT (TREE_TYPE (v0)) != TYPE_MAIN_VARIANT (TREE_TYPE (v1))) { - error_at (loc, "__builtin_shuffle argument vectors must be of " - "the same type"); + if (complain) + error_at (loc, "__builtin_shuffle argument vectors must be of " + "the same type"); return error_mark_node; } @@ -2304,17 +2308,19 @@ c_build_vec_perm_expr (location_t loc, tree v0, tree v1, tree mask) && TYPE_VECTOR_SUBPARTS (TREE_TYPE (v1)) != TYPE_VECTOR_SUBPARTS (TREE_TYPE (mask))) { - error_at (loc, "__builtin_shuffle number of elements of the " - "argument vector(s) and the mask vector should " - "be the same"); + if (complain) + error_at (loc, "__builtin_shuffle number of elements of the " + "argument vector(s) and the mask vector should " + "be the same"); return error_mark_node; } if (GET_MODE_BITSIZE (TYPE_MODE (TREE_TYPE (TREE_TYPE (v0)))) != GET_MODE_BITSIZE (TYPE_MODE (TREE_TYPE (TREE_TYPE (mask))))) { - error_at (loc, "__builtin_shuffle argument vector(s) inner type " - "must have the same size as inner type of the mask"); + if (complain) + error_at (loc, "__builtin_shuffle argument vector(s) inner type " + "must have the same size as inner type of the mask"); return error_mark_node; } @@ -2335,6 +2341,8 @@ c_build_vec_perm_expr (location_t loc, tree v0, tree v1, tree mask) mask = c_fully_fold (mask, false, &maybe_const); wrap &= maybe_const; } + else if (two_arguments) + v1 = v0 = save_expr (v0); ret = build3_loc (loc, VEC_PERM_EXPR, TREE_TYPE (v0), v0, v1, mask); diff --git a/gcc/c-family/c-common.h b/gcc/c-family/c-common.h index 625c3011460..6dfcffd7921 100644 --- a/gcc/c-family/c-common.h +++ b/gcc/c-family/c-common.h @@ -911,7 +911,7 @@ extern bool lvalue_p (const_tree); extern bool vector_targets_convertible_p (const_tree t1, const_tree t2); extern bool vector_types_convertible_p (const_tree t1, const_tree t2, bool emit_lax_note); -extern tree c_build_vec_perm_expr (location_t, tree, tree, tree); +extern tree c_build_vec_perm_expr (location_t, tree, tree, tree, bool = true); extern rtx c_expand_expr (tree, rtx, enum machine_mode, int, rtx *); diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog index 313fa7e96bc..71a1db12faf 100644 --- a/gcc/c/ChangeLog +++ b/gcc/c/ChangeLog @@ -1,3 +1,8 @@ +2013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com> + + * c-parser.c (c_parser_array_notation): Removed rejection of array + notations in an array of function pointers. + 2013-06-21 Balaji V. Iyer <balaji.v.iyer@intel.com> * c-array-notation.c (make_triplet_val_inv): New function. diff --git a/gcc/c/c-parser.c b/gcc/c/c-parser.c index d6a500e72b3..c7846cedccb 100644 --- a/gcc/c/c-parser.c +++ b/gcc/c/c-parser.c @@ -11053,24 +11053,6 @@ c_parser_array_notation (location_t loc, c_parser *parser, tree initial_index, c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE, NULL); return error_mark_node; } - if (TREE_CODE (array_type) == ARRAY_TYPE) - { - tree subtype = TREE_TYPE (array_type); - while (subtype && TREE_CODE (subtype) == POINTER_TYPE) - { - /* Now this could be a function pointer. Find them and - give out an error. */ - subtype = TREE_TYPE (subtype); - if (subtype && TREE_CODE (subtype) == FUNCTION_TYPE) - { - error_at (loc, "array notations cannot be used with " - "function pointer arrays"); - c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE, - NULL); - return error_mark_node; - } - } - } array_type_domain = TYPE_DOMAIN (array_type); if (!array_type_domain) @@ -11114,27 +11096,6 @@ c_parser_array_notation (location_t loc, c_parser *parser, tree initial_index, c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE, NULL); return error_mark_node; } - if (TREE_CODE (array_type) == ARRAY_TYPE - || TREE_CODE (array_type) == POINTER_TYPE) - { - tree subtype = TREE_TYPE (array_type); - while (subtype - && (TREE_CODE (subtype) == POINTER_TYPE - || TREE_CODE (subtype) == ARRAY_TYPE)) - { - /* Now this could be a function pointer. Find them and - give out an error. */ - subtype = TREE_TYPE (subtype); - if (subtype && TREE_CODE (subtype) == FUNCTION_TYPE) - { - error_at (loc, "array notations cannot be used with " - "function pointer arrays"); - c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE, - NULL); - return error_mark_node; - } - } - } c_parser_consume_token (parser); /* consume the ':' */ end_index = c_parser_expression (parser).value; if (!end_index || end_index == error_mark_node) diff --git a/gcc/config.gcc b/gcc/config.gcc index e3c00b4707e..fd55d5545c7 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -1851,12 +1851,12 @@ mips*-*-linux*) # Linux MIPS, either endian. esac ;; mips*-mti-elf*) - tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/sde.h mips/mti-elf.h" + tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h" tmake_file="mips/t-mti-elf" tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32" ;; mips*-sde-elf*) - tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/sde.h" + tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h" tmake_file="mips/t-sde" extra_options="${extra_options} mips/sde.opt" case "${with_newlib}" in @@ -1938,7 +1938,7 @@ mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*) tmake_file="mips/t-elf" ;; mips64r5900-*-elf* | mips64r5900el-*-elf*) - tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h" + tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h" tmake_file="mips/t-elf" tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32" ;; diff --git a/gcc/config/aarch64/aarch64-builtins.c b/gcc/config/aarch64/aarch64-builtins.c index 2a0e5fdc391..f49f06b1a99 100644 --- a/gcc/config/aarch64/aarch64-builtins.c +++ b/gcc/config/aarch64/aarch64-builtins.c @@ -1123,6 +1123,7 @@ aarch64_simd_expand_builtin (int fcode, tree exp, rtx target) return aarch64_simd_expand_args (target, icode, 1, exp, SIMD_ARG_COPY_TO_REG, SIMD_ARG_STOP); + case AARCH64_SIMD_STORE1: case AARCH64_SIMD_STORESTRUCT: return aarch64_simd_expand_args (target, icode, 0, exp, SIMD_ARG_COPY_TO_REG, diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h index 12f3c3a6fe6..e5ae556736c 100644 --- a/gcc/config/aarch64/aarch64-protos.h +++ b/gcc/config/aarch64/aarch64-protos.h @@ -68,6 +68,13 @@ enum aarch64_symbol_context Each of of these represents a thread-local symbol, and corresponds to the thread local storage relocation operator for the symbol being referred to. + SYMBOL_TINY_ABSOLUTE + + Generate symbol accesses as a PC relative address using a single + instruction. To compute the address of symbol foo, we generate: + + ADR x0, foo + SYMBOL_FORCE_TO_MEM : Global variables are addressed using constant pool. All variable addresses are spilled into constant pools. The constant pools themselves are addressed using PC @@ -137,6 +144,8 @@ struct tune_params HOST_WIDE_INT aarch64_initial_elimination_offset (unsigned, unsigned); bool aarch64_bitmask_imm (HOST_WIDE_INT val, enum machine_mode); +enum aarch64_symbol_type +aarch64_classify_symbolic_expression (rtx, enum aarch64_symbol_context); bool aarch64_constant_address_p (rtx); bool aarch64_float_const_zero_rtx_p (rtx); bool aarch64_function_arg_regno_p (unsigned); @@ -162,8 +171,6 @@ bool aarch64_simd_shift_imm_p (rtx, enum machine_mode, bool); bool aarch64_simd_valid_immediate (rtx, enum machine_mode, bool, struct simd_immediate_info *); bool aarch64_symbolic_address_p (rtx); -bool aarch64_symbolic_constant_p (rtx, enum aarch64_symbol_context, - enum aarch64_symbol_type *); bool aarch64_uimm12_shift (HOST_WIDE_INT); const char *aarch64_output_casesi (rtx *); enum aarch64_symbol_type aarch64_classify_symbol (rtx, diff --git a/gcc/config/aarch64/aarch64-simd-builtins.def b/gcc/config/aarch64/aarch64-simd-builtins.def index 4d9b966d0ac..af2dd6efe0f 100644 --- a/gcc/config/aarch64/aarch64-simd-builtins.def +++ b/gcc/config/aarch64/aarch64-simd-builtins.def @@ -354,3 +354,10 @@ VAR1 (UNOP, float_extend_lo_, 0, v2df) VAR1 (UNOP, float_truncate_lo_, 0, v2sf) + + /* Implemented by aarch64_ld1<VALL:mode>. */ + BUILTIN_VALL (LOAD1, ld1, 0) + + /* Implemented by aarch64_st1<VALL:mode>. */ + BUILTIN_VALL (STORE1, st1, 0) + diff --git a/gcc/config/aarch64/aarch64-simd.md b/gcc/config/aarch64/aarch64-simd.md index 08826b5dd9f..178efdc964e 100644 --- a/gcc/config/aarch64/aarch64-simd.md +++ b/gcc/config/aarch64/aarch64-simd.md @@ -3882,6 +3882,17 @@ DONE; }) +(define_expand "aarch64_ld1<VALL:mode>" + [(match_operand:VALL 0 "register_operand") + (match_operand:DI 1 "register_operand")] + "TARGET_SIMD" +{ + enum machine_mode mode = <VALL:MODE>mode; + rtx mem = gen_rtx_MEM (mode, operands[1]); + emit_move_insn (operands[0], mem); + DONE; +}) + (define_expand "aarch64_ld<VSTRUCT:nregs><VQ:mode>" [(match_operand:VSTRUCT 0 "register_operand" "=w") (match_operand:DI 1 "register_operand" "r") @@ -4098,6 +4109,17 @@ DONE; }) +(define_expand "aarch64_st1<VALL:mode>" + [(match_operand:DI 0 "register_operand") + (match_operand:VALL 1 "register_operand")] + "TARGET_SIMD" +{ + enum machine_mode mode = <VALL:MODE>mode; + rtx mem = gen_rtx_MEM (mode, operands[0]); + emit_move_insn (mem, operands[1]); + DONE; +}) + ;; Expander for builtins to insert vector registers into large ;; opaque integer modes. diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 77591c114ef..94db0533fef 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -2687,12 +2687,14 @@ static bool aarch64_cannot_force_const_mem (enum machine_mode mode ATTRIBUTE_UNUSED, rtx x) { rtx base, offset; + if (GET_CODE (x) == HIGH) return true; split_const (x, &base, &offset); if (GET_CODE (base) == SYMBOL_REF || GET_CODE (base) == LABEL_REF) - return (aarch64_classify_symbol (base, SYMBOL_CONTEXT_ADR) != SYMBOL_FORCE_TO_MEM); + return (aarch64_classify_symbol (base, SYMBOL_CONTEXT_ADR) + != SYMBOL_FORCE_TO_MEM); return aarch64_tls_referenced_p (x); } @@ -3130,10 +3132,13 @@ aarch64_symbolic_address_p (rtx x) /* Classify the base of symbolic expression X, given that X appears in context CONTEXT. */ -static enum aarch64_symbol_type -aarch64_classify_symbolic_expression (rtx x, enum aarch64_symbol_context context) + +enum aarch64_symbol_type +aarch64_classify_symbolic_expression (rtx x, + enum aarch64_symbol_context context) { rtx offset; + split_const (x, &x, &offset); return aarch64_classify_symbol (x, context); } @@ -5134,24 +5139,6 @@ aarch64_classify_symbol (rtx x, return SYMBOL_FORCE_TO_MEM; } -/* Return true if X is a symbolic constant that can be used in context - CONTEXT. If it is, store the type of the symbol in *SYMBOL_TYPE. */ - -bool -aarch64_symbolic_constant_p (rtx x, enum aarch64_symbol_context context, - enum aarch64_symbol_type *symbol_type) -{ - rtx offset; - split_const (x, &x, &offset); - if (GET_CODE (x) == SYMBOL_REF || GET_CODE (x) == LABEL_REF) - *symbol_type = aarch64_classify_symbol (x, context); - else - return false; - - /* No checking of offset at this point. */ - return true; -} - bool aarch64_constant_address_p (rtx x) { diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h index a08797b1e76..7bdb1e2bebf 100644 --- a/gcc/config/aarch64/aarch64.h +++ b/gcc/config/aarch64/aarch64.h @@ -521,12 +521,6 @@ typedef struct GTY (()) machine_function #endif -/* Which ABI to use. */ -enum arm_abi_type -{ - ARM_ABI_AAPCS64 -}; - enum arm_pcs { ARM_PCS_AAPCS64, /* Base standard AAPCS for 64 bit. */ @@ -534,11 +528,7 @@ enum arm_pcs }; -extern enum arm_abi_type arm_abi; extern enum arm_pcs arm_pcs_variant; -#ifndef ARM_DEFAULT_ABI -#define ARM_DEFAULT_ABI ARM_ABI_AAPCS64 -#endif #ifndef ARM_DEFAULT_PCS #define ARM_DEFAULT_PCS ARM_PCS_AAPCS64 diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md index e88e5be894e..68336db0ed5 100644 --- a/gcc/config/aarch64/aarch64.md +++ b/gcc/config/aarch64/aarch64.md @@ -2003,6 +2003,38 @@ (set_attr "mode" "SI")] ) +(define_insn_and_split "absdi2" + [(set (match_operand:DI 0 "register_operand" "=r,w") + (abs:DI (match_operand:DI 1 "register_operand" "r,w"))) + (clobber (match_scratch:DI 2 "=&r,X"))] + "" + "@ + # + abs\\t%d0, %d1" + "reload_completed + && GP_REGNUM_P (REGNO (operands[0])) + && GP_REGNUM_P (REGNO (operands[1]))" + [(const_int 0)] + { + emit_insn (gen_rtx_SET (VOIDmode, operands[2], + gen_rtx_XOR (DImode, + gen_rtx_ASHIFTRT (DImode, + operands[1], + GEN_INT (63)), + operands[1]))); + emit_insn (gen_rtx_SET (VOIDmode, + operands[0], + gen_rtx_MINUS (DImode, + operands[2], + gen_rtx_ASHIFTRT (DImode, + operands[1], + GEN_INT (63))))); + DONE; + } + [(set_attr "v8type" "alu") + (set_attr "mode" "DI")] +) + (define_insn "neg<mode>2" [(set (match_operand:GPI 0 "register_operand" "=r") (neg:GPI (match_operand:GPI 1 "register_operand" "r")))] @@ -3225,6 +3257,21 @@ (set_attr "mode" "<MODE>")] ) +(define_insn "*extr_insv_lower_reg<mode>" + [(set (zero_extract:GPI (match_operand:GPI 0 "register_operand" "+r") + (match_operand 1 "const_int_operand" "n") + (const_int 0)) + (zero_extract:GPI (match_operand:GPI 2 "register_operand" "+r") + (match_dup 1) + (match_operand 3 "const_int_operand" "n")))] + "!(UINTVAL (operands[1]) == 0 + || (UINTVAL (operands[3]) + UINTVAL (operands[1]) + > GET_MODE_BITSIZE (<MODE>mode)))" + "bfxil\\t%<w>0, %<w>2, %3, %1" + [(set_attr "v8type" "bfm") + (set_attr "mode" "<MODE>")] +) + (define_insn "*<optab><ALLX:mode>_shft_<GPI:mode>" [(set (match_operand:GPI 0 "register_operand" "=r") (ashift:GPI (ANY_EXTEND:GPI diff --git a/gcc/config/aarch64/arm_neon.h b/gcc/config/aarch64/arm_neon.h index 760ba3dc1e1..13ef11db3f6 100644 --- a/gcc/config/aarch64/arm_neon.h +++ b/gcc/config/aarch64/arm_neon.h @@ -7209,28 +7209,6 @@ vld1_dup_u64 (const uint64_t * a) return result; } -__extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) -vld1_f32 (const float32_t * a) -{ - float32x2_t result; - __asm__ ("ld1 {%0.2s}, %1" - : "=w"(result) - : "Utv"(({const float32x2_t *_a = (float32x2_t *) a; *_a;})) - : /* No clobbers */); - return result; -} - -__extension__ static __inline float64x1_t __attribute__ ((__always_inline__)) -vld1_f64 (const float64_t * a) -{ - float64x1_t result; - __asm__ ("ld1 {%0.1d}, %1" - : "=w"(result) - : "Utv"(*a) - : /* No clobbers */); - return result; -} - #define vld1_lane_f32(a, b, c) \ __extension__ \ ({ \ @@ -7387,116 +7365,6 @@ vld1_f64 (const float64_t * a) result; \ }) -__extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) -vld1_p8 (const poly8_t * a) -{ - poly8x8_t result; - __asm__ ("ld1 {%0.8b}, %1" - : "=w"(result) - : "Utv"(({const poly8x8_t *_a = (poly8x8_t *) a; *_a;})) - : /* No clobbers */); - return result; -} - -__extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) -vld1_p16 (const poly16_t * a) -{ - poly16x4_t result; - __asm__ ("ld1 {%0.4h}, %1" - : "=w"(result) - : "Utv"(({const poly16x4_t *_a = (poly16x4_t *) a; *_a;})) - : /* No clobbers */); - return result; -} - -__extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) -vld1_s8 (const int8_t * a) -{ - int8x8_t result; - __asm__ ("ld1 {%0.8b}, %1" - : "=w"(result) - : "Utv"(({const int8x8_t *_a = (int8x8_t *) a; *_a;})) - : /* No clobbers */); - return result; -} - -__extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) -vld1_s16 (const int16_t * a) -{ - int16x4_t result; - __asm__ ("ld1 {%0.4h}, %1" - : "=w"(result) - : "Utv"(({const int16x4_t *_a = (int16x4_t *) a; *_a;})) - : /* No clobbers */); - return result; -} - -__extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) -vld1_s32 (const int32_t * a) -{ - int32x2_t result; - __asm__ ("ld1 {%0.2s}, %1" - : "=w"(result) - : "Utv"(({const int32x2_t *_a = (int32x2_t *) a; *_a;})) - : /* No clobbers */); - return result; -} - -__extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) -vld1_s64 (const int64_t * a) -{ - int64x1_t result; - __asm__ ("ld1 {%0.1d}, %1" - : "=w"(result) - : "Utv"(*a) - : /* No clobbers */); - return result; -} - -__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) -vld1_u8 (const uint8_t * a) -{ - uint8x8_t result; - __asm__ ("ld1 {%0.8b}, %1" - : "=w"(result) - : "Utv"(({const uint8x8_t *_a = (uint8x8_t *) a; *_a;})) - : /* No clobbers */); - return result; -} - -__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) -vld1_u16 (const uint16_t * a) -{ - uint16x4_t result; - __asm__ ("ld1 {%0.4h}, %1" - : "=w"(result) - : "Utv"(({const uint16x4_t *_a = (uint16x4_t *) a; *_a;})) - : /* No clobbers */); - return result; -} - -__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) -vld1_u32 (const uint32_t * a) -{ - uint32x2_t result; - __asm__ ("ld1 {%0.2s}, %1" - : "=w"(result) - : "Utv"(({const uint32x2_t *_a = (uint32x2_t *) a; *_a;})) - : /* No clobbers */); - return result; -} - -__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) -vld1_u64 (const uint64_t * a) -{ - uint64x1_t result; - __asm__ ("ld1 {%0.1d}, %1" - : "=w"(result) - : "Utv"(*a) - : /* No clobbers */); - return result; -} - __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) vld1q_dup_f32 (const float32_t * a) { @@ -7629,28 +7497,6 @@ vld1q_dup_u64 (const uint64_t * a) return result; } -__extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) -vld1q_f32 (const float32_t * a) -{ - float32x4_t result; - __asm__ ("ld1 {%0.4s}, %1" - : "=w"(result) - : "Utv"(({const float32x4_t *_a = (float32x4_t *) a; *_a;})) - : /* No clobbers */); - return result; -} - -__extension__ static __inline float64x2_t __attribute__ ((__always_inline__)) -vld1q_f64 (const float64_t * a) -{ - float64x2_t result; - __asm__ ("ld1 {%0.2d}, %1" - : "=w"(result) - : "Utv"(({const float64x2_t *_a = (float64x2_t *) a; *_a;})) - : /* No clobbers */); - return result; -} - #define vld1q_lane_f32(a, b, c) \ __extension__ \ ({ \ @@ -7807,116 +7653,6 @@ vld1q_f64 (const float64_t * a) result; \ }) -__extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) -vld1q_p8 (const poly8_t * a) -{ - poly8x16_t result; - __asm__ ("ld1 {%0.16b}, %1" - : "=w"(result) - : "Utv"(({const poly8x16_t *_a = (poly8x16_t *) a; *_a;})) - : /* No clobbers */); - return result; -} - -__extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) -vld1q_p16 (const poly16_t * a) -{ - poly16x8_t result; - __asm__ ("ld1 {%0.16b}, %1" - : "=w"(result) - : "Utv"(({const poly16x8_t *_a = (poly16x8_t *) a; *_a;})) - : /* No clobbers */); - return result; -} - -__extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) -vld1q_s8 (const int8_t * a) -{ - int8x16_t result; - __asm__ ("ld1 {%0.16b}, %1" - : "=w"(result) - : "Utv"(({const int8x16_t *_a = (int8x16_t *) a; *_a;})) - : /* No clobbers */); - return result; -} - -__extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) -vld1q_s16 (const int16_t * a) -{ - int16x8_t result; - __asm__ ("ld1 {%0.8h}, %1" - : "=w"(result) - : "Utv"(({const int16x8_t *_a = (int16x8_t *) a; *_a;})) - : /* No clobbers */); - return result; -} - -__extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) -vld1q_s32 (const int32_t * a) -{ - int32x4_t result; - __asm__ ("ld1 {%0.4s}, %1" - : "=w"(result) - : "Utv"(({const int32x4_t *_a = (int32x4_t *) a; *_a;})) - : /* No clobbers */); - return result; -} - -__extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) -vld1q_s64 (const int64_t * a) -{ - int64x2_t result; - __asm__ ("ld1 {%0.2d}, %1" - : "=w"(result) - : "Utv"(({const int64x2_t *_a = (int64x2_t *) a; *_a;})) - : /* No clobbers */); - return result; -} - -__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) -vld1q_u8 (const uint8_t * a) -{ - uint8x16_t result; - __asm__ ("ld1 {%0.16b}, %1" - : "=w"(result) - : "Utv"(({const uint8x16_t *_a = (uint8x16_t *) a; *_a;})) - : /* No clobbers */); - return result; -} - -__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) -vld1q_u16 (const uint16_t * a) -{ - uint16x8_t result; - __asm__ ("ld1 {%0.8h}, %1" - : "=w"(result) - : "Utv"(({const uint16x8_t *_a = (uint16x8_t *) a; *_a;})) - : /* No clobbers */); - return result; -} - -__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) -vld1q_u32 (const uint32_t * a) -{ - uint32x4_t result; - __asm__ ("ld1 {%0.4s}, %1" - : "=w"(result) - : "Utv"(({const uint32x4_t *_a = (uint32x4_t *) a; *_a;})) - : /* No clobbers */); - return result; -} - -__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) -vld1q_u64 (const uint64_t * a) -{ - uint64x2_t result; - __asm__ ("ld1 {%0.2d}, %1" - : "=w"(result) - : "Utv"(({const uint64x2_t *_a = (uint64x2_t *) a; *_a;})) - : /* No clobbers */); - return result; -} - #define vmla_lane_f32(a, b, c, d) \ __extension__ \ ({ \ @@ -14382,24 +14118,6 @@ vrsubhn_u64 (uint64x2_t a, uint64x2_t b) result; \ }) -__extension__ static __inline void __attribute__ ((__always_inline__)) -vst1_f32 (float32_t * a, float32x2_t b) -{ - __asm__ ("st1 {%1.2s},[%0]" - : - : "r"(a), "w"(b) - : "memory"); -} - -__extension__ static __inline void __attribute__ ((__always_inline__)) -vst1_f64 (float64_t * a, float64x1_t b) -{ - __asm__ ("st1 {%1.1d},[%0]" - : - : "r"(a), "w"(b) - : "memory"); -} - #define vst1_lane_f32(a, b, c) \ __extension__ \ ({ \ @@ -14532,113 +14250,6 @@ vst1_f64 (float64_t * a, float64x1_t b) : "memory"); \ }) -__extension__ static __inline void __attribute__ ((__always_inline__)) -vst1_p8 (poly8_t * a, poly8x8_t b) -{ - __asm__ ("st1 {%1.8b},[%0]" - : - : "r"(a), "w"(b) - : "memory"); -} - -__extension__ static __inline void __attribute__ ((__always_inline__)) -vst1_p16 (poly16_t * a, poly16x4_t b) -{ - __asm__ ("st1 {%1.4h},[%0]" - : - : "r"(a), "w"(b) - : "memory"); -} - -__extension__ static __inline void __attribute__ ((__always_inline__)) -vst1_s8 (int8_t * a, int8x8_t b) -{ - __asm__ ("st1 {%1.8b},[%0]" - : - : "r"(a), "w"(b) - : "memory"); -} - -__extension__ static __inline void __attribute__ ((__always_inline__)) -vst1_s16 (int16_t * a, int16x4_t b) -{ - __asm__ ("st1 {%1.4h},[%0]" - : - : "r"(a), "w"(b) - : "memory"); -} - -__extension__ static __inline void __attribute__ ((__always_inline__)) -vst1_s32 (int32_t * a, int32x2_t b) -{ - __asm__ ("st1 {%1.2s},[%0]" - : - : "r"(a), "w"(b) - : "memory"); -} - -__extension__ static __inline void __attribute__ ((__always_inline__)) -vst1_s64 (int64_t * a, int64x1_t b) -{ - __asm__ ("st1 {%1.1d},[%0]" - : - : "r"(a), "w"(b) - : "memory"); -} - -__extension__ static __inline void __attribute__ ((__always_inline__)) -vst1_u8 (uint8_t * a, uint8x8_t b) -{ - __asm__ ("st1 {%1.8b},[%0]" - : - : "r"(a), "w"(b) - : "memory"); -} - -__extension__ static __inline void __attribute__ ((__always_inline__)) -vst1_u16 (uint16_t * a, uint16x4_t b) -{ - __asm__ ("st1 {%1.4h},[%0]" - : - : "r"(a), "w"(b) - : "memory"); -} - -__extension__ static __inline void __attribute__ ((__always_inline__)) -vst1_u32 (uint32_t * a, uint32x2_t b) -{ - __asm__ ("st1 {%1.2s},[%0]" - : - : "r"(a), "w"(b) - : "memory"); -} - -__extension__ static __inline void __attribute__ ((__always_inline__)) -vst1_u64 (uint64_t * a, uint64x1_t b) -{ - __asm__ ("st1 {%1.1d},[%0]" - : - : "r"(a), "w"(b) - : "memory"); -} - -__extension__ static __inline void __attribute__ ((__always_inline__)) -vst1q_f32 (float32_t * a, float32x4_t b) -{ - __asm__ ("st1 {%1.4s},[%0]" - : - : "r"(a), "w"(b) - : "memory"); -} - -__extension__ static __inline void __attribute__ ((__always_inline__)) -vst1q_f64 (float64_t * a, float64x2_t b) -{ - __asm__ ("st1 {%1.2d},[%0]" - : - : "r"(a), "w"(b) - : "memory"); -} #define vst1q_lane_f32(a, b, c) \ __extension__ \ @@ -14772,96 +14383,6 @@ vst1q_f64 (float64_t * a, float64x2_t b) : "memory"); \ }) -__extension__ static __inline void __attribute__ ((__always_inline__)) -vst1q_p8 (poly8_t * a, poly8x16_t b) -{ - __asm__ ("st1 {%1.16b},[%0]" - : - : "r"(a), "w"(b) - : "memory"); -} - -__extension__ static __inline void __attribute__ ((__always_inline__)) -vst1q_p16 (poly16_t * a, poly16x8_t b) -{ - __asm__ ("st1 {%1.8h},[%0]" - : - : "r"(a), "w"(b) - : "memory"); -} - -__extension__ static __inline void __attribute__ ((__always_inline__)) -vst1q_s8 (int8_t * a, int8x16_t b) -{ - __asm__ ("st1 {%1.16b},[%0]" - : - : "r"(a), "w"(b) - : "memory"); -} - -__extension__ static __inline void __attribute__ ((__always_inline__)) -vst1q_s16 (int16_t * a, int16x8_t b) -{ - __asm__ ("st1 {%1.8h},[%0]" - : - : "r"(a), "w"(b) - : "memory"); -} - -__extension__ static __inline void __attribute__ ((__always_inline__)) -vst1q_s32 (int32_t * a, int32x4_t b) -{ - __asm__ ("st1 {%1.4s},[%0]" - : - : "r"(a), "w"(b) - : "memory"); -} - -__extension__ static __inline void __attribute__ ((__always_inline__)) -vst1q_s64 (int64_t * a, int64x2_t b) -{ - __asm__ ("st1 {%1.2d},[%0]" - : - : "r"(a), "w"(b) - : "memory"); -} - -__extension__ static __inline void __attribute__ ((__always_inline__)) -vst1q_u8 (uint8_t * a, uint8x16_t b) -{ - __asm__ ("st1 {%1.16b},[%0]" - : - : "r"(a), "w"(b) - : "memory"); -} - -__extension__ static __inline void __attribute__ ((__always_inline__)) -vst1q_u16 (uint16_t * a, uint16x8_t b) -{ - __asm__ ("st1 {%1.8h},[%0]" - : - : "r"(a), "w"(b) - : "memory"); -} - -__extension__ static __inline void __attribute__ ((__always_inline__)) -vst1q_u32 (uint32_t * a, uint32x4_t b) -{ - __asm__ ("st1 {%1.4s},[%0]" - : - : "r"(a), "w"(b) - : "memory"); -} - -__extension__ static __inline void __attribute__ ((__always_inline__)) -vst1q_u64 (uint64_t * a, uint64x2_t b) -{ - __asm__ ("st1 {%1.2d},[%0]" - : - : "r"(a), "w"(b) - : "memory"); -} - __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) vsubhn_high_s16 (int8x8_t a, int16x8_t b, int16x8_t c) { @@ -20279,6 +19800,165 @@ vdupd_lane_u64 (uint64x2_t a, int const b) return (uint64x1_t) __builtin_aarch64_dup_lane_scalarv2di ((int64x2_t) a, b); } +/* vld1 */ + +__extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) +vld1_f32 (const float32_t *a) +{ + return __builtin_aarch64_ld1v2sf ((const __builtin_aarch64_simd_sf *) a); +} + +__extension__ static __inline float64x1_t __attribute__ ((__always_inline__)) +vld1_f64 (const float64_t *a) +{ + return *a; +} + +__extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) +vld1_p8 (const poly8_t *a) +{ + return (poly8x8_t) + __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) a); +} + +__extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) +vld1_p16 (const poly16_t *a) +{ + return (poly16x4_t) + __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) a); +} + +__extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) +vld1_s8 (const int8_t *a) +{ + return __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) a); +} + +__extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) +vld1_s16 (const int16_t *a) +{ + return __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) a); +} + +__extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) +vld1_s32 (const int32_t *a) +{ + return __builtin_aarch64_ld1v2si ((const __builtin_aarch64_simd_si *) a); +} + +__extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) +vld1_s64 (const int64_t *a) +{ + return *a; +} + +__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) +vld1_u8 (const uint8_t *a) +{ + return (uint8x8_t) + __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) a); +} + +__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) +vld1_u16 (const uint16_t *a) +{ + return (uint16x4_t) + __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) a); +} + +__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) +vld1_u32 (const uint32_t *a) +{ + return (uint32x2_t) + __builtin_aarch64_ld1v2si ((const __builtin_aarch64_simd_si *) a); +} + +__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) +vld1_u64 (const uint64_t *a) +{ + return *a; +} + +/* vld1q */ + +__extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) +vld1q_f32 (const float32_t *a) +{ + return __builtin_aarch64_ld1v4sf ((const __builtin_aarch64_simd_sf *) a); +} + +__extension__ static __inline float64x2_t __attribute__ ((__always_inline__)) +vld1q_f64 (const float64_t *a) +{ + return __builtin_aarch64_ld1v2df ((const __builtin_aarch64_simd_df *) a); +} + +__extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) +vld1q_p8 (const poly8_t *a) +{ + return (poly8x16_t) + __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) a); +} + +__extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) +vld1q_p16 (const poly16_t *a) +{ + return (poly16x8_t) + __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) a); +} + +__extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) +vld1q_s8 (const int8_t *a) +{ + return __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) a); +} + +__extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) +vld1q_s16 (const int16_t *a) +{ + return __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) a); +} + +__extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) +vld1q_s32 (const int32_t *a) +{ + return __builtin_aarch64_ld1v4si ((const __builtin_aarch64_simd_si *) a); +} + +__extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) +vld1q_s64 (const int64_t *a) +{ + return __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) a); +} + +__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) +vld1q_u8 (const uint8_t *a) +{ + return (uint8x16_t) + __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) a); +} + +__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) +vld1q_u16 (const uint16_t *a) +{ + return (uint16x8_t) + __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) a); +} + +__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) +vld1q_u32 (const uint32_t *a) +{ + return (uint32x4_t) + __builtin_aarch64_ld1v4si ((const __builtin_aarch64_simd_si *) a); +} + +__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) +vld1q_u64 (const uint64_t *a) +{ + return (uint64x2_t) + __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) a); +} + /* vldn */ __extension__ static __inline int64x1x2_t __attribute__ ((__always_inline__)) @@ -24542,6 +24222,165 @@ vsrid_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c) return (uint64x1_t) __builtin_aarch64_usri_ndi (__a, __b, __c); } +/* vst1 */ + +__extension__ static __inline void __attribute__ ((__always_inline__)) +vst1_f32 (float32_t *a, float32x2_t b) +{ + __builtin_aarch64_st1v2sf ((__builtin_aarch64_simd_sf *) a, b); +} + +__extension__ static __inline void __attribute__ ((__always_inline__)) +vst1_f64 (float64_t *a, float64x1_t b) +{ + *a = b; +} + +__extension__ static __inline void __attribute__ ((__always_inline__)) +vst1_p8 (poly8_t *a, poly8x8_t b) +{ + __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) a, + (int8x8_t) b); +} + +__extension__ static __inline void __attribute__ ((__always_inline__)) +vst1_p16 (poly16_t *a, poly16x4_t b) +{ + __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) a, + (int16x4_t) b); +} + +__extension__ static __inline void __attribute__ ((__always_inline__)) +vst1_s8 (int8_t *a, int8x8_t b) +{ + __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) a, b); +} + +__extension__ static __inline void __attribute__ ((__always_inline__)) +vst1_s16 (int16_t *a, int16x4_t b) +{ + __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) a, b); +} + +__extension__ static __inline void __attribute__ ((__always_inline__)) +vst1_s32 (int32_t *a, int32x2_t b) +{ + __builtin_aarch64_st1v2si ((__builtin_aarch64_simd_si *) a, b); +} + +__extension__ static __inline void __attribute__ ((__always_inline__)) +vst1_s64 (int64_t *a, int64x1_t b) +{ + *a = b; +} + +__extension__ static __inline void __attribute__ ((__always_inline__)) +vst1_u8 (uint8_t *a, uint8x8_t b) +{ + __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) a, + (int8x8_t) b); +} + +__extension__ static __inline void __attribute__ ((__always_inline__)) +vst1_u16 (uint16_t *a, uint16x4_t b) +{ + __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) a, + (int16x4_t) b); +} + +__extension__ static __inline void __attribute__ ((__always_inline__)) +vst1_u32 (uint32_t *a, uint32x2_t b) +{ + __builtin_aarch64_st1v2si ((__builtin_aarch64_simd_si *) a, + (int32x2_t) b); +} + +__extension__ static __inline void __attribute__ ((__always_inline__)) +vst1_u64 (uint64_t *a, uint64x1_t b) +{ + *a = b; +} + +__extension__ static __inline void __attribute__ ((__always_inline__)) +vst1q_f32 (float32_t *a, float32x4_t b) +{ + __builtin_aarch64_st1v4sf ((__builtin_aarch64_simd_sf *) a, b); +} + +__extension__ static __inline void __attribute__ ((__always_inline__)) +vst1q_f64 (float64_t *a, float64x2_t b) +{ + __builtin_aarch64_st1v2df ((__builtin_aarch64_simd_df *) a, b); +} + +/* vst1q */ + +__extension__ static __inline void __attribute__ ((__always_inline__)) +vst1q_p8 (poly8_t *a, poly8x16_t b) +{ + __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) a, + (int8x16_t) b); +} + +__extension__ static __inline void __attribute__ ((__always_inline__)) +vst1q_p16 (poly16_t *a, poly16x8_t b) +{ + __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) a, + (int16x8_t) b); +} + +__extension__ static __inline void __attribute__ ((__always_inline__)) +vst1q_s8 (int8_t *a, int8x16_t b) +{ + __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) a, b); +} + +__extension__ static __inline void __attribute__ ((__always_inline__)) +vst1q_s16 (int16_t *a, int16x8_t b) +{ + __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) a, b); +} + +__extension__ static __inline void __attribute__ ((__always_inline__)) +vst1q_s32 (int32_t *a, int32x4_t b) +{ + __builtin_aarch64_st1v4si ((__builtin_aarch64_simd_si *) a, b); +} + +__extension__ static __inline void __attribute__ ((__always_inline__)) +vst1q_s64 (int64_t *a, int64x2_t b) +{ + __builtin_aarch64_st1v2di ((__builtin_aarch64_simd_di *) a, b); +} + +__extension__ static __inline void __attribute__ ((__always_inline__)) +vst1q_u8 (uint8_t *a, uint8x16_t b) +{ + __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) a, + (int8x16_t) b); +} + +__extension__ static __inline void __attribute__ ((__always_inline__)) +vst1q_u16 (uint16_t *a, uint16x8_t b) +{ + __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) a, + (int16x8_t) b); +} + +__extension__ static __inline void __attribute__ ((__always_inline__)) +vst1q_u32 (uint32_t *a, uint32x4_t b) +{ + __builtin_aarch64_st1v4si ((__builtin_aarch64_simd_si *) a, + (int32x4_t) b); +} + +__extension__ static __inline void __attribute__ ((__always_inline__)) +vst1q_u64 (uint64_t *a, uint64x2_t b) +{ + __builtin_aarch64_st1v2di ((__builtin_aarch64_simd_di *) a, + (int64x2_t) b); +} + /* vstn */ __extension__ static __inline void diff --git a/gcc/config/aarch64/predicates.md b/gcc/config/aarch64/predicates.md index 3248f610da0..3e2b6b34357 100644 --- a/gcc/config/aarch64/predicates.md +++ b/gcc/config/aarch64/predicates.md @@ -118,9 +118,8 @@ (define_predicate "aarch64_valid_symref" (match_code "const, symbol_ref, label_ref") { - enum aarch64_symbol_type symbol_type; - return (aarch64_symbolic_constant_p (op, SYMBOL_CONTEXT_ADR, &symbol_type) - && symbol_type != SYMBOL_FORCE_TO_MEM); + return (aarch64_classify_symbolic_expression (op, SYMBOL_CONTEXT_ADR) + != SYMBOL_FORCE_TO_MEM); }) (define_predicate "aarch64_tls_ie_symref" diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md index a342c5ef9b9..0fcdeea609c 100644 --- a/gcc/config/arm/arm.md +++ b/gcc/config/arm/arm.md @@ -335,6 +335,70 @@ ; umlals unsigned multiply accumulate long, flag setting. ; umull unsigned multiply long. ; umulls unsigned multiply long, flag setting. +; +; The classification below is for instructions used by the Wireless MMX +; Technology. Each attribute value is used to classify an instruction of the +; same name or family. +; +; wmmx_tandc +; wmmx_tbcst +; wmmx_textrc +; wmmx_textrm +; wmmx_tinsr +; wmmx_tmcr +; wmmx_tmcrr +; wmmx_tmia +; wmmx_tmiaph +; wmmx_tmiaxy +; wmmx_tmrc +; wmmx_tmrrc +; wmmx_tmovmsk +; wmmx_torc +; wmmx_torvsc +; wmmx_wabs +; wmmx_wdiff +; wmmx_wacc +; wmmx_wadd +; wmmx_waddbhus +; wmmx_waddsubhx +; wmmx_waligni +; wmmx_walignr +; wmmx_wand +; wmmx_wandn +; wmmx_wavg2 +; wmmx_wavg4 +; wmmx_wcmpeq +; wmmx_wcmpgt +; wmmx_wmac +; wmmx_wmadd +; wmmx_wmax +; wmmx_wmerge +; wmmx_wmiawxy +; wmmx_wmiaxy +; wmmx_wmin +; wmmx_wmov +; wmmx_wmul +; wmmx_wmulw +; wmmx_wldr +; wmmx_wor +; wmmx_wpack +; wmmx_wqmiaxy +; wmmx_wqmulm +; wmmx_wqmulwm +; wmmx_wror +; wmmx_wsad +; wmmx_wshufh +; wmmx_wsll +; wmmx_wsra +; wmmx_wsrl +; wmmx_wstr +; wmmx_wsub +; wmmx_wsubaddhx +; wmmx_wunpckeh +; wmmx_wunpckel +; wmmx_wunpckih +; wmmx_wunpckil +; wmmx_wxor (define_attr "type" "simple_alu_imm,\ @@ -419,7 +483,66 @@ smlald,\ smlsld,\ sdiv,\ - udiv" + udiv,\ + wmmx_tandc,\ + wmmx_tbcst,\ + wmmx_textrc,\ + wmmx_textrm,\ + wmmx_tinsr,\ + wmmx_tmcr,\ + wmmx_tmcrr,\ + wmmx_tmia,\ + wmmx_tmiaph,\ + wmmx_tmiaxy,\ + wmmx_tmrc,\ + wmmx_tmrrc,\ + wmmx_tmovmsk,\ + wmmx_torc,\ + wmmx_torvsc,\ + wmmx_wabs,\ + wmmx_wabsdiff,\ + wmmx_wacc,\ + wmmx_wadd,\ + wmmx_waddbhus,\ + wmmx_waddsubhx,\ + wmmx_waligni,\ + wmmx_walignr,\ + wmmx_wand,\ + wmmx_wandn,\ + wmmx_wavg2,\ + wmmx_wavg4,\ + wmmx_wcmpeq,\ + wmmx_wcmpgt,\ + wmmx_wmac,\ + wmmx_wmadd,\ + wmmx_wmax,\ + wmmx_wmerge,\ + wmmx_wmiawxy,\ + wmmx_wmiaxy,\ + wmmx_wmin,\ + wmmx_wmov,\ + wmmx_wmul,\ + wmmx_wmulw,\ + wmmx_wldr,\ + wmmx_wor,\ + wmmx_wpack,\ + wmmx_wqmiaxy,\ + wmmx_wqmulm,\ + wmmx_wqmulwm,\ + wmmx_wror,\ + wmmx_wsad,\ + wmmx_wshufh,\ + wmmx_wsll,\ + wmmx_wsra,\ + wmmx_wsrl,\ + wmmx_wstr,\ + wmmx_wsub,\ + wmmx_wsubaddhx,\ + wmmx_wunpckeh,\ + wmmx_wunpckel,\ + wmmx_wunpckih,\ + wmmx_wunpckil,\ + wmmx_wxor" (const_string "alu_reg")) ; Is this an (integer side) multiply with a 32-bit (or smaller) result? @@ -439,10 +562,6 @@ (const_string "yes") (const_string "no"))) -; wtype for WMMX insn scheduling purposes. -(define_attr "wtype" - "none,wor,wxor,wand,wandn,wmov,tmcrr,tmrrc,wldr,wstr,tmcr,tmrc,wadd,wsub,wmul,wmac,wavg2,tinsr,textrm,wshufh,wcmpeq,wcmpgt,wmax,wmin,wpack,wunpckih,wunpckil,wunpckeh,wunpckel,wror,wsra,wsrl,wsll,wmadd,tmia,tmiaph,tmiaxy,tbcst,tmovmsk,wacc,waligni,walignr,tandc,textrc,torc,torvsc,wsad,wabs,wabsdiff,waddsubhx,wsubaddhx,wavg4,wmulw,wqmulm,wqmulwm,waddbhus,wqmiaxy,wmiaxy,wmiawxy,wmerge" (const_string "none")) - ; Load scheduling, set from the arm_ld_sched variable ; initialized by arm_option_override() (define_attr "ldsched" "no,yes" (const (symbol_ref "arm_ld_sched"))) @@ -567,9 +686,19 @@ ; than one on the main cpu execution unit. (define_attr "core_cycles" "single,multi" (if_then_else (eq_attr "type" - "simple_alu_imm,alu_reg,\ - simple_alu_shift,alu_shift,\ - float,fdivd,fdivs") + "simple_alu_imm, alu_reg,\ + simple_alu_shift, alu_shift, float, fdivd, fdivs,\ + wmmx_wor, wmmx_wxor, wmmx_wand, wmmx_wandn, wmmx_wmov, wmmx_tmcrr,\ + wmmx_tmrrc, wmmx_wldr, wmmx_wstr, wmmx_tmcr, wmmx_tmrc, wmmx_wadd,\ + wmmx_wsub, wmmx_wmul, wmmx_wmac, wmmx_wavg2, wmmx_tinsr, wmmx_textrm,\ + wmmx_wshufh, wmmx_wcmpeq, wmmx_wcmpgt, wmmx_wmax, wmmx_wmin, wmmx_wpack,\ + wmmx_wunpckih, wmmx_wunpckil, wmmx_wunpckeh, wmmx_wunpckel, wmmx_wror,\ + wmmx_wsra, wmmx_wsrl, wmmx_wsll, wmmx_wmadd, wmmx_tmia, wmmx_tmiaph,\ + wmmx_tmiaxy, wmmx_tbcst, wmmx_tmovmsk, wmmx_wacc, wmmx_waligni,\ + wmmx_walignr, wmmx_tandc, wmmx_textrc, wmmx_torc, wmmx_torvsc, wmmx_wsad,\ + wmmx_wabs, wmmx_wabsdiff, wmmx_waddsubhx, wmmx_wsubaddhx, wmmx_wavg4,\ + wmmx_wmulw, wmmx_wqmulm, wmmx_wqmulwm, wmmx_waddbhus, wmmx_wqmiaxy,\ + wmmx_wmiaxy, wmmx_wmiawxy, wmmx_wmerge") (const_string "single") (const_string "multi"))) @@ -1565,13 +1694,16 @@ ) (define_insn "*arm_mulsi3_v6" - [(set (match_operand:SI 0 "s_register_operand" "=r") - (mult:SI (match_operand:SI 1 "s_register_operand" "r") - (match_operand:SI 2 "s_register_operand" "r")))] + [(set (match_operand:SI 0 "s_register_operand" "=l,l,r") + (mult:SI (match_operand:SI 1 "s_register_operand" "0,l,r") + (match_operand:SI 2 "s_register_operand" "l,0,r")))] "TARGET_32BIT && arm_arch6" "mul%?\\t%0, %1, %2" [(set_attr "type" "mul") - (set_attr "predicable" "yes")] + (set_attr "predicable" "yes") + (set_attr "arch" "t2,t2,*") + (set_attr "length" "4") + (set_attr "predicable_short_it" "yes,yes,no")] ) ; Unfortunately with the Thumb the '&'/'0' trick can fails when operands @@ -1684,7 +1816,8 @@ "TARGET_32BIT && arm_arch6" "mla%?\\t%0, %2, %1, %3" [(set_attr "type" "mla") - (set_attr "predicable" "yes")] + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")] ) (define_insn "*mulsi3addsi_compare0" @@ -1760,7 +1893,8 @@ "TARGET_32BIT && arm_arch_thumb2" "mls%?\\t%0, %2, %1, %3" [(set_attr "type" "mla") - (set_attr "predicable" "yes")] + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")] ) (define_expand "maddsidi4" @@ -1796,7 +1930,8 @@ "TARGET_32BIT && arm_arch6" "smlal%?\\t%Q0, %R0, %3, %2" [(set_attr "type" "smlal") - (set_attr "predicable" "yes")] + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")] ) ;; 32x32->64 widening multiply. @@ -1833,7 +1968,8 @@ "TARGET_32BIT && arm_arch6" "smull%?\\t%Q0, %R0, %1, %2" [(set_attr "type" "smull") - (set_attr "predicable" "yes")] + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")] ) (define_expand "umulsidi3" @@ -1864,7 +2000,8 @@ "TARGET_32BIT && arm_arch6" "umull%?\\t%Q0, %R0, %1, %2" [(set_attr "type" "umull") - (set_attr "predicable" "yes")] + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")] ) (define_expand "umaddsidi4" @@ -1900,7 +2037,8 @@ "TARGET_32BIT && arm_arch6" "umlal%?\\t%Q0, %R0, %3, %2" [(set_attr "type" "umlal") - (set_attr "predicable" "yes")] + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")] ) (define_expand "smulsi3_highpart" @@ -1944,7 +2082,8 @@ "TARGET_32BIT && arm_arch6" "smull%?\\t%3, %0, %2, %1" [(set_attr "type" "smull") - (set_attr "predicable" "yes")] + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")] ) (define_expand "umulsi3_highpart" @@ -1988,7 +2127,8 @@ "TARGET_32BIT && arm_arch6" "umull%?\\t%3, %0, %2, %1" [(set_attr "type" "umull") - (set_attr "predicable" "yes")] + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")] ) (define_insn "mulhisi3" @@ -2013,7 +2153,8 @@ "TARGET_DSP_MULTIPLY" "smultb%?\\t%0, %1, %2" [(set_attr "type" "smulxy") - (set_attr "predicable" "yes")] + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")] ) (define_insn "*mulhisi3bt" @@ -2026,7 +2167,8 @@ "TARGET_DSP_MULTIPLY" "smulbt%?\\t%0, %1, %2" [(set_attr "type" "smulxy") - (set_attr "predicable" "yes")] + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")] ) (define_insn "*mulhisi3tt" @@ -2040,7 +2182,8 @@ "TARGET_DSP_MULTIPLY" "smultt%?\\t%0, %1, %2" [(set_attr "type" "smulxy") - (set_attr "predicable" "yes")] + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")] ) (define_insn "maddhisi4" @@ -2053,7 +2196,8 @@ "TARGET_DSP_MULTIPLY" "smlabb%?\\t%0, %1, %2, %3" [(set_attr "type" "smlaxy") - (set_attr "predicable" "yes")] + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")] ) ;; Note: there is no maddhisi4ibt because this one is canonical form @@ -2068,7 +2212,8 @@ "TARGET_DSP_MULTIPLY" "smlatb%?\\t%0, %1, %2, %3" [(set_attr "type" "smlaxy") - (set_attr "predicable" "yes")] + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")] ) (define_insn "*maddhisi4tt" @@ -2083,21 +2228,23 @@ "TARGET_DSP_MULTIPLY" "smlatt%?\\t%0, %1, %2, %3" [(set_attr "type" "smlaxy") - (set_attr "predicable" "yes")] + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")] ) (define_insn "maddhidi4" [(set (match_operand:DI 0 "s_register_operand" "=r") (plus:DI (mult:DI (sign_extend:DI - (match_operand:HI 1 "s_register_operand" "r")) + (match_operand:HI 1 "s_register_operand" "r")) (sign_extend:DI (match_operand:HI 2 "s_register_operand" "r"))) (match_operand:DI 3 "s_register_operand" "0")))] "TARGET_DSP_MULTIPLY" "smlalbb%?\\t%Q0, %R0, %1, %2" [(set_attr "type" "smlalxy") - (set_attr "predicable" "yes")]) + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")]) ;; Note: there is no maddhidi4ibt because this one is canonical form (define_insn "*maddhidi4tb" @@ -2113,7 +2260,8 @@ "TARGET_DSP_MULTIPLY" "smlaltb%?\\t%Q0, %R0, %1, %2" [(set_attr "type" "smlalxy") - (set_attr "predicable" "yes")]) + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")]) (define_insn "*maddhidi4tt" [(set (match_operand:DI 0 "s_register_operand" "=r") @@ -2130,7 +2278,8 @@ "TARGET_DSP_MULTIPLY" "smlaltt%?\\t%Q0, %R0, %1, %2" [(set_attr "type" "smlalxy") - (set_attr "predicable" "yes")]) + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")]) (define_expand "mulsf3" [(set (match_operand:SF 0 "s_register_operand" "") @@ -2415,12 +2564,13 @@ ; ??? Check split length for Thumb-2 (define_insn_and_split "*arm_andsi3_insn" - [(set (match_operand:SI 0 "s_register_operand" "=r,r,r,r") - (and:SI (match_operand:SI 1 "s_register_operand" "r,r,r,r") - (match_operand:SI 2 "reg_or_int_operand" "I,K,r,?n")))] + [(set (match_operand:SI 0 "s_register_operand" "=r,l,r,r,r") + (and:SI (match_operand:SI 1 "s_register_operand" "%r,0,r,r,r") + (match_operand:SI 2 "reg_or_int_operand" "I,l,K,r,?n")))] "TARGET_32BIT" "@ and%?\\t%0, %1, %2 + and%?\\t%0, %1, %2 bic%?\\t%0, %1, #%B2 and%?\\t%0, %1, %2 #" @@ -2434,9 +2584,11 @@ INTVAL (operands[2]), operands[0], operands[1], 0); DONE; " - [(set_attr "length" "4,4,4,16") + [(set_attr "length" "4,4,4,4,16") (set_attr "predicable" "yes") - (set_attr "type" "simple_alu_imm,simple_alu_imm,*,simple_alu_imm")] + (set_attr "predicable_short_it" "no,yes,no,no,no") + (set_attr "type" + "simple_alu_imm,simple_alu_imm,*,*,simple_alu_imm")] ) (define_insn "*thumb1_andsi3_insn" @@ -2486,7 +2638,7 @@ [(set (reg:CC_NOOV CC_REGNUM) (compare:CC_NOOV (zero_extract:SI (match_operand:SI 0 "s_register_operand" "r") - (match_operand 1 "const_int_operand" "n") + (match_operand 1 "const_int_operand" "n") (match_operand 2 "const_int_operand" "n")) (const_int 0)))] "TARGET_32BIT @@ -2502,6 +2654,7 @@ " [(set_attr "conds" "set") (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "simple_alu_imm")] ) @@ -2929,7 +3082,8 @@ "arm_arch_thumb2" "bfc%?\t%0, %2, %1" [(set_attr "length" "4") - (set_attr "predicable" "yes")] + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")] ) (define_insn "insv_t2" @@ -2940,7 +3094,8 @@ "arm_arch_thumb2" "bfi%?\t%0, %3, %2, %1" [(set_attr "length" "4") - (set_attr "predicable" "yes")] + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")] ) ; constants for op 2 will never be given to these patterns. @@ -2967,7 +3122,7 @@ [(set_attr "length" "8") (set_attr "predicable" "yes")] ) - + (define_insn_and_split "*anddi_notzesidi_di" [(set (match_operand:DI 0 "s_register_operand" "=&r,&r") (and:DI (not:DI (zero_extend:DI @@ -2992,9 +3147,10 @@ operands[1] = gen_lowpart (SImode, operands[1]); }" [(set_attr "length" "4,8") - (set_attr "predicable" "yes")] + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")] ) - + (define_insn_and_split "*anddi_notsesidi_di" [(set (match_operand:DI 0 "s_register_operand" "=&r,&r") (and:DI (not:DI (sign_extend:DI @@ -3015,16 +3171,18 @@ operands[1] = gen_lowpart (SImode, operands[1]); }" [(set_attr "length" "8") - (set_attr "predicable" "yes")] + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")] ) - + (define_insn "andsi_notsi_si" [(set (match_operand:SI 0 "s_register_operand" "=r") (and:SI (not:SI (match_operand:SI 2 "s_register_operand" "r")) (match_operand:SI 1 "s_register_operand" "r")))] "TARGET_32BIT" "bic%?\\t%0, %1, %2" - [(set_attr "predicable" "yes")] + [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")] ) (define_insn "thumb1_bicsi3" @@ -3137,7 +3295,8 @@ orr%?\\t%Q0, %Q1, %2 #" [(set_attr "length" "4,8") - (set_attr "predicable" "yes")] + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")] ) (define_insn "*iordi_sesidi_di" @@ -3182,12 +3341,13 @@ ) (define_insn_and_split "*iorsi3_insn" - [(set (match_operand:SI 0 "s_register_operand" "=r,r,r,r") - (ior:SI (match_operand:SI 1 "s_register_operand" "%r,r,r,r") - (match_operand:SI 2 "reg_or_int_operand" "I,K,r,?n")))] + [(set (match_operand:SI 0 "s_register_operand" "=r,l,r,r,r") + (ior:SI (match_operand:SI 1 "s_register_operand" "%r,0,r,r,r") + (match_operand:SI 2 "reg_or_int_operand" "I,l,K,r,?n")))] "TARGET_32BIT" "@ orr%?\\t%0, %1, %2 + orr%?\\t%0, %1, %2 orn%?\\t%0, %1, #%B2 orr%?\\t%0, %1, %2 #" @@ -3197,14 +3357,15 @@ || (TARGET_THUMB2 && const_ok_for_arm (~INTVAL (operands[2]))))" [(clobber (const_int 0))] { - arm_split_constant (IOR, SImode, curr_insn, + arm_split_constant (IOR, SImode, curr_insn, INTVAL (operands[2]), operands[0], operands[1], 0); DONE; } - [(set_attr "length" "4,4,4,16") - (set_attr "arch" "32,t2,32,32") + [(set_attr "length" "4,4,4,4,16") + (set_attr "arch" "32,t2,t2,32,32") (set_attr "predicable" "yes") - (set_attr "type" "simple_alu_imm,simple_alu_imm,*,*")] + (set_attr "predicable_short_it" "no,yes,no,no,no") + (set_attr "type" "simple_alu_imm,*,simple_alu_imm,*,*")] ) (define_insn "*thumb1_iorsi3_insn" @@ -3312,7 +3473,8 @@ eor%?\\t%Q0, %Q1, %2 #" [(set_attr "length" "4,8") - (set_attr "predicable" "yes")] + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")] ) (define_insn "*xordi_sesidi_di" @@ -3355,13 +3517,14 @@ ) (define_insn_and_split "*arm_xorsi3" - [(set (match_operand:SI 0 "s_register_operand" "=r,r,r") - (xor:SI (match_operand:SI 1 "s_register_operand" "%r,r,r") - (match_operand:SI 2 "reg_or_int_operand" "I,r,?n")))] + [(set (match_operand:SI 0 "s_register_operand" "=r,l,r,r") + (xor:SI (match_operand:SI 1 "s_register_operand" "%r,0,r,r") + (match_operand:SI 2 "reg_or_int_operand" "I,l,r,?n")))] "TARGET_32BIT" "@ eor%?\\t%0, %1, %2 eor%?\\t%0, %1, %2 + eor%?\\t%0, %1, %2 #" "TARGET_32BIT && CONST_INT_P (operands[2]) @@ -3372,9 +3535,10 @@ INTVAL (operands[2]), operands[0], operands[1], 0); DONE; } - [(set_attr "length" "4,4,16") + [(set_attr "length" "4,4,4,16") (set_attr "predicable" "yes") - (set_attr "type" "simple_alu_imm,*,*")] + (set_attr "predicable_short_it" "no,yes,no,no") + (set_attr "type" "simple_alu_imm,*,*,*")] ) (define_insn "*thumb1_xorsi3_insn" @@ -3442,7 +3606,8 @@ "" [(set_attr "length" "8") (set_attr "ce_count" "2") - (set_attr "predicable" "yes")] + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")] ) ; ??? Are these four splitters still beneficial when the Thumb-2 bitfield @@ -3578,7 +3743,8 @@ (const_int 0)))] "TARGET_32BIT" "bic%?\\t%0, %1, %1, asr #31" - [(set_attr "predicable" "yes")] + [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")] ) (define_insn "*smax_m1" @@ -3587,7 +3753,8 @@ (const_int -1)))] "TARGET_32BIT" "orr%?\\t%0, %1, %1, asr #31" - [(set_attr "predicable" "yes")] + [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")] ) (define_insn_and_split "*arm_smax_insn" @@ -3635,7 +3802,8 @@ (const_int 0)))] "TARGET_32BIT" "and%?\\t%0, %1, %1, asr #31" - [(set_attr "predicable" "yes")] + [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")] ) (define_insn_and_split "*arm_smin_insn" @@ -4310,6 +4478,7 @@ "TARGET_32BIT" "mvn%?\\t%0, %1%S3" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "shift" "1") (set_attr "insn" "mvn") (set_attr "arch" "32,a") @@ -4523,6 +4692,7 @@ [(set_attr "arch" "t2,any") (set_attr "length" "2,4") (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "yes,no") (set_attr "type" "load1")]) (define_insn "unaligned_loadhis" @@ -4535,6 +4705,7 @@ [(set_attr "arch" "t2,any") (set_attr "length" "2,4") (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "yes,no") (set_attr "type" "load_byte")]) (define_insn "unaligned_loadhiu" @@ -4547,6 +4718,7 @@ [(set_attr "arch" "t2,any") (set_attr "length" "2,4") (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "yes,no") (set_attr "type" "load_byte")]) (define_insn "unaligned_storesi" @@ -4558,6 +4730,7 @@ [(set_attr "arch" "t2,any") (set_attr "length" "2,4") (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "yes,no") (set_attr "type" "store1")]) (define_insn "unaligned_storehi" @@ -4569,6 +4742,7 @@ [(set_attr "arch" "t2,any") (set_attr "length" "2,4") (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "yes,no") (set_attr "type" "store1")]) ;; Unaligned double-word load and store. @@ -4637,7 +4811,8 @@ "arm_arch_thumb2" "sbfx%?\t%0, %1, %3, %2" [(set_attr "length" "4") - (set_attr "predicable" "yes")] + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")] ) (define_insn "extzv_t2" @@ -4648,7 +4823,8 @@ "arm_arch_thumb2" "ubfx%?\t%0, %1, %3, %2" [(set_attr "length" "4") - (set_attr "predicable" "yes")] + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")] ) @@ -4660,6 +4836,7 @@ "TARGET_IDIV" "sdiv%?\t%0, %1, %2" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "sdiv")] ) @@ -4670,6 +4847,7 @@ "TARGET_IDIV" "udiv%?\t%0, %1, %2" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "udiv")] ) @@ -4732,11 +4910,14 @@ ) (define_insn "*arm_negsi2" - [(set (match_operand:SI 0 "s_register_operand" "=r") - (neg:SI (match_operand:SI 1 "s_register_operand" "r")))] + [(set (match_operand:SI 0 "s_register_operand" "=l,r") + (neg:SI (match_operand:SI 1 "s_register_operand" "l,r")))] "TARGET_32BIT" "rsb%?\\t%0, %1, #0" - [(set_attr "predicable" "yes")] + [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "yes,no") + (set_attr "arch" "t2,*") + (set_attr "length" "4")] ) (define_insn "*thumb1_negsi2" @@ -5054,11 +5235,14 @@ ) (define_insn "*arm_one_cmplsi2" - [(set (match_operand:SI 0 "s_register_operand" "=r") - (not:SI (match_operand:SI 1 "s_register_operand" "r")))] + [(set (match_operand:SI 0 "s_register_operand" "=l,r") + (not:SI (match_operand:SI 1 "s_register_operand" "l,r")))] "TARGET_32BIT" "mvn%?\\t%0, %1" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "yes,no") + (set_attr "arch" "t2,*") + (set_attr "length" "4") (set_attr "insn" "mvn")] ) @@ -5384,7 +5568,8 @@ "TARGET_INT_SIMD" "uxtah%?\\t%0, %2, %1" [(set_attr "type" "alu_shift") - (set_attr "predicable" "yes")] + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")] ) (define_expand "zero_extendqisi2" @@ -5477,6 +5662,7 @@ "TARGET_INT_SIMD" "uxtab%?\\t%0, %2, %1" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "insn" "xtab") (set_attr "type" "alu_shift")] ) @@ -5529,7 +5715,8 @@ "TARGET_32BIT" "tst%?\\t%0, #255" [(set_attr "conds" "set") - (set_attr "predicable" "yes")] + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")] ) (define_expand "extendhisi2" @@ -5715,6 +5902,7 @@ ldr%(sh%)\\t%0, %1" [(set_attr "type" "simple_alu_shift,load_byte") (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "pool_range" "*,256") (set_attr "neg_pool_range" "*,244")] ) @@ -5827,7 +6015,8 @@ "sxtab%?\\t%0, %2, %1" [(set_attr "type" "alu_shift") (set_attr "insn" "xtab") - (set_attr "predicable" "yes")] + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")] ) (define_split @@ -6283,6 +6472,7 @@ "arm_arch_thumb2" "movt%?\t%0, #:upper16:%c2" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "length" "4")] ) @@ -7162,26 +7352,28 @@ " ) - (define_insn "*arm_movqi_insn" - [(set (match_operand:QI 0 "nonimmediate_operand" "=r,r,r,l,Uu,r,m") - (match_operand:QI 1 "general_operand" "r,I,K,Uu,l,m,r"))] + [(set (match_operand:QI 0 "nonimmediate_operand" "=r,r,r,l,r,l,Uu,r,m") + (match_operand:QI 1 "general_operand" "r,r,I,Py,K,Uu,l,m,r"))] "TARGET_32BIT && ( register_operand (operands[0], QImode) || register_operand (operands[1], QImode))" "@ mov%?\\t%0, %1 mov%?\\t%0, %1 + mov%?\\t%0, %1 + mov%?\\t%0, %1 mvn%?\\t%0, #%B1 ldr%(b%)\\t%0, %1 str%(b%)\\t%1, %0 ldr%(b%)\\t%0, %1 str%(b%)\\t%1, %0" - [(set_attr "type" "*,simple_alu_imm,simple_alu_imm,load1, store1, load1, store1") - (set_attr "insn" "mov,mov,mvn,*,*,*,*") + [(set_attr "type" "*,*,simple_alu_imm,simple_alu_imm,simple_alu_imm,load1, store1, load1, store1") + (set_attr "insn" "mov,mov,mov,mov,mvn,*,*,*,*") (set_attr "predicable" "yes") - (set_attr "arch" "any,any,any,t2,t2,any,any") - (set_attr "length" "4,4,4,2,2,4,4")] + (set_attr "predicable_short_it" "yes,yes,yes,no,no,no,no,no,no") + (set_attr "arch" "t2,any,any,t2,any,t2,t2,any,any") + (set_attr "length" "2,4,4,2,4,2,2,4,4")] ) (define_insn "*thumb1_movqi_insn" @@ -8851,7 +9043,7 @@ (define_expand "movsfcc" [(set (match_operand:SF 0 "s_register_operand" "") - (if_then_else:SF (match_operand 1 "expandable_comparison_operator" "") + (if_then_else:SF (match_operand 1 "arm_cond_move_operator" "") (match_operand:SF 2 "s_register_operand" "") (match_operand:SF 3 "s_register_operand" "")))] "TARGET_32BIT && TARGET_HARD_FLOAT" @@ -8873,7 +9065,7 @@ (define_expand "movdfcc" [(set (match_operand:DF 0 "s_register_operand" "") - (if_then_else:DF (match_operand 1 "expandable_comparison_operator" "") + (if_then_else:DF (match_operand 1 "arm_cond_move_operator" "") (match_operand:DF 2 "s_register_operand" "") (match_operand:DF 3 "s_register_operand" "")))] "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE" @@ -10110,7 +10302,7 @@ (set (match_dup 0) (const_int 1)))]) (define_insn_and_split "*compare_scc" - [(set (match_operand:SI 0 "s_register_operand" "=r,r") + [(set (match_operand:SI 0 "s_register_operand" "=Ts,Ts") (match_operator:SI 1 "arm_comparison_operator" [(match_operand:SI 2 "s_register_operand" "r,r") (match_operand:SI 3 "arm_add_operand" "rI,L")])) @@ -10620,7 +10812,7 @@ ) (define_insn_and_split "*ior_scc_scc" - [(set (match_operand:SI 0 "s_register_operand" "=r") + [(set (match_operand:SI 0 "s_register_operand" "=Ts") (ior:SI (match_operator:SI 3 "arm_comparison_operator" [(match_operand:SI 1 "s_register_operand" "r") (match_operand:SI 2 "arm_add_operand" "rIL")]) @@ -10658,7 +10850,7 @@ [(match_operand:SI 4 "s_register_operand" "r") (match_operand:SI 5 "arm_add_operand" "rIL")])) (const_int 0))) - (set (match_operand:SI 7 "s_register_operand" "=r") + (set (match_operand:SI 7 "s_register_operand" "=Ts") (ior:SI (match_op_dup 3 [(match_dup 1) (match_dup 2)]) (match_op_dup 6 [(match_dup 4) (match_dup 5)])))] "TARGET_32BIT" @@ -10676,7 +10868,7 @@ (set_attr "length" "16")]) (define_insn_and_split "*and_scc_scc" - [(set (match_operand:SI 0 "s_register_operand" "=r") + [(set (match_operand:SI 0 "s_register_operand" "=Ts") (and:SI (match_operator:SI 3 "arm_comparison_operator" [(match_operand:SI 1 "s_register_operand" "r") (match_operand:SI 2 "arm_add_operand" "rIL")]) @@ -10716,7 +10908,7 @@ [(match_operand:SI 4 "s_register_operand" "r") (match_operand:SI 5 "arm_add_operand" "rIL")])) (const_int 0))) - (set (match_operand:SI 7 "s_register_operand" "=r") + (set (match_operand:SI 7 "s_register_operand" "=Ts") (and:SI (match_op_dup 3 [(match_dup 1) (match_dup 2)]) (match_op_dup 6 [(match_dup 4) (match_dup 5)])))] "TARGET_32BIT" @@ -10738,7 +10930,7 @@ ;; need only zero the value if false (if true, then the value is already ;; correct). (define_insn_and_split "*and_scc_scc_nodom" - [(set (match_operand:SI 0 "s_register_operand" "=&r,&r,&r") + [(set (match_operand:SI 0 "s_register_operand" "=&Ts,&Ts,&Ts") (and:SI (match_operator:SI 3 "arm_comparison_operator" [(match_operand:SI 1 "s_register_operand" "r,r,0") (match_operand:SI 2 "arm_add_operand" "rIL,0,rIL")]) @@ -12586,7 +12778,8 @@ false, true))" "ldrd%?\t%0, %3, [%1, %2]" [(set_attr "type" "load2") - (set_attr "predicable" "yes")]) + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")]) (define_insn "*thumb2_ldrd_base" [(set (match_operand:SI 0 "s_register_operand" "=r") @@ -12600,7 +12793,8 @@ operands[1], 0, false, true))" "ldrd%?\t%0, %2, [%1]" [(set_attr "type" "load2") - (set_attr "predicable" "yes")]) + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")]) (define_insn "*thumb2_ldrd_base_neg" [(set (match_operand:SI 0 "s_register_operand" "=r") @@ -12614,7 +12808,8 @@ operands[1], -4, false, true))" "ldrd%?\t%0, %2, [%1, #-4]" [(set_attr "type" "load2") - (set_attr "predicable" "yes")]) + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")]) (define_insn "*thumb2_strd" [(set (mem:SI (plus:SI (match_operand:SI 0 "s_register_operand" "rk") @@ -12631,7 +12826,8 @@ false, false))" "strd%?\t%2, %4, [%0, %1]" [(set_attr "type" "store2") - (set_attr "predicable" "yes")]) + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")]) (define_insn "*thumb2_strd_base" [(set (mem:SI (match_operand:SI 0 "s_register_operand" "rk")) @@ -12645,7 +12841,8 @@ operands[0], 0, false, false))" "strd%?\t%1, %2, [%0]" [(set_attr "type" "store2") - (set_attr "predicable" "yes")]) + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")]) (define_insn "*thumb2_strd_base_neg" [(set (mem:SI (plus:SI (match_operand:SI 0 "s_register_operand" "rk") @@ -12659,7 +12856,8 @@ operands[0], -4, false, false))" "strd%?\t%1, %2, [%0, #-4]" [(set_attr "type" "store2") - (set_attr "predicable" "yes")]) + (set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no")]) ;; Load the load/store double peephole optimizations. diff --git a/gcc/config/arm/constraints.md b/gcc/config/arm/constraints.md index 13230fae805..251d4975b7c 100644 --- a/gcc/config/arm/constraints.md +++ b/gcc/config/arm/constraints.md @@ -329,6 +329,9 @@ (and (match_code "const_double") (match_test "TARGET_32BIT && TARGET_VFP && vfp3_const_double_for_fract_bits (op)"))) +(define_register_constraint "Ts" "(arm_restrict_it) ? LO_REGS : GENERAL_REGS" + "For arm_restrict_it the core registers @code{r0}-@code{r7}. GENERAL_REGS otherwise.") + (define_memory_constraint "Ua" "@internal An address valid for loading/storing register exclusive" diff --git a/gcc/config/arm/iwmmxt.md b/gcc/config/arm/iwmmxt.md index ac4867b0d29..f1f0a5c5150 100644 --- a/gcc/config/arm/iwmmxt.md +++ b/gcc/config/arm/iwmmxt.md @@ -33,7 +33,7 @@ "TARGET_REALLY_IWMMXT" "tbcstb%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "tbcst")] + (set_attr "type" "wmmx_tbcst")] ) (define_insn "tbcstv4hi" @@ -42,7 +42,7 @@ "TARGET_REALLY_IWMMXT" "tbcsth%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "tbcst")] + (set_attr "type" "wmmx_tbcst")] ) (define_insn "tbcstv2si" @@ -51,7 +51,7 @@ "TARGET_REALLY_IWMMXT" "tbcstw%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "tbcst")] + (set_attr "type" "wmmx_tbcst")] ) (define_insn "iwmmxt_iordi3" @@ -65,7 +65,7 @@ #" [(set_attr "predicable" "yes") (set_attr "length" "4,8,8") - (set_attr "wtype" "wor,none,none")] + (set_attr "type" "wmmx_wor,*,*")] ) (define_insn "iwmmxt_xordi3" @@ -79,7 +79,7 @@ #" [(set_attr "predicable" "yes") (set_attr "length" "4,8,8") - (set_attr "wtype" "wxor,none,none")] + (set_attr "type" "wmmx_wxor,*,*")] ) (define_insn "iwmmxt_anddi3" @@ -93,7 +93,7 @@ #" [(set_attr "predicable" "yes") (set_attr "length" "4,8,8") - (set_attr "wtype" "wand,none,none")] + (set_attr "type" "wmmx_wand,*,*")] ) (define_insn "iwmmxt_nanddi3" @@ -103,7 +103,7 @@ "TARGET_REALLY_IWMMXT" "wandn%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wandn")] + (set_attr "type" "wmmx_wandn")] ) (define_insn "*iwmmxt_arm_movdi" @@ -155,10 +155,9 @@ (const_int 8) (const_int 4))] (const_int 4))) - (set_attr "type" "*,*,*,load2,store2,*,*,*,*,*,r_2_f,f_2_r,ffarithd,f_loadd,f_stored") + (set_attr "type" "*,*,*,load2,store2,wmmx_wmov,wmmx_tmcrr,wmmx_tmrrc,wmmx_wldr,wmmx_wstr,r_2_f,f_2_r,ffarithd,f_loadd,f_stored") (set_attr "arm_pool_range" "*,*,*,1020,*,*,*,*,*,*,*,*,*,1020,*") - (set_attr "arm_neg_pool_range" "*,*,*,1008,*,*,*,*,*,*,*,*,*,1008,*") - (set_attr "wtype" "*,*,*,*,*,wmov,tmcrr,tmrrc,wldr,wstr,*,*,*,*,*")] + (set_attr "arm_neg_pool_range" "*,*,*,1008,*,*,*,*,*,*,*,*,*,1008,*")] ) (define_insn "*iwmmxt_movsi_insn" @@ -188,7 +187,7 @@ default: gcc_unreachable (); }" - [(set_attr "type" "*,*,*,*,load1,store1,*,*,*,*,r_2_f,f_2_r,fcpys,f_loads,f_stores") + [(set_attr "type" "*,*,*,*,load1,store1,wmmx_tmcr,wmmx_tmrc,wmmx_wldr,wmmx_wstr,r_2_f,f_2_r,fcpys,f_loads,f_stores") (set_attr "length" "*,*,*,*,*, *,*,*, 16, *,*,*,*,*,*") (set_attr "pool_range" "*,*,*,*,4096, *,*,*,1024, *,*,*,*,1020,*") (set_attr "neg_pool_range" "*,*,*,*,4084, *,*,*, *, 1012,*,*,*,1008,*") @@ -200,8 +199,7 @@ ;; Also - we have to pretend that these insns clobber the condition code ;; bits as otherwise arm_final_prescan_insn() will try to conditionalize ;; them. - (set_attr "conds" "clob") - (set_attr "wtype" "*,*,*,*,*,*,tmcr,tmrc,wldr,wstr,*,*,*,*,*")] + (set_attr "conds" "clob")] ) ;; Because iwmmxt_movsi_insn is not predicable, we provide the @@ -249,10 +247,9 @@ }" [(set_attr "predicable" "yes") (set_attr "length" "4, 4, 4,4,4,8, 8,8") - (set_attr "type" "*,*,*,*,*,*,load1,store1") + (set_attr "type" "wmmx_wmov,wmmx_wstr,wmmx_wldr,wmmx_tmrrc,wmmx_tmcrr,*,load1,store1") (set_attr "pool_range" "*, *, 256,*,*,*, 256,*") - (set_attr "neg_pool_range" "*, *, 244,*,*,*, 244,*") - (set_attr "wtype" "wmov,wstr,wldr,tmrrc,tmcrr,*,*,*")] + (set_attr "neg_pool_range" "*, *, 244,*,*,*, 244,*")] ) (define_expand "iwmmxt_setwcgr0" @@ -318,7 +315,7 @@ "TARGET_REALLY_IWMMXT" "wand\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wand")] + (set_attr "type" "wmmx_wand")] ) (define_insn "*ior<mode>3_iwmmxt" @@ -328,7 +325,7 @@ "TARGET_REALLY_IWMMXT" "wor\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wor")] + (set_attr "type" "wmmx_wor")] ) (define_insn "*xor<mode>3_iwmmxt" @@ -338,7 +335,7 @@ "TARGET_REALLY_IWMMXT" "wxor\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wxor")] + (set_attr "type" "wmmx_wxor")] ) @@ -351,7 +348,7 @@ "TARGET_REALLY_IWMMXT" "wadd<MMX_char>%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wadd")] + (set_attr "type" "wmmx_wadd")] ) (define_insn "ssaddv8qi3" @@ -361,7 +358,7 @@ "TARGET_REALLY_IWMMXT" "waddbss%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wadd")] + (set_attr "type" "wmmx_wadd")] ) (define_insn "ssaddv4hi3" @@ -371,7 +368,7 @@ "TARGET_REALLY_IWMMXT" "waddhss%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wadd")] + (set_attr "type" "wmmx_wadd")] ) (define_insn "ssaddv2si3" @@ -381,7 +378,7 @@ "TARGET_REALLY_IWMMXT" "waddwss%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wadd")] + (set_attr "type" "wmmx_wadd")] ) (define_insn "usaddv8qi3" @@ -391,7 +388,7 @@ "TARGET_REALLY_IWMMXT" "waddbus%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wadd")] + (set_attr "type" "wmmx_wadd")] ) (define_insn "usaddv4hi3" @@ -401,7 +398,7 @@ "TARGET_REALLY_IWMMXT" "waddhus%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wadd")] + (set_attr "type" "wmmx_wadd")] ) (define_insn "usaddv2si3" @@ -411,7 +408,7 @@ "TARGET_REALLY_IWMMXT" "waddwus%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wadd")] + (set_attr "type" "wmmx_wadd")] ) (define_insn "*sub<mode>3_iwmmxt" @@ -421,7 +418,7 @@ "TARGET_REALLY_IWMMXT" "wsub<MMX_char>%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wsub")] + (set_attr "type" "wmmx_wsub")] ) (define_insn "sssubv8qi3" @@ -431,7 +428,7 @@ "TARGET_REALLY_IWMMXT" "wsubbss%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wsub")] + (set_attr "type" "wmmx_wsub")] ) (define_insn "sssubv4hi3" @@ -441,7 +438,7 @@ "TARGET_REALLY_IWMMXT" "wsubhss%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wsub")] + (set_attr "type" "wmmx_wsub")] ) (define_insn "sssubv2si3" @@ -451,7 +448,7 @@ "TARGET_REALLY_IWMMXT" "wsubwss%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wsub")] + (set_attr "type" "wmmx_wsub")] ) (define_insn "ussubv8qi3" @@ -461,7 +458,7 @@ "TARGET_REALLY_IWMMXT" "wsubbus%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wsub")] + (set_attr "type" "wmmx_wsub")] ) (define_insn "ussubv4hi3" @@ -471,7 +468,7 @@ "TARGET_REALLY_IWMMXT" "wsubhus%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wsub")] + (set_attr "type" "wmmx_wsub")] ) (define_insn "ussubv2si3" @@ -481,7 +478,7 @@ "TARGET_REALLY_IWMMXT" "wsubwus%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wsub")] + (set_attr "type" "wmmx_wsub")] ) (define_insn "*mulv4hi3_iwmmxt" @@ -491,7 +488,7 @@ "TARGET_REALLY_IWMMXT" "wmulul%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmul")] + (set_attr "type" "wmmx_wmul")] ) (define_insn "smulv4hi3_highpart" @@ -504,7 +501,7 @@ "TARGET_REALLY_IWMMXT" "wmulsm%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmul")] + (set_attr "type" "wmmx_wmul")] ) (define_insn "umulv4hi3_highpart" @@ -517,7 +514,7 @@ "TARGET_REALLY_IWMMXT" "wmulum%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmul")] + (set_attr "type" "wmmx_wmul")] ) (define_insn "iwmmxt_wmacs" @@ -528,7 +525,7 @@ "TARGET_REALLY_IWMMXT" "wmacs%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmac")] + (set_attr "type" "wmmx_wmac")] ) (define_insn "iwmmxt_wmacsz" @@ -538,7 +535,7 @@ "TARGET_REALLY_IWMMXT" "wmacsz%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmac")] + (set_attr "type" "wmmx_wmac")] ) (define_insn "iwmmxt_wmacu" @@ -549,7 +546,7 @@ "TARGET_REALLY_IWMMXT" "wmacu%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmac")] + (set_attr "type" "wmmx_wmac")] ) (define_insn "iwmmxt_wmacuz" @@ -559,7 +556,7 @@ "TARGET_REALLY_IWMMXT" "wmacuz%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmac")] + (set_attr "type" "wmmx_wmac")] ) ;; Same as xordi3, but don't show input operands so that we don't think @@ -570,7 +567,7 @@ "TARGET_REALLY_IWMMXT" "wxor%?\\t%0, %0, %0" [(set_attr "predicable" "yes") - (set_attr "wtype" "wxor")] + (set_attr "type" "wmmx_wxor")] ) ;; Seems like cse likes to generate these, so we have to support them. @@ -584,7 +581,7 @@ "TARGET_REALLY_IWMMXT" "wxor%?\\t%0, %0, %0" [(set_attr "predicable" "yes") - (set_attr "wtype" "wxor")] + (set_attr "type" "wmmx_wxor")] ) (define_insn "iwmmxt_clrv4hi" @@ -594,7 +591,7 @@ "TARGET_REALLY_IWMMXT" "wxor%?\\t%0, %0, %0" [(set_attr "predicable" "yes") - (set_attr "wtype" "wxor")] + (set_attr "type" "wmmx_wxor")] ) (define_insn "iwmmxt_clrv2si" @@ -603,7 +600,7 @@ "TARGET_REALLY_IWMMXT" "wxor%?\\t%0, %0, %0" [(set_attr "predicable" "yes") - (set_attr "wtype" "wxor")] + (set_attr "type" "wmmx_wxor")] ) ;; Unsigned averages/sum of absolute differences @@ -627,7 +624,7 @@ "TARGET_REALLY_IWMMXT" "wavg2br%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wavg2")] + (set_attr "type" "wmmx_wavg2")] ) (define_insn "iwmmxt_uavgrndv4hi3" @@ -645,7 +642,7 @@ "TARGET_REALLY_IWMMXT" "wavg2hr%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wavg2")] + (set_attr "type" "wmmx_wavg2")] ) (define_insn "iwmmxt_uavgv8qi3" @@ -658,7 +655,7 @@ "TARGET_REALLY_IWMMXT" "wavg2b%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wavg2")] + (set_attr "type" "wmmx_wavg2")] ) (define_insn "iwmmxt_uavgv4hi3" @@ -671,7 +668,7 @@ "TARGET_REALLY_IWMMXT" "wavg2h%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wavg2")] + (set_attr "type" "wmmx_wavg2")] ) ;; Insert/extract/shuffle @@ -690,7 +687,7 @@ } " [(set_attr "predicable" "yes") - (set_attr "wtype" "tinsr")] + (set_attr "type" "wmmx_tinsr")] ) (define_insn "iwmmxt_tinsrh" @@ -707,7 +704,7 @@ } " [(set_attr "predicable" "yes") - (set_attr "wtype" "tinsr")] + (set_attr "type" "wmmx_tinsr")] ) (define_insn "iwmmxt_tinsrw" @@ -724,7 +721,7 @@ } " [(set_attr "predicable" "yes") - (set_attr "wtype" "tinsr")] + (set_attr "type" "wmmx_tinsr")] ) (define_insn "iwmmxt_textrmub" @@ -735,7 +732,7 @@ "TARGET_REALLY_IWMMXT" "textrmub%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "textrm")] + (set_attr "type" "wmmx_textrm")] ) (define_insn "iwmmxt_textrmsb" @@ -746,7 +743,7 @@ "TARGET_REALLY_IWMMXT" "textrmsb%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "textrm")] + (set_attr "type" "wmmx_textrm")] ) (define_insn "iwmmxt_textrmuh" @@ -757,7 +754,7 @@ "TARGET_REALLY_IWMMXT" "textrmuh%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "textrm")] + (set_attr "type" "wmmx_textrm")] ) (define_insn "iwmmxt_textrmsh" @@ -768,7 +765,7 @@ "TARGET_REALLY_IWMMXT" "textrmsh%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "textrm")] + (set_attr "type" "wmmx_textrm")] ) ;; There are signed/unsigned variants of this instruction, but they are @@ -780,7 +777,7 @@ "TARGET_REALLY_IWMMXT" "textrmsw%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "textrm")] + (set_attr "type" "wmmx_textrm")] ) (define_insn "iwmmxt_wshufh" @@ -790,7 +787,7 @@ "TARGET_REALLY_IWMMXT" "wshufh%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wshufh")] + (set_attr "type" "wmmx_wshufh")] ) ;; Mask-generating comparisons @@ -812,7 +809,7 @@ "TARGET_REALLY_IWMMXT" "wcmpeqb%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wcmpeq")] + (set_attr "type" "wmmx_wcmpeq")] ) (define_insn "eqv4hi3" @@ -823,7 +820,7 @@ "TARGET_REALLY_IWMMXT" "wcmpeqh%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wcmpeq")] + (set_attr "type" "wmmx_wcmpeq")] ) (define_insn "eqv2si3" @@ -835,7 +832,7 @@ "TARGET_REALLY_IWMMXT" "wcmpeqw%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wcmpeq")] + (set_attr "type" "wmmx_wcmpeq")] ) (define_insn "gtuv8qi3" @@ -846,7 +843,7 @@ "TARGET_REALLY_IWMMXT" "wcmpgtub%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wcmpgt")] + (set_attr "type" "wmmx_wcmpgt")] ) (define_insn "gtuv4hi3" @@ -857,7 +854,7 @@ "TARGET_REALLY_IWMMXT" "wcmpgtuh%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wcmpgt")] + (set_attr "type" "wmmx_wcmpgt")] ) (define_insn "gtuv2si3" @@ -868,7 +865,7 @@ "TARGET_REALLY_IWMMXT" "wcmpgtuw%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wcmpgt")] + (set_attr "type" "wmmx_wcmpgt")] ) (define_insn "gtv8qi3" @@ -879,7 +876,7 @@ "TARGET_REALLY_IWMMXT" "wcmpgtsb%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wcmpgt")] + (set_attr "type" "wmmx_wcmpgt")] ) (define_insn "gtv4hi3" @@ -890,7 +887,7 @@ "TARGET_REALLY_IWMMXT" "wcmpgtsh%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wcmpgt")] + (set_attr "type" "wmmx_wcmpgt")] ) (define_insn "gtv2si3" @@ -901,7 +898,7 @@ "TARGET_REALLY_IWMMXT" "wcmpgtsw%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wcmpgt")] + (set_attr "type" "wmmx_wcmpgt")] ) ;; Max/min insns @@ -913,7 +910,7 @@ "TARGET_REALLY_IWMMXT" "wmaxs<MMX_char>%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmax")] + (set_attr "type" "wmmx_wmax")] ) (define_insn "*umax<mode>3_iwmmxt" @@ -923,7 +920,7 @@ "TARGET_REALLY_IWMMXT" "wmaxu<MMX_char>%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmax")] + (set_attr "type" "wmmx_wmax")] ) (define_insn "*smin<mode>3_iwmmxt" @@ -933,7 +930,7 @@ "TARGET_REALLY_IWMMXT" "wmins<MMX_char>%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmin")] + (set_attr "type" "wmmx_wmin")] ) (define_insn "*umin<mode>3_iwmmxt" @@ -943,7 +940,7 @@ "TARGET_REALLY_IWMMXT" "wminu<MMX_char>%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmin")] + (set_attr "type" "wmmx_wmin")] ) ;; Pack/unpack insns. @@ -956,7 +953,7 @@ "TARGET_REALLY_IWMMXT" "wpackhss%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wpack")] + (set_attr "type" "wmmx_wpack")] ) (define_insn "iwmmxt_wpackwss" @@ -967,7 +964,7 @@ "TARGET_REALLY_IWMMXT" "wpackwss%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wpack")] + (set_attr "type" "wmmx_wpack")] ) (define_insn "iwmmxt_wpackdss" @@ -978,7 +975,7 @@ "TARGET_REALLY_IWMMXT" "wpackdss%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wpack")] + (set_attr "type" "wmmx_wpack")] ) (define_insn "iwmmxt_wpackhus" @@ -989,7 +986,7 @@ "TARGET_REALLY_IWMMXT" "wpackhus%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wpack")] + (set_attr "type" "wmmx_wpack")] ) (define_insn "iwmmxt_wpackwus" @@ -1000,7 +997,7 @@ "TARGET_REALLY_IWMMXT" "wpackwus%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wpack")] + (set_attr "type" "wmmx_wpack")] ) (define_insn "iwmmxt_wpackdus" @@ -1011,7 +1008,7 @@ "TARGET_REALLY_IWMMXT" "wpackdus%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wpack")] + (set_attr "type" "wmmx_wpack")] ) (define_insn "iwmmxt_wunpckihb" @@ -1039,7 +1036,7 @@ "TARGET_REALLY_IWMMXT" "wunpckihb%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckih")] + (set_attr "type" "wmmx_wunpckih")] ) (define_insn "iwmmxt_wunpckihh" @@ -1059,7 +1056,7 @@ "TARGET_REALLY_IWMMXT" "wunpckihh%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckih")] + (set_attr "type" "wmmx_wunpckih")] ) (define_insn "iwmmxt_wunpckihw" @@ -1075,7 +1072,7 @@ "TARGET_REALLY_IWMMXT" "wunpckihw%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckih")] + (set_attr "type" "wmmx_wunpckih")] ) (define_insn "iwmmxt_wunpckilb" @@ -1103,7 +1100,7 @@ "TARGET_REALLY_IWMMXT" "wunpckilb%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckil")] + (set_attr "type" "wmmx_wunpckil")] ) (define_insn "iwmmxt_wunpckilh" @@ -1123,7 +1120,7 @@ "TARGET_REALLY_IWMMXT" "wunpckilh%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckil")] + (set_attr "type" "wmmx_wunpckil")] ) (define_insn "iwmmxt_wunpckilw" @@ -1139,7 +1136,7 @@ "TARGET_REALLY_IWMMXT" "wunpckilw%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckil")] + (set_attr "type" "wmmx_wunpckil")] ) (define_insn "iwmmxt_wunpckehub" @@ -1151,7 +1148,7 @@ "TARGET_REALLY_IWMMXT" "wunpckehub%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckeh")] + (set_attr "type" "wmmx_wunpckeh")] ) (define_insn "iwmmxt_wunpckehuh" @@ -1162,7 +1159,7 @@ "TARGET_REALLY_IWMMXT" "wunpckehuh%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckeh")] + (set_attr "type" "wmmx_wunpckeh")] ) (define_insn "iwmmxt_wunpckehuw" @@ -1173,7 +1170,7 @@ "TARGET_REALLY_IWMMXT" "wunpckehuw%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckeh")] + (set_attr "type" "wmmx_wunpckeh")] ) (define_insn "iwmmxt_wunpckehsb" @@ -1185,7 +1182,7 @@ "TARGET_REALLY_IWMMXT" "wunpckehsb%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckeh")] + (set_attr "type" "wmmx_wunpckeh")] ) (define_insn "iwmmxt_wunpckehsh" @@ -1196,7 +1193,7 @@ "TARGET_REALLY_IWMMXT" "wunpckehsh%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckeh")] + (set_attr "type" "wmmx_wunpckeh")] ) (define_insn "iwmmxt_wunpckehsw" @@ -1207,7 +1204,7 @@ "TARGET_REALLY_IWMMXT" "wunpckehsw%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckeh")] + (set_attr "type" "wmmx_wunpckeh")] ) (define_insn "iwmmxt_wunpckelub" @@ -1219,7 +1216,7 @@ "TARGET_REALLY_IWMMXT" "wunpckelub%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckel")] + (set_attr "type" "wmmx_wunpckel")] ) (define_insn "iwmmxt_wunpckeluh" @@ -1230,7 +1227,7 @@ "TARGET_REALLY_IWMMXT" "wunpckeluh%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckel")] + (set_attr "type" "wmmx_wunpckel")] ) (define_insn "iwmmxt_wunpckeluw" @@ -1241,7 +1238,7 @@ "TARGET_REALLY_IWMMXT" "wunpckeluw%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckel")] + (set_attr "type" "wmmx_wunpckel")] ) (define_insn "iwmmxt_wunpckelsb" @@ -1253,7 +1250,7 @@ "TARGET_REALLY_IWMMXT" "wunpckelsb%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckel")] + (set_attr "type" "wmmx_wunpckel")] ) (define_insn "iwmmxt_wunpckelsh" @@ -1264,7 +1261,7 @@ "TARGET_REALLY_IWMMXT" "wunpckelsh%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckel")] + (set_attr "type" "wmmx_wunpckel")] ) (define_insn "iwmmxt_wunpckelsw" @@ -1275,7 +1272,7 @@ "TARGET_REALLY_IWMMXT" "wunpckelsw%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wunpckel")] + (set_attr "type" "wmmx_wunpckel")] ) ;; Shifts @@ -1298,7 +1295,7 @@ " [(set_attr "predicable" "yes") (set_attr "arch" "*, iwmmxt2") - (set_attr "wtype" "wror, wror")] + (set_attr "type" "wmmx_wror, wmmx_wror")] ) (define_insn "ashr<mode>3_iwmmxt" @@ -1319,7 +1316,7 @@ " [(set_attr "predicable" "yes") (set_attr "arch" "*, iwmmxt2") - (set_attr "wtype" "wsra, wsra")] + (set_attr "type" "wmmx_wsra, wmmx_wsra")] ) (define_insn "lshr<mode>3_iwmmxt" @@ -1340,7 +1337,7 @@ " [(set_attr "predicable" "yes") (set_attr "arch" "*, iwmmxt2") - (set_attr "wtype" "wsrl, wsrl")] + (set_attr "type" "wmmx_wsrl, wmmx_wsrl")] ) (define_insn "ashl<mode>3_iwmmxt" @@ -1361,7 +1358,7 @@ " [(set_attr "predicable" "yes") (set_attr "arch" "*, iwmmxt2") - (set_attr "wtype" "wsll, wsll")] + (set_attr "type" "wmmx_wsll, wmmx_wsll")] ) (define_insn "ror<mode>3_di" @@ -1382,7 +1379,7 @@ " [(set_attr "predicable" "yes") (set_attr "arch" "*, iwmmxt2") - (set_attr "wtype" "wror, wror")] + (set_attr "type" "wmmx_wror, wmmx_wror")] ) (define_insn "ashr<mode>3_di" @@ -1403,7 +1400,7 @@ " [(set_attr "predicable" "yes") (set_attr "arch" "*, iwmmxt2") - (set_attr "wtype" "wsra, wsra")] + (set_attr "type" "wmmx_wsra, wmmx_wsra")] ) (define_insn "lshr<mode>3_di" @@ -1424,7 +1421,7 @@ " [(set_attr "predicable" "yes") (set_attr "arch" "*, iwmmxt2") - (set_attr "wtype" "wsrl, wsrl")] + (set_attr "type" "wmmx_wsrl, wmmx_wsrl")] ) (define_insn "ashl<mode>3_di" @@ -1445,7 +1442,7 @@ " [(set_attr "predicable" "yes") (set_attr "arch" "*, iwmmxt2") - (set_attr "wtype" "wsll, wsll")] + (set_attr "type" "wmmx_wsll, wmmx_wsll")] ) (define_insn "iwmmxt_wmadds" @@ -1464,7 +1461,7 @@ "TARGET_REALLY_IWMMXT" "wmadds%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmadd")] + (set_attr "type" "wmmx_wmadd")] ) (define_insn "iwmmxt_wmaddu" @@ -1483,7 +1480,7 @@ "TARGET_REALLY_IWMMXT" "wmaddu%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmadd")] + (set_attr "type" "wmmx_wmadd")] ) (define_insn "iwmmxt_tmia" @@ -1496,7 +1493,7 @@ "TARGET_REALLY_IWMMXT" "tmia%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "tmia")] + (set_attr "type" "wmmx_tmia")] ) (define_insn "iwmmxt_tmiaph" @@ -1514,7 +1511,7 @@ "TARGET_REALLY_IWMMXT" "tmiaph%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "tmiaph")] + (set_attr "type" "wmmx_tmiaph")] ) (define_insn "iwmmxt_tmiabb" @@ -1527,7 +1524,7 @@ "TARGET_REALLY_IWMMXT" "tmiabb%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "tmiaxy")] + (set_attr "type" "wmmx_tmiaxy")] ) (define_insn "iwmmxt_tmiatb" @@ -1544,7 +1541,7 @@ "TARGET_REALLY_IWMMXT" "tmiatb%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "tmiaxy")] + (set_attr "type" "wmmx_tmiaxy")] ) (define_insn "iwmmxt_tmiabt" @@ -1561,7 +1558,7 @@ "TARGET_REALLY_IWMMXT" "tmiabt%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "tmiaxy")] + (set_attr "type" "wmmx_tmiaxy")] ) (define_insn "iwmmxt_tmiatt" @@ -1580,7 +1577,7 @@ "TARGET_REALLY_IWMMXT" "tmiatt%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "tmiaxy")] + (set_attr "type" "wmmx_tmiaxy")] ) (define_insn "iwmmxt_tmovmskb" @@ -1589,7 +1586,7 @@ "TARGET_REALLY_IWMMXT" "tmovmskb%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "tmovmsk")] + (set_attr "type" "wmmx_tmovmsk")] ) (define_insn "iwmmxt_tmovmskh" @@ -1598,7 +1595,7 @@ "TARGET_REALLY_IWMMXT" "tmovmskh%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "tmovmsk")] + (set_attr "type" "wmmx_tmovmsk")] ) (define_insn "iwmmxt_tmovmskw" @@ -1607,7 +1604,7 @@ "TARGET_REALLY_IWMMXT" "tmovmskw%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "tmovmsk")] + (set_attr "type" "wmmx_tmovmsk")] ) (define_insn "iwmmxt_waccb" @@ -1616,7 +1613,7 @@ "TARGET_REALLY_IWMMXT" "waccb%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wacc")] + (set_attr "type" "wmmx_wacc")] ) (define_insn "iwmmxt_wacch" @@ -1625,7 +1622,7 @@ "TARGET_REALLY_IWMMXT" "wacch%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wacc")] + (set_attr "type" "wmmx_wacc")] ) (define_insn "iwmmxt_waccw" @@ -1634,7 +1631,7 @@ "TARGET_REALLY_IWMMXT" "waccw%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wacc")] + (set_attr "type" "wmmx_wacc")] ) ;; use unspec here to prevent 8 * imm to be optimized by cse @@ -1651,7 +1648,7 @@ "TARGET_REALLY_IWMMXT" "waligni%?\\t%0, %1, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "waligni")] + (set_attr "type" "wmmx_waligni")] ) (define_insn "iwmmxt_walignr" @@ -1666,7 +1663,7 @@ "TARGET_REALLY_IWMMXT" "walignr%U3%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "walignr")] + (set_attr "type" "wmmx_walignr")] ) (define_insn "iwmmxt_walignr0" @@ -1681,7 +1678,7 @@ "TARGET_REALLY_IWMMXT" "walignr0%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "walignr")] + (set_attr "type" "wmmx_walignr")] ) (define_insn "iwmmxt_walignr1" @@ -1696,7 +1693,7 @@ "TARGET_REALLY_IWMMXT" "walignr1%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "walignr")] + (set_attr "type" "wmmx_walignr")] ) (define_insn "iwmmxt_walignr2" @@ -1711,7 +1708,7 @@ "TARGET_REALLY_IWMMXT" "walignr2%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "walignr")] + (set_attr "type" "wmmx_walignr")] ) (define_insn "iwmmxt_walignr3" @@ -1726,7 +1723,7 @@ "TARGET_REALLY_IWMMXT" "walignr3%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "walignr")] + (set_attr "type" "wmmx_walignr")] ) (define_insn "iwmmxt_wsadb" @@ -1738,7 +1735,7 @@ "TARGET_REALLY_IWMMXT" "wsadb%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wsad")] + (set_attr "type" "wmmx_wsad")] ) (define_insn "iwmmxt_wsadh" @@ -1750,7 +1747,7 @@ "TARGET_REALLY_IWMMXT" "wsadh%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wsad")] + (set_attr "type" "wmmx_wsad")] ) (define_insn "iwmmxt_wsadbz" @@ -1760,7 +1757,7 @@ "TARGET_REALLY_IWMMXT" "wsadbz%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wsad")] + (set_attr "type" "wmmx_wsad")] ) (define_insn "iwmmxt_wsadhz" @@ -1770,7 +1767,7 @@ "TARGET_REALLY_IWMMXT" "wsadhz%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wsad")] + (set_attr "type" "wmmx_wsad")] ) (include "iwmmxt2.md") diff --git a/gcc/config/arm/iwmmxt2.md b/gcc/config/arm/iwmmxt2.md index 5e44658dbf5..27a45f95b2e 100644 --- a/gcc/config/arm/iwmmxt2.md +++ b/gcc/config/arm/iwmmxt2.md @@ -24,7 +24,7 @@ "TARGET_REALLY_IWMMXT" "wabs<MMX_char>%?\\t%0, %1" [(set_attr "predicable" "yes") - (set_attr "wtype" "wabs")] + (set_attr "type" "wmmx_wabs")] ) (define_insn "iwmmxt_wabsdiffb" @@ -37,7 +37,7 @@ "TARGET_REALLY_IWMMXT" "wabsdiffb%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wabsdiff")] + (set_attr "type" "wmmx_wabsdiff")] ) (define_insn "iwmmxt_wabsdiffh" @@ -50,7 +50,7 @@ "TARGET_REALLY_IWMMXT" "wabsdiffh%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wabsdiff")] + (set_attr "type" "wmmx_wabsdiff")] ) (define_insn "iwmmxt_wabsdiffw" @@ -63,7 +63,7 @@ "TARGET_REALLY_IWMMXT" "wabsdiffw%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wabsdiff")] + (set_attr "type" "wmmx_wabsdiff")] ) (define_insn "iwmmxt_waddsubhx" @@ -81,7 +81,7 @@ "TARGET_REALLY_IWMMXT" "waddsubhx%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "waddsubhx")] + (set_attr "type" "wmmx_waddsubhx")] ) (define_insn "iwmmxt_wsubaddhx" @@ -99,7 +99,7 @@ "TARGET_REALLY_IWMMXT" "wsubaddhx%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wsubaddhx")] + (set_attr "type" "wmmx_wsubaddhx")] ) (define_insn "addc<mode>3" @@ -111,7 +111,7 @@ "TARGET_REALLY_IWMMXT" "wadd<MMX_char>c%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wadd")] + (set_attr "type" "wmmx_wadd")] ) (define_insn "iwmmxt_avg4" @@ -143,7 +143,7 @@ "TARGET_REALLY_IWMMXT" "wavg4%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wavg4")] + (set_attr "type" "wmmx_wavg4")] ) (define_insn "iwmmxt_avg4r" @@ -175,7 +175,7 @@ "TARGET_REALLY_IWMMXT" "wavg4r%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wavg4")] + (set_attr "type" "wmmx_wavg4")] ) (define_insn "iwmmxt_wmaddsx" @@ -194,7 +194,7 @@ "TARGET_REALLY_IWMMXT" "wmaddsx%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmadd")] + (set_attr "type" "wmmx_wmadd")] ) (define_insn "iwmmxt_wmaddux" @@ -213,7 +213,7 @@ "TARGET_REALLY_IWMMXT" "wmaddux%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmadd")] + (set_attr "type" "wmmx_wmadd")] ) (define_insn "iwmmxt_wmaddsn" @@ -232,7 +232,7 @@ "TARGET_REALLY_IWMMXT" "wmaddsn%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmadd")] + (set_attr "type" "wmmx_wmadd")] ) (define_insn "iwmmxt_wmaddun" @@ -251,7 +251,7 @@ "TARGET_REALLY_IWMMXT" "wmaddun%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmadd")] + (set_attr "type" "wmmx_wmadd")] ) (define_insn "iwmmxt_wmulwsm" @@ -265,7 +265,7 @@ "TARGET_REALLY_IWMMXT" "wmulwsm%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmulw")] + (set_attr "type" "wmmx_wmulw")] ) (define_insn "iwmmxt_wmulwum" @@ -279,7 +279,7 @@ "TARGET_REALLY_IWMMXT" "wmulwum%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmulw")] + (set_attr "type" "wmmx_wmulw")] ) (define_insn "iwmmxt_wmulsmr" @@ -297,7 +297,7 @@ "TARGET_REALLY_IWMMXT" "wmulsmr%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmul")] + (set_attr "type" "wmmx_wmul")] ) (define_insn "iwmmxt_wmulumr" @@ -316,7 +316,7 @@ "TARGET_REALLY_IWMMXT" "wmulumr%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmul")] + (set_attr "type" "wmmx_wmul")] ) (define_insn "iwmmxt_wmulwsmr" @@ -333,7 +333,7 @@ "TARGET_REALLY_IWMMXT" "wmulwsmr%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmul")] + (set_attr "type" "wmmx_wmul")] ) (define_insn "iwmmxt_wmulwumr" @@ -350,7 +350,7 @@ "TARGET_REALLY_IWMMXT" "wmulwumr%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmulw")] + (set_attr "type" "wmmx_wmulw")] ) (define_insn "iwmmxt_wmulwl" @@ -361,7 +361,7 @@ "TARGET_REALLY_IWMMXT" "wmulwl%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmulw")] + (set_attr "type" "wmmx_wmulw")] ) (define_insn "iwmmxt_wqmulm" @@ -371,7 +371,7 @@ "TARGET_REALLY_IWMMXT" "wqmulm%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wqmulm")] + (set_attr "type" "wmmx_wqmulm")] ) (define_insn "iwmmxt_wqmulwm" @@ -381,7 +381,7 @@ "TARGET_REALLY_IWMMXT" "wqmulwm%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wqmulwm")] + (set_attr "type" "wmmx_wqmulwm")] ) (define_insn "iwmmxt_wqmulmr" @@ -391,7 +391,7 @@ "TARGET_REALLY_IWMMXT" "wqmulmr%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wqmulm")] + (set_attr "type" "wmmx_wqmulm")] ) (define_insn "iwmmxt_wqmulwmr" @@ -401,7 +401,7 @@ "TARGET_REALLY_IWMMXT" "wqmulwmr%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "wqmulwm")] + (set_attr "type" "wmmx_wqmulwm")] ) (define_insn "iwmmxt_waddbhusm" @@ -417,7 +417,7 @@ "TARGET_REALLY_IWMMXT" "waddbhusm%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "waddbhus")] + (set_attr "type" "wmmx_waddbhus")] ) (define_insn "iwmmxt_waddbhusl" @@ -433,7 +433,7 @@ "TARGET_REALLY_IWMMXT" "waddbhusl%?\\t%0, %1, %2" [(set_attr "predicable" "yes") - (set_attr "wtype" "waddbhus")] + (set_attr "type" "wmmx_waddbhus")] ) (define_insn "iwmmxt_wqmiabb" @@ -446,7 +446,7 @@ "TARGET_REALLY_IWMMXT" "wqmiabb%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wqmiaxy")] + (set_attr "type" "wmmx_wqmiaxy")] ) (define_insn "iwmmxt_wqmiabt" @@ -459,7 +459,7 @@ "TARGET_REALLY_IWMMXT" "wqmiabt%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wqmiaxy")] + (set_attr "type" "wmmx_wqmiaxy")] ) (define_insn "iwmmxt_wqmiatb" @@ -472,7 +472,7 @@ "TARGET_REALLY_IWMMXT" "wqmiatb%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wqmiaxy")] + (set_attr "type" "wmmx_wqmiaxy")] ) (define_insn "iwmmxt_wqmiatt" @@ -485,7 +485,7 @@ "TARGET_REALLY_IWMMXT" "wqmiatt%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wqmiaxy")] + (set_attr "type" "wmmx_wqmiaxy")] ) (define_insn "iwmmxt_wqmiabbn" @@ -498,7 +498,7 @@ "TARGET_REALLY_IWMMXT" "wqmiabbn%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wqmiaxy")] + (set_attr "type" "wmmx_wqmiaxy")] ) (define_insn "iwmmxt_wqmiabtn" @@ -511,7 +511,7 @@ "TARGET_REALLY_IWMMXT" "wqmiabtn%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wqmiaxy")] + (set_attr "type" "wmmx_wqmiaxy")] ) (define_insn "iwmmxt_wqmiatbn" @@ -524,7 +524,7 @@ "TARGET_REALLY_IWMMXT" "wqmiatbn%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wqmiaxy")] + (set_attr "type" "wmmx_wqmiaxy")] ) (define_insn "iwmmxt_wqmiattn" @@ -537,7 +537,7 @@ "TARGET_REALLY_IWMMXT" "wqmiattn%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wqmiaxy")] + (set_attr "type" "wmmx_wqmiaxy")] ) (define_insn "iwmmxt_wmiabb" @@ -561,7 +561,7 @@ "TARGET_REALLY_IWMMXT" "wmiabb%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiaxy")] + (set_attr "type" "wmmx_wmiaxy")] ) (define_insn "iwmmxt_wmiabt" @@ -585,7 +585,7 @@ "TARGET_REALLY_IWMMXT" "wmiabt%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiaxy")] + (set_attr "type" "wmmx_wmiaxy")] ) (define_insn "iwmmxt_wmiatb" @@ -609,7 +609,7 @@ "TARGET_REALLY_IWMMXT" "wmiatb%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiaxy")] + (set_attr "type" "wmmx_wmiaxy")] ) (define_insn "iwmmxt_wmiatt" @@ -633,7 +633,7 @@ "TARGET_REALLY_IWMMXT" "wmiatt%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiaxy")] + (set_attr "type" "wmmx_wmiaxy")] ) (define_insn "iwmmxt_wmiabbn" @@ -657,7 +657,7 @@ "TARGET_REALLY_IWMMXT" "wmiabbn%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiaxy")] + (set_attr "type" "wmmx_wmiaxy")] ) (define_insn "iwmmxt_wmiabtn" @@ -681,7 +681,7 @@ "TARGET_REALLY_IWMMXT" "wmiabtn%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiaxy")] + (set_attr "type" "wmmx_wmiaxy")] ) (define_insn "iwmmxt_wmiatbn" @@ -705,7 +705,7 @@ "TARGET_REALLY_IWMMXT" "wmiatbn%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiaxy")] + (set_attr "type" "wmmx_wmiaxy")] ) (define_insn "iwmmxt_wmiattn" @@ -729,7 +729,7 @@ "TARGET_REALLY_IWMMXT" "wmiattn%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiaxy")] + (set_attr "type" "wmmx_wmiaxy")] ) (define_insn "iwmmxt_wmiawbb" @@ -742,7 +742,7 @@ "TARGET_REALLY_IWMMXT" "wmiawbb%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiawxy")] + (set_attr "type" "wmmx_wmiawxy")] ) (define_insn "iwmmxt_wmiawbt" @@ -755,7 +755,7 @@ "TARGET_REALLY_IWMMXT" "wmiawbt%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiawxy")] + (set_attr "type" "wmmx_wmiawxy")] ) (define_insn "iwmmxt_wmiawtb" @@ -768,7 +768,7 @@ "TARGET_REALLY_IWMMXT" "wmiawtb%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiawxy")] + (set_attr "type" "wmmx_wmiawxy")] ) (define_insn "iwmmxt_wmiawtt" @@ -781,7 +781,7 @@ "TARGET_REALLY_IWMMXT" "wmiawtt%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiawxy")] + (set_attr "type" "wmmx_wmiawxy")] ) (define_insn "iwmmxt_wmiawbbn" @@ -794,7 +794,7 @@ "TARGET_REALLY_IWMMXT" "wmiawbbn%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiawxy")] + (set_attr "type" "wmmx_wmiawxy")] ) (define_insn "iwmmxt_wmiawbtn" @@ -807,7 +807,7 @@ "TARGET_REALLY_IWMMXT" "wmiawbtn%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiawxy")] + (set_attr "type" "wmmx_wmiawxy")] ) (define_insn "iwmmxt_wmiawtbn" @@ -820,7 +820,7 @@ "TARGET_REALLY_IWMMXT" "wmiawtbn%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiawxy")] + (set_attr "type" "wmmx_wmiawxy")] ) (define_insn "iwmmxt_wmiawttn" @@ -833,7 +833,7 @@ "TARGET_REALLY_IWMMXT" "wmiawttn%?\\t%0, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmiawxy")] + (set_attr "type" "wmmx_wmiawxy")] ) (define_insn "iwmmxt_wmerge" @@ -858,7 +858,7 @@ "TARGET_REALLY_IWMMXT" "wmerge%?\\t%0, %1, %2, %3" [(set_attr "predicable" "yes") - (set_attr "wtype" "wmerge")] + (set_attr "type" "wmmx_wmerge")] ) (define_insn "iwmmxt_tandc<mode>3" @@ -868,7 +868,7 @@ "TARGET_REALLY_IWMMXT" "tandc<MMX_char>%?\\t r15" [(set_attr "predicable" "yes") - (set_attr "wtype" "tandc")] + (set_attr "type" "wmmx_tandc")] ) (define_insn "iwmmxt_torc<mode>3" @@ -878,7 +878,7 @@ "TARGET_REALLY_IWMMXT" "torc<MMX_char>%?\\t r15" [(set_attr "predicable" "yes") - (set_attr "wtype" "torc")] + (set_attr "type" "wmmx_torc")] ) (define_insn "iwmmxt_torvsc<mode>3" @@ -888,7 +888,7 @@ "TARGET_REALLY_IWMMXT" "torvsc<MMX_char>%?\\t r15" [(set_attr "predicable" "yes") - (set_attr "wtype" "torvsc")] + (set_attr "type" "wmmx_torvsc")] ) (define_insn "iwmmxt_textrc<mode>3" @@ -899,5 +899,5 @@ "TARGET_REALLY_IWMMXT" "textrc<MMX_char>%?\\t r15, %0" [(set_attr "predicable" "yes") - (set_attr "wtype" "textrc")] + (set_attr "type" "wmmx_textrc")] ) diff --git a/gcc/config/arm/marvell-f-iwmmxt.md b/gcc/config/arm/marvell-f-iwmmxt.md index 5781776b15f..395549fd434 100644 --- a/gcc/config/arm/marvell-f-iwmmxt.md +++ b/gcc/config/arm/marvell-f-iwmmxt.md @@ -63,52 +63,62 @@ ;; An attribute appended to instructions for classification (define_attr "wmmxt_shift" "yes,no" - (if_then_else (eq_attr "wtype" "wror, wsll, wsra, wsrl") + (if_then_else (eq_attr "type" "wmmx_wror, wmmx_wsll, wmmx_wsra, wmmx_wsrl") (const_string "yes") (const_string "no")) ) (define_attr "wmmxt_pack" "yes,no" - (if_then_else (eq_attr "wtype" "waligni, walignr, wmerge, wpack, wshufh, wunpckeh, wunpckih, wunpckel, wunpckil") + (if_then_else (eq_attr "type" "wmmx_waligni, wmmx_walignr, wmmx_wmerge,\ + wmmx_wpack, wmmx_wshufh, wmmx_wunpckeh,\ + wmmx_wunpckih, wmmx_wunpckel, wmmx_wunpckil") (const_string "yes") (const_string "no")) ) (define_attr "wmmxt_mult_c1" "yes,no" - (if_then_else (eq_attr "wtype" "wmac, wmadd, wmiaxy, wmiawxy, wmulw, wqmiaxy, wqmulwm") + (if_then_else (eq_attr "type" "wmmx_wmac, wmmx_wmadd, wmmx_wmiaxy,\ + wmmx_wmiawxy, wmmx_wmulw, wmmx_wqmiaxy,\ + wmmx_wqmulwm") (const_string "yes") (const_string "no")) ) (define_attr "wmmxt_mult_c2" "yes,no" - (if_then_else (eq_attr "wtype" "wmul, wqmulm") + (if_then_else (eq_attr "type" "wmmx_wmul, wmmx_wqmulm") (const_string "yes") (const_string "no")) ) (define_attr "wmmxt_alu_c1" "yes,no" - (if_then_else (eq_attr "wtype" "wabs, wabsdiff, wand, wandn, wmov, wor, wxor") + (if_then_else (eq_attr "type" "wmmx_wabs, wmmx_wabsdiff, wmmx_wand,\ + wmmx_wandn, wmmx_wmov, wmmx_wor, wmmx_wxor") (const_string "yes") (const_string "no")) ) (define_attr "wmmxt_alu_c2" "yes,no" - (if_then_else (eq_attr "wtype" "wacc, wadd, waddsubhx, wavg2, wavg4, wcmpeq, wcmpgt, wmax, wmin, wsub, waddbhus, wsubaddhx") + (if_then_else (eq_attr "type" "wmmx_wacc, wmmx_wadd, wmmx_waddsubhx,\ + wmmx_wavg2, wmmx_wavg4, wmmx_wcmpeq,\ + wmmx_wcmpgt, wmmx_wmax, wmmx_wmin,\ + wmmx_wsub, wmmx_waddbhus, wmmx_wsubaddhx") (const_string "yes") (const_string "no")) ) (define_attr "wmmxt_alu_c3" "yes,no" - (if_then_else (eq_attr "wtype" "wsad") + (if_then_else (eq_attr "type" "wmmx_wsad") (const_string "yes") (const_string "no")) ) (define_attr "wmmxt_transfer_c1" "yes,no" - (if_then_else (eq_attr "wtype" "tbcst, tinsr, tmcr, tmcrr") + (if_then_else (eq_attr "type" "wmmx_tbcst, wmmx_tinsr,\ + wmmx_tmcr, wmmx_tmcrr") (const_string "yes") (const_string "no")) ) (define_attr "wmmxt_transfer_c2" "yes,no" - (if_then_else (eq_attr "wtype" "textrm, tmovmsk, tmrc, tmrrc") + (if_then_else (eq_attr "type" "wmmx_textrm, wmmx_tmovmsk,\ + wmmx_tmrc, wmmx_tmrrc") (const_string "yes") (const_string "no")) ) (define_attr "wmmxt_transfer_c3" "yes,no" - (if_then_else (eq_attr "wtype" "tmia, tmiaph, tmiaxy") + (if_then_else (eq_attr "type" "wmmx_tmia, wmmx_tmiaph, wmmx_tmiaxy") (const_string "yes") (const_string "no")) ) @@ -169,11 +179,11 @@ (define_insn_reservation "marvell_f_iwmmxt_wstr" 0 (and (eq_attr "marvell_f_iwmmxt" "yes") - (eq_attr "wtype" "wstr")) + (eq_attr "type" "wmmx_wstr")) "mf_iwmmxt_pipeline") ;There is a forwarding path from MW stage (define_insn_reservation "marvell_f_iwmmxt_wldr" 5 (and (eq_attr "marvell_f_iwmmxt" "yes") - (eq_attr "wtype" "wldr")) + (eq_attr "type" "wmmx_wldr")) "mf_iwmmxt_pipeline") diff --git a/gcc/config/arm/predicates.md b/gcc/config/arm/predicates.md index 06c15e29825..f4a4515fa39 100644 --- a/gcc/config/arm/predicates.md +++ b/gcc/config/arm/predicates.md @@ -321,6 +321,12 @@ || maybe_get_arm_condition_code (op) == ARM_NE || maybe_get_arm_condition_code (op) == ARM_VC"))) +(define_special_predicate "arm_cond_move_operator" + (if_then_else (match_test "arm_restrict_it") + (and (match_test "TARGET_FPU_ARMV8") + (match_operand 0 "arm_vsel_comparison_operator")) + (match_operand 0 "expandable_comparison_operator"))) + (define_special_predicate "noov_comparison_operator" (match_code "lt,ge,eq,ne")) diff --git a/gcc/config/arm/thumb2.md b/gcc/config/arm/thumb2.md index 4e3ebd7d621..cd5837480b8 100644 --- a/gcc/config/arm/thumb2.md +++ b/gcc/config/arm/thumb2.md @@ -267,8 +267,8 @@ ;; regs. The high register alternatives are not taken into account when ;; choosing register preferences in order to reflect their expense. (define_insn "*thumb2_movsi_insn" - [(set (match_operand:SI 0 "nonimmediate_operand" "=rk,r,r,r,l ,*hk,m,*m") - (match_operand:SI 1 "general_operand" "rk ,I,K,j,mi,*mi,l,*hk"))] + [(set (match_operand:SI 0 "nonimmediate_operand" "=rk,r,l,r,r,l ,*hk,m,*m") + (match_operand:SI 1 "general_operand" "rk,I,Py,K,j,mi,*mi,l,*hk"))] "TARGET_THUMB2 && ! TARGET_IWMMXT && !(TARGET_HARD_FLOAT && TARGET_VFP) && ( register_operand (operands[0], SImode) @@ -276,16 +276,19 @@ "@ mov%?\\t%0, %1 mov%?\\t%0, %1 + mov%?\\t%0, %1 mvn%?\\t%0, #%B1 movw%?\\t%0, %1 ldr%?\\t%0, %1 ldr%?\\t%0, %1 str%?\\t%1, %0 str%?\\t%1, %0" - [(set_attr "type" "*,*,simple_alu_imm,*,load1,load1,store1,store1") + [(set_attr "type" "*,simple_alu_imm,simple_alu_imm,simple_alu_imm,*,load1,load1,store1,store1") + (set_attr "length" "2,4,2,4,4,4,4,4,4") (set_attr "predicable" "yes") - (set_attr "pool_range" "*,*,*,*,1018,4094,*,*") - (set_attr "neg_pool_range" "*,*,*,*,0,0,*,*")] + (set_attr "predicable_short_it" "yes,no,yes,no,no,no,no,no,no") + (set_attr "pool_range" "*,*,*,*,*,1018,4094,*,*") + (set_attr "neg_pool_range" "*,*,*,*,*,0,0,*,*")] ) (define_insn "tls_load_dot_plus_four" @@ -390,26 +393,32 @@ ) (define_insn_and_split "*thumb2_movsicc_insn" - [(set (match_operand:SI 0 "s_register_operand" "=r,r,r,r,r,r,r,r") + [(set (match_operand:SI 0 "s_register_operand" "=l,l,r,r,r,r,r,r,r,r,r,l") (if_then_else:SI (match_operator 3 "arm_comparison_operator" [(match_operand 4 "cc_register" "") (const_int 0)]) - (match_operand:SI 1 "arm_not_operand" "0,0,rI,K,rI,rI,K,K") - (match_operand:SI 2 "arm_not_operand" "rI,K,0,0,rI,K,rI,K")))] + (match_operand:SI 1 "arm_not_operand" "0 ,Py,0 ,0,rI,K,rI,rI,K ,K,r,lPy") + (match_operand:SI 2 "arm_not_operand" "Py,0 ,rI,K,0 ,0,rI,K ,rI,K,r,lPy")))] "TARGET_THUMB2" "@ it\\t%D3\;mov%D3\\t%0, %2 + it\\t%d3\;mov%d3\\t%0, %1 + it\\t%D3\;mov%D3\\t%0, %2 it\\t%D3\;mvn%D3\\t%0, #%B2 it\\t%d3\;mov%d3\\t%0, %1 it\\t%d3\;mvn%d3\\t%0, #%B1 # # # + # + # #" - ; alt 4: ite\\t%d3\;mov%d3\\t%0, %1\;mov%D3\\t%0, %2 - ; alt 5: ite\\t%d3\;mov%d3\\t%0, %1\;mvn%D3\\t%0, #%B2 - ; alt 6: ite\\t%d3\;mvn%d3\\t%0, #%B1\;mov%D3\\t%0, %2 - ; alt 7: ite\\t%d3\;mvn%d3\\t%0, #%B1\;mvn%D3\\t%0, #%B2" + ; alt 6: ite\\t%d3\;mov%d3\\t%0, %1\;mov%D3\\t%0, %2 + ; alt 7: ite\\t%d3\;mov%d3\\t%0, %1\;mvn%D3\\t%0, #%B2 + ; alt 8: ite\\t%d3\;mvn%d3\\t%0, #%B1\;mov%D3\\t%0, %2 + ; alt 9: ite\\t%d3\;mvn%d3\\t%0, #%B1\;mvn%D3\\t%0, #%B2 + ; alt 10: ite\\t%d3\;mov%d3\\t%0, %1\;mov%D3\\t%0, %2 + ; alt 11: ite\\t%d3\;mov%d3\\t%0, %1\;mov%D3\\t%0, %2" "&& reload_completed" [(const_int 0)] { @@ -440,7 +449,8 @@ operands[2]))); DONE; } - [(set_attr "length" "6,6,6,6,10,10,10,10") + [(set_attr "length" "4,4,6,6,6,6,10,10,10,10,6,6") + (set_attr "enabled_for_depr_it" "yes,yes,no,no,no,no,no,no,no,no,yes,yes") (set_attr "conds" "use")] ) @@ -491,29 +501,30 @@ (define_insn_and_split "*thumb2_and_scc" - [(set (match_operand:SI 0 "s_register_operand" "=r") + [(set (match_operand:SI 0 "s_register_operand" "=Ts") (and:SI (match_operator:SI 1 "arm_comparison_operator" [(match_operand 2 "cc_register" "") (const_int 0)]) (match_operand:SI 3 "s_register_operand" "r")))] "TARGET_THUMB2" - "#" ; "ite\\t%D1\;mov%D1\\t%0, #0\;and%d1\\t%0, %3, #1" + "#" ; "and\\t%0, %3, #1\;it\\t%D1\;mov%D1\\t%0, #0" "&& reload_completed" - [(cond_exec (match_dup 5) (set (match_dup 0) (const_int 0))) - (cond_exec (match_dup 4) (set (match_dup 0) - (and:SI (match_dup 3) (const_int 1))))] + [(set (match_dup 0) + (and:SI (match_dup 3) (const_int 1))) + (cond_exec (match_dup 4) (set (match_dup 0) (const_int 0)))] { enum machine_mode mode = GET_MODE (operands[2]); enum rtx_code rc = GET_CODE (operands[1]); - operands[4] = gen_rtx_fmt_ee (rc, VOIDmode, operands[2], const0_rtx); if (mode == CCFPmode || mode == CCFPEmode) rc = reverse_condition_maybe_unordered (rc); else rc = reverse_condition (rc); - operands[5] = gen_rtx_fmt_ee (rc, VOIDmode, operands[2], const0_rtx); + operands[4] = gen_rtx_fmt_ee (rc, VOIDmode, operands[2], const0_rtx); } [(set_attr "conds" "use") - (set_attr "length" "10")] + (set (attr "length") (if_then_else (match_test "arm_restrict_it") + (const_int 8) + (const_int 10)))] ) (define_insn_and_split "*thumb2_ior_scc" @@ -649,7 +660,7 @@ ) (define_insn_and_split "*thumb2_negscc" - [(set (match_operand:SI 0 "s_register_operand" "=r") + [(set (match_operand:SI 0 "s_register_operand" "=Ts") (neg:SI (match_operator 3 "arm_comparison_operator" [(match_operand:SI 1 "s_register_operand" "r") (match_operand:SI 2 "arm_rhs_operand" "rI")]))) @@ -671,7 +682,7 @@ GEN_INT (31)))); DONE; } - else if (GET_CODE (operands[3]) == NE) + else if (GET_CODE (operands[3]) == NE && !arm_restrict_it) { /* Emit subs\\t%0, %1, %2\;it\\tne\;mvnne\\t%0, #0 */ if (CONST_INT_P (operands[2])) @@ -691,7 +702,7 @@ } else { - /* Emit: cmp\\t%1, %2\;ite\\t%D3\;mov%D3\\t%0, #0\;mvn%d3\\t%0, #0 */ + /* Emit: cmp\\t%1, %2\;mvn\\t%0, #0\;it\\t%D3\;mov%D3\\t%0, #0\;*/ enum rtx_code rc = reverse_condition (GET_CODE (operands[3])); enum machine_mode mode = SELECT_CC_MODE (rc, operands[1], operands[2]); rtx tmp1 = gen_rtx_REG (mode, CC_REGNUM); @@ -699,21 +710,15 @@ emit_insn (gen_rtx_SET (VOIDmode, cc_reg, gen_rtx_COMPARE (CCmode, operands[1], operands[2]))); + + emit_insn (gen_rtx_SET (VOIDmode, operands[0], GEN_INT (~0))); + emit_insn (gen_rtx_COND_EXEC (VOIDmode, gen_rtx_fmt_ee (rc, VOIDmode, tmp1, const0_rtx), gen_rtx_SET (VOIDmode, operands[0], const0_rtx))); - rc = GET_CODE (operands[3]); - emit_insn (gen_rtx_COND_EXEC (VOIDmode, - gen_rtx_fmt_ee (rc, - VOIDmode, - tmp1, - const0_rtx), - gen_rtx_SET (VOIDmode, - operands[0], - GEN_INT (~0)))); DONE; } FAIL; diff --git a/gcc/config/arm/vfp.md b/gcc/config/arm/vfp.md index 918db1758b5..9ac887e9b19 100644 --- a/gcc/config/arm/vfp.md +++ b/gcc/config/arm/vfp.md @@ -62,45 +62,52 @@ ;; See thumb2.md:thumb2_movsi_insn for an explanation of the split ;; high/low register alternatives for loads and stores here. +;; The l/Py alternative should come after r/I to ensure that the short variant +;; is chosen with length 2 when the instruction is predicated for +;; arm_restrict_it. (define_insn "*thumb2_movsi_vfp" - [(set (match_operand:SI 0 "nonimmediate_operand" "=rk,r,r,r, l,*hk,m, *m,*t, r,*t,*t, *Uv") - (match_operand:SI 1 "general_operand" "rk, I,K,j,mi,*mi,l,*hk, r,*t,*t,*Uvi,*t"))] + [(set (match_operand:SI 0 "nonimmediate_operand" "=rk,r,l,r,r, l,*hk,m, *m,*t, r,*t,*t, *Uv") + (match_operand:SI 1 "general_operand" "rk,I,Py,K,j,mi,*mi,l,*hk, r,*t,*t,*Uvi,*t"))] "TARGET_THUMB2 && TARGET_VFP && TARGET_HARD_FLOAT && ( s_register_operand (operands[0], SImode) || s_register_operand (operands[1], SImode))" "* switch (which_alternative) { - case 0: case 1: - return \"mov%?\\t%0, %1\"; + case 0: + case 1: case 2: - return \"mvn%?\\t%0, #%B1\"; + return \"mov%?\\t%0, %1\"; case 3: - return \"movw%?\\t%0, %1\"; + return \"mvn%?\\t%0, #%B1\"; case 4: + return \"movw%?\\t%0, %1\"; case 5: - return \"ldr%?\\t%0, %1\"; case 6: + return \"ldr%?\\t%0, %1\"; case 7: - return \"str%?\\t%1, %0\"; case 8: - return \"fmsr%?\\t%0, %1\\t%@ int\"; + return \"str%?\\t%1, %0\"; case 9: - return \"fmrs%?\\t%0, %1\\t%@ int\"; + return \"fmsr%?\\t%0, %1\\t%@ int\"; case 10: + return \"fmrs%?\\t%0, %1\\t%@ int\"; + case 11: return \"fcpys%?\\t%0, %1\\t%@ int\"; - case 11: case 12: + case 12: case 13: return output_move_vfp (operands); default: gcc_unreachable (); } " [(set_attr "predicable" "yes") - (set_attr "type" "*,*,*,*,load1,load1,store1,store1,r_2_f,f_2_r,fcpys,f_loads,f_stores") - (set_attr "neon_type" "*,*,*,*,*,*,*,*,neon_mcr,neon_mrc,neon_vmov,*,*") - (set_attr "insn" "mov,mov,mvn,mov,*,*,*,*,*,*,*,*,*") - (set_attr "pool_range" "*,*,*,*,1018,4094,*,*,*,*,*,1018,*") - (set_attr "neg_pool_range" "*,*,*,*, 0, 0,*,*,*,*,*,1008,*")] + (set_attr "predicable_short_it" "yes,no,yes,no,no,no,no,no,no,no,no,no,no,no") + (set_attr "type" "*,*,*,*,*,load1,load1,store1,store1,r_2_f,f_2_r,fcpys,f_loads,f_stores") + (set_attr "length" "2,4,2,4,4,4,4,4,4,4,4,4,4,4") + (set_attr "neon_type" "*,*,*,*,*,*,*,*,*,neon_mcr,neon_mrc,neon_vmov,*,*") + (set_attr "insn" "mov,mov,mov,mvn,mov,*,*,*,*,*,*,*,*,*") + (set_attr "pool_range" "*,*,*,*,*,1018,4094,*,*,*,*,*,1018,*") + (set_attr "neg_pool_range" "*,*,*,*,*, 0, 0,*,*,*,*,*,1008,*")] ) @@ -387,6 +394,7 @@ } " [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "r_2_f,f_2_r,fconsts,f_loads,f_stores,load1,store1,fcpys,*") (set_attr "neon_type" "neon_mcr,neon_mrc,*,*,*,*,*,neon_vmov,*") @@ -395,7 +403,6 @@ (set_attr "neg_pool_range" "*,*,*,1008,*,0,*,*,*")] ) - ;; DFmode moves (define_insn "*movdf_vfp" @@ -525,7 +532,7 @@ [(match_operand 4 "cc_register" "") (const_int 0)]) (match_operand:SF 1 "s_register_operand" "0,t,t,0,?r,?r,0,t,t") (match_operand:SF 2 "s_register_operand" "t,0,t,?r,0,?r,t,0,t")))] - "TARGET_THUMB2 && TARGET_HARD_FLOAT && TARGET_VFP" + "TARGET_THUMB2 && TARGET_HARD_FLOAT && TARGET_VFP && !arm_restrict_it" "@ it\\t%D3\;fcpys%D3\\t%0, %2 it\\t%d3\;fcpys%d3\\t%0, %1 @@ -573,7 +580,7 @@ [(match_operand 4 "cc_register" "") (const_int 0)]) (match_operand:DF 1 "s_register_operand" "0,w,w,0,?r,?r,0,w,w") (match_operand:DF 2 "s_register_operand" "w,0,w,?r,0,?r,w,0,w")))] - "TARGET_THUMB2 && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE" + "TARGET_THUMB2 && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE && !arm_restrict_it" "@ it\\t%D3\;fcpyd%D3\\t%P0, %P2 it\\t%d3\;fcpyd%d3\\t%P0, %P1 @@ -599,6 +606,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP" "fabss%?\\t%0, %1" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "ffariths")] ) @@ -608,6 +616,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE" "fabsd%?\\t%P0, %P1" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "ffarithd")] ) @@ -619,6 +628,7 @@ fnegs%?\\t%0, %1 eor%?\\t%0, %1, #-2147483648" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "ffariths")] ) @@ -664,6 +674,7 @@ } " [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "length" "4,4,8") (set_attr "type" "ffarithd")] ) @@ -678,6 +689,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP" "fadds%?\\t%0, %1, %2" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "fadds")] ) @@ -688,6 +700,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE" "faddd%?\\t%P0, %P1, %P2" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "faddd")] ) @@ -699,6 +712,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP" "fsubs%?\\t%0, %1, %2" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "fadds")] ) @@ -709,6 +723,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE" "fsubd%?\\t%P0, %P1, %P2" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "faddd")] ) @@ -722,6 +737,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP" "fdivs%?\\t%0, %1, %2" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "fdivs")] ) @@ -732,6 +748,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE" "fdivd%?\\t%P0, %P1, %P2" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "fdivd")] ) @@ -745,6 +762,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP" "fmuls%?\\t%0, %1, %2" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "fmuls")] ) @@ -755,6 +773,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE" "fmuld%?\\t%P0, %P1, %P2" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "fmuld")] ) @@ -765,6 +784,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP" "fnmuls%?\\t%0, %1, %2" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "fmuls")] ) @@ -775,6 +795,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE" "fnmuld%?\\t%P0, %P1, %P2" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "fmuld")] ) @@ -790,6 +811,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP" "fmacs%?\\t%0, %2, %3" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "fmacs")] ) @@ -801,6 +823,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE" "fmacd%?\\t%P0, %P2, %P3" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "fmacd")] ) @@ -813,6 +836,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP" "fmscs%?\\t%0, %2, %3" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "fmacs")] ) @@ -824,6 +848,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE" "fmscd%?\\t%P0, %P2, %P3" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "fmacd")] ) @@ -836,6 +861,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP" "fnmacs%?\\t%0, %2, %3" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "fmacs")] ) @@ -847,6 +873,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE" "fnmacd%?\\t%P0, %P2, %P3" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "fmacd")] ) @@ -861,6 +888,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP" "fnmscs%?\\t%0, %2, %3" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "fmacs")] ) @@ -873,6 +901,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE" "fnmscd%?\\t%P0, %P2, %P3" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "fmacd")] ) @@ -886,6 +915,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA" "vfma%?.<V_if_elem>\\t%<V_reg>0, %<V_reg>1, %<V_reg>2" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "ffma<vfp_type>")] ) @@ -898,6 +928,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA" "vfms%?.<V_if_elem>\\t%<V_reg>0, %<V_reg>1, %<V_reg>2" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "ffma<vfp_type>")] ) @@ -909,6 +940,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA" "vfnms%?.<V_if_elem>\\t%<V_reg>0, %<V_reg>1, %<V_reg>2" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "ffma<vfp_type>")] ) @@ -921,6 +953,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA" "vfnma%?.<V_if_elem>\\t%<V_reg>0, %<V_reg>1, %<V_reg>2" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "ffma<vfp_type>")] ) @@ -933,6 +966,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE" "fcvtds%?\\t%P0, %1" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "f_cvt")] ) @@ -942,6 +976,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE" "fcvtsd%?\\t%0, %P1" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "f_cvt")] ) @@ -951,6 +986,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FP16" "vcvtb%?.f32.f16\\t%0, %1" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "f_cvt")] ) @@ -960,6 +996,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FP16" "vcvtb%?.f16.f32\\t%0, %1" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "f_cvt")] ) @@ -969,6 +1006,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP" "ftosizs%?\\t%0, %1" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "f_cvt")] ) @@ -978,6 +1016,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE" "ftosizd%?\\t%0, %P1" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "f_cvt")] ) @@ -988,6 +1027,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP" "ftouizs%?\\t%0, %1" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "f_cvt")] ) @@ -997,6 +1037,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE" "ftouizd%?\\t%0, %P1" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "f_cvt")] ) @@ -1007,6 +1048,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP" "fsitos%?\\t%0, %1" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "f_cvt")] ) @@ -1016,6 +1058,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE" "fsitod%?\\t%P0, %1" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "f_cvt")] ) @@ -1026,6 +1069,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP" "fuitos%?\\t%0, %1" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "f_cvt")] ) @@ -1035,6 +1079,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE" "fuitod%?\\t%P0, %1" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "f_cvt")] ) @@ -1047,6 +1092,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP" "fsqrts%?\\t%0, %1" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "fdivs")] ) @@ -1056,6 +1102,7 @@ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE" "fsqrtd%?\\t%P0, %P1" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "fdivd")] ) @@ -1143,6 +1190,7 @@ fcmps%?\\t%0, %1 fcmpzs%?\\t%0" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "fcmps")] ) @@ -1155,6 +1203,7 @@ fcmpes%?\\t%0, %1 fcmpezs%?\\t%0" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "fcmps")] ) @@ -1167,6 +1216,7 @@ fcmpd%?\\t%P0, %P1 fcmpzd%?\\t%P0" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "fcmpd")] ) @@ -1179,6 +1229,7 @@ fcmped%?\\t%P0, %P1 fcmpezd%?\\t%P0" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "type" "fcmpd")] ) @@ -1238,6 +1289,7 @@ "TARGET_HARD_FLOAT && TARGET_FPU_ARMV8 <vfp_double_cond>" "vrint<vrint_variant>%?.<V_if_elem>\\t%<V_reg>0, %<V_reg>1" [(set_attr "predicable" "<vrint_predicable>") + (set_attr "predicable_short_it" "no") (set_attr "type" "f_rint<vfp_type>")] ) diff --git a/gcc/config/i386/bmiintrin.h b/gcc/config/i386/bmiintrin.h index cb6ffa556ff..281ebaaf4f2 100644 --- a/gcc/config/i386/bmiintrin.h +++ b/gcc/config/i386/bmiintrin.h @@ -54,6 +54,12 @@ __bextr_u32 (unsigned int __X, unsigned int __Y) } extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_bextr_u32 (unsigned int __X, unsigned int __Y, unsigned __Z) +{ + return __builtin_ia32_bextr_u32 (__X, ((__Y & 0xff) | ((__Z & 0xff) << 8))); +} + +extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __blsi_u32 (unsigned int __X) { return __X & -__X; @@ -93,6 +99,12 @@ __bextr_u64 (unsigned long long __X, unsigned long long __Y) } extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_bextr_u64 (unsigned long long __X, unsigned int __Y, unsigned int __Z) +{ + return __builtin_ia32_bextr_u64 (__X, ((__Y & 0xff) | ((__Z & 0xff) << 8))); +} + +extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __blsi_u64 (unsigned long long __X) { return __X & -__X; diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index e4799b61150..6a431877231 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -2578,7 +2578,7 @@ static const char *const cpu_names[TARGET_CPU_DEFAULT_max] = static bool gate_insert_vzeroupper (void) { - return TARGET_VZEROUPPER; + return TARGET_AVX && TARGET_VZEROUPPER; } static unsigned int @@ -3936,34 +3936,26 @@ ix86_option_override_internal (bool main_args_p) #endif } - if (TARGET_AVX) - { - /* When not optimize for size, enable vzeroupper optimization for - TARGET_AVX with -fexpensive-optimizations and split 32-byte - AVX unaligned load/store. */ - if (!optimize_size) - { - if (flag_expensive_optimizations - && !(target_flags_explicit & MASK_VZEROUPPER)) - target_flags |= MASK_VZEROUPPER; - if ((x86_avx256_split_unaligned_load & ix86_tune_mask) - && !(target_flags_explicit & MASK_AVX256_SPLIT_UNALIGNED_LOAD)) - target_flags |= MASK_AVX256_SPLIT_UNALIGNED_LOAD; - if ((x86_avx256_split_unaligned_store & ix86_tune_mask) - && !(target_flags_explicit & MASK_AVX256_SPLIT_UNALIGNED_STORE)) - target_flags |= MASK_AVX256_SPLIT_UNALIGNED_STORE; - /* Enable 128-bit AVX instruction generation - for the auto-vectorizer. */ - if (TARGET_AVX128_OPTIMAL - && !(target_flags_explicit & MASK_PREFER_AVX128)) - target_flags |= MASK_PREFER_AVX128; - } - } - else - { - /* Disable vzeroupper pass if TARGET_AVX is disabled. */ - target_flags &= ~MASK_VZEROUPPER; - } + /* When not optimize for size, enable vzeroupper optimization for + TARGET_AVX with -fexpensive-optimizations and split 32-byte + AVX unaligned load/store. */ + if (!optimize_size) + { + if (flag_expensive_optimizations + && !(target_flags_explicit & MASK_VZEROUPPER)) + target_flags |= MASK_VZEROUPPER; + if ((x86_avx256_split_unaligned_load & ix86_tune_mask) + && !(target_flags_explicit & MASK_AVX256_SPLIT_UNALIGNED_LOAD)) + target_flags |= MASK_AVX256_SPLIT_UNALIGNED_LOAD; + if ((x86_avx256_split_unaligned_store & ix86_tune_mask) + && !(target_flags_explicit & MASK_AVX256_SPLIT_UNALIGNED_STORE)) + target_flags |= MASK_AVX256_SPLIT_UNALIGNED_STORE; + /* Enable 128-bit AVX instruction generation + for the auto-vectorizer. */ + if (TARGET_AVX128_OPTIMAL + && !(target_flags_explicit & MASK_PREFER_AVX128)) + target_flags |= MASK_PREFER_AVX128; + } if (ix86_recip_name) { @@ -25921,8 +25913,6 @@ enum ix86_builtins IX86_BUILTIN_CMPNEQSS, IX86_BUILTIN_CMPNLTSS, IX86_BUILTIN_CMPNLESS, - IX86_BUILTIN_CMPNGTSS, - IX86_BUILTIN_CMPNGESS, IX86_BUILTIN_CMPORDSS, IX86_BUILTIN_CMPUNORDSS, @@ -27559,8 +27549,6 @@ static const struct builtin_description bdesc_args[] = { OPTION_MASK_ISA_SSE, CODE_FOR_sse_vmmaskcmpv4sf3, "__builtin_ia32_cmpneqss", IX86_BUILTIN_CMPNEQSS, NE, (int) V4SF_FTYPE_V4SF_V4SF }, { OPTION_MASK_ISA_SSE, CODE_FOR_sse_vmmaskcmpv4sf3, "__builtin_ia32_cmpnltss", IX86_BUILTIN_CMPNLTSS, UNGE, (int) V4SF_FTYPE_V4SF_V4SF }, { OPTION_MASK_ISA_SSE, CODE_FOR_sse_vmmaskcmpv4sf3, "__builtin_ia32_cmpnless", IX86_BUILTIN_CMPNLESS, UNGT, (int) V4SF_FTYPE_V4SF_V4SF }, - { OPTION_MASK_ISA_SSE, CODE_FOR_sse_vmmaskcmpv4sf3, "__builtin_ia32_cmpngtss", IX86_BUILTIN_CMPNGTSS, UNGE, (int) V4SF_FTYPE_V4SF_V4SF_SWAP }, - { OPTION_MASK_ISA_SSE, CODE_FOR_sse_vmmaskcmpv4sf3, "__builtin_ia32_cmpngess", IX86_BUILTIN_CMPNGESS, UNGT, (int) V4SF_FTYPE_V4SF_V4SF_SWAP }, { OPTION_MASK_ISA_SSE, CODE_FOR_sse_vmmaskcmpv4sf3, "__builtin_ia32_cmpordss", IX86_BUILTIN_CMPORDSS, ORDERED, (int) V4SF_FTYPE_V4SF_V4SF }, { OPTION_MASK_ISA_SSE, CODE_FOR_sminv4sf3, "__builtin_ia32_minps", IX86_BUILTIN_MINPS, UNKNOWN, (int) V4SF_FTYPE_V4SF_V4SF }, @@ -32222,7 +32210,13 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget ATTRIBUTE_UNUSED, } if (target == 0) - target = gen_reg_rtx (mode); + { + /* mode is VOIDmode if __builtin_rd* has been called + without lhs. */ + if (mode == VOIDmode) + return target; + target = gen_reg_rtx (mode); + } if (TARGET_64BIT) { diff --git a/gcc/config/mips/mips-cpus.def b/gcc/config/mips/mips-cpus.def index d7db0ba96d6..a1c65915f78 100644 --- a/gcc/config/mips/mips-cpus.def +++ b/gcc/config/mips/mips-cpus.def @@ -95,6 +95,8 @@ MIPS_CPU ("4ksc", PROCESSOR_4KC, 32, 0) MIPS_CPU ("m4k", PROCESSOR_M4K, 33, 0) MIPS_CPU ("m14kc", PROCESSOR_M4K, 33, 0) MIPS_CPU ("m14k", PROCESSOR_M4K, 33, 0) +MIPS_CPU ("m14ke", PROCESSOR_M4K, 33, 0) +MIPS_CPU ("m14kec", PROCESSOR_M4K, 33, 0) MIPS_CPU ("4kec", PROCESSOR_4KC, 33, 0) MIPS_CPU ("4kem", PROCESSOR_4KC, 33, 0) MIPS_CPU ("4kep", PROCESSOR_4KP, 33, 0) diff --git a/gcc/config/mips/mips-tables.opt b/gcc/config/mips/mips-tables.opt index 8ed412cc15e..409356e1af7 100644 --- a/gcc/config/mips/mips-tables.opt +++ b/gcc/config/mips/mips-tables.opt @@ -385,254 +385,260 @@ EnumValue Enum(mips_arch_opt_value) String(m14k) Value(42) Canonical EnumValue -Enum(mips_arch_opt_value) String(4kec) Value(43) Canonical +Enum(mips_arch_opt_value) String(m14ke) Value(43) Canonical EnumValue -Enum(mips_arch_opt_value) String(r4kec) Value(43) +Enum(mips_arch_opt_value) String(m14kec) Value(44) Canonical EnumValue -Enum(mips_arch_opt_value) String(4kem) Value(44) Canonical +Enum(mips_arch_opt_value) String(4kec) Value(45) Canonical EnumValue -Enum(mips_arch_opt_value) String(r4kem) Value(44) +Enum(mips_arch_opt_value) String(r4kec) Value(45) EnumValue -Enum(mips_arch_opt_value) String(4kep) Value(45) Canonical +Enum(mips_arch_opt_value) String(4kem) Value(46) Canonical EnumValue -Enum(mips_arch_opt_value) String(r4kep) Value(45) +Enum(mips_arch_opt_value) String(r4kem) Value(46) EnumValue -Enum(mips_arch_opt_value) String(4ksd) Value(46) Canonical +Enum(mips_arch_opt_value) String(4kep) Value(47) Canonical EnumValue -Enum(mips_arch_opt_value) String(r4ksd) Value(46) +Enum(mips_arch_opt_value) String(r4kep) Value(47) EnumValue -Enum(mips_arch_opt_value) String(24kc) Value(47) Canonical +Enum(mips_arch_opt_value) String(4ksd) Value(48) Canonical EnumValue -Enum(mips_arch_opt_value) String(r24kc) Value(47) +Enum(mips_arch_opt_value) String(r4ksd) Value(48) EnumValue -Enum(mips_arch_opt_value) String(24kf2_1) Value(48) Canonical +Enum(mips_arch_opt_value) String(24kc) Value(49) Canonical EnumValue -Enum(mips_arch_opt_value) String(r24kf2_1) Value(48) +Enum(mips_arch_opt_value) String(r24kc) Value(49) EnumValue -Enum(mips_arch_opt_value) String(24kf) Value(49) Canonical +Enum(mips_arch_opt_value) String(24kf2_1) Value(50) Canonical EnumValue -Enum(mips_arch_opt_value) String(r24kf) Value(49) +Enum(mips_arch_opt_value) String(r24kf2_1) Value(50) EnumValue -Enum(mips_arch_opt_value) String(24kf1_1) Value(50) Canonical +Enum(mips_arch_opt_value) String(24kf) Value(51) Canonical EnumValue -Enum(mips_arch_opt_value) String(r24kf1_1) Value(50) +Enum(mips_arch_opt_value) String(r24kf) Value(51) EnumValue -Enum(mips_arch_opt_value) String(24kfx) Value(51) Canonical +Enum(mips_arch_opt_value) String(24kf1_1) Value(52) Canonical EnumValue -Enum(mips_arch_opt_value) String(r24kfx) Value(51) +Enum(mips_arch_opt_value) String(r24kf1_1) Value(52) EnumValue -Enum(mips_arch_opt_value) String(24kx) Value(52) Canonical +Enum(mips_arch_opt_value) String(24kfx) Value(53) Canonical EnumValue -Enum(mips_arch_opt_value) String(r24kx) Value(52) +Enum(mips_arch_opt_value) String(r24kfx) Value(53) EnumValue -Enum(mips_arch_opt_value) String(24kec) Value(53) Canonical +Enum(mips_arch_opt_value) String(24kx) Value(54) Canonical EnumValue -Enum(mips_arch_opt_value) String(r24kec) Value(53) +Enum(mips_arch_opt_value) String(r24kx) Value(54) EnumValue -Enum(mips_arch_opt_value) String(24kef2_1) Value(54) Canonical +Enum(mips_arch_opt_value) String(24kec) Value(55) Canonical EnumValue -Enum(mips_arch_opt_value) String(r24kef2_1) Value(54) +Enum(mips_arch_opt_value) String(r24kec) Value(55) EnumValue -Enum(mips_arch_opt_value) String(24kef) Value(55) Canonical +Enum(mips_arch_opt_value) String(24kef2_1) Value(56) Canonical EnumValue -Enum(mips_arch_opt_value) String(r24kef) Value(55) +Enum(mips_arch_opt_value) String(r24kef2_1) Value(56) EnumValue -Enum(mips_arch_opt_value) String(24kef1_1) Value(56) Canonical +Enum(mips_arch_opt_value) String(24kef) Value(57) Canonical EnumValue -Enum(mips_arch_opt_value) String(r24kef1_1) Value(56) +Enum(mips_arch_opt_value) String(r24kef) Value(57) EnumValue -Enum(mips_arch_opt_value) String(24kefx) Value(57) Canonical +Enum(mips_arch_opt_value) String(24kef1_1) Value(58) Canonical EnumValue -Enum(mips_arch_opt_value) String(r24kefx) Value(57) +Enum(mips_arch_opt_value) String(r24kef1_1) Value(58) EnumValue -Enum(mips_arch_opt_value) String(24kex) Value(58) Canonical +Enum(mips_arch_opt_value) String(24kefx) Value(59) Canonical EnumValue -Enum(mips_arch_opt_value) String(r24kex) Value(58) +Enum(mips_arch_opt_value) String(r24kefx) Value(59) EnumValue -Enum(mips_arch_opt_value) String(34kc) Value(59) Canonical +Enum(mips_arch_opt_value) String(24kex) Value(60) Canonical EnumValue -Enum(mips_arch_opt_value) String(r34kc) Value(59) +Enum(mips_arch_opt_value) String(r24kex) Value(60) EnumValue -Enum(mips_arch_opt_value) String(34kf2_1) Value(60) Canonical +Enum(mips_arch_opt_value) String(34kc) Value(61) Canonical EnumValue -Enum(mips_arch_opt_value) String(r34kf2_1) Value(60) +Enum(mips_arch_opt_value) String(r34kc) Value(61) EnumValue -Enum(mips_arch_opt_value) String(34kf) Value(61) Canonical +Enum(mips_arch_opt_value) String(34kf2_1) Value(62) Canonical EnumValue -Enum(mips_arch_opt_value) String(r34kf) Value(61) +Enum(mips_arch_opt_value) String(r34kf2_1) Value(62) EnumValue -Enum(mips_arch_opt_value) String(34kf1_1) Value(62) Canonical +Enum(mips_arch_opt_value) String(34kf) Value(63) Canonical EnumValue -Enum(mips_arch_opt_value) String(r34kf1_1) Value(62) +Enum(mips_arch_opt_value) String(r34kf) Value(63) EnumValue -Enum(mips_arch_opt_value) String(34kfx) Value(63) Canonical +Enum(mips_arch_opt_value) String(34kf1_1) Value(64) Canonical EnumValue -Enum(mips_arch_opt_value) String(r34kfx) Value(63) +Enum(mips_arch_opt_value) String(r34kf1_1) Value(64) EnumValue -Enum(mips_arch_opt_value) String(34kx) Value(64) Canonical +Enum(mips_arch_opt_value) String(34kfx) Value(65) Canonical EnumValue -Enum(mips_arch_opt_value) String(r34kx) Value(64) +Enum(mips_arch_opt_value) String(r34kfx) Value(65) EnumValue -Enum(mips_arch_opt_value) String(34kn) Value(65) Canonical +Enum(mips_arch_opt_value) String(34kx) Value(66) Canonical EnumValue -Enum(mips_arch_opt_value) String(r34kn) Value(65) +Enum(mips_arch_opt_value) String(r34kx) Value(66) EnumValue -Enum(mips_arch_opt_value) String(74kc) Value(66) Canonical +Enum(mips_arch_opt_value) String(34kn) Value(67) Canonical EnumValue -Enum(mips_arch_opt_value) String(r74kc) Value(66) +Enum(mips_arch_opt_value) String(r34kn) Value(67) EnumValue -Enum(mips_arch_opt_value) String(74kf2_1) Value(67) Canonical +Enum(mips_arch_opt_value) String(74kc) Value(68) Canonical EnumValue -Enum(mips_arch_opt_value) String(r74kf2_1) Value(67) +Enum(mips_arch_opt_value) String(r74kc) Value(68) EnumValue -Enum(mips_arch_opt_value) String(74kf) Value(68) Canonical +Enum(mips_arch_opt_value) String(74kf2_1) Value(69) Canonical EnumValue -Enum(mips_arch_opt_value) String(r74kf) Value(68) +Enum(mips_arch_opt_value) String(r74kf2_1) Value(69) EnumValue -Enum(mips_arch_opt_value) String(74kf1_1) Value(69) Canonical +Enum(mips_arch_opt_value) String(74kf) Value(70) Canonical EnumValue -Enum(mips_arch_opt_value) String(r74kf1_1) Value(69) +Enum(mips_arch_opt_value) String(r74kf) Value(70) EnumValue -Enum(mips_arch_opt_value) String(74kfx) Value(70) Canonical +Enum(mips_arch_opt_value) String(74kf1_1) Value(71) Canonical EnumValue -Enum(mips_arch_opt_value) String(r74kfx) Value(70) +Enum(mips_arch_opt_value) String(r74kf1_1) Value(71) EnumValue -Enum(mips_arch_opt_value) String(74kx) Value(71) Canonical +Enum(mips_arch_opt_value) String(74kfx) Value(72) Canonical EnumValue -Enum(mips_arch_opt_value) String(r74kx) Value(71) +Enum(mips_arch_opt_value) String(r74kfx) Value(72) EnumValue -Enum(mips_arch_opt_value) String(74kf3_2) Value(72) Canonical +Enum(mips_arch_opt_value) String(74kx) Value(73) Canonical EnumValue -Enum(mips_arch_opt_value) String(r74kf3_2) Value(72) +Enum(mips_arch_opt_value) String(r74kx) Value(73) EnumValue -Enum(mips_arch_opt_value) String(1004kc) Value(73) Canonical +Enum(mips_arch_opt_value) String(74kf3_2) Value(74) Canonical EnumValue -Enum(mips_arch_opt_value) String(r1004kc) Value(73) +Enum(mips_arch_opt_value) String(r74kf3_2) Value(74) EnumValue -Enum(mips_arch_opt_value) String(1004kf2_1) Value(74) Canonical +Enum(mips_arch_opt_value) String(1004kc) Value(75) Canonical EnumValue -Enum(mips_arch_opt_value) String(r1004kf2_1) Value(74) +Enum(mips_arch_opt_value) String(r1004kc) Value(75) EnumValue -Enum(mips_arch_opt_value) String(1004kf) Value(75) Canonical +Enum(mips_arch_opt_value) String(1004kf2_1) Value(76) Canonical EnumValue -Enum(mips_arch_opt_value) String(r1004kf) Value(75) +Enum(mips_arch_opt_value) String(r1004kf2_1) Value(76) EnumValue -Enum(mips_arch_opt_value) String(1004kf1_1) Value(76) Canonical +Enum(mips_arch_opt_value) String(1004kf) Value(77) Canonical EnumValue -Enum(mips_arch_opt_value) String(r1004kf1_1) Value(76) +Enum(mips_arch_opt_value) String(r1004kf) Value(77) EnumValue -Enum(mips_arch_opt_value) String(5kc) Value(77) Canonical +Enum(mips_arch_opt_value) String(1004kf1_1) Value(78) Canonical EnumValue -Enum(mips_arch_opt_value) String(r5kc) Value(77) +Enum(mips_arch_opt_value) String(r1004kf1_1) Value(78) EnumValue -Enum(mips_arch_opt_value) String(5kf) Value(78) Canonical +Enum(mips_arch_opt_value) String(5kc) Value(79) Canonical EnumValue -Enum(mips_arch_opt_value) String(r5kf) Value(78) +Enum(mips_arch_opt_value) String(r5kc) Value(79) EnumValue -Enum(mips_arch_opt_value) String(20kc) Value(79) Canonical +Enum(mips_arch_opt_value) String(5kf) Value(80) Canonical EnumValue -Enum(mips_arch_opt_value) String(r20kc) Value(79) +Enum(mips_arch_opt_value) String(r5kf) Value(80) EnumValue -Enum(mips_arch_opt_value) String(sb1) Value(80) Canonical +Enum(mips_arch_opt_value) String(20kc) Value(81) Canonical EnumValue -Enum(mips_arch_opt_value) String(sb1a) Value(81) Canonical +Enum(mips_arch_opt_value) String(r20kc) Value(81) EnumValue -Enum(mips_arch_opt_value) String(sr71000) Value(82) Canonical +Enum(mips_arch_opt_value) String(sb1) Value(82) Canonical EnumValue -Enum(mips_arch_opt_value) String(sr71k) Value(82) +Enum(mips_arch_opt_value) String(sb1a) Value(83) Canonical EnumValue -Enum(mips_arch_opt_value) String(xlr) Value(83) Canonical +Enum(mips_arch_opt_value) String(sr71000) Value(84) Canonical EnumValue -Enum(mips_arch_opt_value) String(loongson3a) Value(84) Canonical +Enum(mips_arch_opt_value) String(sr71k) Value(84) EnumValue -Enum(mips_arch_opt_value) String(octeon) Value(85) Canonical +Enum(mips_arch_opt_value) String(xlr) Value(85) Canonical EnumValue -Enum(mips_arch_opt_value) String(octeon+) Value(86) Canonical +Enum(mips_arch_opt_value) String(loongson3a) Value(86) Canonical EnumValue -Enum(mips_arch_opt_value) String(octeon2) Value(87) Canonical +Enum(mips_arch_opt_value) String(octeon) Value(87) Canonical EnumValue -Enum(mips_arch_opt_value) String(xlp) Value(88) Canonical +Enum(mips_arch_opt_value) String(octeon+) Value(88) Canonical + +EnumValue +Enum(mips_arch_opt_value) String(octeon2) Value(89) Canonical + +EnumValue +Enum(mips_arch_opt_value) String(xlp) Value(90) Canonical diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h index ff631c1a30b..d775a8c940b 100644 --- a/gcc/config/mips/mips.h +++ b/gcc/config/mips/mips.h @@ -763,7 +763,7 @@ struct mips_cpu_info { #define BASE_DRIVER_SELF_SPECS \ "%{!mno-dsp: \ %{march=24ke*|march=34kc*|march=34kf*|march=34kx*|march=1004k*: -mdsp} \ - %{march=74k*:%{!mno-dspr2: -mdspr2 -mdsp}}}" + %{march=74k*|march=m14ke*: %{!mno-dspr2: -mdspr2 -mdsp}}}" #define DRIVER_SELF_SPECS BASE_DRIVER_SELF_SPECS diff --git a/gcc/config/mips/n32-elf.h b/gcc/config/mips/n32-elf.h new file mode 100644 index 00000000000..0f41a6e9fc7 --- /dev/null +++ b/gcc/config/mips/n32-elf.h @@ -0,0 +1,35 @@ +/* Definitions of target machine for GNU compiler. + n32 for embedded systems. + Copyright (C) 2003-2013 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 3, 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 COPYING3. If not see +<http://www.gnu.org/licenses/>. */ + +/* Use standard ELF-style local labels (not '$' as on early Irix). */ +#undef LOCAL_LABEL_PREFIX +#define LOCAL_LABEL_PREFIX "." + +/* Use periods rather than dollar signs in special g++ assembler names. */ +#define NO_DOLLAR_IN_LABEL + +/* Force n32 to use 64-bit long doubles. */ +#undef LONG_DOUBLE_TYPE_SIZE +#define LONG_DOUBLE_TYPE_SIZE 64 + +#ifdef IN_LIBGCC2 +#undef LIBGCC2_LONG_DOUBLE_TYPE_SIZE +#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 64 +#endif diff --git a/gcc/config/mips/sde.h b/gcc/config/mips/sde.h index d42fee6309f..d35f79f25be 100644 --- a/gcc/config/mips/sde.h +++ b/gcc/config/mips/sde.h @@ -89,23 +89,6 @@ along with GCC; see the file COPYING3. If not see #undef PTRDIFF_TYPE #define PTRDIFF_TYPE "long int" -/* Use standard ELF-style local labels (not '$' as on early Irix). */ -#undef LOCAL_LABEL_PREFIX -#define LOCAL_LABEL_PREFIX "." - -/* Use periods rather than dollar signs in special g++ assembler names. */ -#define NO_DOLLAR_IN_LABEL - -/* Currently we don't support 128bit long doubles, so for now we force - n32 to be 64bit. */ -#undef LONG_DOUBLE_TYPE_SIZE -#define LONG_DOUBLE_TYPE_SIZE 64 - -#ifdef IN_LIBGCC2 -#undef LIBGCC2_LONG_DOUBLE_TYPE_SIZE -#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 64 -#endif - /* Force all .init and .fini entries to be 32-bit, not mips16, so that in a mixed environment they are all the same mode. The crti.asm and crtn.asm files will also be compiled as 32-bit due to the diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index 633d7891157..98a44aa32e1 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -1180,28 +1180,32 @@ enum data_align { align_abi, align_opt, align_both }; /* Value is 1 if it is a good idea to tie two pseudo registers when one has mode MODE1 and one has mode MODE2. If HARD_REGNO_MODE_OK could produce different values for MODE1 and MODE2, - for any hard reg, then this must be 0 for correct output. */ + for any hard reg, then this must be 0 for correct output. + + PTImode cannot tie with other modes because PTImode is restricted to even + GPR registers, and TImode can go in any GPR as well as VSX registers (PR + 57744). */ #define MODES_TIEABLE_P(MODE1, MODE2) \ - (SCALAR_FLOAT_MODE_P (MODE1) \ + ((MODE1) == PTImode \ + ? (MODE2) == PTImode \ + : (MODE2) == PTImode \ + ? 0 \ + : SCALAR_FLOAT_MODE_P (MODE1) \ ? SCALAR_FLOAT_MODE_P (MODE2) \ : SCALAR_FLOAT_MODE_P (MODE2) \ - ? SCALAR_FLOAT_MODE_P (MODE1) \ + ? 0 \ : GET_MODE_CLASS (MODE1) == MODE_CC \ ? GET_MODE_CLASS (MODE2) == MODE_CC \ : GET_MODE_CLASS (MODE2) == MODE_CC \ - ? GET_MODE_CLASS (MODE1) == MODE_CC \ + ? 0 \ : SPE_VECTOR_MODE (MODE1) \ ? SPE_VECTOR_MODE (MODE2) \ : SPE_VECTOR_MODE (MODE2) \ - ? SPE_VECTOR_MODE (MODE1) \ + ? 0 \ : ALTIVEC_OR_VSX_VECTOR_MODE (MODE1) \ ? ALTIVEC_OR_VSX_VECTOR_MODE (MODE2) \ : ALTIVEC_OR_VSX_VECTOR_MODE (MODE2) \ - ? ALTIVEC_OR_VSX_VECTOR_MODE (MODE1) \ - : ALTIVEC_VECTOR_MODE (MODE1) \ - ? ALTIVEC_VECTOR_MODE (MODE2) \ - : ALTIVEC_VECTOR_MODE (MODE2) \ - ? ALTIVEC_VECTOR_MODE (MODE1) \ + ? 0 \ : 1) /* Post-reload, we can't use any new AltiVec registers, as we already diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 93e639e8687..2de63c0b8d8 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,99 @@ +2013-06-28 Ed Smith-Rowland <3dw4rd@verizon.net> + + * cp-tree.h (UDLIT_OP_ANSI_PREFIX): Remove space. + * parser.c (cp_parser_operator()): Parse user-defined string + literal as literal operator. + +2013-06-28 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/57645 + * class.c (deduce_noexcept_on_destructors): Save, set, and restore + TYPE_HAS_NONTRIVIAL_DESTRUCTOR (t) around the main loop over the + destructors. + +2013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com> + + * parser.c (cp_parser_array_notation): Removed rejection array notation + of type function pointers. Added handling of array expressions when + Cilk Plus is enabled. Took out type-checking. + (cp_parser_postfix_open_square_expression): Moved normal array expr. + parsing into cp_parser_array_notation when cilkplus is enabled. + (cp_parser_compound_statement): Removed expansion of array notations. + (cp_parser_ctor_initializer_opt_and_function_body): Likewise. + (cp_parser_function_definition_after_declarator): Likewise. + (cp_parser_selection_statement): Removed error reporting. + (cp_parser_iteration_statement): Likewise. + (cp_parser_direct_declarator): Removed error checking/reporting if + array notations are used in the declarator. + * pt.c (instantiate_decl): Likewise. + (type_unification_real): Removed a check for ARRAY_NOTATION_REF. + (cxx_eval_constant_expression): Removed ARRAY_NOTATION_REF case. + (potential_constant_expression_1): Returned false for + ARRAY_NOTATION_REF case. + * cp-gimplify.c (cp_genericize): Added expansion of array notation + expressions here. + * cp-array-notation.c (make_triplet_val_inv): Removed loc and cry + parameters. Replaced build_decls with get_temp_regvar with type as + ptrdiff. + (create_array_refs): Made the type-casting to ptrdiff_type. + (replace_invariant_var): Added a check for void return type before + creating new var. Replaced build_decl and build_min_nt_loc with + get_temp_regvar. + (expand_an_in_modify_expr): Ditto. Replaced body of redundant else + with gcc_unreachable. Removed few unwanted checks. Made induction + variable type as ptrdiff_type. Removed loc and complain arguments + passed into make_triplet_val_inv. Replaced all modify expression's + code from NOP EXPR to INIT EXPR. Replaced all forceful appending + into stmt. list with the non-forceful one. Replaced some integer + conversion and equality-checking to using tree_int_cst_equal. + (expand_sec_reduce_builtin): All changes mentioned in above function + expand_an_in_modify_expr. Made the new variable type of + SEC_REDUCE_ANY/ALL_{NON}ZERO intrinsic functions as bool. + (expand_array_notation_exprs): Removed SWITCH_EXPR case. Moved all + the error reporting from parser to this function. Removed unwanted + statements and checks from SWITCH_STMT, WHILE_STMT, and DO_STMT cases. + (cilkplus_an_triplet_types_ok_p): Removed rejection of array notation + in function pointers. + (cp_expand_cond_array_notations): Added a new if statements to check + if condition has a zero rank. If so, then just return. + (expand_return_expr): Added a check for return expressions with a rank. + Replaced get_tmp_regvar with a create_temporary_var. + (build_array_notation_ref): Simplified and removed unwanted if-stmts. + Moved common code outside if-statements. Moved type-checking from + parser to here. + * semantics.c (finish_return_stmt): Removed a check for return exprs. + with a rank. + * call.c (convert_like_real): Removed a check for array notation + expression in a function. + (build_over_call): Likewise. + (magic_varargs_p): Added a check for builtin array notation function. + Made this function non-static and removed its prototype. + * cp-tree.h (magic_varargs_p): New prototype. + * typeck.c (cp_build_function_call_vec): Removed automatic setting of + nargs to the param->length when builtin reduction function is used. + (convert_arguments): Replaced check for a constant_p function with + margic_varargs_p function call. + (cp_build_binary_op): Removed calling of the function + find_correct_array_notation_type. + (cp_build_addr_expr_1): Removed an unwanted if-statement. + (convert_for_assignment): Removed automatic return of rhs when array + notation builtin function is used. + +2013-06-28 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/57682 + * parser.c (cp_parser_save_member_function_body): Handle correctly + curly braces in function-try-block mem-initializers. + +2013-06-27 Marc Glisse <marc.glisse@inria.fr> + + PR c++/57509 + * typeck.c (cp_build_vec_perm_expr): New function. + * cp-tree.h: Declare it. + * parser.c (cp_parser_postfix_expression): Call it. + * pt.c (tsubst_copy): Handle VEC_PERM_EXPR. + (tsubst_copy_and_build): Likewise. + 2013-06-27 Marc Glisse <marc.glisse@inria.fr> PR c++/57172 diff --git a/gcc/cp/call.c b/gcc/cp/call.c index 6817bfc25a0..425ef9bcd95 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -216,7 +216,6 @@ static void add_candidates (tree, tree, const vec<tree, va_gc> *, tree, tree, bool, tree, tree, int, struct z_candidate **, tsubst_flags_t); static conversion *merge_conversion_sequences (conversion *, conversion *); -static bool magic_varargs_p (tree); static tree build_temp (tree, tree, int, diagnostic_t *, tsubst_flags_t); /* Returns nonzero iff the destructor name specified in NAME matches BASETYPE. @@ -5857,16 +5856,9 @@ convert_like_real (conversion *convs, tree expr, tree fn, int argnum, else if (t->kind == ck_identity) break; } - - if (flag_enable_cilkplus - && (contains_array_notation_expr (expr) - || contains_array_notation_expr (fn))) - /* If we are using array notations, we fix them up at a later stage - and we will do these checks then. */ - ; - else if (permerror (loc, "invalid conversion from %qT to %qT", - TREE_TYPE (expr), totype) - && fn) + if (permerror (loc, "invalid conversion from %qT to %qT", + TREE_TYPE (expr), totype) + && fn) inform (DECL_SOURCE_LOCATION (fn), "initializing argument %P of %qD", argnum, fn); @@ -6515,9 +6507,12 @@ convert_for_arg_passing (tree type, tree val, tsubst_flags_t complain) which no conversions at all should be done. This is true for some builtins which don't act like normal functions. */ -static bool +bool magic_varargs_p (tree fn) { + if (flag_enable_cilkplus && is_cilkplus_reduce_builtin (fn) != BUILT_IN_NONE) + return true; + if (DECL_BUILT_IN (fn)) switch (DECL_FUNCTION_CODE (fn)) { @@ -6895,21 +6890,13 @@ build_over_call (struct z_candidate *cand, int flags, tsubst_flags_t complain) " (you can disable this with -fno-deduce-init-list)"); } } + val = convert_like_with_context (conv, arg, fn, i - is_method, + conversion_warning + ? complain + : complain & (~tf_warning)); - /* If the function call is builtin array notation function then no need - to do any type conversion. */ - if (flag_enable_cilkplus - && is_cilkplus_reduce_builtin (fn) != BUILT_IN_NONE) - val = arg; - else - { - val = convert_like_with_context (conv, arg, fn, i - is_method, - conversion_warning - ? complain - : complain & (~tf_warning)); - - val = convert_for_arg_passing (type, val, complain); - } + val = convert_for_arg_passing (type, val, complain); + if (val == error_mark_node) return error_mark_node; else diff --git a/gcc/cp/class.c b/gcc/cp/class.c index 0067605969a..bb2c3fe80e4 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -4593,15 +4593,20 @@ deduce_noexcept_on_destructor (tree dtor) static void deduce_noexcept_on_destructors (tree t) { - tree fns; - /* If for some reason we don't have a CLASSTYPE_METHOD_VEC, we bail out now. */ if (!CLASSTYPE_METHOD_VEC (t)) return; - for (fns = CLASSTYPE_DESTRUCTORS (t); fns; fns = OVL_NEXT (fns)) + bool saved_nontrivial_dtor = TYPE_HAS_NONTRIVIAL_DESTRUCTOR (t); + + /* Avoid early exit from synthesized_method_walk (c++/57645). */ + TYPE_HAS_NONTRIVIAL_DESTRUCTOR (t) = true; + + for (tree fns = CLASSTYPE_DESTRUCTORS (t); fns; fns = OVL_NEXT (fns)) deduce_noexcept_on_destructor (OVL_CURRENT (fns)); + + TYPE_HAS_NONTRIVIAL_DESTRUCTOR (t) = saved_nontrivial_dtor; } /* Subroutine of set_one_vmethod_tm_attributes. Search base classes diff --git a/gcc/cp/cp-array-notation.c b/gcc/cp/cp-array-notation.c index 491da0fecc4..d279ddd9c72 100644 --- a/gcc/cp/cp-array-notation.c +++ b/gcc/cp/cp-array-notation.c @@ -59,7 +59,6 @@ #include "diagnostic.h" #include "tree-iterator.h" #include "vec.h" -#include "gimple.h" /* Creates a FOR_STMT with INIT, COND, INCR and BODY as the initializer, condition, increment expression and the loop-body, respectively. */ @@ -82,17 +81,12 @@ create_an_loop (tree init, tree cond, tree incr, tree body) a variable to make it loop invariant for array notations. */ static inline void -make_triplet_val_inv (location_t loc, tree *value, tsubst_flags_t cry) +make_triplet_val_inv (tree *value) { - tree var; if (TREE_CODE (*value) != INTEGER_CST && TREE_CODE (*value) != PARM_DECL && TREE_CODE (*value) != VAR_DECL) - { - var = build_decl (loc, VAR_DECL, NULL_TREE, integer_type_node); - finish_expr_stmt (build_x_modify_expr (loc, var, NOP_EXPR, *value, cry)); - *value = var; - } + *value = get_temp_regvar (ptrdiff_type_node, *value); } /* Returns a vector of size RANK that contains an ARRAY_REF. This vector is @@ -112,47 +106,22 @@ create_array_refs (location_t loc, vec<vec<an_parts> > an_info, { tree ind_mult, ind_incr; vec<tree, va_gc> *array_operand = NULL; + for (size_t ii = 0; ii < size; ii++) if (an_info[ii][0].is_vector) { tree array_opr = an_info[ii][rank - 1].value; for (int s_jj = rank -1; s_jj >= 0; s_jj--) { - tree str = NULL_TREE, v = NULL_TREE, st = NULL_TREE; - tree start = an_info[ii][s_jj].start; - tree stride = an_info[ii][s_jj].stride; - tree var = an_loop_info[s_jj].var; - - /* If stride and start are of same type and the induction var - is not, convert induction variable to stride's type. */ - if (TREE_TYPE (start) == TREE_TYPE (stride) - && TREE_TYPE (stride) != TREE_TYPE (var)) - { - st = start; - str = stride; - v = build_c_cast (loc, TREE_TYPE (str), var); - } - else if (TREE_TYPE (start) != TREE_TYPE (stride)) - { - /* If we reach here, then the stride and start are of - different types, and so it doesn't really matter what - the induction variable type is, convert everything to - integer. The reason why we pick an integer - instead of something like size_t is because the stride - and length can be + or -. */ - st = build_c_cast (loc, integer_type_node, start); - str = build_c_cast (loc, integer_type_node, stride); - v = build_c_cast (loc, integer_type_node, var); - } - else - { - st = start; - str = stride; - v = var; - } - - ind_mult = build2 (MULT_EXPR, TREE_TYPE (v), v, str); - ind_incr = build2 (PLUS_EXPR, TREE_TYPE (v), st, ind_mult); + tree start = cp_fold_convert (ptrdiff_type_node, + an_info[ii][s_jj].start); + tree stride = cp_fold_convert (ptrdiff_type_node, + an_info[ii][s_jj].stride); + tree var = cp_fold_convert (ptrdiff_type_node, + an_loop_info[s_jj].var); + + ind_mult = build2 (MULT_EXPR, TREE_TYPE (var), var, stride); + ind_incr = build2 (PLUS_EXPR, TREE_TYPE (var), start, ind_mult); /* Array [ start_index + (induction_var * stride)] */ array_opr = grok_array_decl (loc, array_opr, ind_incr, false); } @@ -192,7 +161,7 @@ replace_invariant_exprs (tree *node) { size_t ix = 0; tree node_list = NULL_TREE; - tree t = NULL_TREE, new_var = NULL_TREE, new_node; + tree t = NULL_TREE, new_var = NULL_TREE; struct inv_list data; data.list_values = NULL; @@ -204,17 +173,18 @@ replace_invariant_exprs (tree *node) { node_list = push_stmt_list (); for (ix = 0; vec_safe_iterate (data.list_values, ix, &t); ix++) - { - if (processing_template_decl || !TREE_TYPE (t)) - new_var = build_min_nt_loc (EXPR_LOCATION (t), VAR_DECL, NULL_TREE, - NULL_TREE); - else - new_var = build_decl (EXPR_LOCATION (t), VAR_DECL, NULL_TREE, - TREE_TYPE (t)); - gcc_assert (new_var != NULL_TREE && new_var != error_mark_node); - new_node = build_x_modify_expr (EXPR_LOCATION (t), new_var, NOP_EXPR, - t, tf_warning_or_error); - finish_expr_stmt (new_node); + { + /* Sometimes, when comma_expr has a function call in it, it will + typecast it to void. Find_inv_trees finds those nodes and so + if it void type, then don't bother creating a new var to hold + the return value. */ + if (VOID_TYPE_P (TREE_TYPE (t))) + { + finish_expr_stmt (t); + new_var = void_zero_node; + } + else + new_var = get_temp_regvar (TREE_TYPE (t), t); vec_safe_push (data.replacement, new_var); } cp_walk_tree (node, replace_inv_trees, (void *) &data, NULL); @@ -235,7 +205,6 @@ expand_sec_reduce_builtin (tree an_builtin_fn, tree *new_var) tree new_var_type = NULL_TREE, func_parm, new_yes_expr, new_no_expr; tree array_ind_value = NULL_TREE, new_no_ind, new_yes_ind, new_no_list; tree new_yes_list, new_cond_expr, new_expr = NULL_TREE; - tree new_var_init = NULL_TREE, new_exp_init = NULL_TREE; vec<tree, va_gc> *array_list = NULL, *array_operand = NULL; size_t list_size = 0, rank = 0, ii = 0; tree body, an_init, loop_with_init = alloc_stmt_list (); @@ -305,7 +274,7 @@ expand_sec_reduce_builtin (tree an_builtin_fn, tree *new_var) case BUILT_IN_CILKPLUS_SEC_REDUCE_ANY_ZERO: case BUILT_IN_CILKPLUS_SEC_REDUCE_ANY_NONZERO: case BUILT_IN_CILKPLUS_SEC_REDUCE_ALL_NONZERO: - new_var_type = integer_type_node; + new_var_type = boolean_type_node; break; case BUILT_IN_CILKPLUS_SEC_REDUCE_MAX_IND: case BUILT_IN_CILKPLUS_SEC_REDUCE_MIN_IND: @@ -334,24 +303,30 @@ expand_sec_reduce_builtin (tree an_builtin_fn, tree *new_var) if (TREE_CODE ((*array_list)[ii]) == ARRAY_NOTATION_REF) { tree anode = (*array_list)[ii]; - make_triplet_val_inv (location, &ARRAY_NOTATION_START (anode), - tf_warning_or_error); - make_triplet_val_inv (location, &ARRAY_NOTATION_LENGTH (anode), - tf_warning_or_error); - make_triplet_val_inv (location, &ARRAY_NOTATION_STRIDE (anode), - tf_warning_or_error); + make_triplet_val_inv (&ARRAY_NOTATION_START (anode)); + make_triplet_val_inv (&ARRAY_NOTATION_LENGTH (anode)); + make_triplet_val_inv (&ARRAY_NOTATION_STRIDE (anode)); } cilkplus_extract_an_triplets (array_list, list_size, rank, &an_info); for (ii = 0; ii < rank; ii++) { - an_loop_info[ii].var = build_decl (location, VAR_DECL, NULL_TREE, - TREE_TYPE (an_info[0][ii].start)); - an_loop_info[ii].ind_init = build_x_modify_expr - (location, an_loop_info[ii].var, NOP_EXPR, - build_zero_cst (TREE_TYPE (an_loop_info[ii].var)), - tf_warning_or_error); + tree typ = ptrdiff_type_node; + + /* In this place, we are using get_temp_regvar instead of + create_temporary_var if an_type is SEC_REDUCE_MAX/MIN_IND because + the array_ind_value depends on this value being initalized to 0. */ + if (an_type == BUILT_IN_CILKPLUS_SEC_REDUCE_MAX_IND + || an_type == BUILT_IN_CILKPLUS_SEC_REDUCE_MIN_IND) + an_loop_info[ii].var = get_temp_regvar (typ, build_zero_cst (typ)); + else + { + an_loop_info[ii].var = create_temporary_var (typ); + add_decl_expr (an_loop_info[ii].var); + } + an_loop_info[ii].ind_init = + build_x_modify_expr (location, an_loop_info[ii].var, INIT_EXPR, + build_zero_cst (typ), tf_warning_or_error); } - array_operand = create_array_refs (location, an_info, an_loop_info, list_size, rank); replace_array_notations (&func_parm, true, array_list, array_operand); @@ -360,26 +335,9 @@ expand_sec_reduce_builtin (tree an_builtin_fn, tree *new_var) TREE_TYPE (func_parm) = TREE_TYPE ((*array_list)[0]); create_cmp_incr (location, &an_loop_info, rank, an_info, tf_warning_or_error); - if (an_type != BUILT_IN_CILKPLUS_SEC_REDUCE_MUTATING) - { - if (processing_template_decl) - *new_var = build_decl (location, VAR_DECL, NULL_TREE, new_var_type); - else - *new_var = create_tmp_var (new_var_type, NULL); - } - else - /* We do not require a new variable for mutating. The "identity value" - itself is the variable. */ - *new_var = NULL_TREE; - if (an_type == BUILT_IN_CILKPLUS_SEC_REDUCE_MAX_IND - || an_type == BUILT_IN_CILKPLUS_SEC_REDUCE_MIN_IND) - { - array_ind_value = create_tmp_var (TREE_TYPE (func_parm), NULL); - gcc_assert (array_ind_value && (array_ind_value != error_mark_node)); - DECL_INITIAL (array_ind_value) = NULL_TREE; - pushdecl (array_ind_value); - } + || an_type == BUILT_IN_CILKPLUS_SEC_REDUCE_MIN_IND) + array_ind_value = get_temp_regvar (TREE_TYPE (func_parm), func_parm); array_op0 = (*array_operand)[0]; switch (an_type) @@ -394,35 +352,36 @@ expand_sec_reduce_builtin (tree an_builtin_fn, tree *new_var) break; case BUILT_IN_CILKPLUS_SEC_REDUCE_ANY_ZERO: case BUILT_IN_CILKPLUS_SEC_REDUCE_ANY_NONZERO: - code = (an_type == BUILT_IN_CILKPLUS_SEC_REDUCE_ANY_ZERO) ? EQ_EXPR - : NE_EXPR; + code = ((an_type == BUILT_IN_CILKPLUS_SEC_REDUCE_ANY_ZERO) ? EQ_EXPR + : NE_EXPR); init = build_zero_cst (new_var_type); cond_init = build_one_cst (new_var_type); comp_node = build_zero_cst (TREE_TYPE (func_parm)); break; case BUILT_IN_CILKPLUS_SEC_REDUCE_ALL_ZERO: case BUILT_IN_CILKPLUS_SEC_REDUCE_ALL_NONZERO: - code = (an_type == BUILT_IN_CILKPLUS_SEC_REDUCE_ALL_ZERO) ? NE_EXPR - : EQ_EXPR; + code = ((an_type == BUILT_IN_CILKPLUS_SEC_REDUCE_ALL_ZERO) ? NE_EXPR + : EQ_EXPR); init = build_one_cst (new_var_type); cond_init = build_zero_cst (new_var_type); comp_node = build_zero_cst (TREE_TYPE (func_parm)); break; case BUILT_IN_CILKPLUS_SEC_REDUCE_MAX: code = MAX_EXPR; - init = TYPE_MIN_VALUE (new_var_type) ? TYPE_MIN_VALUE (new_var_type) - : func_parm; + init = (TYPE_MIN_VALUE (new_var_type) ? TYPE_MIN_VALUE (new_var_type) + : func_parm); break; case BUILT_IN_CILKPLUS_SEC_REDUCE_MIN: code = MIN_EXPR; - init = TYPE_MAX_VALUE (new_var_type) ? TYPE_MAX_VALUE (new_var_type) - : func_parm; + init = (TYPE_MAX_VALUE (new_var_type) ? TYPE_MAX_VALUE (new_var_type) + : func_parm); break; case BUILT_IN_CILKPLUS_SEC_REDUCE_MIN_IND: case BUILT_IN_CILKPLUS_SEC_REDUCE_MAX_IND: - code = an_type == BUILT_IN_CILKPLUS_SEC_REDUCE_MAX_IND ? LE_EXPR - : GE_EXPR; + code = (an_type == BUILT_IN_CILKPLUS_SEC_REDUCE_MAX_IND ? LE_EXPR + : GE_EXPR); init = an_loop_info[0].var; + break; case BUILT_IN_CILKPLUS_SEC_REDUCE: init = identity_value; break; @@ -433,9 +392,11 @@ expand_sec_reduce_builtin (tree an_builtin_fn, tree *new_var) gcc_unreachable (); } - if (init) - new_var_init = build_x_modify_expr (location, *new_var, NOP_EXPR, init, - tf_warning_or_error); + if (an_type != BUILT_IN_CILKPLUS_SEC_REDUCE_MUTATING) + *new_var = get_temp_regvar (new_var_type, init); + else + *new_var = NULL_TREE; + switch (an_type) { case BUILT_IN_CILKPLUS_SEC_REDUCE_ADD: @@ -470,8 +431,6 @@ expand_sec_reduce_builtin (tree an_builtin_fn, tree *new_var) break; case BUILT_IN_CILKPLUS_SEC_REDUCE_MAX_IND: case BUILT_IN_CILKPLUS_SEC_REDUCE_MIN_IND: - new_exp_init = build_x_modify_expr (location, array_ind_value, NOP_EXPR, - func_parm, tf_warning_or_error); new_yes_expr = build_x_modify_expr (location, array_ind_value, NOP_EXPR, func_parm, tf_warning_or_error); new_no_expr = build_x_modify_expr (location, array_ind_value, NOP_EXPR, @@ -521,21 +480,8 @@ expand_sec_reduce_builtin (tree an_builtin_fn, tree *new_var) default: gcc_unreachable (); } - - /* The reason we are putting initial variable twice is because the - new exp init below depends on this value being initialized. */ - for (ii = 0; ii < rank; ii++) - finish_expr_stmt (an_loop_info[ii].ind_init); - - if (an_type != BUILT_IN_CILKPLUS_SEC_REDUCE_MUTATING) - finish_expr_stmt (new_var_init); - - if (an_type == BUILT_IN_CILKPLUS_SEC_REDUCE_MAX_IND - || an_type == BUILT_IN_CILKPLUS_SEC_REDUCE_MIN_IND) - finish_expr_stmt (new_exp_init); - an_init = pop_stmt_list (an_init); - append_to_statement_list_force (an_init, &loop_with_init); + append_to_statement_list (an_init, &loop_with_init); body = new_expr; for (ii = 0; ii < rank; ii++) @@ -545,7 +491,7 @@ expand_sec_reduce_builtin (tree an_builtin_fn, tree *new_var) an_loop_info[ii].incr, body); body = pop_stmt_list (new_loop); } - append_to_statement_list_force (body, &loop_with_init); + append_to_statement_list (body, &loop_with_init); an_info.release (); an_loop_info.release (); @@ -634,10 +580,7 @@ expand_an_in_modify_expr (location_t location, tree lhs, return an_init; } else - { - pop_stmt_list (an_init); - return NULL_TREE; - } + gcc_unreachable (); } /* If for some reason location is not set, then find if LHS or RHS has @@ -659,8 +602,6 @@ expand_an_in_modify_expr (location_t location, tree lhs, if (lhs_rank == 0 && rhs_rank != 0) { - if (location == UNKNOWN_LOCATION && EXPR_HAS_LOCATION (rhs)) - location = EXPR_LOCATION (rhs); error_at (location, "%qD cannot be scalar when %qD is not", lhs, rhs); return error_mark_node; } @@ -675,17 +616,17 @@ expand_an_in_modify_expr (location_t location, tree lhs, for (ii = 0; ii < lhs_list_size; ii++) { tree anode = (*lhs_list)[ii]; - make_triplet_val_inv (location, &ARRAY_NOTATION_START (anode), complain); - make_triplet_val_inv (location, &ARRAY_NOTATION_LENGTH (anode), complain); - make_triplet_val_inv (location, &ARRAY_NOTATION_STRIDE (anode), complain); + make_triplet_val_inv (&ARRAY_NOTATION_START (anode)); + make_triplet_val_inv (&ARRAY_NOTATION_LENGTH (anode)); + make_triplet_val_inv (&ARRAY_NOTATION_STRIDE (anode)); } for (ii = 0; ii < rhs_list_size; ii++) if ((*rhs_list)[ii] && TREE_CODE ((*rhs_list)[ii]) == ARRAY_NOTATION_REF) { tree aa = (*rhs_list)[ii]; - make_triplet_val_inv (location, &ARRAY_NOTATION_START (aa), complain); - make_triplet_val_inv (location, &ARRAY_NOTATION_LENGTH (aa), complain); - make_triplet_val_inv (location, &ARRAY_NOTATION_STRIDE (aa), complain); + make_triplet_val_inv (&ARRAY_NOTATION_START (aa)); + make_triplet_val_inv (&ARRAY_NOTATION_LENGTH (aa)); + make_triplet_val_inv (&ARRAY_NOTATION_STRIDE (aa)); } lhs_an_loop_info.safe_grow_cleared (lhs_rank); @@ -705,31 +646,29 @@ expand_an_in_modify_expr (location_t location, tree lhs, pop_stmt_list (an_init); return error_mark_node; } - tree rhs_len = (rhs_list_size > 0 && rhs_rank > 0) ? - rhs_an_info[0][0].length : NULL_TREE; - tree lhs_len = (lhs_list_size > 0 && lhs_rank > 0) ? - lhs_an_info[0][0].length : NULL_TREE; + tree rhs_len = ((rhs_list_size > 0 && rhs_rank > 0) ? + rhs_an_info[0][0].length : NULL_TREE); + tree lhs_len = ((lhs_list_size > 0 && lhs_rank > 0) ? + lhs_an_info[0][0].length : NULL_TREE); if (lhs_list_size > 0 && rhs_list_size > 0 && lhs_rank > 0 && rhs_rank > 0 && TREE_CODE (lhs_len) == INTEGER_CST && rhs_len - && TREE_CODE (rhs_len) == INTEGER_CST) - { - HOST_WIDE_INT l_length = int_cst_value (lhs_len); - HOST_WIDE_INT r_length = int_cst_value (rhs_len); - if (absu_hwi (l_length) != absu_hwi (r_length)) - { - error_at (location, "length mismatch between LHS and RHS"); - pop_stmt_list (an_init); - return error_mark_node; - } + && TREE_CODE (rhs_len) == INTEGER_CST + && !tree_int_cst_equal (rhs_len, lhs_len)) + { + error_at (location, "length mismatch between LHS and RHS"); + pop_stmt_list (an_init); + return error_mark_node; } - for (ii = 0; ii < lhs_rank; ii++) - if (lhs_an_info[0][ii].start && TREE_TYPE (lhs_an_info[0][ii].start)) - lhs_an_loop_info[ii].var = - build_decl (location, VAR_DECL, NULL_TREE, - TREE_TYPE (lhs_an_info[0][ii].start)); - else - lhs_an_loop_info[ii].var = build_decl (location, VAR_DECL, NULL_TREE, - integer_type_node); + for (ii = 0; ii < lhs_rank; ii++) + { + tree typ = ptrdiff_type_node; + lhs_an_loop_info[ii].var = create_temporary_var (typ); + add_decl_expr (lhs_an_loop_info[ii].var); + lhs_an_loop_info[ii].ind_init = build_x_modify_expr + (location, lhs_an_loop_info[ii].var, INIT_EXPR, build_zero_cst (typ), + complain); + } + if (rhs_list_size > 0) { rhs_array_operand = fix_sec_implicit_args (location, rhs_list, @@ -743,24 +682,15 @@ expand_an_in_modify_expr (location_t location, tree lhs, rhs_list = NULL; extract_array_notation_exprs (rhs, true, &rhs_list); rhs_list_size = vec_safe_length (rhs_list); - - for (ii = 0; ii < lhs_rank; ii++) - if (lhs_an_info[0][ii].is_vector) - { - lhs_an_loop_info[ii].ind_init = build_x_modify_expr - (location, lhs_an_loop_info[ii].var, NOP_EXPR, - build_zero_cst (TREE_TYPE (lhs_an_loop_info[ii].var)), complain); - } + for (ii = 0; ii < rhs_rank; ii++) { - /* When we have a polynomial, we assume that the indices are of type - integer. */ - rhs_an_loop_info[ii].var = - build_decl (location, VAR_DECL, NULL_TREE, - TREE_TYPE (rhs_an_info[0][ii].start)); + tree typ = ptrdiff_type_node; + rhs_an_loop_info[ii].var = create_temporary_var (typ); + add_decl_expr (rhs_an_loop_info[ii].var); rhs_an_loop_info[ii].ind_init = build_x_modify_expr - (location, rhs_an_loop_info[ii].var, NOP_EXPR, - build_zero_cst (TREE_TYPE (rhs_an_loop_info[ii].var)), complain); + (location, rhs_an_loop_info[ii].var, INIT_EXPR, build_zero_cst (typ), + complain); } if (lhs_rank) @@ -809,12 +739,12 @@ expand_an_in_modify_expr (location_t location, tree lhs, else if (ii < lhs_rank && ii >= rhs_rank) cond_expr[ii] = lhs_an_loop_info[ii].cmp; else - /* No need to compare ii < rhs_rank && ii >= lhs_rank because valid Array - notation expression cannot RHS's rank cannot be greater than LHS. */ + /* No need to compare ii < rhs_rank && ii >= lhs_rank because in a valid + Array notation expression, rank of RHS cannot be greater than LHS. */ gcc_unreachable (); an_init = pop_stmt_list (an_init); - append_to_statement_list_force (an_init, &loop_with_init); + append_to_statement_list (an_init, &loop_with_init); body = array_expr; for (ii = 0; ii < MAX (lhs_rank, rhs_rank); ii++) { @@ -824,17 +754,13 @@ expand_an_in_modify_expr (location_t location, tree lhs, if (lhs_rank) { - append_to_statement_list_force (lhs_an_loop_info[ii].ind_init, - &init_list); - append_to_statement_list_force (lhs_an_loop_info[ii].incr, - &incr_list); + append_to_statement_list (lhs_an_loop_info[ii].ind_init, &init_list); + append_to_statement_list (lhs_an_loop_info[ii].incr, &incr_list); } if (rhs_rank) { - append_to_statement_list_force (rhs_an_loop_info[ii].ind_init, - &init_list); - append_to_statement_list_force (rhs_an_loop_info[ii].incr, - &incr_list); + append_to_statement_list (rhs_an_loop_info[ii].ind_init, &init_list); + append_to_statement_list (rhs_an_loop_info[ii].incr, &incr_list); } create_an_loop (init_list, cond_expr[ii], incr_list, body); body = pop_stmt_list (new_loop); @@ -867,7 +793,6 @@ cp_expand_cond_array_notations (tree orig_stmt) tree an_init, body, stmt = NULL_TREE; tree builtin_loop, new_var = NULL_TREE; tree loop_with_init = alloc_stmt_list (); - tsubst_flags_t complain = tf_warning_or_error; location_t location = UNKNOWN_LOCATION; vec<vec<an_parts> > an_info = vNULL; vec<an_loop_parts> an_loop_info = vNULL; @@ -884,13 +809,17 @@ cp_expand_cond_array_notations (tree orig_stmt) || find_rank (EXPR_LOCATION (no_expr), no_expr, no_expr, true, &no_rank)) return error_mark_node; - if (cond_rank != 0 && cond_rank != yes_rank && yes_rank != 0) + /* If the condition has a zero rank, then handle array notations in body + seperately. */ + if (cond_rank == 0) + return orig_stmt; + if (cond_rank != yes_rank && yes_rank != 0) { error_at (EXPR_LOCATION (yes_expr), "rank mismatch with controlling" " expression of parent if-statement"); return error_mark_node; } - else if (cond_rank != 0 && cond_rank != no_rank && no_rank != 0) + else if (cond_rank != no_rank && no_rank != 0) { error_at (EXPR_LOCATION (no_expr), "rank mismatch with controlling " "expression of parent if-statement"); @@ -911,13 +840,17 @@ cp_expand_cond_array_notations (tree orig_stmt) && !find_rank (EXPR_LOCATION (no_expr), no_expr, no_expr, true, &no_rank))) return error_mark_node; - if (cond_rank != 0 && cond_rank != yes_rank && yes_rank != 0) + + /* Same reasoning as for COND_EXPR. */ + if (cond_rank == 0) + return orig_stmt; + else if (cond_rank != yes_rank && yes_rank != 0) { error_at (EXPR_LOCATION (yes_expr), "rank mismatch with controlling" " expression of parent if-statement"); return error_mark_node; } - else if (cond_rank != 0 && cond_rank != no_rank && no_rank != 0) + else if (cond_rank != no_rank && no_rank != 0) { error_at (EXPR_LOCATION (no_expr), "rank mismatch with controlling " "expression of parent if-statement"); @@ -949,11 +882,11 @@ cp_expand_cond_array_notations (tree orig_stmt) vec_safe_push (new_var_list, new_var); replace_array_notations (&orig_stmt, false, sub_list, new_var_list); - append_to_statement_list_force (builtin_loop, &stmt); + append_to_statement_list (builtin_loop, &stmt); } } } - append_to_statement_list_force (orig_stmt, &stmt); + append_to_statement_list (orig_stmt, &stmt); rank = 0; array_list = NULL; if (!find_rank (EXPR_LOCATION (stmt), stmt, stmt, true, &rank)) @@ -977,37 +910,28 @@ cp_expand_cond_array_notations (tree orig_stmt) for (ii = 0; ii < list_size; ii++) { tree anode = (*array_list)[ii]; - make_triplet_val_inv (location, &ARRAY_NOTATION_START (anode), complain); - make_triplet_val_inv (location, &ARRAY_NOTATION_LENGTH (anode), complain); - make_triplet_val_inv (location, &ARRAY_NOTATION_STRIDE (anode), complain); + make_triplet_val_inv (&ARRAY_NOTATION_START (anode)); + make_triplet_val_inv (&ARRAY_NOTATION_LENGTH (anode)); + make_triplet_val_inv (&ARRAY_NOTATION_STRIDE (anode)); } cilkplus_extract_an_triplets (array_list, list_size, rank, &an_info); - for (ii = 0; ii < rank; ii++) - if (TREE_TYPE (an_info[0][ii].start) - && TREE_CODE (TREE_TYPE (an_info[0][ii].start)) != TEMPLATE_TYPE_PARM) - { - an_loop_info[ii].var = build_decl (location, VAR_DECL, NULL_TREE, - TREE_TYPE (an_info[0][ii].start)); - an_loop_info[ii].ind_init = build_x_modify_expr - (location, an_loop_info[ii].var, NOP_EXPR, - build_zero_cst (TREE_TYPE (an_loop_info[ii].var)), - tf_warning_or_error); - } - else - { - an_loop_info[ii].var = build_min_nt_loc (location, VAR_DECL, - NULL_TREE, NULL_TREE); - an_loop_info[ii].ind_init = - build_x_modify_expr (location, an_loop_info[ii].var, NOP_EXPR, - integer_zero_node, tf_warning_or_error); - } + + for (ii = 0; ii < rank; ii++) + { + tree typ = ptrdiff_type_node; + an_loop_info[ii].var = create_temporary_var (typ); + add_decl_expr (an_loop_info[ii].var); + an_loop_info[ii].ind_init = + build_x_modify_expr (location, an_loop_info[ii].var, INIT_EXPR, + build_zero_cst (typ), tf_warning_or_error); + } array_operand = create_array_refs (location, an_info, an_loop_info, list_size, rank); replace_array_notations (&stmt, true, array_list, array_operand); create_cmp_incr (location, &an_loop_info, rank, an_info, tf_warning_or_error); an_init = pop_stmt_list (an_init); - append_to_statement_list_force (an_init, &loop_with_init); + append_to_statement_list (an_init, &loop_with_init); body = stmt; for (ii = 0; ii < rank; ii++) @@ -1017,7 +941,7 @@ cp_expand_cond_array_notations (tree orig_stmt) an_loop_info[ii].incr, body); body = pop_stmt_list (new_loop); } - append_to_statement_list_force (body, &loop_with_init); + append_to_statement_list (body, &loop_with_init); an_info.release (); an_loop_info.release (); @@ -1062,14 +986,14 @@ expand_unary_array_notation_exprs (tree orig_stmt) { vec<tree, va_gc> *sub_list = NULL, *new_var_list = NULL; stmt = alloc_stmt_list (); - append_to_statement_list_force (builtin_loop, &stmt); + append_to_statement_list (builtin_loop, &stmt); vec_safe_push (sub_list, list_node); vec_safe_push (new_var_list, new_var); replace_array_notations (&orig_stmt, false, sub_list, new_var_list); } } if (stmt != NULL_TREE) - append_to_statement_list_force (finish_expr_stmt (orig_stmt), &stmt); + append_to_statement_list (finish_expr_stmt (orig_stmt), &stmt); else stmt = orig_stmt; rank = 0; @@ -1089,22 +1013,19 @@ expand_unary_array_notation_exprs (tree orig_stmt) for (ii = 0; ii < list_size; ii++) { tree array_node = (*array_list)[ii]; - make_triplet_val_inv (location, &ARRAY_NOTATION_START (array_node), - tf_warning_or_error); - make_triplet_val_inv (location, &ARRAY_NOTATION_LENGTH (array_node), - tf_warning_or_error); - make_triplet_val_inv (location, &ARRAY_NOTATION_STRIDE (array_node), - tf_warning_or_error); + make_triplet_val_inv (&ARRAY_NOTATION_START (array_node)); + make_triplet_val_inv (&ARRAY_NOTATION_LENGTH (array_node)); + make_triplet_val_inv (&ARRAY_NOTATION_STRIDE (array_node)); } cilkplus_extract_an_triplets (array_list, list_size, rank, &an_info); for (ii = 0; ii < rank; ii++) { - an_loop_info[ii].var = build_decl (location, VAR_DECL, NULL_TREE, - TREE_TYPE (an_info[0][ii].start)); + tree typ = ptrdiff_type_node; + an_loop_info[ii].var = create_temporary_var (typ); + add_decl_expr (an_loop_info[ii].var); an_loop_info[ii].ind_init = build_x_modify_expr - (location, an_loop_info[ii].var, NOP_EXPR, - build_zero_cst (TREE_TYPE (an_loop_info[ii].var)), + (location, an_loop_info[ii].var, INIT_EXPR, build_zero_cst (typ), tf_warning_or_error); } array_operand = create_array_refs (location, an_info, an_loop_info, @@ -1113,7 +1034,7 @@ expand_unary_array_notation_exprs (tree orig_stmt) create_cmp_incr (location, &an_loop_info, rank, an_info, tf_warning_or_error); an_init = pop_stmt_list (an_init); - append_to_statement_list_force (an_init, &loop_with_init); + append_to_statement_list (an_init, &loop_with_init); body = stmt; for (ii = 0; ii < rank; ii++) @@ -1123,7 +1044,7 @@ expand_unary_array_notation_exprs (tree orig_stmt) an_loop_info[ii].incr, body); body = pop_stmt_list (new_loop); } - append_to_statement_list_force (body, &loop_with_init); + append_to_statement_list (body, &loop_with_init); an_info.release (); an_loop_info.release (); @@ -1139,21 +1060,35 @@ static tree expand_return_expr (tree expr) { tree new_mod_list, new_var, new_mod, retval_expr; - + size_t rank = 0; + location_t loc = EXPR_LOCATION (expr); if (TREE_CODE (expr) != RETURN_EXPR) return expr; + + if (!find_rank (loc, expr, expr, false, &rank)) + return error_mark_node; - location_t loc = EXPR_LOCATION (expr); - new_mod_list = alloc_stmt_list (); + /* If the return expression contains array notations, then flag it as + error. */ + if (rank >= 1) + { + error_at (loc, "array notation expression cannot be used as a return " + "value"); + return error_mark_node; + } + + new_mod_list = push_stmt_list (); retval_expr = TREE_OPERAND (expr, 0); - new_var = build_decl (loc, VAR_DECL, NULL_TREE, TREE_TYPE (retval_expr)); + new_var = create_temporary_var (TREE_TYPE (retval_expr)); + add_decl_expr (new_var); new_mod = expand_an_in_modify_expr (loc, new_var, NOP_EXPR, - TREE_OPERAND (retval_expr, 1), - tf_warning_or_error); + TREE_OPERAND (retval_expr, 1), + tf_warning_or_error); TREE_OPERAND (retval_expr, 1) = new_var; TREE_OPERAND (expr, 0) = retval_expr; - append_to_statement_list_force (new_mod, &new_mod_list); - append_to_statement_list_force (expr, &new_mod_list); + add_stmt (new_mod); + add_stmt (expr); + new_mod_list = pop_stmt_list (new_mod_list); return new_mod_list; } @@ -1290,19 +1225,21 @@ expand_array_notation_exprs (tree t) else t = expand_array_notation_exprs (t); return t; - - case SWITCH_EXPR: - t = cp_expand_cond_array_notations (t); - if (TREE_CODE (t) == SWITCH_EXPR) - SWITCH_BODY (t) = expand_array_notation_exprs (SWITCH_BODY (t)); - else - t = expand_array_notation_exprs (t); - return t; - case FOR_STMT: + case FOR_STMT: + if (contains_array_notation_expr (FOR_COND (t))) + { + error_at (EXPR_LOCATION (FOR_COND (t)), + "array notation cannot be used in a condition for " + "a for-loop"); + return error_mark_node; + } /* FIXME: Add a check for CILK_FOR_STMT here when we add Cilk tasking keywords. */ if (TREE_CODE (t) == FOR_STMT) - FOR_BODY (t) = expand_array_notation_exprs (FOR_BODY (t)); + { + FOR_BODY (t) = expand_array_notation_exprs (FOR_BODY (t)); + FOR_EXPR (t) = expand_array_notation_exprs (FOR_EXPR (t)); + } else t = expand_array_notation_exprs (t); return t; @@ -1322,44 +1259,39 @@ expand_array_notation_exprs (tree t) t = expand_array_notation_exprs (t); return t; case SWITCH_STMT: - t = cp_expand_cond_array_notations (t); - /* If the above function added some extra instructions above the original - switch statement, then we can't assume it is still SWITCH_STMT so we - have to check again. */ - if (TREE_CODE (t) == SWITCH_STMT) + if (contains_array_notation_expr (SWITCH_STMT_COND (t))) { - if (SWITCH_STMT_BODY (t)) - SWITCH_STMT_BODY (t) = - expand_array_notation_exprs (SWITCH_STMT_BODY (t)); + error_at (EXPR_LOCATION (SWITCH_STMT_COND (t)), + "array notation cannot be used as a condition for " + "switch statement"); + return error_mark_node; } - else - t = expand_array_notation_exprs (t); + if (SWITCH_STMT_BODY (t)) + SWITCH_STMT_BODY (t) = + expand_array_notation_exprs (SWITCH_STMT_BODY (t)); return t; case WHILE_STMT: - t = cp_expand_cond_array_notations (t); - /* If the above function added some extra instructions above the original - while statement, then we can't assume it is still WHILE_STMTso we - have to check again. */ - if (TREE_CODE (t) == WHILE_STMT) + if (contains_array_notation_expr (WHILE_COND (t))) { - if (WHILE_BODY (t)) - WHILE_BODY (t) = expand_array_notation_exprs (WHILE_BODY (t)); + if (EXPR_LOCATION (WHILE_COND (t)) != UNKNOWN_LOCATION) + loc = EXPR_LOCATION (WHILE_COND (t)); + error_at (loc, "array notation cannot be used as a condition for " + "while statement"); + return error_mark_node; } - else - t = expand_array_notation_exprs (t); + if (WHILE_BODY (t)) + WHILE_BODY (t) = expand_array_notation_exprs (WHILE_BODY (t)); return t; case DO_STMT: - t = cp_expand_cond_array_notations (t); - /* If the above function added some extra instructions above the original - do-while statement, then we can't assume it is still DO_STMT so we - have to check again. */ - if (TREE_CODE (t) == DO_STMT) - { - if (DO_BODY (t)) - DO_BODY (t) = expand_array_notation_exprs (DO_BODY (t)); + if (contains_array_notation_expr (DO_COND (t))) + { + error_at (EXPR_LOCATION (DO_COND (t)), + "array notation cannot be used as a condition for a " + "do-while statement"); + return error_mark_node; } - else - t = expand_array_notation_exprs (t); + if (DO_BODY (t)) + DO_BODY (t) = expand_array_notation_exprs (DO_BODY (t)); return t; default: if (is_expr) @@ -1380,59 +1312,66 @@ expand_array_notation_exprs (tree t) return t; } -/* Given the base of an array (ARRAY), the START_INDEX, the number of elements - to be accessed (LENGTH) and the STRIDE, construct an ARRAY_NOTATION_REF tree - of type TYPE and return it. Restrictions on START_INDEX, LENGTH and STRIDE - are the same as that of index field passed into ARRAY_REF. The only - additional restriction is that, unlike index in ARRAY_REF, stride, length - and start_index cannot contain array notations. */ +/* Given the base of an array (ARRAY), the START (start_index), the number of + elements to be accessed (LENGTH) and the STRIDE, construct an + ARRAY_NOTATION_REF tree of type TYPE and return it. Restrictions on START, + LENGTH and STRIDE are the same as that of index field passed into ARRAY_REF. + The only additional restriction is that, unlike index in ARRAY_REF, stride, + length and start_index cannot contain array notations. */ tree -build_array_notation_ref (location_t loc, tree array, tree start_index, - tree length, tree stride, tree type) +build_array_notation_ref (location_t loc, tree array, tree start, tree length, + tree stride, tree type) { tree array_ntn_expr = NULL_TREE; - - /* When dealing with templates, do the type checking at a later time. */ - if (processing_template_decl || !type) + + /* If we enter the then-case of the if-statement below, we have hit a case + like this: ARRAY [:]. */ + if (!start && !length) { - if (!type && TREE_TYPE (array)) - type = TREE_TYPE (array); - array_ntn_expr = build_min_nt_loc (loc, ARRAY_NOTATION_REF, array, - start_index, length, stride, type, - NULL_TREE); - TREE_TYPE (array_ntn_expr) = type; + if (TREE_CODE (type) != ARRAY_TYPE) + { + error_at (loc, "start-index and length fields necessary for " + "using array notation in pointers or records"); + return error_mark_node; + } + tree domain = TYPE_DOMAIN (type); + if (!domain) + { + error_at (loc, "start-index and length fields necessary for " + "using array notation with array of unknown bound"); + return error_mark_node; + } + start = cp_fold_convert (ptrdiff_type_node, TYPE_MINVAL (domain)); + length = size_binop (PLUS_EXPR, TYPE_MAXVAL (domain), size_one_node); + length = cp_fold_convert (ptrdiff_type_node, length); } - if (!stride) - { - if (TREE_CONSTANT (start_index) && TREE_CONSTANT (length) - && TREE_CODE (start_index) != VAR_DECL - && TREE_CODE (length) != VAR_DECL - && tree_int_cst_lt (length, start_index)) - stride = build_int_cst (TREE_TYPE (start_index), -1); - else - stride = build_int_cst (TREE_TYPE (start_index), 1); + + if (!stride) + stride = build_one_cst (ptrdiff_type_node); + + /* When dealing with templates, triplet type-checking will be done in pt.c + after type substitution. */ + if (processing_template_decl + && (type_dependent_expression_p (array) + || type_dependent_expression_p (length) + || type_dependent_expression_p (start) + || type_dependent_expression_p (stride))) + array_ntn_expr = build_min_nt_loc (loc, ARRAY_NOTATION_REF, array, start, + length, stride, NULL_TREE); + else + { + if (!cilkplus_an_triplet_types_ok_p (loc, start, length, stride, type)) + return error_mark_node; + array_ntn_expr = build4 (ARRAY_NOTATION_REF, NULL_TREE, array, start, + length, stride); } + if (TREE_CODE (type) == ARRAY_TYPE || TREE_CODE (type) == POINTER_TYPE) + TREE_TYPE (array_ntn_expr) = TREE_TYPE (type); + else + gcc_unreachable (); - if (!cilkplus_an_triplet_types_ok_p (loc, start_index, length, stride, type)) - return error_mark_node; - - if (!processing_template_decl) - { - array_ntn_expr = build4 (ARRAY_NOTATION_REF, NULL_TREE, NULL_TREE, - NULL_TREE, NULL_TREE, NULL_TREE); - ARRAY_NOTATION_ARRAY (array_ntn_expr) = array; - ARRAY_NOTATION_START (array_ntn_expr) = start_index; - ARRAY_NOTATION_LENGTH (array_ntn_expr) = length; - ARRAY_NOTATION_STRIDE (array_ntn_expr) = stride; - if (type && (TREE_CODE (type) == ARRAY_TYPE - || TREE_CODE (type) == POINTER_TYPE)) - TREE_TYPE (array_ntn_expr) = TREE_TYPE (type); - else - TREE_TYPE (array_ntn_expr) = type; - } SET_EXPR_LOCATION (array_ntn_expr, loc); - return array_ntn_expr; } @@ -1462,20 +1401,9 @@ cilkplus_an_triplet_types_ok_p (location_t loc, tree start_index, tree length, } if (!TREE_CODE (type) == FUNCTION_TYPE) { - error_at (loc, "array notations cannot be used with function type"); + error_at (loc, "array notation cannot be used with function type"); return false; } - while (type && (TREE_CODE (type) == POINTER_TYPE - || TREE_CODE (type) == ARRAY_TYPE)) - { - type = TREE_TYPE (type); - if (type && TREE_CODE (type) == FUNCTION_TYPE) - { - error_at (loc, "array notations cannot be used with function pointer" - " arrays"); - return false; - } - } if (!find_rank (loc, start_index, start_index, false, &start_rank) || !find_rank (loc, length, length, false, &length_rank) || !find_rank (loc, stride, stride, false, &stride_rank)) diff --git a/gcc/cp/cp-gimplify.c b/gcc/cp/cp-gimplify.c index 38ef87868a8..590d8577fdc 100644 --- a/gcc/cp/cp-gimplify.c +++ b/gcc/cp/cp-gimplify.c @@ -1207,6 +1207,12 @@ cp_genericize (tree fndecl) if (DECL_CLONED_FUNCTION_P (fndecl)) return; + /* Expand all the array notations here. */ + if (flag_enable_cilkplus + && contains_array_notation_expr (DECL_SAVED_TREE (fndecl))) + DECL_SAVED_TREE (fndecl) = + expand_array_notation_exprs (DECL_SAVED_TREE (fndecl)); + /* We do want to see every occurrence of the parms, so we can't just use walk_tree's hash functionality. */ cp_genericize_tree (&DECL_SAVED_TREE (fndecl)); diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index 00ee45013b3..3e8043a4162 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -4404,7 +4404,7 @@ extern GTY(()) vec<tree, va_gc> *local_classes; #define LAMBDANAME_PREFIX "__lambda" #define LAMBDANAME_FORMAT LAMBDANAME_PREFIX "%d" -#define UDLIT_OP_ANSI_PREFIX "operator\"\" " +#define UDLIT_OP_ANSI_PREFIX "operator\"\"" #define UDLIT_OP_ANSI_FORMAT UDLIT_OP_ANSI_PREFIX "%s" #define UDLIT_OP_MANGLED_PREFIX "li" #define UDLIT_OP_MANGLED_FORMAT UDLIT_OP_MANGLED_PREFIX "%s" @@ -4974,6 +4974,7 @@ extern bool pragma_java_exceptions; /* in call.c */ extern bool check_dtor_name (tree, tree); +bool magic_varargs_p (tree); extern tree build_conditional_expr (location_t, tree, tree, tree, tsubst_flags_t); @@ -6042,6 +6043,9 @@ extern tree check_return_expr (tree, bool *); extern tree cp_build_binary_op (location_t, enum tree_code, tree, tree, tsubst_flags_t); +extern tree build_x_vec_perm_expr (location_t, + tree, tree, tree, + tsubst_flags_t); #define cxx_sizeof(T) cxx_sizeof_or_alignof_type (T, SIZEOF_EXPR, true) extern tree build_simple_component_ref (tree, tree); extern tree build_ptrmemfunc_access_expr (tree, tree); diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index ec8ad46dd44..6e8293b024e 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -5691,9 +5691,11 @@ cp_parser_postfix_expression (cp_parser *parser, bool address_p, bool cast_p, mark_exp_read (p); if (vec->length () == 2) - return c_build_vec_perm_expr (loc, (*vec)[0], NULL_TREE, (*vec)[1]); + return build_x_vec_perm_expr (loc, (*vec)[0], NULL_TREE, (*vec)[1], + tf_warning_or_error); else if (vec->length () == 3) - return c_build_vec_perm_expr (loc, (*vec)[0], (*vec)[1], (*vec)[2]); + return build_x_vec_perm_expr (loc, (*vec)[0], (*vec)[1], (*vec)[2], + tf_warning_or_error); else { error_at (loc, "wrong number of arguments to " @@ -6060,41 +6062,31 @@ cp_parser_postfix_expression (cp_parser *parser, bool address_p, bool cast_p, return error_mark_node; } -/* This function parses Cilk Plus array notations. The starting index is - passed in INIT_INDEX and the array name is passed in ARRAY_VALUE. If the - INIT_INDEX is NULL, then we have special case were the entire array is - accessed (e.g. A[:]). The return value of this function is a tree node - called VALUE_TREE of type ARRAY_NOTATION_REF. If some error occurred it - returns error_mark_node. */ +/* This function parses Cilk Plus array notations. If a normal array expr. is + parsed then the array index is passed back to the caller through *INIT_INDEX + and the function returns a NULL_TREE. If array notation expr. is parsed, + then *INIT_INDEX is ignored by the caller and the function returns + a tree of type ARRAY_NOTATION_REF. If some error occurred it returns + error_mark_node. */ static tree -cp_parser_array_notation (location_t loc, cp_parser *parser, tree init_index, +cp_parser_array_notation (location_t loc, cp_parser *parser, tree *init_index, tree array_value) { cp_token *token = NULL; - tree start_index = NULL_TREE, length_index = NULL_TREE, stride = NULL_TREE; - tree value_tree, type, array_type, array_type_domain; - double_int x; - bool saved_colon_corrects_to_scope_p = parser->colon_corrects_to_scope_p; - + tree length_index, stride = NULL_TREE, value_tree, array_type; if (!array_value || array_value == error_mark_node) { cp_parser_skip_to_end_of_statement (parser); return error_mark_node; } + + array_type = TREE_TYPE (array_value); - if (processing_template_decl) - { - array_type = TREE_TYPE (array_value); - type = TREE_TYPE (array_type); - } - else - { - array_type = TREE_TYPE (array_value); - gcc_assert (array_type); - type = array_type; - } + bool saved_colon_corrects = parser->colon_corrects_to_scope_p; + parser->colon_corrects_to_scope_p = false; token = cp_lexer_peek_token (parser->lexer); + if (!token) { cp_parser_error (parser, "expected %<:%> or numeral"); @@ -6102,125 +6094,57 @@ cp_parser_array_notation (location_t loc, cp_parser *parser, tree init_index, } else if (token->type == CPP_COLON) { - if (!init_index) + /* Consume the ':'. */ + cp_lexer_consume_token (parser->lexer); + + /* If we are here, then we have a case like this A[:]. */ + if (cp_lexer_peek_token (parser->lexer)->type != CPP_CLOSE_SQUARE) { - /* If we are here, then we have a case like this A[:]. */ - cp_lexer_consume_token (parser->lexer); - - if (cp_lexer_peek_token (parser->lexer)->type != CPP_CLOSE_SQUARE) - { - cp_parser_error (parser, "expected %<]%>"); - cp_parser_skip_to_end_of_statement (parser); - return error_mark_node; - } - if (TREE_CODE (array_type) == RECORD_TYPE - || TREE_CODE (array_type) == POINTER_TYPE) - { - error_at (loc, "start-index and length fields necessary for " - "using array notations in pointers or records"); - cp_parser_skip_to_end_of_statement (parser); - return error_mark_node; - } - if (TREE_CODE (array_type) == ARRAY_TYPE) - { - tree subtype = TREE_TYPE (array_type); - while (subtype && TREE_CODE (subtype) == POINTER_TYPE) - { - /* This could be a function ptr. If so, then emit error. */ - subtype = TREE_TYPE (subtype); - if (subtype && TREE_CODE (subtype) == FUNCTION_TYPE) - { - error_at (loc, "array notations cannot be used with" - " function pointer arrays"); - cp_parser_skip_to_end_of_statement (parser); - return error_mark_node; - } - } - } - array_type_domain = TYPE_DOMAIN (array_type); - if (!array_type_domain) - { - error_at (loc, "start-index and length fields necessary for " - "using array notations in dimensionless arrays"); - cp_parser_skip_to_end_of_statement (parser); - return error_mark_node; - } - start_index = TYPE_MINVAL (array_type_domain); - start_index = fold_build1 (CONVERT_EXPR, ptrdiff_type_node, - start_index); - x = TREE_INT_CST (TYPE_MAXVAL (array_type_domain)); - x.low++; - length_index = double_int_to_tree (integer_type_node, x); - length_index = fold_build1 (CONVERT_EXPR, ptrdiff_type_node, - length_index); - stride = build_int_cst (integer_type_node, 1); - stride = fold_build1 (CONVERT_EXPR, ptrdiff_type_node, stride); - } - else if (init_index != error_mark_node) - { - /* If we hare here, then there are 2 possibilities: - 1. Array [ EXPR : EXPR ] - 2. Array [ EXPR : EXPR : EXPR ] - */ - start_index = init_index; - cp_lexer_consume_token (parser->lexer); + cp_parser_error (parser, "expected %<]%>"); + cp_parser_skip_to_end_of_statement (parser); + return error_mark_node; + } + *init_index = NULL_TREE; + stride = NULL_TREE; + length_index = NULL_TREE; + } + else + { + /* If we are here, then there are three valid possibilities: + 1. ARRAY [ EXP ] + 2. ARRAY [ EXP : EXP ] + 3. ARRAY [ EXP : EXP : EXP ] */ - saved_colon_corrects_to_scope_p = parser->colon_corrects_to_scope_p; - /* The ':' is used in array notation. Thus compiler cannot do scope - correction automatically. */ - parser->colon_corrects_to_scope_p = false; - length_index = cp_parser_expression (parser, false, NULL); - parser->colon_corrects_to_scope_p = saved_colon_corrects_to_scope_p; - if (!length_index || length_index == error_mark_node) - cp_parser_skip_to_end_of_statement (parser); - - if (cp_lexer_peek_token (parser->lexer)->type == CPP_COLON) - { - cp_lexer_consume_token (parser->lexer); - saved_colon_corrects_to_scope_p = - parser->colon_corrects_to_scope_p; - /* Disable correcting single colon correcting to scope. */ - parser->colon_corrects_to_scope_p = false; - stride = cp_parser_expression (parser, false, NULL); - parser->colon_corrects_to_scope_p = - saved_colon_corrects_to_scope_p; - if (!stride || stride == error_mark_node) - { - cp_parser_skip_to_end_of_statement (parser); - if (cp_lexer_peek_token (parser->lexer)->type - == CPP_CLOSE_SQUARE) - cp_lexer_consume_token (parser->lexer); - } - } - else - stride = build_one_cst (integer_type_node); + *init_index = cp_parser_expression (parser, false, NULL); + if (cp_lexer_peek_token (parser->lexer)->type != CPP_COLON) + { + /* This indicates that we have a normal array expression. */ + parser->colon_corrects_to_scope_p = saved_colon_corrects; + return NULL_TREE; } - else + + /* Consume the ':'. */ + cp_lexer_consume_token (parser->lexer); + length_index = cp_parser_expression (parser, false, NULL); + if (cp_lexer_peek_token (parser->lexer)->type == CPP_COLON) { - cp_parser_skip_to_end_of_statement (parser); - return error_mark_node; + cp_lexer_consume_token (parser->lexer); + stride = cp_parser_expression (parser, false, NULL); } } - - if (start_index == error_mark_node || length_index == error_mark_node - || stride == error_mark_node || !start_index || !length_index - || !stride) + parser->colon_corrects_to_scope_p = saved_colon_corrects; + + if (*init_index == error_mark_node || length_index == error_mark_node + || stride == error_mark_node) { if (cp_lexer_peek_token (parser->lexer)->type == CPP_CLOSE_SQUARE) cp_lexer_consume_token (parser->lexer); return error_mark_node; } cp_parser_require (parser, CPP_CLOSE_SQUARE, RT_CLOSE_SQUARE); - - /* We fold all 3 of the values to make things easier when we transform - them later. */ - start_index = fold (start_index); - length_index = fold (length_index); - stride = fold (stride); - - value_tree = build_array_notation_ref (input_location, array_value, - start_index, length_index, stride, - type); + + value_tree = build_array_notation_ref (loc, array_value, *init_index, + length_index, stride, array_type); return value_tree; } @@ -6239,84 +6163,68 @@ cp_parser_postfix_open_square_expression (cp_parser *parser, bool for_offsetof, bool decltype_p) { - tree index; + tree index = NULL_TREE; location_t loc = cp_lexer_peek_token (parser->lexer)->location; /* Consume the `[' token. */ cp_lexer_consume_token (parser->lexer); - if (flag_enable_cilkplus - && cp_lexer_peek_token (parser->lexer)->type == CPP_COLON) - /* If we are here, then we have something like this: - ARRAY[:] - */ - postfix_expression = cp_parser_array_notation (loc, parser, NULL_TREE, - postfix_expression); + /* Parse the index expression. */ + /* ??? For offsetof, there is a question of what to allow here. If + offsetof is not being used in an integral constant expression context, + then we *could* get the right answer by computing the value at runtime. + If we are in an integral constant expression context, then we might + could accept any constant expression; hard to say without analysis. + Rather than open the barn door too wide right away, allow only integer + constant expressions here. */ + if (for_offsetof) + index = cp_parser_constant_expression (parser, false, NULL); else { - /* Here are have these options: - 1. ARRAY[EXPR] -- This is the normal array call. - 2. ARRAY[EXPR : EXPR] -- Array notation expr with default stride - of 1. - 3. ARRAY[EXPR : EXPR : EXPR] -- Array Notation with userdefined stride. - 4. Array[Braced List] -- This is handled by braced list. - */ - - /* Parse the index expression. */ - /* ??? For offsetof, there is a question of what to allow here. If - offsetof is not being used in an integral constant expression context, - then we *could* get the right answer by computing the value at runtime. - If we are in an integral constant expression context, then we might - could accept any constant expression; hard to say without analysis. - Rather than open the barn door too wide right away, allow only integer - constant expressions here. */ - if (for_offsetof) - index = cp_parser_constant_expression (parser, false, NULL); - else + if (cp_lexer_next_token_is (parser->lexer, CPP_OPEN_BRACE)) { - bool saved_colon_corrects_to_scope_p = - parser->colon_corrects_to_scope_p; - if (flag_enable_cilkplus) - parser->colon_corrects_to_scope_p = false; - if (cp_lexer_next_token_is (parser->lexer, CPP_OPEN_BRACE)) + bool expr_nonconst_p; + maybe_warn_cpp0x (CPP0X_INITIALIZER_LISTS); + index = cp_parser_braced_list (parser, &expr_nonconst_p); + if (flag_enable_cilkplus + && cp_lexer_peek_token (parser->lexer)->type == CPP_COLON) { - bool expr_nonconst_p; - maybe_warn_cpp0x (CPP0X_INITIALIZER_LISTS); - index = cp_parser_braced_list (parser, &expr_nonconst_p); - if (flag_enable_cilkplus - && cp_lexer_peek_token (parser->lexer)->type == CPP_COLON) - { - error_at (cp_lexer_peek_token (parser->lexer)->location, - "braced list index is not allowed with array " - "notations"); - index = error_mark_node; - } + error_at (cp_lexer_peek_token (parser->lexer)->location, + "braced list index is not allowed with array " + "notation"); + cp_parser_skip_to_end_of_statement (parser); + return error_mark_node; } - else - index = cp_parser_expression (parser, /*cast_p=*/false, NULL); - parser->colon_corrects_to_scope_p = saved_colon_corrects_to_scope_p; } - if (flag_enable_cilkplus - && cp_lexer_peek_token (parser->lexer)->type == CPP_COLON) - postfix_expression = cp_parser_array_notation (loc, parser, index, - postfix_expression); - else + else if (flag_enable_cilkplus) { - /* Look for the closing `]'. */ - cp_parser_require (parser, CPP_CLOSE_SQUARE, RT_CLOSE_SQUARE); - - /* Build the ARRAY_REF. */ - postfix_expression = grok_array_decl (loc, postfix_expression, - index, decltype_p); - - /* When not doing offsetof, array references are not permitted in - constant-expressions. */ - if (!for_offsetof - && (cp_parser_non_integral_constant_expression (parser, - NIC_ARRAY_REF))) - postfix_expression = error_mark_node; + /* Here are have these two options: + ARRAY[EXP : EXP] - Array notation expr with default + stride of 1. + ARRAY[EXP : EXP : EXP] - Array Notation with user-defined + stride. */ + tree an_exp = cp_parser_array_notation (loc, parser, &index, + postfix_expression); + if (an_exp) + return an_exp; } + else + index = cp_parser_expression (parser, /*cast_p=*/false, NULL); } + + /* Look for the closing `]'. */ + cp_parser_require (parser, CPP_CLOSE_SQUARE, RT_CLOSE_SQUARE); + + /* Build the ARRAY_REF. */ + postfix_expression = grok_array_decl (loc, postfix_expression, + index, decltype_p); + + /* When not doing offsetof, array references are not permitted in + constant-expressions. */ + if (!for_offsetof + && (cp_parser_non_integral_constant_expression (parser, NIC_ARRAY_REF))) + postfix_expression = error_mark_node; + return postfix_expression; } @@ -9551,8 +9459,6 @@ cp_parser_compound_statement (cp_parser *parser, tree in_statement_expr, /* Consume the `}'. */ cp_parser_require (parser, CPP_CLOSE_BRACE, RT_CLOSE_BRACE); - if (flag_enable_cilkplus && contains_array_notation_expr (compound_stmt)) - compound_stmt = expand_array_notation_exprs (compound_stmt); return compound_stmt; } @@ -9745,14 +9651,6 @@ cp_parser_selection_statement (cp_parser* parser, bool *if_p) /* Now we're all done with the switch-statement. */ finish_switch_stmt (statement); - if (flag_enable_cilkplus - && contains_array_notation_expr (condition)) - { - error_at (EXPR_LOCATION (condition), - "array notations cannot be used as a condition for " - "switch statement"); - statement = error_mark_node; - } } return statement; @@ -10310,12 +10208,6 @@ cp_parser_iteration_statement (cp_parser* parser) parser->in_statement = in_statement; /* We're done with the while-statement. */ finish_while_stmt (statement); - if (flag_enable_cilkplus && contains_array_notation_expr (condition)) - { - error_at (EXPR_LOCATION (condition), "array notations cannot be " - "used as a condition for while statement"); - statement = error_mark_node; - } } break; @@ -10342,15 +10234,6 @@ cp_parser_iteration_statement (cp_parser* parser) cp_parser_require (parser, CPP_CLOSE_PAREN, RT_CLOSE_PAREN); /* Look for the `;'. */ cp_parser_require (parser, CPP_SEMICOLON, RT_SEMICOLON); - if (flag_enable_cilkplus - && contains_array_notation_expr (DO_COND (statement))) - { - error_at (EXPR_LOCATION (DO_COND (statement)), - "array notations cannot be used as a condition for a " - "do-while statement"); - statement = error_mark_node; - } - } break; @@ -10369,17 +10252,8 @@ cp_parser_iteration_statement (cp_parser* parser) cp_parser_already_scoped_statement (parser); parser->in_statement = in_statement; - if (flag_enable_cilkplus - && contains_array_notation_expr (FOR_COND (statement))) - { - error_at (EXPR_LOCATION (FOR_COND (statement)), - "array notations cannot be used in a condition for a " - "for-loop"); - statement = error_mark_node; - } - else - /* We're done with the for-statement. */ - finish_for_stmt (statement); + /* We're done with the for-statement. */ + finish_for_stmt (statement); } break; @@ -12370,6 +12244,8 @@ cp_parser_operator (cp_parser* parser) { tree id = NULL_TREE; cp_token *token; + bool bad_encoding_prefix = false; + int string_len = 2; /* Peek at the next token. */ token = cp_lexer_peek_token (parser->lexer); @@ -12569,10 +12445,20 @@ cp_parser_operator (cp_parser* parser) cp_parser_require (parser, CPP_CLOSE_SQUARE, RT_CLOSE_SQUARE); return ansi_opname (ARRAY_REF); + case CPP_WSTRING: + string_len = 3; + case CPP_STRING16: + case CPP_STRING32: + string_len = 5; + case CPP_UTF8STRING: + string_len = 4; + bad_encoding_prefix = true; case CPP_STRING: if (cxx_dialect == cxx98) maybe_warn_cpp0x (CPP0X_USER_DEFINED_LITERALS); - if (TREE_STRING_LENGTH (token->u.value) > 2) + if (bad_encoding_prefix) + error ("invalid encoding prefix in literal operator"); + if (TREE_STRING_LENGTH (token->u.value) > string_len) { error ("expected empty string after %<operator%> keyword"); return error_mark_node; @@ -12590,15 +12476,49 @@ cp_parser_operator (cp_parser* parser) return cp_literal_operator_id (name); } } + else if (token->type == CPP_KEYWORD) + { + error ("unexpected keyword;" + " remove space between quotes and suffix identifier"); + return error_mark_node; + } else { error ("expected suffix identifier"); return error_mark_node; } + case CPP_WSTRING_USERDEF: + string_len = 3; + case CPP_STRING16_USERDEF: + case CPP_STRING32_USERDEF: + string_len = 5; + case CPP_UTF8STRING_USERDEF: + string_len = 4; + bad_encoding_prefix = true; case CPP_STRING_USERDEF: - error ("missing space between %<\"\"%> and suffix identifier"); - return error_mark_node; + if (cxx_dialect == cxx98) + maybe_warn_cpp0x (CPP0X_USER_DEFINED_LITERALS); + if (bad_encoding_prefix) + error ("invalid encoding prefix in literal operator"); + { + tree string_tree = USERDEF_LITERAL_VALUE (token->u.value); + if (TREE_STRING_LENGTH (string_tree) > string_len) + { + error ("expected empty string after %<operator%> keyword"); + return error_mark_node; + } + id = USERDEF_LITERAL_SUFFIX_ID (token->u.value); + /* Consume the user-defined string literal. */ + cp_lexer_consume_token (parser->lexer); + if (id != error_mark_node) + { + const char *name = IDENTIFIER_POINTER (id); + return cp_literal_operator_id (name); + } + else + return error_mark_node; + } default: /* Anything else is an error. */ @@ -16952,54 +16872,30 @@ cp_parser_direct_declarator (cp_parser* parser, if (token->type != CPP_CLOSE_SQUARE) { bool non_constant_p; - - if (flag_enable_cilkplus - && cp_lexer_next_token_is (parser->lexer, CPP_COLON)) + bounds + = cp_parser_constant_expression (parser, + /*allow_non_constant=*/true, + &non_constant_p); + if (!non_constant_p) + /* OK */; + else if (error_operand_p (bounds)) + /* Already gave an error. */; + else if (!parser->in_function_body + || current_binding_level->kind == sk_function_parms) { + /* Normally, the array bound must be an integral constant + expression. However, as an extension, we allow VLAs + in function scopes as long as they aren't part of a + parameter declaration. */ + cp_parser_error (parser, + "array bound is not an integer constant"); bounds = error_mark_node; - error_at (cp_lexer_peek_token (parser->lexer)->location, - "array notations cannot be used in declaration"); - cp_lexer_consume_token (parser->lexer); } - else + else if (processing_template_decl) { - bounds - = cp_parser_constant_expression (parser, - /*allow_non_constant=*/true, - &non_constant_p); - if (!non_constant_p) - /* OK */; - else if (error_operand_p (bounds)) - /* Already gave an error. */; - else if (!parser->in_function_body - || current_binding_level->kind == sk_function_parms) - { - /* Normally, the array bound must be an integral constant - expression. However, as an extension, we allow VLAs - in function scopes as long as they aren't part of a - parameter declaration. */ - cp_parser_error (parser, - "array bound is not an integer constant"); - bounds = error_mark_node; - } - else if (processing_template_decl) - { - /* Remember this wasn't a constant-expression. */ - bounds = build_nop (TREE_TYPE (bounds), bounds); - TREE_SIDE_EFFECTS (bounds) = 1; - } - if (flag_enable_cilkplus - && cp_lexer_next_token_is (parser->lexer, CPP_COLON)) - { - location_t loc = - cp_lexer_peek_token (parser->lexer)->location; - while (cp_lexer_next_token_is_not (parser->lexer, - CPP_CLOSE_SQUARE)) - cp_lexer_consume_token (parser->lexer); - error_at (loc, "array notations cannot be used in " - "declaration"); - bounds = error_mark_node; - } + /* Remember this wasn't a constant-expression. */ + bounds = build_nop (TREE_TYPE (bounds), bounds); + TREE_SIDE_EFFECTS (bounds) = 1; } } else @@ -18370,11 +18266,6 @@ cp_parser_ctor_initializer_opt_and_function_body (cp_parser *parser, cp_parser_function_body (parser, in_function_try_block); if (check_body_p) check_constexpr_ctor_body (last, list); - - /* Transform all array notations to the equivalent array refs and loop. */ - if (flag_enable_cilkplus && contains_array_notation_expr (body)) - body = expand_array_notation_exprs (body); - /* Finish the function body. */ finish_function_body (body); @@ -22354,12 +22245,6 @@ cp_parser_function_definition_after_declarator (cp_parser* parser, finish_lambda_scope (); - /* Expand all array notation expressions here. */ - if (flag_enable_cilkplus && current_function_decl - && contains_array_notation_expr (DECL_SAVED_TREE (current_function_decl))) - DECL_SAVED_TREE (current_function_decl) = - expand_array_notation_exprs (DECL_SAVED_TREE (current_function_decl)); - /* Finish the function. */ fn = finish_function ((ctor_initializer_p ? 1 : 0) | (inline_p ? 2 : 0)); @@ -22796,12 +22681,14 @@ cp_parser_save_member_function_body (cp_parser* parser, /* Save away the tokens that make up the body of the function. */ first = parser->lexer->next_token; + /* Handle function try blocks. */ + if (cp_lexer_next_token_is_keyword (parser->lexer, RID_TRY)) + cp_lexer_consume_token (parser->lexer); /* We can have braced-init-list mem-initializers before the fn body. */ if (cp_lexer_next_token_is (parser->lexer, CPP_COLON)) { cp_lexer_consume_token (parser->lexer); - while (cp_lexer_next_token_is_not (parser->lexer, CPP_OPEN_BRACE) - && cp_lexer_next_token_is_not_keyword (parser->lexer, RID_TRY)) + while (cp_lexer_next_token_is_not (parser->lexer, CPP_OPEN_BRACE)) { /* cache_group will stop after an un-nested { } pair, too. */ if (cp_parser_cache_group (parser, CPP_CLOSE_PAREN, /*depth=*/0)) diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index e2ffe7314c4..3847a1d6154 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -12464,6 +12464,7 @@ tsubst_copy (tree t, tree args, tsubst_flags_t complain, tree in_decl) case COND_EXPR: case MODOP_EXPR: case PSEUDO_DTOR_EXPR: + case VEC_PERM_EXPR: { r = build_nt (code, tsubst_copy (TREE_OPERAND (t, 0), args, complain, in_decl), @@ -13761,9 +13762,6 @@ tsubst_copy_and_build (tree t, start_index = RECUR (ARRAY_NOTATION_START (t)); length = RECUR (ARRAY_NOTATION_LENGTH (t)); stride = RECUR (ARRAY_NOTATION_STRIDE (t)); - if (!cilkplus_an_triplet_types_ok_p (loc, start_index, length, stride, - TREE_TYPE (op1))) - RETURN (error_mark_node); RETURN (build_array_notation_ref (EXPR_LOCATION (t), op1, start_index, length, stride, TREE_TYPE (op1))); } @@ -14628,6 +14626,13 @@ tsubst_copy_and_build (tree t, case PAREN_EXPR: RETURN (finish_parenthesized_expr (RECUR (TREE_OPERAND (t, 0)))); + case VEC_PERM_EXPR: + RETURN (build_x_vec_perm_expr (input_location, + RECUR (TREE_OPERAND (t, 0)), + RECUR (TREE_OPERAND (t, 1)), + RECUR (TREE_OPERAND (t, 2)), + complain)); + default: /* Handle Objective-C++ constructs, if appropriate. */ { @@ -15739,9 +15744,6 @@ type_unification_real (tree tparms, arg = args[ia]; ++ia; - if (flag_enable_cilkplus && TREE_CODE (arg) == ARRAY_NOTATION_REF) - return 1; - if (unify_one_argument (tparms, targs, parm, arg, subr, strict, flags, explain_p)) return 1; @@ -19162,11 +19164,6 @@ instantiate_decl (tree d, int defer_ok, pointer_map_destroy (local_specializations); local_specializations = saved_local_specializations; - /* We expand all the array notation expressions here. */ - if (flag_enable_cilkplus - && contains_array_notation_expr (DECL_SAVED_TREE (d))) - DECL_SAVED_TREE (d) = expand_array_notation_exprs (DECL_SAVED_TREE (d)); - /* Finish the function. */ d = finish_function (0); expand_or_defer_fn (d); diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index 4c76b80d0cd..f8217546b6b 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -779,22 +779,6 @@ finish_return_stmt (tree expr) tree r; bool no_warning; - if (flag_enable_cilkplus && contains_array_notation_expr (expr)) - { - size_t rank = 0; - - if (!find_rank (input_location, expr, expr, false, &rank)) - return error_mark_node; - - /* If the return expression contains array notations, then flag it as - error. */ - if (rank >= 1) - { - error_at (input_location, "array notation expression cannot be " - "used as a return value"); - return error_mark_node; - } - } expr = check_return_expr (expr, &no_warning); if (flag_openmp && !check_omp_return ()) @@ -8089,7 +8073,6 @@ cxx_eval_constant_expression (const constexpr_call *call, tree t, non_constant_p, overflow_p); break; - case ARRAY_NOTATION_REF: case ARRAY_REF: r = cxx_eval_array_reference (call, t, allow_non_constant, addr, non_constant_p, overflow_p); @@ -8901,7 +8884,6 @@ potential_constant_expression_1 (tree t, bool want_rval, tsubst_flags_t flags) want_rval = true; /* Fall through. */ case ARRAY_REF: - case ARRAY_NOTATION_REF: case ARRAY_RANGE_REF: case MEMBER_REF: case DOTSTAR_EXPR: @@ -8912,6 +8894,9 @@ potential_constant_expression_1 (tree t, bool want_rval, tsubst_flags_t flags) return false; return true; + case ARRAY_NOTATION_REF: + return false; + case FMA_EXPR: case VEC_PERM_EXPR: for (i = 0; i < 3; ++i) diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c index 5b321ce5a7f..462abdd5039 100644 --- a/gcc/cp/typeck.c +++ b/gcc/cp/typeck.c @@ -3493,10 +3493,6 @@ cp_build_function_call_vec (tree function, vec<tree, va_gc> **params, params = &allocated; } - if (flag_enable_cilkplus - && is_cilkplus_reduce_builtin (fndecl) != BUILT_IN_NONE) - nargs = (*params)->length (); - else nargs = convert_arguments (parm_types, params, fndecl, LOOKUP_NORMAL, complain); if (nargs < 0) @@ -3660,8 +3656,7 @@ convert_arguments (tree typelist, vec<tree, va_gc> **values, tree fndecl, } else { - if (fndecl && DECL_BUILT_IN (fndecl) - && DECL_FUNCTION_CODE (fndecl) == BUILT_IN_CONSTANT_P) + if (fndecl && magic_varargs_p (fndecl)) /* Don't do ellipsis conversion for __built_in_constant_p as this will result in spurious errors for non-trivial types. */ @@ -3956,15 +3951,8 @@ cp_build_binary_op (location_t location, } } - if (flag_enable_cilkplus && contains_array_notation_expr (op0)) - type0 = find_correct_array_notation_type (op0); - else - type0 = TREE_TYPE (op0); - - if (flag_enable_cilkplus && contains_array_notation_expr (op1)) - type1 = find_correct_array_notation_type (op1); - else - type1 = TREE_TYPE (op1); + type0 = TREE_TYPE (op0); + type1 = TREE_TYPE (op1); /* The expression codes of the data types of the arguments tell us whether the arguments are integers, floating, pointers, etc. */ @@ -4871,6 +4859,21 @@ cp_build_binary_op (location_t location, return result; } + +/* Build a VEC_PERM_EXPR. + This is a simple wrapper for c_build_vec_perm_expr. */ +tree +build_x_vec_perm_expr (location_t loc, + tree arg0, tree arg1, tree arg2, + tsubst_flags_t complain) +{ + if (processing_template_decl + && (type_dependent_expression_p (arg0) + || type_dependent_expression_p (arg1) + || type_dependent_expression_p (arg2))) + return build_min_nt_loc (loc, VEC_PERM_EXPR, arg0, arg1, arg2); + return c_build_vec_perm_expr (loc, arg0, arg1, arg2, complain & tf_error); +} /* Return a tree for the sum or difference (RESULTCODE says which) of pointer PTROP and integer INTOP. */ @@ -5167,13 +5170,6 @@ cp_build_addr_expr_1 (tree arg, bool strict_lvalue, tsubst_flags_t complain) gcc_assert (!identifier_p (arg) || !IDENTIFIER_OPNAME_P (arg)); - if (flag_enable_cilkplus && TREE_CODE (arg) == ARRAY_NOTATION_REF) - { - val = build_address (arg); - if (TREE_CODE (arg) == OFFSET_REF) - PTRMEM_OK_P (val) = PTRMEM_OK_P (arg); - return val; - } if (TREE_CODE (arg) == COMPONENT_REF && type_unknown_p (arg) && !really_overloaded_fn (TREE_OPERAND (arg, 1))) { @@ -7852,13 +7848,6 @@ convert_for_assignment (tree type, tree rhs, tree rhstype; enum tree_code coder; - /* If we are dealing with built-in array notation function then we don't need - to convert them. They will be broken up into modify exprs in future, - during which all these checks will be done. */ - if (flag_enable_cilkplus - && is_cilkplus_reduce_builtin (fndecl) != BUILT_IN_NONE) - return rhs; - /* Strip NON_LVALUE_EXPRs since we aren't using as an lvalue. */ if (TREE_CODE (rhs) == NON_LVALUE_EXPR) rhs = TREE_OPERAND (rhs, 0); diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index ab45e41ca70..05f626c130d 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -16029,7 +16029,7 @@ The processor names are: @samp{1004kc}, @samp{1004kf2_1}, @samp{1004kf1_1}, @samp{loongson2e}, @samp{loongson2f}, @samp{loongson3a}, @samp{m4k}, -@samp{m14k}, @samp{m14ke}, @samp{m14kec}, +@samp{m14k}, @samp{m14kc}, @samp{m14ke}, @samp{m14kec}, @samp{octeon}, @samp{octeon+}, @samp{octeon2}, @samp{orion}, @samp{r2000}, @samp{r3000}, @samp{r3900}, @samp{r4000}, @samp{r4400}, diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index f42ad66353b..c3ae926ee7a 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -3214,6 +3214,8 @@ static void gen_scheduled_generic_parms_dies (void); static const char *comp_dir_string (void); +static hashval_t hash_loc_operands (dw_loc_descr_ref, hashval_t); + /* enum for tracking thread-local variables whose address is really an offset relative to the TLS pointer, which will need link-time relocation, but will not need relocation by the DWARF consumer. */ @@ -5437,11 +5439,12 @@ static inline void loc_checksum (dw_loc_descr_ref loc, struct md5_ctx *ctx) { int tem; + hashval_t hash = 0; tem = (loc->dtprel << 8) | ((unsigned int) loc->dw_loc_opc); CHECKSUM (tem); - CHECKSUM (loc->dw_loc_oprnd1); - CHECKSUM (loc->dw_loc_oprnd2); + hash = hash_loc_operands (loc, hash); + CHECKSUM (hash); } /* Calculate the checksum of an attribute. */ @@ -5643,9 +5646,12 @@ loc_checksum_ordered (dw_loc_descr_ref loc, struct md5_ctx *ctx) /* Otherwise, just checksum the raw location expression. */ while (loc != NULL) { + hashval_t hash = 0; + + CHECKSUM_ULEB128 (loc->dtprel); CHECKSUM_ULEB128 (loc->dw_loc_opc); - CHECKSUM (loc->dw_loc_oprnd1); - CHECKSUM (loc->dw_loc_oprnd2); + hash = hash_loc_operands (loc, hash); + CHECKSUM (hash); loc = loc->dw_loc_next; } } @@ -23107,7 +23113,7 @@ resolve_addr (dw_die_ref die) /* Iteratively hash operands of LOC opcode. */ -static inline hashval_t +static hashval_t hash_loc_operands (dw_loc_descr_ref loc, hashval_t hash) { dw_val_ref val1 = &loc->dw_loc_oprnd1; diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 75197255a54..f85e2ebfa6b 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2013-07-01 Dominique d'Humieres <dominiq@lps.ens.fr> + + PR fortran/54788 + * array.c (spec_size): handle the case as==NULL. + 2013-06-26 Tobias Burnus <burnus@net-b.de> PR fortran/29800 diff --git a/gcc/fortran/array.c b/gcc/fortran/array.c index c6b8eb9f96a..f07bc64dbca 100644 --- a/gcc/fortran/array.c +++ b/gcc/fortran/array.c @@ -2084,7 +2084,7 @@ spec_size (gfc_array_spec *as, mpz_t *result) mpz_t size; int d; - if (as->type == AS_ASSUMED_RANK) + if (!as || as->type == AS_ASSUMED_RANK) return false; mpz_init_set_ui (*result, 1); diff --git a/gcc/go/gofrontend/parse.cc b/gcc/go/gofrontend/parse.cc index 5a9feb7280b..429d91bafe2 100644 --- a/gcc/go/gofrontend/parse.cc +++ b/gcc/go/gofrontend/parse.cc @@ -3040,7 +3040,7 @@ Parse::primary_expr(bool may_be_sink, bool may_be_composite_lit, && t->array_type()->length()->is_nil_expression()) { error_at(ret->location(), - "invalid use of %<...%> in type conversion"); + "use of %<[...]%> outside of array literal"); ret = Expression::make_error(loc); } else diff --git a/gcc/go/gofrontend/types.cc b/gcc/go/gofrontend/types.cc index 3fe20904493..0a86d472062 100644 --- a/gcc/go/gofrontend/types.cc +++ b/gcc/go/gofrontend/types.cc @@ -9396,13 +9396,18 @@ Type::find_field_or_method(const Type* type, fnt = pf->type()->deref()->named_type(); go_assert(fnt != NULL); + // Methods with pointer receivers on embedded field are + // inherited by the pointer to struct, and also by the struct + // type if the field itself is a pointer. + bool can_be_pointer = (receiver_can_be_pointer + || pf->type()->points_to() != NULL); int sublevel = level == NULL ? 1 : *level + 1; bool sub_is_method; std::string subambig1; std::string subambig2; bool subfound = Type::find_field_or_method(fnt, name, - receiver_can_be_pointer, + can_be_pointer, seen, &sublevel, &sub_is_method, diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c index 4ac20fd9553..f667512337f 100644 --- a/gcc/lra-constraints.c +++ b/gcc/lra-constraints.c @@ -4201,6 +4201,15 @@ need_for_split_p (HARD_REG_SET potential_reload_hard_regs, int regno) && (regno >= FIRST_PSEUDO_REGISTER || ! TEST_HARD_REG_BIT (eliminable_regset, hard_regno)) && ! TEST_HARD_REG_BIT (lra_no_alloc_regs, hard_regno) + /* Don't split call clobbered hard regs living through + calls, otherwise we might have a check problem in the + assign sub-pass as in the most cases (exception is a + situation when lra_risky_transformations_p value is + true) the assign pass assumes that all pseudos living + through calls are assigned to call saved hard regs. */ + && (regno >= FIRST_PSEUDO_REGISTER + || ! TEST_HARD_REG_BIT (call_used_reg_set, regno) + || usage_insns[regno].calls_num == calls_num) /* We need at least 2 reloads to make pseudo splitting profitable. We should provide hard regno splitting in any case to solve 1st insn scheduling problem when @@ -4799,7 +4808,7 @@ inherit_in_ebb (rtx head, rtx tail) usage_insns invalidation. */ if ((dst_regno < FIRST_PSEUDO_REGISTER || reg_renumber[dst_regno] >= 0) - && ! reg->subreg_p && reg->type != OP_IN) + && ! reg->subreg_p && reg->type != OP_IN) { HARD_REG_SET s; diff --git a/gcc/po/ChangeLog b/gcc/po/ChangeLog index 31cc866dd8c..902e5e00ac9 100644 --- a/gcc/po/ChangeLog +++ b/gcc/po/ChangeLog @@ -1,3 +1,7 @@ +2013-07-02 Joseph Myers <joseph@codesourcery.com> + + * ru.po: Update. + 2013-06-25 Joseph Myers <joseph@codesourcery.com> * zh_TW.po: Update. diff --git a/gcc/po/ru.po b/gcc/po/ru.po index ac5229c400a..b348f26f2f9 100644 --- a/gcc/po/ru.po +++ b/gcc/po/ru.po @@ -6,13 +6,13 @@ # Nickolay V. Shmyrev <nshmyrev@yandex.ru>, 2008. # Pavel Maryanov <acid_jack@ukr.net>, 2006, 2008. # Yuri Kozlov <yuray@komyakino.ru>, 2011. -# Pavel Maryanov <acid@jack.kiev.ua>, 2012. +# Pavel Maryanov <acid@jack.kiev.ua>, 2012, 2013. msgid "" msgstr "" -"Project-Id-Version: gcc 4.7.1\n" +"Project-Id-Version: gcc 4.8.0\n" "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" -"POT-Creation-Date: 2013-02-24 01:09+0000\n" -"PO-Revision-Date: 2012-07-01 16:16+0200\n" +"POT-Creation-Date: 2013-03-15 17:42+0000\n" +"PO-Revision-Date: 2013-07-02 16:00+0200\n" "Last-Translator: Pavel Maryanov <acid@jack.kiev.ua>\n" "Language-Team: Russian <gnu@mx.ru>\n" "Language: ru\n" @@ -20,20 +20,21 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Poedit 1.5.5\n" -#: cfgrtl.c:2320 +#: cfgrtl.c:2318 msgid "flow control insn inside a basic block" msgstr "инÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ (insn) ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÐ¾Ð¼ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð²Ð½ÑƒÑ‚Ñ€Ð¸ базового блока" -#: cfgrtl.c:2448 +#: cfgrtl.c:2446 msgid "wrong insn in the fallthru edge" msgstr "Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ insn в Ñквозной дуге" -#: cfgrtl.c:2502 +#: cfgrtl.c:2500 msgid "insn outside basic block" msgstr "insn вне базового блока" -#: cfgrtl.c:2509 +#: cfgrtl.c:2507 msgid "return not followed by barrier" msgstr "отÑутÑтвует барьер поÑле return" @@ -121,10 +122,6 @@ msgstr "компилÑÑ†Ð¸Ñ Ð¿Ñ€ÐµÑ€Ð²Ð°Ð½Ð° из-за -fmax-errors=%u.\n" #: diagnostic.c:442 #, fuzzy, c-format -#| msgid "" -#| "Please submit a full bug report,\n" -#| "with preprocessed source if appropriate.\n" -#| "See %s for instructions.\n" msgid "" "Please submit a full bug report,\n" "with preprocessed source if appropriate.\n" @@ -135,7 +132,6 @@ msgstr "" #: diagnostic.c:448 #, fuzzy, c-format -#| msgid "Use fp double instructions" msgid "See %s for instructions.\n" msgstr "ИÑпользовать инÑтрукции двойной точноÑти плавающих вычиÑлений" @@ -149,7 +145,7 @@ msgstr "компилÑÑ†Ð¸Ñ Ð¿Ñ€ÐµÑ€Ð²Ð°Ð½Ð°.\n" msgid "%s:%d: confused by earlier errors, bailing out\n" msgstr "%s:%d: невозможно воÑÑтановление поÑле предыдущих ошибок\n" -#: diagnostic.c:1126 +#: diagnostic.c:1129 #, c-format msgid "Internal compiler error: Error reporting routines re-entered.\n" msgstr "ВнутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ° компилÑтора: повторный вход в программу диагноÑтики\n" @@ -212,12 +208,12 @@ msgstr "некорректное иÑпользование плавающей Ð msgid "invalid expression as operand" msgstr "в ÑпиÑке операндов задано некорректное выражение" -#: gcc.c:1402 +#: gcc.c:1403 #, c-format msgid "Using built-in specs.\n" msgstr "ИÑпользуютÑÑ Ð²Ð½ÑƒÑ‚Ñ€ÐµÐ½Ð½Ð¸Ðµ Ñпецификации.\n" -#: gcc.c:1599 +#: gcc.c:1600 #, c-format msgid "" "Setting spec %s to '%s'\n" @@ -226,22 +222,22 @@ msgstr "" "Ð¡Ð¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ %s уÑтановлена в '%s'\n" "\n" -#: gcc.c:1708 +#: gcc.c:1709 #, c-format msgid "Reading specs from %s\n" msgstr "Спецификации прочитаны из %s\n" -#: gcc.c:1833 +#: gcc.c:1834 #, c-format msgid "could not find specs file %s\n" msgstr "не найден файл Ñпецификаций %s\n" -#: gcc.c:1902 +#: gcc.c:1903 #, c-format msgid "rename spec %s to %s\n" msgstr "переименование Ñпецификации %s в %s\n" -#: gcc.c:1904 +#: gcc.c:1905 #, c-format msgid "" "spec is '%s'\n" @@ -250,12 +246,12 @@ msgstr "" "ÑÐ¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ '%s'\n" "\n" -#: gcc.c:2337 +#: gcc.c:2338 #, c-format msgid "%s\n" msgstr "%s\n" -#: gcc.c:2704 +#: gcc.c:2705 #, c-format msgid "" "\n" @@ -265,82 +261,79 @@ msgstr "" "\n" "Продолжать? (y - да, n - нет) " -#: gcc.c:2844 +#: gcc.c:2845 #, c-format msgid "# %s %.2f %.2f\n" msgstr "# %s %.2f %.2f\n" -#: gcc.c:3047 +#: gcc.c:3048 #, c-format msgid "Usage: %s [options] file...\n" msgstr "СинтакÑиÑ: %s [ключи] файл...\n" -#: gcc.c:3048 +#: gcc.c:3049 msgid "Options:\n" msgstr "Ключи:\n" -#: gcc.c:3050 +#: gcc.c:3051 msgid " -pass-exit-codes Exit with highest error code from a phase\n" msgstr " -pass-exit-codes Выход Ñ Ð¼Ð°ÐºÑимальным кодом возврата от прохода\n" -#: gcc.c:3051 +#: gcc.c:3052 msgid " --help Display this information\n" msgstr " --help ВывеÑти Ñтот текÑÑ‚\n" -#: gcc.c:3052 +#: gcc.c:3053 msgid " --target-help Display target specific command line options\n" msgstr " --target-help Показать ÑпецифичеÑкие ключи целевой платформы\n" -#: gcc.c:3053 +#: gcc.c:3054 #, fuzzy msgid " --help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...]\n" msgstr " --help={target|optimizers|warnings|params|[^]{joined|separate|undocumented}}[,...]\n" -#: gcc.c:3054 +#: gcc.c:3055 msgid " Display specific types of command line options\n" msgstr " Показать ÑпецифичеÑкие ключи командной Ñтроки\n" -#: gcc.c:3056 +#: gcc.c:3057 msgid " (Use '-v --help' to display command line options of sub-processes)\n" msgstr " (Задайте '-v --help' Ð´Ð»Ñ Ð²Ñ‹Ð²Ð¾Ð´Ð° ключей вÑех проходов компилÑции)\n" -#: gcc.c:3057 +#: gcc.c:3058 msgid " --version Display compiler version information\n" msgstr " --version Показать информацию о верÑии компилÑтора\n" -#: gcc.c:3058 +#: gcc.c:3059 msgid " -dumpspecs Display all of the built in spec strings\n" msgstr " -dumpspecs Показать вÑтроенные Ñпецификации\n" -#: gcc.c:3059 +#: gcc.c:3060 msgid " -dumpversion Display the version of the compiler\n" msgstr " -dumpversion Показать верÑию компилÑтора\n" -#: gcc.c:3060 +#: gcc.c:3061 msgid " -dumpmachine Display the compiler's target processor\n" msgstr " -dumpmachine Показать Ð¸Ð¼Ñ Ñ†ÐµÐ»ÐµÐ²Ð¾Ð¹ платформы\n" -#: gcc.c:3061 +#: gcc.c:3062 msgid " -print-search-dirs Display the directories in the compiler's search path\n" msgstr " -print-search-dirs Показать каталоги поиÑка\n" -#: gcc.c:3062 +#: gcc.c:3063 msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n" msgstr " -print-libgcc-file-name Показать Ð¸Ð¼Ñ run-time библиотеки компилÑтора\n" -#: gcc.c:3063 +#: gcc.c:3064 msgid " -print-file-name=<lib> Display the full path to library <lib>\n" msgstr " -print-file-name=<биб> Показать полное маршрутное Ð¸Ð¼Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñ‚ÐµÐºÐ¸ <биб>\n" -#: gcc.c:3064 +#: gcc.c:3065 msgid " -print-prog-name=<prog> Display the full path to compiler component <prog>\n" msgstr " -print-prog-name=<прог> Показать полное Ð¸Ð¼Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ‚Ñ‹ компилÑтора <прог>\n" -#: gcc.c:3065 +#: gcc.c:3066 #, fuzzy -#| msgid "" -#| " -print-multi-lib Display the mapping between command line options and\n" -#| " multiple library search directories\n" msgid "" " -print-multiarch Display the target's normalized GNU triplet, used as\n" " a component in the library path\n" @@ -348,11 +341,11 @@ msgstr "" " -print-multi-lib Показать ÑоответÑтвие между ключами и каталогами\n" " поиÑка библиотек\n" -#: gcc.c:3068 +#: gcc.c:3069 msgid " -print-multi-directory Display the root directory for versions of libgcc\n" msgstr " -print-multi-directory Показать корневой каталог Ñ Ð²ÐµÑ€ÑиÑми libgcc\n" -#: gcc.c:3069 +#: gcc.c:3070 msgid "" " -print-multi-lib Display the mapping between command line options and\n" " multiple library search directories\n" @@ -360,51 +353,51 @@ msgstr "" " -print-multi-lib Показать ÑоответÑтвие между ключами и каталогами\n" " поиÑка библиотек\n" -#: gcc.c:3072 +#: gcc.c:3073 msgid " -print-multi-os-directory Display the relative path to OS libraries\n" msgstr " -print-multi-os-directory Показать отноÑительный маршрут к библиотекам операционной ÑиÑтемы\n" -#: gcc.c:3073 +#: gcc.c:3074 msgid " -print-sysroot Display the target libraries directory\n" msgstr " -print-sysroot Показать каталог библиотек цели\n" -#: gcc.c:3074 +#: gcc.c:3075 msgid " -print-sysroot-headers-suffix Display the sysroot suffix used to find headers\n" msgstr " -print-sysroot-headers-suffix ВывеÑти ÑÑƒÑ„Ñ„Ð¸ÐºÑ sysroot, иÑпользуемый Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка заголовочных файлов\n" -#: gcc.c:3075 +#: gcc.c:3076 msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n" msgstr " -Wa,<ключи> Передать <ключи>, разделённые запÑтыми, аÑÑемблеру\n" -#: gcc.c:3076 +#: gcc.c:3077 msgid " -Wp,<options> Pass comma-separated <options> on to the preprocessor\n" msgstr " -Wp,<ключи> Передать <ключи>, разделённые запÑтыми, препроцеÑÑору\n" -#: gcc.c:3077 +#: gcc.c:3078 msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n" msgstr " -Wl,<ключи> Передать <ключи>, разделённые запÑтыми, компоновщику\n" -#: gcc.c:3078 +#: gcc.c:3079 msgid " -Xassembler <arg> Pass <arg> on to the assembler\n" msgstr " -Xassembler <арг> Передать <арг> аÑÑемблеру\n" -#: gcc.c:3079 +#: gcc.c:3080 msgid " -Xpreprocessor <arg> Pass <arg> on to the preprocessor\n" msgstr " -Xpreprocessor <арг> Передать <арг> препроцеÑÑору\n" -#: gcc.c:3080 +#: gcc.c:3081 msgid " -Xlinker <arg> Pass <arg> on to the linker\n" msgstr " -Xlinker <арг> Передать <арг> компоновщику\n" -#: gcc.c:3081 +#: gcc.c:3082 msgid " -save-temps Do not delete intermediate files\n" msgstr " -save-temps Ðе удалÑÑ‚ÑŒ промежуточные файлы\n" -#: gcc.c:3082 +#: gcc.c:3083 msgid " -save-temps=<arg> Do not delete intermediate files\n" msgstr " -save-temps=<arg> Ðе удалÑÑ‚ÑŒ промежуточные файлы\n" -#: gcc.c:3083 +#: gcc.c:3084 msgid "" " -no-canonical-prefixes Do not canonicalize paths when building relative\n" " prefixes to other gcc components\n" @@ -412,25 +405,25 @@ msgstr "" " -no-canonical-prefixes Ðе канонизировать пути при Ñборке отноÑительных\n" " префикÑов к другим компонентам gcc\n" -#: gcc.c:3086 +#: gcc.c:3087 msgid " -pipe Use pipes rather than intermediate files\n" msgstr " -pipe Передавать промежуточные данные по конвейеру\n" -#: gcc.c:3087 +#: gcc.c:3088 msgid " -time Time the execution of each subprocess\n" msgstr " -time Включить хронометраж проходов\n" -#: gcc.c:3088 +#: gcc.c:3089 msgid " -specs=<file> Override built-in specs with the contents of <file>\n" msgstr "" " -specs=<файл> ИÑпользовать <файл> Ñпецификаций вмеÑто \n" " внутренних Ñпецификаций компилÑтора\n" -#: gcc.c:3089 +#: gcc.c:3090 msgid " -std=<standard> Assume that the input sources are for <standard>\n" msgstr " -std=<Ñтандарт> Считать, что иÑходный код Ñледует <Ñтандарту>\n" -#: gcc.c:3090 +#: gcc.c:3091 msgid "" " --sysroot=<directory> Use <directory> as the root directory for headers\n" " and libraries\n" @@ -438,47 +431,47 @@ msgstr "" " --sysroot=<каталог> ИÑпользовать <каталог> как головной каталог Ð´Ð»Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ¾Ð²\n" " и библиотек\n" -#: gcc.c:3093 +#: gcc.c:3094 msgid " -B <directory> Add <directory> to the compiler's search paths\n" msgstr "" " -B <каталог> добавить <каталог> к ÑпиÑку поиÑка программ \n" " компилÑтора\n" -#: gcc.c:3094 +#: gcc.c:3095 msgid " -v Display the programs invoked by the compiler\n" msgstr " -v Отображать команды, запуÑкаемые компилÑтором\n" -#: gcc.c:3095 +#: gcc.c:3096 msgid " -### Like -v but options quoted and commands not executed\n" msgstr " -### Как -v, но параметры берутÑÑ Ð² кавычки и команды не запуÑкаютÑÑ\n" -#: gcc.c:3096 +#: gcc.c:3097 msgid " -E Preprocess only; do not compile, assemble or link\n" msgstr " -E Только препроцеÑÑирование - без компилÑции, аÑÑемблированиÑ, компоновки\n" -#: gcc.c:3097 +#: gcc.c:3098 msgid " -S Compile only; do not assemble or link\n" msgstr " -S Только компилÑÑ†Ð¸Ñ - без аÑÑÐµÐ¼Ð±Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ компоновки\n" -#: gcc.c:3098 +#: gcc.c:3099 msgid " -c Compile and assemble, but do not link\n" msgstr " -c КомпилÑÑ†Ð¸Ñ Ð¸ аÑÑемблирование, без компоновки\n" -#: gcc.c:3099 +#: gcc.c:3100 msgid " -o <file> Place the output into <file>\n" msgstr " -o <файл> ЗапиÑать результат в <файл>\n" -#: gcc.c:3100 +#: gcc.c:3101 #, fuzzy msgid " -pie Create a position independent executable\n" msgstr "Генерировать позиционно-незавиÑимый код Ð´Ð»Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½Ñемых модулей, еÑли возможно (режим large)" -#: gcc.c:3101 +#: gcc.c:3102 #, fuzzy msgid " -shared Create a shared library\n" msgstr " --javap\t\t ВывеÑти результат в формате 'javap'\n" -#: gcc.c:3102 +#: gcc.c:3103 msgid "" " -x <language> Specify the language of the following input files\n" " Permissible languages include: c c++ assembler none\n" @@ -490,7 +483,7 @@ msgstr "" " 'none' означает, что далее Ñзык нужно\n" " определÑÑ‚ÑŒ по раÑширению имени файла\n" -#: gcc.c:3109 +#: gcc.c:3110 #, c-format msgid "" "\n" @@ -502,27 +495,27 @@ msgstr "" "Ключи, начинающиеÑÑ Ñ -g, -f, -m, -O, -W, или --param автоматичеÑки\n" "передаютÑÑ Ð¿Ñ€Ð¾Ñ†ÐµÑÑам, запуÑкаемым %s. Ð”Ð»Ñ Ð¿ÐµÑ€ÐµÐ´Ð°Ñ‡Ð¸ ключей Ñтим процеÑÑам, иÑпользуйте ключи -W<буква>.\n" -#: gcc.c:5364 +#: gcc.c:5365 #, fuzzy, c-format msgid "Processing spec (%s), which is '%s'\n" msgstr "Обработка Ñпецификации %c%s%c, Ñ‚.е. '%s'\n" -#: gcc.c:6649 +#: gcc.c:6651 #, c-format msgid "install: %s%s\n" msgstr "уÑтановка: %s%s\n" -#: gcc.c:6652 +#: gcc.c:6654 #, c-format msgid "programs: %s\n" msgstr "программы: %s\n" -#: gcc.c:6654 +#: gcc.c:6656 #, c-format msgid "libraries: %s\n" msgstr "библиотеки: %s\n" -#: gcc.c:6738 +#: gcc.c:6740 #, c-format msgid "" "\n" @@ -531,16 +524,16 @@ msgstr "" "\n" "ИнÑтрукции по ÑоÑтавлению и отправке отчётов об ошибках Ñм. на:\n" -#: gcc.c:6754 +#: gcc.c:6756 #, c-format msgid "%s %s%s\n" msgstr "%s %s%s\n" -#: gcc.c:6757 gcov.c:491 fortran/gfortranspec.c:303 java/jcf-dump.c:1230 +#: gcc.c:6759 gcov.c:491 fortran/gfortranspec.c:303 java/jcf-dump.c:1230 msgid "(C)" msgstr "(C)" -#: gcc.c:6758 java/jcf-dump.c:1231 +#: gcc.c:6760 java/jcf-dump.c:1231 #, c-format msgid "" "This is free software; see the source for copying conditions. There is NO\n" @@ -552,32 +545,32 @@ msgstr "" "коммерчеÑкую ценноÑÑ‚ÑŒ и применимоÑÑ‚ÑŒ Ð´Ð»Ñ ÐºÐ°ÐºÐ¸Ñ…-либо целей.\n" "\n" -#: gcc.c:6775 +#: gcc.c:6777 #, c-format msgid "Target: %s\n" msgstr "Ð¦ÐµÐ»ÐµÐ²Ð°Ñ Ð°Ñ€Ñ…Ð¸Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð°: %s\n" -#: gcc.c:6776 +#: gcc.c:6778 #, c-format msgid "Configured with: %s\n" msgstr "Параметры конфигурации: %s\n" -#: gcc.c:6790 +#: gcc.c:6792 #, c-format msgid "Thread model: %s\n" msgstr "Модель многопоточноÑти: %s\n" -#: gcc.c:6801 +#: gcc.c:6803 #, c-format msgid "gcc version %s %s\n" msgstr "gcc верÑÐ¸Ñ %s %s\n" -#: gcc.c:6804 +#: gcc.c:6806 #, c-format msgid "gcc driver version %s %sexecuting gcc version %s\n" msgstr "драйвер gcc верÑÐ¸Ñ %s; %sиÑполнÑет gcc верÑÐ¸Ñ %s\n" -#: gcc.c:7058 +#: gcc.c:7061 #, c-format msgid "" "\n" @@ -590,7 +583,7 @@ msgstr "" "==================\n" "\n" -#: gcc.c:7059 +#: gcc.c:7062 #, c-format msgid "" "Use \"-Wl,OPTION\" to pass \"OPTION\" to the linker.\n" @@ -599,7 +592,7 @@ msgstr "" "ИÑпользуйте \"-Wl,КЛЮЧ\", чтобы передать \"КЛЮЧ\" компоновщику.\n" "\n" -#: gcc.c:8276 +#: gcc.c:8279 #, c-format msgid "" "Assembler options\n" @@ -610,7 +603,7 @@ msgstr "" "=================\n" "\n" -#: gcc.c:8277 +#: gcc.c:8280 #, c-format msgid "" "Use \"-Wa,OPTION\" to pass \"OPTION\" to the assembler.\n" @@ -773,7 +766,6 @@ msgstr "[Выход из %s]\n" #: gcov.c:979 #, fuzzy, c-format -#| msgid "%s:source file is newer than graph file '%s'\n" msgid "%s:source file is newer than notes file '%s'\n" msgstr "%s:иÑходный файл новее чем файл графа '%s'\n" @@ -784,13 +776,11 @@ msgstr "(Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ файла иÑходных текÑтов Ñоо #: gcov.c:1009 #, fuzzy, c-format -#| msgid "%s:cannot open graph file\n" msgid "%s:cannot open notes file\n" msgstr "%s:ошибка Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð³Ñ€Ð°Ñ„Ð¸Ñ‡ÐµÑкого файла\n" #: gcov.c:1015 #, fuzzy, c-format -#| msgid "%s:not a gcov data file\n" msgid "%s:not a gcov notes file\n" msgstr "%s:не файл данных gcov\n" @@ -831,7 +821,6 @@ msgstr "%s:верÑÐ¸Ñ '%.4s', предпочтительна верÑÐ¸Ñ '%.4 #: gcov.c:1251 #, fuzzy, c-format -#| msgid "%s:stamp mismatch with graph file\n" msgid "%s:stamp mismatch with notes file\n" msgstr "%s:штамп не ÑоответÑтвует графичеÑкому файлу\n" @@ -1046,17 +1035,17 @@ msgstr " поÑкольку Ñто неÑиÑтемный каталог, поРmsgid "ignoring nonexistent directory \"%s\"\n" msgstr "неÑущеÑтвующий каталог \"%s\" проигнорирован\n" -#: incpath.c:363 +#: incpath.c:374 #, c-format msgid "#include \"...\" search starts here:\n" msgstr "порÑдок поиÑка Ð´Ð»Ñ #include \"...\":\n" -#: incpath.c:367 +#: incpath.c:378 #, c-format msgid "#include <...> search starts here:\n" msgstr "порÑдок поиÑка Ð´Ð»Ñ #include <...>:\n" -#: incpath.c:372 +#: incpath.c:383 #, c-format msgid "End of search list.\n" msgstr "Конец ÑпиÑка поиÑка.\n" @@ -1089,44 +1078,44 @@ msgstr "%Jфункции, возможно, Ñледует задать атри msgid "At top level:" msgstr "Ðа верхнем уровне:" -#: langhooks.c:400 cp/error.c:3038 +#: langhooks.c:400 cp/error.c:3042 #, c-format msgid "In member function %qs" msgstr "Ð’ функции-члене %qs" -#: langhooks.c:404 cp/error.c:3041 +#: langhooks.c:404 cp/error.c:3045 #, c-format msgid "In function %qs" msgstr "Ð’ функции %qs" -#: langhooks.c:455 cp/error.c:2991 +#: langhooks.c:455 cp/error.c:2995 #, c-format msgid " inlined from %qs at %s:%d:%d" msgstr " включённом из %qs в %s:%d:%d" -#: langhooks.c:460 cp/error.c:2996 +#: langhooks.c:460 cp/error.c:3000 #, c-format msgid " inlined from %qs at %s:%d" msgstr " включённом из %qs в %s:%d" -#: langhooks.c:466 cp/error.c:3002 +#: langhooks.c:466 cp/error.c:3006 #, c-format msgid " inlined from %qs" msgstr " включённом из %qs" -#: loop-iv.c:3029 tree-ssa-loop-niter.c:1924 +#: loop-iv.c:3029 tree-ssa-loop-niter.c:1925 msgid "assuming that the loop is not infinite" msgstr "предполагаетÑÑ, что цикл не беÑконечный" -#: loop-iv.c:3030 tree-ssa-loop-niter.c:1925 +#: loop-iv.c:3030 tree-ssa-loop-niter.c:1926 msgid "cannot optimize possibly infinite loops" msgstr "невозможно оптимизировать беÑконечные циклы" -#: loop-iv.c:3038 tree-ssa-loop-niter.c:1929 +#: loop-iv.c:3038 tree-ssa-loop-niter.c:1930 msgid "assuming that the loop counter does not overflow" msgstr "предполагаетÑÑ, что Ñчётчик цикла не выходит за границы" -#: loop-iv.c:3039 tree-ssa-loop-niter.c:1930 +#: loop-iv.c:3039 tree-ssa-loop-niter.c:1931 msgid "cannot optimize loop, the loop counter may overflow" msgstr "невозможно оптимизировать циклы, в которых Ñчётчик выходит за границы" @@ -1204,80 +1193,80 @@ msgstr "fopen: %s" msgid "This switch lacks documentation" msgstr "Ðтот ключ не документирован" -#: opts.c:1015 +#: opts.c:1018 msgid "[default]" msgstr "[по умолчанию]" -#: opts.c:1026 +#: opts.c:1029 msgid "[enabled]" msgstr "[включено]" -#: opts.c:1026 +#: opts.c:1029 msgid "[disabled]" msgstr "[выключено]" -#: opts.c:1045 +#: opts.c:1048 #, c-format msgid " No options with the desired characteristics were found\n" msgstr " Ðе найдено ключей Ñ Ñ‚Ñ€ÐµÐ±ÑƒÐµÐ¼Ñ‹Ð¼Ð¸ характериÑтиками\n" -#: opts.c:1054 +#: opts.c:1057 #, c-format msgid " None found. Use --help=%s to show *all* the options supported by the %s front-end\n" msgstr "" -#: opts.c:1060 +#: opts.c:1063 #, c-format msgid " All options with the desired characteristics have already been displayed\n" msgstr " Ð’Ñе ключи Ñ Ñ‚Ñ€ÐµÐ±ÑƒÐµÐ¼Ñ‹Ð¼Ð¸ характериÑтиками уже выведены\n" -#: opts.c:1155 +#: opts.c:1158 msgid "The following options are target specific" -msgstr "Следующие ключи не завиÑÑÑ‚ от целевой архитектуры" +msgstr "Следующие ключи завиÑÑÑ‚ от целевой архитектуры" -#: opts.c:1158 +#: opts.c:1161 msgid "The following options control compiler warning messages" msgstr "Следующие ключи контролируют Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð¿Ð¸Ð»Ñтора" -#: opts.c:1161 +#: opts.c:1164 msgid "The following options control optimizations" msgstr "Следующие ключи контролируют оптимизацию" -#: opts.c:1164 opts.c:1203 +#: opts.c:1167 opts.c:1206 msgid "The following options are language-independent" msgstr "Следующие ключи не завиÑÑÑ‚ от входного Ñзыка" -#: opts.c:1167 +#: opts.c:1170 msgid "The --param option recognizes the following as parameters" msgstr "Ключ --param позволÑет задать Ñледующие параметры" -#: opts.c:1173 +#: opts.c:1176 msgid "The following options are specific to just the language " msgstr "Следующие ключи завиÑÑÑ‚ только от Ñзыка " -#: opts.c:1175 +#: opts.c:1178 msgid "The following options are supported by the language " msgstr "Следующие ключи поддерживаютÑÑ Ñзыком " -#: opts.c:1186 +#: opts.c:1189 msgid "The following options are not documented" msgstr "Следующие ключи не документированы" -#: opts.c:1188 +#: opts.c:1191 #, fuzzy msgid "The following options take separate arguments" msgstr "Следующие ключи не документированы" -#: opts.c:1190 +#: opts.c:1193 #, fuzzy msgid "The following options take joined arguments" msgstr "Следующие ключи не документированы" -#: opts.c:1201 +#: opts.c:1204 msgid "The following options are language-related" msgstr "Следующие ключи отноÑÑÑ‚ÑÑ Ðº иÑходному Ñзыку" -#: opts.c:2078 +#: opts.c:2081 msgid "enabled by default" msgstr "по умолчанию включена" @@ -2499,7 +2488,7 @@ msgstr " в throw-выражении" msgid "<return-value>" msgstr "" -#: c-family/c-pretty-print.c:2147 cp/error.c:1818 cp/error.c:2764 +#: c-family/c-pretty-print.c:2147 cp/error.c:1818 cp/error.c:2768 #, fuzzy msgid "<unknown>" msgstr "ÐеизвеÑтный иÑточник" @@ -2510,7 +2499,6 @@ msgstr "ÐеизвеÑтный иÑточник" #: config/aarch64/aarch64.c:3298 config/aarch64/aarch64.c:3313 #: config/aarch64/aarch64.c:3332 #, fuzzy, c-format -#| msgid "invalid operand for code '%c'" msgid "invalid operand for '%%%c'" msgstr "недопуÑтимый операнд Ð´Ð»Ñ ÐºÐ¾Ð´Ð° '%c'" @@ -2519,26 +2507,23 @@ msgstr "недопуÑтимый операнд Ð´Ð»Ñ ÐºÐ¾Ð´Ð° '%c'" msgid "incompatible floating point / vector register operand for '%%%c'" msgstr "" -#: config/aarch64/aarch64.c:3399 config/arm/arm.c:18223 +#: config/aarch64/aarch64.c:3399 config/arm/arm.c:18233 #, c-format msgid "missing operand" msgstr "отÑутÑтвует операнд" #: config/aarch64/aarch64.c:3462 #, fuzzy, c-format -#| msgid "invalid insn:" msgid "invalid constant" msgstr "недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð¸Ð½ÑтрукциÑ:" #: config/aarch64/aarch64.c:3465 #, fuzzy, c-format -#| msgid "invalid %%d operand" msgid "invalid operand" msgstr "некорректный операнд Ð´Ð»Ñ %%d" #: config/aarch64/aarch64.c:3545 #, fuzzy, c-format -#| msgid "invalid operand code '%c'" msgid "invalid operand prefix '%%%c'" msgstr "некорректный код операнда '%c'" @@ -2626,33 +2611,34 @@ msgstr "некорректное unspec-перемещение" msgid "invalid %%xn code" msgstr "некорректный код %%xn" -#: config/arm/arm.c:17560 config/arm/arm.c:17578 +#: config/arm/arm.c:15438 config/arm/arm.c:15463 config/arm/arm.c:15473 +#: config/arm/arm.c:15482 config/arm/arm.c:15490 +#, c-format +msgid "invalid shift operand" +msgstr "некорректный оператор Ñдвига" + +#: config/arm/arm.c:17576 config/arm/arm.c:17594 #, c-format msgid "predicated Thumb instruction" msgstr "Ð¿Ñ€ÐµÐ´Ð¸ÐºÐ°Ñ‚Ð¸Ð²Ð½Ð°Ñ Ð¸Ð½ÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ Ð´Ð»Ñ Ð°Ñ€Ñ…Ð¸Ñ‚ÐµÐºÑ‚ÑƒÑ€Ñ‹ Thumb" -#: config/arm/arm.c:17566 +#: config/arm/arm.c:17582 #, c-format msgid "predicated instruction in conditional sequence" msgstr "Ð¿Ñ€ÐµÐ´Ð¸ÐºÐ°Ñ‚Ð¸Ð²Ð½Ð°Ñ Ð¸Ð½ÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ Ð² уÑловной поÑледовательноÑти" -#: config/arm/arm.c:17697 config/arm/arm.c:17710 +#: config/arm/arm.c:17713 config/arm/arm.c:17726 #, fuzzy, c-format msgid "Unsupported operand for code '%c'" msgstr "недопуÑтимый операнд Ð´Ð»Ñ ÐºÐ¾Ð´Ð° '%c'" -#: config/arm/arm.c:17748 -#, c-format -msgid "invalid shift operand" -msgstr "некорректный оператор Ñдвига" - -#: config/arm/arm.c:17805 config/arm/arm.c:17827 config/arm/arm.c:17837 -#: config/arm/arm.c:17847 config/arm/arm.c:17857 config/arm/arm.c:17896 -#: config/arm/arm.c:17914 config/arm/arm.c:17939 config/arm/arm.c:17954 -#: config/arm/arm.c:17981 config/arm/arm.c:17988 config/arm/arm.c:18006 -#: config/arm/arm.c:18013 config/arm/arm.c:18021 config/arm/arm.c:18042 -#: config/arm/arm.c:18049 config/arm/arm.c:18174 config/arm/arm.c:18181 -#: config/arm/arm.c:18204 config/arm/arm.c:18211 config/bfin/bfin.c:1439 +#: config/arm/arm.c:17815 config/arm/arm.c:17837 config/arm/arm.c:17847 +#: config/arm/arm.c:17857 config/arm/arm.c:17867 config/arm/arm.c:17906 +#: config/arm/arm.c:17924 config/arm/arm.c:17949 config/arm/arm.c:17964 +#: config/arm/arm.c:17991 config/arm/arm.c:17998 config/arm/arm.c:18016 +#: config/arm/arm.c:18023 config/arm/arm.c:18031 config/arm/arm.c:18052 +#: config/arm/arm.c:18059 config/arm/arm.c:18184 config/arm/arm.c:18191 +#: config/arm/arm.c:18214 config/arm/arm.c:18221 config/bfin/bfin.c:1439 #: config/bfin/bfin.c:1446 config/bfin/bfin.c:1453 config/bfin/bfin.c:1460 #: config/bfin/bfin.c:1469 config/bfin/bfin.c:1476 config/bfin/bfin.c:1483 #: config/bfin/bfin.c:1490 @@ -2660,23 +2646,23 @@ msgstr "некорректный оператор Ñдвига" msgid "invalid operand for code '%c'" msgstr "недопуÑтимый операнд Ð´Ð»Ñ ÐºÐ¾Ð´Ð° '%c'" -#: config/arm/arm.c:17909 +#: config/arm/arm.c:17919 #, c-format msgid "instruction never executed" msgstr "инÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ Ð½Ð¸ÐºÐ¾Ð³Ð´Ð° не выполнÑетÑÑ" #. Former Maverick support, removed after GCC-4.7. -#: config/arm/arm.c:17930 +#: config/arm/arm.c:17940 #, fuzzy, c-format msgid "obsolete Maverick format code '%c'" msgstr "недопуÑтимый операнд Ð´Ð»Ñ ÐºÐ¾Ð´Ð° '%c'" -#: config/arm/arm.c:20988 +#: config/arm/arm.c:20998 #, fuzzy msgid "function parameters cannot have __fp16 type" msgstr "Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ агрегатное значение" -#: config/arm/arm.c:20998 +#: config/arm/arm.c:21008 #, fuzzy msgid "functions cannot return __fp16 type" msgstr "Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ значение не Ñтрокового типа" @@ -2714,9 +2700,9 @@ msgid "internal compiler error. Bad address:" msgstr "внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ° компилÑтора: некорректный адреÑ:" #: config/avr/avr.c:2234 -#, fuzzy, c-format -msgid "Unsupported code '%c'for fixed-point:" -msgstr "недопуÑтимый операнд Ð´Ð»Ñ ÐºÐ¾Ð´Ð° '%c'" +#, c-format +msgid "Unsupported code '%c' for fixed-point:" +msgstr "" #: config/avr/avr.c:2243 msgid "internal compiler error. Unknown mode:" @@ -2763,8 +2749,8 @@ msgid "invalid const_double operand" msgstr "некорректный операнд const_double" #: config/cris/cris.c:580 config/moxie/moxie.c:111 final.c:3311 final.c:3313 -#: fold-const.c:270 gcc.c:4712 gcc.c:4726 loop-iv.c:3031 loop-iv.c:3040 -#: rtl-error.c:102 toplev.c:332 tree-ssa-loop-niter.c:1933 tree-vrp.c:6783 +#: fold-const.c:270 gcc.c:4713 gcc.c:4727 loop-iv.c:3031 loop-iv.c:3040 +#: rtl-error.c:102 toplev.c:332 tree-ssa-loop-niter.c:1934 tree-vrp.c:6783 #: cp/typeck.c:5618 java/expr.c:389 lto/lto-object.c:189 lto/lto-object.c:287 #: lto/lto-object.c:344 lto/lto-object.c:368 #, gcc-internal-format, gfc-internal-format @@ -3107,8 +3093,8 @@ msgstr "некорректное преобразование к %<__fpreg%>" msgid "invalid operation on %<__fpreg%>" msgstr "некорректный операнд Ð´Ð»Ñ %<__fpreg%>" -#: config/iq2000/iq2000.c:3132 config/tilegx/tilegx.c:5205 -#: config/tilepro/tilepro.c:4695 +#: config/iq2000/iq2000.c:3132 config/tilegx/tilegx.c:5203 +#: config/tilepro/tilepro.c:4693 #, c-format msgid "invalid %%P operand" msgstr "неверный операнд Ð´Ð»Ñ ÐºÐ¾Ð´Ð° %%P" @@ -3123,21 +3109,21 @@ msgstr "неверное значение Ð´Ð»Ñ ÐºÐ¾Ð´Ð° %%p" msgid "invalid use of %%d, %%x, or %%X" msgstr "некорректное иÑпользование %%d, %%x или %%X" -#: config/lm32/lm32.c:521 +#: config/lm32/lm32.c:518 #, c-format msgid "only 0.0 can be loaded as an immediate" msgstr "" -#: config/lm32/lm32.c:591 +#: config/lm32/lm32.c:588 #, fuzzy msgid "bad operand" msgstr "некорректный операнд" -#: config/lm32/lm32.c:603 +#: config/lm32/lm32.c:600 msgid "can't use non gp relative absolute address" msgstr "" -#: config/lm32/lm32.c:607 +#: config/lm32/lm32.c:604 #, fuzzy msgid "invalid addressing mode" msgstr "некорректный адреÑ" @@ -3207,37 +3193,37 @@ msgstr "lo_sum не от региÑтра" msgid "invalid %%L code" msgstr "недопуÑтимое значение Ð´Ð»Ñ ÐºÐ¾Ð´Ð° %%j" -#: config/microblaze/microblaze.c:1760 +#: config/microblaze/microblaze.c:2156 #, fuzzy, c-format msgid "unknown punctuation '%c'" msgstr "неизвеÑÑ‚Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ '%s' в Ñпецификации" -#: config/microblaze/microblaze.c:1769 +#: config/microblaze/microblaze.c:2165 #, fuzzy, c-format msgid "null pointer" msgstr "нулевой указатель в вызове PRINT_OPERAND" -#: config/microblaze/microblaze.c:1804 +#: config/microblaze/microblaze.c:2200 #, fuzzy, c-format msgid "PRINT_OPERAND, invalid insn for %%C" msgstr "PRINT_OPERAND_ADDRESS: Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð¸Ð½ÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ #1" -#: config/microblaze/microblaze.c:1833 +#: config/microblaze/microblaze.c:2229 #, fuzzy, c-format msgid "PRINT_OPERAND, invalid insn for %%N" msgstr "PRINT_OPERAND_ADDRESS: Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð¸Ð½ÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ #1" -#: config/microblaze/microblaze.c:1853 config/microblaze/microblaze.c:2014 +#: config/microblaze/microblaze.c:2249 config/microblaze/microblaze.c:2420 #, fuzzy msgid "insn contains an invalid address !" msgstr "некорректный адреÑ" -#: config/microblaze/microblaze.c:1867 config/microblaze/microblaze.c:2054 +#: config/microblaze/microblaze.c:2264 config/microblaze/microblaze.c:2479 #: config/xtensa/xtensa.c:2443 msgid "invalid address" msgstr "некорректный адреÑ" -#: config/microblaze/microblaze.c:1966 +#: config/microblaze/microblaze.c:2363 #, c-format msgid "letter %c was found & insn was not CONST_INT" msgstr "" @@ -3526,25 +3512,25 @@ msgstr "некорректный операнд Ð´Ð»Ñ Ð¼Ð¾Ð´Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð° msgid "invalid operand for code: '%c'" msgstr "некорректный операнд Ð´Ð»Ñ ÐºÐ¾Ð´Ð° '%c'" -#: config/sh/sh.c:1204 +#: config/sh/sh.c:1201 #, c-format msgid "invalid operand to %%R" msgstr "некорректный операнд Ð´Ð»Ñ %%R" -#: config/sh/sh.c:1231 +#: config/sh/sh.c:1228 #, c-format msgid "invalid operand to %%S" msgstr "некорректный операнд Ð´Ð»Ñ %%S" -#: config/sh/sh.c:9775 +#: config/sh/sh.c:9772 msgid "created and used with different architectures / ABIs" msgstr "Ñоздан Ñ Ð¾Ð´Ð½Ð¾Ð¹ архитектурой / ABI, а иÑпользуетÑÑ Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼" -#: config/sh/sh.c:9777 +#: config/sh/sh.c:9774 msgid "created and used with different ABIs" msgstr "Ñоздан Ñ Ð¾Ð´Ð½Ð¸Ð¼ ABI, а иÑпользуетÑÑ Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼" -#: config/sh/sh.c:9779 +#: config/sh/sh.c:9776 msgid "created and used with different endianness" msgstr "Ñоздан Ñ Ð¾Ð´Ð½Ð¸Ð¼ значением endianness, а иÑпользуетÑÑ Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼" @@ -3563,13 +3549,13 @@ msgstr "некорректный операнд Ð´Ð»Ñ %%A" msgid "invalid %%B operand" msgstr "некорректный операнд Ð´Ð»Ñ %%B" -#: config/sparc/sparc.c:8508 config/tilegx/tilegx.c:4988 -#: config/tilepro/tilepro.c:4498 +#: config/sparc/sparc.c:8508 config/tilegx/tilegx.c:4986 +#: config/tilepro/tilepro.c:4496 #, fuzzy, c-format msgid "invalid %%C operand" msgstr "неверный операнд Ð´Ð»Ñ ÐºÐ¾Ð´Ð° %%P" -#: config/sparc/sparc.c:8525 config/tilegx/tilegx.c:5021 +#: config/sparc/sparc.c:8525 config/tilegx/tilegx.c:5019 #, fuzzy, c-format msgid "invalid %%D operand" msgstr "неверный операнд Ð´Ð»Ñ ÐºÐ¾Ð´Ð° %%P" @@ -3614,87 +3600,87 @@ msgstr "операнд Ñ ÐºÐ¾Ð´Ð¾Ð¼ 'o' - не конÑтанта" msgid "xstormy16_print_operand: unknown code" msgstr "xstormy16_print_operand: некорректный код" -#: config/tilegx/tilegx.c:4973 config/tilepro/tilepro.c:4483 +#: config/tilegx/tilegx.c:4971 config/tilepro/tilepro.c:4481 #, c-format msgid "invalid %%c operand" msgstr "некорректный операнд Ð´Ð»Ñ %%c" -#: config/tilegx/tilegx.c:5004 +#: config/tilegx/tilegx.c:5002 #, c-format msgid "invalid %%d operand" msgstr "некорректный операнд Ð´Ð»Ñ %%d" -#: config/tilegx/tilegx.c:5101 +#: config/tilegx/tilegx.c:5099 #, fuzzy, c-format msgid "invalid %%H specifier" msgstr "недопуÑтимое значение Ð´Ð»Ñ ÐºÐ¾Ð´Ð° %%j" -#: config/tilegx/tilegx.c:5143 config/tilepro/tilepro.c:4512 +#: config/tilegx/tilegx.c:5141 config/tilepro/tilepro.c:4510 #, fuzzy, c-format msgid "invalid %%h operand" msgstr "неверный операнд Ð´Ð»Ñ ÐºÐ¾Ð´Ð° %%P" -#: config/tilegx/tilegx.c:5155 config/tilepro/tilepro.c:4576 +#: config/tilegx/tilegx.c:5153 config/tilepro/tilepro.c:4574 #, fuzzy, c-format msgid "invalid %%I operand" msgstr "неверный операнд Ð´Ð»Ñ ÐºÐ¾Ð´Ð° %%P" -#: config/tilegx/tilegx.c:5169 config/tilepro/tilepro.c:4590 +#: config/tilegx/tilegx.c:5167 config/tilepro/tilepro.c:4588 #, fuzzy, c-format msgid "invalid %%i operand" msgstr "неверный операнд Ð´Ð»Ñ ÐºÐ¾Ð´Ð° %%P" -#: config/tilegx/tilegx.c:5192 config/tilepro/tilepro.c:4613 +#: config/tilegx/tilegx.c:5190 config/tilepro/tilepro.c:4611 #, fuzzy, c-format msgid "invalid %%j operand" msgstr "неверный операнд Ð´Ð»Ñ ÐºÐ¾Ð´Ð° %%P" -#: config/tilegx/tilegx.c:5223 +#: config/tilegx/tilegx.c:5221 #, fuzzy, c-format msgid "invalid %%%c operand" msgstr "некорректный операнд Ð´Ð»Ñ %%c" -#: config/tilegx/tilegx.c:5238 config/tilepro/tilepro.c:4727 +#: config/tilegx/tilegx.c:5236 config/tilepro/tilepro.c:4725 #, fuzzy, c-format msgid "invalid %%N operand" msgstr "неверный операнд Ð´Ð»Ñ ÐºÐ¾Ð´Ð° %%P" -#: config/tilegx/tilegx.c:5282 +#: config/tilegx/tilegx.c:5280 #, fuzzy, c-format msgid "invalid operand for 'r' specifier" msgstr "некорректный операнд Ð´Ð»Ñ Ð¼Ð¾Ð´Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð° 'b'" -#: config/tilegx/tilegx.c:5307 config/tilepro/tilepro.c:4809 +#: config/tilegx/tilegx.c:5305 config/tilepro/tilepro.c:4807 #, c-format msgid "unable to print out operand yet; code == %d (%c)" msgstr "" -#: config/tilepro/tilepro.c:4548 +#: config/tilepro/tilepro.c:4546 #, fuzzy, c-format msgid "invalid %%H operand" msgstr "неверный операнд Ð´Ð»Ñ ÐºÐ¾Ð´Ð° %%P" -#: config/tilepro/tilepro.c:4652 +#: config/tilepro/tilepro.c:4650 #, fuzzy, c-format msgid "invalid %%L operand" msgstr "неверный операнд Ð´Ð»Ñ ÐºÐ¾Ð´Ð° %%P" -#: config/tilepro/tilepro.c:4712 +#: config/tilepro/tilepro.c:4710 #, fuzzy, c-format msgid "invalid %%M operand" msgstr "неверный операнд Ð´Ð»Ñ ÐºÐ¾Ð´Ð° %%P" -#: config/tilepro/tilepro.c:4755 +#: config/tilepro/tilepro.c:4753 #, fuzzy, c-format msgid "invalid %%t operand" msgstr "неверный операнд Ð´Ð»Ñ ÐºÐ¾Ð´Ð° %%P" -#: config/tilepro/tilepro.c:4762 +#: config/tilepro/tilepro.c:4760 #, fuzzy, c-format msgid "invalid %%t operand '" msgstr "неверный операнд Ð´Ð»Ñ ÐºÐ¾Ð´Ð° %%P" -#: config/tilepro/tilepro.c:4783 +#: config/tilepro/tilepro.c:4781 #, fuzzy, c-format msgid "invalid %%r operand" msgstr "неверный операнд Ð´Ð»Ñ ÐºÐ¾Ð´Ð° %%P" @@ -3763,7 +3749,7 @@ msgstr "адреÑное Ñмещение - не конÑтанта" msgid "({anonymous})" msgstr "({anonymous})" -#: c/c-parser.c:943 cp/parser.c:23010 +#: c/c-parser.c:943 cp/parser.c:23014 #, gcc-internal-format msgid "expected end of line" msgstr "ожидалÑÑ ÐºÐ¾Ð½ÐµÑ† Ñтроки" @@ -3773,8 +3759,8 @@ msgstr "ожидалÑÑ ÐºÐ¾Ð½ÐµÑ† Ñтроки" #: c/c-parser.c:7357 c/c-parser.c:7392 c/c-parser.c:7423 c/c-parser.c:7470 #: c/c-parser.c:7651 c/c-parser.c:8419 c/c-parser.c:8489 c/c-parser.c:8532 #: c/c-parser.c:9810 c/c-parser.c:9825 c/c-parser.c:9834 c/c-parser.c:9979 -#: c/c-parser.c:10018 c/c-parser.c:2500 c/c-parser.c:7644 cp/parser.c:22423 -#: cp/parser.c:22956 +#: c/c-parser.c:10018 c/c-parser.c:2500 c/c-parser.c:7644 cp/parser.c:22427 +#: cp/parser.c:22960 #, gcc-internal-format msgid "expected %<;%>" msgstr "ожидалоÑÑŒ %<;%>" @@ -3786,13 +3772,13 @@ msgstr "ожидалоÑÑŒ %<;%>" #: c/c-parser.c:6703 c/c-parser.c:6727 c/c-parser.c:7942 c/c-parser.c:8014 #: c/c-parser.c:8841 c/c-parser.c:8862 c/c-parser.c:8912 c/c-parser.c:9065 #: c/c-parser.c:9144 c/c-parser.c:9228 c/c-parser.c:9942 c/c-parser.c:10766 -#: c/c-parser.c:8985 c/c-parser.c:9010 cp/parser.c:20794 cp/parser.c:22959 +#: c/c-parser.c:8985 c/c-parser.c:9010 cp/parser.c:20798 cp/parser.c:22963 #, gcc-internal-format msgid "expected %<(%>" msgstr "ожидалоÑÑŒ %<(%>" #: c/c-parser.c:1843 c/c-parser.c:6389 c/c-parser.c:6427 c/c-parser.c:6555 -#: cp/parser.c:22421 cp/parser.c:22974 +#: cp/parser.c:22425 cp/parser.c:22978 #, gcc-internal-format msgid "expected %<,%>" msgstr "ожидалоÑÑŒ %<,%>" @@ -3808,15 +3794,15 @@ msgstr "ожидалоÑÑŒ %<,%>" #: c/c-parser.c:7736 c/c-parser.c:7757 c/c-parser.c:7965 c/c-parser.c:8018 #: c/c-parser.c:8391 c/c-parser.c:8844 c/c-parser.c:8865 c/c-parser.c:8943 #: c/c-parser.c:9072 c/c-parser.c:9209 c/c-parser.c:9292 c/c-parser.c:9870 -#: c/c-parser.c:9987 c/c-parser.c:10029 c/c-parser.c:10775 cp/parser.c:20816 -#: cp/parser.c:23004 +#: c/c-parser.c:9987 c/c-parser.c:10029 c/c-parser.c:10775 cp/parser.c:20820 +#: cp/parser.c:23008 #, gcc-internal-format msgid "expected %<)%>" msgstr "ожидалоÑÑŒ %<)%>" #: c/c-parser.c:3095 c/c-parser.c:3911 c/c-parser.c:3945 c/c-parser.c:5228 #: c/c-parser.c:6491 c/c-parser.c:6760 c/c-parser.c:6878 c/c-parser.c:10678 -#: c/c-parser.c:10680 cp/parser.c:22968 +#: c/c-parser.c:10680 cp/parser.c:22972 #, gcc-internal-format msgid "expected %<]%>" msgstr "ожидалоÑÑŒ %<]%>" @@ -3825,25 +3811,25 @@ msgstr "ожидалоÑÑŒ %<]%>" msgid "expected %<;%>, %<,%> or %<)%>" msgstr "ожидалоÑÑŒ %<;%>, %<,%> или %<)%>" -#: c/c-parser.c:3774 c/c-parser.c:9826 cp/parser.c:22962 cp/parser.c:24780 +#: c/c-parser.c:3774 c/c-parser.c:9826 cp/parser.c:22966 cp/parser.c:24784 #, gcc-internal-format msgid "expected %<}%>" msgstr "ожидалоÑÑŒ %<}%>" #: c/c-parser.c:4064 c/c-parser.c:7985 c/c-parser.c:10272 c/c-parser.c:2318 -#: c/c-parser.c:2521 c/c-parser.c:7539 cp/parser.c:14644 cp/parser.c:22965 +#: c/c-parser.c:2521 c/c-parser.c:7539 cp/parser.c:14646 cp/parser.c:22969 #, gcc-internal-format msgid "expected %<{%>" msgstr "ожидалоÑÑŒ %<{%>" #: c/c-parser.c:4283 c/c-parser.c:4292 c/c-parser.c:5135 c/c-parser.c:5469 #: c/c-parser.c:7750 c/c-parser.c:8125 c/c-parser.c:8182 c/c-parser.c:9198 -#: cp/parser.c:22998 cp/parser.c:24001 +#: cp/parser.c:23002 cp/parser.c:24005 #, gcc-internal-format msgid "expected %<:%>" msgstr "ожидалоÑÑŒ %<:%>" -#: c/c-parser.c:4831 cp/parser.c:22892 +#: c/c-parser.c:4831 cp/parser.c:22896 #, gcc-internal-format msgid "expected %<while%>" msgstr "ожидалоÑÑŒ %<while%>" @@ -3852,34 +3838,34 @@ msgstr "ожидалоÑÑŒ %<while%>" msgid "expected %<.%>" msgstr "ожидалоÑÑŒ %<.%>" -#: c/c-parser.c:7210 c/c-parser.c:7242 c/c-parser.c:7482 cp/parser.c:24564 -#: cp/parser.c:24638 +#: c/c-parser.c:7210 c/c-parser.c:7242 c/c-parser.c:7482 cp/parser.c:24568 +#: cp/parser.c:24642 #, gcc-internal-format msgid "expected %<@end%>" msgstr "ожидалоÑÑŒ %<@end%>" -#: c/c-parser.c:7899 cp/parser.c:22983 +#: c/c-parser.c:7899 cp/parser.c:22987 #, gcc-internal-format msgid "expected %<>%>" msgstr "ожидалоÑÑŒ %<>%>" -#: c/c-parser.c:9296 cp/parser.c:23007 +#: c/c-parser.c:9296 cp/parser.c:23011 #, gcc-internal-format msgid "expected %<,%> or %<)%>" msgstr "ожидалоÑÑŒ %<,%> или %<)%>" #: c/c-parser.c:9549 c/c-parser.c:9580 c/c-parser.c:9816 c/c-parser.c:9968 -#: c/c-parser.c:3968 cp/parser.c:22986 +#: c/c-parser.c:3968 cp/parser.c:22990 #, gcc-internal-format msgid "expected %<=%>" msgstr "ожидалоÑÑŒ %<=%>" -#: c/c-parser.c:10329 c/c-parser.c:10319 cp/parser.c:27421 +#: c/c-parser.c:10329 c/c-parser.c:10319 cp/parser.c:27425 #, gcc-internal-format msgid "expected %<#pragma omp section%> or %<}%>" msgstr "ожидалоÑÑŒ %<#pragma omp section%> или %<}%>" -#: c/c-parser.c:10666 cp/parser.c:22971 +#: c/c-parser.c:10666 cp/parser.c:22975 #, fuzzy, gcc-internal-format msgid "expected %<[%>" msgstr "ожидалоÑÑŒ %<{%>" @@ -3888,11 +3874,11 @@ msgstr "ожидалоÑÑŒ %<{%>" msgid "(anonymous)" msgstr "(anonymous)" -#: cp/call.c:8680 +#: cp/call.c:8698 msgid "candidate 1:" msgstr "кандидат 1:" -#: cp/call.c:8681 +#: cp/call.c:8699 msgid "candidate 2:" msgstr "кандидат 2:" @@ -3900,7 +3886,7 @@ msgstr "кандидат 2:" msgid "<unnamed>" msgstr "" -#: cp/cxx-pretty-print.c:2149 +#: cp/cxx-pretty-print.c:2153 #, fuzzy msgid "template-parameter-" msgstr "параметр шаблона `%#D'" @@ -3972,7 +3958,6 @@ msgstr "<anonymous>" #: cp/error.c:1035 #, fuzzy -#| msgid "(anonymous)" msgid "(anonymous namespace)" msgstr "(anonymous)" @@ -3990,7 +3975,7 @@ msgstr "" msgid "<declaration error>" msgstr "Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ %q#D" -#: cp/error.c:1445 cp/error.c:2855 +#: cp/error.c:1445 cp/error.c:2859 msgid "with" msgstr "" @@ -4015,114 +4000,118 @@ msgstr " в throw-выражении" msgid "<unparsed>" msgstr "" -#: cp/error.c:2504 +#: cp/error.c:2498 +msgid "<lambda>" +msgstr "" + +#: cp/error.c:2508 msgid "<expression error>" msgstr "" -#: cp/error.c:2518 +#: cp/error.c:2522 #, fuzzy msgid "<unknown operator>" msgstr "ÐеизвеÑтный оператор '%s' в %%L" -#: cp/error.c:2807 +#: cp/error.c:2811 #, fuzzy msgid "{unknown}" msgstr "ÐеизвеÑтный иÑточник" -#: cp/error.c:2922 +#: cp/error.c:2926 msgid "At global scope:" msgstr "" -#: cp/error.c:3028 +#: cp/error.c:3032 #, fuzzy, c-format msgid "In static member function %qs" msgstr "Ð’ функции-члене %qs" -#: cp/error.c:3030 +#: cp/error.c:3034 #, c-format msgid "In copy constructor %qs" msgstr "" -#: cp/error.c:3032 +#: cp/error.c:3036 #, fuzzy, c-format msgid "In constructor %qs" msgstr "Ð’ функции %qs" -#: cp/error.c:3034 +#: cp/error.c:3038 #, fuzzy, c-format msgid "In destructor %qs" msgstr "Ð’ функции %qs" -#: cp/error.c:3036 +#: cp/error.c:3040 #, fuzzy msgid "In lambda function" msgstr "Ð’ функции-члене %qs" -#: cp/error.c:3056 +#: cp/error.c:3060 #, fuzzy, c-format msgid "%s: In substitution of %qS:\n" msgstr " в конкретизации шаблона %qT" -#: cp/error.c:3057 +#: cp/error.c:3061 #, fuzzy msgid "%s: In instantiation of %q#D:\n" msgstr " в конкретизации шаблона %qT" -#: cp/error.c:3080 +#: cp/error.c:3084 #, c-format msgid "%s:%d:%d: " msgstr "" -#: cp/error.c:3083 +#: cp/error.c:3087 #, fuzzy, c-format msgid "%s:%d: " msgstr "%s: %s" -#: cp/error.c:3091 +#: cp/error.c:3095 #, c-format msgid "recursively required by substitution of %qS\n" msgstr "" -#: cp/error.c:3092 +#: cp/error.c:3096 #, c-format msgid "required by substitution of %qS\n" msgstr "" -#: cp/error.c:3097 +#: cp/error.c:3101 msgid "recursively required from %q#D\n" msgstr "" -#: cp/error.c:3098 +#: cp/error.c:3102 #, fuzzy msgid "required from %q#D\n" msgstr "задано Ð´Ð»Ñ %q+D" -#: cp/error.c:3105 +#: cp/error.c:3109 #, fuzzy msgid "recursively required from here" msgstr "ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð²Ñ‹Ð·Ð²Ð°Ð½Ð° здеÑÑŒ" -#: cp/error.c:3106 +#: cp/error.c:3110 #, fuzzy msgid "required from here" msgstr "ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð²Ñ‹Ð·Ð²Ð°Ð½Ð° здеÑÑŒ" -#: cp/error.c:3158 +#: cp/error.c:3162 #, c-format msgid "%s:%d:%d: [ skipping %d instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]\n" msgstr "" -#: cp/error.c:3163 +#: cp/error.c:3167 #, c-format msgid "%s:%d: [ skipping %d instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]\n" msgstr "" -#: cp/error.c:3227 +#: cp/error.c:3231 #, c-format msgid "%s:%d:%d: in constexpr expansion of %qs" msgstr "" -#: cp/error.c:3231 +#: cp/error.c:3235 #, c-format msgid "%s:%d: in constexpr expansion of %qs" msgstr "" @@ -4131,12 +4120,12 @@ msgstr "" msgid "candidates are:" msgstr "претенденты:" -#: cp/pt.c:17926 cp/call.c:3290 -#, fuzzy, gcc-internal-format +#: cp/pt.c:17922 cp/call.c:3290 +#, gcc-internal-format msgid "candidate is:" msgid_plural "candidates are:" -msgstr[0] "кандидат 1:" -msgstr[1] "кандидат 1:" +msgstr[0] "" +msgstr[1] "" msgstr[2] "" #: cp/rtti.c:537 @@ -4699,12 +4688,12 @@ msgstr "" msgid "Integer overflow when calculating the amount of memory to allocate" msgstr "" -#: fortran/trans-decl.c:4842 +#: fortran/trans-decl.c:4844 #, fuzzy, c-format msgid "Actual string length does not match the declared one for dummy argument '%s' (%ld/%ld)" msgstr "передано %qT Ð´Ð»Ñ %s %P в %qD" -#: fortran/trans-decl.c:4850 +#: fortran/trans-decl.c:4852 #, fuzzy, c-format msgid "Actual string length is shorter than the declared one for dummy argument '%s' (%ld/%ld)" msgstr "передано %qT Ð´Ð»Ñ %s %P в %qD" @@ -4719,12 +4708,12 @@ msgstr "" msgid "Unequal character lengths (%ld/%ld) in %s" msgstr "" -#: fortran/trans-intrinsic.c:6157 +#: fortran/trans-intrinsic.c:6156 #, fuzzy, c-format msgid "Argument NCOPIES of REPEAT intrinsic is negative (its value is %ld)" msgstr "аргумент `asm' - не конÑÑ‚Ð°Ð½Ñ‚Ð½Ð°Ñ Ñтрока" -#: fortran/trans-intrinsic.c:6189 +#: fortran/trans-intrinsic.c:6188 msgid "Argument NCOPIES of REPEAT intrinsic is too large" msgstr "" @@ -4959,7 +4948,7 @@ msgstr "" msgid "objc-cpp-output is deprecated; please use objective-c-cpp-output instead" msgstr "" -#: java/jvspec.c:79 ada/gcc-interface/lang-specs.h:33 gcc.c:844 +#: java/jvspec.c:79 ada/gcc-interface/lang-specs.h:33 gcc.c:845 msgid "-pg and -fomit-frame-pointer are incompatible" msgstr "-pg и -fomit-frame-pointer неÑовмеÑтимы" @@ -5023,7 +5012,7 @@ msgstr "" msgid "consider using '-pg' instead of '-p' with gprof(1)" msgstr "" -#: config/sh/sh.h:360 config/sh/sh.h:363 +#: config/sh/sh.h:363 config/sh/sh.h:366 msgid "SH2a does not support little-endian" msgstr "SH2a не поддерживает little-endian" @@ -5088,7 +5077,7 @@ msgid "the -shared option is not currently supported for VAX ELF" msgstr "Ключ -shared не поддерживаетÑÑ Ð´Ð»Ñ VAX ELF" #: config/i386/mingw-w64.h:82 config/i386/mingw32.h:115 -#: config/i386/cygwin.h:113 +#: config/i386/cygwin.h:109 msgid "shared and mdll are not compatible" msgstr "shared и mdll неÑовмеÑтимы" @@ -5132,25 +5121,25 @@ msgstr "в файле Ñпецификаций отÑутÑтвует Ñпеци msgid "profiling not supported with -mg" msgstr "профилирование Ñ -mg не поддерживаетÑÑ\n" -#: gcc.c:704 +#: gcc.c:705 #, fuzzy msgid "-fuse-linker-plugin is not supported in this configuration" msgstr "-m%s в данной конфигурации не поддерживаетÑÑ" -#: gcc.c:718 +#: gcc.c:719 msgid "cannot specify -static with -fsanitize=address" msgstr "" -#: gcc.c:720 +#: gcc.c:721 msgid "-fsanitize=thread linking must be done with -pie or -shared" msgstr "" -#: gcc.c:1012 +#: gcc.c:1013 #, fuzzy msgid "GNU C no longer supports -traditional without -E" msgstr "ключ -C или -CC допуÑтим только Ñ -E" -#: gcc.c:1021 +#: gcc.c:1022 msgid "-E or -x required when input is from standard input" msgstr "ввод Ñо Ñтандартного ввода возможен только Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð¼ -E или -x" @@ -5210,7 +5199,7 @@ msgstr "" msgid "Warn about most implicit conversions" msgstr "Предупреждать о неÑвных декларациÑÑ… функций" -#: fortran/lang.opt:234 common.opt:542 +#: fortran/lang.opt:234 common.opt:546 msgid "Print extra (possibly unwanted) warnings" msgstr "Печатать дополнительные (возможно, нежелательные) предупреждениÑ" @@ -5244,13 +5233,11 @@ msgstr "" #: fortran/lang.opt:262 #, fuzzy -#| msgid "Warn when a register variable is declared volatile" msgid "Warn when a left-hand-side array variable is reallocated" msgstr "Предупреждать о региÑтровых переменных, объÑвленных volatile" #: fortran/lang.opt:266 #, fuzzy -#| msgid "Warn when a register variable is declared volatile" msgid "Warn when a left-hand-side variable is reallocated" msgstr "Предупреждать о региÑтровых переменных, объÑвленных volatile" @@ -5368,9 +5355,9 @@ msgstr "" msgid "Allow dollar signs in entity names" msgstr "" -#: fortran/lang.opt:394 config/alpha/alpha.opt:31 common.opt:656 -#: common.opt:830 common.opt:834 common.opt:838 common.opt:842 common.opt:1227 -#: common.opt:1360 common.opt:1364 +#: fortran/lang.opt:394 config/alpha/alpha.opt:31 common.opt:660 +#: common.opt:834 common.opt:838 common.opt:842 common.opt:846 common.opt:1231 +#: common.opt:1364 common.opt:1368 msgid "Does nothing. Preserved for backward compatibility." msgstr "" @@ -5618,7 +5605,7 @@ msgstr "не задано Ð¸Ð¼Ñ Ð¼Ð°ÐºÑ€Ð¾Ñа поÑле %qs" #: c-family/c.opt:70 c-family/c.opt:73 c-family/c.opt:76 c-family/c.opt:79 #: c-family/c.opt:175 c-family/c.opt:178 c-family/c.opt:216 c-family/c.opt:220 #: c-family/c.opt:232 c-family/c.opt:1253 c-family/c.opt:1261 -#: config/darwin.opt:53 common.opt:300 common.opt:303 common.opt:2399 +#: config/darwin.opt:53 common.opt:300 common.opt:303 common.opt:2403 #, c-format msgid "missing filename after %qs" msgstr "не задано Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° поÑле %qs" @@ -6077,7 +6064,6 @@ msgstr "Предупреждать о переупорÑдочении кода #: c-family/c.opt:654 #, fuzzy -#| msgid "returning reference to temporary" msgid "Warn about returning a pointer/reference to a local or temporary variable." msgstr "возврат ÑÑылки на временную переменную" @@ -6171,7 +6157,6 @@ msgstr "%Hрезультат функции, декларированной Ñ Ð #: c-family/c.opt:770 #, fuzzy -#| msgid "Do not warn about using variadic macros when -pedantic" msgid "Warn about using variadic macros" msgstr "Ðе предупреждать об иÑпользовании макроÑов Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ð¼ чиÑлом аргументов Ñ -pedantic" @@ -6203,7 +6188,6 @@ msgstr "Предупреждать о неиÑпользуемых метках" #: c-family/c.opt:798 #, fuzzy -#| msgid "Warn about misuses of pragmas" msgid "Warn about useless casts" msgstr "Предупреждать о неправильном иÑпользовании прагм" @@ -6260,9 +6244,9 @@ msgid "Allow the arguments of the '?' operator to have different types" msgstr "Разрешить разные типы Ð´Ð»Ñ Ð¾Ð¿ÐµÑ€Ð°Ð½Ð´Ð¾Ð² операции '?'" #: c-family/c.opt:856 c-family/c.opt:876 c-family/c.opt:1074 -#: config/sh/sh.opt:209 common.opt:949 common.opt:1135 common.opt:1439 -#: common.opt:1713 common.opt:1749 common.opt:1834 common.opt:1838 -#: common.opt:1914 common.opt:1996 common.opt:2020 common.opt:2108 +#: config/sh/sh.opt:213 common.opt:953 common.opt:1139 common.opt:1443 +#: common.opt:1717 common.opt:1753 common.opt:1838 common.opt:1842 +#: common.opt:1918 common.opt:2000 common.opt:2024 common.opt:2112 msgid "Does nothing. Preserved for backward compatibility." msgstr "" @@ -6461,9 +6445,8 @@ msgid "Downgrade conformance errors to warnings" msgstr "Ошибки ÑоответÑÑ‚Ð²Ð¸Ñ Ñ‚Ñ€Ð°ÐºÑ‚Ð¾Ð²Ð°Ñ‚ÑŒ как предупреждениÑ" #: c-family/c.opt:1089 -#, fuzzy msgid "Enable Plan 9 language extensions" -msgstr "Включить ключ -relax при компоновке" +msgstr "Включить раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Ñзыка Plan 9" #: c-family/c.opt:1093 msgid "Treat the input file as already preprocessed" @@ -6524,7 +6507,6 @@ msgstr "Интервал табулÑции при выдаче Ñообщени #: c-family/c.opt:1159 #, fuzzy -#| msgid "Set the maximum number of iterations for RPTS to N" msgid "Set the maximum number of template instantiation notes for a single warning or error" msgstr "Задать макÑимальное чиÑло итераций Ð´Ð»Ñ RPTS" @@ -7489,7 +7471,7 @@ msgid "Enable earlier placing stop bits for better scheduling" msgstr "Включить раннее размещение stop-битов Ð´Ð»Ñ ÑƒÐ»ÑƒÑ‡ÑˆÐµÐ½Ð¸Ñ Ð¿Ð»Ð°Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ" #: config/ia64/ia64.opt:114 config/spu/spu.opt:72 config/pa/pa.opt:58 -#: config/sh/sh.opt:261 +#: config/sh/sh.opt:265 msgid "Specify range of registers to make fixed" msgstr "Диапазон региÑтров Ñ Ñ„Ð¸ÐºÑированным назначением" @@ -7972,7 +7954,6 @@ msgstr "sizeof(long double) равно 12" #: config/i386/i386.opt:90 #, fuzzy -#| msgid "Use 128-bit long double" msgid "Use 80-bit long double" msgstr "ИÑпользовать 128-битное предÑтавление long double" @@ -7981,7 +7962,7 @@ msgstr "ИÑпользовать 128-битное предÑтавление lon msgid "Use 64-bit long double" msgstr "ИÑпользовать 64-битное предÑтавление long double" -#: config/i386/i386.opt:98 config/sh/sh.opt:205 +#: config/i386/i386.opt:98 config/sh/sh.opt:209 msgid "Reserve space for outgoing arguments in the function prologue" msgstr "ВыделÑÑ‚ÑŒ меÑто Ð´Ð»Ñ Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÐ¼Ñ‹Ñ… аргументов в прологе функции" @@ -8032,7 +8013,6 @@ msgstr "" #: config/i386/i386.opt:171 #, fuzzy -#| msgid "Use given x86-64 code model" msgid "Use given address mode" msgstr "ИÑпользовать указанную модель кода x86-64" @@ -8338,7 +8318,6 @@ msgstr "" #: config/i386/i386.opt:552 #, fuzzy -#| msgid "Support multiply accumulate instructions" msgid "Support flag-preserving add-carry instructions" msgstr "ИÑпользовать команды ÑƒÐ¼Ð½Ð¾Ð¶ÐµÐ½Ð¸Ñ Ñо Ñложением" @@ -8348,13 +8327,11 @@ msgstr "" #: config/i386/i386.opt:560 #, fuzzy -#| msgid "Support calls between Thumb and ARM instruction sets" msgid "Support XSAVE and XRSTOR instructions" msgstr "Включить поддержку вызовов между ÑиÑтемами команд Thumb и ARM" #: config/i386/i386.opt:564 #, fuzzy -#| msgid "Support MMX built-in functions" msgid "Support XSAVEOPT instruction" msgstr "Включить поддержку внутренних функций MMX" @@ -8533,7 +8510,6 @@ msgstr "Включить отладочную печать" #: config/v850/v850.opt:41 #, fuzzy -#| msgid "Do not use the callt instruction" msgid "Do not use the callt instruction (default)" msgstr "Ðе иÑпользовать команды callt" @@ -8603,7 +8579,6 @@ msgstr "Компилировать Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑÑора v850e" #: config/v850/v850.opt:117 #, fuzzy -#| msgid "Compile for the v850e processor" msgid "Compile for the v850e3v5 processor" msgstr "Компилировать Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑÑора v850e" @@ -8623,13 +8598,11 @@ msgstr "УÑтановить уровень подробноÑти ÑообщеР#: config/v850/v850.opt:139 #, fuzzy -#| msgid "Prohibit PC relative function calls" msgid "Prohibit PC relative jumps" msgstr "Запретить вызовы функций отноÑительно PC" #: config/v850/v850.opt:143 #, fuzzy -#| msgid "Prevent the use of all hardware floating-point instructions" msgid "Inhibit the use of hardware floating point instructions" msgstr "Ðе иÑпользовать аппаратную реализацию плавающих операций" @@ -8645,7 +8618,6 @@ msgstr "ИÑпользовать команды RTPB" #: config/v850/v850.opt:155 #, fuzzy -#| msgid "Enable support for huge objects" msgid "Enable support for the old GCC ABI" msgstr "Включить поддержку больших объектов" @@ -8763,6 +8735,10 @@ msgstr "" msgid "The device has no SPH special function register. This option will be overridden by the compiler driver with the correct setting if presence/absence of SPH can be deduced from -mmcu=MCU." msgstr "" +#: config/avr/avr.opt:80 +msgid "Warn if the address space of an address is change." +msgstr "" + #: config/m32r/m32r.opt:34 msgid "Compile for the m32rx" msgstr "Компилировать Ð´Ð»Ñ m32rx" @@ -9883,68 +9859,72 @@ msgid "Use the soft multiply emulation (default)" msgstr "" #: config/microblaze/microblaze.opt:72 -msgid "Use the software emulation for divides (default)" +msgid "Use reorder instructions (swap and byte reversed load/store) (default)" msgstr "" #: config/microblaze/microblaze.opt:76 -msgid "Use the hardware barrel shifter instead of emulation" +msgid "Use the software emulation for divides (default)" msgstr "" #: config/microblaze/microblaze.opt:80 +msgid "Use the hardware barrel shifter instead of emulation" +msgstr "" + +#: config/microblaze/microblaze.opt:84 #, fuzzy msgid "Use pattern compare instructions" msgstr "ИÑпользовать инÑтрукции двойной точноÑти плавающих вычиÑлений" -#: config/microblaze/microblaze.opt:83 +#: config/microblaze/microblaze.opt:87 #, fuzzy, c-format msgid "%qs is deprecated; use -fstack-check" msgstr "Ð¸Ð¼Ñ %qs будет иÑключено в будущих верÑиÑÑ…" -#: config/microblaze/microblaze.opt:84 +#: config/microblaze/microblaze.opt:88 #, fuzzy msgid "Check for stack overflow at runtime" msgstr "Проверить код на наличие ÑинтакÑичеÑких ошибок и завершить работу" -#: config/microblaze/microblaze.opt:88 config/iq2000/iq2000.opt:65 +#: config/microblaze/microblaze.opt:92 config/iq2000/iq2000.opt:65 msgid "Use GP relative sdata/sbss sections" msgstr "ИÑпользовать Ñекции sdata/sbss, адреÑуемые отноÑительно региÑтра GP" -#: config/microblaze/microblaze.opt:91 +#: config/microblaze/microblaze.opt:95 #, c-format msgid "%qs is deprecated; use -fno-zero-initialized-in-bss" msgstr "" -#: config/microblaze/microblaze.opt:92 +#: config/microblaze/microblaze.opt:96 msgid "Clear the BSS to zero and place zero initialized in BSS" msgstr "" -#: config/microblaze/microblaze.opt:96 +#: config/microblaze/microblaze.opt:100 msgid "Use multiply high instructions for high part of 32x32 multiply" msgstr "" -#: config/microblaze/microblaze.opt:100 +#: config/microblaze/microblaze.opt:104 #, fuzzy msgid "Use hardware floating point conversion instructions" msgstr "ИÑпользовать команды плавающей арифметики формата paired-single (над парами значений одинарной точноÑти)" -#: config/microblaze/microblaze.opt:104 +#: config/microblaze/microblaze.opt:108 #, fuzzy msgid "Use hardware floating point square root instruction" msgstr "ИÑпользовать команды плавающей арифметики формата paired-single (над парами значений одинарной точноÑти)" -#: config/microblaze/microblaze.opt:108 +#: config/microblaze/microblaze.opt:112 msgid "Description for mxl-mode-executable" msgstr "" -#: config/microblaze/microblaze.opt:112 +#: config/microblaze/microblaze.opt:116 msgid "Description for mxl-mode-xmdstub" msgstr "" -#: config/microblaze/microblaze.opt:116 +#: config/microblaze/microblaze.opt:120 msgid "Description for mxl-mode-bootstrap" msgstr "" -#: config/microblaze/microblaze.opt:120 +#: config/microblaze/microblaze.opt:124 msgid "Description for mxl-mode-novectors" msgstr "" @@ -10293,330 +10273,327 @@ msgstr "" msgid "Runtime name." msgstr "" -#: config/sh/sh.opt:44 +#: config/sh/sh.opt:48 msgid "Generate SH1 code" msgstr "Генерировать код SH1" -#: config/sh/sh.opt:48 +#: config/sh/sh.opt:52 msgid "Generate SH2 code" msgstr "Генерировать код SH2" -#: config/sh/sh.opt:52 +#: config/sh/sh.opt:56 #, fuzzy msgid "Generate default double-precision SH2a-FPU code" msgstr "Генерировать код SH2a Ñ Ð¾Ð´Ð¸Ð½Ð°Ñ€Ð½Ð¾Ð¹ точноÑтью по умолчанию" -#: config/sh/sh.opt:56 +#: config/sh/sh.opt:60 msgid "Generate SH2a FPU-less code" msgstr "Генерировать код Ð´Ð»Ñ SH2a без FPU" -#: config/sh/sh.opt:60 +#: config/sh/sh.opt:64 #, fuzzy msgid "Generate default single-precision SH2a-FPU code" msgstr "Генерировать код SH2a Ñ Ð¾Ð´Ð¸Ð½Ð°Ñ€Ð½Ð¾Ð¹ точноÑтью по умолчанию" -#: config/sh/sh.opt:64 +#: config/sh/sh.opt:68 #, fuzzy msgid "Generate only single-precision SH2a-FPU code" msgstr "Генерировать только код SH2a Ñ Ð¾Ð´Ð¸Ð½Ð°Ñ€Ð½Ð¾Ð¹ точноÑтью" -#: config/sh/sh.opt:68 +#: config/sh/sh.opt:72 msgid "Generate SH2e code" msgstr "Генерировать код SH2e" -#: config/sh/sh.opt:72 +#: config/sh/sh.opt:76 msgid "Generate SH3 code" msgstr "Генерировать код SH3" -#: config/sh/sh.opt:76 +#: config/sh/sh.opt:80 msgid "Generate SH3e code" msgstr "Генерировать код SH3e" -#: config/sh/sh.opt:80 +#: config/sh/sh.opt:84 msgid "Generate SH4 code" msgstr "Генерировать код SH4" -#: config/sh/sh.opt:84 +#: config/sh/sh.opt:88 #, fuzzy msgid "Generate SH4-100 code" msgstr "Генерировать код SH1" -#: config/sh/sh.opt:88 +#: config/sh/sh.opt:92 #, fuzzy msgid "Generate SH4-200 code" msgstr "Генерировать код SH2" -#: config/sh/sh.opt:94 +#: config/sh/sh.opt:98 #, fuzzy msgid "Generate SH4-300 code" msgstr "Генерировать код SH3" -#: config/sh/sh.opt:98 +#: config/sh/sh.opt:102 msgid "Generate SH4 FPU-less code" msgstr "Генерировать код Ð´Ð»Ñ SH4 без FPU" -#: config/sh/sh.opt:102 +#: config/sh/sh.opt:106 #, fuzzy msgid "Generate SH4-100 FPU-less code" msgstr "Генерировать код Ð´Ð»Ñ SH4 без FPU" -#: config/sh/sh.opt:106 +#: config/sh/sh.opt:110 #, fuzzy msgid "Generate SH4-200 FPU-less code" msgstr "Генерировать код Ð´Ð»Ñ SH4 без FPU" -#: config/sh/sh.opt:110 +#: config/sh/sh.opt:114 #, fuzzy msgid "Generate SH4-300 FPU-less code" msgstr "Генерировать код Ð´Ð»Ñ SH4 без FPU" -#: config/sh/sh.opt:114 +#: config/sh/sh.opt:118 #, fuzzy msgid "Generate code for SH4 340 series (MMU/FPU-less)" msgstr "Генерировать код Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑÑора C30" -#: config/sh/sh.opt:119 +#: config/sh/sh.opt:123 #, fuzzy msgid "Generate code for SH4 400 series (MMU/FPU-less)" msgstr "Генерировать код Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑÑора C40" -#: config/sh/sh.opt:124 +#: config/sh/sh.opt:128 #, fuzzy msgid "Generate code for SH4 500 series (FPU-less)." msgstr "Генерировать код Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑÑора C40" -#: config/sh/sh.opt:129 +#: config/sh/sh.opt:133 msgid "Generate default single-precision SH4 code" msgstr "Генерировать код SH4 Ñ Ð¾Ð´Ð¸Ð½Ð°Ñ€Ð½Ð¾Ð¹ точноÑтью по умолчанию" -#: config/sh/sh.opt:133 +#: config/sh/sh.opt:137 #, fuzzy msgid "Generate default single-precision SH4-100 code" msgstr "Генерировать код SH4 Ñ Ð¾Ð´Ð¸Ð½Ð°Ñ€Ð½Ð¾Ð¹ точноÑтью по умолчанию" -#: config/sh/sh.opt:137 +#: config/sh/sh.opt:141 #, fuzzy msgid "Generate default single-precision SH4-200 code" msgstr "Генерировать код SH4 Ñ Ð¾Ð´Ð¸Ð½Ð°Ñ€Ð½Ð¾Ð¹ точноÑтью по умолчанию" -#: config/sh/sh.opt:141 +#: config/sh/sh.opt:145 #, fuzzy msgid "Generate default single-precision SH4-300 code" msgstr "Генерировать код SH4 Ñ Ð¾Ð´Ð¸Ð½Ð°Ñ€Ð½Ð¾Ð¹ точноÑтью по умолчанию" -#: config/sh/sh.opt:145 +#: config/sh/sh.opt:149 msgid "Generate only single-precision SH4 code" msgstr "Генерировать только код SH4 Ñ Ð¾Ð´Ð¸Ð½Ð°Ñ€Ð½Ð¾Ð¹ точноÑтью" -#: config/sh/sh.opt:149 +#: config/sh/sh.opt:153 #, fuzzy msgid "Generate only single-precision SH4-100 code" msgstr "Генерировать только код SH4 Ñ Ð¾Ð´Ð¸Ð½Ð°Ñ€Ð½Ð¾Ð¹ точноÑтью" -#: config/sh/sh.opt:153 +#: config/sh/sh.opt:157 #, fuzzy msgid "Generate only single-precision SH4-200 code" msgstr "Генерировать только код SH4 Ñ Ð¾Ð´Ð¸Ð½Ð°Ñ€Ð½Ð¾Ð¹ точноÑтью" -#: config/sh/sh.opt:157 +#: config/sh/sh.opt:161 #, fuzzy msgid "Generate only single-precision SH4-300 code" msgstr "Генерировать только код SH4 Ñ Ð¾Ð´Ð¸Ð½Ð°Ñ€Ð½Ð¾Ð¹ точноÑтью" -#: config/sh/sh.opt:161 +#: config/sh/sh.opt:165 msgid "Generate SH4a code" msgstr "Генерировать код SH4a" -#: config/sh/sh.opt:165 +#: config/sh/sh.opt:169 msgid "Generate SH4a FPU-less code" msgstr "Генерировать код Ð´Ð»Ñ SH4a без FPU" -#: config/sh/sh.opt:169 +#: config/sh/sh.opt:173 msgid "Generate default single-precision SH4a code" msgstr "Генерировать по умолчанию код SH4a одинарной точноÑти" -#: config/sh/sh.opt:173 +#: config/sh/sh.opt:177 msgid "Generate only single-precision SH4a code" msgstr "Генерировать только код SH4a одинарной точноÑти" -#: config/sh/sh.opt:177 +#: config/sh/sh.opt:181 msgid "Generate SH4al-dsp code" msgstr "Генерировать SH4al-dsp код" -#: config/sh/sh.opt:181 +#: config/sh/sh.opt:185 msgid "Generate 32-bit SHmedia code" msgstr "Генерировать 32-битный код Ð´Ð»Ñ SHmedia" -#: config/sh/sh.opt:185 +#: config/sh/sh.opt:189 msgid "Generate 32-bit FPU-less SHmedia code" msgstr "Генерировать код 32-битный код без плавающий инÑтрукций Ð´Ð»Ñ SHmedia" -#: config/sh/sh.opt:189 +#: config/sh/sh.opt:193 msgid "Generate 64-bit SHmedia code" msgstr "Генерировать 64-битный код Ð´Ð»Ñ SHmedia" -#: config/sh/sh.opt:193 +#: config/sh/sh.opt:197 #, fuzzy msgid "Generate 64-bit FPU-less SHmedia code" msgstr "Генерировать код Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ñ‚Ð½Ð¾Ð³Ð¾ порÑдка байт (big endian)" -#: config/sh/sh.opt:197 +#: config/sh/sh.opt:201 #, fuzzy msgid "Generate SHcompact code" msgstr "Генерировать код SA" -#: config/sh/sh.opt:201 +#: config/sh/sh.opt:205 #, fuzzy msgid "Generate FPU-less SHcompact code" msgstr "Генерировать код отноÑительно pc" -#: config/sh/sh.opt:213 +#: config/sh/sh.opt:217 #, fuzzy msgid "Generate code in big endian mode" msgstr "Генерировать код Ð´Ð»Ñ Ð¿Ñ€Ñмого (big endian) порÑдка байт" -#: config/sh/sh.opt:217 +#: config/sh/sh.opt:221 #, fuzzy msgid "Generate 32-bit offsets in switch tables" msgstr "Генерировать 4-байтные Ñлементы в таблицах переключателей" -#: config/sh/sh.opt:221 +#: config/sh/sh.opt:225 #, fuzzy msgid "Generate bit instructions" msgstr "Генерировать команды isel" -#: config/sh/sh.opt:225 +#: config/sh/sh.opt:229 #, fuzzy msgid "Cost to assume for a branch insn" msgstr "Цена Ð´Ð»Ñ Ð¸Ð½Ñтрукции gettr" -#: config/sh/sh.opt:229 +#: config/sh/sh.opt:233 msgid "Assume that zero displacement conditional branches are fast" msgstr "" -#: config/sh/sh.opt:233 +#: config/sh/sh.opt:237 msgid "Enable cbranchdi4 pattern" msgstr "" -#: config/sh/sh.opt:237 +#: config/sh/sh.opt:241 msgid "Emit cmpeqdi_t pattern even when -mcbranchdi is in effect." msgstr "" -#: config/sh/sh.opt:241 +#: config/sh/sh.opt:245 msgid "Enable SH5 cut2 workaround" msgstr "" -#: config/sh/sh.opt:245 +#: config/sh/sh.opt:249 #, fuzzy msgid "Align doubles at 64-bit boundaries" msgstr "Выравнивать переменные по границе 16 бит" -#: config/sh/sh.opt:249 +#: config/sh/sh.opt:253 msgid "Division strategy, one of: call, call2, fp, inv, inv:minlat, inv20u, inv20l, inv:call, inv:call2, inv:fp, call-div1, call-fp, call-table" msgstr "" -#: config/sh/sh.opt:253 +#: config/sh/sh.opt:257 msgid "Specify name for 32 bit signed division function" msgstr "Задать Ð¸Ð¼Ñ Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ Ð´ÐµÐ»ÐµÐ½Ð¸Ñ 32-битных чиÑел Ñо знаком" -#: config/sh/sh.opt:257 +#: config/sh/sh.opt:261 msgid "Enable the use of 64-bit floating point registers in fmov instructions. See -mdalign if 64-bit alignment is required." msgstr "" -#: config/sh/sh.opt:265 +#: config/sh/sh.opt:269 msgid "Cost to assume for gettr insn" msgstr "Цена Ð´Ð»Ñ Ð¸Ð½Ñтрукции gettr" -#: config/sh/sh.opt:269 config/sh/sh.opt:319 +#: config/sh/sh.opt:273 config/sh/sh.opt:323 msgid "Follow Renesas (formerly Hitachi) / SuperH calling conventions" msgstr "Следовать ÑоглашениÑм о вызовах Renesas (Ð±Ñ‹Ð²ÑˆÐ°Ñ Hitachi) Ð´Ð»Ñ SuperH" -#: config/sh/sh.opt:273 +#: config/sh/sh.opt:277 #, fuzzy -#| msgid "Increase the IEEE compliance for floating-point code" msgid "Increase the IEEE compliance for floating-point comparisons" msgstr "Увеличить ÑоответÑтвие кода Ð´Ð»Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰ÐµÐ¹ арифметики Ñтандарту IEEE" -#: config/sh/sh.opt:277 +#: config/sh/sh.opt:281 msgid "Enable the use of the indexed addressing mode for SHmedia32/SHcompact" msgstr "" -#: config/sh/sh.opt:281 +#: config/sh/sh.opt:285 #, fuzzy msgid "inline code to invalidate instruction cache entries after setting up nested function trampolines" msgstr "Генерировать вызов библиотечной функции Ð´Ð»Ñ ÑброÑа кÑша инÑтрукций поÑле иÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñ‚Ñ€Ð°Ð¼Ð¿Ð»Ð¸Ð½Ð°" -#: config/sh/sh.opt:285 +#: config/sh/sh.opt:289 msgid "Assume symbols might be invalid" msgstr "Предполагать, что Ñимволы могут быть неправильными" -#: config/sh/sh.opt:289 +#: config/sh/sh.opt:293 msgid "Annotate assembler instructions with estimated addresses" msgstr "" -#: config/sh/sh.opt:293 +#: config/sh/sh.opt:297 msgid "Generate code in little endian mode" msgstr "Генерировать код Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ñ‚Ð½Ð¾Ð³Ð¾ (little endian) порÑдка байт" -#: config/sh/sh.opt:297 +#: config/sh/sh.opt:301 msgid "Mark MAC register as call-clobbered" msgstr "РегиÑÑ‚Ñ€ MAC портитÑÑ Ð¿Ñ€Ð¸ вызовах" -#: config/sh/sh.opt:303 +#: config/sh/sh.opt:307 msgid "Make structs a multiple of 4 bytes (warning: ABI altered)" msgstr "Размер Ñтруктуры кратен 4 байтам (предупреждение: при Ñтом изменÑетÑÑ ABI)" -#: config/sh/sh.opt:307 +#: config/sh/sh.opt:311 msgid "Emit function-calls using global offset table when generating PIC" msgstr "Вызывать функции Ñ Ð¸Ñпользованием глобальной таблицы Ñмещений при генерации PIC кода" -#: config/sh/sh.opt:311 +#: config/sh/sh.opt:315 msgid "Assume pt* instructions won't trap" msgstr "Предполагать, что команды pt* не вызывают прерываний" -#: config/sh/sh.opt:315 +#: config/sh/sh.opt:319 msgid "Shorten address references during linking" msgstr "Укорачивать ÑÑылки по адреÑу во Ð²Ñ€ÐµÐ¼Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²ÐºÐ¸" -#: config/sh/sh.opt:323 +#: config/sh/sh.opt:327 msgid "Deprecated. Use -matomic= instead to select the atomic model" msgstr "" -#: config/sh/sh.opt:327 +#: config/sh/sh.opt:331 #, fuzzy msgid "Specify the model for atomic operations" msgstr "Генерировать код Ð´Ð»Ñ Ð¿Ñ€Ñмого (big endian) порÑдка байт" -#: config/sh/sh.opt:331 +#: config/sh/sh.opt:335 msgid "Use tas.b instruction for __atomic_test_and_set" msgstr "" -#: config/sh/sh.opt:335 +#: config/sh/sh.opt:339 #, fuzzy msgid "Deprecated. Use -Os instead" msgstr "Ключ уÑтарел. иÑпользуйте -Os в качеÑтве замены" -#: config/sh/sh.opt:339 +#: config/sh/sh.opt:343 msgid "Cost to assume for a multiply insn" msgstr "Цена за команду умножениÑ" -#: config/sh/sh.opt:343 +#: config/sh/sh.opt:347 msgid "Don't generate privileged-mode only code; implies -mno-inline-ic_invalidate if the inline code would not work in user mode." msgstr "" -#: config/sh/sh.opt:349 +#: config/sh/sh.opt:353 msgid "Pretend a branch-around-a-move is a conditional move." msgstr "" -#: config/sh/sh.opt:353 +#: config/sh/sh.opt:357 #, fuzzy -#| msgid "Enable the use of the short load instructions" msgid "Enable the use of the fsca instruction" msgstr "Включить иÑпользование коротких команд загрузки" -#: config/sh/sh.opt:357 +#: config/sh/sh.opt:361 #, fuzzy -#| msgid "Enable the use of the short load instructions" msgid "Enable the use of the fsrra instruction" msgstr "Включить иÑпользование коротких команд загрузки" @@ -10972,7 +10949,6 @@ msgstr "Ðе иÑпользовать аппаратную реализацию #: config/mips/mips.opt:274 #, fuzzy -#| msgid "Use MIPS-3D instructions" msgid "Use MCU instructions" msgstr "ИÑпользовать команды MIPS-3D" @@ -11076,7 +11052,6 @@ msgstr "Генерировать код Ñ 64-битными указателÑÐ #: config/tilegx/tilegx.opt:45 #, fuzzy -#| msgid "Use given x86-64 code model" msgid "Use given TILE-Gx code model" msgstr "ИÑпользовать указанную модель кода x86-64" @@ -11243,7 +11218,6 @@ msgstr "" #: common.opt:453 #, fuzzy -#| msgid "Optimize for space rather than speed" msgid "Optimize for debugging experience rather than speed or size" msgstr "Оптимизировать размер, а не быÑтродейÑтвие" @@ -11256,1647 +11230,1646 @@ msgid "Warn about returning structures, unions or arrays" msgstr "Предупреждать о возвращении функциÑми Ñтруктур, объединений, маÑÑивов" #: common.opt:510 -msgid "Warn if an array is accessed out of bounds" +msgid "Warn if a loop with constant number of iterations triggers undefined behavior" msgstr "" #: common.opt:514 +msgid "Warn if an array is accessed out of bounds" +msgstr "" + +#: common.opt:518 msgid "Warn about inappropriate attribute usage" msgstr "Предупреждать о неадекватном иÑпользовании атрибутов" -#: common.opt:518 +#: common.opt:522 msgid "Warn about pointer casts which increase alignment" msgstr "Предупреждать о приведении указательных типов Ñ ÑƒÐ²ÐµÐ»Ð¸Ñ‡ÐµÐ½Ð¸ÐµÐ¼ выравниваниÑ" -#: common.opt:522 +#: common.opt:526 #, fuzzy msgid "Warn when a #warning directive is encountered" msgstr "Предупреждать о неиÑпользуемых параметрах функций" -#: common.opt:526 +#: common.opt:530 msgid "Warn about uses of __attribute__((deprecated)) declarations" msgstr "Предупреждать об иÑпользовании имён, декларированных Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¾Ð¼ deprecated" -#: common.opt:530 +#: common.opt:534 msgid "Warn when an optimization pass is disabled" msgstr "Предупреждать о невыполнении заказанных оптимизаций" -#: common.opt:534 +#: common.opt:538 msgid "Treat all warnings as errors" msgstr "Ð’Ñе Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ñчитать ошибками" -#: common.opt:538 +#: common.opt:542 #, fuzzy msgid "Treat specified warning as error" msgstr "Ð’Ñе Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ñчитать ошибками" -#: common.opt:546 +#: common.opt:550 msgid "Exit on the first error occurred" msgstr "Закончить работу при первой обнаруженной ошибке" -#: common.opt:550 +#: common.opt:554 msgid "-Wframe-larger-than=<number>\tWarn if a function's stack frame requires more than <number> bytes" msgstr "" -#: common.opt:554 +#: common.opt:558 msgid "Warn when attempting to free a non-heap object" msgstr "" -#: common.opt:558 +#: common.opt:562 msgid "Warn when an inlined function cannot be inlined" msgstr "Предупреждать об inline-функциÑÑ…, подÑтановка которых невозможна" -#: common.opt:562 +#: common.opt:566 msgid "Warn when an atomic memory model parameter is known to be outside the valid range." msgstr "" -#: common.opt:569 +#: common.opt:573 #, fuzzy msgid "-Wlarger-than=<number>\tWarn if an object is larger than <number> bytes" msgstr "Предупреждать об объектах, размер которых превышает <чиÑло> байт" -#: common.opt:573 +#: common.opt:577 msgid "Warn if the loop cannot be optimized due to nontrivial assumptions." msgstr "Предупреждать, еÑли Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñ†Ð¸ÐºÐ»Ð° невозможна из-за нетривиальных предположений" -#: common.opt:580 +#: common.opt:584 #, fuzzy msgid "Warn about overflow in arithmetic expressions" msgstr "переполнение при вычиÑлении конÑтантного выражениÑ" -#: common.opt:584 +#: common.opt:588 msgid "Warn when the packed attribute has no effect on struct layout" msgstr "Предупреждать о ÑлучаÑÑ…, когда атрибут packed не влиÑет на " -#: common.opt:588 +#: common.opt:592 msgid "Warn when padding is required to align structure members" msgstr "Предупреждать о дырах в результате Ð²Ñ‹Ñ€Ð°Ð²Ð½Ð¸Ð²Ð°Ð½Ð¸Ñ Ñлементов Ñтруктур" -#: common.opt:592 +#: common.opt:596 msgid "Issue warnings needed for strict compliance to the standard" msgstr "Выдавать предупреждениÑ, требуемые Ð´Ð»Ñ ÑоответÑÑ‚Ð²Ð¸Ñ Ñтандарту" -#: common.opt:596 +#: common.opt:600 msgid "Warn when one local variable shadows another" msgstr "Предупреждать когда одна Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð°Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¿ÐµÑ€ÐµÐºÑ€Ñ‹Ð²Ð°ÐµÑ‚ другую" -#: common.opt:600 +#: common.opt:604 msgid "Warn when not issuing stack smashing protection for some reason" msgstr "Предупреждать, еÑли защита от Ñ€Ð°Ð·Ñ€ÑƒÑˆÐµÐ½Ð¸Ñ Ñтека по каким-то причинам не Ñгенерирована" -#: common.opt:604 +#: common.opt:608 msgid "Warn if stack usage might be larger than specified amount" msgstr "" -#: common.opt:608 common.opt:612 +#: common.opt:612 common.opt:616 msgid "Warn about code which might break strict aliasing rules" msgstr "Предупреждать о возможных нарушениÑÑ… правил Ð¿ÐµÑ€ÐµÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… в памÑти" -#: common.opt:616 common.opt:620 +#: common.opt:620 common.opt:624 #, fuzzy msgid "Warn about optimizations that assume that signed overflow is undefined" msgstr "Отменить оптимизации, предполагающие Ñтандартное округление вещеÑтвенных значений" -#: common.opt:624 +#: common.opt:628 #, fuzzy msgid "Warn about functions which might be candidates for __attribute__((const))" msgstr "Предупреждать о функциÑÑ…, которым можно назначить атрибут noreturn" -#: common.opt:628 +#: common.opt:632 #, fuzzy msgid "Warn about functions which might be candidates for __attribute__((pure))" msgstr "Предупреждать о функциÑÑ…, которым можно назначить атрибут noreturn" -#: common.opt:632 +#: common.opt:636 msgid "Warn about functions which might be candidates for __attribute__((noreturn))" msgstr "Предупреждать о функциÑÑ…, которым можно назначить атрибут noreturn" -#: common.opt:636 +#: common.opt:640 msgid "Do not suppress warnings from system headers" msgstr "Ðе подавлÑÑ‚ÑŒ Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¾Ñ‚ ÑиÑтемных заголовков" -#: common.opt:640 +#: common.opt:644 #, fuzzy msgid "Warn whenever a trampoline is generated" msgstr "Предупреждать о неиÑпользуемых переменных" -#: common.opt:644 +#: common.opt:648 #, fuzzy msgid "Warn if a comparison is always true or always false due to the limited range of the data type" msgstr "из-за ограниченноÑти диапазона типа данных, результат ÑÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ Ð²Ñегда ложь" -#: common.opt:648 +#: common.opt:652 msgid "Warn about uninitialized automatic variables" msgstr "Предупреждать о неинициализированных автоматичеÑких переменных" -#: common.opt:652 +#: common.opt:656 #, fuzzy msgid "Warn about maybe uninitialized automatic variables" msgstr "Предупреждать о неинициализированных автоматичеÑких переменных" -#: common.opt:660 +#: common.opt:664 msgid "Enable all -Wunused- warnings" msgstr "Включить вÑе Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ -Wunused-" -#: common.opt:664 +#: common.opt:668 #, fuzzy msgid "Warn when a function parameter is only set, otherwise unused" msgstr "Предупреждать о неиÑпользуемых параметрах функций" -#: common.opt:668 +#: common.opt:672 #, fuzzy msgid "Warn when a variable is only set, otherwise unused" msgstr "Предупреждать о неиÑпользуемых переменных" -#: common.opt:672 +#: common.opt:676 msgid "Warn when a function is unused" msgstr "Предупреждать о неиÑпользуемых функциÑÑ…" -#: common.opt:676 +#: common.opt:680 msgid "Warn when a label is unused" msgstr "Предупреждать о неиÑпользуемых метках" -#: common.opt:680 +#: common.opt:684 msgid "Warn when a function parameter is unused" msgstr "Предупреждать о неиÑпользуемых параметрах функций" -#: common.opt:684 +#: common.opt:688 msgid "Warn when an expression value is unused" msgstr "Предупреждать о неиÑпользованных результатах выражений" -#: common.opt:688 +#: common.opt:692 msgid "Warn when a variable is unused" msgstr "Предупреждать о неиÑпользуемых переменных" -#: common.opt:692 +#: common.opt:696 msgid "Warn in case profiles in -fprofile-use do not match" msgstr "" -#: common.opt:696 +#: common.opt:700 msgid "Warn when a vector operation is compiled outside the SIMD" msgstr "" -#: common.opt:712 +#: common.opt:716 #, fuzzy msgid "-aux-info <file>\tEmit declaration information into <file>" msgstr "Выдать информацию о декларациÑÑ… в <файл>" -#: common.opt:731 +#: common.opt:735 #, fuzzy msgid "-d<letters>\tEnable dumps from specific passes of the compiler" msgstr "Выдать дампы от различных проходов компилÑции" -#: common.opt:735 +#: common.opt:739 #, fuzzy msgid "-dumpbase <file>\tSet the file basename to be used for dumps" msgstr "Базовое Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° Ð´Ð»Ñ Ð´Ð°Ð¼Ð¿Ð¾Ð²" -#: common.opt:739 +#: common.opt:743 #, fuzzy msgid "-dumpdir <dir>\tSet the directory name to be used for dumps" msgstr "Базовое Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° Ð´Ð»Ñ Ð´Ð°Ð¼Ð¿Ð¾Ð²" -#: common.opt:798 +#: common.opt:802 msgid "Aggressively optimize loops using language constraints" msgstr "" -#: common.opt:802 +#: common.opt:806 msgid "Align the start of functions" msgstr "Выравнивать начало функций" -#: common.opt:809 +#: common.opt:813 msgid "Align labels which are only reached by jumping" msgstr "Выравнивать метки, доÑтупные только по командам переходов" -#: common.opt:816 +#: common.opt:820 msgid "Align all labels" msgstr "Выравнивать вÑе метки" -#: common.opt:823 +#: common.opt:827 msgid "Align the start of loops" msgstr "Выравнивать начало циклов" -#: common.opt:846 +#: common.opt:850 msgid "Enable AddressSanitizer, a memory error detector" msgstr "" -#: common.opt:850 +#: common.opt:854 msgid "Enable ThreadSanitizer, a data race detector" msgstr "" -#: common.opt:854 +#: common.opt:858 msgid "Generate unwind tables that are exact at each instruction boundary" msgstr "Генерировать unwind-таблицы, корректные на начало каждой команды" -#: common.opt:858 +#: common.opt:862 #, fuzzy msgid "Generate auto-inc/dec instructions" msgstr "Генерировать команды isel" -#: common.opt:866 +#: common.opt:870 msgid "Generate code to check bounds before indexing arrays" msgstr "Генерировать код Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ выхода за границы маÑÑивов" -#: common.opt:870 +#: common.opt:874 msgid "Replace add, compare, branch with branch on count register" msgstr "Генерировать Ð´Ð»Ñ Ñ†Ð¸ÐºÐ»Ð¾Ð² переход по Ñчётчику вмеÑто команд Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñчётчика, ÑÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ Ð¸ перехода" -#: common.opt:874 +#: common.opt:878 msgid "Use profiling information for branch probabilities" msgstr "Оценивать вероÑтноÑÑ‚ÑŒ переходов на оÑнове данных профилированиÑ" -#: common.opt:878 +#: common.opt:882 msgid "Perform branch target load optimization before prologue / epilogue threading" msgstr "Оптимизировать чтение из памÑти в точках, куда передаетÑÑ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ðµ, до генерации прологов и Ñпилогов" -#: common.opt:882 +#: common.opt:886 msgid "Perform branch target load optimization after prologue / epilogue threading" msgstr "Оптимизировать чтение из памÑти в точках, куда передаетÑÑ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ðµ, поÑле генерации прологов и Ñпилогов" -#: common.opt:886 +#: common.opt:890 msgid "Restrict target load migration not to re-use registers in any basic block" msgstr "Ограничить миграцию региÑтров, в которые помещаютÑÑ Ñ†ÐµÐ»ÐµÐ²Ñ‹Ðµ адреÑа переходов, чтобы не переиÑпользовать Ñти региÑтры ни в каких блоках" -#: common.opt:890 +#: common.opt:894 #, fuzzy msgid "-fcall-saved-<register>\tMark <register> as being preserved across functions" msgstr "Считать, что <региÑÑ‚Ñ€> ÑохранÑетÑÑ Ð¿Ñ€Ð¸ вызовах функций" -#: common.opt:894 +#: common.opt:898 #, fuzzy msgid "-fcall-used-<register>\tMark <register> as being corrupted by function calls" msgstr "Считать, что <региÑÑ‚Ñ€> портитÑÑ Ð¿Ñ€Ð¸ вызовах функций" -#: common.opt:901 +#: common.opt:905 msgid "Save registers around function calls" msgstr "СохранÑÑ‚ÑŒ/воÑÑтанавливать региÑтры до/поÑле вызовов функций" -#: common.opt:905 +#: common.opt:909 msgid "Compare the results of several data dependence analyzers." msgstr "" -#: common.opt:909 +#: common.opt:913 msgid "Looks for opportunities to reduce stack adjustments and stack references." msgstr "" -#: common.opt:913 +#: common.opt:917 msgid "Do not put uninitialized globals in the common section" msgstr "Ðе размещать неинициализированные глобальные данные в общих блоках" -#: common.opt:921 +#: common.opt:925 msgid "-fcompare-debug[=<opts>]\tCompile with and without e.g. -gtoggle, and compare the final-insns dump" msgstr "" -#: common.opt:925 +#: common.opt:929 msgid "Run only the second compilation of -fcompare-debug" msgstr "" -#: common.opt:929 +#: common.opt:933 #, fuzzy msgid "Perform comparison elimination after register allocation has finished" msgstr "Выполнить глобальную Ñкономию общих подвыражений поÑле раÑÐ¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñ€ÐµÐ³Ð¸Ñтров" -#: common.opt:933 +#: common.opt:937 msgid "Do not perform optimizations increasing noticeably stack usage" msgstr "" -#: common.opt:937 +#: common.opt:941 msgid "Perform a register copy-propagation optimization pass" msgstr "Выполнить оптимизацию раÑпроÑÑ‚Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¹ региÑтров" -#: common.opt:941 +#: common.opt:945 msgid "Perform cross-jumping optimization" msgstr "Выполнить оптимизацию кода вокруг команд передачи управлениÑ" -#: common.opt:945 +#: common.opt:949 msgid "When running CSE, follow jumps to their targets" msgstr "При Ñкономии общих подвыражений проÑлеживать код, доÑтупный по переходам" -#: common.opt:953 +#: common.opt:957 msgid "Omit range reduction step when performing complex division" msgstr "ОтбраÑывать шаг редукции отрезка при выполнении комплекÑного делениÑ" -#: common.opt:957 +#: common.opt:961 msgid "Complex multiplication and division follow Fortran rules" msgstr "" -#: common.opt:961 +#: common.opt:965 msgid "Place data items into their own section" msgstr "Размещать Ñлементы данных в отдельных ÑекциÑÑ…" -#: common.opt:965 +#: common.opt:969 msgid "List all available debugging counters with their limits and counts." msgstr "" -#: common.opt:969 +#: common.opt:973 msgid "-fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...]\tSet the debug counter limit. " msgstr "" -#: common.opt:973 +#: common.opt:977 msgid "Map one directory name to another in debug information" msgstr "" -#: common.opt:977 +#: common.opt:981 msgid "Output .debug_types section when using DWARF v4 debuginfo." msgstr "" -#: common.opt:983 +#: common.opt:987 msgid "Defer popping functions args from stack until later" msgstr "Откладывать \"на потом\" выталкивание аргументов из Ñтека поÑле вызовов функций" -#: common.opt:987 +#: common.opt:991 msgid "Attempt to fill delay slots of branch instructions" msgstr "ЗаполнÑÑ‚ÑŒ гнезда задержки команд перехода" -#: common.opt:991 +#: common.opt:995 msgid "Delete dead instructions that may throw exceptions" msgstr "" -#: common.opt:995 +#: common.opt:999 msgid "Delete useless null pointer checks" msgstr "УдалÑÑ‚ÑŒ ненужные ÑÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»ÐµÐ¹ Ñ Ð½ÑƒÐ»ÐµÐ¼" -#: common.opt:999 +#: common.opt:1003 msgid "Try to convert virtual calls to direct ones." msgstr "" -#: common.opt:1003 +#: common.opt:1007 #, fuzzy msgid "-fdiagnostics-show-location=[once|every-line]\tHow often to emit source location at the beginning of line-wrapped diagnostics" msgstr "Выдавать меÑтоположение иÑточника ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ð´Ð¸Ð½ раз или Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ Ñтроки (Ð´Ð»Ñ Ð¼Ð½Ð¾Ð³Ð¾Ñтрочных Ñообщений)" -#: common.opt:1020 +#: common.opt:1024 msgid "Show the source line with a caret indicating the column" msgstr "" -#: common.opt:1024 +#: common.opt:1028 msgid "Amend appropriate diagnostic messages with the command line option that controls them" msgstr "ДополнÑÑ‚ÑŒ диагноÑтичеÑкие ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð¼, который контролирует Ñто Ñообщение" -#: common.opt:1028 +#: common.opt:1032 msgid "-fdisable-[tree|rtl|ipa]-<pass>=range1+range2 disables an optimization pass" msgstr "" -#: common.opt:1032 +#: common.opt:1036 msgid "-fenable-[tree|rtl|ipa]-<pass>=range1+range2 enables an optimization pass" msgstr "" -#: common.opt:1036 +#: common.opt:1040 #, fuzzy msgid "-fdump-<type>\tDump various compiler internals to a file" msgstr "Выдать внутреннюю информацию компилÑтора в файл" -#: common.opt:1043 +#: common.opt:1047 msgid "-fdump-final-insns=filename\tDump to filename the insns at the end of translation" msgstr "" -#: common.opt:1047 +#: common.opt:1051 msgid "-fdump-go-spec=filename\tWrite all declarations to file as Go code" msgstr "" -#: common.opt:1051 +#: common.opt:1055 #, fuzzy msgid "Suppress output of addresses in debugging dumps" msgstr "ПодавлÑÑ‚ÑŒ вывод номеров инÑтрукций и номеров Ñтрок в отладочных дампах" -#: common.opt:1055 +#: common.opt:1059 #, fuzzy msgid "Dump optimization passes" msgstr "Выполнить полную оптимизацию Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ñ€ÐµÐ³Ð¸Ñтров" -#: common.opt:1059 +#: common.opt:1063 #, fuzzy msgid "Suppress output of instruction numbers, line number notes and addresses in debugging dumps" msgstr "ПодавлÑÑ‚ÑŒ вывод номеров инÑтрукций и номеров Ñтрок в отладочных дампах" -#: common.opt:1063 +#: common.opt:1067 #, fuzzy msgid "Suppress output of previous and next insn numbers in debugging dumps" msgstr "ПодавлÑÑ‚ÑŒ вывод номеров инÑтрукций и номеров Ñтрок в отладочных дампах" -#: common.opt:1067 +#: common.opt:1071 msgid "Enable CFI tables via GAS assembler directives." msgstr "" -#: common.opt:1071 +#: common.opt:1075 msgid "Perform early inlining" msgstr "Выполнить inline-подÑтановки на ранних проходах оптимизации" -#: common.opt:1075 +#: common.opt:1079 msgid "Perform DWARF2 duplicate elimination" msgstr "ИÑключить дублирование информации DWARF2" -#: common.opt:1079 +#: common.opt:1083 #, fuzzy msgid "Perform interprocedural reduction of aggregates" msgstr "Выполнить межпроцедурное раÑпроÑтранение конÑтант" -#: common.opt:1083 common.opt:1087 +#: common.opt:1087 common.opt:1091 msgid "Perform unused type elimination in debug info" msgstr "ИÑключить отладочную информацию о неиÑпользуемых типах" -#: common.opt:1091 +#: common.opt:1095 msgid "Do not suppress C++ class debug information." msgstr "" -#: common.opt:1095 +#: common.opt:1099 msgid "Enable exception handling" msgstr "Ðктивировать обработку иÑключительных Ñитуаций" -#: common.opt:1099 +#: common.opt:1103 msgid "Perform a number of minor, expensive optimizations" msgstr "Выполнить некоторые дополнительные дорогоÑтоÑщие оптимизации" -#: common.opt:1103 +#: common.opt:1107 msgid "-fexcess-precision=[fast|standard]\tSpecify handling of excess floating-point precision" msgstr "" -#: common.opt:1106 +#: common.opt:1110 #, fuzzy, c-format msgid "unknown excess precision style %qs" msgstr "неизвеÑтный Ñтиль Ð´ÐµÐºÐ¾Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð¼Ñ‘Ð½ '%s'" -#: common.opt:1119 +#: common.opt:1123 msgid "Output lto objects containing both the intermediate language and binary output." msgstr "" -#: common.opt:1123 +#: common.opt:1127 msgid "Assume no NaNs or infinities are generated" msgstr "Предполагать что результаты вычиÑлений конечны и не NaN" -#: common.opt:1127 +#: common.opt:1131 #, fuzzy msgid "-ffixed-<register>\tMark <register> as being unavailable to the compiler" msgstr "Ðе иÑпользовать <региÑÑ‚Ñ€> при генерации кода" -#: common.opt:1131 +#: common.opt:1135 msgid "Don't allocate floats and doubles in extended-precision registers" msgstr "Ðе выделÑÑ‚ÑŒ Ð´Ð»Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ типа float и double региÑтры повышенной точноÑти" -#: common.opt:1139 +#: common.opt:1143 #, fuzzy msgid "Perform a forward propagation pass on RTL" msgstr "Выполнить оптимизацию раÑпроÑÑ‚Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½Ð¾Ð² значений на древовидном предÑтавлении" -#: common.opt:1143 +#: common.opt:1147 msgid "-ffp-contract=[off|on|fast] Perform floating-point expression contraction." msgstr "" -#: common.opt:1146 +#: common.opt:1150 #, fuzzy, c-format msgid "unknown floating point contraction style %qs" msgstr "не плавающий аргумент в вызове функции %qs" -#: common.opt:1163 +#: common.opt:1167 msgid "Allow function addresses to be held in registers" msgstr "Разрешить хранение адреÑов функций на региÑтрах" -#: common.opt:1167 +#: common.opt:1171 msgid "Place each function into its own section" msgstr "Помещать каждую функцию в отдельную Ñекцию" -#: common.opt:1171 +#: common.opt:1175 msgid "Perform global common subexpression elimination" msgstr "Выполнить глобальную Ñкономию общих подвыражений" -#: common.opt:1175 +#: common.opt:1179 msgid "Perform enhanced load motion during global common subexpression elimination" msgstr "Ð’ рамках глобальной Ñкономии общих подвыражений выполнить раÑширенный Ð¿ÐµÑ€ÐµÐ½Ð¾Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ð¹ из памÑти между блоками" -#: common.opt:1179 +#: common.opt:1183 msgid "Perform store motion after global common subexpression elimination" msgstr "Ð’ рамках глобальной Ñкономии общих подвыражений выполнить Ð¿ÐµÑ€ÐµÐ½Ð¾Ñ Ð·Ð°Ð¿Ð¸Ñей в памÑÑ‚ÑŒ между блоками" -#: common.opt:1183 +#: common.opt:1187 msgid "Perform redundant load after store elimination in global common subexpression" msgstr "Ð’ рамках глобальной Ñкономии общих подвыражений иÑключать лишние Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð¸Ð· памÑти поÑле запиÑей по тем же адреÑам" -#: common.opt:1188 +#: common.opt:1192 msgid "Perform global common subexpression elimination after register allocation" msgstr "Выполнить глобальную Ñкономию общих подвыражений поÑле раÑÐ¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñ€ÐµÐ³Ð¸Ñтров" -#: common.opt:1194 +#: common.opt:1198 #, fuzzy msgid "Enable in and out of Graphite representation" msgstr "Выполнить оптимизацию ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð¼ÐµÑ€Ñ‚Ð²Ñ‹Ñ… команд запиÑи в памÑÑ‚ÑŒ" -#: common.opt:1198 +#: common.opt:1202 #, fuzzy msgid "Enable Graphite Identity transformation" msgstr "Выдавать граф вызовов" -#: common.opt:1202 +#: common.opt:1206 #, fuzzy msgid "Enable hoisting adjacent loads to encourage generating conditional move" msgstr "ИÑпользовать уÑловные команды move" -#: common.opt:1207 +#: common.opt:1211 msgid "Mark all loops as parallel" msgstr "" -#: common.opt:1211 +#: common.opt:1215 msgid "Enable Loop Strip Mining transformation" msgstr "" -#: common.opt:1215 +#: common.opt:1219 msgid "Enable Loop Interchange transformation" msgstr "" -#: common.opt:1219 +#: common.opt:1223 #, fuzzy msgid "Enable Loop Blocking transformation" msgstr "Включить линейные транÑформации циклов на древовидном предÑтавлении" -#: common.opt:1223 +#: common.opt:1227 msgid "Enable support for GNU transactional memory" msgstr "" -#: common.opt:1231 +#: common.opt:1235 msgid "Enable the ISL based loop nest optimizer" msgstr "" -#: common.opt:1235 +#: common.opt:1239 msgid "Force bitfield accesses to match their type width" msgstr "" -#: common.opt:1239 +#: common.opt:1243 msgid "Enable guessing of branch probabilities" msgstr "Оценивать вероÑтноÑти переходов" -#: common.opt:1247 +#: common.opt:1251 msgid "Process #ident directives" msgstr "Обрабатывать директивы #ident" -#: common.opt:1251 +#: common.opt:1255 msgid "Perform conversion of conditional jumps to branchless equivalents" msgstr "Преобразовывать уÑловные переходы в Ñквивалентный код без переходов" -#: common.opt:1255 +#: common.opt:1259 msgid "Perform conversion of conditional jumps to conditional execution" msgstr "Преобразовывать уÑловные переходы в уÑловно выполнÑемый код" -#: common.opt:1259 +#: common.opt:1263 msgid "-fstack-reuse=[all|named_vars|none] Set stack reuse level for local variables." msgstr "" -#: common.opt:1262 +#: common.opt:1266 #, fuzzy, c-format msgid "unknown Stack Reuse Level %qs" msgstr "неизвеÑÑ‚Ð½Ð°Ñ Ð¼Ð°ÑˆÐ¸Ð½Ð½Ñ‹Ð¹ режим %qs" -#: common.opt:1275 +#: common.opt:1279 #, fuzzy msgid "Convert conditional jumps in innermost loops to branchless equivalents" msgstr "Преобразовывать уÑловные переходы в Ñквивалентный код без переходов" -#: common.opt:1279 +#: common.opt:1283 msgid "Also if-convert conditional jumps containing memory writes" msgstr "" -#: common.opt:1287 +#: common.opt:1291 msgid "Do not generate .size directives" msgstr "Ðе генерировать директивы .size" -#: common.opt:1291 +#: common.opt:1295 #, fuzzy msgid "Perform indirect inlining" msgstr "Выполнить inline-подÑтановки на ранних проходах оптимизации" -#: common.opt:1297 +#: common.opt:1301 msgid "Enable inlining of function declared \"inline\", disabling disables all inlining" msgstr "" -#: common.opt:1301 +#: common.opt:1305 #, fuzzy msgid "Integrate functions into their callers when code size is known not to grow" msgstr "ПодÑтавлÑÑ‚ÑŒ тела проÑÑ‚Ñ‹Ñ… функций в меÑта вызовов" -#: common.opt:1305 +#: common.opt:1309 #, fuzzy msgid "Integrate functions not declared \"inline\" into their callers when profitable" msgstr "ПодÑтавлÑÑ‚ÑŒ тела функций, вызываемых один раз, в меÑта вызовов" -#: common.opt:1309 +#: common.opt:1313 #, fuzzy msgid "Integrate functions only required by their single caller" msgstr "ПодÑтавлÑÑ‚ÑŒ тела функций, вызываемых один раз, в меÑта вызовов" -#: common.opt:1316 +#: common.opt:1320 #, fuzzy msgid "-finline-limit=<number>\tLimit the size of inlined functions to <number>" msgstr "МакÑимальный <размер> функций Ð´Ð»Ñ inline-подÑтановки" -#: common.opt:1320 +#: common.opt:1324 msgid "Inline __atomic operations when a lock free instruction sequence is available." msgstr "" -#: common.opt:1324 +#: common.opt:1328 msgid "Instrument function entry and exit with profiling calls" msgstr "При входе и выходе из функции генерировать вызовы профилированиÑ" -#: common.opt:1328 +#: common.opt:1332 msgid "-finstrument-functions-exclude-function-list=name,... Do not instrument listed functions" msgstr "" -#: common.opt:1332 +#: common.opt:1336 msgid "-finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files" msgstr "" -#: common.opt:1336 +#: common.opt:1340 msgid "Perform Interprocedural constant propagation" msgstr "Выполнить межпроцедурное раÑпроÑтранение конÑтант" -#: common.opt:1340 +#: common.opt:1344 #, fuzzy msgid "Perform cloning to make Interprocedural constant propagation stronger" msgstr "Выполнить межпроцедурное раÑпроÑтранение конÑтант" -#: common.opt:1344 +#: common.opt:1348 #, fuzzy msgid "Perform interprocedural profile propagation" msgstr "Выполнить межпроцедурное раÑпроÑтранение конÑтант" -#: common.opt:1348 +#: common.opt:1352 #, fuzzy msgid "Perform interprocedural points-to analysis" msgstr "Выполнить межпроцедурное раÑпроÑтранение конÑтант" -#: common.opt:1352 +#: common.opt:1356 msgid "Discover pure and const functions" msgstr "Ð’Ñ‹ÑвлÑÑ‚ÑŒ pure и const функции" -#: common.opt:1356 +#: common.opt:1360 msgid "Discover readonly and non addressable static variables" msgstr "Ð’Ñ‹ÑвлÑÑ‚ÑŒ неадреÑуемые ÑтатичеÑкие переменные, доÑтупные только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ" -#: common.opt:1368 +#: common.opt:1372 msgid "-fira-algorithm=[CB|priority] Set the used IRA algorithm" msgstr "" -#: common.opt:1371 +#: common.opt:1375 #, fuzzy, c-format msgid "unknown IRA algorithm %qs" msgstr "неизвеÑÑ‚Ð½Ð°Ñ Ð¼Ð°ÑˆÐ¸Ð½Ð½Ñ‹Ð¹ режим %qs" -#: common.opt:1381 +#: common.opt:1385 msgid "-fira-region=[one|all|mixed] Set regions for IRA" msgstr "" -#: common.opt:1384 +#: common.opt:1388 #, fuzzy, c-format msgid "unknown IRA region %qs" msgstr "неизвеÑтное Ð¸Ð¼Ñ Ñ€ÐµÐ³Ð¸Ñтра: %s" -#: common.opt:1397 common.opt:1402 +#: common.opt:1401 common.opt:1406 msgid "Use IRA based register pressure calculation" msgstr "" -#: common.opt:1407 +#: common.opt:1411 msgid "Share slots for saving different hard registers." msgstr "" -#: common.opt:1411 +#: common.opt:1415 msgid "Share stack slots for spilled pseudo-registers." msgstr "" -#: common.opt:1415 +#: common.opt:1419 msgid "-fira-verbose=<number>\tControl IRA's level of diagnostic messages." msgstr "" -#: common.opt:1419 +#: common.opt:1423 msgid "Optimize induction variables on trees" msgstr "Оптимизировать индуктивные переменные в древовидном предÑтавлении" -#: common.opt:1423 +#: common.opt:1427 msgid "Use jump tables for sufficiently large switch statements" msgstr "ИÑпользовать таблицы переходов Ð´Ð»Ñ Ð´Ð¾Ñтаточно больших операторов switch" -#: common.opt:1427 +#: common.opt:1431 msgid "Generate code for functions even if they are fully inlined" msgstr "Генерировать код Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¹ даже при 100%% inline-подÑтановке" -#: common.opt:1431 +#: common.opt:1435 msgid "Emit static const variables even if they are not used" msgstr "Ðе удалÑÑ‚ÑŒ даже неиÑпользуемые ÑтатичеÑкие конÑтантные переменные" -#: common.opt:1435 +#: common.opt:1439 msgid "Give external symbols a leading underscore" msgstr "ДобавлÑÑ‚ÑŒ в начало внешних Ñимволов подчеркивание" -#: common.opt:1443 +#: common.opt:1447 #, fuzzy msgid "Enable link-time optimization." msgstr "Включить оптимизации компоновки" -#: common.opt:1447 +#: common.opt:1451 msgid "Link-time optimization with number of parallel jobs or jobserver." msgstr "" -#: common.opt:1451 +#: common.opt:1455 msgid "Partition symbols and vars at linktime based on object files they originate from" msgstr "" -#: common.opt:1455 +#: common.opt:1459 msgid "Partition functions and vars at linktime into approximately same sized buckets" msgstr "" -#: common.opt:1459 +#: common.opt:1463 msgid "Put every symbol into separate partition" msgstr "" -#: common.opt:1463 +#: common.opt:1467 #, fuzzy msgid "Disable partioning and streaming" msgstr "Ðе иÑпользовать индекÑную адреÑацию" -#: common.opt:1468 +#: common.opt:1472 msgid "-flto-compression-level=<number>\tUse zlib compression level <number> for IL" msgstr "" -#: common.opt:1472 +#: common.opt:1476 #, fuzzy msgid "Report various link-time optimization statistics" msgstr "Выполнить оптимизацию Ð¿ÐµÑ€ÐµÐ¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ€ÐµÐ³Ð¸Ñтров" -#: common.opt:1476 +#: common.opt:1480 msgid "Set errno after built-in math functions" msgstr "УÑтанавливать errno поÑле вызовов вÑтроенных мат. функций" -#: common.opt:1480 +#: common.opt:1484 #, fuzzy msgid "-fmax-errors=<number>\tMaximum number of errors to report" msgstr "МакÑимальный коÑффициент развертки цикла" -#: common.opt:1484 +#: common.opt:1488 msgid "Report on permanent memory allocation" msgstr "ВывеÑти информацию о раÑпределении памÑти" -#: common.opt:1488 +#: common.opt:1492 #, fuzzy -#| msgid "Report on permanent memory allocation" msgid "Report on permanent memory allocation in WPA only" msgstr "ВывеÑти информацию о раÑпределении памÑти" -#: common.opt:1495 +#: common.opt:1499 msgid "Attempt to merge identical constants and constant variables" msgstr "Слить идентичные конÑтанты и конÑтантные переменные" -#: common.opt:1499 +#: common.opt:1503 msgid "Attempt to merge identical constants across compilation units" msgstr "Слить идентичные конÑтанты по вÑем единицам компилÑции" -#: common.opt:1503 +#: common.opt:1507 #, fuzzy msgid "Attempt to merge identical debug strings across compilation units" msgstr "Слить идентичные конÑтанты по вÑем единицам компилÑции" -#: common.opt:1507 +#: common.opt:1511 #, fuzzy msgid "-fmessage-length=<number>\tLimit diagnostics to <number> characters per line. 0 suppresses line-wrapping" msgstr "УÑтановить <длину> Ñтрок диагноÑтичеÑких Ñообщений в Ñимволах. 0 - подавить разбиение на Ñтроки" -#: common.opt:1511 +#: common.opt:1515 msgid "Perform SMS based modulo scheduling before the first scheduling pass" msgstr "ВыполнÑÑ‚ÑŒ планирование циклов по модулю методом SMS перед первым проходом Ð¿Ð»Ð°Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´" -#: common.opt:1515 +#: common.opt:1519 #, fuzzy msgid "Perform SMS based modulo scheduling with register moves allowed" msgstr "ВыполнÑÑ‚ÑŒ планирование циклов по модулю методом SMS перед первым проходом Ð¿Ð»Ð°Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´" -#: common.opt:1519 +#: common.opt:1523 msgid "Move loop invariant computations out of loops" msgstr "ВыноÑить инвариантные вычиÑÐ»ÐµÐ½Ð¸Ñ Ð·Ð° пределы циклов" -#: common.opt:1523 +#: common.opt:1527 #, fuzzy msgid "Use the RTL dead code elimination pass" msgstr "Выполнить оптимизацию ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð¼ÐµÑ€Ñ‚Ð²Ñ‹Ñ… команд запиÑи в памÑÑ‚ÑŒ" -#: common.opt:1527 +#: common.opt:1531 #, fuzzy msgid "Use the RTL dead store elimination pass" msgstr "Выполнить оптимизацию ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð¼ÐµÑ€Ñ‚Ð²Ñ‹Ñ… команд запиÑи в памÑÑ‚ÑŒ" -#: common.opt:1531 +#: common.opt:1535 msgid "Enable/Disable the traditional scheduling in loops that already passed modulo scheduling" msgstr "Включить/отменить обычное планирование Ð´Ð»Ñ ÐºÐ¾Ð½Ð²ÐµÐ¹ÐµÑ€Ð¸Ð·Ð¾Ð²Ð°Ð½Ð½Ñ‹Ñ… циклов" -#: common.opt:1535 +#: common.opt:1539 msgid "Support synchronous non-call exceptions" msgstr "Поддерживать Ñинхронные иÑÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð²Ð½Ðµ вызовов" -#: common.opt:1539 +#: common.opt:1543 msgid "When possible do not generate stack frames" msgstr "По возможноÑти не Ñоздавать кадры Ñтека" -#: common.opt:1543 +#: common.opt:1547 #, fuzzy -#| msgid "Enable loop optimizations on tree level" msgid "Enable all optimization info dumps on stderr" msgstr "Включить оптимизации циклов на древовидном предÑтавлении" -#: common.opt:1547 +#: common.opt:1551 msgid "-fopt-info[-<type>=filename]\tDump compiler optimization details" msgstr "" -#: common.opt:1551 +#: common.opt:1555 msgid "Do the full register move optimization pass" msgstr "Выполнить полную оптимизацию Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ñ€ÐµÐ³Ð¸Ñтров" -#: common.opt:1555 +#: common.opt:1559 msgid "Optimize sibling and tail recursive calls" msgstr "Оптимизировать парные вызовы и хвоÑтовую рекурÑию" -#: common.opt:1559 +#: common.opt:1563 #, fuzzy msgid "Perform partial inlining" msgstr "Выполнить inline-подÑтановки на ранних проходах оптимизации" -#: common.opt:1563 common.opt:1567 +#: common.opt:1567 common.opt:1571 msgid "Report on memory allocation before interprocedural optimization" msgstr "" -#: common.opt:1571 +#: common.opt:1575 msgid "Pack structure members together without holes" msgstr "Паковать Ð¿Ð¾Ð»Ñ Ñтруктур без дыр" -#: common.opt:1575 +#: common.opt:1579 #, fuzzy msgid "-fpack-struct=<number>\tSet initial maximum structure member alignment" msgstr "УÑтановить начальное макÑимальное выравнивание Ð´Ð»Ñ Ñлементов Ñтруктур" -#: common.opt:1579 +#: common.opt:1583 msgid "Return small aggregates in memory, not registers" msgstr "Возвращать короткие агрегатные Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð² памÑти, а не в региÑтрах" -#: common.opt:1583 +#: common.opt:1587 msgid "Perform loop peeling" msgstr "Выполнить раÑкатку циклов" -#: common.opt:1587 +#: common.opt:1591 msgid "Enable machine specific peephole optimizations" msgstr "Выполнить машинно-завиÑимые оптимизации" -#: common.opt:1591 +#: common.opt:1595 msgid "Enable an RTL peephole pass before sched2" msgstr "Выполнить машинно-завиÑимые оптимизации перед вторым планированием" -#: common.opt:1595 +#: common.opt:1599 msgid "Generate position-independent code if possible (large mode)" msgstr "Генерировать позиционно-незавиÑимый код, еÑли возможно (режим large)" -#: common.opt:1599 +#: common.opt:1603 msgid "Generate position-independent code for executables if possible (large mode)" msgstr "Генерировать позиционно-незавиÑимый код Ð´Ð»Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½Ñемых модулей, еÑли возможно (режим large)" -#: common.opt:1603 +#: common.opt:1607 msgid "Generate position-independent code if possible (small mode)" msgstr "Генерировать позиционно-незавиÑимый код, еÑли возможно (режим small)" -#: common.opt:1607 +#: common.opt:1611 msgid "Generate position-independent code for executables if possible (small mode)" msgstr "Генерировать позиционно-незавиÑимый код Ð´Ð»Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½Ñемых модулей, еÑли возможно (режим small)" -#: common.opt:1611 +#: common.opt:1615 #, fuzzy msgid "Specify a plugin to load" msgstr "Задать ключи GNAT" -#: common.opt:1615 +#: common.opt:1619 msgid "-fplugin-arg-<name>-<key>[=<value>]\tSpecify argument <key>=<value> for plugin <name>" msgstr "" -#: common.opt:1619 +#: common.opt:1623 #, fuzzy msgid "Run predictive commoning optimization." msgstr "Выполнить оптимизацию Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ñ€ÐµÐ³Ð¸Ñтров" -#: common.opt:1623 +#: common.opt:1627 msgid "Generate prefetch instructions, if available, for arrays in loops" msgstr "Генерировать команды предвыборки Ñлементов маÑÑивов, еÑли они поддерживаютÑÑ" -#: common.opt:1627 +#: common.opt:1631 msgid "Enable basic program profiling code" msgstr "Включить генерацию базового кода Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ" -#: common.opt:1631 +#: common.opt:1635 msgid "Insert arc-based program profiling code" msgstr "Ð’ÑтавлÑÑ‚ÑŒ код Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾ дугам управлÑющего графа программы" -#: common.opt:1635 +#: common.opt:1639 msgid "Set the top-level directory for storing the profile data." msgstr "" -#: common.opt:1640 +#: common.opt:1644 msgid "Enable correction of flow inconsistent profile data input" msgstr "" -#: common.opt:1644 +#: common.opt:1648 msgid "Enable common options for generating profile info for profile feedback directed optimizations" msgstr "Ðктивировать ключи генерации данных Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð»Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑоответÑтвующих оптимизаций" -#: common.opt:1648 +#: common.opt:1652 #, fuzzy msgid "Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=" msgstr "Ðктивировать ключи генерации данных Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð»Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑоответÑтвующих оптимизаций" -#: common.opt:1652 +#: common.opt:1656 msgid "Enable common options for performing profile feedback directed optimizations" msgstr "Ðктивировать ключи оптимизаций, оÑнованных на данных профилированиÑ" -#: common.opt:1656 +#: common.opt:1660 #, fuzzy msgid "Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=" msgstr "Ðктивировать ключи оптимизаций, оÑнованных на данных профилированиÑ" -#: common.opt:1660 +#: common.opt:1664 msgid "Insert code to profile values of expressions" msgstr "Ð’ÑтавлÑÑ‚ÑŒ код Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ выражений" -#: common.opt:1664 +#: common.opt:1668 #, fuzzy -#| msgid "internal consistency failure" msgid "Report on consistency of profile" msgstr "обнаружена неÑоглаÑованноÑÑ‚ÑŒ внутреннего предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ gcc" -#: common.opt:1671 +#: common.opt:1675 #, fuzzy msgid "-frandom-seed=<string>\tMake compile reproducible using <string>" msgstr "Компилировать воÑпроизводимым образом, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ <Ñтроку> Ð´Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ð¸ Ñлучайных чиÑел" -#: common.opt:1681 +#: common.opt:1685 msgid "Record gcc command line switches in the object file." msgstr "" -#: common.opt:1685 +#: common.opt:1689 msgid "Return small aggregates in registers" msgstr "Возвращать короткие агрегатные в региÑтрах" -#: common.opt:1689 +#: common.opt:1693 msgid "Enables a register move optimization" msgstr "Выполнить оптимизацию Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ñ€ÐµÐ³Ð¸Ñтров" -#: common.opt:1693 +#: common.opt:1697 msgid "Perform a register renaming optimization pass" msgstr "Выполнить оптимизацию Ð¿ÐµÑ€ÐµÐ¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ€ÐµÐ³Ð¸Ñтров" -#: common.opt:1697 +#: common.opt:1701 msgid "Reorder basic blocks to improve code placement" msgstr "ПереупорÑдочить блоки Ð´Ð»Ñ ÑƒÐ»ÑƒÑ‡ÑˆÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ‰ÐµÐ½Ð¸Ñ ÐºÐ¾Ð´Ð°" -#: common.opt:1701 +#: common.opt:1705 msgid "Reorder basic blocks and partition into hot and cold sections" msgstr "ПереупорÑдочить блоки и партиции в hot и cold разделы" -#: common.opt:1705 +#: common.opt:1709 msgid "Reorder functions to improve code placement" msgstr "ПереупорÑдочить функции Ð´Ð»Ñ ÑƒÐ»ÑƒÑ‡ÑˆÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ‰ÐµÐ½Ð¸Ñ ÐºÐ¾Ð´Ð°" -#: common.opt:1709 +#: common.opt:1713 msgid "Add a common subexpression elimination pass after loop optimizations" msgstr "Выполнить Ñкономию общих подвыражений еще и поÑле оптимизации циклов" -#: common.opt:1717 +#: common.opt:1721 msgid "Disable optimizations that assume default FP rounding behavior" msgstr "Отменить оптимизации, предполагающие Ñтандартное округление вещеÑтвенных значений" -#: common.opt:1721 +#: common.opt:1725 msgid "Enable scheduling across basic blocks" msgstr "Планировать команды в рамках неÑкольких блоков" -#: common.opt:1725 +#: common.opt:1729 msgid "Enable register pressure sensitive insn scheduling" msgstr "" -#: common.opt:1729 +#: common.opt:1733 msgid "Allow speculative motion of non-loads" msgstr "Разрешить ÑпекулÑтивный Ð¿ÐµÑ€ÐµÐ½Ð¾Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´, кроме чтениÑ" -#: common.opt:1733 +#: common.opt:1737 msgid "Allow speculative motion of some loads" msgstr "Разрешить ÑпекулÑтивный Ð¿ÐµÑ€ÐµÐ½Ð¾Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… команд чтениÑ" -#: common.opt:1737 +#: common.opt:1741 msgid "Allow speculative motion of more loads" msgstr "Разрешить более активный ÑпекулÑтивный Ð¿ÐµÑ€ÐµÐ½Ð¾Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ чтениÑ" -#: common.opt:1741 +#: common.opt:1745 #, fuzzy msgid "-fsched-verbose=<number>\tSet the verbosity level of the scheduler" msgstr "УÑтановить уровень подробноÑти Ñообщений от планировщика" -#: common.opt:1745 +#: common.opt:1749 msgid "If scheduling post reload, do superblock scheduling" msgstr "При планировании поÑле раÑÐ¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñ€ÐµÐ³Ð¸Ñтров, иÑпользовать метод Ñуперблоков" -#: common.opt:1753 +#: common.opt:1757 msgid "Reschedule instructions before register allocation" msgstr "Планировать код перед раÑпределением региÑтров" -#: common.opt:1757 +#: common.opt:1761 msgid "Reschedule instructions after register allocation" msgstr "Планировать код поÑле раÑÐ¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñ€ÐµÐ³Ð¸Ñтров" -#: common.opt:1764 +#: common.opt:1768 msgid "Schedule instructions using selective scheduling algorithm" msgstr "" -#: common.opt:1768 +#: common.opt:1772 msgid "Run selective scheduling after reload" msgstr "" -#: common.opt:1772 +#: common.opt:1776 msgid "Perform software pipelining of inner loops during selective scheduling" msgstr "" -#: common.opt:1776 +#: common.opt:1780 msgid "Perform software pipelining of outer loops during selective scheduling" msgstr "" -#: common.opt:1780 +#: common.opt:1784 msgid "Reschedule pipelined regions without pipelining" msgstr "" -#: common.opt:1786 +#: common.opt:1790 msgid "Allow premature scheduling of queued insns" msgstr "Разрешить предварительное планирование отложенных команд" -#: common.opt:1790 +#: common.opt:1794 #, fuzzy msgid "-fsched-stalled-insns=<number>\tSet number of queued insns that can be prematurely scheduled" msgstr "ЧиÑло отложенных команд, подлежащих предварительному планированию" -#: common.opt:1798 +#: common.opt:1802 msgid "Set dependence distance checking in premature scheduling of queued insns" msgstr "Включить проверку дальноÑти завиÑимоÑтей при предварительном планировании отложенных команд" -#: common.opt:1802 +#: common.opt:1806 #, fuzzy msgid "-fsched-stalled-insns-dep=<number>\tSet dependence distance checking in premature scheduling of queued insns" msgstr "Включить проверку дальноÑти завиÑимоÑтей при предварительном планировании отложенных команд" -#: common.opt:1806 +#: common.opt:1810 #, fuzzy msgid "Enable the group heuristic in the scheduler" msgstr "УÑтановить уровень подробноÑти Ñообщений от планировщика" -#: common.opt:1810 +#: common.opt:1814 msgid "Enable the critical path heuristic in the scheduler" msgstr "" -#: common.opt:1814 +#: common.opt:1818 msgid "Enable the speculative instruction heuristic in the scheduler" msgstr "" -#: common.opt:1818 +#: common.opt:1822 #, fuzzy msgid "Enable the rank heuristic in the scheduler" msgstr "УÑтановить уровень подробноÑти Ñообщений от планировщика" -#: common.opt:1822 +#: common.opt:1826 msgid "Enable the last instruction heuristic in the scheduler" msgstr "" -#: common.opt:1826 +#: common.opt:1830 msgid "Enable the dependent count heuristic in the scheduler" msgstr "" -#: common.opt:1830 +#: common.opt:1834 msgid "Access data in the same section from shared anchor points" msgstr "" -#: common.opt:1842 +#: common.opt:1846 msgid "Turn on Redundant Extensions Elimination pass." msgstr "" -#: common.opt:1846 +#: common.opt:1850 #, fuzzy msgid "Show column numbers in diagnostics, when available. Default on" msgstr "Показывать номера колонок в диагноÑтичеÑких Ñообщений. По умолчанию включено" -#: common.opt:1850 +#: common.opt:1854 msgid "Emit function prologues only before parts of the function that need it," msgstr "" -#: common.opt:1855 +#: common.opt:1859 msgid "Disable optimizations observable by IEEE signaling NaNs" msgstr "Отменить оптимизации, влиÑющие на поведение Ñигнализирующих NaN по IEEE" -#: common.opt:1859 +#: common.opt:1863 msgid "Disable floating point optimizations that ignore the IEEE signedness of zero" msgstr "" -#: common.opt:1863 +#: common.opt:1867 msgid "Convert floating point constants to single precision constants" msgstr "Преобразовывать вещеÑтвенные конÑтанты к значениÑм одинарной точноÑти" -#: common.opt:1867 +#: common.opt:1871 msgid "Split lifetimes of induction variables when loops are unrolled" msgstr "Разбивать диапазоны жизни индуктивных переменных при развертке циклов" -#: common.opt:1871 +#: common.opt:1875 #, fuzzy msgid "Generate discontiguous stack frames" msgstr "Генерировать APCS-ÑовмеÑтимые кадры Ñтека" -#: common.opt:1875 +#: common.opt:1879 msgid "Split wide types into independent registers" msgstr "" -#: common.opt:1879 +#: common.opt:1883 msgid "Apply variable expansion when loops are unrolled" msgstr "ВыполнÑÑ‚ÑŒ раÑширение переменных при развертке циклов" -#: common.opt:1883 +#: common.opt:1887 #, fuzzy msgid "-fstack-check=[no|generic|specific]\tInsert stack checking code into the program" msgstr "Генерировать код Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ Ñтека" -#: common.opt:1887 +#: common.opt:1891 #, fuzzy msgid "Insert stack checking code into the program. Same as -fstack-check=specific" msgstr "Генерировать код Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ Ñтека" -#: common.opt:1894 +#: common.opt:1898 #, fuzzy msgid "-fstack-limit-register=<register>\tTrap if the stack goes past <register>" msgstr "Прерывание при переполнении Ñтека, <региÑÑ‚Ñ€> задает границу Ñтека" -#: common.opt:1898 +#: common.opt:1902 #, fuzzy msgid "-fstack-limit-symbol=<name>\tTrap if the stack goes past symbol <name>" msgstr "Прерывание при переполнении Ñтека, <Ñимвол> задает границу Ñтека" -#: common.opt:1902 +#: common.opt:1906 msgid "Use propolice as a stack protection method" msgstr "ИÑпользовать propolice как метод защиты Ñтека" -#: common.opt:1906 +#: common.opt:1910 msgid "Use a stack protection method for every function" msgstr "ИÑпользовать защиту Ñтека Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ функции" -#: common.opt:1910 +#: common.opt:1914 #, fuzzy msgid "Output stack usage information on a per-function basis" msgstr "Включить иÑпользование r30" -#: common.opt:1922 +#: common.opt:1926 msgid "Assume strict aliasing rules apply" msgstr "Предполагать Ñтрогое Ñоблюдение правил Ð¿ÐµÑ€ÐµÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… в памÑти" -#: common.opt:1926 +#: common.opt:1930 #, fuzzy msgid "Treat signed overflow as undefined" msgstr "Трактовать отÑутÑтвующие заголовки как генерируемые файлы" -#: common.opt:1930 +#: common.opt:1934 msgid "Implement __atomic operations via libcalls to legacy __sync functions" msgstr "" -#: common.opt:1934 +#: common.opt:1938 msgid "Check for syntax errors, then stop" msgstr "Проверить код на наличие ÑинтакÑичеÑких ошибок и завершить работу" -#: common.opt:1938 +#: common.opt:1942 msgid "Create data files needed by \"gcov\"" msgstr "Создать файлы данных Ð´Ð»Ñ \"gcov\"" -#: common.opt:1942 +#: common.opt:1946 msgid "Perform jump threading optimizations" msgstr "Выполнить протÑгивание переходов" -#: common.opt:1946 +#: common.opt:1950 msgid "Report the time taken by each compiler pass" msgstr "Показать времÑ, затраченное на каждый проход оптимизации" -#: common.opt:1950 +#: common.opt:1954 #, fuzzy msgid "-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]\tSet the default thread-local storage code generation model" msgstr "Модель генерации кода Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…, локальных Ð´Ð»Ñ Ð¿Ð¾Ñ‚Ð¾Ð², по умолчанию" -#: common.opt:1953 +#: common.opt:1957 #, fuzzy, c-format msgid "unknown TLS model %qs" msgstr "неизвеÑÑ‚Ð½Ð°Ñ Ð¼Ð°ÑˆÐ¸Ð½Ð½Ñ‹Ð¹ режим %qs" -#: common.opt:1969 +#: common.opt:1973 msgid "Reorder top level functions, variables, and asms" msgstr "" -#: common.opt:1973 +#: common.opt:1977 msgid "Perform superblock formation via tail duplication" msgstr "Формировать Ñуперблоки методом Ð´ÑƒÐ±Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ…Ð²Ð¾Ñтов" -#: common.opt:1980 +#: common.opt:1984 msgid "Assume floating-point operations can trap" msgstr "Предполагать возможноÑÑ‚ÑŒ прерываний при плавающих операциÑÑ…" -#: common.opt:1984 +#: common.opt:1988 msgid "Trap for signed overflow in addition, subtraction and multiplication" msgstr "ÐŸÑ€ÐµÑ€Ñ‹Ð²Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸ знаковых операциÑÑ… ÑложениÑ, вычитаниÑ, умножениÑ" -#: common.opt:1988 +#: common.opt:1992 msgid "Enable SSA-CCP optimization on trees" msgstr "Включить SSA-оптимизацию раÑпроÑÑ‚Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½Ñтант на древовидном предÑтавлении" -#: common.opt:1992 +#: common.opt:1996 #, fuzzy msgid "Enable SSA-BIT-CCP optimization on trees" msgstr "Включить SSA-оптимизацию раÑпроÑÑ‚Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½Ñтант на древовидном предÑтавлении" -#: common.opt:2000 +#: common.opt:2004 msgid "Enable loop header copying on trees" msgstr "Включить копирование заголовков циклов в древовидном предÑтавлении" -#: common.opt:2004 +#: common.opt:2008 msgid "Enable coalescing of copy-related user variables that are inlined" msgstr "" -#: common.opt:2008 +#: common.opt:2012 msgid "Enable coalescing of all copy-related user variables" msgstr "" -#: common.opt:2012 +#: common.opt:2016 msgid "Replace SSA temporaries with better names in copies" msgstr "Переименовывать временные SSA-переменные при копировании Ð´Ð»Ñ Ð±Ð¾Ð»ÐµÐµ близкого ÑоответÑÑ‚Ð²Ð¸Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð½Ñ‹Ð¼ переменным" -#: common.opt:2016 +#: common.opt:2020 msgid "Enable copy propagation on trees" msgstr "ВыполнÑÑ‚ÑŒ раÑпроÑтранение копий в древовидном предÑтавлении" -#: common.opt:2024 +#: common.opt:2028 #, fuzzy msgid "Transform condition stores into unconditional ones" msgstr "Преобразовывать уÑловные переходы в уÑловно выполнÑемый код" -#: common.opt:2028 +#: common.opt:2032 #, fuzzy msgid "Perform conversions of switch initializations." msgstr "Преобразовывать уÑловные переходы в уÑловно выполнÑемый код" -#: common.opt:2032 +#: common.opt:2036 msgid "Enable SSA dead code elimination optimization on trees" msgstr "Выполнить удаление мертвого SSA-кода на древовидном предÑтавлении" -#: common.opt:2036 +#: common.opt:2040 msgid "Enable dominator optimizations" msgstr "Включить оптимизации доминаторов" -#: common.opt:2040 +#: common.opt:2044 #, fuzzy msgid "Enable tail merging on trees" msgstr "Включить копирование заголовков циклов в древовидном предÑтавлении" -#: common.opt:2044 +#: common.opt:2048 msgid "Enable dead store elimination" msgstr "Выполнить оптимизацию ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð¼ÐµÑ€Ñ‚Ð²Ñ‹Ñ… команд запиÑи в памÑÑ‚ÑŒ" -#: common.opt:2048 +#: common.opt:2052 #, fuzzy msgid "Enable forward propagation on trees" msgstr "ВыполнÑÑ‚ÑŒ раÑпроÑтранение копий в древовидном предÑтавлении" -#: common.opt:2052 +#: common.opt:2056 msgid "Enable Full Redundancy Elimination (FRE) on trees" msgstr "Выполнить полный набор оптимизаций ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð¸Ð·Ð±Ñ‹Ñ‚Ð¾Ñ‡Ð½Ð¾Ð³Ð¾ кода на древовидном предÑтавлении" -#: common.opt:2056 +#: common.opt:2060 #, fuzzy msgid "Enable string length optimizations on trees" msgstr "Включить SSA-оптимизацию раÑпроÑÑ‚Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½Ñтант на древовидном предÑтавлении" -#: common.opt:2060 +#: common.opt:2064 #, fuzzy msgid "Enable loop distribution on trees" msgstr "Выполнить векторизацию циклов на древовидном предÑтавлении" -#: common.opt:2064 +#: common.opt:2068 msgid "Enable loop distribution for patterns transformed into a library call" msgstr "" -#: common.opt:2068 +#: common.opt:2072 msgid "Enable loop invariant motion on trees" msgstr "Выполнить вынеÑение инвариантных вычиÑлений за пределы циклов на древовидном предÑтавлении" -#: common.opt:2072 +#: common.opt:2076 msgid "Enable loop interchange transforms. Same as -floop-interchange" msgstr "" -#: common.opt:2076 +#: common.opt:2080 msgid "Create canonical induction variables in loops" msgstr "Создавать каноничеÑкие индуктивные переменные в циклах" -#: common.opt:2080 +#: common.opt:2084 msgid "Enable loop optimizations on tree level" msgstr "Включить оптимизации циклов на древовидном предÑтавлении" -#: common.opt:2084 +#: common.opt:2088 #, fuzzy msgid "Enable automatic parallelization of loops" msgstr "Включить автоматичеÑкую конкретизацию шаблонов" -#: common.opt:2088 +#: common.opt:2092 #, fuzzy msgid "Enable hoisting loads from conditional pointers." msgstr "ИÑпользовать уÑловные команды move" -#: common.opt:2092 +#: common.opt:2096 msgid "Enable SSA-PRE optimization on trees" msgstr "Включить оптимизации SSA-PRE на древовидном предÑтавлении" -#: common.opt:2096 +#: common.opt:2100 msgid "In SSA-PRE optimization on trees, enable partial-partial redundancy elimination" msgstr "" -#: common.opt:2100 +#: common.opt:2104 #, fuzzy msgid "Perform function-local points-to analysis on trees." msgstr "Выполнить межпроцедурное раÑпроÑтранение конÑтант" -#: common.opt:2104 +#: common.opt:2108 #, fuzzy msgid "Enable reassociation on tree level" msgstr "Включить оптимизации циклов на древовидном предÑтавлении" -#: common.opt:2112 +#: common.opt:2116 msgid "Enable SSA code sinking on trees" msgstr "Выполнить погружение SSA-кода на древовидном предÑтавлении" -#: common.opt:2116 +#: common.opt:2120 msgid "Perform straight-line strength reduction" msgstr "" -#: common.opt:2120 +#: common.opt:2124 msgid "Perform scalar replacement of aggregates" msgstr "Выполнить замену ÑкалÑров Ð´Ð»Ñ Ð°Ð³Ñ€ÐµÐ³Ð°Ñ‚Ð½Ñ‹Ñ… значений" -#: common.opt:2124 +#: common.opt:2128 msgid "Replace temporary expressions in the SSA->normal pass" msgstr "Выполнить замену временных выражений на проходе SSA->normal" -#: common.opt:2128 +#: common.opt:2132 msgid "Perform live range splitting during the SSA->normal pass" msgstr "Выполнить разбиение диапазонов жизни значений на проходе SSA->normal" -#: common.opt:2132 +#: common.opt:2136 msgid "Perform Value Range Propagation on trees" msgstr "Выполнить оптимизацию раÑпроÑÑ‚Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½Ð¾Ð² значений на древовидном предÑтавлении" -#: common.opt:2136 +#: common.opt:2140 msgid "Compile whole compilation unit at a time" msgstr "Компилировать веÑÑŒ модуль целиком (а не по функциÑм)" -#: common.opt:2140 +#: common.opt:2144 msgid "Perform loop unrolling when iteration count is known" msgstr "Выполнить развертку циклов Ñ Ð¸Ð·Ð²ÐµÑтным чиÑлом итераций" -#: common.opt:2144 +#: common.opt:2148 msgid "Perform loop unrolling for all loops" msgstr "Выполнить развертку вÑех циклов" -#: common.opt:2151 +#: common.opt:2155 msgid "Allow loop optimizations to assume that the loops behave in normal way" msgstr "При оптимизации циклов предполагать нормальное поведение цикла" -#: common.opt:2155 +#: common.opt:2159 msgid "Allow optimization for floating-point arithmetic which may change the" msgstr "" -#: common.opt:2160 +#: common.opt:2164 msgid "Same as -fassociative-math for expressions which include division." msgstr "" -#: common.opt:2168 +#: common.opt:2172 msgid "Allow math optimizations that may violate IEEE or ISO standards" msgstr "Разрешить оптимизации плавающих вычиÑлений, которые могут противоречить Ñтандартам IEEE или ISO" -#: common.opt:2172 +#: common.opt:2176 msgid "Perform loop unswitching" msgstr "Выполнить декомпозицию циклов, Ñодержащих уÑловные ветвлениÑ" -#: common.opt:2176 +#: common.opt:2180 msgid "Just generate unwind tables for exception handling" msgstr "Генерировать unwind-таблицы только Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ иÑключений" -#: common.opt:2180 +#: common.opt:2184 msgid "Use the bfd linker instead of the default linker" msgstr "" -#: common.opt:2184 +#: common.opt:2188 msgid "Use the gold linker instead of the default linker" msgstr "" -#: common.opt:2196 +#: common.opt:2200 msgid "Perform variable tracking" msgstr "Выполнить отÑлеживание переменных" -#: common.opt:2204 +#: common.opt:2208 #, fuzzy msgid "Perform variable tracking by annotating assignments" msgstr "Выполнить отÑлеживание переменных" -#: common.opt:2210 +#: common.opt:2214 msgid "Toggle -fvar-tracking-assignments" msgstr "" -#: common.opt:2218 +#: common.opt:2222 msgid "Perform variable tracking and also tag variables that are uninitialized" msgstr "" -#: common.opt:2222 +#: common.opt:2226 msgid "Enable loop vectorization on trees" msgstr "Выполнить векторизацию циклов на древовидном предÑтавлении" -#: common.opt:2226 +#: common.opt:2230 #, fuzzy msgid "-ftree-vectorizer-verbose=<number>\tThis switch is deprecated. Use -fopt-info instead." msgstr "УÑтановить Ñтепень подробноÑти Ñообщений при векторизации циклов" -#: common.opt:2230 +#: common.opt:2234 #, fuzzy msgid "Enable basic block vectorization (SLP) on trees" msgstr "Выполнить векторизацию циклов на древовидном предÑтавлении" -#: common.opt:2234 +#: common.opt:2238 #, fuzzy msgid "Enable use of cost model in vectorization" msgstr "ИÑпользовать команду DB" -#: common.opt:2238 +#: common.opt:2242 msgid "Enable loop versioning when doing loop vectorization on trees" msgstr "Создавать верÑии циклов при векторизации" -#: common.opt:2242 +#: common.opt:2246 #, fuzzy msgid "Enable copy propagation of scalar-evolution information." msgstr "ВыполнÑÑ‚ÑŒ раÑпроÑтранение копий Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñей и загрузок" -#: common.opt:2252 +#: common.opt:2256 msgid "Add extra commentary to assembler output" msgstr "Добавить комментарии к аÑÑемблерному коду" -#: common.opt:2256 +#: common.opt:2260 msgid "-fvisibility=[default|internal|hidden|protected]\tSet the default symbol visibility" msgstr "" -#: common.opt:2259 +#: common.opt:2263 #, fuzzy, c-format msgid "unrecognized visibility value %qs" msgstr "некорректный тип видимоÑти \"%s\"" -#: common.opt:2275 +#: common.opt:2279 msgid "Use expression value profiles in optimizations" msgstr "ИÑпользовать данные Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ при оптимизациÑÑ…" -#: common.opt:2279 +#: common.opt:2283 msgid "Construct webs and split unrelated uses of single variable" msgstr "СнÑÑ‚ÑŒ завиÑимоÑти между различными иÑпользованиÑми одной и той же переменной" -#: common.opt:2283 +#: common.opt:2287 #, fuzzy msgid "Enable conditional dead code elimination for builtin calls" msgstr "Выполнить удаление мертвого SSA-кода на древовидном предÑтавлении" -#: common.opt:2287 +#: common.opt:2291 msgid "Perform whole program optimizations" msgstr "Выполнить оптимизации на уровне вÑей программы" -#: common.opt:2291 +#: common.opt:2295 msgid "Assume signed arithmetic overflow wraps around" msgstr "Предполагать цикличеÑкий Ð¿ÐµÑ€ÐµÐ½Ð¾Ñ Ð¿Ñ€Ð¸ арифметичеÑких переполнениÑÑ…" -#: common.opt:2295 +#: common.opt:2299 msgid "Put zero initialized data in the bss section" msgstr "Помещать данные, инициализированные нулÑми, в Ñекцию bss" -#: common.opt:2299 +#: common.opt:2303 msgid "Generate debug information in default format" msgstr "Генерировать отладочную информацию в формате по умолчанию" -#: common.opt:2303 +#: common.opt:2307 msgid "Generate debug information in COFF format" msgstr "Генерировать отладочную информацию в формате COFF" -#: common.opt:2307 +#: common.opt:2311 #, fuzzy msgid "Generate debug information in DWARF v2 (or later) format" msgstr "Генерировать отладочную информацию в формате DWARF верÑии 2" -#: common.opt:2311 +#: common.opt:2315 msgid "Generate debug information in default extended format" msgstr "Генерировать отладочную информацию в раÑширенном формате по умолчанию" -#: common.opt:2315 +#: common.opt:2319 msgid "Don't generate DWARF pubnames and pubtypes sections." msgstr "" -#: common.opt:2319 +#: common.opt:2323 msgid "Generate DWARF pubnames and pubtypes sections." msgstr "" -#: common.opt:2323 +#: common.opt:2327 msgid "Don't record gcc command line switches in DWARF DW_AT_producer." msgstr "" -#: common.opt:2327 +#: common.opt:2331 msgid "Record gcc command line switches in DWARF DW_AT_producer." msgstr "" -#: common.opt:2331 +#: common.opt:2335 #, fuzzy -#| msgid "Generate debug information in default format" msgid "Don't generate debug information in separate .dwo files" msgstr "Генерировать отладочную информацию в формате по умолчанию" -#: common.opt:2335 +#: common.opt:2339 #, fuzzy -#| msgid "Generate debug information in default format" msgid "Generate debug information in separate .dwo files" msgstr "Генерировать отладочную информацию в формате по умолчанию" -#: common.opt:2339 +#: common.opt:2343 msgid "Generate debug information in STABS format" msgstr "Генерировать отладочную информацию в формате STABS" -#: common.opt:2343 +#: common.opt:2347 msgid "Generate debug information in extended STABS format" msgstr "Генерировать отладочную информацию в раÑширенном формате STABS" -#: common.opt:2347 +#: common.opt:2351 msgid "Emit DWARF additions beyond selected version" msgstr "" -#: common.opt:2351 +#: common.opt:2355 msgid "Don't emit DWARF additions beyond selected version" msgstr "" -#: common.opt:2355 +#: common.opt:2359 #, fuzzy msgid "Toggle debug information generation" msgstr "Генерировать отладочную информацию в формате VMS" -#: common.opt:2359 +#: common.opt:2363 msgid "Generate debug information in VMS format" msgstr "Генерировать отладочную информацию в формате VMS" -#: common.opt:2363 +#: common.opt:2367 msgid "Generate debug information in XCOFF format" msgstr "Генерировать отладочную информацию в формате XCOFF" -#: common.opt:2367 +#: common.opt:2371 msgid "Generate debug information in extended XCOFF format" msgstr "Генерировать отладочную информацию в раÑширенном формате XCOFF" -#: common.opt:2374 +#: common.opt:2378 #, fuzzy msgid "-iplugindir=<dir>\tSet <dir> to be the default plugin directory" msgstr "Считать <каталог> корневым каталогом ÑиÑтемы" -#: common.opt:2378 +#: common.opt:2382 #, fuzzy msgid "-imultiarch <dir>\tSet <dir> to be the multiarch include subdirectory" msgstr "Считать <каталог> корневым каталогом ÑиÑтемы" -#: common.opt:2400 +#: common.opt:2404 #, fuzzy msgid "-o <file>\tPlace output into <file>" msgstr "ЗапиÑать результат в <файл>" -#: common.opt:2404 +#: common.opt:2408 msgid "Enable function profiling" msgstr "Включить профилирование функций" -#: common.opt:2414 +#: common.opt:2418 msgid "Like -pedantic but issue them as errors" msgstr "Как -pedantic, но выдавать ошибки, а не предупреждениÑ" -#: common.opt:2454 +#: common.opt:2458 msgid "Do not display functions compiled or elapsed time" msgstr "Ðе отображать Ð²Ñ€ÐµÐ¼Ñ ÐºÐ¾Ð¼Ð¿Ð¸Ð»Ñции функций" -#: common.opt:2486 +#: common.opt:2490 msgid "Enable verbose output" msgstr "Включить подробную выдачу" -#: common.opt:2490 +#: common.opt:2494 msgid "Display the compiler's version" msgstr "Показать верÑию компилÑтора" -#: common.opt:2494 +#: common.opt:2498 msgid "Suppress warnings" msgstr "Подавить выдачу предупреждений" -#: common.opt:2504 +#: common.opt:2508 #, fuzzy msgid "Create a shared library" msgstr "Поддерживать разделÑемые библиотеки на оÑнове ID" -#: common.opt:2543 +#: common.opt:2547 #, fuzzy msgid "Create a position independent executable" msgstr "Генерировать позиционно-незавиÑимый код Ð´Ð»Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½Ñемых модулей, еÑли возможно (режим large)" -#: go/gofrontend/expressions.cc:102 c-family/c-common.c:1777 cp/cvt.c:1149 +#: go/gofrontend/expressions.cc:102 c-family/c-common.c:1782 cp/cvt.c:1149 #: cp/cvt.c:1395 #, gcc-internal-format msgid "value computed is not used" @@ -13362,7 +13335,7 @@ msgid "method %s%s%s is marked go:nointerface" msgstr "" #. Warn about and ignore all others for now, but store them. -#: attribs.c:426 c-family/c-common.c:8019 objc/objc-act.c:4952 +#: attribs.c:426 c-family/c-common.c:8041 objc/objc-act.c:4952 #: objc/objc-act.c:6922 objc/objc-act.c:8109 objc/objc-act.c:8160 #, fuzzy, gcc-internal-format msgid "%qE attribute directive ignored" @@ -13383,7 +13356,6 @@ msgstr "Ð´Ð»Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð° %qs задано неверное чиÑло Ð°Ñ #. type. Ignore it. #: attribs.c:452 #, fuzzy, gcc-internal-format -#| msgid "%qE attribute ignored" msgid "attribute ignored" msgstr "атрибут %qE проигнорирован" @@ -13551,19 +13523,17 @@ msgstr "" #: builtins.c:5764 #, fuzzy, gcc-internal-format -#| msgid "__builtin_eh_return not supported on this target" msgid "__builtin_thread_pointer is not supported on this target" msgstr "__builtin_eh_return не поддерживаетÑÑ Ð´Ð»Ñ Ñтой платформы" #: builtins.c:5784 #, fuzzy, gcc-internal-format -#| msgid "__builtin_eh_return not supported on this target" msgid "__builtin_set_thread_pointer is not supported on this target" msgstr "__builtin_eh_return не поддерживаетÑÑ Ð´Ð»Ñ Ñтой платформы" #. All valid uses of __builtin_va_arg_pack () are removed during #. inlining. -#: builtins.c:6025 expr.c:10184 +#: builtins.c:6025 expr.c:10185 #, fuzzy, gcc-internal-format msgid "%Kinvalid use of %<__builtin_va_arg_pack ()%>" msgstr "неверный аргумент Ð´Ð»Ñ %<__builtin_frame_address%>" @@ -13650,17 +13620,17 @@ msgstr "" msgid "function call has aggregate value" msgstr "Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ агрегатное значение" -#: cfgexpand.c:1238 function.c:971 varasm.c:1966 +#: cfgexpand.c:1238 function.c:971 varasm.c:1964 #, gcc-internal-format msgid "size of variable %q+D is too large" msgstr "размер переменной %q+D Ñлишком велик" -#: cfgexpand.c:4487 +#: cfgexpand.c:4542 #, fuzzy, gcc-internal-format msgid "stack protector not protecting local variables: variable length buffer" msgstr "локальные переменные не защищены: буфер переменного размера" -#: cfgexpand.c:4491 +#: cfgexpand.c:4546 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "stack protector not protecting function: all local arrays are less than %d bytes long" msgstr "Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð½Ðµ защищена: отÑутÑтвует буфер размера не менее %d байт" @@ -13742,7 +13712,6 @@ msgstr "процедура verify_flow_info выÑвила ошибки" #: cfghooks.c:293 #, fuzzy, gcc-internal-format, gfc-internal-format -#| msgid "%s does not support duplicate_block" msgid "%s does not support dump_bb_for_graph" msgstr "%s не поддерживает duplicate_block" @@ -13848,19 +13817,16 @@ msgstr "размер цикла %d должен быть %d, а не %d" #: cfgloop.c:1363 #, fuzzy, gcc-internal-format, gfc-internal-format -#| msgid "Enable loop header copying on trees" msgid "loop with header %d not in loop tree" msgstr "Включить копирование заголовков циклов в древовидном предÑтавлении" #: cfgloop.c:1380 #, fuzzy, gcc-internal-format, gfc-internal-format -#| msgid "bb %d do not belong to loop %d" msgid "bb %d does not belong to loop %d" msgstr "блок %d не принадлежит циклу %d" #: cfgloop.c:1392 #, fuzzy, gcc-internal-format, gfc-internal-format -#| msgid "size of loop %d should be %d, not %d" msgid "bb %d has father loop %d, should be loop %d" msgstr "размер цикла %d должен быть %d, а не %d" @@ -13964,169 +13930,162 @@ msgstr "" msgid "%d exits recorded for loop %d (having %d exits)" msgstr "нет запиÑи о единÑтвенном выходе из цикла %d" -#: cfgrtl.c:2092 +#: cfgrtl.c:2090 #, gcc-internal-format, gfc-internal-format msgid "BB_RTL flag not set for block %d" msgstr "Ð´Ð»Ñ Ð±Ð»Ð¾ÐºÐ° %d не уÑтановлен флаг BB_RTL" -#: cfgrtl.c:2099 +#: cfgrtl.c:2097 #, gcc-internal-format, gfc-internal-format msgid "insn %d basic block pointer is %d, should be %d" msgstr "" -#: cfgrtl.c:2110 +#: cfgrtl.c:2108 #, gcc-internal-format, gfc-internal-format msgid "insn %d in header of bb %d has non-NULL basic block" msgstr "" -#: cfgrtl.c:2118 +#: cfgrtl.c:2116 #, gcc-internal-format, gfc-internal-format msgid "insn %d in footer of bb %d has non-NULL basic block" msgstr "" -#: cfgrtl.c:2141 +#: cfgrtl.c:2139 #, 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:2160 +#: cfgrtl.c:2158 #, gcc-internal-format msgid "EDGE_CROSSING incorrectly set across same section" msgstr "" -#: cfgrtl.c:2165 +#: cfgrtl.c:2163 #, fuzzy, gcc-internal-format, gfc-internal-format -#| msgid "fallthru edge crosses section boundary (bb %i)" msgid "fallthru edge crosses section boundary in bb %i" msgstr "ÑÐºÐ²Ð¾Ð·Ð½Ð°Ñ Ð´ÑƒÐ³Ð° переÑекает границу Ñекции (блок %i)" -#: cfgrtl.c:2171 +#: cfgrtl.c:2169 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "EH edge crosses section boundary in bb %i" msgstr "ÑÐºÐ²Ð¾Ð·Ð½Ð°Ñ Ð´ÑƒÐ³Ð° переÑекает границу Ñекции (блок %i)" -#: cfgrtl.c:2178 +#: cfgrtl.c:2176 #, gcc-internal-format msgid "EDGE_CROSSING missing across section boundary" msgstr "" -#: cfgrtl.c:2205 +#: cfgrtl.c:2203 #, fuzzy, gcc-internal-format, gfc-internal-format -#| msgid "missing REG_EH_REGION note in the end of bb %i" msgid "missing REG_EH_REGION note at the end of bb %i" msgstr "отÑутÑтвует пометка REG_EH_REGION в конце блока %i" -#: cfgrtl.c:2210 +#: cfgrtl.c:2208 #, fuzzy, gcc-internal-format, gfc-internal-format -#| msgid "too many outgoing branch edges from bb %i" msgid "too many exception handling edges in bb %i" msgstr "Ñлишком много переходов, иÑходÑщих из блока %i" -#: cfgrtl.c:2218 +#: cfgrtl.c:2216 #, gcc-internal-format, gfc-internal-format msgid "too many outgoing branch edges from bb %i" msgstr "Ñлишком много переходов, иÑходÑщих из блока %i" -#: cfgrtl.c:2223 +#: cfgrtl.c:2221 #, fuzzy, gcc-internal-format, gfc-internal-format -#| msgid "fallthru edge after unconditional jump %i" msgid "fallthru edge after unconditional jump in bb %i" msgstr "ÑÐºÐ²Ð¾Ð·Ð½Ð°Ñ Ð´ÑƒÐ³Ð° поÑле безуÑловного перехода %i" -#: cfgrtl.c:2228 +#: cfgrtl.c:2226 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "wrong number of branch edges after unconditional jump in bb %i" msgstr "некорректное чиÑло ветвлений поÑле безуÑловного перехода %i" -#: cfgrtl.c:2235 +#: cfgrtl.c:2233 #, fuzzy, gcc-internal-format, gfc-internal-format -#| msgid "wrong amount of branch edges after conditional jump %i" msgid "wrong amount of branch edges after conditional jump in bb %i" msgstr "некорректное чиÑло ветвлений поÑле уÑловного перехода %i" -#: cfgrtl.c:2241 +#: cfgrtl.c:2239 #, fuzzy, gcc-internal-format, gfc-internal-format -#| msgid "call edges for non-call insn in bb %i" msgid "abnormal call edges for non-call insn in bb %i" msgstr "дуги вызова Ð´Ð»Ñ Ð½Ðµ-call инÑтрукции в блоке %i" -#: cfgrtl.c:2246 +#: cfgrtl.c:2244 #, fuzzy, gcc-internal-format, gfc-internal-format -#| msgid "call edges for non-call insn in bb %i" msgid "sibcall edges for non-call insn in bb %i" msgstr "дуги вызова Ð´Ð»Ñ Ð½Ðµ-call инÑтрукции в блоке %i" -#: cfgrtl.c:2256 +#: cfgrtl.c:2254 #, gcc-internal-format, gfc-internal-format msgid "abnormal edges for no purpose in bb %i" msgstr "ненужные аномальные дуги в блоке %i" -#: cfgrtl.c:2268 +#: cfgrtl.c:2266 #, gcc-internal-format, gfc-internal-format msgid "insn %d inside basic block %d but block_for_insn is NULL" msgstr "RTL-инÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ %d - внутри блока %d, а block_for_insn=NULL" -#: cfgrtl.c:2272 +#: cfgrtl.c:2270 #, gcc-internal-format, gfc-internal-format msgid "insn %d inside basic block %d but block_for_insn is %i" msgstr "RTL-инÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ %d - внутри блока %d, а block_for_insn=%i" -#: cfgrtl.c:2286 cfgrtl.c:2296 +#: cfgrtl.c:2284 cfgrtl.c:2294 #, gcc-internal-format, gfc-internal-format msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d" msgstr "отÑутÑтвует NOTE_INSN_BASIC_BLOCK Ð´Ð»Ñ Ð±Ð»Ð¾ÐºÐ° %d" -#: cfgrtl.c:2309 +#: cfgrtl.c:2307 #, gcc-internal-format, gfc-internal-format msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d" msgstr "NOTE_INSN_BASIC_BLOCK %d в Ñередине блока %d" -#: cfgrtl.c:2319 +#: cfgrtl.c:2317 #, gcc-internal-format, gfc-internal-format msgid "in basic block %d:" msgstr "в блоке %d" -#: cfgrtl.c:2371 cfgrtl.c:2461 +#: cfgrtl.c:2369 cfgrtl.c:2459 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "insn %d outside of basic blocks has non-NULL bb field" msgstr "RTL-инÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ - вне блока" -#: cfgrtl.c:2379 +#: cfgrtl.c:2377 #, gcc-internal-format, gfc-internal-format msgid "end insn %d for block %d not found in the insn stream" msgstr "Ð·Ð°ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¸Ð½ÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ %d блока %d не найдена в ÑпиÑке инÑтрукций" -#: cfgrtl.c:2392 +#: cfgrtl.c:2390 #, gcc-internal-format, gfc-internal-format msgid "insn %d is in multiple basic blocks (%d and %d)" msgstr "инÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ %d в неÑкольких блоках (%d и %d)" -#: cfgrtl.c:2404 +#: cfgrtl.c:2402 #, gcc-internal-format, gfc-internal-format msgid "head insn %d for block %d not found in the insn stream" msgstr "Ð³Ð¾Ð»Ð¾Ð²Ð½Ð°Ñ RTL-инÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ %d Ð´Ð»Ñ Ð±Ð»Ð¾ÐºÐ° %d не найдена" -#: cfgrtl.c:2421 +#: cfgrtl.c:2419 #, gcc-internal-format, gfc-internal-format msgid "missing barrier after block %i" msgstr "отÑутÑтвует барьер поÑле блока %i" -#: cfgrtl.c:2437 +#: cfgrtl.c:2435 #, gcc-internal-format, gfc-internal-format msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i" msgstr "verify_flow_info: Ðекорректные блоки Ð´Ð»Ñ Ñквозного перехода %i->%i" -#: cfgrtl.c:2446 +#: cfgrtl.c:2444 #, gcc-internal-format, gfc-internal-format msgid "verify_flow_info: Incorrect fallthru %i->%i" msgstr "verify_flow_info: Ðекорректный Ñквозной переход %i->%i" -#: cfgrtl.c:2479 +#: cfgrtl.c:2477 #, gcc-internal-format msgid "basic blocks not laid down consecutively" msgstr "блоки не были размещены поÑледовательно" -#: cfgrtl.c:2516 +#: cfgrtl.c:2514 #, gcc-internal-format, gfc-internal-format msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)" msgstr "чиÑло меток блоков в ÑпиÑке RTL-инÑтрукций (%d) != n_basic_blocks (%d)" @@ -14396,7 +14355,7 @@ msgstr "должна быть уÑтановлена COLLECT_LTO_WRAPPER" msgid "no arguments" msgstr "отÑутÑтвуют аргументы" -#: collect2.c:1284 opts.c:794 +#: collect2.c:1284 opts.c:797 #, fuzzy, gcc-internal-format msgid "LTO support has not been enabled in this configuration" msgstr "-m%s в данной конфигурации не поддерживаетÑÑ" @@ -14451,12 +14410,12 @@ msgstr "не удалоÑÑŒ закрыть файл отзыва %s" msgid "cannot find '%s'" msgstr "не удалоÑÑŒ найти '%s'" -#: collect2.c:1921 collect2.c:2448 collect2.c:2644 gcc.c:2749 +#: collect2.c:1921 collect2.c:2448 collect2.c:2644 gcc.c:2750 #, fuzzy, gcc-internal-format msgid "pex_init failed: %m" msgstr "ошибка в pex_init" -#: collect2.c:1930 collect2.c:2457 collect2.c:2652 gcc.c:7188 +#: collect2.c:1930 collect2.c:2457 collect2.c:2652 gcc.c:7191 #, fuzzy, gcc-internal-format msgid "%s: %m" msgstr "%s: %s" @@ -14696,7 +14655,7 @@ msgstr "глобальные деÑтрукторы не Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°ÑŽÑ msgid "global constructors not supported on this target" msgstr "глобальные конÑтрукторы не поддерживаютÑÑ Ð´Ð»Ñ Ñтой платформы" -#: diagnostic.c:1145 +#: diagnostic.c:1148 #, gcc-internal-format, gfc-internal-format msgid "in %s, at %s:%d" msgstr "в %s, в %s:%d" @@ -14723,7 +14682,6 @@ msgstr "проигнорирован Ð½ÐµÐ¾Ð¿Ð¾Ð·Ð½Ð°Ð½Ð½Ð°Ñ Ð¾Ð¿Ñ†Ð¸Ñ %q.*s Ð #: dumpfile.c:831 #, fuzzy, gcc-internal-format -#| msgid "ignoring unknown option %q.*s in %<-fdump-%s%>" msgid "unknown option %q.*s in %<-fopt-info-%s%>" msgstr "проигнорирован Ð½ÐµÐ¾Ð¿Ð¾Ð·Ð½Ð°Ð½Ð½Ð°Ñ Ð¾Ð¿Ñ†Ð¸Ñ %q.*s в %<-fdump-%s%>" @@ -14742,22 +14700,22 @@ msgstr "" msgid "non-delegitimized UNSPEC %s (%d) found in variable location" msgstr "" -#: emit-rtl.c:2612 +#: emit-rtl.c:2616 #, gcc-internal-format msgid "invalid rtl sharing found in the insn" msgstr "Ðекорректное разделение rtl-кода в инÑтрукции" -#: emit-rtl.c:2614 +#: emit-rtl.c:2618 #, gcc-internal-format msgid "shared rtx" msgstr "разделÑемый rtl-код" -#: emit-rtl.c:2616 +#: emit-rtl.c:2620 #, gcc-internal-format msgid "internal consistency failure" msgstr "обнаружена неÑоглаÑованноÑÑ‚ÑŒ внутреннего предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ gcc" -#: emit-rtl.c:3741 +#: emit-rtl.c:3749 #, gcc-internal-format msgid "ICE: emit_insn used where emit_jump_insn needed:\n" msgstr "ВнутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: иÑпользование emit_insn вмеÑто emit_jump_insn:\n" @@ -14767,57 +14725,57 @@ msgstr "ВнутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: иÑпользование emit_insn msgid "abort in %s, at %s:%d" msgstr "аварийный выход в %s, на %s:%d" -#: except.c:2026 +#: except.c:2075 #, gcc-internal-format msgid "argument of %<__builtin_eh_return_regno%> must be constant" msgstr "аргумент %<__builtin_eh_return_regno%> должен быть конÑтантой" -#: except.c:2163 +#: except.c:2212 #, gcc-internal-format msgid "__builtin_eh_return not supported on this target" msgstr "__builtin_eh_return не поддерживаетÑÑ Ð´Ð»Ñ Ñтой платформы" -#: except.c:3222 except.c:3247 +#: except.c:3271 except.c:3296 #, gcc-internal-format, gfc-internal-format msgid "region_array is corrupted for region %i" msgstr "иÑпорчен region_array Ð´Ð»Ñ Ñ€ÐµÐ³Ð¸Ð¾Ð½Ð° %i" -#: except.c:3235 except.c:3266 +#: except.c:3284 except.c:3315 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "lp_array is corrupted for lp %i" msgstr "иÑпорчен region_array Ð´Ð»Ñ Ñ€ÐµÐ³Ð¸Ð¾Ð½Ð° %i" -#: except.c:3252 +#: except.c:3301 #, gcc-internal-format, gfc-internal-format msgid "outer block of region %i is wrong" msgstr "неправильный внешний блок региона %i" -#: except.c:3257 +#: except.c:3306 #, gcc-internal-format, gfc-internal-format msgid "negative nesting depth of region %i" msgstr "Ð¾Ñ‚Ñ€Ð¸Ñ†Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð³Ð»ÑƒÐ±Ð¸Ð½Ð° вложенноÑти региона %i" -#: except.c:3271 +#: except.c:3320 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "region of lp %i is wrong" msgstr "неправильный внешний блок региона %i" -#: except.c:3298 +#: except.c:3347 #, gcc-internal-format, gfc-internal-format msgid "tree list ends on depth %i" msgstr "лиÑÑ‚ дерева на глубине %i" -#: except.c:3303 +#: except.c:3352 #, fuzzy, gcc-internal-format msgid "region_array does not match region_tree" msgstr "маÑÑив не ÑоответÑтвует дереву регионов" -#: except.c:3308 +#: except.c:3357 #, fuzzy, gcc-internal-format msgid "lp_array does not match region_tree" msgstr "маÑÑив не ÑоответÑтвует дереву регионов" -#: except.c:3315 +#: except.c:3364 #, gcc-internal-format msgid "verify_eh_tree failed" msgstr "процедура verify_eh_tree выÑвила ошибки" @@ -14857,12 +14815,12 @@ msgstr "" msgid "local frame unavailable (naked function?)" msgstr "Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð°Ñ Ñ€ÐµÐ³Ð¸ÑÑ‚Ñ€Ð¾Ð²Ð°Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ %qD иÑпользована во вложенной функции" -#: expr.c:10191 +#: expr.c:10192 #, fuzzy, gcc-internal-format msgid "%Kcall to %qs declared with attribute error: %s" msgstr "%JÑ„ÑƒÐ½ÐºÑ†Ð¸Ñ %qD повторно декларирована Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¾Ð¼ noinline" -#: expr.c:10198 +#: expr.c:10199 #, fuzzy, gcc-internal-format msgid "%Kcall to %qs declared with attribute warning: %s" msgstr "%JÑ„ÑƒÐ½ÐºÑ†Ð¸Ñ %qD повторно декларирована Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¾Ð¼ noinline" @@ -14897,47 +14855,47 @@ msgstr "неÑвное приведение большого целого зна msgid "assuming signed overflow does not occur when negating a division" msgstr "" -#: fold-const.c:3437 fold-const.c:3449 +#: fold-const.c:3450 fold-const.c:3462 #, gcc-internal-format, gfc-internal-format msgid "comparison is always %d due to width of bit-field" msgstr "при данной ширине битового Ð¿Ð¾Ð»Ñ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚ ÑÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ - вÑегда %d" -#: fold-const.c:4849 tree-ssa-reassoc.c:1943 +#: fold-const.c:4862 tree-ssa-reassoc.c:1944 #, gcc-internal-format msgid "assuming signed overflow does not occur when simplifying range test" msgstr "" -#: fold-const.c:5285 fold-const.c:5299 +#: fold-const.c:5298 fold-const.c:5312 #, gcc-internal-format, gfc-internal-format msgid "comparison is always %d" msgstr "результат ÑÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ - вÑегда %d" -#: fold-const.c:5432 +#: fold-const.c:5445 #, gcc-internal-format msgid "%<or%> of unmatched not-equal tests is always 1" msgstr "%<или%> от двух Ñравнений на неравенÑтво Ñ Ñ€Ð°Ð·Ð½Ñ‹Ð¼Ð¸ величинами - вÑегда 1" -#: fold-const.c:5437 +#: fold-const.c:5450 #, gcc-internal-format msgid "%<and%> of mutually exclusive equal-tests is always 0" msgstr "%<или%> от двух взаимно иÑключающих Ñравнений на равенÑтво - вÑегда 0" -#: fold-const.c:8729 +#: fold-const.c:8742 #, gcc-internal-format msgid "assuming signed overflow does not occur when reducing constant in comparison" msgstr "" -#: fold-const.c:8887 +#: fold-const.c:8900 #, gcc-internal-format msgid "assuming signed overflow does not occur when changing X +- C1 cmp C2 to X cmp C1 +- C2" msgstr "" -#: fold-const.c:9150 +#: fold-const.c:9163 #, gcc-internal-format msgid "assuming signed overflow does not occur when combining constants around a comparison" msgstr "" -#: fold-const.c:14564 +#: fold-const.c:14577 #, gcc-internal-format msgid "fold check: original tree changed by fold" msgstr "проверка fold: иÑходное дерево изменено функцией fold" @@ -14962,142 +14920,142 @@ msgstr "Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ %q+D может быть иÑпорчена вызРmsgid "argument %q+D might be clobbered by %<longjmp%> or %<vfork%>" msgstr "аргумент %qD мог быть иÑпорчен вызовами `longjmp' или `vfork'" -#: function.c:4631 +#: function.c:4620 #, gcc-internal-format msgid "function returns an aggregate" msgstr "Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ агрегатное значение" -#: function.c:4993 +#: function.c:4982 #, gcc-internal-format msgid "unused parameter %q+D" msgstr "параметр %q+D не иÑпользуетÑÑ" -#: gcc.c:1804 gcc.c:1824 +#: gcc.c:1805 gcc.c:1825 #, gcc-internal-format, gfc-internal-format msgid "specs %%include syntax malformed after %ld characters" msgstr "некорректный ÑинтакÑÐ¸Ñ Ñпецификации %%include поÑле %ld Ñимволов" -#: gcc.c:1850 gcc.c:1859 gcc.c:1869 gcc.c:1879 +#: gcc.c:1851 gcc.c:1860 gcc.c:1870 gcc.c:1880 #, gcc-internal-format, gfc-internal-format msgid "specs %%rename syntax malformed after %ld characters" msgstr "некорректный ÑинтакÑÐ¸Ñ Ñпецификации %%rename поÑле %ld Ñимволов" -#: gcc.c:1889 +#: gcc.c:1890 #, gcc-internal-format, gfc-internal-format msgid "specs %s spec was not found to be renamed" msgstr "ÑÐ¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ %s, которую нужно переименовать, не найдена" -#: gcc.c:1896 +#: gcc.c:1897 #, fuzzy, gcc-internal-format msgid "%s: attempt to rename spec %qs to already defined spec %qs" msgstr "%s: попытка переименовать '%s в уже определённую Ñпецификацию '%s'" -#: gcc.c:1917 +#: gcc.c:1918 #, gcc-internal-format, gfc-internal-format msgid "specs unknown %% command after %ld characters" msgstr "Ð½ÐµÐ¾Ð¿Ð¾Ð·Ð½Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° %% поÑле %ld Ñимволов" -#: gcc.c:1928 gcc.c:1941 +#: gcc.c:1929 gcc.c:1942 #, gcc-internal-format, gfc-internal-format msgid "specs file malformed after %ld characters" msgstr "ÑинтакÑÐ¸Ñ Ñ„Ð°Ð¹Ð»Ð° Ñпецификаций нарушен поÑле %ld Ñимволов" -#: gcc.c:1993 +#: gcc.c:1994 #, gcc-internal-format msgid "spec file has no spec for linking" msgstr "в файле Ñпецификаций отÑутÑтвует ÑÐ¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð´Ð»Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²ÐºÐ¸" -#: gcc.c:2538 +#: gcc.c:2539 #, fuzzy, gcc-internal-format msgid "system path %qs is not absolute" msgstr "путь '%s' в файловой ÑиÑтеме не ÑвлÑетÑÑ Ð°Ð±Ñолютным" -#: gcc.c:2626 +#: gcc.c:2627 #, gcc-internal-format msgid "-pipe not supported" msgstr "ключ -pipe не поддерживаетÑÑ" -#: gcc.c:2788 +#: gcc.c:2789 #, fuzzy, gcc-internal-format msgid "failed to get exit status: %m" msgstr "не удалоÑÑŒ получить код возврата" -#: gcc.c:2794 +#: gcc.c:2795 #, fuzzy, gcc-internal-format msgid "failed to get process times: %m" msgstr "не удалоÑÑŒ вычиÑлить Ð²Ñ€ÐµÐ¼Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸" -#: gcc.c:2820 +#: gcc.c:2821 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "%s (program %s)" msgstr "программы: %s\n" -#: gcc.c:3251 opts-common.c:986 opts-common.c:1058 +#: gcc.c:3252 opts-common.c:1019 opts-common.c:1091 #, fuzzy, gcc-internal-format msgid "unrecognized command line option %qs" msgstr "некорректный ключ \"%s\"" -#: gcc.c:3506 +#: gcc.c:3507 #, gcc-internal-format msgid "%qs is an unknown -save-temps option" msgstr "" -#: gcc.c:3967 +#: gcc.c:3968 #, fuzzy, gcc-internal-format msgid "-pipe ignored because -save-temps specified" msgstr "предупреждение: ключ -pipe игнорируетÑÑ, Ñ‚.к. задан ключ -save-temps" -#: gcc.c:4055 +#: gcc.c:4056 #, fuzzy, gcc-internal-format msgid "%<-x %s%> after last input file has no effect" msgstr "предупреждение: '-x %s' не имеет ÑмыÑла за поÑледним входным файлом" -#: gcc.c:4217 +#: gcc.c:4218 #, gcc-internal-format msgid "unable to locate default linker script %qs in the library search paths" msgstr "" -#: gcc.c:4421 +#: gcc.c:4422 #, fuzzy, gcc-internal-format msgid "switch %qs does not start with %<-%>" msgstr "ключ '%s' не начинаетÑÑ Ñ '-'" -#: gcc.c:4424 +#: gcc.c:4425 #, gcc-internal-format msgid "spec-generated switch is just %<-%>" msgstr "" -#: gcc.c:4515 +#: gcc.c:4516 #, gcc-internal-format, gfc-internal-format msgid "could not open temporary response file %s" msgstr "не удалоÑÑŒ открыть временный файл ответа %s" -#: gcc.c:4521 +#: gcc.c:4522 #, gcc-internal-format, gfc-internal-format msgid "could not write to temporary response file %s" msgstr "не удалоÑÑŒ запиÑать во временный файл ответа %s" -#: gcc.c:4527 +#: gcc.c:4528 #, gcc-internal-format, gfc-internal-format msgid "could not close temporary response file %s" msgstr "не удалоÑÑŒ закрыть временный файл ответа %s" -#: gcc.c:4650 +#: gcc.c:4651 #, fuzzy, gcc-internal-format msgid "spec %qs invalid" msgstr "ÑÐ¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ '%s' некорректна" -#: gcc.c:4799 +#: gcc.c:4800 #, fuzzy, gcc-internal-format msgid "spec %qs has invalid %<%%0%c%>" msgstr "ÑÐ¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ '%s' имеет некорректный '%%0%c'" -#: gcc.c:5118 +#: gcc.c:5119 #, fuzzy, gcc-internal-format msgid "spec %qs has invalid %<%%W%c%>" msgstr "ÑÐ¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ '%s' имеет некорректный '%%W%c'" -#: gcc.c:5140 +#: gcc.c:5141 #, fuzzy, gcc-internal-format msgid "spec %qs has invalid %<%%x%c%>" msgstr "ÑÐ¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ '%s' имеет некорректный '%%x%c'" @@ -15105,222 +15063,221 @@ msgstr "ÑÐ¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ '%s' имеет некорректный '%%x%c #. Catch the case where a spec string contains something like #. '%{foo:%*}'. i.e. there is no * in the pattern on the left #. hand side of the :. -#: gcc.c:5341 +#: gcc.c:5342 #, fuzzy, gcc-internal-format msgid "spec failure: %<%%*%> has not been initialized by pattern match" msgstr "ошибка Ñпецификации: Ñлемент '%%*' не инициализирован при ÑопоÑтавлении" -#: gcc.c:5384 +#: gcc.c:5385 #, fuzzy, gcc-internal-format msgid "spec failure: unrecognized spec option %qc" msgstr "ошибка Ñпецификации: неопознанный ключ '%c'" -#: gcc.c:5446 +#: gcc.c:5447 #, fuzzy, gcc-internal-format msgid "unknown spec function %qs" msgstr "неизвеÑÑ‚Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ '%s' в Ñпецификации" -#: gcc.c:5476 +#: gcc.c:5477 #, fuzzy, gcc-internal-format msgid "error in args to spec function %qs" msgstr "ошибка в аргументах spec-функции '%s'" -#: gcc.c:5527 +#: gcc.c:5528 #, gcc-internal-format msgid "malformed spec function name" msgstr "некорректное Ð¸Ð¼Ñ spec-функции" #. ) -#: gcc.c:5530 +#: gcc.c:5531 #, gcc-internal-format msgid "no arguments for spec function" msgstr "не заданы аргументы spec-функции" -#: gcc.c:5549 +#: gcc.c:5550 #, gcc-internal-format msgid "malformed spec function arguments" msgstr "некорректные аргументы spec-функции" -#: gcc.c:5810 +#: gcc.c:5811 #, fuzzy, gcc-internal-format msgid "braced spec %qs is invalid at %qc" msgstr "ошибка в Ñпецификации '%s' в Ñкобках на Ñимволе '%c'" -#: gcc.c:5898 +#: gcc.c:5899 #, fuzzy, gcc-internal-format msgid "braced spec body %qs is invalid" msgstr "ошибка в Ñпецификации '%s' в Ñкобках" -#: gcc.c:6151 +#: gcc.c:6152 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "%s: could not determine length of compare-debug file %s" msgstr "не удалоÑÑŒ запиÑать файл отзыва %s" -#: gcc.c:6162 +#: gcc.c:6163 #, gcc-internal-format, gfc-internal-format msgid "%s: -fcompare-debug failure (length)" msgstr "" -#: gcc.c:6172 gcc.c:6213 +#: gcc.c:6173 gcc.c:6214 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "%s: could not open compare-debug file %s" msgstr "%s:ошибка Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð²Ñ‹Ñ…Ð¾Ð´Ð½Ð¾Ð³Ð¾ файла '%s'\n" -#: gcc.c:6192 gcc.c:6229 +#: gcc.c:6193 gcc.c:6230 #, gcc-internal-format, gfc-internal-format msgid "%s: -fcompare-debug failure" msgstr "" -#: gcc.c:6304 +#: gcc.c:6305 #, fuzzy, gcc-internal-format msgid "atexit failed" msgstr "ошибка в pex_init" -#: gcc.c:6453 +#: gcc.c:6454 #, gcc-internal-format msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC" msgstr "ошибка Ñпецификации: задано более одного аргумента Ð´Ð»Ñ SYSROOT_SUFFIX_SPEC" -#: gcc.c:6477 +#: gcc.c:6478 #, gcc-internal-format msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC" msgstr "ошибка Ñпецификации: задано более одного аргумента Ð´Ð»Ñ SYSROOT_HEADERS_SUFFIX_SPEC" -#: gcc.c:6643 +#: gcc.c:6645 #, fuzzy, gcc-internal-format msgid "unrecognized command line option %<-%s%>" msgstr "некорректный ключ \"%s\"" #. The error status indicates that only one set of fixed #. headers should be built. -#: gcc.c:6729 +#: gcc.c:6731 #, gcc-internal-format msgid "not configured with sysroot headers suffix" msgstr "ÑÑƒÑ„Ñ„Ð¸ÐºÑ ÑиÑтемных заголовков не Ñконфигурирован" -#: gcc.c:6812 +#: gcc.c:6814 #, gcc-internal-format msgid "no input files" msgstr "не заданы входные файлы" -#: gcc.c:6861 +#: gcc.c:6863 #, fuzzy, gcc-internal-format msgid "cannot specify -o with -c, -S or -E with multiple files" msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать -o Ñ -c или -S и неÑколькими файлами" -#: gcc.c:6891 +#: gcc.c:6893 #, gcc-internal-format, gfc-internal-format msgid "%s: %s compiler not installed on this system" msgstr "%s: компилÑтор %s не уÑтановлен" -#: gcc.c:6913 +#: gcc.c:6915 #, gcc-internal-format msgid "recompiling with -fcompare-debug" msgstr "" -#: gcc.c:6929 +#: gcc.c:6931 #, gcc-internal-format msgid "during -fcompare-debug recompilation" msgstr "" -#: gcc.c:6938 +#: gcc.c:6940 #, fuzzy, gcc-internal-format msgid "comparing final insns dumps" msgstr "результат ÑÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ - вÑегда %d" -#: gcc.c:7044 +#: gcc.c:7046 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "-fuse-linker-plugin, but %s not found" msgstr "нет Ð¿Ð¾Ð»Ñ %qs" -#: gcc.c:7076 +#: gcc.c:7079 #, gcc-internal-format, gfc-internal-format msgid "%s: linker input file unused because linking not done" msgstr "%s: входные файлы компоновки не иÑпользованы, поÑкольку компоновка не выполнÑлаÑÑŒ" -#: gcc.c:7117 +#: gcc.c:7120 #, gcc-internal-format, gfc-internal-format msgid "language %s not recognized" msgstr "некорректное задание Ñзыка %s" -#: gcc.c:7344 +#: gcc.c:7347 #, fuzzy, gcc-internal-format msgid "multilib spec %qs is invalid" msgstr "опиÑание мультибиблиотеки '%s' некорректно" -#: gcc.c:7538 +#: gcc.c:7541 #, fuzzy, gcc-internal-format msgid "multilib exclusions %qs is invalid" msgstr "иÑÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ '%s' в мультибиблиотеке некорректны" -#: gcc.c:7602 +#: gcc.c:7605 #, fuzzy, gcc-internal-format msgid "multilib select %qs %qs is invalid" msgstr "выбор мультибиблиотеки '%s' некорректен" -#: gcc.c:7758 +#: gcc.c:7761 #, fuzzy, gcc-internal-format msgid "multilib select %qs is invalid" msgstr "выбор мультибиблиотеки '%s' некорректен" -#: gcc.c:7797 +#: gcc.c:7800 #, fuzzy, gcc-internal-format msgid "multilib exclusion %qs is invalid" msgstr "иÑключение '%s' в мультибиблиотеке некорректно" -#: gcc.c:8003 +#: gcc.c:8006 #, fuzzy, gcc-internal-format msgid "environment variable %qs not defined" msgstr "Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ \"%s\" не определена" -#: gcc.c:8115 gcc.c:8120 +#: gcc.c:8118 gcc.c:8123 #, fuzzy, gcc-internal-format msgid "invalid version number %qs" msgstr "некорректный номер верÑии '%s'" -#: gcc.c:8163 +#: gcc.c:8166 #, gcc-internal-format, gfc-internal-format msgid "too few arguments to %%:version-compare" msgstr "Ñлишком мало аргументов в %%:version-compare" -#: gcc.c:8169 +#: gcc.c:8172 #, gcc-internal-format, gfc-internal-format msgid "too many arguments to %%:version-compare" msgstr "Ñлишком много аргументов в %%:version-compare" -#: gcc.c:8210 +#: gcc.c:8213 #, fuzzy, gcc-internal-format msgid "unknown operator %qs in %%:version-compare" msgstr "ÐеизвеÑтный оператор '%s' в %%:version-compare" -#: gcc.c:8333 +#: gcc.c:8336 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "too many arguments to %%:compare-debug-dump-opt" msgstr "Ñлишком много аргументов в %%:version-compare" -#: gcc.c:8405 +#: gcc.c:8408 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "too many arguments to %%:compare-debug-self-opt" msgstr "Ñлишком много аргументов в %%:version-compare" -#: gcc.c:8440 +#: gcc.c:8443 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "too few arguments to %%:compare-debug-auxbase-opt" msgstr "Ñлишком мало аргументов в %%:version-compare" -#: gcc.c:8443 +#: gcc.c:8446 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "too many arguments to %%:compare-debug-auxbase-opt" msgstr "Ñлишком много аргументов в %%:version-compare" -#: gcc.c:8450 +#: gcc.c:8453 #, gcc-internal-format, gfc-internal-format msgid "argument to %%:compare-debug-auxbase-opt does not end in .gk" msgstr "" -#: gcc.c:8524 +#: gcc.c:8527 #, fuzzy, gcc-internal-format, gfc-internal-format -#| msgid "too few arguments to function" msgid "too few arguments to %%:replace-extension" msgstr "Ñлишком мало аргументов функции" @@ -15340,13 +15297,13 @@ msgstr "ошибка Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ð¾Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² PCH файле: %m" msgid "can%'t write padding to PCH file: %m" msgstr "ошибка запиÑи Ð·Ð°Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»Ñ Ð² PCH файл: %m" -#: ggc-common.c:615 ggc-common.c:623 ggc-common.c:630 ggc-common.c:633 -#: ggc-common.c:643 ggc-common.c:646 ggc-page.c:2439 +#: ggc-common.c:681 ggc-common.c:689 ggc-common.c:696 ggc-common.c:699 +#: ggc-common.c:709 ggc-common.c:712 ggc-page.c:2439 #, fuzzy, gcc-internal-format msgid "can%'t read PCH file: %m" msgstr "ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ PCH файла: %m" -#: ggc-common.c:638 +#: ggc-common.c:704 #, gcc-internal-format msgid "had to relocate PCH" msgstr "пришлоÑÑŒ перемеÑтить PCH" @@ -15498,7 +15455,7 @@ msgstr "" #. Fatal error here. We do not want to support compiling ltrans units with #. different version of compiler or different flags than the WPA unit, so #. this should never happen. -#: ipa-reference.c:1148 +#: ipa-reference.c:1146 #, gcc-internal-format msgid "ipa reference summary is missing in ltrans unit" msgstr "" @@ -15690,27 +15647,27 @@ msgstr "" msgid "invalid branch to/from an OpenMP structured block" msgstr " входит в try-блок" -#: opts-common.c:997 +#: opts-common.c:1030 #, gcc-internal-format msgid "command line option %qs is not supported by this configuration" msgstr "ключ %qs Ð´Ð»Ñ Ñтой конфигурации не поддерживаетÑÑ" -#: opts-common.c:1007 +#: opts-common.c:1040 #, fuzzy, gcc-internal-format msgid "missing argument to %qs" msgstr "отÑутÑтвует аргумент Ð´Ð»Ñ \"%s\"" -#: opts-common.c:1013 +#: opts-common.c:1046 #, fuzzy, gcc-internal-format msgid "argument to %qs should be a non-negative integer" msgstr "аргумент \"%s\" должен быть неотрицательным целым чиÑлом" -#: opts-common.c:1028 +#: opts-common.c:1061 #, fuzzy, gcc-internal-format msgid "unrecognized argument in option %qs" msgstr "некорректный ключ \"%s\"" -#: opts-common.c:1044 +#: opts-common.c:1077 #, fuzzy, gcc-internal-format msgid "valid arguments to %qs are: %s" msgstr "некорректный аргумент атрибута %qs" @@ -15766,137 +15723,137 @@ msgstr "" msgid "%<-femit-struct-debug-detailed=dir:...%> must allow at least as much as %<-femit-struct-debug-detailed=ind:...%>" msgstr "" -#: opts.c:542 +#: opts.c:544 #, fuzzy, gcc-internal-format msgid "argument to %<-O%> should be a non-negative integer, %<g%>, %<s%> or %<fast%>" msgstr "аргумент \"%s\" должен быть неотрицательным целым чиÑлом" -#: opts.c:669 +#: opts.c:672 #, gcc-internal-format msgid "section anchors must be disabled when unit-at-a-time is disabled" msgstr "" -#: opts.c:673 +#: opts.c:676 #, gcc-internal-format msgid "toplevel reorder must be disabled when unit-at-a-time is disabled" msgstr "" -#: opts.c:679 +#: opts.c:682 #, fuzzy, gcc-internal-format msgid "transactional memory is not supported with non-call exceptions" msgstr "-m%s в данной конфигурации не поддерживаетÑÑ" -#: opts.c:694 +#: opts.c:697 #, gcc-internal-format msgid "section anchors must be disabled when toplevel reorder is disabled" msgstr "" -#: opts.c:729 config/darwin.c:3061 config/sh/sh.c:936 +#: opts.c:732 config/darwin.c:3061 config/sh/sh.c:933 #, fuzzy, gcc-internal-format msgid "-freorder-blocks-and-partition does not work with exceptions on this architecture" msgstr "-freorder-blocks-and-partition не работает Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¹ архитектуры" -#: opts.c:744 config/sh/sh.c:944 +#: opts.c:747 config/sh/sh.c:941 #, fuzzy, gcc-internal-format msgid "-freorder-blocks-and-partition does not support unwind info on this architecture" msgstr "-freorder-blocks-and-partition не работает Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¹ архитектуры" -#: opts.c:761 config/pa/pa.c:526 +#: opts.c:764 config/pa/pa.c:526 #, gcc-internal-format msgid "-freorder-blocks-and-partition does not work on this architecture" msgstr "-freorder-blocks-and-partition не работает Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¹ архитектуры" -#: opts.c:797 +#: opts.c:800 #, gcc-internal-format msgid "-fno-fat-lto-objects are supported only with linker plugin." msgstr "" -#: opts.c:805 +#: opts.c:808 #, gcc-internal-format msgid "only one -flto-partition value can be specified" msgstr "" -#: opts.c:816 +#: opts.c:819 #, fuzzy, gcc-internal-format msgid "%<-fsplit-stack%> is not supported by this compiler configuration" msgstr "%s Ð´Ð»Ñ Ñтой конфигурации не поддерживаетÑÑ" -#: opts.c:1193 +#: opts.c:1196 #, gcc-internal-format msgid "unrecognized include_flags 0x%x passed to print_specific_help" msgstr "" -#: opts.c:1373 +#: opts.c:1376 #, gcc-internal-format msgid "--help argument %q.*s is ambiguous, please be more specific" msgstr "" -#: opts.c:1382 +#: opts.c:1385 #, fuzzy, gcc-internal-format msgid "unrecognized argument to --help= option: %q.*s" msgstr "предупреждение: неизвеÑтный аргумент ключа --help=: %.*s\n" -#: opts.c:1547 +#: opts.c:1550 #, gcc-internal-format, gfc-internal-format msgid "structure alignment must be a small power of two, not %d" msgstr "выравнивание Ñтруктуры должно быть небольшой Ñтепенью двойки, а не %d" -#: opts.c:1664 +#: opts.c:1667 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "unknown stack check parameter \"%s\"" msgstr "параметр %q+D не иÑпользуетÑÑ" -#: opts.c:1701 +#: opts.c:1704 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "dwarf version %d is not supported" msgstr "выражение Ð´Ð»Ñ Ð³Ñ€Ð°Ð½Ð¸Ñ†Ñ‹ Ñтека не поддерживаетÑÑ" -#: opts.c:1791 +#: opts.c:1794 #, gcc-internal-format, gfc-internal-format msgid "%s: --param arguments should be of the form NAME=VALUE" msgstr "%s: аргументы --param должны иметь вид ИМЯ=ЗÐÐЧЕÐИЕ" -#: opts.c:1797 +#: opts.c:1800 #, gcc-internal-format msgid "invalid --param value %qs" msgstr "некорректное значение ключа --param %qs" -#: opts.c:1915 +#: opts.c:1918 #, gcc-internal-format msgid "target system does not support debug output" msgstr "Ñ†ÐµÐ»ÐµÐ²Ð°Ñ Ð¿Ð»Ð°Ñ‚Ñ„Ð¾Ñ€Ð¼Ð° не поддерживает вывод отладочной информации" -#: opts.c:1924 +#: opts.c:1927 #, gcc-internal-format, gfc-internal-format msgid "debug format \"%s\" conflicts with prior selection" msgstr "отладочный формат \"%s\" противоречит предыдущему выбору" -#: opts.c:1940 +#: opts.c:1943 #, gcc-internal-format, gfc-internal-format msgid "unrecognised debug output level \"%s\"" msgstr "некорректный уровень отладочной информации \"%s\"" -#: opts.c:1942 +#: opts.c:1945 #, gcc-internal-format, gfc-internal-format msgid "debug output level %s is too high" msgstr "уровень отладочной информации %s Ñлишком выÑок" -#: opts.c:1962 +#: opts.c:1965 #, gcc-internal-format msgid "getting core file size maximum limit: %m" msgstr "иÑходный макÑимальный размер core-файла: %m" -#: opts.c:1965 +#: opts.c:1968 #, gcc-internal-format msgid "setting core file size limit to maximum: %m" msgstr "уÑтановлен макÑимальный размер core-файла: %m" -#: opts.c:2010 +#: opts.c:2013 #, gcc-internal-format, gfc-internal-format msgid "unrecognized gcc debugging option: %c" msgstr "некорректный ключ отладки: %c" -#: opts.c:2036 +#: opts.c:2039 #, gcc-internal-format, gfc-internal-format msgid "-Werror=%s: no option -%s" msgstr "" @@ -16157,8 +16114,8 @@ msgid "can%'t use %qs as a fixed register" msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать '%s' как %s региÑÑ‚Ñ€" #: reginfo.c:750 config/ia64/ia64.c:5897 config/ia64/ia64.c:5904 -#: config/pa/pa.c:428 config/pa/pa.c:435 config/sh/sh.c:9362 -#: config/sh/sh.c:9369 config/spu/spu.c:4908 config/spu/spu.c:4915 +#: config/pa/pa.c:428 config/pa/pa.c:435 config/sh/sh.c:9359 +#: config/sh/sh.c:9366 config/spu/spu.c:4908 config/spu/spu.c:4915 #, gcc-internal-format, gfc-internal-format msgid "unknown register name: %s" msgstr "неизвеÑтное Ð¸Ð¼Ñ Ñ€ÐµÐ³Ð¸Ñтра: %s" @@ -16238,42 +16195,42 @@ msgstr "ограничитель операнда %<asm%> не ÑоглаÑÑƒÐµÑ msgid "output operand is constant in %<asm%>" msgstr "выходной операнд %<asm%> - конÑтанта" -#: rtl.c:738 +#: rtl.c:742 #, gcc-internal-format, gfc-internal-format msgid "RTL check: access of elt %d of '%s' with last elt %d in %s, at %s:%d" msgstr "RTL: доÑтуп к Ñл-ту %d '%s' поÑледним Ñлементом %d; Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ %s, в %s:%d" -#: rtl.c:748 +#: rtl.c:752 #, gcc-internal-format, gfc-internal-format msgid "RTL check: expected elt %d type '%c', have '%c' (rtx %s) in %s, at %s:%d" msgstr "RTL: ожидалÑÑ Ñл-Ñ‚ %d типа '%c', имеетÑÑ '%c' (rtx %s); Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ %s, в %s:%d" -#: rtl.c:758 +#: rtl.c:762 #, gcc-internal-format, gfc-internal-format msgid "RTL check: expected elt %d type '%c' or '%c', have '%c' (rtx %s) in %s, at %s:%d" msgstr "RTL: ожидалÑÑ Ñл-Ñ‚ %d типа '%c' или '%c', имеетÑÑ '%c' (rtx %s); Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ %s, в %s:%d" -#: rtl.c:767 +#: rtl.c:771 #, gcc-internal-format, gfc-internal-format msgid "RTL check: expected code '%s', have '%s' in %s, at %s:%d" msgstr "RTL: ожидалÑÑ ÐºÐ¾Ð´ '%s', обнаружено '%s'; Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ %s, в %s:%d" -#: rtl.c:777 +#: rtl.c:781 #, gcc-internal-format, gfc-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:804 +#: rtl.c:808 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "RTL check: attempt to treat non-block symbol as a block symbol in %s, at %s:%d" msgstr "RTL: доÑтуп к Ñл-ту %d '%s' поÑледним Ñлементом %d; Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ %s, в %s:%d" -#: rtl.c:814 +#: rtl.c:818 #, gcc-internal-format, gfc-internal-format msgid "RTL check: access of elt %d of vector with last elt %d in %s, at %s:%d" msgstr "RTL: доÑтуп к Ñл-ту %d вектора Ñ Ñ‡Ð¸Ñлом Ñл-тов %d; Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ %s, в %s:%d" -#: rtl.c:825 +#: rtl.c:829 #, gcc-internal-format, gfc-internal-format msgid "RTL flag check: %s used with unexpected rtx code '%s' in %s, at %s:%d" msgstr "RTL флаги: %s иÑпользован Ñ Ð½ÐµÐ¿Ð¾Ð´Ñ…Ð¾Ð´Ñщим rtx-кодом '%s' в %s, в %s:%d" @@ -16510,7 +16467,6 @@ msgstr "" #: symtab.c:686 #, fuzzy, gcc-internal-format -#| msgid "verify_cgraph_node failed" msgid "verify_symtab_node failed" msgstr "процедура verify_cgraph_node выÑвила ошибки" @@ -16706,7 +16662,6 @@ msgstr "Ð´Ð»Ñ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð¾Ð³Ð¾ Ñ„Ð¾Ñ€Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° Ñ€ #: toplev.c:1547 #, fuzzy, gcc-internal-format -#| msgid "-fdata-sections not supported for this target" msgid "-fsanitize=address not supported for this target" msgstr "-fdata-sections не поддерживаетÑÑ Ð´Ð»Ñ Ñтой целевой машины" @@ -16730,7 +16685,7 @@ msgstr "Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ ÑÐ¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð±Ð°Ð·Ð¾Ð²Ð¾Ð³Ð¾ клРmsgid "%<transaction_may_cancel_outer%> function call not within outer transaction or %<transaction_may_cancel_outer%>" msgstr "" -#: trans-mem.c:676 trans-mem.c:4569 +#: trans-mem.c:676 trans-mem.c:4570 #, gcc-internal-format msgid "unsafe function call %qD within atomic transaction" msgstr "" @@ -16745,7 +16700,7 @@ msgstr "" msgid "unsafe indirect function call within atomic transaction" msgstr "inline-функции, переопределённые как extern, не подлежат подÑтановке" -#: trans-mem.c:694 trans-mem.c:4502 +#: trans-mem.c:694 trans-mem.c:4503 #, gcc-internal-format msgid "unsafe function call %qD within %<transaction_safe%> function" msgstr "" @@ -16760,7 +16715,7 @@ msgstr "" msgid "unsafe indirect function call within %<transaction_safe%> function" msgstr "" -#: trans-mem.c:719 trans-mem.c:4541 +#: trans-mem.c:719 trans-mem.c:4542 #, fuzzy, gcc-internal-format msgid "asm not allowed in atomic transaction" msgstr "проÑтранÑтво имён %qD не допуÑкаетÑÑ Ð² using-декларации" @@ -16795,7 +16750,7 @@ msgstr "" msgid "outer transaction in %<transaction_safe%> function" msgstr "" -#: trans-mem.c:4169 +#: trans-mem.c:4170 #, fuzzy, gcc-internal-format msgid "%Kasm not allowed in %<transaction_safe%> function" msgstr "атрибуты не допуÑкаютÑÑ Ð¿Ñ€Ð¸ определении функции" @@ -16845,7 +16800,7 @@ msgstr "ASSERT_EXPR Ñ Ñ‚Ð¾Ð¶Ð´ÐµÑтвенно ложным уÑловием" msgid "MODIFY_EXPR not expected while having tuples" msgstr "" -#: tree-cfg.c:2613 tree-ssa.c:879 +#: tree-cfg.c:2613 tree-ssa.c:876 #, gcc-internal-format msgid "address taken, but ADDRESSABLE bit not set" msgstr "Ð°Ð´Ñ€ÐµÑ Ð±Ñ‹Ð» взÑÑ‚, а бит ADDRESSABLE не уÑтановлен" @@ -17262,13 +17217,11 @@ msgstr "некорректный операнд Ð´Ð»Ñ ÐºÐ¾Ð´Ð° %%s" #: tree-cfg.c:4109 #, fuzzy, gcc-internal-format -#| msgid "%<default%> label not within a switch statement" msgid "invalid default case label in switch statement" msgstr "метка %<default%> вне оператора switch" #: tree-cfg.c:4121 #, fuzzy, gcc-internal-format -#| msgid "case label not within a switch statement" msgid "invalid case label in switch statement" msgstr "case-метка вне оператора switch" @@ -17279,19 +17232,16 @@ msgstr "некорректный операнд Ð´Ð»Ñ ÐºÐ¾Ð´Ð° %%s" #: tree-cfg.c:4138 #, fuzzy, gcc-internal-format -#| msgid "case label not within a switch statement" msgid "type mismatch for case label in switch statement" msgstr "case-метка вне оператора switch" #: tree-cfg.c:4148 #, fuzzy, gcc-internal-format -#| msgid "case label not within a switch statement" msgid "type precision mismatch in switch statement" msgstr "case-метка вне оператора switch" #: tree-cfg.c:4157 #, fuzzy, gcc-internal-format -#| msgid "case label not within a switch statement" msgid "case labels not sorted in switch statement" msgstr "case-метка вне оператора switch" @@ -17335,7 +17285,7 @@ msgstr "некорректный тип аргумента" msgid "incompatible types in PHI argument %u" msgstr "неÑовмеÑтимые типы в приÑваивании" -#: tree-cfg.c:4433 tree-cfg.c:4727 +#: tree-cfg.c:4433 tree-cfg.c:4738 #, fuzzy, gcc-internal-format msgid "verify_gimple failed" msgstr "процедура verify_stmts выÑвила ошибки" @@ -17350,150 +17300,148 @@ msgstr "" msgid "location references block not in block tree" msgstr "" -#: tree-cfg.c:4594 +#: tree-cfg.c:4605 #, fuzzy, gcc-internal-format msgid "gimple_bb (phi) is set to a wrong basic block" msgstr "bb_for_stmt (phi) указывает не на тот блок" -#: tree-cfg.c:4603 +#: tree-cfg.c:4614 #, fuzzy, gcc-internal-format -#| msgid "from this location" msgid "PHI node with location" msgstr "в Ñтом меÑте" -#: tree-cfg.c:4614 tree-cfg.c:4663 +#: tree-cfg.c:4625 tree-cfg.c:4674 #, gcc-internal-format msgid "incorrect sharing of tree nodes" msgstr "недопуÑтимое разделение узлов дерева" -#: tree-cfg.c:4622 +#: tree-cfg.c:4633 #, gcc-internal-format msgid "virtual PHI with argument locations" msgstr "" -#: tree-cfg.c:4651 +#: tree-cfg.c:4662 #, fuzzy, gcc-internal-format msgid "gimple_bb (stmt) is set to a wrong basic block" msgstr "bb_for_stmt (stmt) указывает не на тот блок" -#: tree-cfg.c:4687 +#: tree-cfg.c:4698 #, fuzzy, gcc-internal-format msgid "in statement" msgstr "ожидалÑÑ Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€" -#: tree-cfg.c:4702 +#: tree-cfg.c:4713 #, gcc-internal-format msgid "statement marked for throw, but doesn%'t" msgstr "оператор помечен как throw, но не ÑвлÑетÑÑ Ñ‚Ð°ÐºÐ¾Ð²Ñ‹Ð¼" -#: tree-cfg.c:4709 +#: tree-cfg.c:4720 #, gcc-internal-format msgid "statement marked for throw in middle of block" msgstr "оператор помечен как throw в Ñередине блока" -#: tree-cfg.c:4751 +#: tree-cfg.c:4762 #, fuzzy, gcc-internal-format msgid "ENTRY_BLOCK has IL associated with it" msgstr "Ñ ENTRY_BLOCK аÑÑоциирован ÑпиÑок операторов" -#: tree-cfg.c:4757 +#: tree-cfg.c:4768 #, fuzzy, gcc-internal-format msgid "EXIT_BLOCK has IL associated with it" msgstr "Ñ EXIT_BLOCK аÑÑоциирован ÑпиÑок операторов" -#: tree-cfg.c:4764 +#: tree-cfg.c:4775 #, gcc-internal-format, gfc-internal-format msgid "fallthru to exit from bb %d" msgstr "Ñквозной выход из блока %d" -#: tree-cfg.c:4788 +#: tree-cfg.c:4799 #, gcc-internal-format msgid "nonlocal label " msgstr "" -#: tree-cfg.c:4797 +#: tree-cfg.c:4808 #, gcc-internal-format msgid "EH landing pad label " msgstr "" -#: tree-cfg.c:4806 tree-cfg.c:4815 tree-cfg.c:4840 +#: tree-cfg.c:4817 tree-cfg.c:4826 tree-cfg.c:4851 #, gcc-internal-format msgid "label " msgstr "" -#: tree-cfg.c:4830 +#: tree-cfg.c:4841 #, gcc-internal-format, gfc-internal-format msgid "control flow in the middle of basic block %d" msgstr "инÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÐ¾Ð¼ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð²Ð½ÑƒÑ‚Ñ€Ð¸ блока %d" -#: tree-cfg.c:4863 +#: tree-cfg.c:4874 #, gcc-internal-format, gfc-internal-format msgid "fallthru edge after a control statement in bb %d" msgstr "ÑÐºÐ²Ð¾Ð·Ð½Ð°Ñ Ð´ÑƒÐ³Ð° поÑле оператора ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² блоке %d" -#: tree-cfg.c:4876 +#: tree-cfg.c:4887 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "true/false edge after a non-GIMPLE_COND in bb %d" msgstr "дуга true/false поÑле не COND_EXPR в блоке %d" -#: tree-cfg.c:4899 tree-cfg.c:4921 tree-cfg.c:4938 tree-cfg.c:5007 +#: tree-cfg.c:4910 tree-cfg.c:4932 tree-cfg.c:4949 tree-cfg.c:5018 #, gcc-internal-format, gfc-internal-format msgid "wrong outgoing edge flags at end of bb %d" msgstr "некорректные флаги выходной дуги в конце блока %d" -#: tree-cfg.c:4909 +#: tree-cfg.c:4920 #, gcc-internal-format, gfc-internal-format msgid "explicit goto at end of bb %d" msgstr "Ñвный переход goto в конце блока %d" -#: tree-cfg.c:4943 +#: tree-cfg.c:4954 #, gcc-internal-format, gfc-internal-format msgid "return edge does not point to exit in bb %d" msgstr "дуга return не указывает на конец блока %d" -#: tree-cfg.c:4973 +#: tree-cfg.c:4984 #, fuzzy, gcc-internal-format msgid "found default case not at the start of case vector" msgstr "Ñлучай default - не в конце case-вектора" -#: tree-cfg.c:4981 +#: tree-cfg.c:4992 #, fuzzy, gcc-internal-format msgid "case labels not sorted: " msgstr "case-метки не отÑортированы" -#: tree-cfg.c:4998 +#: tree-cfg.c:5009 #, gcc-internal-format, gfc-internal-format msgid "extra outgoing edge %d->%d" msgstr "лишнÑÑ Ð¸ÑходÑÑ‰Ð°Ñ Ð´ÑƒÐ³Ð° %d->%d" -#: tree-cfg.c:5021 +#: tree-cfg.c:5032 #, gcc-internal-format, gfc-internal-format msgid "missing edge %i->%i" msgstr "отÑутÑтвует дуга %i->%i" -#: tree-cfg.c:7803 +#: tree-cfg.c:7814 #, fuzzy, gcc-internal-format msgid "%<noreturn%> function does return" msgstr "%Hвыход из функции Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¾Ð¼ %<noreturn%>" -#: tree-cfg.c:7823 +#: tree-cfg.c:7834 #, fuzzy, gcc-internal-format msgid "control reaches end of non-void function" msgstr "%Hуправление доÑтигает конца не-void функции" -#: tree-cfg.c:7963 +#: tree-cfg.c:7974 #, fuzzy, gcc-internal-format msgid "ignoring return value of %qD, declared with attribute warn_unused_result" msgstr "%Hрезультат %qD, декларированной Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¾Ð¼ warn_unused_result, игнорируетÑÑ" -#: tree-cfg.c:7968 +#: tree-cfg.c:7979 #, fuzzy, gcc-internal-format msgid "ignoring return value of function declared with attribute warn_unused_result" msgstr "%Hрезультат функции, декларированной Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¾Ð¼ warn_unused_result, игнорируетÑÑ" #: tree-diagnostic.c:202 #, fuzzy, gcc-internal-format -#| msgid "redefinition of %q+D" msgid "in definition of macro %qs" msgstr "переопределение %q+D" @@ -17502,122 +17450,122 @@ msgstr "переопределение %q+D" msgid "in expansion of macro %qs" msgstr "" -#: tree-eh.c:4368 +#: tree-eh.c:4396 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "BB %i has multiple EH edges" msgstr "блок %i не может выдавать иÑключений, но имеет EH-дуги" -#: tree-eh.c:4380 +#: tree-eh.c:4408 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "BB %i can not throw but has an EH edge" msgstr "блок %i не может выдавать иÑключений, но имеет EH-дуги" -#: tree-eh.c:4388 +#: tree-eh.c:4416 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "BB %i last statement has incorrectly set lp" msgstr "в поÑледнем операторе блока %i некорректно уÑтановлен регион" -#: tree-eh.c:4394 +#: tree-eh.c:4422 #, gcc-internal-format, gfc-internal-format msgid "BB %i is missing an EH edge" msgstr "" -#: tree-eh.c:4400 +#: tree-eh.c:4428 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Incorrect EH edge %i->%i" msgstr "Ð½ÐµÐ½ÑƒÐ¶Ð½Ð°Ñ EH-дуга %i->%i" -#: tree-eh.c:4434 tree-eh.c:4453 +#: tree-eh.c:4462 tree-eh.c:4481 #, gcc-internal-format, gfc-internal-format msgid "BB %i is missing an edge" msgstr "" -#: tree-eh.c:4470 +#: tree-eh.c:4498 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "BB %i too many fallthru edges" msgstr "Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ RTL-инÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ Ð² Ñквозной дуге" -#: tree-eh.c:4479 +#: tree-eh.c:4507 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "BB %i has incorrect edge" msgstr "в поÑледнем операторе блока %i некорректно уÑтановлен регион" -#: tree-eh.c:4485 +#: tree-eh.c:4513 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "BB %i has incorrect fallthru edge" msgstr "Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ RTL-инÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ Ð² Ñквозной дуге" -#: tree-inline.c:3012 +#: tree-inline.c:3022 #, fuzzy, gcc-internal-format msgid "function %q+F can never be copied because it receives a non-local goto" msgstr "inline-подÑтановка функции %q+F невозможна, поÑкольку имеют нелокальные переходы в Ñту функцию" -#: tree-inline.c:3026 +#: tree-inline.c:3036 #, fuzzy, gcc-internal-format msgid "function %q+F can never be copied because it saves address of local label in a static variable" msgstr "inline-подÑтановка функции %q+F невозможна, поÑкольку Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¸Ñпользует переменные переменного размера" -#: tree-inline.c:3066 +#: tree-inline.c:3076 #, gcc-internal-format msgid "function %q+F can never be inlined because it uses alloca (override using the always_inline attribute)" msgstr "inline-подÑтановка функции %q+F невозможна, поÑкольку Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¸Ñпользует alloca (задайте атрибут always_inline)" -#: tree-inline.c:3080 +#: tree-inline.c:3090 #, gcc-internal-format msgid "function %q+F can never be inlined because it uses setjmp" msgstr "inline-подÑтановка функции %q+F невозможна, поÑкольку Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¸Ñпользует setjmp" -#: tree-inline.c:3094 +#: tree-inline.c:3104 #, gcc-internal-format msgid "function %q+F can never be inlined because it uses variable argument lists" msgstr "inline-подÑтановка функции %q+F невозможна, поÑкольку Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¸Ñпользует ÑпиÑки из переменного чиÑла аргументов" -#: tree-inline.c:3106 +#: tree-inline.c:3116 #, gcc-internal-format msgid "function %q+F can never be inlined because it uses setjmp-longjmp exception handling" msgstr "inline-подÑтановка функции %q+F невозможна, поÑкольку Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ñодержит обработку иÑключительных Ñитуаций setjmp-longjmp" -#: tree-inline.c:3114 +#: tree-inline.c:3124 #, gcc-internal-format msgid "function %q+F can never be inlined because it uses non-local goto" msgstr "inline-подÑтановка функции %q+F невозможна, поÑкольку Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¸Ñпользует не локальный goto" -#: tree-inline.c:3126 +#: tree-inline.c:3136 #, gcc-internal-format msgid "function %q+F can never be inlined because it uses __builtin_return or __builtin_apply_args" msgstr "inline-подÑтановка функции %q+F невозможна, поÑкольку Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¸Ñпользует __builtin_return или __builtin_apply_args" -#: tree-inline.c:3146 +#: tree-inline.c:3156 #, gcc-internal-format msgid "function %q+F can never be inlined because it contains a computed goto" msgstr "inline-подÑтановка функции %q+F невозможна, поÑкольку Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¸Ñпользует вычиÑлÑемый goto" -#: tree-inline.c:3249 +#: tree-inline.c:3259 #, gcc-internal-format msgid "function %q+F can never be inlined because it is suppressed using -fno-inline" msgstr "подÑтановка функций %q+F невозможна, Ñ‚.к. задан ключ -fno-inline" -#: tree-inline.c:3257 +#: tree-inline.c:3267 #, gcc-internal-format msgid "function %q+F can never be inlined because it uses attributes conflicting with inlining" msgstr "подÑтановка функции %q+F невозможна, Ñ‚.к. она имеет атрибуты, препÑÑ‚Ñтвующие inline-подÑтановке" -#: tree-inline.c:3842 +#: tree-inline.c:3852 #, fuzzy, gcc-internal-format msgid "inlining failed in call to always_inline %q+F: %s" msgstr "inline-подÑтановка при вызове %q+F не выполнена: %s" -#: tree-inline.c:3844 tree-inline.c:3859 +#: tree-inline.c:3854 tree-inline.c:3869 #, gcc-internal-format msgid "called from here" msgstr "ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð²Ñ‹Ð·Ð²Ð°Ð½Ð° здеÑÑŒ" -#: tree-inline.c:3857 +#: tree-inline.c:3867 #, gcc-internal-format msgid "inlining failed in call to %q+F: %s" msgstr "inline-подÑтановка при вызове %q+F не выполнена: %s" -#: tree-into-ssa.c:3209 tree-outof-ssa.c:774 tree-outof-ssa.c:831 +#: tree-into-ssa.c:3226 tree-outof-ssa.c:774 tree-outof-ssa.c:831 #: tree-ssa-coalesce.c:934 tree-ssa-live.c:1282 #, gcc-internal-format msgid "SSA corruption" @@ -17648,6 +17596,16 @@ msgstr "mudflap: Ñтот Ñзык не поддерживаетÑÑ" msgid "unimplemented functionality" msgstr "Ð½ÐµÑ€ÐµÐ°Ð»Ð¸Ð·Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¾Ð½Ð°Ð»ÑŒÐ½Ð¾ÑÑ‚ÑŒ" +#: tree-ssa-loop-niter.c:2557 +#, fuzzy, gcc-internal-format +msgid "iteration %E invokes undefined behavior" +msgstr "Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð½Ð°Ð´ %qE может дать неопределенный результат" + +#: tree-ssa-loop-niter.c:2559 +#, gcc-internal-format +msgid "containing loop" +msgstr "" + #: tree-ssa-operands.c:975 #, gcc-internal-format msgid "virtual definition of statement not up-to-date" @@ -17683,142 +17641,142 @@ msgstr "не задан номер операнда поÑле %%-буква" msgid "stmt volatile flag not up-to-date" msgstr "" -#: tree-ssa-uninit.c:1943 tree-ssa.c:1668 +#: tree-ssa-uninit.c:1946 tree-ssa.c:1665 #, fuzzy, gcc-internal-format msgid "%qD may be used uninitialized in this function" msgstr "%H%qD, возможно, иÑпользуетÑÑ Ð±ÐµÐ· инициализации в данной функции" -#: tree-ssa.c:625 +#: tree-ssa.c:622 #, gcc-internal-format msgid "expected an SSA_NAME object" msgstr "ожидалÑÑ Ð¾Ð±ÑŠÐµÐºÑ‚ SSA_NAME" -#: tree-ssa.c:631 +#: tree-ssa.c:628 #, gcc-internal-format msgid "found an SSA_NAME that had been released into the free pool" msgstr "найден объект SSA_NAME, помещенный в пул Ñвободной памÑти" -#: tree-ssa.c:638 +#: tree-ssa.c:635 #, gcc-internal-format msgid "type mismatch between an SSA_NAME and its symbol" msgstr "неÑоответÑтвие типа между SSA_NAME и Ñимволом" -#: tree-ssa.c:644 +#: tree-ssa.c:641 #, gcc-internal-format msgid "found a virtual definition for a GIMPLE register" msgstr "найдено виртуальное определение Ð´Ð»Ñ GIMPLE-региÑтра" -#: tree-ssa.c:650 +#: tree-ssa.c:647 #, gcc-internal-format msgid "virtual SSA name for non-VOP decl" msgstr "" -#: tree-ssa.c:656 +#: tree-ssa.c:653 #, gcc-internal-format msgid "found a real definition for a non-register" msgstr "найдено дейÑтвительное определение Ð´Ð»Ñ Ð½Ðµ-региÑтра" -#: tree-ssa.c:663 +#: tree-ssa.c:660 #, gcc-internal-format msgid "found a default name with a non-empty defining statement" msgstr "" -#: tree-ssa.c:693 +#: tree-ssa.c:690 #, gcc-internal-format msgid "RESULT_DECL should be read only when DECL_BY_REFERENCE is set" msgstr "" -#: tree-ssa.c:699 +#: tree-ssa.c:696 #, gcc-internal-format, gfc-internal-format msgid "SSA_NAME created in two different blocks %i and %i" msgstr "SSA_NAME Ñоздано в двух разных блоках %i и %i" -#: tree-ssa.c:708 tree-ssa.c:1020 +#: tree-ssa.c:705 tree-ssa.c:1017 #, gcc-internal-format msgid "SSA_NAME_DEF_STMT is wrong" msgstr "некорректное SSA_NAME_DEF_STMT" -#: tree-ssa.c:760 +#: tree-ssa.c:757 #, gcc-internal-format msgid "missing definition" msgstr "отÑутÑтвует определение" -#: tree-ssa.c:766 +#: tree-ssa.c:763 #, gcc-internal-format, gfc-internal-format msgid "definition in block %i does not dominate use in block %i" msgstr "определение в блоке %i не должно доминировать над иÑпользованием в блоке %i" -#: tree-ssa.c:774 +#: tree-ssa.c:771 #, gcc-internal-format, gfc-internal-format msgid "definition in block %i follows the use" msgstr "определение в блоке %i Ñледует за иÑпользованием" -#: tree-ssa.c:781 +#: tree-ssa.c:778 #, gcc-internal-format msgid "SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set" msgstr "должен быть уÑтановлен флаг SSA_NAME_OCCURS_IN_ABNORMAL_PHI" -#: tree-ssa.c:789 +#: tree-ssa.c:786 #, gcc-internal-format msgid "no immediate_use list" msgstr "отÑутÑтвует ÑпиÑок immediate_use" -#: tree-ssa.c:801 +#: tree-ssa.c:798 #, gcc-internal-format msgid "wrong immediate use list" msgstr "некорректный ÑпиÑок immediate use" -#: tree-ssa.c:835 +#: tree-ssa.c:832 #, gcc-internal-format msgid "incoming edge count does not match number of PHI arguments" msgstr "чиÑло входÑщих дуг не ÑоответÑтвует чиÑлу аргументов PHI" -#: tree-ssa.c:849 +#: tree-ssa.c:846 #, gcc-internal-format, gfc-internal-format msgid "PHI argument is missing for edge %d->%d" msgstr "отÑутÑтвует PHI-аргумент Ð´Ð»Ñ Ð´ÑƒÐ³Ð¸ %d->%d" -#: tree-ssa.c:858 +#: tree-ssa.c:855 #, gcc-internal-format msgid "PHI argument is not SSA_NAME, or invariant" msgstr "аргумент PHI не ÑвлÑетÑÑ SSA_NAME или инвариантом" -#: tree-ssa.c:886 +#: tree-ssa.c:883 #, gcc-internal-format, gfc-internal-format msgid "wrong edge %d->%d for PHI argument" msgstr "Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð´ÑƒÐ³Ð° %d->%d Ð´Ð»Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ð° PHI" -#: tree-ssa.c:967 +#: tree-ssa.c:964 #, gcc-internal-format, gfc-internal-format msgid "AUX pointer initialized for edge %d->%d" msgstr "инициализирован указатель AUX Ð´Ð»Ñ Ð´ÑƒÐ³Ð¸ %d->%d" -#: tree-ssa.c:992 +#: tree-ssa.c:989 #, fuzzy, gcc-internal-format msgid "stmt (%p) marked modified after optimization pass: " msgstr "оператор (%p) помечен как измененный поÑле прохода оптимизации : " -#: tree-ssa.c:1049 +#: tree-ssa.c:1046 #, gcc-internal-format msgid "verify_ssa failed" msgstr "процедура verify_ssa выÑвила ошибки" -#: tree-ssa.c:1631 varasm.c:322 +#: tree-ssa.c:1628 varasm.c:321 #, fuzzy, gcc-internal-format msgid "%qD was declared here" msgstr " Ð¸Ð¼Ñ `%#D' объÑвлено здеÑÑŒ" -#: tree-ssa.c:1663 +#: tree-ssa.c:1660 #, fuzzy, gcc-internal-format msgid "%qD is used uninitialized in this function" msgstr "%H%qD иÑпользуетÑÑ Ð±ÐµÐ· инициализации в данной функции" -#: tree-ssa.c:1700 +#: tree-ssa.c:1697 #, fuzzy, gcc-internal-format msgid "%qE is used uninitialized in this function" msgstr "%H%qD иÑпользуетÑÑ Ð±ÐµÐ· инициализации в данной функции" -#: tree-ssa.c:1705 +#: tree-ssa.c:1702 #, fuzzy, gcc-internal-format msgid "%qE may be used uninitialized in this function" msgstr "%H%qD, возможно, иÑпользуетÑÑ Ð±ÐµÐ· инициализации в данной функции" @@ -17938,24 +17896,24 @@ msgstr "%q+D повторно декларирован(а) без атрибут msgid "%q+D redeclared without dllimport attribute: previous dllimport ignored" msgstr "%q+D повторно декларирован(а) без атрибута dllimport: предшеÑÑ‚Ð²ÑƒÑŽÑ‰Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ Ñ dllimport игнорируетÑÑ" -#: tree.c:5610 tree.c:5622 tree.c:5632 c-family/c-common.c:6380 -#: c-family/c-common.c:6399 c-family/c-common.c:6417 c-family/c-common.c:6445 -#: c-family/c-common.c:6473 c-family/c-common.c:6501 c-family/c-common.c:6517 -#: c-family/c-common.c:6536 c-family/c-common.c:6553 c-family/c-common.c:6577 -#: c-family/c-common.c:6600 c-family/c-common.c:6617 c-family/c-common.c:6645 -#: c-family/c-common.c:6666 c-family/c-common.c:6687 c-family/c-common.c:6714 -#: c-family/c-common.c:6745 c-family/c-common.c:6782 c-family/c-common.c:6809 -#: c-family/c-common.c:6869 c-family/c-common.c:6954 c-family/c-common.c:6984 -#: c-family/c-common.c:7038 c-family/c-common.c:7496 c-family/c-common.c:7514 -#: c-family/c-common.c:7576 c-family/c-common.c:7619 c-family/c-common.c:7690 -#: c-family/c-common.c:7818 c-family/c-common.c:7886 c-family/c-common.c:7944 -#: c-family/c-common.c:7992 c-family/c-common.c:8155 c-family/c-common.c:8176 -#: c-family/c-common.c:8288 c-family/c-common.c:8312 c-family/c-common.c:8619 -#: c-family/c-common.c:8642 c-family/c-common.c:8681 c-family/c-common.c:8759 -#: c-family/c-common.c:8906 config/darwin.c:1997 config/arm/arm.c:5119 -#: config/arm/arm.c:5147 config/arm/arm.c:5164 config/avr/avr.c:7789 -#: config/h8300/h8300.c:5463 config/h8300/h8300.c:5487 config/i386/i386.c:4965 -#: config/i386/i386.c:34737 config/ia64/ia64.c:737 +#: tree.c:5610 tree.c:5622 tree.c:5632 c-family/c-common.c:6385 +#: c-family/c-common.c:6404 c-family/c-common.c:6422 c-family/c-common.c:6450 +#: c-family/c-common.c:6478 c-family/c-common.c:6506 c-family/c-common.c:6522 +#: c-family/c-common.c:6537 c-family/c-common.c:6558 c-family/c-common.c:6575 +#: c-family/c-common.c:6599 c-family/c-common.c:6622 c-family/c-common.c:6639 +#: c-family/c-common.c:6667 c-family/c-common.c:6688 c-family/c-common.c:6709 +#: c-family/c-common.c:6736 c-family/c-common.c:6767 c-family/c-common.c:6804 +#: c-family/c-common.c:6831 c-family/c-common.c:6891 c-family/c-common.c:6976 +#: c-family/c-common.c:7006 c-family/c-common.c:7060 c-family/c-common.c:7518 +#: c-family/c-common.c:7536 c-family/c-common.c:7598 c-family/c-common.c:7641 +#: c-family/c-common.c:7712 c-family/c-common.c:7840 c-family/c-common.c:7908 +#: c-family/c-common.c:7966 c-family/c-common.c:8014 c-family/c-common.c:8177 +#: c-family/c-common.c:8198 c-family/c-common.c:8310 c-family/c-common.c:8334 +#: c-family/c-common.c:8641 c-family/c-common.c:8664 c-family/c-common.c:8703 +#: c-family/c-common.c:8781 c-family/c-common.c:8928 config/darwin.c:1997 +#: config/arm/arm.c:5119 config/arm/arm.c:5147 config/arm/arm.c:5164 +#: config/avr/avr.c:7789 config/h8300/h8300.c:5463 config/h8300/h8300.c:5487 +#: config/i386/i386.c:4965 config/i386/i386.c:34737 config/ia64/ia64.c:737 #: config/rs6000/rs6000.c:24907 config/spu/spu.c:3743 #: ada/gcc-interface/utils.c:6189 lto/lto-lang.c:222 #, gcc-internal-format @@ -18137,137 +18095,137 @@ msgstr "" msgid "variable tracking size limit exceeded" msgstr "" -#: varasm.c:315 +#: varasm.c:314 #, gcc-internal-format msgid "%+D causes a section type conflict" msgstr "%+D Ñоздает конфликт типов Ñекций" -#: varasm.c:318 +#: varasm.c:317 #, fuzzy, gcc-internal-format msgid "%+D causes a section type conflict with %D" msgstr "%+D Ñоздает конфликт типов Ñекций" -#: varasm.c:960 +#: varasm.c:959 #, gcc-internal-format msgid "alignment of %q+D is greater than maximum object file alignment. Using %d" msgstr "выравнивание %q+D превышает макÑимальное выравнивание в объектном файле. ИÑпользуетÑÑ %d" -#: varasm.c:1200 varasm.c:1209 +#: varasm.c:1198 varasm.c:1207 #, gcc-internal-format msgid "register name not specified for %q+D" msgstr "не задано Ð¸Ð¼Ñ Ñ€ÐµÐ³Ð¸Ñтра Ð´Ð»Ñ %q+D" -#: varasm.c:1211 +#: varasm.c:1209 #, gcc-internal-format msgid "invalid register name for %q+D" msgstr "некорректное Ð¸Ð¼Ñ Ñ€ÐµÐ³Ð¸Ñтра Ð´Ð»Ñ %q+D" -#: varasm.c:1213 +#: varasm.c:1211 #, gcc-internal-format msgid "data type of %q+D isn%'t suitable for a register" msgstr "данные типа %q+D Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ð¾Ð¼ÐµÑтить на региÑÑ‚Ñ€" -#: varasm.c:1216 +#: varasm.c:1214 #, fuzzy, gcc-internal-format msgid "the register specified for %q+D cannot be accessed by the current target" msgstr "региÑÑ‚Ñ€, заданный Ð´Ð»Ñ %q+D, не годитÑÑ Ð´Ð»Ñ Ñтого типа данных" -#: varasm.c:1219 +#: varasm.c:1217 #, fuzzy, gcc-internal-format msgid "the register specified for %q+D is not general enough to be used as a register variable" msgstr "региÑÑ‚Ñ€ назначен Ð´Ð»Ñ Ð´Ð²ÑƒÑ… глобальных региÑтровых переменных" -#: varasm.c:1222 +#: varasm.c:1220 #, gcc-internal-format msgid "register specified for %q+D isn%'t suitable for data type" msgstr "региÑÑ‚Ñ€, заданный Ð´Ð»Ñ %q+D, не годитÑÑ Ð´Ð»Ñ Ñтого типа данных" -#: varasm.c:1232 +#: varasm.c:1230 #, gcc-internal-format msgid "global register variable has initial value" msgstr "Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð°Ñ Ñ€ÐµÐ³Ð¸ÑÑ‚Ñ€Ð¾Ð²Ð°Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¸Ð¼ÐµÐµÑ‚ начальное значение" -#: varasm.c:1236 +#: varasm.c:1234 #, gcc-internal-format msgid "optimization may eliminate reads and/or writes to register variables" msgstr "Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ‚ удалить Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ запиÑи региÑтровых переменных" -#: varasm.c:1274 +#: varasm.c:1272 #, gcc-internal-format msgid "register name given for non-register variable %q+D" msgstr "Ð¸Ð¼Ñ Ñ€ÐµÐ³Ð¸Ñтра задано Ð´Ð»Ñ Ð½ÐµÑ€ÐµÐ³Ð¸Ñтровой переменной %q+D" -#: varasm.c:1820 +#: varasm.c:1818 #, gcc-internal-format msgid "thread-local COMMON data not implemented" msgstr "поддержка локально-поточных COMMON-данных не реализована" -#: varasm.c:1852 +#: varasm.c:1850 #, gcc-internal-format msgid "requested alignment for %q+D is greater than implemented alignment of %wu" msgstr "запрошенное выравнивание Ð´Ð»Ñ %q+D превышает поддерживаемое выравнивание Ð´Ð»Ñ %wu" -#: varasm.c:1940 c/c-decl.c:4353 +#: varasm.c:1938 c/c-decl.c:4353 #, gcc-internal-format msgid "storage size of %q+D isn%'t known" msgstr "размер %q+D в памÑти неизвеÑтен" -#: varasm.c:4605 +#: varasm.c:4590 #, fuzzy, gcc-internal-format msgid "initializer for integer/fixed-point value is too complicated" msgstr "Ñлишком Ñложное инициализирующее выражение Ð´Ð»Ñ Ñ†ÐµÐ»Ð¾Ð³Ð¾" -#: varasm.c:4610 +#: varasm.c:4595 #, gcc-internal-format msgid "initializer for floating value is not a floating constant" msgstr "инициализирующее выражение Ð´Ð»Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰ÐµÐ³Ð¾ не ÑвлÑетÑÑ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰ÐµÐ¹ конÑтантой" -#: varasm.c:4918 +#: varasm.c:4903 #, fuzzy, gcc-internal-format msgid "invalid initial value for member %qE" msgstr "некорректное начальное значение Ð´Ð»Ñ Ñлемента %qs" -#: varasm.c:5270 +#: varasm.c:5255 #, gcc-internal-format msgid "weak declaration of %q+D must be public" msgstr "weak Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ %q+D должна быть public" -#: varasm.c:5272 +#: varasm.c:5257 #, gcc-internal-format msgid "weak declaration of %q+D not supported" msgstr "weak Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ %q+D не поддерживаетÑÑ" -#: varasm.c:5301 varasm.c:5598 +#: varasm.c:5286 varasm.c:5583 #, gcc-internal-format msgid "only weak aliases are supported in this configuration" msgstr "в данной конфигурации поддерживаютÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ Ñлабые алиаÑÑ‹" -#: varasm.c:5490 +#: varasm.c:5475 #, fuzzy, gcc-internal-format msgid "weakref is not supported in this configuration" msgstr "%Jweakref в данной конфигурации не поддерживаетÑÑ" -#: varasm.c:5513 varasm.c:5595 +#: varasm.c:5498 varasm.c:5580 #, fuzzy, gcc-internal-format msgid "ifunc is not supported in this configuration" msgstr "-m%s в данной конфигурации не поддерживаетÑÑ" -#: varasm.c:5572 +#: varasm.c:5557 #, gcc-internal-format msgid "weakref %q+D ultimately targets itself" msgstr "ÑÐ»Ð°Ð±Ð°Ñ ÑÑылка %q+D в конечном Ñчёте направлена на ÑебÑ" -#: varasm.c:5581 +#: varasm.c:5566 #, fuzzy, gcc-internal-format msgid "weakref %q+D must have static linkage" msgstr "недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ ÑтатичеÑкого Ñлемента-функции %qD" -#: varasm.c:5588 +#: varasm.c:5573 #, fuzzy, gcc-internal-format msgid "alias definitions not supported in this configuration" msgstr "%Jв данной конфигурации Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð°Ð»Ð¸Ð°Ñов не поддерживаютÑÑ" -#: varasm.c:5807 config/sol2.c:155 config/i386/winnt.c:254 +#: varasm.c:5792 config/sol2.c:155 config/i386/winnt.c:254 #, gcc-internal-format msgid "visibility attribute not supported in this configuration; ignored" msgstr "атрибут видимоÑти не поддерживаетÑÑ Ð² данной конфигурации; определение игнорируетÑÑ" @@ -18293,1316 +18251,1314 @@ msgstr "" msgid "bytecode stream: tag %s is not in the expected range [%s, %s]" msgstr "" -#: c-family/c-common.c:911 +#: c-family/c-common.c:916 #, gcc-internal-format msgid "%qD is not defined outside of function scope" msgstr "%qD не определено вне функции" -#: c-family/c-common.c:961 +#: c-family/c-common.c:966 #, 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-family/c-common.c:1280 c/c-typeck.c:9864 cp/typeck.c:4158 +#: c-family/c-common.c:1285 c/c-typeck.c:9864 cp/typeck.c:4158 #, gcc-internal-format msgid "left shift count is negative" msgstr "Ñдвиг влево на отрицательное чиÑло позиций" -#: c-family/c-common.c:1281 c/c-typeck.c:9812 cp/typeck.c:4112 +#: c-family/c-common.c:1286 c/c-typeck.c:9812 cp/typeck.c:4112 #, gcc-internal-format msgid "right shift count is negative" msgstr "Ñдвиг вправо на отрицательное чиÑло позиций" -#: c-family/c-common.c:1286 c/c-typeck.c:9871 cp/typeck.c:4165 +#: c-family/c-common.c:1291 c/c-typeck.c:9871 cp/typeck.c:4165 #, gcc-internal-format msgid "left shift count >= width of type" msgstr "величина Ñдвига влево больше или равна ширине данного типа" -#: c-family/c-common.c:1287 c/c-typeck.c:9823 cp/typeck.c:4119 +#: c-family/c-common.c:1292 c/c-typeck.c:9823 cp/typeck.c:4119 #, gcc-internal-format msgid "right shift count >= width of type" msgstr "величина Ñдвига вправо больше или равна ширине данного типа" -#: c-family/c-common.c:1508 c-family/c-common.c:1520 cp/semantics.c:6865 +#: c-family/c-common.c:1513 c-family/c-common.c:1525 cp/semantics.c:6867 #, gcc-internal-format msgid "overflow in constant expression" msgstr "переполнение при вычиÑлении конÑтантного выражениÑ" -#: c-family/c-common.c:1543 +#: c-family/c-common.c:1548 #, gcc-internal-format msgid "integer overflow in expression" msgstr "переполнение при вычиÑлении целочиÑленного выражениÑ" -#: c-family/c-common.c:1548 +#: c-family/c-common.c:1553 #, gcc-internal-format msgid "floating point overflow in expression" msgstr "переполнение при вычиÑлении Ð²Ñ‹Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰ÐµÐ¹ точкой" -#: c-family/c-common.c:1552 +#: c-family/c-common.c:1557 #, fuzzy, gcc-internal-format msgid "fixed-point overflow in expression" msgstr "переполнение при вычиÑлении Ð²Ñ‹Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰ÐµÐ¹ точкой" -#: c-family/c-common.c:1556 +#: c-family/c-common.c:1561 #, gcc-internal-format msgid "vector overflow in expression" msgstr "переполнение при вычиÑлении векторного выражениÑ" -#: c-family/c-common.c:1562 +#: c-family/c-common.c:1567 #, fuzzy, gcc-internal-format msgid "complex integer overflow in expression" msgstr "переполнение при вычиÑлении целочиÑленного выражениÑ" -#: c-family/c-common.c:1565 +#: c-family/c-common.c:1570 #, fuzzy, gcc-internal-format msgid "complex floating point overflow in expression" msgstr "переполнение при вычиÑлении Ð²Ñ‹Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰ÐµÐ¹ точкой" -#: c-family/c-common.c:1608 +#: c-family/c-common.c:1613 #, gcc-internal-format msgid "logical %<or%> applied to non-boolean constant" msgstr "" -#: c-family/c-common.c:1611 +#: c-family/c-common.c:1616 #, gcc-internal-format msgid "logical %<and%> applied to non-boolean constant" msgstr "" -#: c-family/c-common.c:1675 +#: c-family/c-common.c:1680 #, fuzzy, gcc-internal-format msgid "logical %<or%> of collectively exhaustive tests is always true" msgstr "%<или%> от двух взаимно иÑключающих Ñравнений на равенÑтво - вÑегда 0" -#: c-family/c-common.c:1679 +#: c-family/c-common.c:1684 #, fuzzy, gcc-internal-format msgid "logical %<and%> of mutually exclusive tests is always false" msgstr "%<или%> от двух взаимно иÑключающих Ñравнений на равенÑтво - вÑегда 0" -#: c-family/c-common.c:1811 +#: c-family/c-common.c:1816 #, gcc-internal-format msgid "type-punning to incomplete type might break strict-aliasing rules" msgstr "приведение к неполному типу может нарушить правила Ð¿ÐµÑ€ÐµÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð¾Ð² в памÑти" -#: c-family/c-common.c:1826 +#: c-family/c-common.c:1831 #, gcc-internal-format msgid "dereferencing type-punned pointer will break strict-aliasing rules" msgstr "доÑтуп по указателю Ñ Ð¿Ñ€Ð¸Ð²ÐµÐ´ÐµÐ½Ð¸ÐµÐ¼ типа нарушает правила Ð¿ÐµÑ€ÐµÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð¾Ð² в памÑти" -#: c-family/c-common.c:1833 c-family/c-common.c:1851 +#: c-family/c-common.c:1838 c-family/c-common.c:1856 #, gcc-internal-format msgid "dereferencing type-punned pointer might break strict-aliasing rules" msgstr "доÑтуп по указателю Ñ Ð¿Ñ€Ð¸Ð²ÐµÐ´ÐµÐ½Ð¸ÐµÐ¼ типа может нарушить правила Ð¿ÐµÑ€ÐµÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð¾Ð² в памÑти" -#: c-family/c-common.c:1985 +#: c-family/c-common.c:1990 #, gcc-internal-format msgid "argument to %<sizeof%> in %qD call is the same expression as the destination; did you mean to remove the addressof?" msgstr "" -#: c-family/c-common.c:1992 +#: c-family/c-common.c:1997 #, gcc-internal-format msgid "argument to %<sizeof%> in %qD call is the same expression as the destination; did you mean to provide an explicit length?" msgstr "" -#: c-family/c-common.c:1997 +#: c-family/c-common.c:2002 #, gcc-internal-format msgid "argument to %<sizeof%> in %qD call is the same expression as the destination; did you mean to dereference it?" msgstr "" -#: c-family/c-common.c:2009 +#: c-family/c-common.c:2014 #, gcc-internal-format msgid "argument to %<sizeof%> in %qD call is the same pointer type %qT as the destination; expected %qT or an explicit length" msgstr "" -#: c-family/c-common.c:2025 +#: c-family/c-common.c:2030 #, gcc-internal-format msgid "argument to %<sizeof%> in %qD call is the same expression as the source; did you mean to remove the addressof?" msgstr "" -#: c-family/c-common.c:2032 +#: c-family/c-common.c:2037 #, gcc-internal-format msgid "argument to %<sizeof%> in %qD call is the same expression as the source; did you mean to provide an explicit length?" msgstr "" -#: c-family/c-common.c:2037 +#: c-family/c-common.c:2042 #, gcc-internal-format msgid "argument to %<sizeof%> in %qD call is the same expression as the source; did you mean to dereference it?" msgstr "" -#: c-family/c-common.c:2049 +#: c-family/c-common.c:2054 #, gcc-internal-format msgid "argument to %<sizeof%> in %qD call is the same pointer type %qT as the source; expected %qT or an explicit length" msgstr "" -#: c-family/c-common.c:2065 +#: c-family/c-common.c:2070 #, gcc-internal-format msgid "argument to %<sizeof%> in %qD call is the same expression as the first source; did you mean to remove the addressof?" msgstr "" -#: c-family/c-common.c:2072 +#: c-family/c-common.c:2077 #, gcc-internal-format msgid "argument to %<sizeof%> in %qD call is the same expression as the first source; did you mean to provide an explicit length?" msgstr "" -#: c-family/c-common.c:2077 +#: c-family/c-common.c:2082 #, gcc-internal-format msgid "argument to %<sizeof%> in %qD call is the same expression as the first source; did you mean to dereference it?" msgstr "" -#: c-family/c-common.c:2089 +#: c-family/c-common.c:2094 #, gcc-internal-format msgid "argument to %<sizeof%> in %qD call is the same pointer type %qT as the first source; expected %qT or an explicit length" msgstr "" -#: c-family/c-common.c:2105 +#: c-family/c-common.c:2110 #, gcc-internal-format msgid "argument to %<sizeof%> in %qD call is the same expression as the second source; did you mean to remove the addressof?" msgstr "" -#: c-family/c-common.c:2112 +#: c-family/c-common.c:2117 #, gcc-internal-format msgid "argument to %<sizeof%> in %qD call is the same expression as the second source; did you mean to provide an explicit length?" msgstr "" -#: c-family/c-common.c:2117 +#: c-family/c-common.c:2122 #, gcc-internal-format msgid "argument to %<sizeof%> in %qD call is the same expression as the second source; did you mean to dereference it?" msgstr "" -#: c-family/c-common.c:2129 +#: c-family/c-common.c:2134 #, gcc-internal-format msgid "argument to %<sizeof%> in %qD call is the same pointer type %qT as the second source; expected %qT or an explicit length" msgstr "" -#: c-family/c-common.c:2161 +#: c-family/c-common.c:2166 #, gcc-internal-format msgid "first argument of %q+D should be %<int%>" msgstr "первый аргумент функции %q+D должен иметь тип %<int%>" -#: c-family/c-common.c:2170 +#: c-family/c-common.c:2175 #, gcc-internal-format msgid "second argument of %q+D should be %<char **%>" msgstr "второй аргумент функции %q+D должен иметь тип %<char **%>" -#: c-family/c-common.c:2179 +#: c-family/c-common.c:2184 #, gcc-internal-format msgid "third argument of %q+D should probably be %<char **%>" msgstr "третий аргумент функции %q+D должен, по-видимому, иметь тип %<char **%>" -#: c-family/c-common.c:2190 +#: c-family/c-common.c:2195 #, gcc-internal-format msgid "%q+D takes only zero or two arguments" msgstr "%q+D может быть функцией Ñ Ð´Ð²ÑƒÐ¼Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ð°Ð¼Ð¸, либо функцией без аргументов" -#: c-family/c-common.c:2239 +#: c-family/c-common.c:2244 #, gcc-internal-format msgid "use -flax-vector-conversions to permit conversions between vectors with differing element types or numbers of subparts" msgstr "" -#: c-family/c-common.c:2278 +#: c-family/c-common.c:2283 #, fuzzy, gcc-internal-format msgid "__builtin_shuffle last argument must be an integer vector" msgstr "первый аргумент должен быть 5-битным знаковым литеральным значением" -#: c-family/c-common.c:2286 +#: c-family/c-common.c:2291 #, fuzzy, gcc-internal-format msgid "__builtin_shuffle arguments must be vectors" msgstr "второй аргумент %<__builtin_longjmp%> должен быть 1" -#: c-family/c-common.c:2292 +#: c-family/c-common.c:2297 #, fuzzy, gcc-internal-format msgid "__builtin_shuffle argument vectors must be of the same type" msgstr "аргумент `%s' должен быть 2-битным беззнаковым литеральным значением" -#: c-family/c-common.c:2302 +#: c-family/c-common.c:2307 #, gcc-internal-format msgid "__builtin_shuffle number of elements of the argument vector(s) and the mask vector should be the same" msgstr "" -#: c-family/c-common.c:2311 +#: c-family/c-common.c:2316 #, gcc-internal-format msgid "__builtin_shuffle argument vector(s) inner type must have the same size as inner type of the mask" msgstr "" -#: c-family/c-common.c:2505 +#: c-family/c-common.c:2510 #, gcc-internal-format msgid "negative integer implicitly converted to unsigned type" msgstr "неÑвное приведение отрицательного целого Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ðº беззнаковому типу" -#: c-family/c-common.c:2511 +#: c-family/c-common.c:2516 #, gcc-internal-format msgid "conversion of unsigned constant value to negative integer" msgstr "" -#: c-family/c-common.c:2605 +#: c-family/c-common.c:2610 #, fuzzy, gcc-internal-format msgid "conversion to %qT from %qT may change the sign of the result" msgstr "преобразование %qE из %qT в %qT неоднозначно" -#: c-family/c-common.c:2674 +#: c-family/c-common.c:2679 #, fuzzy, gcc-internal-format msgid "conversion to %qT from boolean expression" msgstr "преобразование %qE из %qT в %qT неоднозначно" -#: c-family/c-common.c:2681 +#: c-family/c-common.c:2686 #, fuzzy, gcc-internal-format msgid "conversion to %qT alters %qT constant value" msgstr "преобразование из %qT в %qT неоднозначно" -#: c-family/c-common.c:2700 +#: c-family/c-common.c:2705 #, fuzzy, gcc-internal-format msgid "conversion to %qT from %qT may alter its value" msgstr "преобразование %qE из %qT в %qT неоднозначно" -#: c-family/c-common.c:2730 +#: c-family/c-common.c:2735 #, gcc-internal-format msgid "large integer implicitly truncated to unsigned type" msgstr "неÑвное приведение большого целого Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ðº беззнаковому типу" -#: c-family/c-common.c:2736 c-family/c-common.c:2743 c-family/c-common.c:2751 +#: c-family/c-common.c:2741 c-family/c-common.c:2748 c-family/c-common.c:2756 #, gcc-internal-format msgid "overflow in implicit constant conversion" msgstr "переполнение при неÑвном преобразовании конÑтанты" -#: c-family/c-common.c:2923 +#: c-family/c-common.c:2928 #, gcc-internal-format msgid "operation on %qE may be undefined" msgstr "Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð½Ð°Ð´ %qE может дать неопределенный результат" -#: c-family/c-common.c:3234 +#: c-family/c-common.c:3239 #, gcc-internal-format msgid "case label does not reduce to an integer constant" msgstr "значение case-метки неприводимо к целочиÑленной конÑтанте" -#: c-family/c-common.c:3274 +#: c-family/c-common.c:3279 #, gcc-internal-format msgid "case label value is less than minimum value for type" msgstr "значение case-метки меньше чем минимальное значение данного типа" -#: c-family/c-common.c:3282 +#: c-family/c-common.c:3287 #, gcc-internal-format msgid "case label value exceeds maximum value for type" msgstr "значение Ñ Ð±Ð¾Ð»ÑŒÑˆÐµ чем макÑимальное значение данного типа" -#: c-family/c-common.c:3290 +#: c-family/c-common.c:3295 #, gcc-internal-format msgid "lower value in case label range less than minimum value for type" msgstr "нижнÑÑ Ð³Ñ€Ð°Ð½Ð¸Ñ†Ð° диапазона case-метки меньше чем минимальное значение данного типа" -#: c-family/c-common.c:3299 +#: c-family/c-common.c:3304 #, gcc-internal-format msgid "upper value in case label range exceeds maximum value for type" msgstr "верхнÑÑ Ð³Ñ€Ð°Ð½Ð¸Ñ†Ð° диапазона case-метки больше чем макÑимальное значение данного типа" -#: c-family/c-common.c:3378 +#: c-family/c-common.c:3383 #, gcc-internal-format msgid "GCC cannot support operators with integer types and fixed-point types that have too many integral and fractional bits together" msgstr "" -#: c-family/c-common.c:3881 +#: c-family/c-common.c:3886 #, fuzzy, gcc-internal-format msgid "invalid operands to binary %s (have %qT and %qT)" msgstr "неверные операнды бинарной операции %s" -#: c-family/c-common.c:4142 +#: c-family/c-common.c:4147 #, gcc-internal-format msgid "comparison is always false due to limited range of data type" msgstr "из-за ограниченноÑти диапазона типа данных, результат ÑÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ Ð²Ñегда ложь" -#: c-family/c-common.c:4145 +#: c-family/c-common.c:4150 #, gcc-internal-format msgid "comparison is always true due to limited range of data type" msgstr "из-за ограниченноÑти диапазона типа данных, результат ÑÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ Ð²Ñегда иÑтина" -#: c-family/c-common.c:4230 +#: c-family/c-common.c:4235 #, gcc-internal-format msgid "comparison of unsigned expression >= 0 is always true" msgstr "результат ÑÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ `беззнаковое выражение >=0' вÑегда иÑтина" -#: c-family/c-common.c:4237 +#: c-family/c-common.c:4242 #, gcc-internal-format msgid "comparison of unsigned expression < 0 is always false" msgstr "результат ÑÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ `беззнаковое выражение < 0' вÑегда ложь" -#: c-family/c-common.c:4279 +#: c-family/c-common.c:4284 #, gcc-internal-format msgid "pointer of type %<void *%> used in arithmetic" msgstr "в арифметичеÑком выражении иÑпользован указатель %<VOID *%>" -#: c-family/c-common.c:4285 +#: c-family/c-common.c:4290 #, gcc-internal-format msgid "pointer to a function used in arithmetic" msgstr "в арифметичеÑком выражении иÑпользован указатель на функцию" -#: c-family/c-common.c:4291 +#: c-family/c-common.c:4296 #, gcc-internal-format msgid "pointer to member function used in arithmetic" msgstr "в арифметичеÑком выражении иÑпользован указатель на Ñлемент-функцию" -#: c-family/c-common.c:4503 +#: c-family/c-common.c:4508 #, fuzzy, gcc-internal-format msgid "the address of %qD will always evaluate as %<true%>" msgstr "Ð°Ð´Ñ€ÐµÑ %qD вÑегда будет %<иÑтина%>" -#: c-family/c-common.c:4598 cp/semantics.c:592 cp/typeck.c:7906 +#: c-family/c-common.c:4603 cp/semantics.c:592 cp/typeck.c:7906 #, gcc-internal-format msgid "suggest parentheses around assignment used as truth value" msgstr "приÑваивание, иÑпользуемое как логичеÑкое выражение, рекомендуетÑÑ " -#: c-family/c-common.c:4677 c/c-decl.c:3686 c/c-typeck.c:10883 +#: c-family/c-common.c:4682 c/c-decl.c:3686 c/c-typeck.c:10883 #, gcc-internal-format msgid "invalid use of %<restrict%>" msgstr "неверное употребление Ñпецификатора %<restrict%>" -#: c-family/c-common.c:4870 +#: c-family/c-common.c:4875 #, gcc-internal-format msgid "invalid application of %<sizeof%> to a function type" msgstr "недопуÑтимое применение %<sizeof%> к типу функции" -#: c-family/c-common.c:4880 +#: c-family/c-common.c:4885 #, fuzzy, gcc-internal-format msgid "ISO C++ does not permit %<alignof%> applied to a function type" msgstr "ISO C++ не поддерживает назначенные инициализаторы" -#: c-family/c-common.c:4883 +#: c-family/c-common.c:4888 #, fuzzy, gcc-internal-format msgid "ISO C does not permit %<_Alignof%> applied to a function type" msgstr "ISO C++ не поддерживает назначенные инициализаторы" -#: c-family/c-common.c:4894 +#: c-family/c-common.c:4899 #, gcc-internal-format msgid "invalid application of %qs to a void type" msgstr "недопуÑтимое применение %qs к типу void" -#: c-family/c-common.c:4903 +#: c-family/c-common.c:4908 #, fuzzy, gcc-internal-format msgid "invalid application of %qs to incomplete type %qT" msgstr "некорректное применение %qs к неполному типу %qT " -#: c-family/c-common.c:4911 +#: c-family/c-common.c:4916 #, fuzzy, gcc-internal-format msgid "invalid application of %qs to array type %qT of incomplete element type" msgstr "некорректное применение %qs к неполному типу %qT " -#: c-family/c-common.c:4951 +#: c-family/c-common.c:4956 #, gcc-internal-format msgid "%<__alignof%> applied to a bit-field" msgstr "%<__alignof%> применено к битовому полю" -#: c-family/c-common.c:5664 +#: c-family/c-common.c:5669 #, gcc-internal-format msgid "cannot disable built-in function %qs" msgstr "невозможно отменить внутреннюю функцию %s" -#: c-family/c-common.c:5855 +#: c-family/c-common.c:5860 #, gcc-internal-format msgid "pointers are not permitted as case values" msgstr "в конÑтрукции case Ð½ÐµÐ»ÑŒÐ·Ñ ÑƒÐ¿Ð¾Ñ‚Ñ€ÐµÐ±Ð»ÑÑ‚ÑŒ указатели" -#: c-family/c-common.c:5862 +#: c-family/c-common.c:5867 #, gcc-internal-format msgid "range expressions in switch statements are non-standard" msgstr "диапазоны в операторе switch не поддерживаютÑÑ ISO C" -#: c-family/c-common.c:5888 +#: c-family/c-common.c:5893 #, gcc-internal-format msgid "empty range specified" msgstr "пуÑтой диапазон" -#: c-family/c-common.c:5948 +#: c-family/c-common.c:5953 #, gcc-internal-format msgid "duplicate (or overlapping) case value" msgstr "повтор (или перекрытие) case-значений" -#: c-family/c-common.c:5950 +#: c-family/c-common.c:5955 #, fuzzy, gcc-internal-format msgid "this is the first entry overlapping that value" msgstr "%JÑто первое case-значение, Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼ перекрываетÑÑ Ð´Ð°Ð½Ð½Ð¾Ðµ значение" -#: c-family/c-common.c:5954 +#: c-family/c-common.c:5959 #, gcc-internal-format msgid "duplicate case value" msgstr "повтор case-значениÑ," -#: c-family/c-common.c:5955 +#: c-family/c-common.c:5960 #, fuzzy, gcc-internal-format msgid "previously used here" msgstr "%Jкоторое ранее иÑпользовано здеÑÑŒ" -#: c-family/c-common.c:5959 +#: c-family/c-common.c:5964 #, gcc-internal-format msgid "multiple default labels in one switch" msgstr "неÑколько меток default в операторе switch" -#: c-family/c-common.c:5961 +#: c-family/c-common.c:5966 #, fuzzy, gcc-internal-format msgid "this is the first default label" msgstr "%JÑто Ð¿ÐµÑ€Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° default" -#: c-family/c-common.c:6013 +#: c-family/c-common.c:6018 #, fuzzy, gcc-internal-format msgid "case value %qs not in enumerated type" msgstr "%Jcase-значение %qs не принадлежит к перечиÑлимому типу" -#: c-family/c-common.c:6018 +#: c-family/c-common.c:6023 #, fuzzy, gcc-internal-format msgid "case value %qs not in enumerated type %qT" msgstr "%Jcase-значение %qs не принадлежит к перечиÑлимому типу %qT" -#: c-family/c-common.c:6077 +#: c-family/c-common.c:6082 #, fuzzy, gcc-internal-format msgid "switch missing default case" msgstr "%Hоператор switch без метки default" -#: c-family/c-common.c:6149 +#: c-family/c-common.c:6154 #, fuzzy, gcc-internal-format msgid "enumeration value %qE not handled in switch" msgstr "%Hв переключателе пропущено значение %qE перечиÑлимого типа" -#: c-family/c-common.c:6175 +#: c-family/c-common.c:6180 #, gcc-internal-format msgid "taking the address of a label is non-standard" msgstr "взÑтие адреÑа метки не поддерживаетÑÑ ISO C/C++" -#: c-family/c-common.c:6369 +#: c-family/c-common.c:6374 #, gcc-internal-format msgid "%qE attribute ignored for field of type %qT" msgstr "атрибут %qE Ð´Ð»Ñ Ð¿Ð¾Ð»Ñ Ñ‚Ð¸Ð¿Ð° %qT проигнорирован" -#: c-family/c-common.c:6464 c-family/c-common.c:6492 +#: c-family/c-common.c:6469 c-family/c-common.c:6497 #, fuzzy, gcc-internal-format msgid "%qE attribute conflicts with attribute %s" msgstr "атрибут %qs допуÑтим только Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ñ…" -#: c-family/c-common.c:6622 lto/lto-lang.c:227 +#: c-family/c-common.c:6644 lto/lto-lang.c:227 #, fuzzy, gcc-internal-format msgid "%qE attribute has no effect on unit local functions" msgstr "%qE атрибут дейÑтвует только в public-объектах" -#: c-family/c-common.c:6776 +#: c-family/c-common.c:6798 #, gcc-internal-format msgid "%qE attribute have effect only on public objects" msgstr "%qE атрибут дейÑтвует только в public-объектах" -#: c-family/c-common.c:6890 +#: c-family/c-common.c:6912 #, fuzzy, gcc-internal-format msgid "destructor priorities are not supported" msgstr "\"трамплины\" не поддерживаютÑÑ" -#: c-family/c-common.c:6892 +#: c-family/c-common.c:6914 #, fuzzy, gcc-internal-format msgid "constructor priorities are not supported" msgstr "\"трамплины\" не поддерживаютÑÑ" -#: c-family/c-common.c:6910 +#: c-family/c-common.c:6932 #, gcc-internal-format, gfc-internal-format msgid "destructor priorities from 0 to %d are reserved for the implementation" msgstr "" -#: c-family/c-common.c:6915 +#: c-family/c-common.c:6937 #, gcc-internal-format, gfc-internal-format msgid "constructor priorities from 0 to %d are reserved for the implementation" msgstr "" -#: c-family/c-common.c:6923 +#: c-family/c-common.c:6945 #, gcc-internal-format, gfc-internal-format msgid "destructor priorities must be integers from 0 to %d inclusive" msgstr "" -#: c-family/c-common.c:6926 +#: c-family/c-common.c:6948 #, gcc-internal-format, gfc-internal-format msgid "constructor priorities must be integers from 0 to %d inclusive" msgstr "" -#: c-family/c-common.c:7082 +#: c-family/c-common.c:7104 #, fuzzy, gcc-internal-format msgid "unknown machine mode %qE" msgstr "неизвеÑÑ‚Ð½Ð°Ñ Ð¼Ð°ÑˆÐ¸Ð½Ð½Ñ‹Ð¹ режим %qs" -#: c-family/c-common.c:7111 +#: c-family/c-common.c:7133 #, gcc-internal-format msgid "specifying vector types with __attribute__ ((mode)) is deprecated" msgstr "задание векторного типа Ñ __attribute__ ((mode)) не будет поддерживатьÑÑ Ð² будущих верÑиÑÑ…" -#: c-family/c-common.c:7114 +#: c-family/c-common.c:7136 #, gcc-internal-format msgid "use __attribute__ ((vector_size)) instead" msgstr "иÑпользуйте вмеÑто него __attribute__ ((vector_size))" -#: c-family/c-common.c:7123 +#: c-family/c-common.c:7145 #, gcc-internal-format msgid "unable to emulate %qs" msgstr "ÑмулÑÑ†Ð¸Ñ %qs невозможна" -#: c-family/c-common.c:7134 +#: c-family/c-common.c:7156 #, gcc-internal-format msgid "invalid pointer mode %qs" msgstr "неизвеÑÑ‚Ð½Ð°Ñ Ð¼Ð°ÑˆÐ¸Ð½Ð½Ñ‹Ð¹ режим %qs Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ" -#: c-family/c-common.c:7151 +#: c-family/c-common.c:7173 #, gcc-internal-format msgid "signedness of type and machine mode %qs don%'t match" msgstr "" -#: c-family/c-common.c:7162 +#: c-family/c-common.c:7184 #, gcc-internal-format msgid "no data type for mode %qs" msgstr "тип данных, ÑоответÑтвующий режиму %qs, не ÑущеÑтвует" -#: c-family/c-common.c:7172 +#: c-family/c-common.c:7194 #, gcc-internal-format msgid "cannot use mode %qs for enumeral types" msgstr "иÑпользование режима %qs Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ‡Ð¸Ñлимых типов недопуÑтимо" -#: c-family/c-common.c:7199 +#: c-family/c-common.c:7221 #, gcc-internal-format msgid "mode %qs applied to inappropriate type" msgstr "режим %qs применен к неподходÑщему типу" -#: c-family/c-common.c:7231 +#: c-family/c-common.c:7253 #, fuzzy, gcc-internal-format msgid "section attribute cannot be specified for local variables" msgstr "%Jатрибут section недопуÑтим Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ñ‹Ñ… переменных" -#: c-family/c-common.c:7242 config/bfin/bfin.c:4737 config/bfin/bfin.c:4788 +#: c-family/c-common.c:7264 config/bfin/bfin.c:4737 config/bfin/bfin.c:4788 #: config/bfin/bfin.c:4815 config/bfin/bfin.c:4828 #, gcc-internal-format msgid "section of %q+D conflicts with previous declaration" msgstr "атрибут section, заданный Ð´Ð»Ñ %q+D, противоречит предшеÑтвующей декларации" -#: c-family/c-common.c:7250 +#: c-family/c-common.c:7272 #, fuzzy, gcc-internal-format msgid "section of %q+D cannot be overridden" msgstr "`%#D' и `%#D' не могут быть перегружены" -#: c-family/c-common.c:7258 +#: c-family/c-common.c:7280 #, gcc-internal-format msgid "section attribute not allowed for %q+D" msgstr "атрибут section Ð´Ð»Ñ %q+D недопуÑтим" -#: c-family/c-common.c:7265 +#: c-family/c-common.c:7287 #, fuzzy, gcc-internal-format msgid "section attributes are not supported for this target" msgstr "%Jатрибут section Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ платформы не поддерживаетÑÑ" -#: c-family/c-common.c:7284 +#: c-family/c-common.c:7306 #, fuzzy, gcc-internal-format msgid "requested alignment is not an integer constant" msgstr "выравнивание не ÑвлÑетÑÑ ÐºÐ¾Ð½Ñтантой" -#: c-family/c-common.c:7291 +#: c-family/c-common.c:7313 #, gcc-internal-format msgid "requested alignment is not a power of 2" msgstr "выравнивание не ÑвлÑетÑÑ Ñтепенью чиÑла 2" -#: c-family/c-common.c:7296 +#: c-family/c-common.c:7318 #, gcc-internal-format msgid "requested alignment is too large" msgstr "выравнивание Ñлишком велико" -#: c-family/c-common.c:7379 +#: c-family/c-common.c:7401 #, fuzzy, gcc-internal-format, gfc-internal-format -#| msgid "requested alignment is too large" msgid "requested alignment %d is larger than %d" msgstr "выравнивание Ñлишком велико" -#: c-family/c-common.c:7436 +#: c-family/c-common.c:7458 #, gcc-internal-format msgid "alignment may not be specified for %q+D" msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð·Ð°Ð´Ð°Ð²Ð°Ñ‚ÑŒ выравнивание Ð´Ð»Ñ %q+D" -#: c-family/c-common.c:7454 +#: c-family/c-common.c:7476 #, gcc-internal-format msgid "alignment for %q+D was previously specified as %d and may not be decreased" msgstr "" -#: c-family/c-common.c:7458 +#: c-family/c-common.c:7480 #, fuzzy, gcc-internal-format msgid "alignment for %q+D must be at least %d" msgstr "аргумент `%s' должен быть 2-битным беззнаковым литеральным значением" -#: c-family/c-common.c:7483 +#: c-family/c-common.c:7505 #, fuzzy, gcc-internal-format msgid "inline function %q+D declared weak" msgstr "Ð²Ð»Ð¾Ð¶ÐµÐ½Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ %q+D объÑвлена, но нигде не определена" -#: c-family/c-common.c:7488 +#: c-family/c-common.c:7510 #, fuzzy, gcc-internal-format msgid "indirect function %q+D cannot be declared weak" msgstr "недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ %qs как %<mutable%>" -#: c-family/c-common.c:7525 +#: c-family/c-common.c:7547 #, fuzzy, gcc-internal-format msgid "%q+D defined both normally and as %qE attribute" msgstr "%q+D определено как обычное Ð¸Ð¼Ñ Ð¸ как alias" -#: c-family/c-common.c:7533 +#: c-family/c-common.c:7555 #, fuzzy, gcc-internal-format msgid "weak %q+D cannot be defined %qE" msgstr "Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ %q+#D недопуÑтима," -#: c-family/c-common.c:7550 +#: c-family/c-common.c:7572 #, fuzzy, gcc-internal-format msgid "attribute %qE argument not a string" msgstr "аргумент атрибута %qs не ÑвлÑетÑÑ Ñтроковой конÑтантой" -#: c-family/c-common.c:7626 +#: c-family/c-common.c:7648 #, fuzzy, gcc-internal-format msgid "indirect function %q+D cannot be declared weakref" msgstr "недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ %qs как %<mutable%>" -#: c-family/c-common.c:7648 +#: c-family/c-common.c:7670 #, fuzzy, gcc-internal-format msgid "weakref attribute must appear before alias attribute" msgstr "%Jатрибут weakref должен задаватьÑÑ Ð´Ð¾ атрибута alias" -#: c-family/c-common.c:7677 +#: c-family/c-common.c:7699 #, gcc-internal-format msgid "%qE attribute ignored on non-class types" msgstr "атрибут %qE Ð´Ð»Ñ Ð½Ðµ клаÑÑовых типов игнорируетÑÑ" -#: c-family/c-common.c:7683 +#: c-family/c-common.c:7705 #, fuzzy, gcc-internal-format msgid "%qE attribute ignored because %qT is already defined" msgstr "атрибут %qE Ð´Ð»Ñ Ð½Ðµ клаÑÑовых типов игнорируетÑÑ" -#: c-family/c-common.c:7696 +#: c-family/c-common.c:7718 #, gcc-internal-format msgid "visibility argument not a string" msgstr "аргумент атрибута visibility не ÑвлÑетÑÑ Ñ‚ÐµÐºÑтовой Ñтрокой" -#: c-family/c-common.c:7708 +#: c-family/c-common.c:7730 #, gcc-internal-format msgid "%qE attribute ignored on types" msgstr "атрибут %qE Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ð¾Ð² игнорируетÑÑ" -#: c-family/c-common.c:7724 +#: c-family/c-common.c:7746 #, gcc-internal-format msgid "visibility argument must be one of \"default\", \"hidden\", \"protected\" or \"internal\"" msgstr "аргумент атрибута visibility должен быть \"default\", \"hidden\", \"protected\" или \"internal\"" -#: c-family/c-common.c:7735 +#: c-family/c-common.c:7757 #, fuzzy, gcc-internal-format msgid "%qD redeclared with different visibility" msgstr "%J%qD повторно декларирован как Ñимвол другого вида" -#: c-family/c-common.c:7738 c-family/c-common.c:7742 +#: c-family/c-common.c:7760 c-family/c-common.c:7764 #, gcc-internal-format msgid "%qD was declared %qs which implies default visibility" msgstr "" -#: c-family/c-common.c:7826 +#: c-family/c-common.c:7848 #, gcc-internal-format msgid "tls_model argument not a string" msgstr "аргумент атрибута tls_model не ÑвлÑетÑÑ Ñ‚ÐµÐºÑтовой Ñтрокой" -#: c-family/c-common.c:7839 +#: c-family/c-common.c:7861 #, 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-family/c-common.c:7859 c-family/c-common.c:7965 c-family/c-common.c:8950 +#: c-family/c-common.c:7881 c-family/c-common.c:7987 c-family/c-common.c:8970 #: config/m32c/m32c.c:2926 #, fuzzy, gcc-internal-format msgid "%qE attribute applies only to functions" msgstr "%J%qE: атрибут допуÑтим только Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¹" -#: c-family/c-common.c:7865 c-family/c-common.c:7971 c-family/c-common.c:8956 +#: c-family/c-common.c:7887 c-family/c-common.c:7993 c-family/c-common.c:8976 #, fuzzy, gcc-internal-format msgid "can%'t set %qE attribute after definition" msgstr "%Jатрибут %qE Ð½ÐµÐ»ÑŒÐ·Ñ ÑƒÑтановить поÑле Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð°" -#: c-family/c-common.c:7911 +#: c-family/c-common.c:7933 #, gcc-internal-format msgid "alloc_size parameter outside range" msgstr "" -#: c-family/c-common.c:8029 +#: c-family/c-common.c:8051 #, fuzzy, gcc-internal-format msgid "%qE attribute duplicated" msgstr "атрибут %qE проигнорирован" -#: c-family/c-common.c:8031 +#: c-family/c-common.c:8053 #, fuzzy, gcc-internal-format msgid "%qE attribute follows %qE" msgstr "атрибут %qE Ð´Ð»Ñ %qE проигнорирован" -#: c-family/c-common.c:8130 +#: c-family/c-common.c:8152 #, fuzzy, gcc-internal-format msgid "type was previously declared %qE" msgstr "Ñто предыдущее определение `%#D'" -#: c-family/c-common.c:8183 +#: c-family/c-common.c:8205 #, fuzzy, gcc-internal-format msgid "%qE argument not an identifier" msgstr "аргумент атрибута cleanup - не идентификатор" -#: c-family/c-common.c:8194 +#: c-family/c-common.c:8216 #, fuzzy, gcc-internal-format msgid "%qD is not compatible with %qD" msgstr "отÑутÑтвует Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ %qD в %qD" -#: c-family/c-common.c:8197 +#: c-family/c-common.c:8219 #, fuzzy, gcc-internal-format msgid "transaction_wrap argument is not a function" msgstr "аргумент атрибута cleanup - не функциÑ" -#: c-family/c-common.c:8245 +#: c-family/c-common.c:8267 #, fuzzy, gcc-internal-format msgid "deprecated message is not a string" msgstr "аргумент атрибута %qs не ÑвлÑетÑÑ Ñтроковой конÑтантой" -#: c-family/c-common.c:8286 +#: c-family/c-common.c:8308 #, gcc-internal-format msgid "%qE attribute ignored for %qE" msgstr "атрибут %qE Ð´Ð»Ñ %qE проигнорирован" -#: c-family/c-common.c:8346 +#: c-family/c-common.c:8368 #, gcc-internal-format msgid "invalid vector type for attribute %qE" msgstr "неверно задан векторный тип Ð´Ð»Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð° %qE" -#: c-family/c-common.c:8352 ada/gcc-interface/utils.c:6307 +#: c-family/c-common.c:8374 ada/gcc-interface/utils.c:6307 #: ada/gcc-interface/utils.c:6401 #, gcc-internal-format msgid "vector size not an integral multiple of component size" msgstr "размер вектора не кратен размеру компонент" -#: c-family/c-common.c:8358 ada/gcc-interface/utils.c:6313 +#: c-family/c-common.c:8380 ada/gcc-interface/utils.c:6313 #: ada/gcc-interface/utils.c:6407 #, gcc-internal-format msgid "zero vector size" msgstr "нулевой размер вектора" -#: c-family/c-common.c:8366 ada/gcc-interface/utils.c:6321 +#: c-family/c-common.c:8388 ada/gcc-interface/utils.c:6321 #: ada/gcc-interface/utils.c:6414 #, gcc-internal-format msgid "number of components of the vector not a power of two" msgstr "чиÑло компонент вектора не ÑвлÑетÑÑ Ñтепенью двойки" -#: c-family/c-common.c:8394 ada/gcc-interface/utils.c:6048 +#: c-family/c-common.c:8416 ada/gcc-interface/utils.c:6048 #, gcc-internal-format msgid "nonnull attribute without arguments on a non-prototype" msgstr "непуÑтой атрибут без аргументов допуÑтим только в прототипах" -#: c-family/c-common.c:8408 ada/gcc-interface/utils.c:6062 +#: c-family/c-common.c:8430 ada/gcc-interface/utils.c:6062 #, gcc-internal-format, gfc-internal-format msgid "nonnull argument has invalid operand number (argument %lu)" msgstr "в непуÑтом аргументе задан неверный номер операнда (аргумент %lu)" -#: c-family/c-common.c:8430 ada/gcc-interface/utils.c:6084 +#: c-family/c-common.c:8452 ada/gcc-interface/utils.c:6084 #, gcc-internal-format, gfc-internal-format msgid "nonnull argument with out-of-range operand number (argument %lu, operand %lu)" msgstr "непуÑтой аргумент Ñодержит номер операнда вне диапазона (аргумент %lu, операнд %lu)" -#: c-family/c-common.c:8438 ada/gcc-interface/utils.c:6093 +#: c-family/c-common.c:8460 ada/gcc-interface/utils.c:6093 #, gcc-internal-format, gfc-internal-format msgid "nonnull argument references non-pointer operand (argument %lu, operand %lu)" msgstr "непуÑтой аргумент ÑÑылаетÑÑ Ð½Ð° операнд, не ÑвлÑющийÑÑ ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»ÐµÐ¼ (аргумент %lu, операнд %lu)" -#: c-family/c-common.c:8533 +#: c-family/c-common.c:8555 #, fuzzy, gcc-internal-format msgid "not enough variable arguments to fit a sentinel" msgstr "Ñлишком мало аргументов функции" -#: c-family/c-common.c:8547 +#: c-family/c-common.c:8569 #, fuzzy, gcc-internal-format msgid "missing sentinel in function call" msgstr "Запретить вызовы функций отноÑительно PC" -#: c-family/c-common.c:8588 +#: c-family/c-common.c:8610 #, gcc-internal-format, gfc-internal-format msgid "null argument where non-null required (argument %lu)" msgstr "пуÑтой аргумент в позиции, где требуетÑÑ Ð½ÐµÐ¿ÑƒÑтой (аргумент %lu)" -#: c-family/c-common.c:8653 +#: c-family/c-common.c:8675 #, gcc-internal-format msgid "cleanup argument not an identifier" msgstr "аргумент атрибута cleanup - не идентификатор" -#: c-family/c-common.c:8660 +#: c-family/c-common.c:8682 #, gcc-internal-format msgid "cleanup argument not a function" msgstr "аргумент атрибута cleanup - не функциÑ" -#: c-family/c-common.c:8697 +#: c-family/c-common.c:8719 #, gcc-internal-format msgid "%qE attribute requires prototypes with named arguments" msgstr "в атрибуте %qE требуетÑÑ Ð¿Ñ€Ð¾Ñ‚Ð¾Ñ‚Ð¸Ð¿ Ñ Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð½Ñ‹Ð¼Ð¸ аргументами" -#: c-family/c-common.c:8705 +#: c-family/c-common.c:8727 #, gcc-internal-format msgid "%qE attribute only applies to variadic functions" msgstr "атрибут %qE допуÑтим только Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¹ Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ð¼ чиÑлом аргументом" -#: c-family/c-common.c:8717 ada/gcc-interface/utils.c:6135 +#: c-family/c-common.c:8739 ada/gcc-interface/utils.c:6135 #, gcc-internal-format msgid "requested position is not an integer constant" msgstr "Ð·Ð°Ð´Ð°Ð½Ð½Ð°Ñ Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ Ð½Ðµ ÑвлÑетÑÑ Ñ†ÐµÐ»Ð¾Ð¹ конÑтантой" -#: c-family/c-common.c:8725 ada/gcc-interface/utils.c:6142 +#: c-family/c-common.c:8747 ada/gcc-interface/utils.c:6142 #, gcc-internal-format msgid "requested position is less than zero" msgstr "Ð·Ð°Ð´Ð°Ð½Ð½Ð°Ñ Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ Ð¼ÐµÐ½ÑŒÑˆÐµ нулÑ" -#: c-family/c-common.c:8843 +#: c-family/c-common.c:8865 #, gcc-internal-format, gfc-internal-format msgid "bad option %s to optimize attribute" msgstr "" -#: c-family/c-common.c:8846 +#: c-family/c-common.c:8868 #, gcc-internal-format, gfc-internal-format msgid "bad option %s to pragma attribute" msgstr "" -#: c-family/c-common.c:9075 +#: c-family/c-common.c:9095 #, fuzzy, gcc-internal-format msgid "not enough arguments to function %qE" msgstr "Ñлишком мало аргументов в вызове функции %qE" -#: c-family/c-common.c:9081 c-family/c-common.c:10007 c/c-typeck.c:2954 +#: c-family/c-common.c:9101 c-family/c-common.c:10027 c/c-typeck.c:2954 #, gcc-internal-format msgid "too many arguments to function %qE" msgstr "Ñлишком много аргументов в вызове функции %qE" -#: c-family/c-common.c:9111 c-family/c-common.c:9157 +#: c-family/c-common.c:9131 c-family/c-common.c:9177 #, fuzzy, gcc-internal-format msgid "non-floating-point argument in call to function %qE" msgstr "не плавающий аргумент в вызове функции %qs" -#: c-family/c-common.c:9134 +#: c-family/c-common.c:9154 #, fuzzy, gcc-internal-format msgid "non-floating-point arguments in call to function %qE" msgstr "не плавающий аргумент в вызове функции %qs" -#: c-family/c-common.c:9150 +#: c-family/c-common.c:9170 #, fuzzy, gcc-internal-format msgid "non-const integer argument %u in call to function %qE" msgstr "не плавающий аргумент в вызове функции %qs" -#: c-family/c-common.c:9170 +#: c-family/c-common.c:9190 #, fuzzy, gcc-internal-format msgid "non-integer argument 3 in call to function %qE" msgstr "не плавающий аргумент в вызове функции %qs" -#: c-family/c-common.c:9496 +#: c-family/c-common.c:9516 #, gcc-internal-format msgid "cannot apply %<offsetof%> to static data member %qD" msgstr "недопуÑтимое применение %<offsetof%> к ÑтатичеÑкому Ñлементу данных %qD" -#: c-family/c-common.c:9501 +#: c-family/c-common.c:9521 #, fuzzy, gcc-internal-format msgid "cannot apply %<offsetof%> when %<operator[]%> is overloaded" msgstr "недопуÑтимое применение %<offsetof%> к ÑтатичеÑкому Ñлементу данных %qD" -#: c-family/c-common.c:9508 +#: c-family/c-common.c:9528 #, fuzzy, gcc-internal-format msgid "cannot apply %<offsetof%> to a non constant address" msgstr "некорректное иÑпользование неÑтатичеÑкой функции-Ñлемента %qD" -#: c-family/c-common.c:9521 cp/typeck.c:5289 +#: c-family/c-common.c:9541 cp/typeck.c:5289 #, gcc-internal-format msgid "attempt to take address of bit-field structure member %qD" msgstr "взÑтие адреÑа от битового Ð¿Ð¾Ð»Ñ Ñтруктуры %qD" -#: c-family/c-common.c:9573 +#: c-family/c-common.c:9593 #, gcc-internal-format msgid "index %E denotes an offset greater than size of %qT" msgstr "" -#: c-family/c-common.c:9613 +#: c-family/c-common.c:9633 #, gcc-internal-format msgid "the omitted middle operand in ?: will always be %<true%>, suggest explicit middle operand" msgstr "" -#: c-family/c-common.c:9634 +#: c-family/c-common.c:9654 #, fuzzy, gcc-internal-format msgid "assignment of member %qD in read-only object" msgstr "приÑваивание позиции в памÑти, доÑтупной только на чтение" -#: c-family/c-common.c:9636 +#: c-family/c-common.c:9656 #, fuzzy, gcc-internal-format msgid "increment of member %qD in read-only object" msgstr "Ð¸Ð½ÐºÑ€ÐµÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ð¸ в памÑти, доÑтупной только на чтение" -#: c-family/c-common.c:9638 +#: c-family/c-common.c:9658 #, fuzzy, gcc-internal-format msgid "decrement of member %qD in read-only object" msgstr "Ð´ÐµÐºÑ€ÐµÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ð¸ в памÑти, доÑтупной только на чтение" -#: c-family/c-common.c:9640 +#: c-family/c-common.c:9660 #, fuzzy, gcc-internal-format msgid "member %qD in read-only object used as %<asm%> output" msgstr "доÑÑ‚ÑƒÐ¿Ð½Ð°Ñ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ на чтение Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ Ð¿Ð°Ð¼Ñти иÑпользована как выходной операнд %<asm%>" -#: c-family/c-common.c:9644 +#: c-family/c-common.c:9664 #, gcc-internal-format msgid "assignment of read-only member %qD" msgstr "приÑваивание Ñлементу %qD, доÑтупному только на чтение" -#: c-family/c-common.c:9645 +#: c-family/c-common.c:9665 #, gcc-internal-format msgid "increment of read-only member %qD" msgstr "Ð¸Ð½ÐºÑ€ÐµÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ñлемента %qD, доÑтупного только на чтение" -#: c-family/c-common.c:9646 +#: c-family/c-common.c:9666 #, gcc-internal-format msgid "decrement of read-only member %qD" msgstr "Ð´ÐµÐºÑ€ÐµÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ñлемента %qD, доÑтупного только на чтение" -#: c-family/c-common.c:9647 +#: c-family/c-common.c:9667 #, gcc-internal-format msgid "read-only member %qD used as %<asm%> output" msgstr "доÑтупный только на чтение Ñлемент %qD иÑпользован как выходной операнд %<asm%>" -#: c-family/c-common.c:9651 +#: c-family/c-common.c:9671 #, gcc-internal-format msgid "assignment of read-only variable %qD" msgstr "приÑваивание переменной %qD, доÑтупной только на чтение" -#: c-family/c-common.c:9652 +#: c-family/c-common.c:9672 #, gcc-internal-format msgid "increment of read-only variable %qD" msgstr "Ð¸Ð½ÐºÑ€ÐµÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð¾Ð¹ %qD, доÑтупной только на чтение" -#: c-family/c-common.c:9653 +#: c-family/c-common.c:9673 #, gcc-internal-format msgid "decrement of read-only variable %qD" msgstr "Ð´ÐµÐºÑ€ÐµÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð¾Ð¹ %qD, доÑтупной только на чтение" -#: c-family/c-common.c:9654 +#: c-family/c-common.c:9674 #, gcc-internal-format msgid "read-only variable %qD used as %<asm%> output" msgstr "доÑÑ‚ÑƒÐ¿Ð½Ð°Ñ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ на чтение Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ %qD иÑпользована как выходной операнд %<asm%>" -#: c-family/c-common.c:9657 +#: c-family/c-common.c:9677 #, fuzzy, gcc-internal-format msgid "assignment of read-only parameter %qD" msgstr "приÑваивание Ñлементу %qD, доÑтупному только на чтение" -#: c-family/c-common.c:9658 +#: c-family/c-common.c:9678 #, fuzzy, gcc-internal-format msgid "increment of read-only parameter %qD" msgstr "Ð¸Ð½ÐºÑ€ÐµÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ñлемента %qD, доÑтупного только на чтение" -#: c-family/c-common.c:9659 +#: c-family/c-common.c:9679 #, fuzzy, gcc-internal-format msgid "decrement of read-only parameter %qD" msgstr "Ð´ÐµÐºÑ€ÐµÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ñлемента %qD, доÑтупного только на чтение" -#: c-family/c-common.c:9660 +#: c-family/c-common.c:9680 #, fuzzy, gcc-internal-format msgid "read-only parameter %qD use as %<asm%> output" msgstr "доÑтупный только на чтение Ñлемент %qD иÑпользован как выходной операнд %<asm%>" -#: c-family/c-common.c:9665 +#: c-family/c-common.c:9685 #, fuzzy, gcc-internal-format msgid "assignment of read-only named return value %qD" msgstr "приÑваивание переменной %qD, доÑтупной только на чтение" -#: c-family/c-common.c:9667 +#: c-family/c-common.c:9687 #, fuzzy, gcc-internal-format msgid "increment of read-only named return value %qD" msgstr "приÑваивание переменной %qD, доÑтупной только на чтение" -#: c-family/c-common.c:9669 +#: c-family/c-common.c:9689 #, fuzzy, gcc-internal-format msgid "decrement of read-only named return value %qD" msgstr "приÑваивание переменной %qD, доÑтупной только на чтение" -#: c-family/c-common.c:9671 +#: c-family/c-common.c:9691 #, fuzzy, gcc-internal-format msgid "read-only named return value %qD used as %<asm%>output" msgstr "доÑÑ‚ÑƒÐ¿Ð½Ð°Ñ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ на чтение Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ %qD иÑпользована как выходной операнд %<asm%>" -#: c-family/c-common.c:9676 +#: c-family/c-common.c:9696 #, fuzzy, gcc-internal-format msgid "assignment of function %qD" msgstr "вызов не функции %qD" -#: c-family/c-common.c:9677 +#: c-family/c-common.c:9697 #, fuzzy, gcc-internal-format msgid "increment of function %qD" msgstr "вызов не функции %qD" -#: c-family/c-common.c:9678 +#: c-family/c-common.c:9698 #, fuzzy, gcc-internal-format msgid "decrement of function %qD" msgstr "вызов не функции %qD" -#: c-family/c-common.c:9679 +#: c-family/c-common.c:9699 #, fuzzy, gcc-internal-format msgid "function %qD used as %<asm%> output" msgstr "доÑÑ‚ÑƒÐ¿Ð½Ð°Ñ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ на чтение Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ Ð¿Ð°Ð¼Ñти иÑпользована как выходной операнд %<asm%>" -#: c-family/c-common.c:9682 c/c-typeck.c:3902 +#: c-family/c-common.c:9702 c/c-typeck.c:3902 #, fuzzy, gcc-internal-format msgid "assignment of read-only location %qE" msgstr "приÑваивание позиции в памÑти, доÑтупной только на чтение" -#: c-family/c-common.c:9683 c/c-typeck.c:3905 +#: c-family/c-common.c:9703 c/c-typeck.c:3905 #, fuzzy, gcc-internal-format msgid "increment of read-only location %qE" msgstr "Ð¸Ð½ÐºÑ€ÐµÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ð¸ в памÑти, доÑтупной только на чтение" -#: c-family/c-common.c:9684 c/c-typeck.c:3908 +#: c-family/c-common.c:9704 c/c-typeck.c:3908 #, fuzzy, gcc-internal-format msgid "decrement of read-only location %qE" msgstr "Ð´ÐµÐºÑ€ÐµÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ð¸ в памÑти, доÑтупной только на чтение" -#: c-family/c-common.c:9685 +#: c-family/c-common.c:9705 #, fuzzy, gcc-internal-format msgid "read-only location %qE used as %<asm%> output" msgstr "доÑÑ‚ÑƒÐ¿Ð½Ð°Ñ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ на чтение Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ Ð¿Ð°Ð¼Ñти иÑпользована как выходной операнд %<asm%>" -#: c-family/c-common.c:9699 +#: c-family/c-common.c:9719 #, fuzzy, gcc-internal-format msgid "lvalue required as left operand of assignment" msgstr "Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð»ÐµÐ²Ð°Ñ Ñ‡Ð°ÑÑ‚ÑŒ в приÑваивании" -#: c-family/c-common.c:9702 +#: c-family/c-common.c:9722 #, gcc-internal-format msgid "lvalue required as increment operand" msgstr "" -#: c-family/c-common.c:9705 +#: c-family/c-common.c:9725 #, gcc-internal-format msgid "lvalue required as decrement operand" msgstr "" -#: c-family/c-common.c:9708 +#: c-family/c-common.c:9728 #, gcc-internal-format msgid "lvalue required as unary %<&%> operand" msgstr "" -#: c-family/c-common.c:9711 +#: c-family/c-common.c:9731 #, fuzzy, gcc-internal-format msgid "lvalue required in asm statement" msgstr "неверное lvalue-выражение в операторе asm" -#: c-family/c-common.c:9728 +#: c-family/c-common.c:9748 #, fuzzy, gcc-internal-format msgid "invalid type argument (have %qT)" msgstr "неверный аргумент Ð´Ð»Ñ %qs" -#: c-family/c-common.c:9732 +#: c-family/c-common.c:9752 #, fuzzy, gcc-internal-format msgid "invalid type argument of array indexing (have %qT)" msgstr "неверный аргумент Ð´Ð»Ñ %qs" -#: c-family/c-common.c:9737 +#: c-family/c-common.c:9757 #, fuzzy, gcc-internal-format msgid "invalid type argument of unary %<*%> (have %qT)" msgstr "неверный аргумент Ð´Ð»Ñ %qs" -#: c-family/c-common.c:9742 +#: c-family/c-common.c:9762 #, fuzzy, gcc-internal-format msgid "invalid type argument of %<->%> (have %qT)" msgstr "неверный аргумент Ð´Ð»Ñ %qs" -#: c-family/c-common.c:9747 +#: c-family/c-common.c:9767 #, fuzzy, gcc-internal-format msgid "invalid type argument of implicit conversion (have %qT)" msgstr "неверный аргумент Ð´Ð»Ñ %qs" -#: c-family/c-common.c:9877 cp/init.c:2373 +#: c-family/c-common.c:9897 cp/init.c:2373 #, fuzzy, gcc-internal-format msgid "size of array is too large" msgstr "размер маÑÑива %qs Ñлишком велик" -#: c-family/c-common.c:9925 c-family/c-common.c:9981 c/c-typeck.c:3185 +#: c-family/c-common.c:9945 c-family/c-common.c:10001 c/c-typeck.c:3185 #, gcc-internal-format msgid "too few arguments to function %qE" msgstr "Ñлишком мало аргументов в вызове функции %qE" -#: c-family/c-common.c:9942 config/mep/mep.c:6175 c/c-typeck.c:5687 +#: c-family/c-common.c:9962 config/mep/mep.c:6175 c/c-typeck.c:5687 #, gcc-internal-format msgid "incompatible type for argument %d of %qE" msgstr "неÑовмеÑтимый тип аргумента %d функции %qE" -#: c-family/c-common.c:10074 +#: c-family/c-common.c:10094 #, fuzzy, gcc-internal-format msgid "incorrect number of arguments to function %qE" msgstr "Ñлишком мало аргументов в вызове функции %qE" -#: c-family/c-common.c:10082 +#: c-family/c-common.c:10102 #, fuzzy, gcc-internal-format msgid "argument 1 of %qE must be a non-void pointer type" msgstr "иÑпользование шаблона клаÑÑа %qT в качеÑтве выражениÑ" -#: c-family/c-common.c:10091 +#: c-family/c-common.c:10111 #, fuzzy, gcc-internal-format msgid "argument 1 of %qE must be a pointer to a constant size type" msgstr "%Hпервый аргумент %D должен быть указателем, второй - целой конÑтантой" -#: c-family/c-common.c:10102 +#: c-family/c-common.c:10122 #, fuzzy, gcc-internal-format msgid "argument 1 of %qE must be a pointer to a nonzero size object" msgstr "%Hпервый аргумент %D должен быть указателем, второй - целой конÑтантой" -#: c-family/c-common.c:10117 +#: c-family/c-common.c:10137 #, fuzzy, gcc-internal-format msgid "argument %d of %qE must be a pointer type" msgstr "иÑпользование шаблона клаÑÑа %qT в качеÑтве выражениÑ" -#: c-family/c-common.c:10124 +#: c-family/c-common.c:10144 #, fuzzy, gcc-internal-format msgid "size mismatch in argument %d of %qE" msgstr "при передаче аргумента %P функции `%+D'" -#: c-family/c-common.c:10140 +#: c-family/c-common.c:10160 #, fuzzy, gcc-internal-format msgid "invalid memory model argument %d of %qE" msgstr "неÑовмеÑтимый тип аргумента %d функции %qE" -#: c-family/c-common.c:10147 +#: c-family/c-common.c:10167 #, fuzzy, gcc-internal-format msgid "non-integer memory model argument %d of %qE" msgstr "неÑовмеÑтимый тип аргумента %d функции %qE" -#: c-family/c-common.c:10674 +#: c-family/c-common.c:10694 #, gcc-internal-format msgid "array subscript has type %<char%>" msgstr "Ð¸Ð½Ð´ÐµÐºÑ Ð¼Ð°ÑÑива имеет тип %<char%>" -#: c-family/c-common.c:10709 c-family/c-common.c:10712 +#: c-family/c-common.c:10729 c-family/c-common.c:10732 #, fuzzy, gcc-internal-format msgid "suggest parentheses around %<+%> inside %<<<%>" msgstr "рекомендуетÑÑ Ð¾ÐºÑ€ÑƒÐ¶Ð°Ñ‚ÑŒ Ñкобками + или -, иÑпользуемые в операндах операций Ñдвига" -#: c-family/c-common.c:10715 c-family/c-common.c:10718 +#: c-family/c-common.c:10735 c-family/c-common.c:10738 #, fuzzy, gcc-internal-format msgid "suggest parentheses around %<-%> inside %<<<%>" msgstr "рекомендуетÑÑ Ð¾ÐºÑ€ÑƒÐ¶Ð°Ñ‚ÑŒ Ñкобками + или -, иÑпользуемые в операндах операций Ñдвига" -#: c-family/c-common.c:10724 c-family/c-common.c:10727 +#: c-family/c-common.c:10744 c-family/c-common.c:10747 #, fuzzy, gcc-internal-format msgid "suggest parentheses around %<+%> inside %<>>%>" msgstr "рекомендуетÑÑ Ð¾ÐºÑ€ÑƒÐ¶Ð°Ñ‚ÑŒ Ñкобками + или -, иÑпользуемые в операндах операций Ñдвига" -#: c-family/c-common.c:10730 c-family/c-common.c:10733 +#: c-family/c-common.c:10750 c-family/c-common.c:10753 #, fuzzy, gcc-internal-format msgid "suggest parentheses around %<-%> inside %<>>%>" msgstr "рекомендуетÑÑ Ð¾ÐºÑ€ÑƒÐ¶Ð°Ñ‚ÑŒ Ñкобками + или -, иÑпользуемые в операндах операций Ñдвига" -#: c-family/c-common.c:10739 c-family/c-common.c:10742 +#: c-family/c-common.c:10759 c-family/c-common.c:10762 #, fuzzy, gcc-internal-format msgid "suggest parentheses around %<&&%> within %<||%>" msgstr "рекомендуетÑÑ Ð¾ÐºÑ€ÑƒÐ¶Ð°Ñ‚ÑŒ Ñкобками выражение &&, иÑпользуемое в операнде ||" -#: c-family/c-common.c:10749 c-family/c-common.c:10753 +#: c-family/c-common.c:10769 c-family/c-common.c:10773 #, fuzzy, gcc-internal-format msgid "suggest parentheses around arithmetic in operand of %<|%>" msgstr "рекомендуетÑÑ Ð¾ÐºÑ€ÑƒÐ¶Ð°Ñ‚ÑŒ Ñкобками арифметичеÑкую операцию, иÑпользуемую в операнде |" -#: c-family/c-common.c:10757 c-family/c-common.c:10760 +#: c-family/c-common.c:10777 c-family/c-common.c:10780 #, fuzzy, gcc-internal-format msgid "suggest parentheses around comparison in operand of %<|%>" msgstr "рекомендуетÑÑ Ð¾ÐºÑ€ÑƒÐ¶Ð°Ñ‚ÑŒ Ñкобками Ñравнение, иÑпользуемое в операнде |" -#: c-family/c-common.c:10765 +#: c-family/c-common.c:10785 #, gcc-internal-format msgid "suggest parentheses around operand of %<!%> or change %<|%> to %<||%> or %<!%> to %<~%>" msgstr "" -#: c-family/c-common.c:10773 c-family/c-common.c:10777 +#: c-family/c-common.c:10793 c-family/c-common.c:10797 #, fuzzy, gcc-internal-format msgid "suggest parentheses around arithmetic in operand of %<^%>" msgstr "рекомендуетÑÑ Ð¾ÐºÑ€ÑƒÐ¶Ð°Ñ‚ÑŒ Ñкобками арифметичеÑкую операцию, иÑпользуемую в операнде ^" -#: c-family/c-common.c:10781 c-family/c-common.c:10784 +#: c-family/c-common.c:10801 c-family/c-common.c:10804 #, fuzzy, gcc-internal-format msgid "suggest parentheses around comparison in operand of %<^%>" msgstr "рекомендуетÑÑ Ð¾ÐºÑ€ÑƒÐ¶Ð°Ñ‚ÑŒ Ñкобками Ñравнение, иÑпользуемое в операнде ^" -#: c-family/c-common.c:10790 c-family/c-common.c:10793 +#: c-family/c-common.c:10810 c-family/c-common.c:10813 #, fuzzy, gcc-internal-format msgid "suggest parentheses around %<+%> in operand of %<&%>" msgstr "рекомендуетÑÑ Ð¾ÐºÑ€ÑƒÐ¶Ð°Ñ‚ÑŒ Ñкобками + или -, иÑпользуемые в операнде &" -#: c-family/c-common.c:10796 c-family/c-common.c:10799 +#: c-family/c-common.c:10816 c-family/c-common.c:10819 #, fuzzy, gcc-internal-format msgid "suggest parentheses around %<-%> in operand of %<&%>" msgstr "рекомендуетÑÑ Ð¾ÐºÑ€ÑƒÐ¶Ð°Ñ‚ÑŒ Ñкобками + или -, иÑпользуемые в операнде &" -#: c-family/c-common.c:10803 c-family/c-common.c:10806 +#: c-family/c-common.c:10823 c-family/c-common.c:10826 #, fuzzy, gcc-internal-format msgid "suggest parentheses around comparison in operand of %<&%>" msgstr "рекомендуетÑÑ Ð¾ÐºÑ€ÑƒÐ¶Ð°Ñ‚ÑŒ Ñкобками Ñравнение, иÑпользуемое в операнде &" -#: c-family/c-common.c:10811 +#: c-family/c-common.c:10831 #, gcc-internal-format msgid "suggest parentheses around operand of %<!%> or change %<&%> to %<&&%> or %<!%> to %<~%>" msgstr "" -#: c-family/c-common.c:10818 c-family/c-common.c:10821 +#: c-family/c-common.c:10838 c-family/c-common.c:10841 #, fuzzy, gcc-internal-format msgid "suggest parentheses around comparison in operand of %<==%>" msgstr "рекомендуетÑÑ Ð¾ÐºÑ€ÑƒÐ¶Ð°Ñ‚ÑŒ Ñкобками Ñравнение, иÑпользуемое в операнде |" -#: c-family/c-common.c:10826 c-family/c-common.c:10829 +#: c-family/c-common.c:10846 c-family/c-common.c:10849 #, fuzzy, gcc-internal-format msgid "suggest parentheses around comparison in operand of %<!=%>" msgstr "рекомендуетÑÑ Ð¾ÐºÑ€ÑƒÐ¶Ð°Ñ‚ÑŒ Ñкобками Ñравнение, иÑпользуемое в операнде |" -#: c-family/c-common.c:10839 c-family/c-common.c:10845 +#: c-family/c-common.c:10859 c-family/c-common.c:10865 #, fuzzy, gcc-internal-format msgid "comparisons like %<X<=Y<=Z%> do not have their mathematical meaning" msgstr "ÑÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ Ð²Ð¸Ð´Ð° X<=Y<=Z трактуютÑÑ Ð² C не так, как в математике" -#: c-family/c-common.c:10861 +#: c-family/c-common.c:10881 #, gcc-internal-format msgid "label %q+D defined but not used" msgstr "метка %q+D определена, но не иÑпользуетÑÑ" -#: c-family/c-common.c:10863 +#: c-family/c-common.c:10883 #, gcc-internal-format msgid "label %q+D declared but not defined" msgstr "метка %q+D декларирована, но не определена" -#: c-family/c-common.c:10879 +#: c-family/c-common.c:10899 #, gcc-internal-format msgid "division by zero" msgstr "деление на ноль" -#: c-family/c-common.c:10911 +#: c-family/c-common.c:10931 #, fuzzy, gcc-internal-format msgid "comparison between types %qT and %qT" msgstr "Ñравнение между типами `%#T' и `%#T'" -#: c-family/c-common.c:10962 +#: c-family/c-common.c:10982 #, gcc-internal-format msgid "comparison between signed and unsigned integer expressions" msgstr "Ñравнение знакового и беззнакового целых выражений" -#: c-family/c-common.c:11013 +#: c-family/c-common.c:11033 #, gcc-internal-format msgid "promoted ~unsigned is always non-zero" msgstr "" -#: c-family/c-common.c:11016 +#: c-family/c-common.c:11036 #, gcc-internal-format msgid "comparison of promoted ~unsigned with constant" msgstr "Ñравнение ~unsigned Ñ ÐºÐ¾Ð½Ñтантой" -#: c-family/c-common.c:11026 +#: c-family/c-common.c:11046 #, gcc-internal-format msgid "comparison of promoted ~unsigned with unsigned" msgstr "Ñравнение ~unsigned Ñ unsigned" -#: c-family/c-common.c:11204 +#: c-family/c-common.c:11224 #, fuzzy, gcc-internal-format msgid "typedef %qD locally defined but not used" msgstr "%q+D определена, но нигде не иÑпользуетÑÑ" -#: c-family/c-common.c:11443 +#: c-family/c-common.c:11463 #, fuzzy, gcc-internal-format msgid "index value is out of bound" msgstr "Ð¸Ð½Ð´ÐµÐºÑ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð½Ð¾Ñти %d выходит за границы в %L" -#: c-family/c-common.c:11481 c-family/c-common.c:11531 -#: c-family/c-common.c:11546 +#: c-family/c-common.c:11501 c-family/c-common.c:11551 +#: c-family/c-common.c:11566 #, fuzzy, gcc-internal-format -#| msgid "conversion from %qT to %qT is ambiguous" msgid "conversion of scalar %qT to vector %qT involves truncation" msgstr "преобразование из %qT в %qT неоднозначно" @@ -20223,37 +20179,37 @@ msgstr "ошибка при Ñоздании прекомпилированноРmsgid "can%'t write to %s: %m" msgstr "ошибка запиÑи в %s: %m" -#: c-family/c-pch.c:191 +#: c-family/c-pch.c:193 #, gcc-internal-format msgid "can%'t write %s: %m" msgstr "ошибка запиÑи %s: %m" -#: c-family/c-pch.c:219 c-family/c-pch.c:260 c-family/c-pch.c:311 +#: c-family/c-pch.c:221 c-family/c-pch.c:262 c-family/c-pch.c:313 #, gcc-internal-format msgid "can%'t read %s: %m" msgstr "ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ %s: %m" -#: c-family/c-pch.c:417 +#: c-family/c-pch.c:419 #, gcc-internal-format msgid "pch_preprocess pragma should only be used with -fpreprocessed" msgstr "прагма pch_preprocess может иÑпользоватьÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð¼ -fpreprocessed" -#: c-family/c-pch.c:418 +#: c-family/c-pch.c:420 #, gcc-internal-format msgid "use #include instead" msgstr "иÑпользуйте директиву #include" -#: c-family/c-pch.c:424 +#: c-family/c-pch.c:426 #, gcc-internal-format msgid "%s: couldn%'t open PCH file: %m" msgstr "%s: ошибка Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ PCH файла %m" -#: c-family/c-pch.c:429 +#: c-family/c-pch.c:431 #, gcc-internal-format msgid "use -Winvalid-pch for more information" msgstr "Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÐµÐµ подробной диагноÑтики задайте -Winvalid-pch" -#: c-family/c-pch.c:430 +#: c-family/c-pch.c:432 #, gcc-internal-format, gfc-internal-format msgid "%s: PCH file was invalid" msgstr "%s: PCH-файл был некорректен" @@ -20736,7 +20692,6 @@ msgstr "" #: config/darwin.c:2689 #, fuzzy, gcc-internal-format -#| msgid "visibility attribute not supported in this configuration; ignored" msgid "protected visibility attribute not supported in this configuration; ignored" msgstr "атрибут видимоÑти не поддерживаетÑÑ Ð² данной конфигурации; определение игнорируетÑÑ" @@ -20873,19 +20828,16 @@ msgstr "поддержка Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð»Ñ VxWorks" #: config/aarch64/aarch64-builtins.c:1032 #, fuzzy, gcc-internal-format -#| msgid "incompatible type for argument %d of %qE" msgid "incompatible type for argument %d, expected %<const int%>" msgstr "неÑовмеÑтимый тип аргумента %d функции %qE" #: config/aarch64/aarch64.c:3643 #, fuzzy, gcc-internal-format -#| msgid "Enable function profiling" msgid "function profiling" msgstr "Включить профилирование функций" #: config/aarch64/aarch64.c:4623 #, fuzzy, gcc-internal-format -#| msgid "missing filename after %qs" msgid "missing feature modifier after %qs" msgstr "не задано Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° поÑле %qs" @@ -20897,7 +20849,6 @@ msgstr "неизвеÑÑ‚Ð½Ð°Ñ Ð¼Ð°ÑˆÐ¸Ð½Ð½Ñ‹Ð¹ режим %qs" #: config/aarch64/aarch64.c:4675 #, fuzzy, gcc-internal-format -#| msgid "missing path after %qs" msgid "missing arch name in -march=%qs" msgstr "не задан маршрут поÑле %qs" @@ -20909,7 +20860,6 @@ msgstr "некорректный аргумент %qs Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð° -mcpu" #: config/aarch64/aarch64.c:4724 #, fuzzy, gcc-internal-format -#| msgid "missing path after %qs" msgid "missing cpu name in -mcpu=%qs" msgstr "не задан маршрут поÑле %qs" @@ -20938,13 +20888,11 @@ msgstr "ИÑпользовать команды плавающей Ð°Ñ€Ð¸Ñ„Ð¼ÐµÑ #: config/aarch64/aarch64.c:6421 #, fuzzy, gcc-internal-format -#| msgid "operand number out of range" msgid "lane out of range" msgstr "номер операнда вне диапазона" #: config/aarch64/aarch64.c:6431 #, fuzzy, gcc-internal-format -#| msgid "constant argument out of range for %qs" msgid "constant out of range" msgstr "конÑтантный аргумент Ð´Ð»Ñ %qs вне диапазона" @@ -21180,195 +21128,193 @@ msgstr "" #: config/i386/i386.c:34639 config/i386/i386.c:34690 config/i386/i386.c:34762 #: config/m68k/m68k.c:729 config/mcore/mcore.c:3046 config/mep/mep.c:3887 #: config/mep/mep.c:3901 config/mep/mep.c:3975 config/rl78/rl78.c:480 -#: config/rs6000/rs6000.c:24833 config/rx/rx.c:2571 config/sh/sh.c:9515 -#: config/sh/sh.c:9533 config/sh/sh.c:9562 config/sh/sh.c:9644 -#: config/sh/sh.c:9667 config/spu/spu.c:3685 config/stormy16/stormy16.c:2207 +#: config/rs6000/rs6000.c:24833 config/rx/rx.c:2571 config/sh/sh.c:9512 +#: config/sh/sh.c:9530 config/sh/sh.c:9559 config/sh/sh.c:9641 +#: config/sh/sh.c:9664 config/spu/spu.c:3685 config/stormy16/stormy16.c:2207 #: config/v850/v850.c:2082 #, fuzzy, gcc-internal-format msgid "%qE attribute only applies to functions" msgstr "атрибут %qs допуÑтим только Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¹" -#: config/arm/arm.c:19315 +#: config/arm/arm.c:19325 #, gcc-internal-format msgid "unable to compute real location of stacked parameter" msgstr "невозможно вычиÑлить фактичеÑкое положение параметра в Ñтеке" -#: config/arm/arm.c:21257 +#: config/arm/arm.c:21267 #, fuzzy, gcc-internal-format msgid "argument must be a constant" msgstr "аргумент %qD не ÑвлÑетÑÑ ÐºÐ¾Ð½Ñтантой" #. @@@ better error message -#: config/arm/arm.c:21632 config/arm/arm.c:21736 +#: config/arm/arm.c:21642 config/arm/arm.c:21746 #, gcc-internal-format msgid "selector must be an immediate" msgstr "Ñелектор должен быть непоÑредÑтвенным значением" -#: config/arm/arm.c:21640 config/arm/arm.c:21685 config/arm/arm.c:21743 -#: config/arm/arm.c:21752 +#: config/arm/arm.c:21650 config/arm/arm.c:21695 config/arm/arm.c:21753 +#: config/arm/arm.c:21762 #, gcc-internal-format msgid "the range of selector should be in 0 to 7" msgstr "" -#: config/arm/arm.c:21645 config/arm/arm.c:21754 +#: config/arm/arm.c:21655 config/arm/arm.c:21764 #, gcc-internal-format msgid "the range of selector should be in 0 to 3" msgstr "" -#: config/arm/arm.c:21650 config/arm/arm.c:21756 +#: config/arm/arm.c:21660 config/arm/arm.c:21766 #, gcc-internal-format msgid "the range of selector should be in 0 to 1" msgstr "" -#: config/arm/arm.c:21822 +#: config/arm/arm.c:21832 #, gcc-internal-format msgid "mask must be an immediate" msgstr "маÑка должна быть непоÑредÑтвенным значением" -#: config/arm/arm.c:21827 +#: config/arm/arm.c:21837 #, fuzzy, gcc-internal-format msgid "the range of mask should be in 0 to 255" msgstr "аргумент атрибута %qs не ÑвлÑетÑÑ Ñ†ÐµÐ»Ð¾Ð¹ конÑтантой" -#: config/arm/arm.c:22015 +#: config/arm/arm.c:22025 #, gcc-internal-format msgid "the range of count should be in 0 to 32. please check the intrinsic _mm_rori_pi16 in code." msgstr "" -#: config/arm/arm.c:22017 +#: config/arm/arm.c:22027 #, gcc-internal-format msgid "the range of count should be in 0 to 32. please check the intrinsic _mm_rori_pi32 in code." msgstr "" -#: config/arm/arm.c:22019 +#: config/arm/arm.c:22029 #, gcc-internal-format msgid "the range of count should be in 0 to 32. please check the intrinsic _mm_ror_pi16 in code." msgstr "" -#: config/arm/arm.c:22021 +#: config/arm/arm.c:22031 #, gcc-internal-format msgid "the range of count should be in 0 to 32. please check the intrinsic _mm_ror_pi32 in code." msgstr "" -#: config/arm/arm.c:22027 +#: config/arm/arm.c:22037 #, gcc-internal-format msgid "the range of count should be in 0 to 64. please check the intrinsic _mm_rori_si64 in code." msgstr "" -#: config/arm/arm.c:22029 +#: config/arm/arm.c:22039 #, gcc-internal-format msgid "the range of count should be in 0 to 64. please check the intrinsic _mm_ror_si64 in code." msgstr "" -#: config/arm/arm.c:22034 +#: config/arm/arm.c:22044 #, gcc-internal-format msgid "the count should be no less than 0. please check the intrinsic _mm_srli_pi16 in code." msgstr "" -#: config/arm/arm.c:22036 +#: config/arm/arm.c:22046 #, gcc-internal-format msgid "the count should be no less than 0. please check the intrinsic _mm_srli_pi32 in code." msgstr "" -#: config/arm/arm.c:22038 +#: config/arm/arm.c:22048 #, gcc-internal-format msgid "the count should be no less than 0. please check the intrinsic _mm_srli_si64 in code." msgstr "" -#: config/arm/arm.c:22040 +#: config/arm/arm.c:22050 #, gcc-internal-format msgid "the count should be no less than 0. please check the intrinsic _mm_slli_pi16 in code." msgstr "" -#: config/arm/arm.c:22042 +#: config/arm/arm.c:22052 #, gcc-internal-format msgid "the count should be no less than 0. please check the intrinsic _mm_slli_pi32 in code." msgstr "" -#: config/arm/arm.c:22044 +#: config/arm/arm.c:22054 #, gcc-internal-format msgid "the count should be no less than 0. please check the intrinsic _mm_slli_si64 in code." msgstr "" -#: config/arm/arm.c:22046 +#: config/arm/arm.c:22056 #, gcc-internal-format msgid "the count should be no less than 0. please check the intrinsic _mm_srai_pi16 in code." msgstr "" -#: config/arm/arm.c:22048 +#: config/arm/arm.c:22058 #, gcc-internal-format msgid "the count should be no less than 0. please check the intrinsic _mm_srai_pi32 in code." msgstr "" -#: config/arm/arm.c:22050 +#: config/arm/arm.c:22060 #, gcc-internal-format msgid "the count should be no less than 0. please check the intrinsic _mm_srai_si64 in code." msgstr "" -#: config/arm/arm.c:22052 +#: config/arm/arm.c:22062 #, gcc-internal-format msgid "the count should be no less than 0. please check the intrinsic _mm_srl_pi16 in code." msgstr "" -#: config/arm/arm.c:22054 +#: config/arm/arm.c:22064 #, gcc-internal-format msgid "the count should be no less than 0. please check the intrinsic _mm_srl_pi32 in code." msgstr "" -#: config/arm/arm.c:22056 +#: config/arm/arm.c:22066 #, gcc-internal-format msgid "the count should be no less than 0. please check the intrinsic _mm_srl_si64 in code." msgstr "" -#: config/arm/arm.c:22058 +#: config/arm/arm.c:22068 #, gcc-internal-format msgid "the count should be no less than 0. please check the intrinsic _mm_sll_pi16 in code." msgstr "" -#: config/arm/arm.c:22060 +#: config/arm/arm.c:22070 #, gcc-internal-format msgid "the count should be no less than 0. please check the intrinsic _mm_sll_pi32 in code." msgstr "" -#: config/arm/arm.c:22062 +#: config/arm/arm.c:22072 #, gcc-internal-format msgid "the count should be no less than 0. please check the intrinsic _mm_sll_si64 in code." msgstr "" -#: config/arm/arm.c:22064 +#: config/arm/arm.c:22074 #, gcc-internal-format msgid "the count should be no less than 0. please check the intrinsic _mm_sra_pi16 in code." msgstr "" -#: config/arm/arm.c:22066 +#: config/arm/arm.c:22076 #, gcc-internal-format msgid "the count should be no less than 0. please check the intrinsic _mm_sra_pi32 in code." msgstr "" -#: config/arm/arm.c:22068 +#: config/arm/arm.c:22078 #, gcc-internal-format msgid "the count should be no less than 0. please check the intrinsic _mm_sra_si64 in code." msgstr "" -#: config/arm/arm.c:22787 +#: config/arm/arm.c:22797 #, gcc-internal-format msgid "no low registers available for popping high registers" msgstr "нет Ñвободных low-региÑтров Ð´Ð»Ñ Ð²Ñ‹Ñ‚Ð°Ð»ÐºÐ¸Ð²Ð°Ð½Ð¸Ñ high-региÑтров" -#: config/arm/arm.c:23012 +#: config/arm/arm.c:23022 #, gcc-internal-format msgid "interrupt Service Routines cannot be coded in Thumb mode" msgstr "подпрограммы Service Routines Ð´Ð»Ñ Ð¿Ñ€ÐµÑ€Ñ‹Ð²Ð°Ð½Ð¸Ð¹ не могут иÑпользоватьÑÑ Ð² режиме Thumb" #: config/avr/avr-c.c:65 config/avr/avr-c.c:190 #, fuzzy, gcc-internal-format -#| msgid "%qs expects a constant argument" msgid "%qs expects 1 argument but %d given" msgstr "Ð´Ð»Ñ %qs требуетÑÑ ÐºÐ¾Ð½Ñтантный аргумент" #: config/avr/avr-c.c:76 #, fuzzy, gcc-internal-format -#| msgid "%qs expects a constant argument" msgid "%qs expects a fixed-point value as argument" msgstr "Ð´Ð»Ñ %qs требуетÑÑ ÐºÐ¾Ð½Ñтантный аргумент" @@ -21379,25 +21325,21 @@ msgstr "атрибут %qE проигнорирован" #: config/avr/avr-c.c:107 config/avr/avr-c.c:173 config/avr/avr-c.c:230 #, fuzzy, gcc-internal-format -#| msgid "no matching template for %qD found" msgid "no matching fixed-point overload found for %qs" msgstr "нет подходÑщего шаблона Ð´Ð»Ñ %qD" #: config/avr/avr-c.c:124 #, fuzzy, gcc-internal-format -#| msgid "%qs expects a constant argument" msgid "%qs expects 2 arguments but %d given" msgstr "Ð´Ð»Ñ %qs требуетÑÑ ÐºÐ¾Ð½Ñтантный аргумент" #: config/avr/avr-c.c:136 config/avr/avr-c.c:201 #, fuzzy, gcc-internal-format -#| msgid "%qs expects a constant argument" msgid "%qs expects a fixed-point value as first argument" msgstr "Ð´Ð»Ñ %qs требуетÑÑ ÐºÐ¾Ð½Ñтантный аргумент" #: config/avr/avr-c.c:144 #, fuzzy, gcc-internal-format -#| msgid "%qs expects a constant argument" msgid "%qs expects an integer value as second argument" msgstr "Ð´Ð»Ñ %qs требуетÑÑ ÐºÐ¾Ð½Ñтантный аргумент" @@ -21501,22 +21443,27 @@ msgstr "Только инициализированные переменные Ð msgid "MCU %qs supported for assembler only" msgstr "MCU %qs поддерживаетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ Ð´Ð»Ñ Ð°ÑÑемблера" -#: config/avr/avr.c:11718 +#: config/avr/avr.c:10816 +#, fuzzy, gcc-internal-format +msgid "conversion from address space %qs to address space %qs" +msgstr "преобразование из %s в %s в %L" + +#: config/avr/avr.c:11778 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "%s expects a compile time integer constant" msgstr "Ðеожиданное окончание Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð² Ñтроковой конÑтанте" -#: config/avr/avr.c:11732 +#: config/avr/avr.c:11792 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "%s expects a compile time long integer constant as first argument" msgstr "Ð´Ð»Ñ %qs требуетÑÑ ÐºÐ¾Ð½Ñтантный аргумент" -#: config/avr/avr.c:11760 +#: config/avr/avr.c:11820 #, gcc-internal-format, gfc-internal-format msgid "rounding to %d bits has no effect for fixed-point value with %d fractional bits" msgstr "" -#: config/avr/avr.c:11769 +#: config/avr/avr.c:11829 #, gcc-internal-format msgid "rounding result will always be 0" msgstr "" @@ -21832,7 +21779,6 @@ msgstr "Ñта media-Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¸Ð¼ÐµÐµÑ‚ÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ в fr400" #: config/h8300/h8300.c:320 #, fuzzy, gcc-internal-format -#| msgid "-f%s not supported: ignored" msgid "-msx is not supported in coff" msgstr "ключ -f%s не поддерживаетÑÑ; игнорируетÑÑ" @@ -21843,13 +21789,11 @@ msgstr "-ms2600 без -ms" #: config/h8300/h8300.c:348 #, fuzzy, gcc-internal-format -#| msgid "-mn is used without -mh or -ms" msgid "-mn is used without -mh or -ms or -msx" msgstr "-mn без -mh или -ms" #: config/h8300/h8300.c:354 #, fuzzy, gcc-internal-format -#| msgid "-ms2600 is used without -ms" msgid "-mexr is used without -ms" msgstr "-ms2600 без -ms" @@ -21860,7 +21804,6 @@ msgstr "-fdata-sections не поддерживаетÑÑ Ð´Ð»Ñ Ñтой цел #: config/h8300/h8300.c:366 #, fuzzy, gcc-internal-format -#| msgid "-mn is used without -mh or -ms" msgid "-mexr is used without -ms or -msx" msgstr "-mn без -mh или -ms" @@ -21897,7 +21840,6 @@ msgstr "" #: config/i386/i386.c:3160 #, fuzzy, gcc-internal-format -#| msgid "code model %qs not supported in the %s bit mode" msgid "address mode %qs not supported in the %s bit mode" msgstr "модель ÐºÐ¾Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ %s не поддерживаетÑÑ Ð² %s-битном режиме" @@ -22236,7 +22178,6 @@ msgstr "" #: config/i386/i386.c:29135 #, fuzzy, gcc-internal-format -#| msgid "previous declaration of %q+D" msgid "previous declaration of %D" msgstr "Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ %q+D" @@ -22247,7 +22188,6 @@ msgstr "-m%s в данной конфигурации не поддерживаР#: config/i386/i386.c:29695 #, fuzzy, gcc-internal-format -#| msgid "argument to %qs must be a 2-bit unsigned literal" msgid "Parameter to builtin must be a string constant or literal" msgstr "аргумент %qs должен быть 2-битным беззнаковым литеральным значением" @@ -22358,7 +22298,6 @@ msgstr "%qs - неÑовмеÑтимый атрибут, игнорируетÑÑ #: config/i386/i386.c:42160 #, fuzzy, gcc-internal-format -#| msgid "Unknown architecture '%s'" msgid "Unknown architecture specific memory model" msgstr "неизвеÑÑ‚Ð½Ð°Ñ Ð°Ñ€Ñ…Ð¸Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° '%s'" @@ -22437,13 +22376,13 @@ msgstr "%Jатрибут адреÑного проÑтранÑтва Ð´Ð»Ñ Ñ„Ñƒ msgid "%qE attribute requires a string constant argument" msgstr "аргументом атрибута %qs должна быть Ñ†ÐµÐ»Ð°Ñ ÐºÐ¾Ð½Ñтанта" -#: config/ia64/ia64.c:5885 config/pa/pa.c:416 config/sh/sh.c:9351 +#: config/ia64/ia64.c:5885 config/pa/pa.c:416 config/sh/sh.c:9348 #: config/spu/spu.c:4897 #, gcc-internal-format msgid "value of -mfixed-range must have form REG1-REG2" msgstr "значение ключа -mfixed-range имеет вид РЕГ1-РЕГ2" -#: config/ia64/ia64.c:5912 config/pa/pa.c:443 config/sh/sh.c:9377 +#: config/ia64/ia64.c:5912 config/pa/pa.c:443 config/sh/sh.c:9374 #: config/spu/spu.c:4923 #, gcc-internal-format, gfc-internal-format msgid "%s-%s is an empty range" @@ -22515,7 +22454,7 @@ msgid "%qE attribute is not supported for R8C target" msgstr "%Jатрибут section Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ платформы не поддерживаетÑÑ" #. The argument must be a constant integer. -#: config/m32c/m32c.c:2934 config/sh/sh.c:9570 config/sh/sh.c:9676 +#: config/m32c/m32c.c:2934 config/sh/sh.c:9567 config/sh/sh.c:9673 #, fuzzy, gcc-internal-format msgid "%qE attribute argument not an integer constant" msgstr "аргумент атрибута %qs не ÑвлÑетÑÑ Ñ†ÐµÐ»Ð¾Ð¹ конÑтантой" @@ -22562,7 +22501,6 @@ msgstr "-malign-loops=%d вне диапазона 0 - %d" #: config/m68k/m68k.c:621 #, fuzzy, gcc-internal-format -#| msgid "stack limits not supported on this target" msgid "-fstack-limit- options are not supported on this cpu" msgstr "проверка выхода за границу Ñтека не поддерживаетÑÑ Ð´Ð»Ñ Ñтой платформы" @@ -22855,23 +22793,32 @@ msgstr "Ñтандартные Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² данном ко msgid "unexpected %d byte cop instruction" msgstr "Ð¿Ñ€ÐµÐ´Ð¸ÐºÐ°Ñ‚Ð¸Ð²Ð½Ð°Ñ Ð¸Ð½ÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ Ð´Ð»Ñ Ð°Ñ€Ñ…Ð¸Ñ‚ÐµÐºÑ‚ÑƒÑ€Ñ‹ Thumb" -#: config/microblaze/microblaze.c:1311 +#: config/microblaze/microblaze.c:1676 #, fuzzy, gcc-internal-format -#| msgid "-fstack-protector not supported for this target" msgid "-fPIC/-fpic not supported for this target" msgstr "-fstack-protector не поддерживаетÑÑ Ð´Ð»Ñ Ñтой целевой платформы" -#: config/microblaze/microblaze.c:1323 +#: config/microblaze/microblaze.c:1688 #, fuzzy, gcc-internal-format msgid "%qs is an invalid argument to -mcpu=" msgstr "некорректный аргумент внутренней функции" -#: config/microblaze/microblaze.c:1372 +#: config/microblaze/microblaze.c:1737 #, gcc-internal-format msgid "-mxl-multiply-high can be used only with -mcpu=v6.00.a or greater" msgstr "" -#: config/microblaze/microblaze.c:1384 +#: config/microblaze/microblaze.c:1753 +#, gcc-internal-format +msgid "-mxl-reorder can be used only with -mcpu=v8.30.a or greater" +msgstr "" + +#: config/microblaze/microblaze.c:1759 +#, gcc-internal-format +msgid "-mxl-reorder requires -mxl-pattern-compare for -mcpu=v8.30.a" +msgstr "" + +#: config/microblaze/microblaze.c:1764 #, gcc-internal-format msgid "-mxl-multiply-high requires -mno-xl-soft-mul" msgstr "" @@ -23008,7 +22955,6 @@ msgstr "целевой процеÑÑор не поддерживает кома #: config/mips/mips.c:16621 #, fuzzy, gcc-internal-format -#| msgid "Generate position-independent code if possible (large mode)" msgid "cannot generate position-independent code for %qs" msgstr "Генерировать позиционно-незавиÑимый код, еÑли возможно (режим large)" @@ -23370,7 +23316,6 @@ msgstr "Ð´Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð½Ðµ поддерживает ABI: #: config/rs6000/rs6000.c:2547 #, fuzzy, gcc-internal-format -#| msgid "Do not use PowerPC instruction set" msgid "not configured for SPE instruction set" msgstr "Ðе иÑпользовать ÑиÑтему команд PowerPC" @@ -23785,7 +23730,6 @@ msgstr "Генерировать код, ÑовмеÑтимый Ñ Ñ„Ð¸Ñ€Ð¼ÐµÐ½Ð #: config/rs6000/e500.h:37 #, fuzzy, gcc-internal-format -#| msgid "AltiVec and E500 instructions cannot coexist" msgid "AltiVec and SPE instructions cannot coexist" msgstr "Команды AltiVec и E500 неÑовмеÑтимы" @@ -23983,63 +23927,63 @@ msgstr "размер %qD в памÑти неизвеÑтен" msgid "%qs uses dynamic stack allocation" msgstr "" -#: config/sh/sh.c:906 +#: config/sh/sh.c:903 #, gcc-internal-format msgid "ignoring -fschedule-insns because of exception handling bug" msgstr "" -#: config/sh/sh.c:923 +#: config/sh/sh.c:920 #, gcc-internal-format msgid "unwind tables currently require either a frame pointer or -maccumulate-outgoing-args for correctness" msgstr "Ð´Ð»Ñ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð¾Ð¹ поддержки таблиц раÑкрутки Ñтека требуетÑÑ Ð»Ð¸Ð±Ð¾ указатель кадра, либо -maccumulate-outgoing-args" -#: config/sh/sh.c:8284 +#: config/sh/sh.c:8281 #, gcc-internal-format msgid "__builtin_saveregs not supported by this subtarget" msgstr "__builtin_saveregs Ð´Ð»Ñ Ñтой платформы не поддерживаетÑÑ" -#: config/sh/sh.c:9439 +#: config/sh/sh.c:9436 #, fuzzy, gcc-internal-format msgid "%qE attribute only applies to interrupt functions" msgstr "атрибут %qs применим только к функциÑм обработки прерываний" -#: config/sh/sh.c:9509 +#: config/sh/sh.c:9506 #, fuzzy, gcc-internal-format msgid "%qE attribute is supported only for SH2A" msgstr "атрибут %qs не поддерживаетÑÑ Ð½Ð° данной платформе" -#: config/sh/sh.c:9539 +#: config/sh/sh.c:9536 #, gcc-internal-format msgid "attribute interrupt_handler is not compatible with -m5-compact" msgstr "атрибут interrupt_handler неÑовмеÑтим Ñ -m5-compact" -#: config/sh/sh.c:9556 +#: config/sh/sh.c:9553 #, fuzzy, gcc-internal-format msgid "%qE attribute only applies to SH2A" msgstr "атрибут %qs допуÑтим только Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¹" -#: config/sh/sh.c:9578 +#: config/sh/sh.c:9575 #, fuzzy, gcc-internal-format msgid "%qE attribute argument should be between 0 to 255" msgstr "аргумент атрибута %qs не ÑвлÑетÑÑ Ñ†ÐµÐ»Ð¾Ð¹ конÑтантой" #. The argument must be a constant string. -#: config/sh/sh.c:9651 +#: config/sh/sh.c:9648 #, fuzzy, gcc-internal-format msgid "%qE attribute argument not a string constant" msgstr "аргумент атрибута %qs не ÑвлÑетÑÑ Ñтроковой конÑтантой" -#: config/sh/sh.c:12341 +#: config/sh/sh.c:12338 #, gcc-internal-format msgid "r0 needs to be available as a call-clobbered register" msgstr "" -#: config/sh/sh.c:12362 +#: config/sh/sh.c:12359 #, fuzzy, gcc-internal-format msgid "need a second call-clobbered general purpose register" msgstr "ИÑпользовать региÑÑ‚Ñ€ BK как региÑÑ‚Ñ€ общего назначениÑ" -#: config/sh/sh.c:12370 +#: config/sh/sh.c:12367 #, fuzzy, gcc-internal-format msgid "need a call-clobbered target register" msgstr "ИÑпользовать региÑÑ‚Ñ€ BK как региÑÑ‚Ñ€ общего назначениÑ" @@ -24358,7 +24302,6 @@ msgstr "некорректный ÑинтакÑÐ¸Ñ %<#pragma pack%> - диреР#: config/vms/vms-c.c:328 #, fuzzy, gcc-internal-format -#| msgid "invalid constant in %<#pragma pack%> - ignored" msgid "invalid constant in %<#pragma %s%>" msgstr "Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ ÐºÐ¾Ð½Ñтанта в %<#pragma pack%> - директива проигнорирована" @@ -24775,7 +24718,7 @@ msgid "label %qD defined here" msgstr "метка %q+D определена, но не иÑпользуетÑÑ" #: c/c-decl.c:3111 c/c-decl.c:3383 c/c-typeck.c:6979 cp/class.c:1339 -#: cp/class.c:2928 +#: cp/class.c:2932 #, fuzzy, gcc-internal-format msgid "%qD declared here" msgstr "%q+D объÑвлено здеÑÑŒ" @@ -24943,7 +24886,7 @@ msgstr "объект переменного размера Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ð½Ð¸Ñ† msgid "variable %qD has initializer but incomplete type" msgstr "Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ %qD инициализирована, Ñ…Ð¾Ñ‚Ñ Ð¸Ð¼ÐµÐµÑ‚ неполный тип" -#: c/c-decl.c:4150 cp/decl.c:4529 cp/decl.c:12970 +#: c/c-decl.c:4150 cp/decl.c:4529 cp/decl.c:12961 #, gcc-internal-format msgid "inline function %q+D given attribute noinline" msgstr "inline Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ %q+D Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¾Ð¼ noinline" @@ -25078,7 +25021,7 @@ msgstr "размер типа невозможно вычиÑлить Ñвно" msgid "variable length array %qE is used" msgstr "иÑпользуетÑÑ Ð¼Ð°ÑÑив переменного размера %qD" -#: c/c-decl.c:4857 cp/decl.c:8274 +#: c/c-decl.c:4857 cp/decl.c:8277 #, gcc-internal-format msgid "variable length array is used" msgstr "" @@ -25163,7 +25106,7 @@ msgstr "клаÑÑ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð² декларации параметра % msgid "storage class specified for unnamed parameter" msgstr "клаÑÑ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð² декларации параметра %qs" -#: c/c-decl.c:5143 cp/decl.c:9283 +#: c/c-decl.c:5143 cp/decl.c:9279 #, gcc-internal-format msgid "storage class specified for typename" msgstr "клаÑÑ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð·Ð°Ð´Ð°Ð½ Ð´Ð»Ñ Ð¸Ð¼ÐµÐ½Ð¸ типа" @@ -25312,7 +25255,7 @@ msgstr "%qs объÑвлена как функциÑ, Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÑŽÑ‰Ð°Ñ Ð msgid "function definition has qualified void return type" msgstr "в определении функции задан квалифицированный void-тип возвращаемого значениÑ" -#: c/c-decl.c:5635 cp/decl.c:9411 +#: c/c-decl.c:5635 cp/decl.c:9407 #, gcc-internal-format msgid "type qualifiers ignored on function return type" msgstr "квалификаторы в опиÑании типа возвращаемого Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ " @@ -25423,7 +25366,7 @@ msgstr "в ISO C функции Ñ ÐºÐ²Ð°Ð»Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð°Ð¼Ð¸ const и volat msgid "a member of a structure or union cannot have a variably modified type" msgstr "Ñлемент данных не может иметь тип %qT модифицируемого размера" -#: c/c-decl.c:5915 cp/decl.c:8516 +#: c/c-decl.c:5915 cp/decl.c:8519 #, gcc-internal-format msgid "variable or field %qE declared void" msgstr "Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¸Ð»Ð¸ поле %qE объÑвлено void" @@ -25846,7 +25789,7 @@ msgstr "аргумент %qD не ÑоответÑтвует вÑтроенноРmsgid "argument %qD doesn%'t match prototype" msgstr "аргумент %qD не ÑоответÑтвует прототипу" -#: c/c-decl.c:8396 cp/decl.c:13848 +#: c/c-decl.c:8396 cp/decl.c:13839 #, gcc-internal-format msgid "no return statement in function returning non-void" msgstr "в функции, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° возвращать значение, отÑутÑтвует оператор return" @@ -25914,7 +25857,7 @@ msgstr "дублирование %qE" msgid "two or more data types in declaration specifiers" msgstr "два или более типа в декларации" -#: c/c-decl.c:8924 cp/parser.c:22803 +#: c/c-decl.c:8924 cp/parser.c:22807 #, gcc-internal-format msgid "%<long long long%> is too long for GCC" msgstr "GCC не поддерживает тип %<long long long%>" @@ -26044,7 +25987,7 @@ msgstr "ÑоглаÑно ISO C, избыточный знак %<;%> поÑле Ñ msgid "unknown type name %qE" msgstr "неизвеÑтное Ð¸Ð¼Ñ Ñ€ÐµÐ³Ð¸Ñтра: %s" -#: c/c-parser.c:1484 c/c-parser.c:8618 cp/parser.c:28127 +#: c/c-parser.c:1484 c/c-parser.c:8618 cp/parser.c:28131 #, gcc-internal-format msgid "expected declaration specifiers" msgstr "ожидалиÑÑŒ Ñпецификаторы декларации" @@ -26054,7 +25997,7 @@ msgstr "ожидалиÑÑŒ Ñпецификаторы декларации" msgid "expected %<;%>, identifier or %<(%>" msgstr "ожидалÑÑ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€ или %<(%>" -#: c/c-parser.c:1527 cp/parser.c:24553 cp/parser.c:24627 +#: c/c-parser.c:1527 cp/parser.c:24557 cp/parser.c:24631 #, fuzzy, gcc-internal-format msgid "prefix attributes are ignored for methods" msgstr "атрибут %qE Ð´Ð»Ñ %qE проигнорирован" @@ -26102,7 +26045,7 @@ msgstr "ISO C90 не поддерживает тип %<long long%>" msgid "ISO C90 does not support %<_Static_assert%>" msgstr "ISO C90 не поддерживает тип %<long long%>" -#: c/c-parser.c:1860 c/c-parser.c:3388 c/c-parser.c:8673 cp/parser.c:27998 +#: c/c-parser.c:1860 c/c-parser.c:3388 c/c-parser.c:8673 cp/parser.c:28002 #, gcc-internal-format msgid "expected string literal" msgstr "ожидалÑÑ Ñтроковый литерал" @@ -26134,13 +26077,13 @@ msgstr "Ðе выполнено необходимое уÑловие в кодР#: c/c-parser.c:7409 c/c-parser.c:7417 c/c-parser.c:7446 c/c-parser.c:7459 #: c/c-parser.c:7764 c/c-parser.c:7888 c/c-parser.c:8316 c/c-parser.c:8351 #: c/c-parser.c:8404 c/c-parser.c:8457 c/c-parser.c:8473 c/c-parser.c:8519 -#: c/c-parser.c:8798 c/c-parser.c:9873 c/c-parser.c:10676 cp/parser.c:23013 -#: cp/parser.c:25397 cp/parser.c:25427 cp/parser.c:25497 cp/parser.c:27718 +#: c/c-parser.c:8798 c/c-parser.c:9873 c/c-parser.c:10676 cp/parser.c:23017 +#: cp/parser.c:25401 cp/parser.c:25431 cp/parser.c:25501 cp/parser.c:27722 #, gcc-internal-format msgid "expected identifier" msgstr "ожидалÑÑ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€" -#: c/c-parser.c:2295 cp/parser.c:14837 +#: c/c-parser.c:2295 cp/parser.c:14839 #, gcc-internal-format msgid "comma at end of enumerator list" msgstr "запÑÑ‚Ð°Ñ Ð² конце ÑпиÑка значений перечиÑлимого типа" @@ -26469,77 +26412,77 @@ msgstr "ожидалиÑÑŒ Ñпецификаторы декларации" msgid "no type or storage class may be specified here," msgstr "Ð´Ð»Ñ %qs задан клаÑÑ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ" -#: c/c-parser.c:8320 c/c-parser.c:8377 cp/parser.c:25457 +#: c/c-parser.c:8320 c/c-parser.c:8377 cp/parser.c:25461 #, gcc-internal-format msgid "unknown property attribute" msgstr "" -#: c/c-parser.c:8341 cp/parser.c:25417 +#: c/c-parser.c:8341 cp/parser.c:25421 #, fuzzy, gcc-internal-format msgid "missing %<=%> (after %<getter%> attribute)" msgstr "отÑутÑтвует %<(%> поÑле %<#pragma pack%> - директива проигнорирована" -#: c/c-parser.c:8344 cp/parser.c:25420 +#: c/c-parser.c:8344 cp/parser.c:25424 #, fuzzy, gcc-internal-format msgid "missing %<=%> (after %<setter%> attribute)" msgstr "отÑутÑтвует %<(%> поÑле %<#pragma pack%> - директива проигнорирована" -#: c/c-parser.c:8358 cp/parser.c:25435 +#: c/c-parser.c:8358 cp/parser.c:25439 #, fuzzy, gcc-internal-format msgid "the %<setter%> attribute may only be specified once" msgstr "%Jатрибут section недопуÑтим Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ñ‹Ñ… переменных" -#: c/c-parser.c:8363 cp/parser.c:25441 +#: c/c-parser.c:8363 cp/parser.c:25445 #, gcc-internal-format msgid "setter name must terminate with %<:%>" msgstr "" -#: c/c-parser.c:8370 cp/parser.c:25449 +#: c/c-parser.c:8370 cp/parser.c:25453 #, fuzzy, gcc-internal-format msgid "the %<getter%> attribute may only be specified once" msgstr "%Jатрибут адреÑного проÑтранÑтва Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¹ недопуÑтим" -#: c/c-parser.c:8556 cp/parser.c:28042 +#: c/c-parser.c:8556 cp/parser.c:28046 #, gcc-internal-format msgid "%<#pragma omp barrier%> may only be used in compound statements" msgstr "" -#: c/c-parser.c:8567 cp/parser.c:28057 +#: c/c-parser.c:8567 cp/parser.c:28061 #, gcc-internal-format msgid "%<#pragma omp flush%> may only be used in compound statements" msgstr "" -#: c/c-parser.c:8578 cp/parser.c:28073 +#: c/c-parser.c:8578 cp/parser.c:28077 #, gcc-internal-format msgid "%<#pragma omp taskwait%> may only be used in compound statements" msgstr "" -#: c/c-parser.c:8589 cp/parser.c:28089 +#: c/c-parser.c:8589 cp/parser.c:28093 #, gcc-internal-format msgid "%<#pragma omp taskyield%> may only be used in compound statements" msgstr "" -#: c/c-parser.c:8602 cp/parser.c:28117 +#: c/c-parser.c:8602 cp/parser.c:28121 #, gcc-internal-format msgid "%<#pragma omp section%> may only be used in %<#pragma omp sections%> construct" msgstr "" -#: c/c-parser.c:8608 cp/parser.c:28032 +#: c/c-parser.c:8608 cp/parser.c:28036 #, fuzzy, gcc-internal-format msgid "%<#pragma GCC pch_preprocess%> must be first" msgstr "некорректный формат #pragma GCC pch_preprocess, директива проигнорирована" -#: c/c-parser.c:8773 cp/parser.c:25705 +#: c/c-parser.c:8773 cp/parser.c:25709 #, fuzzy, gcc-internal-format msgid "too many %qs clauses" msgstr "Ñлишком много входных файлов" -#: c/c-parser.c:8875 cp/parser.c:25820 +#: c/c-parser.c:8875 cp/parser.c:25824 #, fuzzy, gcc-internal-format msgid "collapse argument needs positive constant integer expression" msgstr "Ñравнение знакового и беззнакового целых выражений" -#: c/c-parser.c:8941 cp/parser.c:25871 +#: c/c-parser.c:8941 cp/parser.c:25875 #, fuzzy, gcc-internal-format msgid "expected %<none%> or %<shared%>" msgstr "ожидалоÑÑŒ %<,%> или %<;%>" @@ -26554,42 +26497,42 @@ msgstr "ожидалоÑÑŒ выражение" msgid "%<num_threads%> value must be positive" msgstr "" -#: c/c-parser.c:9192 cp/parser.c:26090 +#: c/c-parser.c:9192 cp/parser.c:26094 #, fuzzy, gcc-internal-format msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%>, %<min%> or %<max%>" msgstr "ожидалоÑÑŒ %<:%>, %<,%>, %<;%>, %<}%> или %<__attribute__%>" -#: c/c-parser.c:9281 cp/parser.c:26175 +#: c/c-parser.c:9281 cp/parser.c:26179 #, gcc-internal-format msgid "schedule %<runtime%> does not take a %<chunk_size%> parameter" msgstr "" -#: c/c-parser.c:9285 cp/parser.c:26178 +#: c/c-parser.c:9285 cp/parser.c:26182 #, gcc-internal-format msgid "schedule %<auto%> does not take a %<chunk_size%> parameter" msgstr "" -#: c/c-parser.c:9303 cp/parser.c:26194 +#: c/c-parser.c:9303 cp/parser.c:26198 #, fuzzy, gcc-internal-format msgid "invalid schedule kind" msgstr "некорректный операнд const_double" -#: c/c-parser.c:9431 cp/parser.c:26326 +#: c/c-parser.c:9431 cp/parser.c:26330 #, gcc-internal-format msgid "expected %<#pragma omp%> clause" msgstr "" -#: c/c-parser.c:9440 cp/parser.c:26335 +#: c/c-parser.c:9440 cp/parser.c:26339 #, fuzzy, gcc-internal-format msgid "%qs is not valid for %qs" msgstr "%qs не ÑвлÑетÑÑ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ñ‹Ð¼ выходным файлом" -#: c/c-parser.c:9732 cp/parser.c:26619 +#: c/c-parser.c:9732 cp/parser.c:26623 #, fuzzy, gcc-internal-format msgid "invalid form of %<#pragma omp atomic%>" msgstr "некорректный операнд Ð´Ð»Ñ %<__fpreg%>" -#: c/c-parser.c:9772 c/c-parser.c:9790 cp/parser.c:26650 cp/parser.c:26667 +#: c/c-parser.c:9772 c/c-parser.c:9790 cp/parser.c:26654 cp/parser.c:26671 #, fuzzy, gcc-internal-format msgid "invalid operator for %<#pragma omp atomic%>" msgstr "некорректный операнд Ð´Ð»Ñ %<__fpreg%>" @@ -26599,7 +26542,7 @@ msgstr "некорректный операнд Ð´Ð»Ñ %<__fpreg%>" msgid "expected %<(%> or end of line" msgstr "некорректный операнд" -#: c/c-parser.c:9932 cp/parser.c:26939 +#: c/c-parser.c:9932 cp/parser.c:26943 #, fuzzy, gcc-internal-format msgid "for statement expected" msgstr "перед `*' должно быть Ð¸Ð¼Ñ Ñ‚Ð¸Ð¿Ð°" @@ -26614,12 +26557,12 @@ msgstr "ожидалаÑÑŒ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ Ð¸Ð»Ð¸ оператор" msgid "not enough perfectly nested loops" msgstr "" -#: c/c-parser.c:10119 cp/parser.c:27284 +#: c/c-parser.c:10119 cp/parser.c:27288 #, gcc-internal-format msgid "collapsed loops not perfectly nested" msgstr "" -#: c/c-parser.c:10157 cp/parser.c:27125 cp/parser.c:27163 cp/pt.c:12692 +#: c/c-parser.c:10157 cp/parser.c:27129 cp/parser.c:27167 cp/pt.c:12687 #, fuzzy, gcc-internal-format msgid "iteration variable %qD should not be firstprivate" msgstr "instance-Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ %qs объÑвлена как private" @@ -26644,27 +26587,27 @@ msgstr "instance-Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ %qs объÑвлена как private" msgid "%<threadprivate%> %qE has incomplete type" msgstr "%Jпараметр %u имеет неполный тип" -#: c/c-parser.c:10823 cp/parser.c:27928 +#: c/c-parser.c:10823 cp/parser.c:27932 #, gcc-internal-format msgid "%<__transaction_cancel%> without transactional memory support enabled" msgstr "" -#: c/c-parser.c:10829 cp/parser.c:27934 +#: c/c-parser.c:10829 cp/parser.c:27938 #, gcc-internal-format msgid "%<__transaction_cancel%> within a %<__transaction_relaxed%>" msgstr "" -#: c/c-parser.c:10838 cp/parser.c:27943 +#: c/c-parser.c:10838 cp/parser.c:27947 #, gcc-internal-format msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%>" msgstr "" -#: c/c-parser.c:10840 cp/parser.c:27946 +#: c/c-parser.c:10840 cp/parser.c:27950 #, gcc-internal-format msgid " or a %<transaction_may_cancel_outer%> function" msgstr "" -#: c/c-parser.c:10846 cp/parser.c:27952 +#: c/c-parser.c:10846 cp/parser.c:27956 #, gcc-internal-format msgid "%<__transaction_cancel%> not within %<__transaction_atomic%>" msgstr "" @@ -26807,19 +26750,16 @@ msgstr "%q+D объÑвлено здеÑÑŒ" #: c/c-typeck.c:2746 #, fuzzy, gcc-internal-format -#| msgid "called object %qE is not a function" msgid "called object %qE is not a function or function pointer" msgstr "вызываемый объект %qE не ÑвлÑетÑÑ Ñ„ÑƒÐ½ÐºÑ†Ð¸ÐµÐ¹" #: c/c-typeck.c:2751 #, fuzzy, gcc-internal-format -#| msgid "called object %qE is not a function" msgid "called object %qD is not a function or function pointer" msgstr "вызываемый объект %qE не ÑвлÑетÑÑ Ñ„ÑƒÐ½ÐºÑ†Ð¸ÐµÐ¹" #: c/c-typeck.c:2757 #, fuzzy, gcc-internal-format -#| msgid "called object %qE is not a function" msgid "called object is not a function or function pointer" msgstr "вызываемый объект %qE не ÑвлÑетÑÑ Ñ„ÑƒÐ½ÐºÑ†Ð¸ÐµÐ¹" @@ -27473,7 +27413,6 @@ msgstr "Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñлемента регулируемого Ñ #: c/c-typeck.c:6975 #, fuzzy, gcc-internal-format -#| msgid "missing initializer for member %qD" msgid "missing initializer for field %qD of %qT" msgstr "отÑутÑтвует инициализатор Ð´Ð»Ñ Ñлемента %qD" @@ -27977,7 +27916,6 @@ msgstr "%s Ð´Ð»Ñ 'operator[]' в '%E[%E]'" #: cp/call.c:4239 #, fuzzy, gcc-internal-format -#| msgid "%s" msgid "%qs" msgstr "%s" @@ -28008,7 +27946,6 @@ msgstr "" #: cp/call.c:4433 #, fuzzy, gcc-internal-format -#| msgid "enumeral mismatch in conditional expression: %qT vs %qT" msgid "incompatible vector types in conditional expression: %qT, %qT and %qT" msgstr "неÑоответÑтвие перечиÑлимых типов в уÑловном выражении: %qT vs %qT" @@ -28223,107 +28160,107 @@ msgstr " в вызове %qD" msgid " (you can disable this with -fno-deduce-init-list)" msgstr "" -#: cp/call.c:7153 +#: cp/call.c:7156 #, gcc-internal-format msgid "could not find class$ field in java interface type %qT" msgstr "не найдено поле клаÑÑа в интерфейÑном типе java %qT" -#: cp/call.c:7414 +#: cp/call.c:7417 #, gcc-internal-format msgid "call to non-function %qD" msgstr "вызов не функции %qD" -#: cp/call.c:7459 cp/typeck.c:2680 +#: cp/call.c:7462 cp/typeck.c:2680 #, gcc-internal-format msgid "cannot call constructor %<%T::%D%> directly" msgstr "" -#: cp/call.c:7461 +#: cp/call.c:7464 #, gcc-internal-format msgid " for a function-style cast, remove the redundant %<::%D%>" msgstr "" -#: cp/call.c:7578 +#: cp/call.c:7581 #, fuzzy, gcc-internal-format msgid "no matching function for call to %<%T::operator %T(%A)%#V%>" msgstr "нет подходÑщей функции Ð´Ð»Ñ Ð²Ñ‹Ð·Ð¾Ð²Ð° %<%T::%s(%A)%#V%>" -#: cp/call.c:7591 +#: cp/call.c:7594 #, gcc-internal-format msgid "no matching function for call to %<%T::%s(%A)%#V%>" msgstr "нет подходÑщей функции Ð´Ð»Ñ Ð²Ñ‹Ð·Ð¾Ð²Ð° %<%T::%s(%A)%#V%>" -#: cp/call.c:7616 +#: cp/call.c:7619 #, gcc-internal-format msgid "call of overloaded %<%s(%A)%> is ambiguous" msgstr "вызов перегруженной %<%s(%A)%> имеет неоднозначную трактовку" -#: cp/call.c:7645 +#: cp/call.c:7661 #, gcc-internal-format msgid "cannot call member function %qD without object" msgstr "некорректный вызов Ñлемента-функции %qD без объекта" -#: cp/call.c:8410 +#: cp/call.c:8428 #, gcc-internal-format msgid "passing %qT chooses %qT over %qT" msgstr "при передаче %qT предпочтение отдаетÑÑ %qT, а не %qT" -#: cp/call.c:8412 cp/name-lookup.c:5552 +#: cp/call.c:8430 cp/name-lookup.c:5547 #, gcc-internal-format msgid " in call to %qD" msgstr " в вызове %qD" -#: cp/call.c:8470 +#: cp/call.c:8488 #, gcc-internal-format msgid "choosing %qD over %qD" msgstr "предпочтение отдаетÑÑ %qD (а не %qD)" -#: cp/call.c:8471 +#: cp/call.c:8489 #, gcc-internal-format msgid " for conversion from %qT to %qT" msgstr " при преобразовании из %qT в %qT," -#: cp/call.c:8474 +#: cp/call.c:8492 #, gcc-internal-format msgid " because conversion sequence for the argument is better" msgstr " поÑкольку Ñто дает лучшую поÑледовательноÑÑ‚ÑŒ преобразований аргумента" -#: cp/call.c:8628 +#: cp/call.c:8646 #, fuzzy, gcc-internal-format msgid "default argument mismatch in overload resolution" msgstr "отÑутÑтвует аргумент по умолчанию Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° %P функции %q+#D" -#: cp/call.c:8631 +#: cp/call.c:8649 #, fuzzy, gcc-internal-format msgid " candidate 1: %q+#F" msgstr "претендент: %+#D" -#: cp/call.c:8633 +#: cp/call.c:8651 #, fuzzy, gcc-internal-format msgid " candidate 2: %q+#F" msgstr "претендент: %+#D" -#: cp/call.c:8677 +#: cp/call.c:8695 #, 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 "" -#: cp/call.c:8841 +#: cp/call.c:8859 #, fuzzy, gcc-internal-format msgid "could not convert %qE from %qT to %qT" msgstr "ошибка Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ %qE в %qT" -#: cp/call.c:9034 +#: cp/call.c:9052 #, gcc-internal-format msgid "a temporary bound to %qD only persists until the constructor exits" msgstr "" -#: cp/call.c:9150 +#: cp/call.c:9168 #, fuzzy, gcc-internal-format msgid "invalid initialization of non-const reference of type %qT from an rvalue of type %qT" msgstr "Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð½ÐµÐºÐ¾Ð½Ñтантной ÑÑылки типа %qT из временного Ð²Ñ‹Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ñ‚Ð¸Ð¿Ð° %qT" -#: cp/call.c:9154 +#: cp/call.c:9172 #, gcc-internal-format msgid "invalid initialization of reference of type %qT from expression of type %qT" msgstr "Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ ÑÑылки типа %qT из Ð²Ñ‹Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ñ‚Ð¸Ð¿Ð° %qT" @@ -28433,351 +28370,350 @@ msgstr "в %q#T определен только private конÑтруктор Ð msgid "no unique final overrider for %qD in %qT" msgstr "отÑутÑтвует уникальное переопределение %qD в %qT" -#: cp/class.c:2648 +#: cp/class.c:2652 #, fuzzy, gcc-internal-format msgid "%q+#D marked final, but is not virtual" msgstr "%q+D определена, но нигде не иÑпользуетÑÑ" -#: cp/class.c:2650 +#: cp/class.c:2654 #, gcc-internal-format msgid "%q+#D marked override, but does not override" msgstr "" #. Here we know it is a hider, and no overrider exists. -#: cp/class.c:2719 +#: cp/class.c:2723 #, gcc-internal-format msgid "%q+D was hidden" msgstr "%q+D Ñкрыто" -#: cp/class.c:2720 +#: cp/class.c:2724 #, gcc-internal-format msgid " by %q+D" msgstr " методом %q+D" -#: cp/class.c:2763 cp/decl2.c:1365 +#: cp/class.c:2767 cp/decl2.c:1365 #, fuzzy, gcc-internal-format msgid "%q+#D invalid; an anonymous union can only have non-static data members" msgstr "`%#D' некорректно; в анонимном объединении допуÑтимы только неÑтатичеÑкие Ñлементы" -#: cp/class.c:2766 +#: cp/class.c:2770 #, fuzzy, gcc-internal-format msgid "%q+#D invalid; an anonymous struct can only have non-static data members" msgstr "`%#D' некорректно; в анонимном объединении допуÑтимы только неÑтатичеÑкие Ñлементы" -#: cp/class.c:2774 cp/decl2.c:1371 +#: cp/class.c:2778 cp/decl2.c:1371 #, fuzzy, gcc-internal-format msgid "private member %q+#D in anonymous union" msgstr "private-Ñлемент `%#D' в анонимном объединении" -#: cp/class.c:2776 +#: cp/class.c:2780 #, fuzzy, gcc-internal-format msgid "private member %q+#D in anonymous struct" msgstr "private-Ñлемент `%#D' в анонимном объединении" -#: cp/class.c:2781 cp/decl2.c:1373 +#: cp/class.c:2785 cp/decl2.c:1373 #, fuzzy, gcc-internal-format msgid "protected member %q+#D in anonymous union" msgstr "protected-Ñлемент `%#D' в анонимном объединении" -#: cp/class.c:2783 +#: cp/class.c:2787 #, fuzzy, gcc-internal-format msgid "protected member %q+#D in anonymous struct" msgstr "protected-Ñлемент `%#D' в анонимном объединении" -#: cp/class.c:2927 +#: cp/class.c:2931 #, gcc-internal-format msgid "the ellipsis in %qD is not inherited" msgstr "" -#: cp/class.c:3103 +#: cp/class.c:3106 #, fuzzy, gcc-internal-format msgid "bit-field %q+#D with non-integral type" msgstr "битовое поле `%#D' не целочиÑленного типа" -#: cp/class.c:3119 +#: cp/class.c:3122 #, gcc-internal-format msgid "bit-field %q+D width not an integer constant" msgstr "ширина битового Ð¿Ð¾Ð»Ñ %q+D не ÑвлÑетÑÑ Ñ†ÐµÐ»Ð¾Ð¹ конÑтантой" -#: cp/class.c:3124 +#: cp/class.c:3127 #, gcc-internal-format msgid "negative width in bit-field %q+D" msgstr "Ð¾Ñ‚Ñ€Ð¸Ñ†Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ ÑˆÐ¸Ñ€Ð¸Ð½Ð° битового Ð¿Ð¾Ð»Ñ %q+D" -#: cp/class.c:3129 +#: cp/class.c:3132 #, gcc-internal-format msgid "zero width for bit-field %q+D" msgstr "Ð½ÑƒÐ»ÐµÐ²Ð°Ñ ÑˆÐ¸Ñ€Ð¸Ð½Ð° битового Ð¿Ð¾Ð»Ñ %q+D" -#: cp/class.c:3135 +#: cp/class.c:3138 #, gcc-internal-format msgid "width of %q+D exceeds its type" msgstr "ширина Ð¿Ð¾Ð»Ñ %q+D превышает ширину его типа" -#: cp/class.c:3139 +#: cp/class.c:3142 #, gcc-internal-format msgid "%q+D is too small to hold all values of %q#T" msgstr "%q+D Ñлишком мало Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´ÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ñех значений типа %q#T" -#: cp/class.c:3198 +#: cp/class.c:3201 #, gcc-internal-format msgid "member %q+#D with constructor not allowed in union" msgstr "Ñлемент %q+#D Ñ ÐºÐ¾Ð½Ñтруктором не допуÑкаетÑÑ Ð² объединении" -#: cp/class.c:3201 +#: cp/class.c:3204 #, gcc-internal-format msgid "member %q+#D with destructor not allowed in union" msgstr "Ñлемент %q+#D Ñ Ð´ÐµÑтруктором не допуÑкаетÑÑ Ð² объединении" -#: cp/class.c:3203 +#: cp/class.c:3206 #, gcc-internal-format msgid "member %q+#D with copy assignment operator not allowed in union" msgstr "Ñлемент %q+#D Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸ÐµÐ¹ приÑÐ²Ð°Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¿ÑƒÑ‚ÐµÐ¼ ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½Ðµ допуÑкаетÑÑ Ð² объединении" -#: cp/class.c:3207 +#: cp/class.c:3210 #, gcc-internal-format msgid "unrestricted unions only available with -std=c++11 or -std=gnu++11" msgstr "" -#: cp/class.c:3244 +#: cp/class.c:3247 #, gcc-internal-format msgid "multiple fields in union %qT initialized" msgstr "Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð½ÐµÑкольких полей в объединении %qT" -#: cp/class.c:3329 +#: cp/class.c:3332 #, gcc-internal-format msgid "%q+D may not be static because it is a member of a union" msgstr "%q+D может быть не ÑтатичеÑким, поÑкольку Ñто Ñлемент объединениÑ" -#: cp/class.c:3334 +#: cp/class.c:3337 #, 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:3345 +#: cp/class.c:3348 #, gcc-internal-format msgid "field %q+D invalidly declared function type" msgstr "поле %q+D ошибочно декларировано Ñ Ñ‚Ð¸Ð¿Ð¾Ð¼ функции" -#: cp/class.c:3351 +#: cp/class.c:3354 #, gcc-internal-format msgid "field %q+D invalidly declared method type" msgstr "поле %q+D ошибочно декларировано Ñ Ñ‚Ð¸Ð¿Ð¾Ð¼ метода" -#: cp/class.c:3407 +#: cp/class.c:3410 #, gcc-internal-format msgid "ignoring packed attribute because of unpacked non-POD field %q+#D" msgstr "атрибут packed проигнорирован Ð´Ð»Ñ Ð½ÐµÑƒÐ¿Ð°ÐºÐ¾Ð²Ð°Ð½Ð½Ð¾Ð³Ð¾ не-POD Ð¿Ð¾Ð»Ñ %q+#D" -#: cp/class.c:3504 +#: cp/class.c:3507 #, gcc-internal-format msgid "field %q+#D with same name as class" msgstr "поле %q+#D Ñ Ñ‚ÐµÐ¼ же именем, что и клаÑÑ" -#: cp/class.c:3527 +#: cp/class.c:3530 #, gcc-internal-format msgid "%q#T has pointer data members" msgstr "%q+#T Ñодержит Ñлементы данных типа указатель" -#: cp/class.c:3532 +#: cp/class.c:3535 #, gcc-internal-format msgid " but does not override %<%T(const %T&)%>" msgstr " но не переопределÑет %<%T(const %T&)%>" -#: cp/class.c:3534 +#: cp/class.c:3537 #, gcc-internal-format msgid " or %<operator=(const %T&)%>" msgstr " или %<operator=(const %T&)%>" -#: cp/class.c:3538 +#: cp/class.c:3541 #, gcc-internal-format msgid " but does not override %<operator=(const %T&)%>" msgstr " но не переопределÑет %<operator=(const %T&)%>" -#: cp/class.c:4009 +#: cp/class.c:4012 #, 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:4136 +#: cp/class.c:4139 #, gcc-internal-format msgid "class %qT will be considered nearly empty in a future version of GCC" msgstr "клаÑÑ %qT будет раÑÑматриватьÑÑ ÐºÐ°Ðº почти пуÑтой в будущих верÑиÑÑ… GCC" -#: cp/class.c:4218 +#: cp/class.c:4221 #, gcc-internal-format msgid "initializer specified for non-virtual method %q+D" msgstr "инициализатор задан Ð´Ð»Ñ Ð½ÐµÐ²Ð¸Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ метода %q+D" -#: cp/class.c:4645 +#: cp/class.c:4648 #, gcc-internal-format msgid "method overrides both %<transaction_pure%> and %qE methods" msgstr "" -#: cp/class.c:4666 +#: cp/class.c:4669 #, gcc-internal-format msgid "method declared %qE overriding %qE method" msgstr "" -#: cp/class.c:5132 cp/semantics.c:5826 +#: cp/class.c:5135 cp/semantics.c:5828 #, fuzzy, gcc-internal-format msgid "enclosing class of constexpr non-static member function %q+#D is not a literal type" msgstr "%qs не ÑвлÑетÑÑ Ð¸Ð¼ÐµÐ½ÐµÐ¼ типа" -#: cp/class.c:5157 +#: cp/class.c:5160 #, fuzzy, gcc-internal-format msgid "%q+T is not literal because:" msgstr "%q#T не ÑвлÑетÑÑ ÐºÐ»Ð°ÑÑом" -#: cp/class.c:5159 +#: cp/class.c:5162 #, fuzzy, gcc-internal-format msgid " %q+T has a non-trivial destructor" msgstr "базовый клаÑÑ %q#T имеет невиртуальный деÑтруктор" -#: cp/class.c:5164 +#: cp/class.c:5167 #, gcc-internal-format msgid " %q+T is not an aggregate, does not have a trivial default constructor, and has no constexpr constructor that is not a copy or move constructor" msgstr "" -#: cp/class.c:5200 +#: cp/class.c:5203 #, fuzzy, gcc-internal-format msgid " base class %qT of %q+T is non-literal" msgstr "%qs не ÑвлÑетÑÑ Ð¸Ð¼ÐµÐ½ÐµÐ¼ типа" -#: cp/class.c:5214 +#: cp/class.c:5217 #, fuzzy, gcc-internal-format msgid " non-static data member %q+D has non-literal type" msgstr "`%#D' не ÑвлÑетÑÑ Ð½ÐµÑтатичеÑким Ñлементом %qT" -#: cp/class.c:5332 +#: cp/class.c:5335 #, gcc-internal-format msgid "non-static reference %q+#D in class without a constructor" msgstr "неÑтатичеÑÐºÐ°Ñ ÑÑылка %q+#D в клаÑÑе без конÑтруктора" -#: cp/class.c:5337 +#: cp/class.c:5340 #, gcc-internal-format msgid "non-static const member %q+#D in class without a constructor" msgstr "неÑтатичеÑкий конÑтантный Ñлемент %q+#D в клаÑÑе без конÑтруктора" #. If the function is defaulted outside the class, we just #. give the synthesis error. -#: cp/class.c:5363 +#: cp/class.c:5366 #, gcc-internal-format msgid "%q+D declared to take const reference, but implicit declaration would take non-const" msgstr "" -#: cp/class.c:5587 +#: cp/class.c:5590 #, 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:5688 +#: cp/class.c:5691 #, gcc-internal-format msgid "direct base %qT inaccessible in %qT due to ambiguity" msgstr "непоÑредÑÑ‚Ð²ÐµÐ½Ð½Ð°Ñ Ð±Ð°Ð·Ð° %qT недоÑтупна в %qT из-за неоднозначноÑти" -#: cp/class.c:5700 +#: cp/class.c:5703 #, gcc-internal-format msgid "virtual base %qT inaccessible in %qT due to ambiguity" msgstr "Ð²Ð¸Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ð°Ñ Ð±Ð°Ð·Ð° %qT недоÑтупна в %qT из-за неоднозначноÑти" -#: cp/class.c:5886 +#: cp/class.c:5889 #, 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" -#: cp/class.c:5926 +#: cp/class.c:5929 #, 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:5954 +#: cp/class.c:5957 #, 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:5964 +#: cp/class.c:5967 #, 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:6052 +#: cp/class.c:6055 #, 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:6220 cp/decl.c:12134 cp/parser.c:18856 +#: cp/class.c:6223 cp/decl.c:12125 cp/parser.c:18860 #, gcc-internal-format msgid "redefinition of %q#T" msgstr "повторное определение %q#T" -#: cp/class.c:6369 +#: cp/class.c:6372 #, gcc-internal-format msgid "%q#T has virtual functions and accessible non-virtual destructor" msgstr "%q#T Ñодержит виртуальные функции, но невиртуальный деÑтруктор" -#: cp/class.c:6395 +#: cp/class.c:6398 #, fuzzy, gcc-internal-format -#| msgid "type transparent class %qT does not have any fields" msgid "type transparent %q#T does not have any fields" msgstr "в типе прозрачного клаÑÑа %qT нет никаких полей" -#: cp/class.c:6401 +#: cp/class.c:6404 #, gcc-internal-format msgid "type transparent class %qT has base classes" msgstr "" -#: cp/class.c:6405 +#: cp/class.c:6408 #, gcc-internal-format msgid "type transparent class %qT has virtual functions" msgstr "в типе прозрачного клаÑÑа %qT еÑÑ‚ÑŒ виртуальные функции" -#: cp/class.c:6411 +#: cp/class.c:6414 #, gcc-internal-format msgid "type transparent %q#T cannot be made transparent because the type of the first field has a different ABI from the class overall" msgstr "" -#: cp/class.c:6562 +#: cp/class.c:6565 #, gcc-internal-format msgid "trying to finish struct, but kicked out due to previous parse errors" msgstr "не удалоÑÑŒ завершить Ñтруктуру из-за предыдущих грамматичеÑких ошибок" -#: cp/class.c:7071 +#: cp/class.c:7074 #, gcc-internal-format msgid "language string %<\"%E\"%> not recognized" msgstr "Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ñтрока %<\"%E\"%>, Ð·Ð°Ð´Ð°ÑŽÑ‰Ð°Ñ Ñзык" -#: cp/class.c:7160 +#: cp/class.c:7163 #, gcc-internal-format msgid "cannot resolve overloaded function %qD based on conversion to type %qT" msgstr "ошибка при выборе перегруженной функции %qD при преобразовании к типу %qT" -#: cp/class.c:7280 +#: cp/class.c:7283 #, gcc-internal-format msgid "no matches converting function %qD to type %q#T" msgstr "нет ÑпоÑоба Ð´Ð»Ñ Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ %qD к типу %q#T" -#: cp/class.c:7308 +#: cp/class.c:7311 #, gcc-internal-format msgid "converting overloaded function %qD to type %q#T is ambiguous" msgstr "преобразование перегруженной функции %qD к типу %q#T неоднозначно" -#: cp/class.c:7335 +#: cp/class.c:7338 #, gcc-internal-format msgid "assuming pointer to member %qD" msgstr "предполагаетÑÑ ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»ÑŒ на Ñлемент %qD" -#: cp/class.c:7338 +#: cp/class.c:7341 #, gcc-internal-format msgid "(a pointer to member can only be formed with %<&%E%>)" msgstr "(указатель на Ñлемент можно получить только при помощи %<&%E%>)" -#: cp/class.c:7413 cp/class.c:7447 +#: cp/class.c:7416 cp/class.c:7450 #, gcc-internal-format msgid "not enough type information" msgstr "недоÑÑ‚Ð°Ñ‚Ð¾Ñ‡Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ типе" -#: cp/class.c:7430 cp/cvt.c:173 cp/cvt.c:199 cp/cvt.c:248 +#: cp/class.c:7433 cp/cvt.c:173 cp/cvt.c:199 cp/cvt.c:248 #, gcc-internal-format msgid "cannot convert %qE from type %qT to type %qT" msgstr "ошибка Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ %qE из типа %qT в тип %qT" @@ -28787,12 +28723,12 @@ msgstr "ошибка Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ %qE из типа %qT в тиР#. 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:7742 cp/decl.c:1325 +#: cp/class.c:7745 cp/decl.c:1325 #, gcc-internal-format msgid "declaration of %q#D" msgstr "Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ %q#D" -#: cp/class.c:7743 +#: cp/class.c:7746 #, gcc-internal-format msgid "changes meaning of %qD from %q+#D" msgstr "делает трактовку %qD отличной от %q+#D" @@ -29919,233 +29855,233 @@ msgstr "`%#D' не ÑвлÑетÑÑ Ð½ÐµÑтатичеÑким ÑлементоРmsgid "function %q#D is initialized like a variable" msgstr "Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ %q#D инициализирована как переменнаÑ" -#: cp/decl.c:6883 +#: cp/decl.c:6886 #, gcc-internal-format msgid "non-local variable %qD declared %<__thread%> needs dynamic initialization" msgstr "" -#: cp/decl.c:6886 +#: cp/decl.c:6889 #, fuzzy, gcc-internal-format msgid "non-local variable %qD declared %<__thread%> has a non-trivial destructor" msgstr "базовый клаÑÑ %q#T имеет невиртуальный деÑтруктор" -#: cp/decl.c:6892 +#: cp/decl.c:6895 #, gcc-internal-format msgid "C++11 %<thread_local%> allows dynamic initialization and destruction" msgstr "" -#: cp/decl.c:7119 +#: cp/decl.c:7122 #, fuzzy, gcc-internal-format msgid "initializer fails to determine size of %qT" msgstr "при инициализации не удалоÑÑŒ определить размер %qD" -#: cp/decl.c:7123 +#: cp/decl.c:7126 #, fuzzy, gcc-internal-format msgid "array size missing in %qT" msgstr "не задан размер маÑÑива Ð´Ð»Ñ %qD" -#: cp/decl.c:7126 +#: cp/decl.c:7129 #, fuzzy, gcc-internal-format msgid "zero-size array %qT" msgstr "маÑÑив %qD имеет нулевой размер" -#: cp/decl.c:7142 +#: cp/decl.c:7145 #, gcc-internal-format msgid "destructor for alien class %qT cannot be a member" msgstr "деÑтруктор чужого клаÑÑа %qT не может быть Ñлементом" -#: cp/decl.c:7144 +#: cp/decl.c:7147 #, gcc-internal-format msgid "constructor for alien class %qT cannot be a member" msgstr "конÑтруктор чужого клаÑÑа %qT не может быть Ñлементом" -#: cp/decl.c:7168 +#: cp/decl.c:7171 #, fuzzy, gcc-internal-format msgid "%qD declared as a %<virtual%> variable" msgstr "%qD декларирован как %<virtual%> %s" -#: cp/decl.c:7170 +#: cp/decl.c:7173 #, fuzzy, gcc-internal-format msgid "%qD declared as an %<inline%> variable" msgstr "%qD декларирован как %<inline%> %s" -#: cp/decl.c:7172 +#: cp/decl.c:7175 #, fuzzy, gcc-internal-format msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in variable declaration" msgstr "Ñпецификаторы %<const%> и %<volatile%> Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ %qD некорректны в декларации %s" -#: cp/decl.c:7177 +#: cp/decl.c:7180 #, fuzzy, gcc-internal-format msgid "%qD declared as a %<virtual%> parameter" msgstr "%qD декларирован как %<virtual%> %s" -#: cp/decl.c:7179 +#: cp/decl.c:7182 #, fuzzy, gcc-internal-format msgid "%qD declared as an %<inline%> parameter" msgstr "%qD декларирован как %<inline%> %s" -#: cp/decl.c:7181 +#: cp/decl.c:7184 #, fuzzy, gcc-internal-format msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in parameter declaration" msgstr "Ñпецификаторы %<const%> и %<volatile%> Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ %qD некорректны в декларации %s" -#: cp/decl.c:7186 +#: cp/decl.c:7189 #, fuzzy, gcc-internal-format msgid "%qD declared as a %<virtual%> type" msgstr "%qD декларирован как %<virtual%> %s" -#: cp/decl.c:7188 +#: cp/decl.c:7191 #, fuzzy, gcc-internal-format msgid "%qD declared as an %<inline%> type" msgstr "%qD декларирован как %<inline%> %s" -#: cp/decl.c:7190 +#: cp/decl.c:7193 #, fuzzy, gcc-internal-format msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in type declaration" msgstr "Ñпецификаторы %<const%> и %<volatile%> Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ %qD некорректны в декларации %s" -#: cp/decl.c:7195 +#: cp/decl.c:7198 #, fuzzy, gcc-internal-format msgid "%qD declared as a %<virtual%> field" msgstr "%qD декларирован как %<virtual%> %s" -#: cp/decl.c:7197 +#: cp/decl.c:7200 #, fuzzy, gcc-internal-format msgid "%qD declared as an %<inline%> field" msgstr "%qD декларирован как %<inline%> %s" -#: cp/decl.c:7199 +#: cp/decl.c:7202 #, fuzzy, gcc-internal-format msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in field declaration" msgstr "Ñпецификаторы %<const%> и %<volatile%> Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ %qD некорректны в декларации %s" -#: cp/decl.c:7206 +#: cp/decl.c:7209 #, gcc-internal-format msgid "%q+D declared as a friend" msgstr "%q+D декларировано как friend" -#: cp/decl.c:7212 +#: cp/decl.c:7215 #, gcc-internal-format msgid "%q+D declared with an exception specification" msgstr "%q+D декларировано Ñо Ñпецификацией иÑключительной Ñитуации" -#: cp/decl.c:7246 +#: cp/decl.c:7249 #, gcc-internal-format msgid "definition of %qD is not in namespace enclosing %qT" msgstr "определение %qD вне проÑтранÑтва имён, объемлющего %qT" -#: cp/decl.c:7286 +#: cp/decl.c:7289 #, gcc-internal-format msgid "static member function %q#D declared with type qualifiers" msgstr "ÑтатичеÑÐºÐ°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ-член %q#D объÑвлена Ñ ÐºÐ²Ð°Ð»Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð°Ð¼Ð¸ типа" -#: cp/decl.c:7385 +#: cp/decl.c:7388 #, gcc-internal-format msgid "defining explicit specialization %qD in friend declaration" msgstr "определение Ñвной Ñпециализации %qD в friend-декларации" #. Something like `template <class T> friend void f<T>()'. -#: cp/decl.c:7395 +#: cp/decl.c:7398 #, gcc-internal-format msgid "invalid use of template-id %qD in declaration of primary template" msgstr "некорректное иÑпользование идентификатора шаблона %qD в декларации первичного шаблона" -#: cp/decl.c:7425 +#: cp/decl.c:7428 #, gcc-internal-format msgid "default arguments are not allowed in declaration of friend template specialization %qD" msgstr "аргументы по умолчанию не допуÑкаютÑÑ Ð² декларации Ñпециализации friend-шаблона %qD" -#: cp/decl.c:7433 +#: cp/decl.c:7436 #, gcc-internal-format msgid "%<inline%> is not allowed in declaration of friend template specialization %qD" msgstr "не допуÑкаетÑÑ Ð¸Ñпользовать %<inline%> в декларации Ñпециализации friend-шаблона %qD" -#: cp/decl.c:7475 +#: cp/decl.c:7478 #, gcc-internal-format msgid "cannot declare %<::main%> to be a template" msgstr "недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ %<::main%> как шаблона" -#: cp/decl.c:7477 +#: cp/decl.c:7480 #, gcc-internal-format msgid "cannot declare %<::main%> to be inline" msgstr "недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ %<::main%> как inline-функции" -#: cp/decl.c:7479 +#: cp/decl.c:7482 #, gcc-internal-format msgid "cannot declare %<::main%> to be static" msgstr "недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ %<::main%> как ÑтатичеÑкой функции" -#: cp/decl.c:7507 +#: cp/decl.c:7510 #, gcc-internal-format msgid "anonymous type with no linkage used to declare function %q#D with linkage" msgstr "" -#: cp/decl.c:7511 cp/decl.c:7879 cp/decl2.c:3864 +#: cp/decl.c:7514 cp/decl.c:7882 cp/decl2.c:3864 #, 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:7517 +#: cp/decl.c:7520 #, fuzzy, gcc-internal-format msgid "type %qT with no linkage used to declare function %q#D with linkage" msgstr "Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ `%#D' Ñ Ð¿Ñ€Ð¸Ð²Ñзкой %L" -#: cp/decl.c:7539 +#: cp/decl.c:7542 #, fuzzy, gcc-internal-format msgid "static member function %qD cannot have cv-qualifier" msgstr "%sÑлемент, Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ %qD, не может иметь квалификатор метода - %qT" -#: cp/decl.c:7540 +#: cp/decl.c:7543 #, gcc-internal-format msgid "non-member function %qD cannot have cv-qualifier" msgstr "" -#: cp/decl.c:7556 +#: cp/decl.c:7559 #, fuzzy, gcc-internal-format msgid "literal operator with C linkage" msgstr "шаблон Ñ Ð¿Ñ€Ð¸Ð²Ñзкой C" -#: cp/decl.c:7565 +#: cp/decl.c:7568 #, fuzzy, gcc-internal-format msgid "%qD has invalid argument list" msgstr "некорректный аргумент внутренней функции" -#: cp/decl.c:7573 +#: cp/decl.c:7576 #, gcc-internal-format msgid "integer suffix %<%s%> shadowed by implementation" msgstr "" -#: cp/decl.c:7579 +#: cp/decl.c:7582 #, gcc-internal-format msgid "floating point suffix %<%s%> shadowed by implementation" msgstr "" -#: cp/decl.c:7585 +#: cp/decl.c:7588 #, fuzzy, gcc-internal-format msgid "%qD must be a non-member function" msgstr "%qD должен быть неÑтатичеÑкой Ñлементом-функцией" -#: cp/decl.c:7636 +#: cp/decl.c:7639 #, gcc-internal-format msgid "%<::main%> must return %<int%>" msgstr "%<::main%> должна возвращать %<int%>" -#: cp/decl.c:7678 +#: cp/decl.c:7681 #, gcc-internal-format msgid "definition of implicitly-declared %qD" msgstr "определение неÑвно декларированного %qD" -#: cp/decl.c:7683 +#: cp/decl.c:7686 #, fuzzy, gcc-internal-format msgid "definition of explicitly-defaulted %q+D" msgstr "определение неÑвно декларированного %qD" -#: cp/decl.c:7684 +#: cp/decl.c:7687 #, fuzzy, gcc-internal-format msgid "%q+#D explicitly defaulted here" msgstr "Ñто предыдущее определение `%#D'" -#: cp/decl.c:7701 cp/decl2.c:738 +#: cp/decl.c:7704 cp/decl2.c:738 #, gcc-internal-format msgid "no %q#D member function declared in class %qT" msgstr "нет Ñлемента-функции %q#D в клаÑÑе %qT" @@ -30154,886 +30090,879 @@ msgstr "нет Ñлемента-функции %q#D в клаÑÑе %qT" #. 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:7876 +#: cp/decl.c:7879 #, gcc-internal-format msgid "anonymous type with no linkage used to declare variable %q#D with linkage" msgstr "" -#: cp/decl.c:7885 +#: cp/decl.c:7888 #, gcc-internal-format msgid "type %qT with no linkage used to declare variable %q#D with linkage" msgstr "" -#: cp/decl.c:8008 +#: cp/decl.c:8011 #, fuzzy, gcc-internal-format msgid "in-class initialization of static data member %q#D of incomplete type" msgstr "Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð²Ð½ÑƒÑ‚Ñ€Ð¸ клаÑÑа ÑтатичеÑкого Ñлемента данных нецелочиÑленного типа %qT" -#: cp/decl.c:8012 +#: cp/decl.c:8015 #, fuzzy, gcc-internal-format msgid "%<constexpr%> needed for in-class initialization of static data member %q#D of non-integral type" msgstr "Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð²Ð½ÑƒÑ‚Ñ€Ð¸ клаÑÑа ÑтатичеÑкого Ñлемента данных нецелочиÑленного типа %qT" -#: cp/decl.c:8015 +#: cp/decl.c:8018 #, fuzzy, gcc-internal-format msgid "in-class initialization of static data member %q#D of non-literal type" msgstr "Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð²Ð½ÑƒÑ‚Ñ€Ð¸ клаÑÑа ÑтатичеÑкого Ñлемента данных нецелочиÑленного типа %qT" -#: cp/decl.c:8028 +#: cp/decl.c:8031 #, gcc-internal-format msgid "invalid in-class initialization of static data member of non-integral type %qT" msgstr "Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð²Ð½ÑƒÑ‚Ñ€Ð¸ клаÑÑа ÑтатичеÑкого Ñлемента данных нецелочиÑленного типа %qT" -#: cp/decl.c:8034 +#: cp/decl.c:8037 #, gcc-internal-format msgid "ISO C++ forbids in-class initialization of non-const static member %qD" msgstr "ISO C++ запрещает инициализацию внутри клаÑÑа неконÑтантного ÑтатичеÑкого Ñлемента %qD" -#: cp/decl.c:8038 +#: cp/decl.c:8041 #, 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:8144 cp/decl.c:8172 +#: cp/decl.c:8147 cp/decl.c:8175 #, gcc-internal-format msgid "size of array %qD has non-integral type %qT" msgstr "размер маÑÑива %qD имеет нецелочиÑленный тип %qT" -#: cp/decl.c:8147 cp/decl.c:8174 +#: cp/decl.c:8150 cp/decl.c:8177 #, gcc-internal-format msgid "size of array has non-integral type %qT" msgstr "размер маÑÑива имеет нецелочиÑленный тип %qT" -#: cp/decl.c:8224 +#: cp/decl.c:8227 #, gcc-internal-format msgid "size of array %qD is negative" msgstr "размер маÑÑива %qD отрицательный" -#: cp/decl.c:8226 +#: cp/decl.c:8229 #, gcc-internal-format msgid "size of array is negative" msgstr "размер маÑÑива отрицательный" -#: cp/decl.c:8240 +#: cp/decl.c:8243 #, gcc-internal-format msgid "ISO C++ forbids zero-size array %qD" msgstr "ISO C++ запрещает маÑÑив нулевого размера %qD" -#: cp/decl.c:8242 +#: cp/decl.c:8245 #, gcc-internal-format msgid "ISO C++ forbids zero-size array" msgstr "ISO C++ запрещает маÑÑивы нулевого размера" -#: cp/decl.c:8254 +#: cp/decl.c:8257 #, gcc-internal-format msgid "size of array %qD is not an integral constant-expression" msgstr "размер маÑÑива %qD не ÑвлÑетÑÑ Ñ†ÐµÐ»Ð¾Ñ‡Ð¸Ñленным конÑтантным выражением" -#: cp/decl.c:8257 +#: cp/decl.c:8260 #, gcc-internal-format msgid "size of array is not an integral constant-expression" msgstr "размер маÑÑива не ÑвлÑетÑÑ Ñ†ÐµÐ»Ð¾Ñ‡Ð¸Ñленным конÑтантным выражением" -#: cp/decl.c:8263 +#: cp/decl.c:8266 #, gcc-internal-format msgid "ISO C++ forbids variable length array %qD" msgstr "ISO C++ запрещает маÑÑив переменного размера %qD" -#: cp/decl.c:8265 +#: cp/decl.c:8268 #, gcc-internal-format msgid "ISO C++ forbids variable length array" msgstr "ISO C++ запрещает маÑÑивы переменного размера" -#: cp/decl.c:8271 +#: cp/decl.c:8274 #, gcc-internal-format msgid "variable length array %qD is used" msgstr "иÑпользуетÑÑ Ð¼Ð°ÑÑив переменного размера %qD" -#: cp/decl.c:8323 +#: cp/decl.c:8326 #, gcc-internal-format msgid "overflow in array dimension" msgstr "переполнение в размерноÑти маÑÑива" -#: cp/decl.c:8383 +#: cp/decl.c:8386 #, fuzzy, gcc-internal-format msgid "declaration of %qD as array of %<auto%>" msgstr "Ð¸Ð¼Ñ %qs опиÑано как маÑÑив Ñлементов типа void" -#: cp/decl.c:8391 +#: cp/decl.c:8394 #, fuzzy, gcc-internal-format msgid "declaration of %qD as array of void" msgstr "Ð¸Ð¼Ñ %qs опиÑано как маÑÑив Ñлементов типа void" -#: cp/decl.c:8393 +#: cp/decl.c:8396 #, fuzzy, gcc-internal-format msgid "creating array of void" msgstr "Ñоздание маÑÑива Ñлементов типа %qT" -#: cp/decl.c:8398 +#: cp/decl.c:8401 #, fuzzy, gcc-internal-format msgid "declaration of %qD as array of functions" msgstr "Ð¸Ð¼Ñ %qs опиÑано как маÑÑив функций" -#: cp/decl.c:8400 +#: cp/decl.c:8403 #, fuzzy, gcc-internal-format msgid "creating array of functions" msgstr "Ñоздание маÑÑива Ñлементов типа %qT" -#: cp/decl.c:8405 +#: cp/decl.c:8408 #, fuzzy, gcc-internal-format msgid "declaration of %qD as array of references" msgstr "Ð¸Ð¼Ñ %qs опиÑано как маÑÑив функций" -#: cp/decl.c:8407 +#: cp/decl.c:8410 #, fuzzy, gcc-internal-format msgid "creating array of references" msgstr "Ñоздание маÑÑива Ñлементов типа %qT" -#: cp/decl.c:8412 +#: cp/decl.c:8415 #, fuzzy, gcc-internal-format msgid "declaration of %qD as array of function members" msgstr "Ð¸Ð¼Ñ %qs опиÑано как маÑÑив функций" -#: cp/decl.c:8414 +#: cp/decl.c:8417 #, fuzzy, gcc-internal-format msgid "creating array of function members" msgstr "Ð¸Ð¼Ñ %qs опиÑано как маÑÑив функций" -#: cp/decl.c:8428 +#: cp/decl.c:8431 #, gcc-internal-format msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first" msgstr "Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ Ð¼Ð½Ð¾Ð³Ð¾Ð¼ÐµÑ€Ð½Ð¾Ð³Ð¾ маÑÑива %qD должна определÑÑ‚ÑŒ границы Ð´Ð»Ñ Ð²Ñех размерноÑтей, кроме первой" -#: cp/decl.c:8432 +#: cp/decl.c:8435 #, gcc-internal-format msgid "multidimensional array must have bounds for all dimensions except the first" msgstr "в многомерном маÑÑиве должны быть определены границы Ð´Ð»Ñ Ð²Ñех размерноÑтей, кроме первой" -#: cp/decl.c:8467 +#: cp/decl.c:8470 #, gcc-internal-format msgid "return type specification for constructor invalid" msgstr "Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ ÑÐ¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÐ¼Ð¾Ð³Ð¾ типа в конÑтрукторе" -#: cp/decl.c:8477 +#: cp/decl.c:8480 #, gcc-internal-format msgid "return type specification for destructor invalid" msgstr "Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ ÑÐ¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÐ¼Ð¾Ð³Ð¾ типа в деÑтрукторе" -#: cp/decl.c:8490 +#: cp/decl.c:8493 #, gcc-internal-format msgid "return type specified for %<operator %T%>" msgstr "тип результата задан Ð´Ð»Ñ %<operator %T%>" -#: cp/decl.c:8512 +#: cp/decl.c:8515 #, gcc-internal-format msgid "unnamed variable or field declared void" msgstr "Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ Ð±ÐµÐ·Ñ‹Ð¼Ñнной переменной или Ð¿Ð¾Ð»Ñ Ñ Ñ‚Ð¸Ð¿Ð¾Ð¼ void" -#: cp/decl.c:8519 +#: cp/decl.c:8522 #, gcc-internal-format msgid "variable or field declared void" msgstr "Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð¾Ð¹ или Ð¿Ð¾Ð»Ñ Ñ Ñ‚Ð¸Ð¿Ð¾Ð¼ void" -#: cp/decl.c:8720 +#: cp/decl.c:8722 #, gcc-internal-format msgid "invalid use of qualified-name %<::%D%>" msgstr "недопуÑтимое иÑпользование квалифицированного имени %<::%D%>" -#: cp/decl.c:8723 +#: cp/decl.c:8725 #, gcc-internal-format msgid "invalid use of qualified-name %<%T::%D%>" msgstr "недопуÑтимое иÑпользование квалифицированного имени %<%T::%D%>" -#: cp/decl.c:8726 +#: cp/decl.c:8728 #, gcc-internal-format msgid "invalid use of qualified-name %<%D::%D%>" msgstr "недопуÑтимое иÑпользование квалифицированного имени %<%D::%D%>" -#: cp/decl.c:8735 +#: cp/decl.c:8737 #, fuzzy, gcc-internal-format msgid "%q#T is not a class or a namespace" msgstr "%qT не ÑвлÑетÑÑ ÐºÐ»Ð°ÑÑом или проÑтранÑтвом имён" -#: cp/decl.c:8743 +#: cp/decl.c:8745 #, gcc-internal-format msgid "type %qT is not derived from type %qT" msgstr "тип %qT не ÑвлÑетÑÑ Ð¿Ñ€Ð¾Ð¸Ð·Ð²Ð¾Ð´Ð½Ñ‹Ð¼ от %qT" -#: cp/decl.c:8759 cp/decl.c:8851 cp/decl.c:8860 cp/decl.c:10242 +#: cp/decl.c:8761 cp/decl.c:8853 cp/decl.c:8862 cp/decl.c:10238 #, gcc-internal-format msgid "declaration of %qD as non-function" msgstr "Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ %qD как не-функции" -#: cp/decl.c:8765 +#: cp/decl.c:8767 #, gcc-internal-format msgid "declaration of %qD as non-member" msgstr "Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ %qD как не-Ñлемента" -#: cp/decl.c:8796 +#: cp/decl.c:8798 #, gcc-internal-format msgid "declarator-id missing; using reserved word %qD" msgstr "декларатор отÑутÑтвует; иÑпользуетÑÑ Ð·Ð°Ñ€ÐµÐ·ÐµÑ€Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð¾Ðµ Ñлово %qD" -#: cp/decl.c:8843 +#: cp/decl.c:8845 #, gcc-internal-format msgid "function definition does not declare parameters" msgstr "определение функции не объÑвлÑет параметры" -#: cp/decl.c:8868 +#: cp/decl.c:8870 #, fuzzy, gcc-internal-format msgid "declaration of %qD as %<typedef%>" msgstr "ÑˆÐ°Ð±Ð»Ð¾Ð½Ð½Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ `%#D'" -#: cp/decl.c:8873 +#: cp/decl.c:8875 #, fuzzy, gcc-internal-format msgid "declaration of %qD as parameter" msgstr "Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ %q+D перекрывает параметр" -#: cp/decl.c:8906 +#: cp/decl.c:8908 #, fuzzy, gcc-internal-format msgid "%<constexpr%> cannot appear in a typedef declaration" msgstr "идентификатор шаблона недопуÑтим в using-декларации" -#: cp/decl.c:8914 +#: cp/decl.c:8916 #, gcc-internal-format msgid "two or more data types in declaration of %qs" msgstr "два или более типа в декларации имени %qs" -#: cp/decl.c:8920 +#: cp/decl.c:8922 #, gcc-internal-format msgid "conflicting specifiers in declaration of %qs" msgstr "конфликтующие Ñпецификаторы в декларации %qs" -#: cp/decl.c:8992 cp/decl.c:8995 cp/decl.c:8998 +#: cp/decl.c:8994 cp/decl.c:8997 cp/decl.c:9000 #, gcc-internal-format msgid "ISO C++ forbids declaration of %qs with no type" msgstr "ISO C++ запрещает декларации %qs без типа" -#: cp/decl.c:9009 +#: cp/decl.c:9011 #, fuzzy, gcc-internal-format msgid "%<__int128%> is not supported by this target" msgstr "__builtin_saveregs не поддерживаетÑÑ Ð´Ð»Ñ Ñтой целевой платформы" -#: cp/decl.c:9014 +#: cp/decl.c:9016 #, fuzzy, gcc-internal-format msgid "ISO C++ does not support %<__int128%> for %qs" msgstr "ISO C++ не поддерживает %<long long%>" -#: cp/decl.c:9035 cp/decl.c:9055 +#: cp/decl.c:9037 cp/decl.c:9057 #, gcc-internal-format msgid "%<signed%> or %<unsigned%> invalid for %qs" msgstr "%<signed%> или %<unsigned%> некорректны Ð´Ð»Ñ %qs" -#: cp/decl.c:9037 +#: cp/decl.c:9039 #, gcc-internal-format msgid "%<signed%> and %<unsigned%> specified together for %qs" msgstr "%<signed%> и %<unsigned%> одновременно заданы Ð´Ð»Ñ %qs" -#: cp/decl.c:9039 +#: cp/decl.c:9041 #, gcc-internal-format msgid "%<long long%> invalid for %qs" msgstr "недопуÑтимо иÑпользовать %<long long%> Ð´Ð»Ñ %qs" -#: cp/decl.c:9041 +#: cp/decl.c:9043 #, gcc-internal-format msgid "%<long%> invalid for %qs" msgstr "недопуÑтимо иÑпользовать %<long%> Ð´Ð»Ñ %qs" -#: cp/decl.c:9043 +#: cp/decl.c:9045 #, gcc-internal-format msgid "%<short%> invalid for %qs" msgstr "недопуÑтимо иÑпользовать %<short%> Ð´Ð»Ñ %qs" -#: cp/decl.c:9045 +#: cp/decl.c:9047 #, gcc-internal-format msgid "%<long%> or %<short%> invalid for %qs" msgstr "%<long%> или %<short%> некорректны Ð´Ð»Ñ %qs" -#: cp/decl.c:9047 +#: cp/decl.c:9049 #, fuzzy, gcc-internal-format msgid "%<long%>, %<int%>, %<short%>, or %<char%> invalid for %qs" msgstr "%<long%> или %<short%> некорректны Ð´Ð»Ñ %qs" -#: cp/decl.c:9049 +#: cp/decl.c:9051 #, gcc-internal-format msgid "%<long%> or %<short%> specified with char for %qs" msgstr "%<long%> или %<short%> заданы в опиÑании %qs Ñ Ñ‚Ð¸Ð¿Ð¾Ð¼ char" -#: cp/decl.c:9051 +#: cp/decl.c:9053 #, gcc-internal-format msgid "%<long%> and %<short%> specified together for %qs" msgstr "%<long%> и %<short%> одновременно заданы Ð´Ð»Ñ %qs" -#: cp/decl.c:9057 +#: cp/decl.c:9059 #, fuzzy, gcc-internal-format msgid "%<short%> or %<long%> invalid for %qs" msgstr "%<long%> или %<short%> некорректны Ð´Ð»Ñ %qs" -#: cp/decl.c:9065 +#: cp/decl.c:9067 #, gcc-internal-format msgid "long, short, signed or unsigned used invalidly for %qs" msgstr "неверное употребление long, short, signed или unsigned в опиÑании %s" -#: cp/decl.c:9133 +#: cp/decl.c:9135 #, gcc-internal-format msgid "complex invalid for %qs" msgstr "Ñпецификатор complex Ð´Ð»Ñ %qs недопуÑтим" -#: cp/decl.c:9161 +#: cp/decl.c:9163 #, gcc-internal-format msgid "qualifiers are not allowed on declaration of %<operator %T%>" msgstr "квалификаторы не допуÑкаютÑÑ Ð² декларации %<operator %T%>" -#: cp/decl.c:9193 +#: cp/decl.c:9195 #, gcc-internal-format msgid "member %qD cannot be declared both virtual and static" msgstr "Ñлемент %qD не может быть декларирован как virtual и static" -#: cp/decl.c:9201 -#, gcc-internal-format -msgid "%<%T::%D%> is not a valid declarator" -msgstr "%<%T::%D%> не ÑвлÑетÑÑ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ñ‹Ð¼ декларатором" - -#: cp/decl.c:9210 +#: cp/decl.c:9206 #, gcc-internal-format msgid "typedef declaration invalid in parameter declaration" msgstr "typedef-Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ Ð½Ðµ допуÑкаетÑÑ Ð² декларации параметров" -#: cp/decl.c:9215 +#: cp/decl.c:9211 #, fuzzy, gcc-internal-format msgid "storage class specified for template parameter %qs" msgstr "клаÑÑ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð² декларации параметра %qs" -#: cp/decl.c:9221 +#: cp/decl.c:9217 #, gcc-internal-format msgid "storage class specifiers invalid in parameter declarations" msgstr "Ñпецификаторы клаÑÑа Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð½Ðµ допуÑкаютÑÑ Ð² декларациÑÑ… параметров" -#: cp/decl.c:9227 +#: cp/decl.c:9223 #, fuzzy, gcc-internal-format msgid "a parameter cannot be declared %<constexpr%>" msgstr "недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ Ð½Ðµ-Ñлемента %qs как %<mutable%>" -#: cp/decl.c:9236 +#: cp/decl.c:9232 #, fuzzy, gcc-internal-format msgid "%<virtual%> outside class declaration" msgstr "virtual вне декларации клаÑÑа" -#: cp/decl.c:9254 +#: cp/decl.c:9250 #, gcc-internal-format msgid "multiple storage classes in declaration of %qs" msgstr "в декларации %qs задано более одного клаÑÑа хранениÑ" -#: cp/decl.c:9277 +#: cp/decl.c:9273 #, gcc-internal-format msgid "storage class specified for %qs" msgstr "Ð´Ð»Ñ %qs задан клаÑÑ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ" -#: cp/decl.c:9281 +#: cp/decl.c:9277 #, gcc-internal-format msgid "storage class specified for parameter %qs" msgstr "клаÑÑ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð² декларации параметра %qs" -#: cp/decl.c:9294 +#: cp/decl.c:9290 #, gcc-internal-format msgid "nested function %qs declared %<extern%>" msgstr "Ð²Ð»Ð¾Ð¶ÐµÐ½Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ %qs объÑвлена %<extern%>" -#: cp/decl.c:9298 +#: cp/decl.c:9294 #, gcc-internal-format msgid "top-level declaration of %qs specifies %<auto%>" msgstr "Ð¸Ð¼Ñ %qs опиÑано на верхнем уровне Ñ ÐºÐ»Ð°ÑÑом Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ %<auto%>" -#: cp/decl.c:9305 +#: cp/decl.c:9301 #, gcc-internal-format msgid "function-scope %qs implicitly auto and declared %<__thread%>" msgstr "Ð¸Ð¼Ñ %qs на уровне функции неÑвно имеет клаÑÑ auto и объÑвлено %<__thread%>" -#: cp/decl.c:9317 +#: cp/decl.c:9313 #, gcc-internal-format msgid "storage class specifiers invalid in friend function declarations" msgstr "клаÑÑ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð½Ðµ допуÑкаетÑÑ Ð² декларации friend-функции" -#: cp/decl.c:9427 +#: cp/decl.c:9423 #, gcc-internal-format msgid "%qs declared as function returning a function" msgstr "%qs объÑвлена как функциÑ, Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÑŽÑ‰Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸ÑŽ" -#: cp/decl.c:9432 +#: cp/decl.c:9428 #, gcc-internal-format msgid "%qs declared as function returning an array" msgstr "%qs объÑвлена как функциÑ, Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÑŽÑ‰Ð°Ñ Ð¼Ð°ÑÑив" -#: cp/decl.c:9438 +#: cp/decl.c:9434 #, fuzzy, gcc-internal-format -#| msgid "%qs declared as function returning an array" msgid "%qs declared as function returning an abstract class type" msgstr "%qs объÑвлена как функциÑ, Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÑŽÑ‰Ð°Ñ Ð¼Ð°ÑÑив" -#: cp/decl.c:9467 +#: cp/decl.c:9463 #, gcc-internal-format msgid "%qs function uses %<auto%> type specifier without trailing return type" msgstr "" -#: cp/decl.c:9473 +#: cp/decl.c:9469 #, gcc-internal-format msgid "%qs function with trailing return type has %qT as its type rather than plain %<auto%>" msgstr "" #. Not using maybe_warn_cpp0x because this should #. always be an error. -#: cp/decl.c:9484 +#: cp/decl.c:9480 #, gcc-internal-format msgid "trailing return type only available with -std=c++11 or -std=gnu++11" msgstr "" -#: cp/decl.c:9487 +#: cp/decl.c:9483 #, gcc-internal-format msgid "%qs function with trailing return type not declared with %<auto%> type specifier" msgstr "" -#: cp/decl.c:9520 +#: cp/decl.c:9516 #, gcc-internal-format msgid "destructor cannot be static member function" msgstr "деÑтруктор не может быть ÑтатичеÑкой Ñлементом-функцией" -#: cp/decl.c:9521 +#: cp/decl.c:9517 #, fuzzy, gcc-internal-format msgid "constructor cannot be static member function" msgstr "деÑтруктор не может быть ÑтатичеÑкой Ñлементом-функцией" -#: cp/decl.c:9525 +#: cp/decl.c:9521 #, gcc-internal-format msgid "destructors may not be cv-qualified" msgstr "деÑтрукторы не могут быть cv-квалифицированы" -#: cp/decl.c:9526 +#: cp/decl.c:9522 #, fuzzy, gcc-internal-format msgid "constructors may not be cv-qualified" msgstr "деÑтрукторы не могут быть cv-квалифицированы" -#: cp/decl.c:9543 +#: cp/decl.c:9539 #, gcc-internal-format msgid "constructors cannot be declared virtual" msgstr "конÑтрукторы Ð½ÐµÐ»ÑŒÐ·Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ как virtual" -#: cp/decl.c:9556 +#: cp/decl.c:9552 #, fuzzy, gcc-internal-format msgid "can%'t initialize friend function %qs" msgstr "недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ friend-функции %qs" #. Cannot be both friend and virtual. -#: cp/decl.c:9560 +#: cp/decl.c:9556 #, gcc-internal-format msgid "virtual functions cannot be friends" msgstr "виртуальные функции не могут быть friend-функциÑми" -#: cp/decl.c:9564 +#: cp/decl.c:9560 #, gcc-internal-format msgid "friend declaration not in class definition" msgstr "friend-Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ Ð²Ð½Ðµ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ ÐºÐ»Ð°ÑÑа" -#: cp/decl.c:9566 +#: cp/decl.c:9562 #, fuzzy, gcc-internal-format msgid "can%'t define friend function %qs in a local class definition" msgstr "недопуÑтимое определение friend-функции %qs в определении локального клаÑÑа" -#: cp/decl.c:9587 +#: cp/decl.c:9583 #, gcc-internal-format msgid "destructors may not have parameters" msgstr "деÑтрукторы не могут иметь параметров" -#: cp/decl.c:9613 +#: cp/decl.c:9609 #, gcc-internal-format msgid "cannot declare pointer to %q#T" msgstr "недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ Ð½Ð° %q#T" -#: cp/decl.c:9626 cp/decl.c:9633 +#: cp/decl.c:9622 cp/decl.c:9629 #, gcc-internal-format msgid "cannot declare reference to %q#T" msgstr "недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ ÑÑылки на %q#T" -#: cp/decl.c:9635 +#: cp/decl.c:9631 #, gcc-internal-format msgid "cannot declare pointer to %q#T member" msgstr "недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ Ð½Ð° Ñлемент %q#T" -#: cp/decl.c:9658 +#: cp/decl.c:9654 #, fuzzy, gcc-internal-format msgid "cannot declare reference to qualified function type %qT" msgstr "недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ ÑÑылки на %q#T" -#: cp/decl.c:9659 +#: cp/decl.c:9655 #, fuzzy, gcc-internal-format msgid "cannot declare pointer to qualified function type %qT" msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ %s указатель на неполный тип %qT" -#: cp/decl.c:9733 +#: cp/decl.c:9729 #, gcc-internal-format msgid "cannot declare reference to %q#T, which is not a typedef or a template type argument" msgstr "ÐедопуÑтимо определÑÑ‚ÑŒ ÑÑылку на %q#T, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð½Ðµ будет определением типа или аргументом шаблона" -#: cp/decl.c:9797 +#: cp/decl.c:9793 #, fuzzy, gcc-internal-format msgid "both %<volatile%> and %<constexpr%> cannot be used here" msgstr "в декларации иÑпользованы Ñпецификаторы %<short%> и %<double%>" -#: cp/decl.c:9809 +#: cp/decl.c:9805 #, gcc-internal-format msgid "template-id %qD used as a declarator" msgstr "идентификатор шаблона %qD иÑпользован как декларатор" -#: cp/decl.c:9833 +#: cp/decl.c:9829 #, gcc-internal-format msgid "member functions are implicitly friends of their class" msgstr "Ñлементы-функции неÑвно ÑчитаютÑÑ friend-функциÑми Ñвоего клаÑÑа" -#: cp/decl.c:9838 +#: cp/decl.c:9834 #, gcc-internal-format msgid "extra qualification %<%T::%> on member %qs" msgstr "Ð¸Ð·Ð±Ñ‹Ñ‚Ð¾Ñ‡Ð½Ð°Ñ ÐºÐ²Ð°Ð»Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ %<%T::%> Ñлемента %qs" -#: cp/decl.c:9868 +#: cp/decl.c:9864 #, gcc-internal-format msgid "cannot define member function %<%T::%s%> within %<%T%>" msgstr "недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ Ñлемента-функции %<%T::%s%> внутри %<%T%>" -#: cp/decl.c:9870 +#: cp/decl.c:9866 #, fuzzy, gcc-internal-format msgid "cannot declare member function %<%T::%s%> within %<%T%>" msgstr "недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ Ñлемента-функции %<%T::%s%> внутри %<%T%>" -#: cp/decl.c:9879 +#: cp/decl.c:9875 #, gcc-internal-format msgid "cannot declare member %<%T::%s%> within %qT" msgstr "недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ Ñлемента %<%T::%s%> внутри %qT" -#: cp/decl.c:9912 +#: cp/decl.c:9908 #, gcc-internal-format msgid "non-parameter %qs cannot be a parameter pack" msgstr "не параметричеÑкий %qs не может Ñодержать параметры" -#: cp/decl.c:9922 +#: cp/decl.c:9918 #, gcc-internal-format msgid "size of array %qs is too large" msgstr "размер маÑÑива %qs Ñлишком велик" -#: cp/decl.c:9933 +#: cp/decl.c:9929 #, gcc-internal-format msgid "data member may not have variably modified type %qT" msgstr "Ñлемент данных не может иметь тип %qT модифицируемого размера" -#: cp/decl.c:9935 +#: cp/decl.c:9931 #, gcc-internal-format msgid "parameter may not have variably modified type %qT" msgstr "параметр не может иметь модифицированный тип `%T" #. [dcl.fct.spec] The explicit specifier shall only be used in #. declarations of constructors within a class definition. -#: cp/decl.c:9943 +#: cp/decl.c:9939 #, gcc-internal-format msgid "only declarations of constructors can be %<explicit%>" msgstr "только декларации конÑтрукторов могут быть %<explicit%>" -#: cp/decl.c:9951 +#: cp/decl.c:9947 #, gcc-internal-format msgid "non-member %qs cannot be declared %<mutable%>" msgstr "недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ Ð½Ðµ-Ñлемента %qs как %<mutable%>" -#: cp/decl.c:9957 +#: cp/decl.c:9953 #, gcc-internal-format msgid "non-object member %qs cannot be declared %<mutable%>" msgstr "недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ Ð½Ðµ объектного Ñлемента %qs как %<mutable%>" -#: cp/decl.c:9963 +#: cp/decl.c:9959 #, gcc-internal-format msgid "function %qs cannot be declared %<mutable%>" msgstr "недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ %qs как %<mutable%>" -#: cp/decl.c:9968 +#: cp/decl.c:9964 #, gcc-internal-format msgid "static %qs cannot be declared %<mutable%>" msgstr "недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ ÑтатичеÑкого %qs как %<mutable%>" -#: cp/decl.c:9973 +#: cp/decl.c:9969 #, gcc-internal-format msgid "const %qs cannot be declared %<mutable%>" msgstr "недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ ÐºÐ¾Ð½Ñтантного %qs как %<mutable%>" -#: cp/decl.c:9978 +#: cp/decl.c:9974 #, fuzzy, gcc-internal-format msgid "reference %qs cannot be declared %<mutable%>" msgstr "недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ %qs как %<mutable%>" -#: cp/decl.c:10013 +#: cp/decl.c:10009 #, fuzzy, gcc-internal-format msgid "typedef declared %<auto%>" msgstr "параметр %q+D объÑвлен %<inline%>" -#: cp/decl.c:10023 +#: cp/decl.c:10019 #, fuzzy, gcc-internal-format msgid "typedef name may not be a nested-name-specifier" msgstr "%JÐ´Ð»Ñ typedef-имени недопуÑтимы квалификаторы клаÑÑов" -#: cp/decl.c:10042 +#: cp/decl.c:10038 #, gcc-internal-format msgid "ISO C++ forbids nested type %qD with same name as enclosing class" msgstr "ISO C++ запрещает определÑÑ‚ÑŒ вложенный тип %qD Ñ Ñ‚ÐµÐ¼ же именем, что и объемлющий клаÑÑ" -#: cp/decl.c:10143 +#: cp/decl.c:10139 #, gcc-internal-format msgid "qualified function types cannot be used to declare static member functions" msgstr "типы квалифицированных функций не могут иÑпользоватьÑÑ Ð´Ð»Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ ÑтатичеÑких Ñлементов-функций" -#: cp/decl.c:10145 +#: cp/decl.c:10141 #, gcc-internal-format msgid "qualified function types cannot be used to declare free functions" msgstr "типы квалифицированных функций не могут иÑпользоватьÑÑ Ð´Ð»Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñвободных функций" -#: cp/decl.c:10172 +#: cp/decl.c:10168 #, gcc-internal-format msgid "type qualifiers specified for friend class declaration" msgstr "в декларации friend-клаÑÑа иÑпользованы квалификаторы типа" -#: cp/decl.c:10177 +#: cp/decl.c:10173 #, gcc-internal-format msgid "%<inline%> specified for friend class declaration" msgstr "в декларации friend-клаÑÑа иÑпользован квалификатор %<inline%>" -#: cp/decl.c:10185 +#: cp/decl.c:10181 #, gcc-internal-format msgid "template parameters cannot be friends" msgstr "параметры шаблона не могут быть friend" -#: cp/decl.c:10187 +#: cp/decl.c:10183 #, gcc-internal-format msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>" msgstr "в friend-декларации требуетÑÑ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ðµ клаÑÑа: %<friend class %T::%D%>" -#: cp/decl.c:10191 +#: cp/decl.c:10187 #, gcc-internal-format msgid "friend declaration requires class-key, i.e. %<friend %#T%>" msgstr "в friend-декларации требуетÑÑ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ðµ клаÑÑа: %<friend %#T%>" -#: cp/decl.c:10204 +#: cp/decl.c:10200 #, gcc-internal-format msgid "trying to make class %qT a friend of global scope" msgstr "попытка Ñделать клаÑÑ %qT \"другом\" глобальной облаÑти видимоÑти" -#: cp/decl.c:10222 +#: cp/decl.c:10218 #, gcc-internal-format msgid "invalid qualifiers on non-member function type" msgstr "некорректные квалификаторы Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ð° функции, не ÑвлÑющейÑÑ Ñлементом" -#: cp/decl.c:10232 +#: cp/decl.c:10228 #, gcc-internal-format msgid "abstract declarator %qT used as declaration" msgstr "абÑтрактный декларатор %qT иÑпользован в качеÑтве декларатора" -#: cp/decl.c:10261 +#: cp/decl.c:10257 #, gcc-internal-format msgid "cannot use %<::%> in parameter declaration" msgstr "недопуÑтимое иÑпользование %<::%> в декларации параметра" -#: cp/decl.c:10265 +#: cp/decl.c:10261 #, fuzzy, gcc-internal-format msgid "parameter declared %<auto%>" msgstr "параметр %q+D объÑвлен %<inline%>" -#: cp/decl.c:10308 +#: cp/decl.c:10304 #, fuzzy, gcc-internal-format msgid "non-static data member declared %<auto%>" msgstr "ÑтатичеÑкий Ñлемент %qD объÑвлен как %<register%>" #. Something like struct S { int N::j; }; -#: cp/decl.c:10330 +#: cp/decl.c:10326 #, gcc-internal-format msgid "invalid use of %<::%>" msgstr "недопуÑтимое иÑпользование %<::%>" -#: cp/decl.c:10352 +#: cp/decl.c:10348 #, fuzzy, gcc-internal-format msgid "declaration of function %qD in invalid context" msgstr "Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ C-функции `%#D' противоречит" -#: cp/decl.c:10361 +#: cp/decl.c:10357 #, gcc-internal-format msgid "function %qD declared virtual inside a union" msgstr "Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ %qD объÑвлена виртуальной внутри объединениÑ" -#: cp/decl.c:10370 +#: cp/decl.c:10366 #, gcc-internal-format msgid "%qD cannot be declared virtual, since it is always static" msgstr "%qD не может быть объÑвлена виртуальной, поÑкольку она вÑегда ÑтатичеÑкаÑ" -#: cp/decl.c:10386 +#: cp/decl.c:10382 #, fuzzy, gcc-internal-format msgid "expected qualified name in friend declaration for destructor %qD" msgstr "квалификаторы не допуÑкаютÑÑ Ð² декларации `operator %T'" -#: cp/decl.c:10393 +#: cp/decl.c:10389 #, fuzzy, gcc-internal-format msgid "declaration of %qD as member of %qT" msgstr "Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ %qD перекрывает Ñлемент клаÑÑа, на который указывает 'this'" -#: cp/decl.c:10399 +#: cp/decl.c:10395 #, fuzzy, gcc-internal-format msgid "a destructor cannot be %<constexpr%>" msgstr "конÑтрукторы Ð½ÐµÐ»ÑŒÐ·Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ как virtual" -#: cp/decl.c:10405 +#: cp/decl.c:10401 #, fuzzy, gcc-internal-format msgid "expected qualified name in friend declaration for constructor %qD" msgstr "квалификаторы не допуÑкаютÑÑ Ð² декларации `operator %T'" -#: cp/decl.c:10451 +#: cp/decl.c:10447 #, gcc-internal-format msgid "field %qD has incomplete type" msgstr "поле %qD имеет неполный тип" -#: cp/decl.c:10453 +#: cp/decl.c:10449 #, gcc-internal-format msgid "name %qT has incomplete type" msgstr "Ð¸Ð¼Ñ %qT имеет неполный тип" -#: cp/decl.c:10462 +#: cp/decl.c:10458 #, gcc-internal-format msgid " in instantiation of template %qT" msgstr " в конкретизации шаблона %qT" -#: cp/decl.c:10471 +#: cp/decl.c:10467 #, fuzzy, gcc-internal-format msgid "%qE is neither function nor member function; cannot be declared friend" msgstr "%qs не ÑвлÑетÑÑ Ð½Ð¸ функцией, ни Ñлементом-функцией; friend-Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ Ð½Ðµ допуÑкаетÑÑ" -#: cp/decl.c:10528 +#: cp/decl.c:10524 #, fuzzy, gcc-internal-format msgid "constexpr static data member %qD must have an initializer" msgstr "`%#D' не ÑвлÑетÑÑ Ð½ÐµÑтатичеÑким Ñлементом %qT" -#: cp/decl.c:10537 +#: cp/decl.c:10533 #, fuzzy, gcc-internal-format msgid "non-static data member %qE declared %<constexpr%>" msgstr "ÑтатичеÑкий Ñлемент %qD объÑвлен как %<register%>" -#: cp/decl.c:10587 +#: cp/decl.c:10583 #, gcc-internal-format msgid "storage class %<auto%> invalid for function %qs" msgstr "некорректный клаÑÑ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ %<auto%> Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ %qs" -#: cp/decl.c:10589 +#: cp/decl.c:10585 #, gcc-internal-format msgid "storage class %<register%> invalid for function %qs" msgstr "некорректный клаÑÑ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ %<register%> Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ %qs" -#: cp/decl.c:10593 +#: cp/decl.c:10589 #, gcc-internal-format msgid "storage class %<__thread%> invalid for function %qs" msgstr "некорректный клаÑÑ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ %<__thread%> Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ %qs" -#: cp/decl.c:10596 +#: cp/decl.c:10592 #, fuzzy, gcc-internal-format -#| msgid "storage class %<__thread%> invalid for function %qs" msgid "storage class %<thread_local%> invalid for function %qs" msgstr "некорректный клаÑÑ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ %<__thread%> Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ %qs" -#: cp/decl.c:10601 +#: cp/decl.c:10597 #, fuzzy, gcc-internal-format msgid "virt-specifiers in %qs not allowed outside a class definition" msgstr "ÑÐ¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ asm не допуÑкаетÑÑ Ð¿Ñ€Ð¸ определении функции" -#: cp/decl.c:10612 +#: cp/decl.c:10608 #, gcc-internal-format msgid "%<static%> specified invalid for function %qs declared out of global scope" msgstr "некорректно указано %<static%> Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ %qs, объÑвленной вне глобальной облаÑти видимоÑти" -#: cp/decl.c:10616 +#: cp/decl.c:10612 #, gcc-internal-format msgid "%<inline%> specifier invalid for function %qs declared out of global scope" msgstr "некорректно указано %<inline%> Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ %qs, объÑвленной вне глобальной облаÑти видимоÑти" -#: cp/decl.c:10624 +#: cp/decl.c:10620 #, gcc-internal-format msgid "virtual non-class function %qs" msgstr "Ð²Ð¸Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ %qs не ÑвлÑетÑÑ Ñлементом клаÑÑа" -#: cp/decl.c:10631 +#: cp/decl.c:10627 #, fuzzy, gcc-internal-format msgid "%qs defined in a non-class scope" msgstr "атрибут %qE Ð´Ð»Ñ Ð½Ðµ клаÑÑовых типов игнорируетÑÑ" -#: cp/decl.c:10632 +#: cp/decl.c:10628 #, fuzzy, gcc-internal-format msgid "%qs declared in a non-class scope" msgstr "атрибут %qE Ð´Ð»Ñ Ð½Ðµ клаÑÑовых типов игнорируетÑÑ" -#: cp/decl.c:10660 +#: cp/decl.c:10655 #, gcc-internal-format msgid "cannot declare member function %qD to have static linkage" msgstr "недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ ÑтатичеÑкого Ñлемента-функции %qD" #. FIXME need arm citation -#: cp/decl.c:10667 +#: cp/decl.c:10662 #, gcc-internal-format msgid "cannot declare static function inside another function" msgstr "недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ ÑтатичеÑкой функции внутри другой функции" -#: cp/decl.c:10697 +#: cp/decl.c:10692 #, gcc-internal-format msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member" msgstr "Ñлово %<static%> недопуÑтимо при определении (в отличие от объÑвлениÑ) ÑтатичеÑкого Ñлемента данных в клаÑÑе" -#: cp/decl.c:10704 +#: cp/decl.c:10699 #, gcc-internal-format msgid "static member %qD declared %<register%>" msgstr "ÑтатичеÑкий Ñлемент %qD объÑвлен как %<register%>" -#: cp/decl.c:10710 +#: cp/decl.c:10705 #, gcc-internal-format msgid "cannot explicitly declare member %q#D to have extern linkage" msgstr "недопуÑÑ‚Ð¸Ð¼Ð°Ñ ÑÐ²Ð½Ð°Ñ extern-Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ Ñлемента %q#D" -#: cp/decl.c:10717 +#: cp/decl.c:10712 #, fuzzy, gcc-internal-format msgid "declaration of constexpr variable %qD is not a definition" msgstr "Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ %q#D вне клаÑÑа не ÑвлÑетÑÑ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸ÐµÐ¼" -#: cp/decl.c:10730 +#: cp/decl.c:10725 #, gcc-internal-format msgid "%qs initialized and declared %<extern%>" msgstr "%<extern%> Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ %qs Ñ Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸ÐµÐ¹" -#: cp/decl.c:10734 +#: cp/decl.c:10729 #, gcc-internal-format msgid "%qs has both %<extern%> and initializer" msgstr "Ð´Ð»Ñ %qs задан Ñпецификатор %<extern%> и инициализатор" -#: cp/decl.c:10880 +#: cp/decl.c:10874 #, fuzzy, gcc-internal-format msgid "default argument %qE uses %qD" msgstr "аргумент по умолчанию %qE иÑпользует локальную переменную %qD" -#: cp/decl.c:10882 +#: cp/decl.c:10876 #, gcc-internal-format msgid "default argument %qE uses local variable %qD" msgstr "аргумент по умолчанию %qE иÑпользует локальную переменную %qD" -#: cp/decl.c:10970 +#: cp/decl.c:10964 #, fuzzy, gcc-internal-format msgid "parameter %qD has Java class type" msgstr "параметр %q+D имеет неполный тип" -#: cp/decl.c:10998 +#: cp/decl.c:10992 #, gcc-internal-format msgid "parameter %qD invalidly declared method type" msgstr "Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° %qD Ñ Ñ‚Ð¸Ð¿Ð¾Ð¼ метода" -#: cp/decl.c:11023 +#: cp/decl.c:11017 #, fuzzy, gcc-internal-format msgid "parameter %qD includes pointer to array of unknown bound %qT" msgstr "параметр %qD включает %s на маÑÑив Ñ Ð½ÐµÐ¸Ð·Ð²ÐµÑтной границей %qT" -#: cp/decl.c:11025 +#: cp/decl.c:11019 #, fuzzy, gcc-internal-format msgid "parameter %qD includes reference to array of unknown bound %qT" msgstr "параметр %qD включает %s на маÑÑив Ñ Ð½ÐµÐ¸Ð·Ð²ÐµÑтной границей %qT" @@ -31053,168 +30982,168 @@ msgstr "параметр %qD включает %s на маÑÑив Ñ Ð½ÐµÐ¸Ð·Ð² #. 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:11279 +#: cp/decl.c:11273 #, gcc-internal-format msgid "invalid constructor; you probably meant %<%T (const %T&)%>" msgstr "некорректный конÑтруктор; возможно, вы имели в виду %<%T (const %T&)%>" -#: cp/decl.c:11401 +#: cp/decl.c:11395 #, gcc-internal-format msgid "%qD may not be declared within a namespace" msgstr "Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ %qD может не дейÑтвовать в проÑтранÑтве имён" -#: cp/decl.c:11406 +#: cp/decl.c:11400 #, gcc-internal-format msgid "%qD may not be declared as static" msgstr "%qD можно не определÑÑ‚ÑŒ ÑтатичеÑкой" -#: cp/decl.c:11432 +#: cp/decl.c:11426 #, gcc-internal-format msgid "%qD must be a nonstatic member function" msgstr "%qD должен быть неÑтатичеÑкой Ñлементом-функцией" -#: cp/decl.c:11441 +#: cp/decl.c:11435 #, gcc-internal-format msgid "%qD must be either a non-static member function or a non-member function" msgstr "%qD должен быть либо неÑтатичеÑким Ñлементом-функцией или функцией-не-Ñлементом" -#: cp/decl.c:11463 +#: cp/decl.c:11457 #, gcc-internal-format msgid "%qD must have an argument of class or enumerated type" msgstr "%qD должен иметь аргумент типа клаÑÑ Ð¸Ð»Ð¸ перечиÑлимого типа" -#: cp/decl.c:11492 +#: cp/decl.c:11486 #, fuzzy, gcc-internal-format msgid "conversion to a reference to void will never use a type conversion operator" msgstr "преобразование к %s%s никогда не будет иÑпользовать операцию Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¸Ð¿Ð°" -#: cp/decl.c:11494 +#: cp/decl.c:11488 #, fuzzy, gcc-internal-format msgid "conversion to void will never use a type conversion operator" msgstr "преобразование к %s%s никогда не будет иÑпользовать операцию Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¸Ð¿Ð°" -#: cp/decl.c:11501 +#: cp/decl.c:11495 #, fuzzy, gcc-internal-format msgid "conversion to a reference to the same type will never use a type conversion operator" msgstr "преобразование к %s%s никогда не будет иÑпользовать операцию Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¸Ð¿Ð°" -#: cp/decl.c:11503 +#: cp/decl.c:11497 #, fuzzy, gcc-internal-format msgid "conversion to the same type will never use a type conversion operator" msgstr "преобразование к %s%s никогда не будет иÑпользовать операцию Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¸Ð¿Ð°" -#: cp/decl.c:11511 +#: cp/decl.c:11505 #, fuzzy, gcc-internal-format msgid "conversion to a reference to a base class will never use a type conversion operator" msgstr "преобразование к %s%s никогда не будет иÑпользовать операцию Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¸Ð¿Ð°" -#: cp/decl.c:11513 +#: cp/decl.c:11507 #, fuzzy, gcc-internal-format msgid "conversion to a base class will never use a type conversion operator" msgstr "преобразование к %s%s никогда не будет иÑпользовать операцию Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¸Ð¿Ð°" #. 13.4.0.3 -#: cp/decl.c:11522 +#: cp/decl.c:11516 #, gcc-internal-format msgid "ISO C++ prohibits overloading operator ?:" msgstr "ISO C++ не поддерживает перегрузку операции ?:" -#: cp/decl.c:11527 +#: cp/decl.c:11521 #, gcc-internal-format msgid "%qD must not have variable number of arguments" msgstr "%qD не может иметь переменное чиÑло аргументов" -#: cp/decl.c:11578 +#: cp/decl.c:11572 #, gcc-internal-format msgid "postfix %qD must take %<int%> as its argument" msgstr "поÑтфикÑный %qD должен иметь аргумент типа %<int%>" -#: cp/decl.c:11581 +#: cp/decl.c:11575 #, gcc-internal-format msgid "postfix %qD must take %<int%> as its second argument" msgstr "поÑтфикÑный %qD должен иметь второй аргумент типа %<int%>" -#: cp/decl.c:11589 +#: cp/decl.c:11583 #, gcc-internal-format msgid "%qD must take either zero or one argument" msgstr "%qD должен иметь не более одного аргумента" -#: cp/decl.c:11591 +#: cp/decl.c:11585 #, gcc-internal-format msgid "%qD must take either one or two arguments" msgstr "%qD должен иметь один или два аргумента" -#: cp/decl.c:11613 +#: cp/decl.c:11607 #, gcc-internal-format msgid "prefix %qD should return %qT" msgstr "префикÑный %qD должен возвращать %qT" -#: cp/decl.c:11619 +#: cp/decl.c:11613 #, gcc-internal-format msgid "postfix %qD should return %qT" msgstr "поÑтфикÑный %qD должен возвращать %qT" -#: cp/decl.c:11628 +#: cp/decl.c:11622 #, gcc-internal-format msgid "%qD must take %<void%>" msgstr "%qD должен иметь ÑпиÑок параметров %<void%>" -#: cp/decl.c:11630 cp/decl.c:11639 +#: cp/decl.c:11624 cp/decl.c:11633 #, gcc-internal-format msgid "%qD must take exactly one argument" msgstr "%qD должен иметь ровно один аргумент" -#: cp/decl.c:11641 +#: cp/decl.c:11635 #, gcc-internal-format msgid "%qD must take exactly two arguments" msgstr "%qD должен иметь ровно два аргумента" -#: cp/decl.c:11650 +#: cp/decl.c:11644 #, gcc-internal-format msgid "user-defined %qD always evaluates both arguments" msgstr "пользовательÑкий оператор %qD вÑегда вычиÑлÑет оба аргумента" -#: cp/decl.c:11664 +#: cp/decl.c:11658 #, gcc-internal-format msgid "%qD should return by value" msgstr "%qD должен возвращать результат по значению" -#: cp/decl.c:11675 cp/decl.c:11680 +#: cp/decl.c:11669 cp/decl.c:11674 #, gcc-internal-format msgid "%qD cannot have default arguments" msgstr "%qD не может иметь аргументов по умолчанию" -#: cp/decl.c:11741 +#: cp/decl.c:11732 #, gcc-internal-format msgid "using template type parameter %qT after %qs" msgstr "иÑпользование параметра шаблона %qT поÑле %qs" -#: cp/decl.c:11764 +#: cp/decl.c:11755 #, fuzzy, gcc-internal-format msgid "using alias template specialization %qT after %qs" msgstr "Ð½ÐµÐ¾Ð´Ð½Ð¾Ð·Ð½Ð°Ñ‡Ð½Ð°Ñ ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð¸Ð·Ð°Ñ†Ð¸Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð° %qD Ð´Ð»Ñ %q+D" -#: cp/decl.c:11767 +#: cp/decl.c:11758 #, gcc-internal-format msgid "using typedef-name %qD after %qs" msgstr "иÑпользование typedef-имени %qD поÑле %qs" -#: cp/decl.c:11769 +#: cp/decl.c:11760 #, fuzzy, gcc-internal-format msgid "%qD has a previous declaration here" msgstr "%q+D ранее декларирован здеÑÑŒ" -#: cp/decl.c:11777 +#: cp/decl.c:11768 #, gcc-internal-format msgid "%qT referred to as %qs" msgstr "ÑÑылка на %qT как на %qs" -#: cp/decl.c:11778 cp/decl.c:11785 +#: cp/decl.c:11769 cp/decl.c:11776 #, gcc-internal-format msgid "%q+T has a previous declaration here" msgstr "%q+T ранее декларирован здеÑÑŒ" -#: cp/decl.c:11784 +#: cp/decl.c:11775 #, gcc-internal-format msgid "%qT referred to as enum" msgstr "ÑÑылка на %qT как на enum" @@ -31226,88 +31155,88 @@ msgstr "ÑÑылка на %qT как на enum" #. void f(class C); // No template header here #. #. then the required template argument is missing. -#: cp/decl.c:11799 +#: cp/decl.c:11790 #, gcc-internal-format msgid "template argument required for %<%s %T%>" msgstr "Ð´Ð»Ñ %<%s %T%> нужен аргумент-шаблон" -#: cp/decl.c:11849 cp/name-lookup.c:3069 +#: cp/decl.c:11840 cp/name-lookup.c:3062 #, gcc-internal-format msgid "%qD has the same name as the class in which it is declared" msgstr "%qD имеет то же имÑ, что и клаÑÑ, в котором он(а) декларируетÑÑ" -#: cp/decl.c:11879 cp/name-lookup.c:2561 cp/name-lookup.c:3395 -#: cp/name-lookup.c:3440 cp/parser.c:5076 cp/parser.c:21175 +#: cp/decl.c:11870 cp/name-lookup.c:2561 cp/name-lookup.c:3390 +#: cp/name-lookup.c:3435 cp/parser.c:5076 cp/parser.c:21179 #, gcc-internal-format msgid "reference to %qD is ambiguous" msgstr "ÑÑылка на %qD противоречива" -#: cp/decl.c:11994 +#: cp/decl.c:11985 #, gcc-internal-format msgid "use of enum %q#D without previous declaration" msgstr "иÑпользование перечиÑÐ»ÐµÐ½Ð¸Ñ %q#D без предыдущей декларации" -#: cp/decl.c:12015 +#: cp/decl.c:12006 #, gcc-internal-format msgid "redeclaration of %qT as a non-template" msgstr "Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ %qT как не-шаблона" -#: cp/decl.c:12016 +#: cp/decl.c:12007 #, gcc-internal-format msgid "previous declaration %q+D" msgstr "Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ %q+D" -#: cp/decl.c:12157 +#: cp/decl.c:12148 #, gcc-internal-format msgid "derived union %qT invalid" msgstr "некорректный производный тип union %qT" -#: cp/decl.c:12166 +#: cp/decl.c:12157 #, gcc-internal-format msgid "Java class %qT cannot have multiple bases" msgstr "Java-клаÑÑ %qT не может иметь неÑколько базовых клаÑÑов" -#: cp/decl.c:12177 +#: cp/decl.c:12168 #, gcc-internal-format msgid "Java class %qT cannot have virtual bases" msgstr "Java-клаÑÑ %qT не может иметь виртуальных базовых клаÑÑов" -#: cp/decl.c:12197 +#: cp/decl.c:12188 #, gcc-internal-format msgid "base type %qT fails to be a struct or class type" msgstr "базовый тип %qT не ÑвлÑетÑÑ Ð½Ð¸ Ñтруктурой, ни клаÑÑом" -#: cp/decl.c:12230 +#: cp/decl.c:12221 #, gcc-internal-format msgid "recursive type %qT undefined" msgstr "рекурÑивный тип %qT не определён" -#: cp/decl.c:12232 +#: cp/decl.c:12223 #, gcc-internal-format msgid "duplicate base type %qT invalid" msgstr "некорректное дублирование базового типа %qT" -#: cp/decl.c:12356 +#: cp/decl.c:12347 #, gcc-internal-format msgid "scoped/unscoped mismatch in enum %q#T" msgstr "" -#: cp/decl.c:12359 cp/decl.c:12367 cp/decl.c:12379 cp/parser.c:14742 +#: cp/decl.c:12350 cp/decl.c:12358 cp/decl.c:12370 cp/parser.c:14744 #, fuzzy, gcc-internal-format msgid "previous definition here" msgstr "%JÑто предыдущее определение" -#: cp/decl.c:12364 +#: cp/decl.c:12355 #, gcc-internal-format msgid "underlying type mismatch in enum %q#T" msgstr "" -#: cp/decl.c:12376 +#: cp/decl.c:12367 #, gcc-internal-format msgid "different underlying type in enum %q#T" msgstr "" -#: cp/decl.c:12443 +#: cp/decl.c:12434 #, gcc-internal-format msgid "underlying type %<%T%> of %<%T%> must be an integral type" msgstr "" @@ -31316,84 +31245,82 @@ msgstr "" #. #. IF no integral type can represent all the enumerator values, the #. enumeration is ill-formed. -#: cp/decl.c:12577 +#: cp/decl.c:12568 #, gcc-internal-format msgid "no integral type can represent all of the enumerator values for %qT" msgstr "ни один целочиÑленный тип не годитÑÑ Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´ÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ñех значений перечиÑлимого типа %qT" -#: cp/decl.c:12718 +#: cp/decl.c:12709 #, gcc-internal-format msgid "enumerator value for %qD is not an integer constant" msgstr "значение перечиÑлимого типа Ð´Ð»Ñ %qD не ÑвлÑетÑÑ ÐºÐ¾Ð½Ñтантой целого типа" -#: cp/decl.c:12764 +#: cp/decl.c:12755 #, fuzzy, gcc-internal-format msgid "incremented enumerator value is too large for %<unsigned long%>" msgstr "Ñ†ÐµÐ»Ð°Ñ ÐºÐ¾Ð½Ñтанта Ñлишком велика Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ð° %qs" -#: cp/decl.c:12776 +#: cp/decl.c:12767 #, gcc-internal-format msgid "overflow in enumeration values at %qD" msgstr "переполнение в перечиÑлÑемых значениÑÑ… Ð´Ð»Ñ %qD" -#: cp/decl.c:12796 +#: cp/decl.c:12787 #, fuzzy, gcc-internal-format msgid "enumerator value %E is too large for underlying type %<%T%>" msgstr "значение перечиÑлимого типа Ð´Ð»Ñ %qE не ÑвлÑетÑÑ ÐºÐ¾Ð½Ñтантой целого типа" -#: cp/decl.c:12886 +#: cp/decl.c:12877 #, gcc-internal-format msgid "return type %q#T is incomplete" msgstr "тип результата %q#T неполный" -#: cp/decl.c:12888 +#: cp/decl.c:12879 #, fuzzy, gcc-internal-format msgid "return type has Java class type %q#T" msgstr "тип возвращаемого Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð½Ðµ полный" -#: cp/decl.c:13012 cp/typeck.c:8247 +#: cp/decl.c:13003 cp/typeck.c:8252 #, gcc-internal-format msgid "%<operator=%> should return a reference to %<*this%>" msgstr "%<operator=%> должен возвращать ÑÑылку на %<*this%>" -#: cp/decl.c:13108 +#: cp/decl.c:13099 #, gcc-internal-format msgid "no previous declaration for %q+D" msgstr "отÑутÑтвует Ð¿Ñ€ÐµÐ´Ð²Ð°Ñ€Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ %q+D" -#: cp/decl.c:13329 +#: cp/decl.c:13320 #, fuzzy, gcc-internal-format msgid "invalid function declaration" msgstr "Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ Ñлемента-функции" -#: cp/decl.c:13413 +#: cp/decl.c:13404 #, gcc-internal-format msgid "parameter %qD declared void" msgstr "параметр %qD объÑвлен void" -#: cp/decl.c:13781 +#: cp/decl.c:13772 #, fuzzy, gcc-internal-format -#| msgid "no return statement in function returning non-void" msgid "no return statements in function returning %qT" msgstr "в функции, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° возвращать значение, отÑутÑтвует оператор return" -#: cp/decl.c:13783 cp/typeck.c:8135 +#: cp/decl.c:13774 cp/typeck.c:8135 #, fuzzy, gcc-internal-format -#| msgid "function return types not compatible due to %<volatile%>" msgid "only plain %<auto%> return type can be deduced to %<void%>" msgstr "типы возвращаемых значений функции неÑовмеÑтимы из-за %<volatile%>" -#: cp/decl.c:13879 +#: cp/decl.c:13870 #, fuzzy, gcc-internal-format msgid "parameter %q+D set but not used" msgstr "метка %q+D определена, но не иÑпользуетÑÑ" -#: cp/decl.c:13974 +#: cp/decl.c:13965 #, gcc-internal-format msgid "invalid member function declaration" msgstr "Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ Ñлемента-функции" -#: cp/decl.c:13988 +#: cp/decl.c:13979 #, gcc-internal-format msgid "%qD is already defined in class %qT" msgstr "%qD уже определена в клаÑÑе %qT" @@ -31415,7 +31342,6 @@ msgstr "некорректные типы %<%T[%T]%> Ð´Ð»Ñ Ð¸Ð½Ð´ÐµÐºÑа Ð¼Ð°Ñ #: cp/decl2.c:439 #, fuzzy, gcc-internal-format -#| msgid "deleting array %q#D" msgid "deleting array %q#E" msgstr "удаление маÑÑива %q#D" @@ -31630,97 +31556,97 @@ msgstr "вызов не функции %qD" msgid "use of %qD before deduction of %<auto%>" msgstr "по умолчанию Ð´Ð»Ñ %q+D принÑÑ‚ тип %<int%>" -#: cp/error.c:3327 +#: cp/error.c:3331 #, gcc-internal-format msgid "extended initializer lists only available with -std=c++11 or -std=gnu++11" msgstr "" -#: cp/error.c:3332 +#: cp/error.c:3336 #, gcc-internal-format msgid "explicit conversion operators only available with -std=c++11 or -std=gnu++11" msgstr "" -#: cp/error.c:3337 +#: cp/error.c:3341 #, gcc-internal-format msgid "variadic templates only available with -std=c++11 or -std=gnu++11" msgstr "" -#: cp/error.c:3342 +#: cp/error.c:3346 #, gcc-internal-format msgid "lambda expressions only available with -std=c++11 or -std=gnu++11" msgstr "" -#: cp/error.c:3347 +#: cp/error.c:3351 #, gcc-internal-format msgid "C++0x auto only available with -std=c++11 or -std=gnu++11" msgstr "" -#: cp/error.c:3351 +#: cp/error.c:3355 #, gcc-internal-format msgid "scoped enums only available with -std=c++11 or -std=gnu++11" msgstr "" -#: cp/error.c:3355 +#: cp/error.c:3359 #, gcc-internal-format msgid "defaulted and deleted functions only available with -std=c++11 or -std=gnu++11" msgstr "" -#: cp/error.c:3360 +#: cp/error.c:3364 #, gcc-internal-format msgid "inline namespaces only available with -std=c++11 or -std=gnu++11" msgstr "" -#: cp/error.c:3365 +#: cp/error.c:3369 #, gcc-internal-format msgid "override controls (override/final) only available with -std=c++11 or -std=gnu++11" msgstr "" -#: cp/error.c:3370 +#: cp/error.c:3374 #, gcc-internal-format msgid "non-static data member initializers only available with -std=c++11 or -std=gnu++11" msgstr "" -#: cp/error.c:3375 +#: cp/error.c:3379 #, gcc-internal-format msgid "user-defined literals only available with -std=c++11 or -std=gnu++11" msgstr "" -#: cp/error.c:3380 +#: cp/error.c:3384 #, gcc-internal-format msgid "delegating constructors only available with -std=c++11 or -std=gnu++11" msgstr "" -#: cp/error.c:3385 +#: cp/error.c:3389 #, gcc-internal-format msgid "inheriting constructors only available with -std=c++11 or -std=gnu++11" msgstr "" -#: cp/error.c:3390 +#: cp/error.c:3394 #, fuzzy, gcc-internal-format msgid "c++11 attributes only available with -std=c++11 or -std=gnu++11" msgstr "атрибут %qs допуÑтим только Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ñ…" -#: cp/error.c:3439 +#: cp/error.c:3443 #, gcc-internal-format msgid "incomplete type %qT used in nested name specifier" msgstr "неполный тип %qT иÑпользован во вложенном Ñпецификаторе имени" -#: cp/error.c:3443 +#: cp/error.c:3447 #, fuzzy, gcc-internal-format msgid "reference to %<%T::%D%> is ambiguous" msgstr "иÑпользование %qD неоднозначно" -#: cp/error.c:3448 cp/typeck.c:2260 +#: cp/error.c:3452 cp/typeck.c:2260 #, gcc-internal-format msgid "%qD is not a member of %qT" msgstr "%qD не ÑвлÑетÑÑ Ñлементом %qT" -#: cp/error.c:3452 +#: cp/error.c:3456 #, gcc-internal-format msgid "%qD is not a member of %qD" msgstr "%qD не ÑвлÑетÑÑ Ñлементом %qD" -#: cp/error.c:3457 +#: cp/error.c:3461 #, gcc-internal-format msgid "%<::%D%> has not been declared" msgstr "%<::%D%> не был декларирован" @@ -32078,7 +32004,6 @@ msgstr "не инициализирован конÑтантный ÑÐ»ÐµÐ¼ÐµÐ½Ñ #: cp/init.c:2254 #, fuzzy, gcc-internal-format -#| msgid "integer overflow in expression" msgid "integer overflow in array size" msgstr "переполнение при вычиÑлении целочиÑленного выражениÑ" @@ -32601,77 +32526,77 @@ msgstr "в Ñтой облаÑти видимоÑти уже еÑÑ‚ÑŒ декла msgid "%qD not declared" msgstr "отÑутÑтвует Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ %qD" -#: cp/name-lookup.c:3218 +#: cp/name-lookup.c:3211 #, gcc-internal-format msgid "using-declaration for non-member at class scope" msgstr "using-Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ Ð´Ð»Ñ Ð½Ðµ-Ñлемента внутри клаÑÑа" -#: cp/name-lookup.c:3225 +#: cp/name-lookup.c:3218 #, gcc-internal-format msgid "%<%T::%D%> names destructor" msgstr "%<%T::%D%> обозначает деÑтруктор" -#: cp/name-lookup.c:3236 +#: cp/name-lookup.c:3231 #, gcc-internal-format msgid "%<%T::%D%> names constructor in %qT" msgstr "%<%T::%D%> обозначает конÑтруктор в %qT" -#: cp/name-lookup.c:3287 +#: cp/name-lookup.c:3282 #, gcc-internal-format msgid "no members matching %<%T::%D%> in %q#T" msgstr "нет Ñлементов, ÑоответÑтвующих %<%T::%D%>, в %q#T" -#: cp/name-lookup.c:3374 +#: cp/name-lookup.c:3369 #, gcc-internal-format msgid "declaration of %qD not in a namespace surrounding %qD" msgstr "Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ %qD вне проÑтранÑтва имён, объемлющего %qD" -#: cp/name-lookup.c:3382 +#: cp/name-lookup.c:3377 #, gcc-internal-format msgid "explicit qualification in declaration of %qD" msgstr "Ñвные квалификаторы в декларации %qD" -#: cp/name-lookup.c:3465 +#: cp/name-lookup.c:3460 #, gcc-internal-format msgid "%qD should have been declared inside %qD" msgstr "%qD Ñледовало объÑвить внутри %qD" -#: cp/name-lookup.c:3509 +#: cp/name-lookup.c:3504 #, fuzzy, gcc-internal-format msgid "%qD attribute requires a single NTBS argument" msgstr "аргументом атрибута %qs должна быть Ñ†ÐµÐ»Ð°Ñ ÐºÐ¾Ð½Ñтанта" -#: cp/name-lookup.c:3516 +#: cp/name-lookup.c:3511 #, gcc-internal-format msgid "%qD attribute is meaningless since members of the anonymous namespace get local symbols" msgstr "" -#: cp/name-lookup.c:3524 cp/name-lookup.c:3936 +#: cp/name-lookup.c:3519 cp/name-lookup.c:3931 #, gcc-internal-format msgid "%qD attribute directive ignored" msgstr "атрибут %qD игнорируетÑÑ" -#: cp/name-lookup.c:3588 +#: cp/name-lookup.c:3583 #, gcc-internal-format msgid "namespace alias %qD not allowed here, assuming %qD" msgstr "иÑпользование проÑтранÑтва имён %qD здеÑÑŒ недопуÑтимо; предполагаетÑÑ %qD" -#: cp/name-lookup.c:3924 +#: cp/name-lookup.c:3919 #, gcc-internal-format msgid "strong using only meaningful at namespace scope" msgstr "strong имеет ÑмыÑл только в пределах namespace" -#: cp/name-lookup.c:3928 +#: cp/name-lookup.c:3923 #, fuzzy, gcc-internal-format msgid "current namespace %qD does not enclose strongly used namespace %qD" msgstr "Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ %qD в %qD, который не объемлет %qD" -#: cp/name-lookup.c:4267 +#: cp/name-lookup.c:4262 #, gcc-internal-format msgid "maximum limit of %d namespaces searched for %qE" msgstr "" -#: cp/name-lookup.c:4277 +#: cp/name-lookup.c:4272 #, gcc-internal-format msgid "suggested alternative:" msgid_plural "suggested alternatives:" @@ -32679,22 +32604,22 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: cp/name-lookup.c:4281 +#: cp/name-lookup.c:4276 #, fuzzy, gcc-internal-format msgid " %qE" msgstr " `%#D'" -#: cp/name-lookup.c:5551 +#: cp/name-lookup.c:5546 #, gcc-internal-format msgid "argument dependent lookup finds %q+D" msgstr "" -#: cp/name-lookup.c:6088 +#: cp/name-lookup.c:6083 #, gcc-internal-format msgid "XXX entering pop_everything ()\n" msgstr "XXX вход в pop_everything ()\n" -#: cp/name-lookup.c:6097 +#: cp/name-lookup.c:6092 #, gcc-internal-format msgid "XXX leaving pop_everything ()\n" msgstr "XXX выход из pop_everything ()\n" @@ -32801,7 +32726,6 @@ msgstr "%qT не ÑвлÑетÑÑ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð¼" #: cp/parser.c:2591 #, fuzzy, gcc-internal-format -#| msgid "%qE is not a template" msgid "%qE is not a class template" msgstr "%qE не ÑвлÑетÑÑ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð¼" @@ -32820,7 +32744,7 @@ msgstr "некорректный идентификатор шаблона" msgid "floating-point literal cannot appear in a constant-expression" msgstr "%s не может приÑутÑтвовать в конÑтантном выражении" -#: cp/parser.c:2633 cp/pt.c:13527 +#: cp/parser.c:2633 cp/pt.c:13522 #, gcc-internal-format msgid "a cast to a type other than an integral or enumeration type cannot appear in a constant-expression" msgstr "" @@ -32980,7 +32904,6 @@ msgstr "Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰Ð°Ñ ÐºÐ¾Ð½Ñтанта превышает диапазоР#: cp/parser.c:3692 #, fuzzy, gcc-internal-format -#| msgid "floating constant truncated to zero" msgid "floating literal truncated to zero" msgstr "деление на ноль плавающей конÑтанты" @@ -33064,7 +32987,7 @@ msgstr "typedef-Ð¸Ð¼Ñ %qD иÑпользовано как декларатор msgid "literal operator suffixes not preceded by %<_%> are reserved for future standardization" msgstr "" -#: cp/parser.c:4857 cp/parser.c:16496 +#: cp/parser.c:4857 cp/parser.c:16498 #, fuzzy, gcc-internal-format msgid "expected unqualified-id" msgstr "ожидалÑÑ ÑпиÑок Ñпецификаторов и квалификаторов" @@ -33238,7 +33161,6 @@ msgstr "аргумент по умолчанию Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° %d Ñ„ #: cp/parser.c:8885 #, fuzzy, gcc-internal-format -#| msgid "attributes after parenthesized initializer ignored" msgid "attributes at the beginning of statement are ignored" msgstr "атрибуты поÑле инициализатора в Ñкобках проигнорированы" @@ -33267,7 +33189,7 @@ msgstr "%<%T::%D%> обозначает конÑтруктор в %qT" msgid "compound-statement in constexpr function" msgstr "%qD не ÑвлÑетÑÑ Ñ„ÑƒÐ½ÐºÑ†Ð¸ÐµÐ¹ шаблоном" -#: cp/parser.c:9298 cp/parser.c:23016 +#: cp/parser.c:9298 cp/parser.c:23020 #, fuzzy, gcc-internal-format msgid "expected selection-statement" msgstr "ожидалаÑÑŒ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ Ð¸Ð»Ð¸ оператор" @@ -33297,7 +33219,7 @@ msgstr "" msgid "inconsistent begin/end types in range-based %<for%> statement: %qT and %qT" msgstr "" -#: cp/parser.c:9889 cp/parser.c:23019 +#: cp/parser.c:9889 cp/parser.c:23023 #, fuzzy, gcc-internal-format msgid "expected iteration-statement" msgstr "ожидалаÑÑŒ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ Ð¸Ð»Ð¸ оператор" @@ -33313,12 +33235,12 @@ msgstr "Ñтандартные Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² данном ко msgid "ISO C++ forbids computed gotos" msgstr "ISO C++ не поддерживает вычиÑлÑемые goto" -#: cp/parser.c:10071 cp/parser.c:23022 +#: cp/parser.c:10071 cp/parser.c:23026 #, fuzzy, gcc-internal-format msgid "expected jump-statement" msgstr "ожидалÑÑ Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€" -#: cp/parser.c:10203 cp/parser.c:19157 +#: cp/parser.c:10203 cp/parser.c:19161 #, gcc-internal-format msgid "extra %<;%>" msgstr "Ð¸Ð·Ð±Ñ‹Ñ‚Ð¾Ñ‡Ð½Ð°Ñ %<;%>" @@ -33355,7 +33277,7 @@ msgstr "Ñпецификатор pure в определении функции" msgid "class definition may not be declared a friend" msgstr "определение клаÑÑа не должно Ñодержать friend" -#: cp/parser.c:11034 cp/parser.c:19551 +#: cp/parser.c:11034 cp/parser.c:19555 #, gcc-internal-format msgid "templates may not be %<virtual%>" msgstr "" @@ -33436,12 +33358,12 @@ msgstr "некорректный операнд" msgid "keyword %<export%> not implemented, and will be ignored" msgstr "ключевое Ñлово %<export%> не реализовано; игнорируетÑÑ" -#: cp/parser.c:12317 cp/parser.c:12415 cp/parser.c:12522 cp/parser.c:17611 +#: cp/parser.c:12317 cp/parser.c:12415 cp/parser.c:12522 cp/parser.c:17613 #, fuzzy, gcc-internal-format msgid "template parameter pack %qD cannot have a default argument" msgstr "%qD не может иметь аргументов по умолчанию" -#: cp/parser.c:12321 cp/parser.c:17619 +#: cp/parser.c:12321 cp/parser.c:17621 #, fuzzy, gcc-internal-format msgid "template parameter pack cannot have a default argument" msgstr "%qD не может иметь аргументов по умолчанию" @@ -33456,7 +33378,7 @@ msgstr "параметры шаблона не могут быть friend" msgid "expected template-id" msgstr "ожидалÑÑ Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€" -#: cp/parser.c:12658 cp/parser.c:22980 +#: cp/parser.c:12658 cp/parser.c:22984 #, fuzzy, gcc-internal-format msgid "expected %<<%>" msgstr "ожидалоÑÑŒ %<{%>" @@ -33548,163 +33470,163 @@ msgstr "ОжидалоÑÑŒ имÑ" msgid "elaborated-type-specifier for a scoped enum must not use the %<%D%> keyword" msgstr "" -#: cp/parser.c:14355 +#: cp/parser.c:14357 #, fuzzy, gcc-internal-format msgid "declaration %qD does not declare anything" msgstr "Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ Ð½Ð¸Ñ‡ÐµÐ³Ð¾ не опиÑывает" -#: cp/parser.c:14441 +#: cp/parser.c:14443 #, fuzzy, gcc-internal-format msgid "attributes ignored on uninstantiated type" msgstr "атрибут %qE Ð´Ð»Ñ Ð½Ðµ клаÑÑовых типов игнорируетÑÑ" -#: cp/parser.c:14445 +#: cp/parser.c:14447 #, fuzzy, gcc-internal-format msgid "attributes ignored on template instantiation" msgstr "клаÑÑ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ %qD в конкретизации шаблона" -#: cp/parser.c:14450 +#: cp/parser.c:14452 #, gcc-internal-format msgid "attributes ignored on elaborated-type-specifier that is not a forward declaration" msgstr "" -#: cp/parser.c:14584 +#: cp/parser.c:14586 #, fuzzy, gcc-internal-format msgid "%qD is an enumeration template" msgstr "%qD не ÑвлÑетÑÑ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð¼ функции" -#: cp/parser.c:14592 +#: cp/parser.c:14594 #, fuzzy, gcc-internal-format msgid "%qD is not an enumerator-name" msgstr "%qT не ÑвлÑетÑÑ Ð¿Ñ€Ð¾ÑтранÑтвом имён" -#: cp/parser.c:14655 +#: cp/parser.c:14657 #, fuzzy, gcc-internal-format msgid "expected %<;%> or %<{%>" msgstr "ожидалоÑÑŒ %<,%> или %<;%>" -#: cp/parser.c:14703 +#: cp/parser.c:14705 #, fuzzy, gcc-internal-format msgid "cannot add an enumerator list to a template instantiation" msgstr "Включить автоматичеÑкую конкретизацию шаблонов" -#: cp/parser.c:14712 cp/parser.c:18714 +#: cp/parser.c:14714 cp/parser.c:18718 #, fuzzy, gcc-internal-format msgid "declaration of %qD in namespace %qD which does not enclose %qD" msgstr "Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ %qD в %qD, который не объемлет %qD" -#: cp/parser.c:14717 cp/parser.c:18719 +#: cp/parser.c:14719 cp/parser.c:18723 #, gcc-internal-format msgid "declaration of %qD in %qD which does not enclose %qD" msgstr "Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ %qD в %qD, который не объемлет %qD" -#: cp/parser.c:14740 +#: cp/parser.c:14742 #, gcc-internal-format msgid "multiple definition of %q#T" msgstr "повторное определение %q#T" -#: cp/parser.c:14767 +#: cp/parser.c:14769 #, gcc-internal-format msgid "opaque-enum-specifier without name" msgstr "" -#: cp/parser.c:14770 +#: cp/parser.c:14772 #, gcc-internal-format msgid "opaque-enum-specifier must use a simple identifier" msgstr "" -#: cp/parser.c:14946 +#: cp/parser.c:14948 #, fuzzy, gcc-internal-format msgid "%qD is not a namespace-name" msgstr "%qT не ÑвлÑетÑÑ Ð¿Ñ€Ð¾ÑтранÑтвом имён" -#: cp/parser.c:14947 +#: cp/parser.c:14949 #, fuzzy, gcc-internal-format msgid "expected namespace-name" msgstr "ожидалоÑÑŒ Ð¸Ð¼Ñ ÐºÐ»Ð°ÑÑа" -#: cp/parser.c:15072 +#: cp/parser.c:15074 #, fuzzy, gcc-internal-format msgid "%<namespace%> definition is not allowed here" msgstr "#pragma %s уже зарегиÑтрирована" -#: cp/parser.c:15218 +#: cp/parser.c:15220 #, gcc-internal-format msgid "a template-id may not appear in a using-declaration" msgstr "идентификатор шаблона недопуÑтим в using-декларации" -#: cp/parser.c:15258 +#: cp/parser.c:15260 #, gcc-internal-format msgid "access declarations are deprecated in favour of using-declarations; suggestion: add the %<using%> keyword" msgstr "" -#: cp/parser.c:15323 +#: cp/parser.c:15325 #, fuzzy, gcc-internal-format msgid "types may not be defined in alias template declarations" msgstr "в опиÑании возвращаемого типа Ð½ÐµÐ»ÑŒÐ·Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÑÑ‚ÑŒ новые типы" -#: cp/parser.c:15787 +#: cp/parser.c:15789 #, fuzzy, gcc-internal-format msgid "a function-definition is not allowed here" msgstr "#pragma %s уже зарегиÑтрирована" -#: cp/parser.c:15799 +#: cp/parser.c:15801 #, gcc-internal-format msgid "an asm-specification is not allowed on a function-definition" msgstr "ÑÐ¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ asm не допуÑкаетÑÑ Ð¿Ñ€Ð¸ определении функции" -#: cp/parser.c:15803 +#: cp/parser.c:15805 #, gcc-internal-format msgid "attributes are not allowed on a function-definition" msgstr "атрибуты не допуÑкаютÑÑ Ð¿Ñ€Ð¸ определении функции" -#: cp/parser.c:15840 +#: cp/parser.c:15842 #, gcc-internal-format msgid "expected constructor, destructor, or type conversion" msgstr "" #. Anything else is an error. -#: cp/parser.c:15875 cp/parser.c:17782 +#: cp/parser.c:15877 cp/parser.c:17784 #, fuzzy, gcc-internal-format msgid "expected initializer" msgstr "ожидалÑÑ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€" -#: cp/parser.c:15895 +#: cp/parser.c:15897 #, fuzzy, gcc-internal-format msgid "invalid type in declaration" msgstr "пуÑÑ‚Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ" -#: cp/parser.c:15971 +#: cp/parser.c:15973 #, fuzzy, gcc-internal-format msgid "initializer provided for function" msgstr "недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ friend-функции %qs" -#: cp/parser.c:16005 +#: cp/parser.c:16007 #, gcc-internal-format msgid "attributes after parenthesized initializer ignored" msgstr "атрибуты поÑле инициализатора в Ñкобках проигнорированы" -#: cp/parser.c:16416 +#: cp/parser.c:16418 #, fuzzy, gcc-internal-format msgid "array bound is not an integer constant" msgstr "Ð¸Ð½Ð´ÐµÐºÑ Ð¼Ð°ÑÑива не ÑвлÑетÑÑ Ñ†ÐµÐ»Ñ‹Ð¼ значением" -#: cp/parser.c:16542 +#: cp/parser.c:16544 #, fuzzy, gcc-internal-format msgid "cannot define member of dependent typedef %qT" msgstr "Ñоздание ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ Ð½Ð° Ñлемент ÑÑылочного типа %qT" -#: cp/parser.c:16546 +#: cp/parser.c:16548 #, fuzzy, gcc-internal-format msgid "%<%T::%E%> is not a type" msgstr "%<%T::%D%> не ÑвлÑетÑÑ Ñ‚Ð¸Ð¿Ð¾Ð¼" -#: cp/parser.c:16574 +#: cp/parser.c:16576 #, fuzzy, gcc-internal-format msgid "invalid use of constructor as a template" msgstr "некорректное иÑпользование неÑтатичеÑкого Ñлемента данных '%E'" -#: cp/parser.c:16576 +#: cp/parser.c:16578 #, gcc-internal-format msgid "use %<%T::%D%> instead of %<%T::%D%> to name the constructor in a qualified name" msgstr "иÑпользуйте %<%T::%D%> вмеÑто %<%T::%D%> Ð´Ð»Ñ Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾Ð½Ñтруктора в имени Ñ ÐºÐ²Ð°Ð»Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼" @@ -33713,263 +33635,262 @@ msgstr "иÑпользуйте %<%T::%D%> вмеÑто %<%T::%D%> Ð´Ð»Ñ Ð¸Ð¼ÐµÐ #. here because we do not have enough #. information about its original syntactic #. form. -#: cp/parser.c:16593 +#: cp/parser.c:16595 #, fuzzy, gcc-internal-format msgid "invalid declarator" msgstr "Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ %q+D" -#: cp/parser.c:16660 +#: cp/parser.c:16662 #, fuzzy, gcc-internal-format msgid "expected declarator" msgstr "ожидалиÑÑŒ Ñпецификаторы декларации" -#: cp/parser.c:16763 +#: cp/parser.c:16765 #, fuzzy, gcc-internal-format msgid "%qD is a namespace" msgstr "%qT не ÑвлÑетÑÑ Ð¿Ñ€Ð¾ÑтранÑтвом имён" -#: cp/parser.c:16765 +#: cp/parser.c:16767 #, fuzzy, gcc-internal-format msgid "cannot form pointer to member of non-class %q#T" msgstr "Ñоздание ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ Ð½Ð° Ñлемент не клаÑÑового типа %qT" -#: cp/parser.c:16786 +#: cp/parser.c:16788 #, fuzzy, gcc-internal-format msgid "expected ptr-operator" msgstr "некорректный операнд" -#: cp/parser.c:16845 +#: cp/parser.c:16847 #, fuzzy, gcc-internal-format msgid "duplicate cv-qualifier" msgstr "повтор case-значениÑ," -#: cp/parser.c:16903 +#: cp/parser.c:16905 #, fuzzy, gcc-internal-format msgid "duplicate virt-specifier" msgstr "повтор case-значениÑ," -#: cp/parser.c:17065 cp/typeck2.c:448 cp/typeck2.c:1685 +#: cp/parser.c:17067 cp/typeck2.c:448 cp/typeck2.c:1685 #, fuzzy, gcc-internal-format msgid "invalid use of %<auto%>" msgstr "недопуÑтимое иÑпользование %<::%>" -#: cp/parser.c:17084 +#: cp/parser.c:17086 #, fuzzy, gcc-internal-format msgid "types may not be defined in template arguments" msgstr "в опиÑании возвращаемого типа Ð½ÐµÐ»ÑŒÐ·Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÑÑ‚ÑŒ новые типы" -#: cp/parser.c:17165 +#: cp/parser.c:17167 #, fuzzy, gcc-internal-format msgid "expected type-specifier" msgstr "ожидалÑÑ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€" -#: cp/parser.c:17407 +#: cp/parser.c:17409 #, fuzzy, gcc-internal-format msgid "expected %<,%> or %<...%>" msgstr "ожидалоÑÑŒ %<:%> или %<...%>" -#: cp/parser.c:17464 +#: cp/parser.c:17466 #, fuzzy, gcc-internal-format msgid "types may not be defined in parameter types" msgstr "в опиÑании возвращаемого типа Ð½ÐµÐ»ÑŒÐ·Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÑÑ‚ÑŒ новые типы" -#: cp/parser.c:17590 +#: cp/parser.c:17592 #, gcc-internal-format msgid "deprecated use of default argument for parameter of non-function" msgstr "уÑтаревшее иÑпользование аргумента по умолчанию в качеÑтве параметра не-функции" -#: cp/parser.c:17594 +#: cp/parser.c:17596 #, gcc-internal-format msgid "default arguments are only permitted for function parameters" msgstr "аргументы по умолчанию разрешены только Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð² функций" -#: cp/parser.c:17613 +#: cp/parser.c:17615 #, fuzzy, gcc-internal-format msgid "parameter pack %qD cannot have a default argument" msgstr "%qD не может иметь аргументов по умолчанию" -#: cp/parser.c:17621 +#: cp/parser.c:17623 #, fuzzy, gcc-internal-format msgid "parameter pack cannot have a default argument" msgstr "%qD не может иметь аргументов по умолчанию" -#: cp/parser.c:17910 +#: cp/parser.c:17914 #, gcc-internal-format msgid "ISO C++ does not allow designated initializers" msgstr "ISO C++ не поддерживает назначенные инициализаторы" -#: cp/parser.c:17924 +#: cp/parser.c:17928 #, fuzzy, gcc-internal-format msgid "ISO C++ does not allow C99 designated initializers" msgstr "ISO C++ не поддерживает назначенные инициализаторы" -#: cp/parser.c:18032 cp/parser.c:18157 +#: cp/parser.c:18036 cp/parser.c:18161 #, fuzzy, gcc-internal-format msgid "expected class-name" msgstr "ожидалоÑÑŒ Ð¸Ð¼Ñ ÐºÐ»Ð°ÑÑа" -#: cp/parser.c:18337 +#: cp/parser.c:18341 #, fuzzy, gcc-internal-format msgid "expected %<;%> after class definition" msgstr "%q+D: inline-Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ñле определениÑ" -#: cp/parser.c:18339 +#: cp/parser.c:18343 #, fuzzy, gcc-internal-format msgid "expected %<;%> after struct definition" msgstr "%q+D: inline-Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ñле определениÑ" -#: cp/parser.c:18341 +#: cp/parser.c:18345 #, fuzzy, gcc-internal-format msgid "expected %<;%> after union definition" msgstr "Ðекорректный муÑор поÑле Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð² %C" -#: cp/parser.c:18662 +#: cp/parser.c:18666 #, fuzzy, gcc-internal-format msgid "expected %<{%> or %<:%>" msgstr "ожидалоÑÑŒ %<,%> или %<;%>" -#: cp/parser.c:18673 +#: cp/parser.c:18677 #, fuzzy, gcc-internal-format msgid "cannot specify %<override%> for a class" msgstr "нет файла Ð´Ð»Ñ ÐºÐ»Ð°ÑÑа %s" -#: cp/parser.c:18681 +#: cp/parser.c:18685 #, gcc-internal-format msgid "global qualification of class name is invalid" msgstr "" -#: cp/parser.c:18688 +#: cp/parser.c:18692 #, fuzzy, gcc-internal-format msgid "qualified name does not name a class" msgstr "в декларации friend нет имени клаÑÑа или функции" -#: cp/parser.c:18700 +#: cp/parser.c:18704 #, fuzzy, gcc-internal-format msgid "invalid class name in declaration of %qD" msgstr "Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ template-Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ %qD" -#: cp/parser.c:18733 +#: cp/parser.c:18737 #, fuzzy, gcc-internal-format msgid "extra qualification not allowed" msgstr "избыточные квалификаторы проигнориованы" -#: cp/parser.c:18745 +#: cp/parser.c:18749 #, fuzzy, gcc-internal-format msgid "an explicit specialization must be preceded by %<template <>%>" msgstr "перед Ñвной Ñпециализацией должно быть 'template <>'" -#: cp/parser.c:18775 +#: cp/parser.c:18779 #, fuzzy, gcc-internal-format msgid "function template %qD redeclared as a class template" msgstr "не шаблон %qD иÑпользован как шаблон" -#: cp/parser.c:18806 +#: cp/parser.c:18810 #, gcc-internal-format msgid "could not resolve typename type" msgstr "" -#: cp/parser.c:18858 +#: cp/parser.c:18862 #, gcc-internal-format msgid "previous definition of %q+#T" msgstr "предыдущее определение %q+#T" -#: cp/parser.c:18939 cp/parser.c:23025 +#: cp/parser.c:18943 cp/parser.c:23029 #, fuzzy, gcc-internal-format msgid "expected class-key" msgstr "ожидалоÑÑŒ Ð¸Ð¼Ñ ÐºÐ»Ð°ÑÑа" -#: cp/parser.c:19177 +#: cp/parser.c:19181 #, fuzzy, gcc-internal-format msgid "in C++03 a class-key must be used when declaring a friend" msgstr "в декларации friend должно быть иÑпользовано ключевое Ñлово клаÑÑа" -#: cp/parser.c:19195 +#: cp/parser.c:19199 #, gcc-internal-format msgid "friend declaration does not name a class or function" msgstr "в декларации friend нет имени клаÑÑа или функции" -#: cp/parser.c:19213 +#: cp/parser.c:19217 #, gcc-internal-format msgid "a storage class on an anonymous aggregate in class scope is not allowed" msgstr "" -#: cp/parser.c:19418 +#: cp/parser.c:19422 #, gcc-internal-format msgid "pure-specifier on function-definition" msgstr "Ñпецификатор pure в определении функции" -#: cp/parser.c:19462 +#: cp/parser.c:19466 #, fuzzy, gcc-internal-format msgid "stray %<,%> at end of member declaration" msgstr "некорректный операнд" -#: cp/parser.c:19474 +#: cp/parser.c:19478 #, fuzzy, gcc-internal-format msgid "expected %<;%> at end of member declaration" msgstr "некорректный операнд" -#: cp/parser.c:19545 +#: cp/parser.c:19549 #, gcc-internal-format msgid "invalid pure specifier (only %<= 0%> is allowed)" msgstr "" -#: cp/parser.c:19580 +#: cp/parser.c:19584 #, fuzzy, gcc-internal-format msgid "a brace-enclosed initializer is not allowed here" msgstr "#pragma %s уже зарегиÑтрирована" -#: cp/parser.c:19711 +#: cp/parser.c:19715 #, gcc-internal-format msgid "%<virtual%> specified more than once in base-specified" msgstr "" -#: cp/parser.c:19731 +#: cp/parser.c:19735 #, gcc-internal-format msgid "more than one access specifier in base-specified" msgstr "" -#: cp/parser.c:19755 +#: cp/parser.c:19759 #, fuzzy, gcc-internal-format msgid "keyword %<typename%> not allowed outside of templates" msgstr "иÑпользование `typename' вне шаблона" -#: cp/parser.c:19758 +#: cp/parser.c:19762 #, fuzzy, gcc-internal-format msgid "keyword %<typename%> not allowed in this context (the base class is implicitly a type)" msgstr "ключевое Ñлово `typename' запрещено в Ñтом контекÑте (инициализатор квалифицированного Ñлемента неÑвно ÑвлÑетÑÑ Ñ‚Ð¸Ð¿Ð¾Ð¼)" -#: cp/parser.c:19851 cp/parser.c:19933 +#: cp/parser.c:19855 cp/parser.c:19937 #, fuzzy, gcc-internal-format msgid "types may not be defined in an exception-specification" msgstr "в опиÑании возвращаемого типа Ð½ÐµÐ»ÑŒÐ·Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÑÑ‚ÑŒ новые типы" -#: cp/parser.c:19915 +#: cp/parser.c:19919 #, gcc-internal-format msgid "dynamic exception specifications are deprecated in C++0x; use %<noexcept%> instead" msgstr "" -#: cp/parser.c:20114 +#: cp/parser.c:20118 #, fuzzy, gcc-internal-format msgid "types may not be defined in exception-declarations" msgstr "в опиÑании возвращаемого типа Ð½ÐµÐ»ÑŒÐ·Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÑÑ‚ÑŒ новые типы" -#: cp/parser.c:20665 +#: cp/parser.c:20669 #, fuzzy, gcc-internal-format -#| msgid "expected identifier or %<(%>" msgid "expected an identifier for the attribute name" msgstr "ожидалÑÑ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€ или %<(%>" -#: cp/parser.c:21334 +#: cp/parser.c:21338 #, gcc-internal-format msgid "specializing member %<%T::%E%> requires %<template<>%> syntax" msgstr "" -#: cp/parser.c:21339 +#: cp/parser.c:21343 #, fuzzy, gcc-internal-format msgid "invalid declaration of %<%T::%E%>" msgstr "Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ %q+D" -#: cp/parser.c:21343 +#: cp/parser.c:21347 #, gcc-internal-format msgid "too few template-parameter-lists" msgstr "недоÑтаточно ÑпиÑков параметров шаблонов" @@ -33978,344 +33899,342 @@ msgstr "недоÑтаточно ÑпиÑков параметров шаблоР#. something like: #. #. template <class T> template <class U> void S::f(); -#: cp/parser.c:21350 +#: cp/parser.c:21354 #, gcc-internal-format msgid "too many template-parameter-lists" msgstr "Ñлишком много ÑпиÑков параметров шаблонов" -#: cp/parser.c:21647 +#: cp/parser.c:21651 #, gcc-internal-format msgid "named return values are no longer supported" msgstr "именованные возвращаемые Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÑŒÑˆÐµ не поддерживаютÑÑ" -#: cp/parser.c:21734 +#: cp/parser.c:21738 #, fuzzy, gcc-internal-format msgid "invalid declaration of member template in local class" msgstr "Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð°-Ñлемента `%#D' в локальном клаÑÑе" -#: cp/parser.c:21743 +#: cp/parser.c:21747 #, gcc-internal-format msgid "template with C linkage" msgstr "шаблон Ñ Ð¿Ñ€Ð¸Ð²Ñзкой C" -#: cp/parser.c:21762 +#: cp/parser.c:21766 #, fuzzy, gcc-internal-format msgid "invalid explicit specialization" msgstr "Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ ÑÐ¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð±Ð°Ð·Ð¾Ð²Ð¾Ð³Ð¾ клаÑÑа" -#: cp/parser.c:21849 +#: cp/parser.c:21853 #, gcc-internal-format msgid "literal operator template %qD has invalid parameter list. Expected non-type template argument pack <char...>" msgstr "" -#: cp/parser.c:21923 +#: cp/parser.c:21927 #, fuzzy, gcc-internal-format msgid "template declaration of %<typedef%>" msgstr "ÑˆÐ°Ð±Ð»Ð¾Ð½Ð½Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ `%#D'" -#: cp/parser.c:22000 +#: cp/parser.c:22004 #, fuzzy, gcc-internal-format msgid "explicit template specialization cannot have a storage class" msgstr "ÑÐ²Ð½Ð°Ñ ÑÐ¿ÐµÑ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð² не-namespace облаÑти %qD" -#: cp/parser.c:22238 +#: cp/parser.c:22242 #, fuzzy, gcc-internal-format msgid "%<>>%> should be %<> >%> within a nested template argument list" msgstr "%H%<>>%> должно быть %<> >%> внутри ÑпиÑка аргументов вложенного шаблона" -#: cp/parser.c:22251 +#: cp/parser.c:22255 #, gcc-internal-format msgid "spurious %<>>%>, use %<>%> to terminate a template argument list" msgstr "ошибочное иÑпользование %<>>%>, иÑпользуйте %<>%> Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ ÑпиÑка аргументов шаблона" -#: cp/parser.c:22608 +#: cp/parser.c:22612 #, gcc-internal-format msgid "%<sizeof...%> argument must be surrounded by parentheses" msgstr "" -#: cp/parser.c:22660 +#: cp/parser.c:22664 #, fuzzy, gcc-internal-format msgid "invalid use of %qD in linkage specification" msgstr "Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ ÑÐ¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð±Ð°Ð·Ð¾Ð²Ð¾Ð³Ð¾ клаÑÑа" -#: cp/parser.c:22675 +#: cp/parser.c:22679 #, fuzzy, gcc-internal-format msgid "%<__thread%> before %qD" msgstr "%<__thread%> перед %<extern%>" -#: cp/parser.c:22809 +#: cp/parser.c:22813 #, fuzzy, gcc-internal-format msgid "ISO C++ 1998 does not support %<long long%>" msgstr "ISO C++ не поддерживает %<long long%>" -#: cp/parser.c:22817 +#: cp/parser.c:22821 #, fuzzy, gcc-internal-format msgid "both %<__thread%> and %<thread_local%> specified" msgstr "в декларации иÑпользованы Ñпецификаторы %<short%> и %<char%>" -#: cp/parser.c:22819 +#: cp/parser.c:22823 #, fuzzy, gcc-internal-format -#| msgid "duplicate %qE" msgid "duplicate %qD" msgstr "дублирование %qE" -#: cp/parser.c:22841 +#: cp/parser.c:22845 #, gcc-internal-format msgid "duplicate %qs" msgstr "дублирование %s" -#: cp/parser.c:22883 +#: cp/parser.c:22887 #, fuzzy, gcc-internal-format msgid "expected %<new%>" msgstr "ожидалоÑÑŒ %<{%>" -#: cp/parser.c:22886 +#: cp/parser.c:22890 #, fuzzy, gcc-internal-format msgid "expected %<delete%>" msgstr "ожидалоÑÑŒ %<{%>" -#: cp/parser.c:22889 +#: cp/parser.c:22893 #, fuzzy, gcc-internal-format msgid "expected %<return%>" msgstr "ожидалоÑÑŒ %<{%>" -#: cp/parser.c:22895 +#: cp/parser.c:22899 #, fuzzy, gcc-internal-format msgid "expected %<extern%>" msgstr "ожидалоÑÑŒ %<{%>" -#: cp/parser.c:22898 +#: cp/parser.c:22902 #, fuzzy, gcc-internal-format msgid "expected %<static_assert%>" msgstr "ожидалÑÑ Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€" -#: cp/parser.c:22901 +#: cp/parser.c:22905 #, fuzzy, gcc-internal-format msgid "expected %<decltype%>" msgstr "ожидалоÑÑŒ %<{%>" -#: cp/parser.c:22904 +#: cp/parser.c:22908 #, fuzzy, gcc-internal-format msgid "expected %<operator%>" msgstr "ожидалоÑÑŒ %<{%>" -#: cp/parser.c:22907 +#: cp/parser.c:22911 #, fuzzy, gcc-internal-format msgid "expected %<class%>" msgstr "ожидалоÑÑŒ %<{%>" -#: cp/parser.c:22910 +#: cp/parser.c:22914 #, fuzzy, gcc-internal-format msgid "expected %<template%>" msgstr "ожидалоÑÑŒ %<{%>" -#: cp/parser.c:22913 +#: cp/parser.c:22917 #, fuzzy, gcc-internal-format msgid "expected %<namespace%>" msgstr "ожидалоÑÑŒ %<{%>" -#: cp/parser.c:22916 +#: cp/parser.c:22920 #, fuzzy, gcc-internal-format msgid "expected %<using%>" msgstr "ожидалоÑÑŒ %<{%>" -#: cp/parser.c:22919 +#: cp/parser.c:22923 #, fuzzy, gcc-internal-format msgid "expected %<asm%>" msgstr "ожидалоÑÑŒ %<{%>" -#: cp/parser.c:22922 +#: cp/parser.c:22926 #, fuzzy, gcc-internal-format msgid "expected %<try%>" msgstr "ожидалоÑÑŒ %<{%>" -#: cp/parser.c:22925 +#: cp/parser.c:22929 #, fuzzy, gcc-internal-format msgid "expected %<catch%>" msgstr "ожидалоÑÑŒ %<{%>" -#: cp/parser.c:22928 +#: cp/parser.c:22932 #, fuzzy, gcc-internal-format msgid "expected %<throw%>" msgstr "ожидалоÑÑŒ %<{%>" -#: cp/parser.c:22931 +#: cp/parser.c:22935 #, fuzzy, gcc-internal-format msgid "expected %<__label__%>" msgstr "ожидалоÑÑŒ %<{%>" -#: cp/parser.c:22934 +#: cp/parser.c:22938 #, fuzzy, gcc-internal-format msgid "expected %<@try%>" msgstr "ожидалоÑÑŒ %<{%>" -#: cp/parser.c:22937 +#: cp/parser.c:22941 #, fuzzy, gcc-internal-format msgid "expected %<@synchronized%>" msgstr "ожидалоÑÑŒ %<{%>" -#: cp/parser.c:22940 +#: cp/parser.c:22944 #, fuzzy, gcc-internal-format msgid "expected %<@throw%>" msgstr "ожидалоÑÑŒ %<{%>" -#: cp/parser.c:22943 +#: cp/parser.c:22947 #, fuzzy, gcc-internal-format msgid "expected %<__transaction_atomic%>" msgstr "ожидалÑÑ Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€" -#: cp/parser.c:22946 +#: cp/parser.c:22950 #, fuzzy, gcc-internal-format msgid "expected %<__transaction_relaxed%>" msgstr "ожидалÑÑ Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€" -#: cp/parser.c:22977 +#: cp/parser.c:22981 #, fuzzy, gcc-internal-format msgid "expected %<::%>" msgstr "ожидалоÑÑŒ %<{%>" -#: cp/parser.c:22989 +#: cp/parser.c:22993 #, fuzzy, gcc-internal-format msgid "expected %<...%>" msgstr "ожидалоÑÑŒ %<{%>" -#: cp/parser.c:22992 +#: cp/parser.c:22996 #, fuzzy, gcc-internal-format msgid "expected %<*%>" msgstr "ожидалоÑÑŒ %<{%>" -#: cp/parser.c:22995 +#: cp/parser.c:22999 #, fuzzy, gcc-internal-format msgid "expected %<~%>" msgstr "ожидалоÑÑŒ %<{%>" -#: cp/parser.c:23001 +#: cp/parser.c:23005 #, fuzzy, gcc-internal-format msgid "expected %<:%> or %<::%>" msgstr "ожидалоÑÑŒ %<:%> или %<...%>" -#: cp/parser.c:23029 +#: cp/parser.c:23033 #, fuzzy, gcc-internal-format msgid "expected %<class%>, %<typename%>, or %<template%>" msgstr "ожидалоÑÑŒ %<,%>, %<;%> или %<}%>" -#: cp/parser.c:23267 +#: cp/parser.c:23271 #, fuzzy, gcc-internal-format msgid "%qs tag used in naming %q#T" msgstr "определение %qD уже еÑÑ‚ÑŒ в %qT" -#: cp/parser.c:23272 +#: cp/parser.c:23276 #, fuzzy, gcc-internal-format msgid "%q#T was previously declared here" msgstr "Ñто предыдущее определение `%#D'" -#: cp/parser.c:23291 +#: cp/parser.c:23295 #, fuzzy, gcc-internal-format msgid "%qD redeclared with different access" msgstr "%J%qD повторно декларирован как Ñимвол другого вида" -#: cp/parser.c:23312 +#: cp/parser.c:23316 #, fuzzy, gcc-internal-format -#| msgid "%<template%> (as a disambiguator) is only allowed within templates" msgid "in C++98 %<template%> (as a disambiguator) is only allowed within templates" msgstr "Ñлово %<template%> (Ð´Ð»Ñ ÑнÑÑ‚Ð¸Ñ Ð½ÐµÐ¾Ð´Ð½Ð¾Ð·Ð½Ð°Ñ‡Ð½Ð¾Ñти) допуÑкаетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ внутри шаблонов" -#: cp/parser.c:23544 +#: cp/parser.c:23548 #, gcc-internal-format msgid "file ends in default argument" msgstr "конец файла в аргументе по умолчанию" -#: cp/parser.c:23748 cp/parser.c:25010 cp/parser.c:25196 +#: cp/parser.c:23752 cp/parser.c:25014 cp/parser.c:25200 #, gcc-internal-format msgid "misplaced %<@%D%> Objective-C++ construct" msgstr "неверное положение %<@%D%> конÑтрукции Objective-C++" -#: cp/parser.c:23870 +#: cp/parser.c:23874 #, gcc-internal-format msgid "objective-c++ message argument(s) are expected" msgstr "" -#: cp/parser.c:23899 +#: cp/parser.c:23903 #, gcc-internal-format msgid "%<@encode%> must specify a type as an argument" msgstr "в конÑтрукции %<@encode%> в качеÑтве аргумента должен быть задан тип" -#: cp/parser.c:24275 +#: cp/parser.c:24279 #, gcc-internal-format msgid "invalid Objective-C++ selector name" msgstr "" -#: cp/parser.c:24350 cp/parser.c:24368 +#: cp/parser.c:24354 cp/parser.c:24372 #, fuzzy, gcc-internal-format msgid "objective-c++ method declaration is expected" msgstr "ожидалиÑÑŒ Ñпецификаторы декларации" -#: cp/parser.c:24362 cp/parser.c:24427 +#: cp/parser.c:24366 cp/parser.c:24431 #, fuzzy, gcc-internal-format msgid "method attributes must be specified at the end" msgstr "%Jатрибут section недопуÑтим Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ñ‹Ñ… переменных" -#: cp/parser.c:24470 +#: cp/parser.c:24474 #, gcc-internal-format msgid "stray %qs between Objective-C++ methods" msgstr "" -#: cp/parser.c:24676 cp/parser.c:24683 cp/parser.c:24690 +#: cp/parser.c:24680 cp/parser.c:24687 cp/parser.c:24694 #, fuzzy, gcc-internal-format msgid "invalid type for instance variable" msgstr "неверно задан векторный тип Ð´Ð»Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð° %qE" -#: cp/parser.c:24804 +#: cp/parser.c:24808 #, fuzzy, gcc-internal-format msgid "identifier expected after %<@protocol%>" msgstr "ОжидалÑÑ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€" -#: cp/parser.c:24975 +#: cp/parser.c:24979 #, gcc-internal-format msgid "attributes may not be specified before the %<@%D%> Objective-C++ keyword" msgstr "" -#: cp/parser.c:24982 +#: cp/parser.c:24986 #, fuzzy, gcc-internal-format msgid "prefix attributes are ignored before %<@%D%>" msgstr "атрибут %qE Ð´Ð»Ñ %qE проигнорирован" -#: cp/parser.c:25255 cp/parser.c:25262 cp/parser.c:25269 +#: cp/parser.c:25259 cp/parser.c:25266 cp/parser.c:25273 #, fuzzy, gcc-internal-format msgid "invalid type for property" msgstr "некорректный тип аргумента" -#: cp/parser.c:27000 +#: cp/parser.c:27004 #, gcc-internal-format msgid "parenthesized initialization is not allowed in OpenMP %<for%> loop" msgstr "" -#: cp/parser.c:27168 cp/pt.c:12695 +#: cp/parser.c:27172 cp/pt.c:12690 #, fuzzy, gcc-internal-format msgid "iteration variable %qD should not be reduction" msgstr "региÑÑ‚Ñ€Ð¾Ð²Ð°Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ %qs иÑпользована во вложенной функции" -#: cp/parser.c:27238 +#: cp/parser.c:27242 #, fuzzy, gcc-internal-format msgid "not enough collapsed for loops" msgstr "недоÑÑ‚Ð°Ñ‚Ð¾Ñ‡Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ типе" -#: cp/parser.c:27796 cp/semantics.c:5105 +#: cp/parser.c:27800 cp/semantics.c:5105 #, gcc-internal-format msgid "%<__transaction_relaxed%> without transactional memory support enabled" msgstr "" -#: cp/parser.c:27798 cp/semantics.c:5107 +#: cp/parser.c:27802 cp/semantics.c:5107 #, gcc-internal-format msgid "%<__transaction_atomic%> without transactional memory support enabled" msgstr "" -#: cp/parser.c:27995 +#: cp/parser.c:27999 #, fuzzy, gcc-internal-format msgid "junk at end of %<#pragma GCC pch_preprocess%>" msgstr "муÑор в конце директивы %<#pragma pack%>" -#: cp/parser.c:28174 +#: cp/parser.c:28178 #, fuzzy, gcc-internal-format msgid "inter-module optimizations not implemented for C++" msgstr "межмодульные оптимизации пока не реализованы" @@ -34404,13 +34323,11 @@ msgstr "ÑÐ²Ð½Ð°Ñ ÑÐ¿ÐµÑ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ %D поÑле первого иÑÐ #: cp/pt.c:1747 #, fuzzy, gcc-internal-format -#| msgid "candidate is: %+#D" msgid "candidate is: %#D" msgstr "претендент: %+#D" #: cp/pt.c:1754 #, fuzzy, gcc-internal-format -#| msgid "%s %+#T" msgid "%s %#D" msgstr "%s %+#T" @@ -34434,14 +34351,13 @@ msgstr "" msgid "ambiguous template specialization %qD for %q+D" msgstr "Ð½ÐµÐ¾Ð´Ð½Ð¾Ð·Ð½Ð°Ñ‡Ð½Ð°Ñ ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð¸Ð·Ð°Ñ†Ð¸Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð° %qD Ð´Ð»Ñ %q+D" -#: cp/pt.c:2273 cp/pt.c:17968 +#: cp/pt.c:2273 cp/pt.c:17964 #, fuzzy, gcc-internal-format msgid "%qD is not a static data member of a class template" msgstr "`%#D' не ÑвлÑетÑÑ Ð½ÐµÑтатичеÑким Ñлементом %qT" #: cp/pt.c:2277 #, fuzzy, gcc-internal-format -#| msgid "wrong number of template arguments (%d, should be %d)" msgid "too many template headers for %D (should be %d)" msgstr "неправильное чиÑло аргументов шаблона (%d, а должно быть %d)" @@ -35096,252 +35012,252 @@ msgstr "ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð¸Ð·Ð°Ñ†Ð¸Ñ %qD Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ð° %qT" #. #. is an attempt to declare a variable with function #. type. -#: cp/pt.c:10656 +#: cp/pt.c:10651 #, fuzzy, gcc-internal-format msgid "variable %qD has function type" msgstr "Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ %qs инициализирована, Ñ…Ð¾Ñ‚Ñ Ð¸Ð¼ÐµÐµÑ‚ неполный тип" -#: cp/pt.c:10828 +#: cp/pt.c:10823 #, gcc-internal-format msgid "invalid parameter type %qT" msgstr "некорректный тип параметра %qT" -#: cp/pt.c:10830 +#: cp/pt.c:10825 #, gcc-internal-format msgid "in declaration %q+D" msgstr "в декларации %q+D" -#: cp/pt.c:10906 +#: cp/pt.c:10901 #, fuzzy, gcc-internal-format msgid "function returning an array" msgstr "Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ агрегатное значение" -#: cp/pt.c:10908 +#: cp/pt.c:10903 #, fuzzy, gcc-internal-format msgid "function returning a function" msgstr "%qs объÑвлена как функциÑ, Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÑŽÑ‰Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸ÑŽ" -#: cp/pt.c:10938 +#: cp/pt.c:10933 #, gcc-internal-format msgid "creating pointer to member function of non-class type %qT" msgstr "Ñоздание ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ Ð½Ð° Ñлемент-функцию не клаÑÑового типа %qT" -#: cp/pt.c:11503 +#: cp/pt.c:11498 #, gcc-internal-format msgid "forming reference to void" msgstr "Ñоздание ÑÑылки на void" -#: cp/pt.c:11505 +#: cp/pt.c:11500 #, fuzzy, gcc-internal-format msgid "forming pointer to reference type %qT" msgstr "Ñоздание %s на ÑÑылочный тип %qT" -#: cp/pt.c:11507 +#: cp/pt.c:11502 #, fuzzy, gcc-internal-format msgid "forming reference to reference type %qT" msgstr "Ñоздание %s на ÑÑылочный тип %qT" -#: cp/pt.c:11556 +#: cp/pt.c:11551 #, gcc-internal-format msgid "creating pointer to member of non-class type %qT" msgstr "Ñоздание ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ Ð½Ð° Ñлемент не клаÑÑового типа %qT" -#: cp/pt.c:11562 +#: cp/pt.c:11557 #, gcc-internal-format msgid "creating pointer to member reference type %qT" msgstr "Ñоздание ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ Ð½Ð° Ñлемент ÑÑылочного типа %qT" -#: cp/pt.c:11568 +#: cp/pt.c:11563 #, fuzzy, gcc-internal-format msgid "creating pointer to member of type void" msgstr "Ñоздание ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ Ð½Ð° Ñлемент ÑÑылочного типа %qT" -#: cp/pt.c:11630 +#: cp/pt.c:11625 #, gcc-internal-format msgid "creating array of %qT" msgstr "Ñоздание маÑÑива Ñлементов типа %qT" -#: cp/pt.c:11636 +#: cp/pt.c:11631 #, gcc-internal-format msgid "creating array of %qT, which is an abstract class type" msgstr "Ñоздание маÑÑива Ñлементов типа %qT, ÑвлÑющегоÑÑ Ð°Ð±Ñтрактным клаÑÑом" -#: cp/pt.c:11665 +#: cp/pt.c:11660 #, gcc-internal-format msgid "%qT is not a class, struct, or union type" msgstr "%qT не ÑвлÑетÑÑ Ñ‚Ð¸Ð¿Ð¾Ð¼ class, struct или union" -#: cp/pt.c:11702 +#: cp/pt.c:11697 #, gcc-internal-format msgid "%qT resolves to %qT, which is not an enumeration type" msgstr "" -#: cp/pt.c:11710 +#: cp/pt.c:11705 #, fuzzy, gcc-internal-format msgid "%qT resolves to %qT, which is is not a class type" msgstr "Ñоздание маÑÑива Ñлементов типа %qT, ÑвлÑющегоÑÑ Ð°Ð±Ñтрактным клаÑÑом" -#: cp/pt.c:11827 +#: cp/pt.c:11822 #, gcc-internal-format msgid "use of %qs in template" msgstr "иÑпользование %qs в шаблоне" -#: cp/pt.c:11969 +#: cp/pt.c:11964 #, fuzzy, gcc-internal-format msgid "qualifying type %qT does not match destructor name ~%qT" msgstr "квалифицированный тип %qT не ÑоответÑтвует имени деÑтруктора `~%T'" -#: cp/pt.c:11984 +#: cp/pt.c:11979 #, gcc-internal-format msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type" msgstr "" -#: cp/pt.c:11986 +#: cp/pt.c:11981 #, gcc-internal-format msgid "say %<typename %E%> if a type is meant" msgstr "задайте %<typename %E%>, еÑли подразумеваетÑÑ Ñ‚Ð¸Ð¿" -#: cp/pt.c:12134 +#: cp/pt.c:12129 #, fuzzy, gcc-internal-format msgid "using invalid field %qD" msgstr "отÑутÑтвует ÑтатичеÑкое поле %qs" -#: cp/pt.c:12502 cp/pt.c:13323 +#: cp/pt.c:12497 cp/pt.c:13318 #, fuzzy, gcc-internal-format msgid "invalid use of pack expansion expression" msgstr "неправильное иÑпользование void-выражениÑ" -#: cp/pt.c:12506 cp/pt.c:13327 +#: cp/pt.c:12501 cp/pt.c:13322 #, fuzzy, gcc-internal-format msgid "use %<...%> to expand argument pack" msgstr "аргументы %<...%>.)" -#: cp/pt.c:13973 +#: cp/pt.c:13968 #, gcc-internal-format msgid "%qD was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation" msgstr "" -#: cp/pt.c:13982 +#: cp/pt.c:13977 #, gcc-internal-format msgid "declarations in dependent base %qT are not found by unqualified lookup" msgstr "" -#: cp/pt.c:13987 +#: cp/pt.c:13982 #, gcc-internal-format msgid "use %<this->%D%> instead" msgstr "" -#: cp/pt.c:13990 +#: cp/pt.c:13985 #, fuzzy, gcc-internal-format msgid "use %<%T::%D%> instead" msgstr "%<%T::%D%> не ÑвлÑетÑÑ Ñ‚Ð¸Ð¿Ð¾Ð¼" -#: cp/pt.c:13994 +#: cp/pt.c:13989 #, fuzzy, gcc-internal-format msgid "%q+D declared here, later in the translation unit" msgstr "%H%qE не опиÑан в Ñтой облаÑти (не в функции)" -#: cp/pt.c:14254 +#: cp/pt.c:14249 #, gcc-internal-format msgid "%qT is not a class or namespace" msgstr "%qT не ÑвлÑетÑÑ ÐºÐ»Ð°ÑÑом или проÑтранÑтвом имён" -#: cp/pt.c:14257 +#: cp/pt.c:14252 #, gcc-internal-format msgid "%qD is not a class or namespace" msgstr "%qD не ÑвлÑетÑÑ ÐºÐ»Ð°ÑÑом или проÑтранÑтвом имён" -#: cp/pt.c:14563 +#: cp/pt.c:14558 #, fuzzy, gcc-internal-format msgid "%qT is/uses anonymous type" msgstr "в %qT иÑпользуетÑÑ Ð°Ð½Ð¾Ð½Ð¸Ð¼Ð½Ñ‹Ð¹ тип" -#: cp/pt.c:14565 +#: cp/pt.c:14560 #, fuzzy, gcc-internal-format msgid "template argument for %qD uses local type %qT" msgstr "аргумент по умолчанию Ð´Ð»Ñ `%#D' имеет тип %qT" -#: cp/pt.c:14575 +#: cp/pt.c:14570 #, gcc-internal-format msgid "%qT is a variably modified type" msgstr "" -#: cp/pt.c:14589 +#: cp/pt.c:14584 #, gcc-internal-format msgid "integral expression %qE is not constant" msgstr "целочиÑленное выражение %qE не ÑвлÑетÑÑ ÐºÐ¾Ð½Ñтантой" -#: cp/pt.c:14607 +#: cp/pt.c:14602 #, gcc-internal-format msgid " trying to instantiate %qD" msgstr " при конкретизации %qD" -#: cp/pt.c:17925 +#: cp/pt.c:17921 #, fuzzy, gcc-internal-format msgid "ambiguous class template instantiation for %q#T" msgstr "Ð½ÐµÐ¾Ð´Ð½Ð¾Ð·Ð½Ð°Ñ‡Ð½Ð°Ñ ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð¸Ð·Ð°Ñ†Ð¸Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð° клаÑÑа Ð´Ð»Ñ %q#T" -#: cp/pt.c:17929 +#: cp/pt.c:17925 #, gcc-internal-format msgid "%s %+#T" msgstr "%s %+#T" -#: cp/pt.c:17953 cp/pt.c:18036 +#: cp/pt.c:17949 cp/pt.c:18032 #, fuzzy, gcc-internal-format msgid "explicit instantiation of non-template %q#D" msgstr "ÑÐ²Ð½Ð°Ñ ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð¸Ð·Ð°Ñ†Ð¸Ñ `%#D', не ÑвлÑющегоÑÑ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð¼" -#: cp/pt.c:17974 cp/pt.c:18031 +#: cp/pt.c:17970 cp/pt.c:18027 #, gcc-internal-format msgid "no matching template for %qD found" msgstr "нет подходÑщего шаблона Ð´Ð»Ñ %qD" -#: cp/pt.c:17979 +#: cp/pt.c:17975 #, fuzzy, gcc-internal-format msgid "type %qT for explicit instantiation %qD does not match declared type %qT" msgstr "ÑÐ²Ð½Ð°Ñ ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñ‚Ð¸Ð¿Ð° %qT, не ÑвлÑющегоÑÑ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð¼" -#: cp/pt.c:17987 +#: cp/pt.c:17983 #, fuzzy, gcc-internal-format msgid "explicit instantiation of %q#D" msgstr "ÑÐ²Ð½Ð°Ñ ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð¸Ð·Ð°Ñ†Ð¸Ñ `%#D'" -#: cp/pt.c:18023 +#: cp/pt.c:18019 #, fuzzy, gcc-internal-format msgid "duplicate explicit instantiation of %q#D" msgstr "Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð°Ñ ÑÐ²Ð½Ð°Ñ ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð¸Ð·Ð°Ñ†Ð¸Ñ `%#D'" -#: cp/pt.c:18046 cp/pt.c:18143 +#: cp/pt.c:18042 cp/pt.c:18139 #, fuzzy, gcc-internal-format msgid "ISO C++ 1998 forbids the use of %<extern%> on explicit instantiations" msgstr "ISO C++ запрещает иÑпользование %<extern%> в Ñвной конкретизации" -#: cp/pt.c:18051 cp/pt.c:18160 +#: cp/pt.c:18047 cp/pt.c:18156 #, gcc-internal-format msgid "storage class %qD applied to template instantiation" msgstr "клаÑÑ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ %qD в конкретизации шаблона" -#: cp/pt.c:18119 +#: cp/pt.c:18115 #, fuzzy, gcc-internal-format msgid "explicit instantiation of non-class template %qD" msgstr "ÑÐ²Ð½Ð°Ñ ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð¸Ð·Ð°Ñ†Ð¸Ñ `%#D', не ÑвлÑющегоÑÑ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð¼" -#: cp/pt.c:18121 +#: cp/pt.c:18117 #, gcc-internal-format msgid "explicit instantiation of non-template type %qT" msgstr "ÑÐ²Ð½Ð°Ñ ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñ‚Ð¸Ð¿Ð° %qT, не ÑвлÑющегоÑÑ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð¼" -#: cp/pt.c:18130 +#: cp/pt.c:18126 #, gcc-internal-format msgid "explicit instantiation of %q#T before definition of template" msgstr "ÑÐ²Ð½Ð°Ñ ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð¸Ð·Ð°Ñ†Ð¸Ñ %q#T до Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð°" -#: cp/pt.c:18148 +#: cp/pt.c:18144 #, gcc-internal-format msgid "ISO C++ forbids the use of %qE on explicit instantiations" msgstr "ISO C++ запрещает иÑпользование %qE в Ñвных конкретизациÑÑ…" -#: cp/pt.c:18194 +#: cp/pt.c:18190 #, gcc-internal-format msgid "duplicate explicit instantiation of %q#T" msgstr "Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð°Ñ ÑÐ²Ð½Ð°Ñ ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð¸Ð·Ð°Ñ†Ð¸Ñ %q#T" @@ -35353,47 +35269,47 @@ msgstr "Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð°Ñ ÑÐ²Ð½Ð°Ñ ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð¸Ð·Ð°Ñ†Ð¸Ñ %q#T" #. member function or static data member of a class template #. shall be present in every translation unit in which it is #. explicitly instantiated. -#: cp/pt.c:18723 +#: cp/pt.c:18719 #, gcc-internal-format msgid "explicit instantiation of %qD but no definition available" msgstr "ÑÐ²Ð½Ð°Ñ ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð¸Ð·Ð°Ñ†Ð¸Ñ %qD без определениÑ" -#: cp/pt.c:18908 +#: cp/pt.c:18904 #, fuzzy, gcc-internal-format msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use -ftemplate-depth= to increase the maximum)" msgstr "глубина конкретизации шаблона превышает макÑимум %d (задайте -ftemplate-depth-NN, чтобы увеличить макÑимум) при конкретизации %qD" -#: cp/pt.c:19288 +#: cp/pt.c:19284 #, fuzzy, gcc-internal-format msgid "invalid template non-type parameter" msgstr "неправильное иÑпользование недоопределенного typedef %qD" -#: cp/pt.c:19290 +#: cp/pt.c:19286 #, fuzzy, gcc-internal-format msgid "%q#T is not a valid type for a template non-type parameter" msgstr "`%#T' не ÑвлÑетÑÑ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ñ‹Ð¼ типом Ð´Ð»Ñ ÐºÐ¾Ð½Ñтантного параметра шаблона" -#: cp/pt.c:20508 +#: cp/pt.c:20504 #, gcc-internal-format msgid "deducing from brace-enclosed initializer list requires #include <initializer_list>" msgstr "" -#: cp/pt.c:20579 +#: cp/pt.c:20575 #, fuzzy, gcc-internal-format msgid "unable to deduce lambda return type from %qE" msgstr "ÑмулÑÑ†Ð¸Ñ %qs невозможна" -#: cp/pt.c:20581 +#: cp/pt.c:20577 #, fuzzy, gcc-internal-format msgid "unable to deduce %qT from %qE" msgstr "ÑмулÑÑ†Ð¸Ñ %qs невозможна" -#: cp/pt.c:20595 +#: cp/pt.c:20591 #, fuzzy, gcc-internal-format msgid "inconsistent types %qT and %qT deduced for lambda return type" msgstr "в опиÑании возвращаемого типа Ð½ÐµÐ»ÑŒÐ·Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÑÑ‚ÑŒ новые типы" -#: cp/pt.c:20599 +#: cp/pt.c:20595 #, gcc-internal-format msgid "inconsistent deduction for %qT: %qT and then %qT" msgstr "" @@ -35545,17 +35461,17 @@ msgstr "невозможно определить тип операнда %qE д msgid "__label__ declarations are only allowed in function scopes" msgstr "декларации Objective-C могут находитьÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ в глобальной облаÑти" -#: cp/semantics.c:1557 +#: cp/semantics.c:1558 #, gcc-internal-format msgid "invalid use of member %q+D in static member function" msgstr "некорректное иÑпользование Ñлемента %q+D в ÑтатичеÑком Ñлементе-функции" -#: cp/semantics.c:1559 +#: cp/semantics.c:1560 #, gcc-internal-format msgid "invalid use of non-static data member %q+D" msgstr "некорректное иÑпользование неÑтатичеÑкого Ñлемента %q+D" -#: cp/semantics.c:1560 +#: cp/semantics.c:1561 #, gcc-internal-format msgid "from this location" msgstr "в Ñтом меÑте" @@ -35630,7 +35546,7 @@ msgstr "некорректное определение квалифициров msgid "invalid base-class specification" msgstr "Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ ÑÐ¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð±Ð°Ð·Ð¾Ð²Ð¾Ð³Ð¾ клаÑÑа" -#: cp/semantics.c:3074 cp/semantics.c:9106 +#: cp/semantics.c:3074 cp/semantics.c:9123 #, fuzzy, gcc-internal-format msgid "%qD is not captured" msgstr "%qD не ÑвлÑетÑÑ Ñ‚Ð¸Ð¿Ð¾Ð¼" @@ -35758,263 +35674,268 @@ msgid "difference between %qE and %qD does not have integer type" msgstr "" #. Report the error. -#: cp/semantics.c:5224 +#: cp/semantics.c:5226 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "static assertion failed: %s" msgstr "Ðе выполнено необходимое уÑловие в коде CRIS: " -#: cp/semantics.c:5227 +#: cp/semantics.c:5229 #, fuzzy, gcc-internal-format msgid "non-constant condition for static assertion" msgstr "неstatic-Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ %q+D поÑле static-декларации" -#: cp/semantics.c:5256 +#: cp/semantics.c:5258 #, fuzzy, gcc-internal-format msgid "argument to decltype must be an expression" msgstr "иÑпользование шаблона клаÑÑа %qT в качеÑтве выражениÑ" -#: cp/semantics.c:5281 +#: cp/semantics.c:5283 #, fuzzy, gcc-internal-format msgid "decltype cannot resolve address of overloaded function" msgstr "%s: ошибка при определении адреÑа перегруженной функции" -#: cp/semantics.c:5612 +#: cp/semantics.c:5614 #, gcc-internal-format msgid "__is_convertible_to" msgstr "" -#: cp/semantics.c:5730 +#: cp/semantics.c:5732 #, gcc-internal-format msgid "the type %qT of constexpr variable %qD is not literal" msgstr "" -#: cp/semantics.c:5800 +#: cp/semantics.c:5802 #, fuzzy, gcc-internal-format msgid "invalid type for parameter %d of constexpr function %q+#D" msgstr "некорректное иÑпользование Ñлемента %q+D в ÑтатичеÑком Ñлементе-функции" -#: cp/semantics.c:5814 +#: cp/semantics.c:5816 #, fuzzy, gcc-internal-format msgid "invalid return type %qT of constexpr function %q+D" msgstr "некорректный тип результата Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ `%#D'" -#: cp/semantics.c:5836 +#: cp/semantics.c:5838 #, fuzzy, gcc-internal-format msgid "%q#T has virtual base classes" msgstr "%q#T не ÑвлÑетÑÑ ÐºÐ»Ð°ÑÑом" -#: cp/semantics.c:6036 +#: cp/semantics.c:6038 #, gcc-internal-format msgid "constexpr constructor does not have empty body" msgstr "" -#: cp/semantics.c:6122 +#: cp/semantics.c:6124 #, gcc-internal-format msgid "body of %<constexpr%> constructor cannot be a function-try-block" msgstr "" -#: cp/semantics.c:6245 +#: cp/semantics.c:6247 #, fuzzy, gcc-internal-format msgid "%<constexpr%> constructor for union %qT must initialize exactly one non-static data member" msgstr "Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð²Ð½ÑƒÑ‚Ñ€Ð¸ клаÑÑа ÑтатичеÑкого Ñлемента данных нецелочиÑленного типа %qT" -#: cp/semantics.c:6285 +#: cp/semantics.c:6287 #, fuzzy, gcc-internal-format msgid "uninitialized member %qD in %<constexpr%> constructor" msgstr "неинициализированный Ñлемент %qD конÑтантного типа %qT" -#: cp/semantics.c:6316 +#: cp/semantics.c:6318 #, gcc-internal-format msgid "body of constexpr function %qD not a return-statement" msgstr "" -#: cp/semantics.c:6371 +#: cp/semantics.c:6373 #, fuzzy, gcc-internal-format msgid "%q+D is not usable as a constexpr function because:" msgstr "%qD не ÑвлÑетÑÑ Ñ„ÑƒÐ½ÐºÑ†Ð¸ÐµÐ¹ шаблоном" -#: cp/semantics.c:6706 +#: cp/semantics.c:6708 #, fuzzy, gcc-internal-format msgid "expression %qE does not designate a constexpr function" msgstr "в декларации friend нет имени клаÑÑа или функции" -#: cp/semantics.c:6720 cp/semantics.c:8360 +#: cp/semantics.c:6722 cp/semantics.c:8362 #, fuzzy, gcc-internal-format msgid "call to non-constexpr function %qD" msgstr "вызов не функции %qD" #. The definition of fun was somehow unsuitable. -#: cp/semantics.c:6748 +#: cp/semantics.c:6750 #, fuzzy, gcc-internal-format msgid "%qD called in a constant expression" msgstr "%s не может приÑутÑтвовать в конÑтантном выражении" -#: cp/semantics.c:6752 +#: cp/semantics.c:6754 #, fuzzy, gcc-internal-format msgid "%qD used before its definition" msgstr "%q+D иÑпользована без предварительного определениÑ" -#: cp/semantics.c:6786 +#: cp/semantics.c:6788 #, fuzzy, gcc-internal-format msgid "call has circular dependency" msgstr "цикличеÑÐºÐ°Ñ Ð·Ð°Ð²Ð¸ÑимоÑÑ‚ÑŒ в протоколе %qs" -#: cp/semantics.c:6794 +#: cp/semantics.c:6796 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "constexpr evaluation depth exceeds maximum of %d (use -fconstexpr-depth= to increase the maximum)" msgstr "глубина конкретизации шаблона превышает макÑимум %d (задайте -ftemplate-depth-NN, чтобы увеличить макÑимум) при конкретизации %qD" -#: cp/semantics.c:6858 +#: cp/semantics.c:6860 #, fuzzy, gcc-internal-format msgid "%q+E is not a constant expression" msgstr "%s не может приÑутÑтвовать в конÑтантном выражении" -#: cp/semantics.c:7004 +#: cp/semantics.c:7006 #, fuzzy, gcc-internal-format msgid "array subscript out of bound" msgstr "Ð¸Ð½Ð´ÐµÐºÑ Ð¼Ð°ÑÑива не ÑвлÑетÑÑ Ñ†ÐµÐ»Ñ‹Ð¼ значением" -#: cp/semantics.c:7050 cp/semantics.c:7110 cp/semantics.c:7804 +#: cp/semantics.c:7052 cp/semantics.c:7112 cp/semantics.c:7806 #, fuzzy, gcc-internal-format msgid "%qE is not a constant expression" msgstr "%s не может приÑутÑтвовать в конÑтантном выражении" -#: cp/semantics.c:7056 +#: cp/semantics.c:7058 #, fuzzy, gcc-internal-format msgid "mutable %qD is not usable in a constant expression" msgstr "размер маÑÑива %qD не ÑвлÑетÑÑ Ñ†ÐµÐ»Ð¾Ñ‡Ð¸Ñленным конÑтантным выражением" -#: cp/semantics.c:7071 +#: cp/semantics.c:7073 #, gcc-internal-format msgid "accessing %qD member instead of initialized %qD member in constant expression" msgstr "" -#: cp/semantics.c:7630 +#: cp/semantics.c:7632 #, gcc-internal-format msgid "accessing value of %qE through a %qT glvalue in a constant expression" msgstr "" -#: cp/semantics.c:7665 +#: cp/semantics.c:7667 #, fuzzy, gcc-internal-format msgid "the value of %qD is not usable in a constant expression" msgstr "размер маÑÑива %qD не ÑвлÑетÑÑ Ñ†ÐµÐ»Ð¾Ñ‡Ð¸Ñленным конÑтантным выражением" -#: cp/semantics.c:7672 +#: cp/semantics.c:7674 #, fuzzy, gcc-internal-format msgid "%qD used in its own initializer" msgstr "некорректный инициализатор маÑÑива" -#: cp/semantics.c:7677 +#: cp/semantics.c:7679 #, fuzzy, gcc-internal-format msgid "%q#D is not const" msgstr "%q#T не ÑвлÑетÑÑ ÐºÐ»Ð°ÑÑом" -#: cp/semantics.c:7680 +#: cp/semantics.c:7682 #, fuzzy, gcc-internal-format msgid "%q#D is volatile" msgstr "`%+#D' - чаÑтный (private) Ñлемент" -#: cp/semantics.c:7684 +#: cp/semantics.c:7686 #, fuzzy, gcc-internal-format msgid "%qD was not initialized with a constant expression" msgstr "%s не может приÑутÑтвовать в конÑтантном выражении" -#: cp/semantics.c:7693 +#: cp/semantics.c:7695 #, fuzzy, gcc-internal-format msgid "%qD was not declared %<constexpr%>" msgstr "нет декларации %qD в Ñтой облаÑти видимоÑти" -#: cp/semantics.c:7696 +#: cp/semantics.c:7698 #, fuzzy, gcc-internal-format msgid "%qD does not have integral or enumeration type" msgstr "выражение в деклараторе new должно иметь целый или перечиÑлимый тип" -#: cp/semantics.c:7792 cp/semantics.c:8492 +#: cp/semantics.c:7794 cp/semantics.c:8494 #, fuzzy, gcc-internal-format msgid "use of the value of the object being constructed in a constant expression" msgstr "размер маÑÑива %qD не ÑвлÑетÑÑ Ñ†ÐµÐ»Ð¾Ñ‡Ð¸Ñленным конÑтантным выражением" -#: cp/semantics.c:7820 cp/semantics.c:8630 +#: cp/semantics.c:7822 cp/semantics.c:8644 #, fuzzy, gcc-internal-format msgid "temporary of non-literal type %qT in a constant expression" msgstr "перечиÑлимый и неперечиÑлимый тип в уÑловном выражении" -#: cp/semantics.c:8087 cp/semantics.c:8534 cp/semantics.c:8794 +#: cp/semantics.c:8089 cp/semantics.c:8536 cp/semantics.c:8811 #, fuzzy, gcc-internal-format msgid "expression %qE is not a constant-expression" msgstr "целочиÑленное выражение %qE не ÑвлÑетÑÑ ÐºÐ¾Ð½Ñтантой" -#: cp/semantics.c:8092 +#: cp/semantics.c:8094 #, fuzzy, gcc-internal-format msgid "unexpected expression %qE of kind %s" msgstr "ожидалоÑÑŒ выражение" -#: cp/semantics.c:8124 +#: cp/semantics.c:8126 #, gcc-internal-format msgid "%qT cannot be the type of a complete constant expression because it has mutable sub-objects" msgstr "" -#: cp/semantics.c:8137 +#: cp/semantics.c:8139 #, fuzzy, gcc-internal-format msgid "conversion from pointer type %qT to arithmetic type %qT in a constant-expression" msgstr "выражение %qE, имеющее тип абÑтрактного клаÑÑа %qT, Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать в throw-выражении" -#: cp/semantics.c:8308 +#: cp/semantics.c:8310 #, gcc-internal-format msgid "expression %qE has side-effects" msgstr "" -#: cp/semantics.c:8378 +#: cp/semantics.c:8380 #, fuzzy, gcc-internal-format msgid "calling a member function of the object being constructed in a constant expression" msgstr "%s не может приÑутÑтвовать в конÑтантном выражении" -#: cp/semantics.c:8460 +#: cp/semantics.c:8462 #, gcc-internal-format msgid "address-of an object %qE with thread local or automatic storage is not a constant expression" msgstr "" -#: cp/semantics.c:8546 +#: cp/semantics.c:8548 #, gcc-internal-format msgid "typeid-expression is not a constant expression because %qE is of polymorphic type" msgstr "" -#: cp/semantics.c:8559 +#: cp/semantics.c:8561 #, fuzzy, gcc-internal-format msgid "difference of two pointer expressions is not a constant expression" msgstr "размер маÑÑива не ÑвлÑетÑÑ Ñ†ÐµÐ»Ð¾Ñ‡Ð¸Ñленным конÑтантным выражением" -#: cp/semantics.c:8578 +#: cp/semantics.c:8580 #, fuzzy, gcc-internal-format msgid "pointer comparison expression is not a constant expression" msgstr "целочиÑленное выражение %qE не ÑвлÑетÑÑ ÐºÐ¾Ð½Ñтантой" -#: cp/semantics.c:8679 +#: cp/semantics.c:8619 +#, fuzzy, gcc-internal-format +msgid "cast to non-integral type %qT in a constant expression" +msgstr "перечиÑлимый и неперечиÑлимый тип в уÑловном выражении" + +#: cp/semantics.c:8695 #, fuzzy, gcc-internal-format msgid "division by zero is not a constant-expression" msgstr "размер маÑÑива не ÑвлÑетÑÑ Ñ†ÐµÐ»Ð¾Ñ‡Ð¸Ñленным конÑтантным выражением" -#: cp/semantics.c:8802 +#: cp/semantics.c:8819 #, fuzzy, gcc-internal-format msgid "non-constant array initialization" msgstr "неконÑтантный Ð¸Ð½Ð´ÐµÐºÑ Ð¼Ð°ÑÑива в инициализаторе" -#: cp/semantics.c:8811 +#: cp/semantics.c:8828 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "unexpected AST of kind %s" msgstr "Ðеожиданное окончание Ñтроки формата" -#: cp/semantics.c:9303 +#: cp/semantics.c:9320 #, fuzzy, gcc-internal-format msgid "cannot capture %qE by reference" msgstr "недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ ÑÑылки на %q#T" -#: cp/semantics.c:9326 +#: cp/semantics.c:9343 #, fuzzy, gcc-internal-format msgid "already captured %qD in lambda expression" msgstr "неверные операнды бинарной операции %s" -#: cp/semantics.c:9472 +#: cp/semantics.c:9515 #, fuzzy, gcc-internal-format msgid "%<this%> was not captured for this lambda function" msgstr "Ð¸Ð¼Ñ %<this%> недоÑтупно Ð´Ð»Ñ ÑтатичеÑких Ñлементов-функций" @@ -36024,83 +35945,82 @@ msgstr "Ð¸Ð¼Ñ %<this%> недоÑтупно Ð´Ð»Ñ ÑтатичеÑких ÑлРmsgid "%qV qualifiers cannot be applied to %qT" msgstr "квалификаторы `%V' не могут быть применены к %qT" -#: cp/tree.c:3084 +#: cp/tree.c:3078 #, fuzzy, gcc-internal-format msgid "%qE attribute can only be applied to Java class definitions" msgstr "атрибут %qs допуÑтим только Ð´Ð»Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ð¹ Java-клаÑÑов" -#: cp/tree.c:3113 +#: cp/tree.c:3107 #, fuzzy, gcc-internal-format msgid "%qE attribute can only be applied to class definitions" msgstr "атрибут %qs допуÑтим только Ð´Ð»Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ð¹ клаÑÑов" -#: cp/tree.c:3119 +#: cp/tree.c:3113 #, fuzzy, gcc-internal-format msgid "%qE is obsolete; g++ vtables are now COM-compatible by default" msgstr "%qs уÑтарел; таблицы виртуальных функций g++ теперь COM-ÑовмеÑтимы по умолчанию" -#: cp/tree.c:3143 +#: cp/tree.c:3137 #, gcc-internal-format msgid "requested init_priority is not an integer constant" msgstr "заданный init_priority не ÑвлÑетÑÑ Ñ†ÐµÐ»Ð¾Ð¹ конÑтантой" -#: cp/tree.c:3164 +#: cp/tree.c:3158 #, fuzzy, gcc-internal-format msgid "can only use %qE attribute on file-scope definitions of objects of class type" msgstr "атрибут %qs может иÑпользоватьÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ Ð´Ð»Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ð¹ объектов типа class на уровне файла" -#: cp/tree.c:3172 +#: cp/tree.c:3166 #, gcc-internal-format msgid "requested init_priority is out of range" msgstr "заданный init_priority вне диапазона" -#: cp/tree.c:3182 +#: cp/tree.c:3176 #, gcc-internal-format msgid "requested init_priority is reserved for internal use" msgstr "заданный init_priority зарезервировано Ð´Ð»Ñ Ð²Ð½ÑƒÑ‚Ñ€ÐµÐ½Ð½ÐµÐ³Ð¾ иÑпользованиÑ" -#: cp/tree.c:3193 +#: cp/tree.c:3187 #, fuzzy, gcc-internal-format msgid "%qE attribute is not supported on this platform" msgstr "атрибут %qs не поддерживаетÑÑ Ð½Ð° данной платформе" -#: cp/tree.c:3220 +#: cp/tree.c:3214 #, fuzzy, gcc-internal-format msgid "redeclaration of %qD adds abi tag %E" msgstr "Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ %qD перекрывает Ñлемент клаÑÑа, на который указывает 'this'" -#: cp/tree.c:3226 +#: cp/tree.c:3220 #, fuzzy, gcc-internal-format msgid "previous declaration here" msgstr "предыдущей декларации `%#D', ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð½Ð°Ñ…Ð¾Ð´Ð¸Ñ‚ÑÑ Ð·Ð´ÐµÑÑŒ" -#: cp/tree.c:3243 +#: cp/tree.c:3237 #, fuzzy, gcc-internal-format -#| msgid "%qE attribute ignored on non-class types" msgid "%qE attribute applied to non-class, non-enum type %qT" msgstr "атрибут %qE Ð´Ð»Ñ Ð½Ðµ клаÑÑовых типов игнорируетÑÑ" -#: cp/tree.c:3249 +#: cp/tree.c:3243 #, fuzzy, gcc-internal-format msgid "%qE attribute applied to %qT after its definition" msgstr "отброшены атрибуты клаÑÑа, заданные вне его объÑвлениÑ" -#: cp/tree.c:3271 +#: cp/tree.c:3265 #, fuzzy, gcc-internal-format msgid "%qE attribute applied to non-function %qD" msgstr "%J%qE: атрибут допуÑтим только Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¹" -#: cp/tree.c:3276 +#: cp/tree.c:3270 #, fuzzy, gcc-internal-format msgid "%qE attribute applied to extern \"C\" function %qD" msgstr "%J%qE: атрибут допуÑтим только Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¹" -#: cp/tree.c:3977 +#: cp/tree.c:3971 #, fuzzy, gcc-internal-format msgid "zero as null pointer constant" msgstr "Ð¸Ð½Ð´ÐµÐºÑ Ð¼Ð°ÑÑива не ÑвлÑетÑÑ Ñ†ÐµÐ»Ñ‹Ð¼ значением" -#: cp/tree.c:3990 +#: cp/tree.c:3984 #, gcc-internal-format, gfc-internal-format msgid "lang_* check: failed in %s, at %s:%d" msgstr "lang_* check: ошибка в %s, в %s:%d" @@ -36327,13 +36247,11 @@ msgstr "%qE Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать как функцию" #: cp/typeck.c:3409 #, fuzzy, gcc-internal-format -#| msgid "%qE cannot be used as a function" msgid "%qD cannot be used as a function" msgstr "%qE Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать как функцию" #: cp/typeck.c:3412 #, fuzzy, gcc-internal-format -#| msgid "%qE cannot be used as a function" msgid "expression cannot be used as a function" msgstr "%qE Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать как функцию" @@ -36857,28 +36775,33 @@ msgid "returning a value from a constructor" msgstr "возврат результата конÑтруктора" #. Give a helpful error message. -#: cp/typeck.c:8133 cp/typeck.c:8172 +#: cp/typeck.c:8133 cp/typeck.c:8177 #, gcc-internal-format msgid "return-statement with no value, in function returning %qT" msgstr "return без Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð² функции, возвращающей %qT" -#: cp/typeck.c:8191 +#: cp/typeck.c:8141 +#, fuzzy, gcc-internal-format +msgid "returning initializer list" +msgstr "фигурные Ñкобки вокруг ÑкалÑрного инициализатора" + +#: cp/typeck.c:8196 #, gcc-internal-format msgid "return-statement with a value, in function returning 'void'" msgstr "return Ñо значением в функции, возвращающей 'void'" -#: cp/typeck.c:8221 +#: cp/typeck.c:8226 #, 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)" #. Make this a permerror because we used to accept it. -#: cp/typeck.c:8789 +#: cp/typeck.c:8794 #, gcc-internal-format msgid "using temporary as lvalue" msgstr "" -#: cp/typeck.c:8791 +#: cp/typeck.c:8796 #, gcc-internal-format msgid "using xvalue (rvalue reference) as lvalue" msgstr "" @@ -37387,69 +37310,69 @@ msgstr "Ñтандартные Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² данном ко msgid "DO-iterator '%s' at %L is inside iterator of the same name" msgstr "" -#: fortran/array.c:1010 fortran/array.c:1143 +#: fortran/array.c:1010 fortran/array.c:1154 #, gcc-internal-format, gfc-internal-format msgid "Syntax error in array constructor at %C" msgstr "" -#: fortran/array.c:1062 +#: fortran/array.c:1063 #, gcc-internal-format, gfc-internal-format msgid "[...] style array constructors at %C" msgstr "" -#: fortran/array.c:1083 +#: fortran/array.c:1085 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Array constructor including type specification at %C" msgstr "Ð¡Ð¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð½ÑƒÐ»ÐµÐ²Ð¾Ð³Ð¾ размера в %0 некорректна" -#: fortran/array.c:1089 fortran/match.c:3469 +#: fortran/array.c:1094 fortran/match.c:3469 #, gcc-internal-format, gfc-internal-format msgid "Type-spec at %L cannot contain a deferred type parameter" msgstr "" -#: fortran/array.c:1105 +#: fortran/array.c:1116 #, gcc-internal-format, gfc-internal-format msgid "Empty array constructor at %C is not allowed" msgstr "" -#: fortran/array.c:1190 +#: fortran/array.c:1201 #, gcc-internal-format, gfc-internal-format msgid "Element in %s array constructor at %L is %s" msgstr "" -#: fortran/array.c:1518 +#: fortran/array.c:1529 #, gcc-internal-format, gfc-internal-format msgid "Iterator step at %L cannot be zero" msgstr "" #. Problems occur when we get something like #. integer :: a(lots) = (/(i, i=1, lots)/) -#: fortran/array.c:1655 fortran/expr.c:1535 fortran/trans-array.c:5370 +#: fortran/array.c:1666 fortran/expr.c:1535 fortran/trans-array.c:5370 #, gcc-internal-format, gfc-internal-format msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit. See -fmax-array-constructor option" msgstr "" -#: fortran/array.c:1826 +#: fortran/array.c:1837 #, gcc-internal-format, gfc-internal-format msgid "AC-IMPLIED-DO initial expression references control variable at %L" msgstr "" -#: fortran/array.c:1833 +#: fortran/array.c:1844 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "AC-IMPLIED-DO final expression references control variable at %L" msgstr "Ñоздание %s на ÑÑылочный тип %qT" -#: fortran/array.c:1840 +#: fortran/array.c:1851 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "AC-IMPLIED-DO step expression references control variable at %L" msgstr "Ñоздание %s на ÑÑылочный тип %qT" -#: fortran/array.c:1852 +#: fortran/array.c:1863 #, gcc-internal-format, gfc-internal-format msgid "Array constructor value at %L shall not be unlimited polymorphic [F2008: C4106]" msgstr "" -#: fortran/array.c:1935 +#: fortran/array.c:1946 #, gcc-internal-format, gfc-internal-format msgid "Different CHARACTER lengths (%d/%d) in array constructor at %L" msgstr "" @@ -38072,7 +37995,6 @@ msgstr "" #: fortran/data.c:321 fortran/data.c:487 #, fuzzy, gcc-internal-format, gfc-internal-format -#| msgid "Extension: re-initialization of '%s' at %L" msgid "re-initialization of '%s' at %L" msgstr "РаÑширение: Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð°Ñ Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ '%s' в %L" @@ -38313,7 +38235,6 @@ msgstr "Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð°Ñ Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ %D" #: fortran/decl.c:1999 #, fuzzy, gcc-internal-format, gfc-internal-format -#| msgid "duplicate initialization of %qD" msgid "Old-style initialization at %C" msgstr "Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð°Ñ Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ %qD" @@ -38735,7 +38656,7 @@ msgstr "Ð’ определении в %C ожидаетÑÑ Ñ„Ð¾Ñ€Ð¼Ð°Ð»ÑŒÐ½Ñ‹Ð¹ #: fortran/decl.c:5300 fortran/decl.c:5304 fortran/decl.c:5508 #: fortran/decl.c:5512 fortran/decl.c:5698 fortran/decl.c:5702 -#: fortran/symbol.c:1588 +#: fortran/symbol.c:1577 #, gcc-internal-format, gfc-internal-format msgid "BIND(C) attribute at %L can only be used for variables or common blocks" msgstr "" @@ -39821,72 +39742,72 @@ msgstr "Компонент в %C должен иметь атрибут POINTER" msgid "Procedure pointer initialization target at %L may not be a procedure pointer" msgstr "" -#: fortran/expr.c:4692 +#: fortran/expr.c:4693 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Fortran 2008: Pointer functions in variable definition context (%s) at %L" msgstr "%Jфинальное поле '%D', возможно, не было инициализировано" -#: fortran/expr.c:4700 +#: fortran/expr.c:4701 #, gcc-internal-format, gfc-internal-format msgid "Non-variable expression in variable definition context (%s) at %L" msgstr "" -#: fortran/expr.c:4708 +#: fortran/expr.c:4709 #, gcc-internal-format, gfc-internal-format msgid "Named constant '%s' in variable definition context (%s) at %L" msgstr "" -#: fortran/expr.c:4717 +#: fortran/expr.c:4718 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "'%s' in variable definition context (%s) at %L is not a variable" msgstr "аргумент `asm' - не конÑÑ‚Ð°Ð½Ñ‚Ð½Ð°Ñ Ñтрока" -#: fortran/expr.c:4728 +#: fortran/expr.c:4729 #, gcc-internal-format, gfc-internal-format msgid "Non-POINTER in pointer association context (%s) at %L" msgstr "" -#: fortran/expr.c:4741 +#: fortran/expr.c:4742 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "LOCK_TYPE in variable definition context (%s) at %L" msgstr "аргумент `asm' - не конÑÑ‚Ð°Ð½Ñ‚Ð½Ð°Ñ Ñтрока" -#: fortran/expr.c:4770 +#: fortran/expr.c:4771 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Dummy argument '%s' with INTENT(IN) in pointer association context (%s) at %L" msgstr "%s не может приÑутÑтвовать в конÑтантном выражении" -#: fortran/expr.c:4778 +#: fortran/expr.c:4779 #, gcc-internal-format, gfc-internal-format msgid "Dummy argument '%s' with INTENT(IN) in variable definition context (%s) at %L" msgstr "" -#: fortran/expr.c:4791 +#: fortran/expr.c:4792 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Variable '%s' is PROTECTED and can not appear in a pointer association context (%s) at %L" msgstr "%s не может приÑутÑтвовать в конÑтантном выражении" -#: fortran/expr.c:4799 +#: fortran/expr.c:4800 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Variable '%s' is PROTECTED and can not appear in a variable definition context (%s) at %L" msgstr "%s не может приÑутÑтвовать в конÑтантном выражении" -#: fortran/expr.c:4811 +#: fortran/expr.c:4812 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Variable '%s' can not appear in a variable definition context (%s) at %L in PURE procedure" msgstr "%s не может приÑутÑтвовать в конÑтантном выражении" -#: fortran/expr.c:4870 +#: fortran/expr.c:4871 #, gcc-internal-format, gfc-internal-format msgid "'%s' at %L associated to vector-indexed target can not be used in a variable definition context (%s)" msgstr "" -#: fortran/expr.c:4874 +#: fortran/expr.c:4875 #, gcc-internal-format, gfc-internal-format msgid "'%s' at %L associated to expression can not be used in a variable definition context (%s)" msgstr "" -#: fortran/expr.c:4886 +#: fortran/expr.c:4887 #, gcc-internal-format, gfc-internal-format msgid "Associate-name '%s' can not appear in a variable definition context (%s) at %L because its target at %L can not, either" msgstr "" @@ -39898,7 +39819,7 @@ msgstr "ошибка Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð²Ñ…Ð¾Ð´Ð½Ð¾Ð³Ð¾ файла %qs" #: fortran/frontend-passes.c:518 fortran/trans-array.c:1041 #: fortran/trans-array.c:5866 fortran/trans-array.c:7150 -#: fortran/trans-intrinsic.c:5445 +#: fortran/trans-intrinsic.c:5444 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Creating array temporary at %L" msgstr "Ñоздание маÑÑива Ñлементов типа %qT" @@ -40033,12 +39954,12 @@ msgstr "" msgid "Second argument of defined assignment at %L must be INTENT(IN)" msgstr "" -#: fortran/interface.c:723 fortran/resolve.c:14797 +#: fortran/interface.c:723 fortran/resolve.c:14799 #, gcc-internal-format, gfc-internal-format msgid "First argument of operator interface at %L must be INTENT(IN)" msgstr "" -#: fortran/interface.c:730 fortran/resolve.c:14815 +#: fortran/interface.c:730 fortran/resolve.c:14817 #, gcc-internal-format, gfc-internal-format msgid "Second argument of operator interface at %L must be INTENT(IN)" msgstr "" @@ -40999,7 +40920,7 @@ msgid "Expected expression in %s statement at %C" msgstr "Предупреждать о декларациÑÑ…, вÑтретившихÑÑ Ð¿Ð¾Ñле операторов" #. A general purpose syntax error. -#: fortran/io.c:3175 fortran/io.c:3774 fortran/gfortran.h:2496 +#: fortran/io.c:3175 fortran/io.c:3774 fortran/gfortran.h:2506 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Syntax error in %s statement at %C" msgstr "ÑинтакÑичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° при разборе `%s'" @@ -43586,7 +43507,7 @@ msgstr "" msgid "Unable to resolve the specific function '%s' at %L" msgstr "ошибка в аргументах spec-функции '%s'" -#: fortran/resolve.c:2630 fortran/resolve.c:14732 +#: fortran/resolve.c:2630 fortran/resolve.c:14734 #, gcc-internal-format, gfc-internal-format msgid "Function '%s' at %L has no IMPLICIT type" msgstr "" @@ -44996,399 +44917,399 @@ msgstr "" msgid "Component '%s' with CLASS at %L must be allocatable or pointer" msgstr "" -#: fortran/resolve.c:12934 +#: fortran/resolve.c:12936 #, gcc-internal-format, gfc-internal-format msgid "Generic name '%s' of function '%s' at %L being the same name as derived type at %L" msgstr "" -#: fortran/resolve.c:12990 +#: fortran/resolve.c:12992 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Assumed size array '%s' in namelist '%s' at %L is not allowed" msgstr "Ðльтернативный Ñпецификатор возврата в %0 некорректен внутри функции" -#: fortran/resolve.c:12996 +#: fortran/resolve.c:12998 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "NAMELIST array object '%s' with assumed shape in namelist '%s' at %L" msgstr "атрибут %qs допуÑтим только Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ñ…" -#: fortran/resolve.c:13003 +#: fortran/resolve.c:13005 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "NAMELIST array object '%s' with nonconstant shape in namelist '%s' at %L" msgstr "атрибут %qs допуÑтим только Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ñ…" -#: fortran/resolve.c:13012 +#: fortran/resolve.c:13014 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "NAMELIST object '%s' with nonconstant character length in namelist '%s' at %L" msgstr "атрибут %qs допуÑтим только Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ñ…" -#: fortran/resolve.c:13022 +#: fortran/resolve.c:13024 #, gcc-internal-format, gfc-internal-format msgid "NAMELIST object '%s' in namelist '%s' at %L is polymorphic and requires a defined input/output procedure" msgstr "" -#: fortran/resolve.c:13032 +#: fortran/resolve.c:13034 #, gcc-internal-format, gfc-internal-format msgid "NAMELIST object '%s' in namelist '%s' at %L with ALLOCATABLE or POINTER components" msgstr "" #. FIXME: Once UDDTIO is implemented, the following can be #. removed. -#: fortran/resolve.c:13040 +#: fortran/resolve.c:13042 #, gcc-internal-format, gfc-internal-format msgid "NAMELIST object '%s' in namelist '%s' at %L has ALLOCATABLE or POINTER components and thus requires a defined input/output procedure" msgstr "" -#: fortran/resolve.c:13057 +#: fortran/resolve.c:13059 #, gcc-internal-format, gfc-internal-format msgid "NAMELIST object '%s' was declared PRIVATE and cannot be member of PUBLIC namelist '%s' at %L" msgstr "" -#: fortran/resolve.c:13067 +#: fortran/resolve.c:13069 #, gcc-internal-format, gfc-internal-format msgid "NAMELIST object '%s' has use-associated PRIVATE components and cannot be member of namelist '%s' at %L" msgstr "" -#: fortran/resolve.c:13078 +#: fortran/resolve.c:13080 #, gcc-internal-format, gfc-internal-format msgid "NAMELIST object '%s' has PRIVATE components and cannot be a member of PUBLIC namelist '%s' at %L" msgstr "" -#: fortran/resolve.c:13105 +#: fortran/resolve.c:13107 #, gcc-internal-format, gfc-internal-format msgid "PROCEDURE attribute conflicts with NAMELIST attribute in '%s' at %L" msgstr "" -#: fortran/resolve.c:13124 +#: fortran/resolve.c:13126 #, gcc-internal-format, gfc-internal-format msgid "Parameter array '%s' at %L cannot be automatic or of deferred shape" msgstr "" -#: fortran/resolve.c:13136 +#: fortran/resolve.c:13138 #, gcc-internal-format, gfc-internal-format msgid "Implicitly typed PARAMETER '%s' at %L doesn't match a later IMPLICIT type" msgstr "" -#: fortran/resolve.c:13147 +#: fortran/resolve.c:13149 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Incompatible derived type in PARAMETER at %L" msgstr "неÑовмеÑтимые типы в операторе `%s'" -#: fortran/resolve.c:13230 +#: fortran/resolve.c:13232 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "PROTECTED attribute conflicts with EXTERNAL attribute at %L" msgstr "атрибут %qs допуÑтим только Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ñ…" -#: fortran/resolve.c:13233 +#: fortran/resolve.c:13235 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "PROCEDURE attribute conflicts with PROTECTED attribute at %L" msgstr "атрибут %qs допуÑтим только Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ñ…" -#: fortran/resolve.c:13322 +#: fortran/resolve.c:13324 #, gcc-internal-format, gfc-internal-format msgid "'%s' at %L has the CONTIGUOUS attribute but is not an array pointer or an assumed-shape or assumed-rank array" msgstr "" -#: fortran/resolve.c:13340 +#: fortran/resolve.c:13342 #, gcc-internal-format, gfc-internal-format msgid "Assumed size array at %L must be a dummy argument" msgstr "" -#: fortran/resolve.c:13343 +#: fortran/resolve.c:13345 #, gcc-internal-format, gfc-internal-format msgid "Assumed shape array at %L must be a dummy argument" msgstr "" -#: fortran/resolve.c:13351 +#: fortran/resolve.c:13353 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Assumed-rank array at %L must be a dummy argument" msgstr "Ðльтернативный Ñпецификатор возврата в %0 внутри главной программы" -#: fortran/resolve.c:13358 +#: fortran/resolve.c:13360 #, gcc-internal-format, gfc-internal-format msgid "Assumed-rank array at %L may not have the VALUE or CODIMENSION attribute" msgstr "" -#: fortran/resolve.c:13371 +#: fortran/resolve.c:13373 #, gcc-internal-format, gfc-internal-format msgid "Symbol at %L is not a DUMMY variable" msgstr "" -#: fortran/resolve.c:13377 +#: fortran/resolve.c:13379 #, gcc-internal-format, gfc-internal-format msgid "'%s' at %L cannot have the VALUE attribute because it is not a dummy argument" msgstr "" -#: fortran/resolve.c:13387 +#: fortran/resolve.c:13389 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Character dummy variable '%s' at %L with VALUE attribute must have constant length" msgstr "ПуÑтой аргумент в %0 в вызове функции-оператора в %1" -#: fortran/resolve.c:13396 +#: fortran/resolve.c:13398 #, gcc-internal-format, gfc-internal-format msgid "C interoperable character dummy variable '%s' at %L with VALUE attribute must have length one" msgstr "" -#: fortran/resolve.c:13409 fortran/resolve.c:13522 +#: fortran/resolve.c:13411 fortran/resolve.c:13524 #, gcc-internal-format, gfc-internal-format msgid "The derived type '%s' at %L is of type '%s', which has not been defined" msgstr "" -#: fortran/resolve.c:13422 +#: fortran/resolve.c:13424 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Assumed type of variable %s at %L is only permitted for dummy variables" msgstr "%Jфинальное поле '%D', возможно, не было инициализировано" -#: fortran/resolve.c:13429 +#: fortran/resolve.c:13431 #, gcc-internal-format, gfc-internal-format msgid "Assumed-type variable %s at %L may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute" msgstr "" -#: fortran/resolve.c:13436 +#: fortran/resolve.c:13438 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Assumed-type variable %s at %L may not have the INTENT(OUT) attribute" msgstr "Компонент в %C должен иметь атрибут POINTER" -#: fortran/resolve.c:13443 +#: fortran/resolve.c:13445 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Assumed-type variable %s at %L shall not be an explicit-shape array" msgstr "не параметричеÑкий %qs не может Ñодержать параметры" -#: fortran/resolve.c:13468 +#: fortran/resolve.c:13470 #, gcc-internal-format, gfc-internal-format msgid "Variable '%s' at %L cannot be BIND(C) because it is neither a COMMON block nor declared at the module level scope" msgstr "" -#: fortran/resolve.c:13548 +#: fortran/resolve.c:13550 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "PUBLIC %s '%s' at %L of PRIVATE derived type '%s'" msgstr "%qD не ÑвлÑетÑÑ Ñлементом типа %qT" -#: fortran/resolve.c:13562 +#: fortran/resolve.c:13564 #, gcc-internal-format, gfc-internal-format msgid "Variable %s at %L of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must be a coarray" msgstr "" -#: fortran/resolve.c:13580 +#: fortran/resolve.c:13582 #, gcc-internal-format, gfc-internal-format msgid "The INTENT(OUT) dummy argument '%s' at %L is ASSUMED SIZE and so cannot have a default initializer" msgstr "" -#: fortran/resolve.c:13592 +#: fortran/resolve.c:13594 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Dummy argument '%s' at %L of LOCK_TYPE shall not be INTENT(OUT)" msgstr "Слишком много аргументов %s в %L" -#: fortran/resolve.c:13604 +#: fortran/resolve.c:13606 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Function result '%s' at %L shall not be a coarray or have a coarray component" msgstr "%Jфинальное поле '%D', возможно, не было инициализировано" -#: fortran/resolve.c:13613 +#: fortran/resolve.c:13615 #, gcc-internal-format, gfc-internal-format msgid "Variable '%s' at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray" msgstr "" -#: fortran/resolve.c:13625 +#: fortran/resolve.c:13627 #, gcc-internal-format, gfc-internal-format msgid "Variable '%s' at %L with coarray component shall be a nonpointer, nonallocatable scalar" msgstr "" -#: fortran/resolve.c:13640 +#: fortran/resolve.c:13642 #, gcc-internal-format, gfc-internal-format msgid "Variable '%s' at %L is a coarray and is not ALLOCATABLE, SAVE nor a dummy argument" msgstr "" -#: fortran/resolve.c:13648 +#: fortran/resolve.c:13650 #, gcc-internal-format, gfc-internal-format msgid "Coarray variable '%s' at %L shall not have codimensions with deferred shape" msgstr "" -#: fortran/resolve.c:13655 +#: fortran/resolve.c:13657 #, gcc-internal-format, gfc-internal-format msgid "Allocatable coarray variable '%s' at %L must have deferred shape" msgstr "" -#: fortran/resolve.c:13667 +#: fortran/resolve.c:13669 #, gcc-internal-format, gfc-internal-format msgid "Variable '%s' at %L is INTENT(OUT) and can thus not be an allocatable coarray or have coarray components" msgstr "" -#: fortran/resolve.c:13676 +#: fortran/resolve.c:13678 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Coarray dummy variable '%s' at %L not allowed in BIND(C) procedure '%s'" msgstr "%s не может приÑутÑтвовать в конÑтантном выражении" -#: fortran/resolve.c:13692 +#: fortran/resolve.c:13694 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "LOGICAL dummy argument '%s' at %L with non-C_Bool kind in BIND(C) procedure '%s'" msgstr "%s не может приÑутÑтвовать в конÑтантном выражении" -#: fortran/resolve.c:13698 +#: fortran/resolve.c:13700 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "LOGICAL result variable '%s' at %L with non-C_Bool kind in BIND(C) procedure '%s'" msgstr "%s не может приÑутÑтвовать в конÑтантном выражении" -#: fortran/resolve.c:13778 +#: fortran/resolve.c:13780 #, gcc-internal-format, gfc-internal-format msgid "Threadprivate at %L isn't SAVEd" msgstr "" -#: fortran/resolve.c:13871 +#: fortran/resolve.c:13873 #, gcc-internal-format, gfc-internal-format msgid "BLOCK DATA element '%s' at %L must be in COMMON" msgstr "" -#: fortran/resolve.c:13877 +#: fortran/resolve.c:13879 #, gcc-internal-format, gfc-internal-format msgid "DATA array '%s' at %L must be specified in a previous declaration" msgstr "" -#: fortran/resolve.c:13886 +#: fortran/resolve.c:13888 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "DATA element '%s' at %L cannot have a coindex" msgstr "%Jфинальное поле %qD, возможно, не было инициализировано" -#: fortran/resolve.c:13900 +#: fortran/resolve.c:13902 #, gcc-internal-format, gfc-internal-format msgid "DATA element '%s' at %L is a pointer and so must be a full array" msgstr "" -#: fortran/resolve.c:13946 +#: fortran/resolve.c:13948 #, gcc-internal-format, gfc-internal-format msgid "Nonconstant array section at %L in DATA statement" msgstr "" -#: fortran/resolve.c:13959 +#: fortran/resolve.c:13961 #, gcc-internal-format, gfc-internal-format msgid "DATA statement at %L has more variables than values" msgstr "" -#: fortran/resolve.c:14058 +#: fortran/resolve.c:14060 #, gcc-internal-format, gfc-internal-format msgid "start of implied-do loop at %L could not be simplified to a constant value" msgstr "" -#: fortran/resolve.c:14066 +#: fortran/resolve.c:14068 #, gcc-internal-format, gfc-internal-format msgid "end of implied-do loop at %L could not be simplified to a constant value" msgstr "" -#: fortran/resolve.c:14074 +#: fortran/resolve.c:14076 #, gcc-internal-format, gfc-internal-format msgid "step of implied-do loop at %L could not be simplified to a constant value" msgstr "" -#: fortran/resolve.c:14199 +#: fortran/resolve.c:14201 #, gcc-internal-format, gfc-internal-format msgid "DATA statement at %L has more values than variables" msgstr "" -#: fortran/resolve.c:14337 +#: fortran/resolve.c:14339 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Label %d at %L defined but not used" msgstr "метка %qD определена, но не иÑпользуетÑÑ" -#: fortran/resolve.c:14342 +#: fortran/resolve.c:14344 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Label %d at %L defined but cannot be used" msgstr "метка %qD определена, но не иÑпользуетÑÑ" -#: fortran/resolve.c:14426 +#: fortran/resolve.c:14428 #, gcc-internal-format, gfc-internal-format msgid "Derived type variable '%s' at %L must have SEQUENCE attribute to be an EQUIVALENCE object" msgstr "" -#: fortran/resolve.c:14435 +#: fortran/resolve.c:14437 #, gcc-internal-format, gfc-internal-format msgid "Derived type variable '%s' at %L cannot have ALLOCATABLE components to be an EQUIVALENCE object" msgstr "" -#: fortran/resolve.c:14443 +#: fortran/resolve.c:14445 #, gcc-internal-format, gfc-internal-format msgid "Derived type variable '%s' at %L with default initialization cannot be in EQUIVALENCE with a variable in COMMON" msgstr "" -#: fortran/resolve.c:14459 +#: fortran/resolve.c:14461 #, gcc-internal-format, gfc-internal-format msgid "Derived type variable '%s' at %L with pointer component(s) cannot be an EQUIVALENCE object" msgstr "" -#: fortran/resolve.c:14562 +#: fortran/resolve.c:14564 #, gcc-internal-format, gfc-internal-format msgid "Syntax error in EQUIVALENCE statement at %L" msgstr "" -#: fortran/resolve.c:14577 +#: fortran/resolve.c:14579 #, gcc-internal-format, gfc-internal-format msgid "Either all or none of the objects in the EQUIVALENCE set at %L shall have the PROTECTED attribute" msgstr "" -#: fortran/resolve.c:14589 +#: fortran/resolve.c:14591 #, gcc-internal-format, gfc-internal-format msgid "Common block member '%s' at %L cannot be an EQUIVALENCE object in the pure procedure '%s'" msgstr "" -#: fortran/resolve.c:14598 +#: fortran/resolve.c:14600 #, gcc-internal-format, gfc-internal-format msgid "Named constant '%s' at %L cannot be an EQUIVALENCE object" msgstr "" -#: fortran/resolve.c:14677 +#: fortran/resolve.c:14679 #, gcc-internal-format, gfc-internal-format msgid "Array '%s' at %L with non-constant bounds cannot be an EQUIVALENCE object" msgstr "" -#: fortran/resolve.c:14688 +#: fortran/resolve.c:14690 #, gcc-internal-format, gfc-internal-format msgid "Structure component '%s' at %L cannot be an EQUIVALENCE object" msgstr "" -#: fortran/resolve.c:14699 +#: fortran/resolve.c:14701 #, gcc-internal-format, gfc-internal-format msgid "Substring at %L has length zero" msgstr "" -#: fortran/resolve.c:14742 +#: fortran/resolve.c:14744 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "PUBLIC function '%s' at %L of PRIVATE type '%s'" msgstr "%qD не ÑвлÑетÑÑ Ñлементом типа %qT" -#: fortran/resolve.c:14755 +#: fortran/resolve.c:14757 #, gcc-internal-format, gfc-internal-format msgid "ENTRY '%s' at %L has no IMPLICIT type" msgstr "" -#: fortran/resolve.c:14772 +#: fortran/resolve.c:14774 #, gcc-internal-format, gfc-internal-format msgid "User operator procedure '%s' at %L must be a FUNCTION" msgstr "" -#: fortran/resolve.c:14782 +#: fortran/resolve.c:14784 #, gcc-internal-format, gfc-internal-format msgid "User operator procedure '%s' at %L cannot be assumed character length" msgstr "" -#: fortran/resolve.c:14790 +#: fortran/resolve.c:14792 #, gcc-internal-format, gfc-internal-format msgid "User operator procedure '%s' at %L must have at least one argument" msgstr "" -#: fortran/resolve.c:14804 +#: fortran/resolve.c:14806 #, gcc-internal-format, gfc-internal-format msgid "First argument of operator interface at %L cannot be optional" msgstr "" -#: fortran/resolve.c:14822 +#: fortran/resolve.c:14824 #, gcc-internal-format, gfc-internal-format msgid "Second argument of operator interface at %L cannot be optional" msgstr "" -#: fortran/resolve.c:14829 +#: fortran/resolve.c:14831 #, gcc-internal-format, gfc-internal-format msgid "Operator interface at %L must have, at most, two arguments" msgstr "" -#: fortran/resolve.c:14905 +#: fortran/resolve.c:14907 #, gcc-internal-format, gfc-internal-format msgid "Contained procedure '%s' at %L of a PURE procedure must also be PURE" msgstr "" @@ -45400,13 +45321,11 @@ msgstr "ошибка запиÑи в %s: %m" #: fortran/scanner.c:341 #, fuzzy, gcc-internal-format, gfc-internal-format -#| msgid "ignoring nonexistent directory \"%s\"\n" msgid "Nonexistent include directory \"%s\"" msgstr "неÑущеÑтвующий каталог \"%s\" проигнорирован\n" #: fortran/scanner.c:347 #, fuzzy, gcc-internal-format, gfc-internal-format -#| msgid "%qD is not a type" msgid "\"%s\" is not a directory" msgstr "%qD не ÑвлÑетÑÑ Ñ‚Ð¸Ð¿Ð¾Ð¼" @@ -45651,338 +45570,338 @@ msgstr "" msgid "Character '%s' in string at %L cannot be converted into character kind %d" msgstr "" -#: fortran/symbol.c:134 +#: fortran/symbol.c:123 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Duplicate IMPLICIT NONE statement at %C" msgstr "Ðеподдерживаемый VXT-оператор в %0" -#: fortran/symbol.c:174 +#: fortran/symbol.c:163 #, gcc-internal-format, gfc-internal-format msgid "Letter '%c' already set in IMPLICIT statement at %C" msgstr "" -#: fortran/symbol.c:196 +#: fortran/symbol.c:185 #, gcc-internal-format, gfc-internal-format msgid "Cannot specify IMPLICIT at %C after IMPLICIT NONE" msgstr "" -#: fortran/symbol.c:206 +#: fortran/symbol.c:195 #, gcc-internal-format, gfc-internal-format msgid "Letter %c already has an IMPLICIT type at %C" msgstr "" -#: fortran/symbol.c:262 +#: fortran/symbol.c:251 #, gcc-internal-format, gfc-internal-format msgid "Symbol '%s' at %L has no IMPLICIT type" msgstr "" #. BIND(C) variables should not be implicitly declared. -#: fortran/symbol.c:279 +#: fortran/symbol.c:268 #, gcc-internal-format, gfc-internal-format msgid "Implicitly declared BIND(C) variable '%s' at %L may not be C interoperable" msgstr "" #. Dummy args to a BIND(C) routine may not be interoperable if #. they are implicitly typed. -#: fortran/symbol.c:294 +#: fortran/symbol.c:283 #, gcc-internal-format, gfc-internal-format msgid "Implicitly declared variable '%s' at %L may not be C interoperable but it is a dummy argument to the BIND(C) procedure '%s' at %L" msgstr "" -#: fortran/symbol.c:335 +#: fortran/symbol.c:324 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Function result '%s' at %L has no IMPLICIT type" msgstr "%Jфинальное поле '%D', возможно, не было инициализировано" -#: fortran/symbol.c:424 +#: fortran/symbol.c:413 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "%s attribute not allowed in BLOCK DATA program unit at %L" msgstr "Оператор в %0 некорректен в программной единице BLOCK DATA в %1" -#: fortran/symbol.c:448 +#: fortran/symbol.c:437 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Namelist group name at %L cannot have the SAVE attribute" msgstr "Компонент в %C должен иметь атрибут POINTER" -#: fortran/symbol.c:482 +#: fortran/symbol.c:471 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Procedure pointer at %C" msgstr "ÐедопуÑтимое чиÑло в операторе FORMAT в %0" -#: fortran/symbol.c:644 +#: fortran/symbol.c:633 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "%s attribute applied to %s %s at %L" msgstr "атрибут %qs допуÑтим только Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ñ…" -#: fortran/symbol.c:651 +#: fortran/symbol.c:640 #, gcc-internal-format, gfc-internal-format msgid "BIND(C) applied to %s %s at %L" msgstr "" -#: fortran/symbol.c:762 fortran/symbol.c:1485 +#: fortran/symbol.c:751 fortran/symbol.c:1474 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "%s attribute conflicts with %s attribute at %L" msgstr "атрибут %qs допуÑтим только Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ñ…" -#: fortran/symbol.c:765 +#: fortran/symbol.c:754 #, gcc-internal-format, gfc-internal-format msgid "%s attribute conflicts with %s attribute in '%s' at %L" msgstr "" -#: fortran/symbol.c:773 +#: fortran/symbol.c:762 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "%s attribute with %s attribute at %L" msgstr "атрибут %qs допуÑтим только Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ñ…" -#: fortran/symbol.c:779 +#: fortran/symbol.c:768 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "%s attribute with %s attribute in '%s' at %L" msgstr "атрибут %qs допуÑтим только Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ñ…" -#: fortran/symbol.c:823 +#: fortran/symbol.c:812 #, gcc-internal-format, gfc-internal-format msgid "Cannot change attributes of USE-associated symbol at %L" msgstr "" -#: fortran/symbol.c:826 +#: fortran/symbol.c:815 #, gcc-internal-format, gfc-internal-format msgid "Cannot change attributes of USE-associated symbol %s at %L" msgstr "" -#: fortran/symbol.c:842 +#: fortran/symbol.c:831 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Duplicate %s attribute specified at %L" msgstr "%Jinline Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ %qD Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¾Ð¼ noinline" -#: fortran/symbol.c:884 +#: fortran/symbol.c:873 #, gcc-internal-format, gfc-internal-format msgid "ALLOCATABLE specified outside of INTERFACE body at %L" msgstr "" -#: fortran/symbol.c:910 +#: fortran/symbol.c:899 #, gcc-internal-format, gfc-internal-format msgid "CODIMENSION specified for '%s' outside its INTERFACE body at %L" msgstr "" -#: fortran/symbol.c:936 +#: fortran/symbol.c:925 #, gcc-internal-format, gfc-internal-format msgid "DIMENSION specified for '%s' outside its INTERFACE body at %L" msgstr "" -#: fortran/symbol.c:1066 +#: fortran/symbol.c:1055 #, gcc-internal-format, gfc-internal-format msgid "Cray Pointee at %L appears in multiple pointer() statements" msgstr "" -#: fortran/symbol.c:1085 +#: fortran/symbol.c:1074 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Duplicate PROTECTED attribute specified at %L" msgstr "%Jinline Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ %qD Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¾Ð¼ noinline" -#: fortran/symbol.c:1119 +#: fortran/symbol.c:1108 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "SAVE attribute at %L cannot be specified in a PURE procedure" msgstr "оператор SAVE или атрибут в %1 неÑовмеÑтим Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð¾Ð¼ SAVE или атрибутом в %0" -#: fortran/symbol.c:1130 +#: fortran/symbol.c:1119 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Duplicate SAVE attribute specified at %L" msgstr "%Jinline Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ %qD Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¾Ð¼ noinline" -#: fortran/symbol.c:1151 +#: fortran/symbol.c:1140 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Duplicate VALUE attribute specified at %L" msgstr "%Jinline Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ %qD Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¾Ð¼ noinline" -#: fortran/symbol.c:1171 +#: fortran/symbol.c:1160 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Duplicate VOLATILE attribute specified at %L" msgstr "%Jinline Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ %qD Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¾Ð¼ noinline" -#: fortran/symbol.c:1190 +#: fortran/symbol.c:1179 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Duplicate ASYNCHRONOUS attribute specified at %L" msgstr "%Jinline Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ %qD Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¾Ð¼ noinline" -#: fortran/symbol.c:1481 +#: fortran/symbol.c:1470 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "%s attribute of '%s' conflicts with %s attribute at %L" msgstr "атрибут %qs допуÑтим только Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ñ…" -#: fortran/symbol.c:1515 +#: fortran/symbol.c:1504 #, gcc-internal-format, gfc-internal-format msgid "%s procedure at %L is already declared as %s procedure" msgstr "" -#: fortran/symbol.c:1550 +#: fortran/symbol.c:1539 #, gcc-internal-format, gfc-internal-format msgid "INTENT (%s) conflicts with INTENT(%s) at %L" msgstr "" -#: fortran/symbol.c:1574 +#: fortran/symbol.c:1563 #, gcc-internal-format, gfc-internal-format msgid "ACCESS specification at %L was already specified" msgstr "" -#: fortran/symbol.c:1591 +#: fortran/symbol.c:1580 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Duplicate BIND attribute specified at %L" msgstr "%Jinline Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ %qD Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¾Ð¼ noinline" -#: fortran/symbol.c:1598 +#: fortran/symbol.c:1587 #, gcc-internal-format, gfc-internal-format msgid "BIND(C) at %L" msgstr "" -#: fortran/symbol.c:1615 +#: fortran/symbol.c:1604 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Duplicate EXTENDS attribute specified at %L" msgstr "%Jinline Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ %qD Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¾Ð¼ noinline" -#: fortran/symbol.c:1619 +#: fortran/symbol.c:1608 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "EXTENDS at %L" msgstr "Ðеподдерживаемый VXT-оператор в %0" -#: fortran/symbol.c:1641 +#: fortran/symbol.c:1630 #, gcc-internal-format, gfc-internal-format msgid "Symbol '%s' at %L already has an explicit interface" msgstr "" -#: fortran/symbol.c:1648 +#: fortran/symbol.c:1637 #, gcc-internal-format, gfc-internal-format msgid "'%s' at %L has attributes specified outside its INTERFACE body" msgstr "" -#: fortran/symbol.c:1682 +#: fortran/symbol.c:1671 #, gcc-internal-format, gfc-internal-format msgid "Symbol '%s' at %L conflicts with symbol from module '%s', use-associated at %L" msgstr "" -#: fortran/symbol.c:1686 +#: fortran/symbol.c:1675 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Symbol '%s' at %L already has basic type of %s" msgstr "Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ '%s' в %C уже имеет тип %s" -#: fortran/symbol.c:1693 +#: fortran/symbol.c:1682 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Procedure '%s' at %L may not have basic type of %s" msgstr "%Jфинальное поле %qD, возможно, не было инициализировано" -#: fortran/symbol.c:1705 +#: fortran/symbol.c:1694 #, gcc-internal-format, gfc-internal-format msgid "Symbol '%s' at %L cannot have a type" msgstr "" -#: fortran/symbol.c:1874 +#: fortran/symbol.c:1863 #, gcc-internal-format, gfc-internal-format msgid "Component '%s' at %C already declared at %L" msgstr "" -#: fortran/symbol.c:1885 +#: fortran/symbol.c:1874 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Component '%s' at %C already in the parent type at %L" msgstr "Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ '%s' в %C уже имеет тип %s" -#: fortran/symbol.c:1970 +#: fortran/symbol.c:1959 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Symbol '%s' at %C is ambiguous" msgstr "иÑпользование `%D' неоднозначно" -#: fortran/symbol.c:2002 +#: fortran/symbol.c:1991 #, gcc-internal-format, gfc-internal-format msgid "Derived type '%s' at %C is being used before it is defined" msgstr "" -#: fortran/symbol.c:2040 +#: fortran/symbol.c:2029 #, gcc-internal-format, gfc-internal-format msgid "Component '%s' at %C is a PRIVATE component of '%s'" msgstr "" -#: fortran/symbol.c:2058 +#: fortran/symbol.c:2047 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "'%s' at %C is not a member of the '%s' structure" msgstr "`%D' не ÑвлÑетÑÑ Ñлементом типа `%T'" -#: fortran/symbol.c:2196 +#: fortran/symbol.c:2186 #, gcc-internal-format, gfc-internal-format msgid "Duplicate statement label %d at %L and %L" msgstr "" -#: fortran/symbol.c:2207 +#: fortran/symbol.c:2197 #, gcc-internal-format, gfc-internal-format msgid "Label %d at %C already referenced as branch target" msgstr "" -#: fortran/symbol.c:2217 +#: fortran/symbol.c:2207 #, gcc-internal-format, gfc-internal-format msgid "Label %d at %C already referenced as a format label" msgstr "" -#: fortran/symbol.c:2223 +#: fortran/symbol.c:2213 #, gcc-internal-format, gfc-internal-format msgid "DO termination statement which is not END DO or CONTINUE with label %d at %C" msgstr "" -#: fortran/symbol.c:2265 +#: fortran/symbol.c:2255 #, gcc-internal-format, gfc-internal-format msgid "Label %d at %C previously used as a FORMAT label" msgstr "" -#: fortran/symbol.c:2274 +#: fortran/symbol.c:2264 #, gcc-internal-format, gfc-internal-format msgid "Label %d at %C previously used as branch target" msgstr "" -#: fortran/symbol.c:2280 +#: fortran/symbol.c:2270 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Shared DO termination label %d at %C" msgstr "Ð˜Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¿ÑƒÑтого общего блока в %0" -#: fortran/symbol.c:2600 +#: fortran/symbol.c:2590 #, gcc-internal-format, gfc-internal-format msgid "Name '%s' at %C is an ambiguous reference to '%s' from module '%s'" msgstr "" -#: fortran/symbol.c:2603 +#: fortran/symbol.c:2593 #, gcc-internal-format, gfc-internal-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:2788 +#: fortran/symbol.c:2808 #, gcc-internal-format, gfc-internal-format msgid "Symbol '%s' at %C has already been host associated" msgstr "" -#: fortran/symbol.c:3665 +#: fortran/symbol.c:3793 #, gcc-internal-format, gfc-internal-format msgid "Derived type '%s' declared at %L must have the BIND attribute to be C interoperable" msgstr "" -#: fortran/symbol.c:3683 +#: fortran/symbol.c:3811 #, gcc-internal-format, gfc-internal-format msgid "Derived type '%s' with BIND(C) attribute at %L is empty, and may be inaccessible by the C companion processor" msgstr "" -#: fortran/symbol.c:3704 +#: fortran/symbol.c:3832 #, gcc-internal-format, gfc-internal-format msgid "Component '%s' at %L cannot have the POINTER attribute because it is a member of the BIND(C) derived type '%s' at %L" msgstr "" -#: fortran/symbol.c:3714 +#: fortran/symbol.c:3842 #, gcc-internal-format, gfc-internal-format msgid "Procedure pointer component '%s' at %L cannot be a member of the BIND(C) derived type '%s' at %L" msgstr "" -#: fortran/symbol.c:3725 +#: fortran/symbol.c:3853 #, gcc-internal-format, gfc-internal-format msgid "Component '%s' at %L cannot have the ALLOCATABLE attribute because it is a member of the BIND(C) derived type '%s' at %L" msgstr "" #. If the derived type is bind(c), all fields must be #. interop. -#: fortran/symbol.c:3764 +#: fortran/symbol.c:3892 #, gcc-internal-format, gfc-internal-format msgid "Component '%s' in derived type '%s' at %L may not be C interoperable, even though derived type '%s' is BIND(C)" msgstr "" @@ -45990,22 +45909,22 @@ msgstr "" #. If derived type is param to bind(c) routine, or to one #. of the iso_c_binding procs, it must be interoperable, so #. all fields must interop too. -#: fortran/symbol.c:3773 +#: fortran/symbol.c:3901 #, gcc-internal-format, gfc-internal-format msgid "Component '%s' in derived type '%s' at %L may not be C interoperable" msgstr "" -#: fortran/symbol.c:3787 +#: fortran/symbol.c:3915 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Derived type '%s' at %L cannot be declared with both PRIVATE and BIND(C) attributes" msgstr "отмена декларации %qD в проÑтранÑтве имён %qD" -#: fortran/symbol.c:3795 +#: fortran/symbol.c:3923 #, gcc-internal-format, gfc-internal-format msgid "Derived type '%s' at %L cannot have the SEQUENCE attribute because it is BIND(C)" msgstr "" -#: fortran/symbol.c:4688 fortran/symbol.c:4694 +#: fortran/symbol.c:4816 fortran/symbol.c:4822 #, gcc-internal-format, gfc-internal-format msgid "Symbol '%s' is used before it is typed at %L" msgstr "" @@ -46116,57 +46035,57 @@ msgstr "%Jфинальное поле '%D', возможно, не было ин msgid "intrinsic variable which isn't a procedure" msgstr "" -#: fortran/trans-decl.c:3556 fortran/trans-decl.c:5433 +#: fortran/trans-decl.c:3556 fortran/trans-decl.c:5435 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Return value of function '%s' at %L not set" msgstr "%JвнутреннÑÑ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ `%D' декларирована как не функциÑ" -#: fortran/trans-decl.c:3883 +#: fortran/trans-decl.c:3885 #, fuzzy, gcc-internal-format msgid "Deferred type parameter not yet supported" msgstr "\"трамплины\" не поддерживаютÑÑ" -#: fortran/trans-decl.c:4090 +#: fortran/trans-decl.c:4092 #, gcc-internal-format, gfc-internal-format msgid "backend decl for module variable %s already exists" msgstr "" -#: fortran/trans-decl.c:4614 +#: fortran/trans-decl.c:4616 #, gcc-internal-format, gfc-internal-format msgid "Dummy argument '%s' at %L was declared INTENT(OUT) but was not set" msgstr "" -#: fortran/trans-decl.c:4618 +#: fortran/trans-decl.c:4620 #, gcc-internal-format, gfc-internal-format msgid "Derived-type dummy argument '%s' at %L was declared INTENT(OUT) but was not set and does not have a default initializer" msgstr "" -#: fortran/trans-decl.c:4627 fortran/trans-decl.c:4742 +#: fortran/trans-decl.c:4629 fortran/trans-decl.c:4744 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Unused dummy argument '%s' at %L" msgstr "Слишком много аргументов %s в %L" -#: fortran/trans-decl.c:4641 +#: fortran/trans-decl.c:4643 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Unused module variable '%s' which has been explicitly imported at %L" msgstr "instance-Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ %qs декларирована как %s" -#: fortran/trans-decl.c:4649 +#: fortran/trans-decl.c:4651 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Unused variable '%s' declared at %L" msgstr "instance-Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ %qs декларирована как %s" -#: fortran/trans-decl.c:4697 +#: fortran/trans-decl.c:4699 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Unused parameter '%s' declared at %L" msgstr "параметр %qD объÑвлен void" -#: fortran/trans-decl.c:4700 +#: fortran/trans-decl.c:4702 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Unused parameter '%s' which has been explicitly imported at %L" msgstr "параметр %qD объÑвлен void" -#: fortran/trans-decl.c:4715 +#: fortran/trans-decl.c:4717 #, fuzzy, gcc-internal-format, gfc-internal-format msgid "Return value '%s' of function '%s' declared at %L not set" msgstr "%JвнутреннÑÑ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ `%D' декларирована как не функциÑ" @@ -46202,12 +46121,12 @@ msgstr "%s: определение функции %qs не преобразовРmsgid "'dim' argument of %s intrinsic at %L is not a valid dimension index" msgstr "аргумент `asm' - не конÑÑ‚Ð°Ð½Ñ‚Ð½Ð°Ñ Ñтрока" -#: fortran/trans-io.c:2032 +#: fortran/trans-io.c:2034 #, gcc-internal-format, gfc-internal-format msgid "Derived type '%s' at %L has PRIVATE components" msgstr "" -#: fortran/trans-io.c:2183 +#: fortran/trans-io.c:2185 #, gcc-internal-format, gfc-internal-format msgid "Bad IO basetype (%d)" msgstr "Ðекорректный базовый тип ввода-вывода (%d)" @@ -47883,6 +47802,9 @@ msgstr "%HÑоздаётÑÑ Ñелектор Ð´Ð»Ñ Ð½ÐµÑущеÑтвующеР#~ msgid "%qD is thread-local and so cannot be dynamically initialized" #~ msgstr "%qD ÑвлÑетÑÑ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾-поточным, поÑтому не может быть динамичеÑки инициализирован" +#~ msgid "%<%T::%D%> is not a valid declarator" +#~ msgstr "%<%T::%D%> не ÑвлÑетÑÑ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ñ‹Ð¼ декларатором" + #~ msgid "default argument for %q#D has type %qT" #~ msgstr "аргумент по умолчанию Ð´Ð»Ñ %q#D имеет тип %qT" diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7bf618df1af..e0c5efcba49 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,110 @@ +2013-07-02 Sriraman Tallam <tmsriram@google.com> + + * gcc.target/i386/avx-inline.c: New test. + +2013-07-02 Maciej W. Rozycki <macro@codesourcery.com> + + * gcc.target/mips/call-1.c: Accept JALRS and JALR. + * gcc.target/mips/call-2.c: Likewise. + * gcc.target/mips/call-3.c: Likewise. + * gcc.target/mips/lazy-binding-1.c: Likewise. + +2013-07-02 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/57741 + * gcc.dg/vect/pr57741-1.c: New test. + * gcc.dg/vect/pr57741-2.c: New test. + * gcc.dg/vect/pr57741-3.c: New test. + +2013-07-02 Ian Bolton <ian.bolton@arm.com> + + * gcc.target/config/aarch64/insv_1.c: Update to show it doesn't work + on big endian. + * gcc.target/config/aarch64/insv_2.c: New test for big endian. + * lib/target-supports.exp: Define aarch64_little_endian. + +2013-07-02 Ian Bolton <ian.bolton@arm.com> + + * gcc.target/aarch64/abs_1.c: New test. + +2013-07-02 Ian Bolton <ian.bolton@arm.com> + + * gcc.target/aarch64/bfxil_1.c: New test. + * gcc.target/aarch64/bfxil_2.c: Likewise. + +2013-07-01 Balaji V. Iyer <balaji.v.iyer@intel.com> + + PR c/57766 + * c-c++-common/cilk-plus/AN/sec_implicit_ex.c (NUMBER): Changed + array sizes from 100 to 20. + +2013-07-01 Dominique d'Humieres <dominiq@lps.ens.fr> + + PR fortran/54788 + * gfortran.dg/pointer_remapping_8.f90: New. + +2013-06-28 Ed Smith-Rowland <3dw4rd@verizon.net> + + * g++.dg/cpp0x/udlit-nospace-neg.C: Adjust. + * g++.dg/cpp1y/udlit-enc-prefix-neg.C: New. + * g++.dg/cpp1y/udlit-userdef-string.C: New. + * g++.dg/cpp1y/complex_literals.h: New. + +2013-06-28 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/57645 + * g++.dg/cpp0x/noexcept21.C: New. + +2013-06-28 Jakub Jelinek <jakub@redhat.com> + + PR target/57736 + * gcc.target/i386/pr57736.c: New test. + +2013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com> + + * c-c++-common/cilk-plus/AN/decl-ptr-colon.c (main): Made this testcase + c specific. + * c-c++-common/cilk-plus/AN/decl-ptr-colon.c (main): Changed dg-error + strings to match the fixed error messages. + * c-c++-common/cilk-plus/AN/misc.c (main): Likewise. + * c-c++-common/cilk-plus/AN/rank_mismatch.c (main): Added a new error + message check. + +2013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com> + + PR target/57744 + * gcc.target/powerpc/pr57744.c: New test to make sure lqarx and + stqcx. get even registers. + +2013-06-28 Marc Glisse <marc.glisse@inria.fr> + + PR c++/57509 + * g++.dg/ext/pr57509.C: Pass vectors by reference to avoid warnings. + +2013-06-28 Kirill Yukhin <kirill.yukhin@intel.com> + + * gcc.target/i386/bmi-1.c: Extend with new instrinsic. + Fix scan patterns. + * gcc.target/i386/bmi-1.c: Ditto. + * gcc.target/i386/bmi-bextr-4.c: New. + * gcc.target/i386/bmi-bextr-5.c: Ditto. + +2013-06-28 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/57682 + * g++.dg/cpp0x/initlist73.C: New. + +2013-06-27 Meador Inge <meadori@codesourcery.com> + + * gcc.dg/atomic-flag.c: Add dg-require-effective-target sync_*. + * g++.dg/simulate-thread/atomics-2.C: Likewise. + * g++.dg/simulate-thread/atomics-1.C: Likewise. + +2013-06-27 Marc Glisse <marc.glisse@inria.fr> + + PR c++/57509 + * g++.dg/ext/pr57509.C: New file. + 2013-06-27 Jakub Jelinek <jakub@redhat.com> PR target/57623 @@ -136,7 +243,7 @@ * g++.dg/cilk-plus/AN/postincr_test.cc: Likewise. * g++.dg/cilk-plus/cilk-plus.exp: New script. * gcc/testsuite/g++.dg/dg.exp: Included Cilk Plus C++ tests in the list. - + 2013-06-21 Joseph Myers <joseph@codesourcery.com> PR other/53317 @@ -426,7 +533,7 @@ PR c/57563 * c-c++-common/cilk-plus/AN/builtin_fn_mutating.c (main): Fixed a bug - in how we check __sec_reduce_mutating function's result. + in how we check __sec_reduce_mutating function's result. 2013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com> Pat Haugen <pthaugen@us.ibm.com> @@ -794,7 +901,7 @@ * c-c++-common/cilk-plus/AN/if_test_errors.c (main): New testcase. * c-c++-common/cilk-plus/AN/rank_mismatch.c: Added a '-w' option to dg-option and an header comment. - + 2013-06-03 Paolo Carlini <paolo.carlini@oracle.com> PR c++/57419 diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/decl-ptr-colon.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/decl-ptr-colon.c index 68c88590da2..4b54f4d06f7 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/decl-ptr-colon.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/decl-ptr-colon.c @@ -1,3 +1,4 @@ +/* { dg-do compile { target c } } */ /* { dg-options "-fcilkplus" } */ int main(void) diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/dimensionless-arrays.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/dimensionless-arrays.c index 69aaa523727..690e89a27d7 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/dimensionless-arrays.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/dimensionless-arrays.c @@ -5,6 +5,6 @@ extern int *b; void foo() { - a[:] = 5; // { dg-error "start-index and length fields necessary for using array notations in dimensionless arrays" } - b[:] = 5; // { dg-error "start-index and length fields necessary for using array notations in pointers" } + a[:] = 5; // { dg-error "start-index and length fields necessary for using array notation" } + b[:] = 5; // { dg-error "start-index and length fields necessary for using" } } diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/fn_ptr.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/fn_ptr.c index 024a1589994..fa6d9003a00 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/fn_ptr.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/fn_ptr.c @@ -1,3 +1,4 @@ +/* { dg-do compile } */ /* { dg-options "-fcilkplus" } */ typedef int (*foo)(int); @@ -10,11 +11,11 @@ int main(void) foo ***func_array_ptr; int argc = 5; - array[:] = func_array[:](10); /* { dg-error "array notations cannot be used with function pointer arrays" } */ - func_array[0:5](10); /* { dg-error "array notations cannot be used with function pointer arrays" } */ - func_array2[0:5][:](10); /* { dg-error "array notations cannot be used with function pointer arrays" } */ - array2[0:5][:] = func_array2[0:5][:](10); /* { dg-error "array notations cannot be used with function pointer arrays" } */ - func_array_ptr[0:5][0:4][0:argc:2](argc); /* { dg-error "array notations cannot be used with function pointer arrays" } */ + array[:] = func_array[:](10); + func_array[0:5](10); + func_array2[0:5][:](10); + array2[0:5][:] = func_array2[0:5][:](10); + func_array_ptr[0:5][0:4][0:argc:2](argc); return 0; } diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/misc.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/misc.c index 14421d94f0c..814786b9961 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/misc.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/misc.c @@ -6,7 +6,7 @@ int main (void) int array[10], array2[10][10]; int x, ii, jj ; - switch (array[:]) { /* { dg-error "array notations cannot be used as a condition for switch statement" } */ + switch (array[:]) { /* { dg-error "cannot be used as a condition for switch statement" } */ case 1: x = 5; break; @@ -17,7 +17,7 @@ int main (void) x = 9; } - switch (array2[:][:]) { /* { dg-error "array notations cannot be used as a condition for switch statement" } */ + switch (array2[:][:]) { /* { dg-error "cannot be used as a condition for switch statement" } */ case 1: x = 5; break; @@ -28,7 +28,7 @@ int main (void) x = 9; } - switch (array[:] + x) { /* { dg-error "array notations cannot be used as a condition for switch statement" } */ + switch (array[:] + x) { /* { dg-error "cannot be used as a condition for switch statement" } */ case 1: x = 5; break; @@ -39,7 +39,7 @@ int main (void) x = 9; } - switch (array2[:][1:x:4] + x) { /* { dg-error "array notations cannot be used as a condition for switch statement" } */ + switch (array2[:][1:x:4] + x) { /* { dg-error "cannot be used as a condition for switch statement" } */ case 1: x = 5; break; @@ -50,36 +50,36 @@ int main (void) x = 9; } - for (ii = 0; ii < array[:]; ii++) /* { dg-error "array notations cannot be used in a condition for a for-loop" } */ + for (ii = 0; ii < array[:]; ii++) /* { dg-error "cannot be used in a condition for a for-loop" } */ { x = 2; } - for (ii = 0; ii < array2[:][:]; ii++) /* { dg-error "array notations cannot be used in a condition for a for-loop" } */ + for (ii = 0; ii < array2[:][:]; ii++) /* { dg-error "cannot be used in a condition for a for-loop" } */ { x = 3; } - for (; array2[:][:] < 2;) /* { dg-error "array notations cannot be used in a condition for a for-loop" } */ + for (; array2[:][:] < 2;) /* { dg-error "cannot be used in a condition for a for-loop" } */ x = 4; - while (array2[:][:]) /* { dg-error "array notations cannot be used as a condition for while statement" } */ + while (array2[:][:]) /* { dg-error "cannot be used as a condition for while statement" } */ x = 3; - while (array[1:1:1]) /* { dg-error "array notations cannot be used as a condition for while statement" } */ + while (array[1:1:1]) /* { dg-error "cannot be used as a condition for while statement" } */ x = 1; - while (ii != array2[1:x:3][1:2:1]) /* { dg-error "array notations cannot be used as a condition for while statement" } */ + while (ii != array2[1:x:3][1:2:1]) /* { dg-error "cannot be used as a condition for while statement" } */ x = 2; - do { /* { dg-error "array notations cannot be used as a condition for a do-while statement" "" { target c } } */ + do { /* { dg-error "cannot be used as a condition for a do-while statement" "" { target c } } */ x = 3; - } while (ii != array2[:][:]); /* { dg-error "array notations cannot be used as a condition for a do-while statement" "" { target c++ } } */ + } while (ii != array2[:][:]); /* { dg-error "cannot be used as a condition for a do-while statement" "" { target c++ } } */ - do { /* { dg-error "array notations cannot be used as a condition for a do-while statement" "" { target c } } */ + do { /* { dg-error "cannot be used as a condition for a do-while statement" "" { target c } } */ x = 2; - } while (ii != (x + array2[:][1:x:2]) + 2); /* { dg-error "array notations cannot be used as a condition for a do-while statement" "" { target c++ } } */ + } while (ii != (x + array2[:][1:x:2]) + 2); /* { dg-error "cannot be used as a condition for a do-while statement" "" { target c++ } } */ do { x += 3; diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/rank_mismatch.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/rank_mismatch.c index b5e37ced12d..eb3c1f1d685 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/rank_mismatch.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/rank_mismatch.c @@ -10,6 +10,7 @@ int main (void) int array[10][10], array2[10]; array[:][:] = array[:]; /* { dg-error "rank mismatch between" } */ + /* { dg-error "invalid conversion" "" { target c++ } 12 } */ x = array2[:]; /* { dg-error "cannot be scalar when" } */ diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/sec_implicit_ex.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/sec_implicit_ex.c index d650d9ad2d5..419799a3b2b 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/sec_implicit_ex.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/sec_implicit_ex.c @@ -1,7 +1,7 @@ /* { dg-do run } */ /* { dg-options "-fcilkplus" } */ -#define NUMBER 100 +#define NUMBER 20 int main(void) { diff --git a/gcc/testsuite/g++.dg/cpp0x/initlist73.C b/gcc/testsuite/g++.dg/cpp0x/initlist73.C new file mode 100644 index 00000000000..de9748d8b90 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/initlist73.C @@ -0,0 +1,13 @@ +// PR c++/57682 +// { dg-do compile { target c++11 } } + +struct Class +{ + Class (int func) + try + : f { func } { } + catch ( ... ) { } + +private: + int f; +}; diff --git a/gcc/testsuite/g++.dg/cpp0x/noexcept21.C b/gcc/testsuite/g++.dg/cpp0x/noexcept21.C new file mode 100644 index 00000000000..ec88e1d3d87 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/noexcept21.C @@ -0,0 +1,87 @@ +// PR c++/57645 +// { dg-do compile { target c++11 } } + +struct Thrower +{ + ~Thrower() noexcept(false) { throw 1; } +}; + +struct ExplicitA +{ + ~ExplicitA() {} + + Thrower t; +}; + +struct ExplicitB +{ + ~ExplicitB(); + + Thrower t; +}; + +ExplicitB::~ExplicitB() {} + +struct ExplicitC +{ + ~ExplicitC() = default; + + Thrower t; +}; + +struct ExplicitD +{ + ~ExplicitD(); + + Thrower t; +}; + +ExplicitD::~ExplicitD() = default; + +struct NoThrower +{ + ~NoThrower() noexcept(true) {} +}; + +struct ExplicitE +{ + ~ExplicitE() {} + + NoThrower t; +}; + +struct ExplicitF +{ + ~ExplicitF(); + + NoThrower t; +}; + +ExplicitF::~ExplicitF() {} + +struct ExplicitG +{ + ~ExplicitG() = default; + + NoThrower t; +}; + +struct ExplicitH +{ + ~ExplicitH(); + + NoThrower t; +}; + +ExplicitH::~ExplicitH() = default; + +#define SA(X) static_assert(X, #X) + +SA( !noexcept(ExplicitA()) ); +SA( !noexcept(ExplicitB()) ); +SA( !noexcept(ExplicitC()) ); +SA( !noexcept(ExplicitD()) ); +SA( noexcept(ExplicitE()) ); +SA( noexcept(ExplicitF()) ); +SA( noexcept(ExplicitG()) ); +SA( noexcept(ExplicitH()) ); diff --git a/gcc/testsuite/g++.dg/cpp0x/udlit-nospace-neg.C b/gcc/testsuite/g++.dg/cpp0x/udlit-nospace-neg.C index 2b57637a916..f06bd8bdf02 100644 --- a/gcc/testsuite/g++.dg/cpp0x/udlit-nospace-neg.C +++ b/gcc/testsuite/g++.dg/cpp0x/udlit-nospace-neg.C @@ -1,3 +1,5 @@ // { dg-options "-std=c++0x" } -float operator ""_abc(const char*); // { dg-error "missing space between|and suffix identifier" } +float operator ""_abc(const char*); + +int operator""_def(long double); diff --git a/gcc/testsuite/g++.dg/cpp1y/complex_literals.h b/gcc/testsuite/g++.dg/cpp1y/complex_literals.h new file mode 100644 index 00000000000..ea328e39ecf --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp1y/complex_literals.h @@ -0,0 +1,12 @@ + +#include <complex> + +#pragma GCC system_header + +std::complex<float> +operator""if(long double ximag) +{ return std::complex<float>(0.0F, static_cast<float>(ximag)); } + +std::complex<float> +operator""if(unsigned long long nimag) +{ return std::complex<float>(0.0F, static_cast<float>(nimag)); } diff --git a/gcc/testsuite/g++.dg/cpp1y/udlit-enc-prefix-neg.C b/gcc/testsuite/g++.dg/cpp1y/udlit-enc-prefix-neg.C new file mode 100644 index 00000000000..149fd0d162a --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp1y/udlit-enc-prefix-neg.C @@ -0,0 +1,17 @@ +// { dg-options -std=c++1y } + +int +operator L""_Ls(unsigned long long) // { dg-error "invalid encoding prefix in literal operator" } +{ return 0; } + +int +operator u""_s16(unsigned long long) // { dg-error "invalid encoding prefix in literal operator" } +{ return 0; } + +int +operator U""_s32(unsigned long long) // { dg-error "invalid encoding prefix in literal operator" } +{ return 0; } + +int +operator u8""_u8s(unsigned long long) // { dg-error "invalid encoding prefix in literal operator" } +{ return 0; } diff --git a/gcc/testsuite/g++.dg/cpp1y/udlit-userdef-string.C b/gcc/testsuite/g++.dg/cpp1y/udlit-userdef-string.C new file mode 100644 index 00000000000..e58a66bb63f --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp1y/udlit-userdef-string.C @@ -0,0 +1,7 @@ +// { dg-options -std=c++1y } + +#include "complex_literals.h" + +auto cx = 1.1if; + +auto cn = 123if; diff --git a/gcc/testsuite/g++.dg/ext/pr57509.C b/gcc/testsuite/g++.dg/ext/pr57509.C new file mode 100644 index 00000000000..92aaadf3387 --- /dev/null +++ b/gcc/testsuite/g++.dg/ext/pr57509.C @@ -0,0 +1,16 @@ +/* { dg-do compile } */ +/* { dg-options "-std=c++11" } */ + +template <bool> struct enable_if {}; +template <> struct enable_if<true> {typedef void type;}; +template <class T> void f (T& v) { v = __builtin_shuffle (v, v); } +template <class T> void g (T const&) {} +template <class T> auto g (T const& x) -> typename enable_if<sizeof(__builtin_shuffle(x,x))!=2>::type {} +typedef int v4i __attribute__((vector_size(4*sizeof(int)))); +typedef float v4f __attribute__((vector_size(4*sizeof(float)))); +int main(){ + v4i a = {1,2,3,0}; + f(a); + v4f b = {1,2,3,0}; + g(b); +} diff --git a/gcc/testsuite/g++.dg/simulate-thread/atomics-1.C b/gcc/testsuite/g++.dg/simulate-thread/atomics-1.C index 7e0041ee382..91867ba46a0 100644 --- a/gcc/testsuite/g++.dg/simulate-thread/atomics-1.C +++ b/gcc/testsuite/g++.dg/simulate-thread/atomics-1.C @@ -1,6 +1,8 @@ /* { dg-do link } */ /* { dg-options "-std=c++0x" } */ /* { dg-final { simulate-thread } } */ +/* { dg-require-effective-target sync_char_short } */ +/* { dg-require-effective-target sync_int_long } */ /* Test that atomic int and atomic char work properly. */ diff --git a/gcc/testsuite/g++.dg/simulate-thread/atomics-2.C b/gcc/testsuite/g++.dg/simulate-thread/atomics-2.C index be3232d7087..601555bd236 100644 --- a/gcc/testsuite/g++.dg/simulate-thread/atomics-2.C +++ b/gcc/testsuite/g++.dg/simulate-thread/atomics-2.C @@ -1,6 +1,7 @@ /* { dg-do link } */ /* { dg-options "-std=c++0x" } */ /* { dg-final { simulate-thread } } */ +/* { dg-require-effective-target sync_int_long } */ using namespace std; diff --git a/gcc/testsuite/gcc.dg/atomic-flag.c b/gcc/testsuite/gcc.dg/atomic-flag.c index 1b768326188..b81cd7832af 100644 --- a/gcc/testsuite/gcc.dg/atomic-flag.c +++ b/gcc/testsuite/gcc.dg/atomic-flag.c @@ -1,5 +1,6 @@ /* Test __atomic routines for existence and execution. */ /* { dg-do run } */ +/* { dg-require-effective-target sync_char_short } */ /* Test that __atomic_test_and_set and __atomic_clear builtins execute. */ diff --git a/gcc/testsuite/gcc.dg/vect/pr57741-1.c b/gcc/testsuite/gcc.dg/vect/pr57741-1.c new file mode 100644 index 00000000000..780f870e317 --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/pr57741-1.c @@ -0,0 +1,21 @@ +/* PR tree-optimization/57741 */ +/* { dg-do compile } */ + +void +foo (float *p, float *q, float x) +{ + int i; + float f = 1.0f, g = 2.0f; + for (i = 0; i < 1024; i++) + { + *p++ = f; + f += x; + } + for (i = 0; i < 1024; i++) + { + *q++ = g; + g += 0.5f; + } +} + +/* { dg-final { cleanup-tree-dump "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/pr57741-2.c b/gcc/testsuite/gcc.dg/vect/pr57741-2.c new file mode 100644 index 00000000000..b3b5f7008b1 --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/pr57741-2.c @@ -0,0 +1,44 @@ +/* PR tree-optimization/57741 */ +/* { dg-do run } */ +/* { dg-additional-options "-ffast-math" } */ + +#include "tree-vect.h" + +extern void abort (void); + +__attribute__((noinline, noclone)) void +foo (float *p, float *q, float x) +{ + int i; + p = (float *) __builtin_assume_aligned (p, 32); + q = (float *) __builtin_assume_aligned (q, 32); + float f = 1.0f, g = 2.0f; + for (i = 0; i < 1024; i++) + { + *p++ = f; + f += x; + } + for (i = 0; i < 1024; i++) + { + *q++ = g; + g += 0.5f; + } +} + +float p[1024] __attribute__((aligned (32))) = { 17.0f }; +float q[1024] __attribute__((aligned (32))) = { 17.0f }; + +int +main () +{ + int i; + check_vect (); + foo (p, q, 1.5f); + for (i = 0; i < 1024; i++) + if (p[i] != 1.0f + i * 1.5f || q[i] != 2.0f + i * 0.5f) + abort (); + return 0; +} + +/* { dg-final { scan-tree-dump-times "vectorized 2 loop" 1 "vect" } } */ +/* { dg-final { cleanup-tree-dump "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/pr57741-3.c b/gcc/testsuite/gcc.dg/vect/pr57741-3.c new file mode 100644 index 00000000000..8c1a4f454b3 --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/pr57741-3.c @@ -0,0 +1,42 @@ +/* PR tree-optimization/57741 */ +/* { dg-do run } */ +/* { dg-additional-options "-ffast-math" } */ + +#include "tree-vect.h" + +extern void abort (void); + +float p[1024] __attribute__((aligned (32))) = { 17.0f }; +float q[1024] __attribute__((aligned (32))) = { 17.0f }; +char r[1024] __attribute__((aligned (32))) = { 1 }; + +__attribute__((noinline, noclone)) void +foo (float x) +{ + int i; + float f = 1.0f, g = 2.0f; + for (i = 0; i < 1024; i++) + { + p[i] = f; + f += x; + q[i] = g; + g += 0.5f; + r[i]++; + } +} + +int +main () +{ + int i; + check_vect (); + r[0] = 0; + foo (1.5f); + for (i = 0; i < 1024; i++) + if (p[i] != 1.0f + i * 1.5f || q[i] != 2.0f + i * 0.5f || r[i] != 1) + abort (); + return 0; +} + +/* { dg-final { scan-tree-dump-times "vectorized 1 loop" 1 "vect" } } */ +/* { dg-final { cleanup-tree-dump "vect" } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/abs_1.c b/gcc/testsuite/gcc.target/aarch64/abs_1.c new file mode 100644 index 00000000000..938bc84ed95 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/abs_1.c @@ -0,0 +1,53 @@ +/* { dg-do run } */ +/* { dg-options "-O2 -fno-inline --save-temps" } */ + +extern long long llabs (long long); +extern void abort (void); + +long long +abs64 (long long a) +{ + /* { dg-final { scan-assembler "eor\t" } } */ + /* { dg-final { scan-assembler "sub\t" } } */ + return llabs (a); +} + +long long +abs64_in_dreg (long long a) +{ + /* { dg-final { scan-assembler "abs\td\[0-9\]+, d\[0-9\]+" } } */ + register long long x asm ("d8") = a; + register long long y asm ("d9"); + asm volatile ("" : : "w" (x)); + y = llabs (x); + asm volatile ("" : : "w" (y)); + return y; +} + +int +main (void) +{ + volatile long long ll0 = 0LL, ll1 = 1LL, llm1 = -1LL; + + if (abs64 (ll0) != 0LL) + abort (); + + if (abs64 (ll1) != 1LL) + abort (); + + if (abs64 (llm1) != 1LL) + abort (); + + if (abs64_in_dreg (ll0) != 0LL) + abort (); + + if (abs64_in_dreg (ll1) != 1LL) + abort (); + + if (abs64_in_dreg (llm1) != 1LL) + abort (); + + return 0; +} + +/* { dg-final { cleanup-saved-temps } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/bfxil_1.c b/gcc/testsuite/gcc.target/aarch64/bfxil_1.c new file mode 100644 index 00000000000..b16834786a1 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/bfxil_1.c @@ -0,0 +1,40 @@ +/* { dg-do run { target aarch64*-*-* } } */ +/* { dg-options "-O2 --save-temps -fno-inline" } */ +/* { dg-require-effective-target aarch64_little_endian } */ + +extern void abort (void); + +typedef struct bitfield +{ + unsigned short eight1: 8; + unsigned short four: 4; + unsigned short eight2: 8; + unsigned short seven: 7; + unsigned int sixteen: 16; +} bitfield; + +bitfield +bfxil (bitfield a) +{ + /* { dg-final { scan-assembler "bfxil\tx\[0-9\]+, x\[0-9\]+, 16, 8" } } */ + a.eight1 = a.eight2; + return a; +} + +int +main (void) +{ + static bitfield a; + bitfield b; + + a.eight1 = 9; + a.eight2 = 57; + b = bfxil (a); + + if (b.eight1 != a.eight2) + abort (); + + return 0; +} + +/* { dg-final { cleanup-saved-temps } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/bfxil_2.c b/gcc/testsuite/gcc.target/aarch64/bfxil_2.c new file mode 100644 index 00000000000..4e4d610c26c --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/bfxil_2.c @@ -0,0 +1,42 @@ +/* { dg-do run { target aarch64*-*-* } } */ +/* { dg-options "-O2 --save-temps -fno-inline" } */ +/* { dg-require-effective-target aarch64_big_endian } */ + +extern void abort (void); + +typedef struct bitfield +{ + unsigned short eight1: 8; + unsigned short four: 4; + unsigned short eight2: 8; + unsigned short seven: 7; + unsigned int sixteen: 16; + unsigned short eight3: 8; + unsigned short eight4: 8; +} bitfield; + +bitfield +bfxil (bitfield a) +{ + /* { dg-final { scan-assembler "bfxil\tx\[0-9\]+, x\[0-9\]+, 40, 8" } } */ + a.eight4 = a.eight2; + return a; +} + +int +main (void) +{ + static bitfield a; + bitfield b; + + a.eight4 = 9; + a.eight2 = 57; + b = bfxil (a); + + if (b.eight4 != a.eight2) + abort (); + + return 0; +} + +/* { dg-final { cleanup-saved-temps } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/insv_1.c b/gcc/testsuite/gcc.target/aarch64/insv_1.c index bc8928d7347..6e3c7f0e9c4 100644 --- a/gcc/testsuite/gcc.target/aarch64/insv_1.c +++ b/gcc/testsuite/gcc.target/aarch64/insv_1.c @@ -1,5 +1,6 @@ -/* { dg-do run } */ +/* { dg-do run { target aarch64*-*-* } } */ /* { dg-options "-O2 --save-temps -fno-inline" } */ +/* { dg-require-effective-target aarch64_little_endian } */ extern void abort (void); diff --git a/gcc/testsuite/gcc.target/aarch64/insv_2.c b/gcc/testsuite/gcc.target/aarch64/insv_2.c new file mode 100644 index 00000000000..a7691a32f2b --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/insv_2.c @@ -0,0 +1,85 @@ +/* { dg-do run { target aarch64*-*-* } } */ +/* { dg-options "-O2 --save-temps -fno-inline" } */ +/* { dg-require-effective-target aarch64_big_endian } */ + +extern void abort (void); + +typedef struct bitfield +{ + unsigned short eight: 8; + unsigned short four: 4; + unsigned short five: 5; + unsigned short seven: 7; + unsigned int sixteen: 16; +} bitfield; + +bitfield +bfi1 (bitfield a) +{ + /* { dg-final { scan-assembler "bfi\tx\[0-9\]+, x\[0-9\]+, 56, 8" } } */ + a.eight = 3; + return a; +} + +bitfield +bfi2 (bitfield a) +{ + /* { dg-final { scan-assembler "bfi\tx\[0-9\]+, x\[0-9\]+, 43, 5" } } */ + a.five = 7; + return a; +} + +bitfield +movk (bitfield a) +{ + /* { dg-final { scan-assembler "movk\tx\[0-9\]+, 0x1d6b, lsl 16" } } */ + a.sixteen = 7531; + return a; +} + +bitfield +set1 (bitfield a) +{ + /* { dg-final { scan-assembler "orr\tx\[0-9\]+, x\[0-9\]+, 272678883688448" } } */ + a.five = 0x1f; + return a; +} + +bitfield +set0 (bitfield a) +{ + /* { dg-final { scan-assembler "and\tx\[0-9\]+, x\[0-9\]+, -272678883688449" } } */ + a.five = 0; + return a; +} + + +int +main (int argc, char** argv) +{ + static bitfield a; + bitfield b = bfi1 (a); + bitfield c = bfi2 (b); + bitfield d = movk (c); + + if (d.eight != 3) + abort (); + + if (d.five != 7) + abort (); + + if (d.sixteen != 7531) + abort (); + + d = set1 (d); + if (d.five != 0x1f) + abort (); + + d = set0 (d); + if (d.five != 0) + abort (); + + return 0; +} + +/* { dg-final { cleanup-saved-temps } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx-inline.c b/gcc/testsuite/gcc.target/i386/avx-inline.c new file mode 100644 index 00000000000..05df95e0524 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/avx-inline.c @@ -0,0 +1,20 @@ +/* Check if avx target functions can inline lower target functions. */ +/* { dg-do compile } */ +/* { dg-options "-O0 -mno-avx -mno-sse3" } */ + +__attribute__((always_inline,target("sse3"))) +inline int callee () +{ + return 0; +} + +__attribute__((target("avx"))) +inline int caller () +{ + return callee (); +} + +int main () +{ + return caller (); +} diff --git a/gcc/testsuite/gcc.target/i386/bmi-1.c b/gcc/testsuite/gcc.target/i386/bmi-1.c index dc964ba3d92..a05cb275adc 100644 --- a/gcc/testsuite/gcc.target/i386/bmi-1.c +++ b/gcc/testsuite/gcc.target/i386/bmi-1.c @@ -1,11 +1,11 @@ /* { dg-do compile } */ /* { dg-options "-O2 -mbmi " } */ -/* { dg-final { scan-assembler "andn\[^\\n]*(%|)eax" } } */ -/* { dg-final { scan-assembler "bextr\[^\\n]*(%|)eax" } } */ -/* { dg-final { scan-assembler "blsi\[^\\n]*(%|)eax" } } */ -/* { dg-final { scan-assembler "blsmsk\[^\\n]*(%|)eax" } } */ -/* { dg-final { scan-assembler "blsr\[^\\n]*(%|)eax" } } */ -/* { dg-final { scan-assembler "tzcntl\[^\\n]*(%|)eax" } } */ +/* { dg-final { scan-assembler "andn\[^\\n]*eax" } } */ +/* { dg-final { scan-assembler-times "bextr\[ \\t]+\[^\\n]*eax" 2 } } */ +/* { dg-final { scan-assembler "blsi\[^\\n]*eax" } } */ +/* { dg-final { scan-assembler "blsmsk\[^\\n]*eax" } } */ +/* { dg-final { scan-assembler "blsr\[^\\n]*eax" } } */ +/* { dg-final { scan-assembler "tzcntl\[^\\n]*eax" } } */ #include <x86intrin.h> @@ -22,6 +22,14 @@ func_bextr32 (unsigned int X, unsigned int Y) } unsigned int +func_bextr32_3args (unsigned int X, + unsigned int Y, + unsigned int Z) +{ + return _bextr_u32(X, Y, Z); +} + +unsigned int func_blsi32 (unsigned int X) { return __blsi_u32(X); diff --git a/gcc/testsuite/gcc.target/i386/bmi-2.c b/gcc/testsuite/gcc.target/i386/bmi-2.c index 56f73876d0c..68d06a20540 100644 --- a/gcc/testsuite/gcc.target/i386/bmi-2.c +++ b/gcc/testsuite/gcc.target/i386/bmi-2.c @@ -1,11 +1,11 @@ /* { dg-do compile { target { ! { ia32 } } } } */ /* { dg-options "-O2 -mbmi " } */ -/* { dg-final { scan-assembler "andn\[^\\n]*(%|)rax" } } */ -/* { dg-final { scan-assembler "bextr\[^\\n]*(%|)rax" } } */ -/* { dg-final { scan-assembler "blsi\[^\\n]*(%|)rax" } } */ -/* { dg-final { scan-assembler "blsmsk\[^\\n]*(%|)rax" } } */ -/* { dg-final { scan-assembler "blsr\[^\\n]*(%|)rax" } } */ -/* { dg-final { scan-assembler "tzcntq\[^\\n]*(%|)rax" } } */ +/* { dg-final { scan-assembler "andn\[^\\n]*rax" } } */ +/* { dg-final { scan-assembler-times "bextr\[ \\t]+\[^\\n]*rax" 2 } } */ +/* { dg-final { scan-assembler "blsi\[^\\n]*rax" } } */ +/* { dg-final { scan-assembler "blsmsk\[^\\n]*rax" } } */ +/* { dg-final { scan-assembler "blsr\[^\\n]*rax" } } */ +/* { dg-final { scan-assembler "tzcntq\[^\\n]*rax" } } */ #include <x86intrin.h> @@ -22,6 +22,14 @@ func_bextr64 (unsigned long long X, unsigned long long Y) } unsigned long long +func_bextr64_3args (unsigned long long X, + unsigned long long Y, + unsigned long long Z) +{ + return _bextr_u64 (X, Y, Z); +} + +unsigned long long func_blsi64 (unsigned long long X) { return __blsi_u64 (X); diff --git a/gcc/testsuite/gcc.target/i386/bmi-bextr-4.c b/gcc/testsuite/gcc.target/i386/bmi-bextr-4.c new file mode 100644 index 00000000000..2318847ae33 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/bmi-bextr-4.c @@ -0,0 +1,49 @@ +/* { dg-do run { target { bmi } } } */ +/* { dg-require-effective-target bmi } */ +/* { dg-options "-O2 -mbmi -fno-inline" } */ + +#include <x86intrin.h> + +#include "bmi-check.h" + +unsigned calc_bextr_u32 (unsigned src1, unsigned src2) +{ + unsigned res = 0; + unsigned char start = (src2 & 0xff); + unsigned char len = (int) ((src2 >> 8) & 0xff); + if (start < 32) { + unsigned i; + unsigned last = (start+len) < 32 ? start+len : 32; + + src1 >>= start; + for (i=start; i<last; ++i) { + res |= (src1 & 1) << (i-start); + src1 >>= 1; + } + } + + return res; +} + +static void +bmi_test () +{ + unsigned i; + unsigned char start, len; + unsigned src1 = 0xfacec0ff; + unsigned res, res_ref, src2; + + for (i=0; i<5; ++i) { + start = i * 4; + len = i * 4; + + src1 = src1 * 3; + src2 = (start & 0xff) | ((len & 0xff) << 8); + + res_ref = calc_bextr_u32 (src1, src2); + res = _bextr_u32 (src1, start, len); + + if (res != res_ref) + abort(); + } +} diff --git a/gcc/testsuite/gcc.target/i386/bmi-bextr-5.c b/gcc/testsuite/gcc.target/i386/bmi-bextr-5.c new file mode 100644 index 00000000000..fd6e3620fab --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/bmi-bextr-5.c @@ -0,0 +1,48 @@ +/* { dg-do run { target { bmi && { ! ia32 } } } } */ +/* { dg-options "-O2 -mbmi -fno-inline" } */ + +#include <x86intrin.h> + +#include "bmi-check.h" + +long long calc_bextr_u64 (unsigned long long src1, + unsigned long long src2) +{ + long long res = 0; + unsigned char start = (src2 & 0xff); + unsigned char len = (int) ((src2 >> 8) & 0xff); + if (start < 64) { + unsigned i; + unsigned last = (start+len) < 64 ? start+len : 64; + + src1 >>= start; + for (i=start; i<last; ++i) { + res |= (src1 & 1) << (i-start); + src1 >>= 1; + } + } + + return res; +} + +static void +bmi_test () +{ + unsigned i; + unsigned char start, len; + unsigned long long src1 = 0xfacec0ffeefacec0; + unsigned long long res, res_ref, src2; + + for (i=0; i<5; ++i) { + start = i * 4; + len = i * 3; + src1 = src1 * 3; + src2 = (start & 0xff) | ((len & 0xff) << 8); + + res_ref = calc_bextr_u64 (src1, src2); + res = _bextr_u64 (src1, start, len); + + if (res != res_ref) + abort(); + } +} diff --git a/gcc/testsuite/gcc.target/i386/pr57736.c b/gcc/testsuite/gcc.target/i386/pr57736.c new file mode 100644 index 00000000000..120e5dc3a47 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr57736.c @@ -0,0 +1,41 @@ +/* PR target/57736 */ +/* { dg-do compile } */ +/* { dg-options "-O2" } */ + +#include <x86intrin.h> + +unsigned long long +f1 (void) +{ + return __rdtsc (); +} + +unsigned long long +f2 (unsigned int *x) +{ + return __rdtscp (x); +} + +unsigned long long +f3 (unsigned int x) +{ + return __rdpmc (x); +} + +void +f4 (void) +{ + __rdtsc (); +} + +void +f5 (unsigned int *x) +{ + __rdtscp (x); +} + +void +f6 (unsigned int x) +{ + __rdpmc (x); +} diff --git a/gcc/testsuite/gcc.target/mips/call-1.c b/gcc/testsuite/gcc.target/mips/call-1.c index 2a9f1e57159..e4b7acefaf7 100644 --- a/gcc/testsuite/gcc.target/mips/call-1.c +++ b/gcc/testsuite/gcc.target/mips/call-1.c @@ -1,8 +1,8 @@ /* { dg-options "-mrelax-pic-calls -mshared -foptimize-sibling-calls -mabi=32" } */ /* { dg-skip-if "requires -foptimize-sibling-calls" { *-*-* } { "-O0" } { "" } } */ -/* { dg-final { scan-assembler "\\.reloc\t1f,R_MIPS_JALR,normal\n1:\tjalr\t" } } */ -/* { dg-final { scan-assembler "\\.reloc\t1f,R_MIPS_JALR,normal2\n1:\tjalr\t" } } */ -/* { dg-final { scan-assembler "\\.reloc\t1f,R_MIPS_JALR,staticfunc\n1:\tjalr\t" } } */ +/* { dg-final { scan-assembler "\\.reloc\t1f,R_MIPS_JALR,normal\n1:\tjalrs?\t" } } */ +/* { dg-final { scan-assembler "\\.reloc\t1f,R_MIPS_JALR,normal2\n1:\tjalrs?\t" } } */ +/* { dg-final { scan-assembler "\\.reloc\t1f,R_MIPS_JALR,staticfunc\n1:\tjalrs?\t" } } */ /* { dg-final { scan-assembler "\\.reloc\t1f,R_MIPS_JALR,tail\n1:\tjr\t" } } */ /* { dg-final { scan-assembler "\\.reloc\t1f,R_MIPS_JALR,tail2\n1:\tjr\t" } } */ /* { dg-final { scan-assembler "\\.reloc\t1f,R_MIPS_JALR,tail3\n1:\tjr\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/call-2.c b/gcc/testsuite/gcc.target/mips/call-2.c index 7fabb1fd970..c2fc8eaad12 100644 --- a/gcc/testsuite/gcc.target/mips/call-2.c +++ b/gcc/testsuite/gcc.target/mips/call-2.c @@ -1,6 +1,6 @@ /* See through some simple data-flow. */ /* { dg-options "-mrelax-pic-calls" } */ -/* { dg-final { scan-assembler-times "\\.reloc\t1f,R_MIPS_JALR,g\n1:\tjalr\t" 2 } } */ +/* { dg-final { scan-assembler-times "\\.reloc\t1f,R_MIPS_JALR,g\n1:\tjalrs?\t" 2 } } */ NOMIPS16 f () { diff --git a/gcc/testsuite/gcc.target/mips/call-3.c b/gcc/testsuite/gcc.target/mips/call-3.c index 2c564886b1d..37609088df0 100644 --- a/gcc/testsuite/gcc.target/mips/call-3.c +++ b/gcc/testsuite/gcc.target/mips/call-3.c @@ -1,5 +1,5 @@ /* { dg-options "-mrelax-pic-calls -mno-shared" } */ -/* { dg-final { scan-assembler "\\.reloc\t1f,R_MIPS_JALR,g\n1:\tjalr\t" } } */ +/* { dg-final { scan-assembler "\\.reloc\t1f,R_MIPS_JALR,g\n1:\tjalrs?\t" } } */ /* { dg-require-visibility "" } */ __attribute__ ((visibility ("hidden"))) void g (); diff --git a/gcc/testsuite/gcc.target/mips/lazy-binding-1.c b/gcc/testsuite/gcc.target/mips/lazy-binding-1.c index 4f8dde566f7..a30594840dd 100644 --- a/gcc/testsuite/gcc.target/mips/lazy-binding-1.c +++ b/gcc/testsuite/gcc.target/mips/lazy-binding-1.c @@ -19,6 +19,6 @@ foo (int n) /* There should be exactly five uses of $25: one to set up $gp, two to load the address of bar (), and two to call it. */ /* { dg-final { scan-assembler-times "\tl.\t\\\$25,%call16\\\(bar\\\)" 2 } } */ -/* { dg-final { scan-assembler-times "\tjalr\t\\\$25" 2 } } */ +/* { dg-final { scan-assembler-times "\tjalrs?\t\\\$25" 2 } } */ /* { dg-final { scan-assembler "(\\\$28,|\t.cpload\t)\\\$25" } } */ /* { dg-final { scan-assembler-times "\\\$25" 5 } } */ diff --git a/gcc/testsuite/gcc.target/powerpc/pr57744.c b/gcc/testsuite/gcc.target/powerpc/pr57744.c new file mode 100644 index 00000000000..d1522f7bb13 --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/pr57744.c @@ -0,0 +1,37 @@ +/* { dg-do run { target { powerpc*-*-* && lp64 } } } */ +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */ +/* { dg-require-effective-target powerpc_p8vector_ok } */ +/* { dg-options "-mcpu=power8 -O3" } */ + +typedef unsigned U_16 __attribute__((mode(TI))); + +extern int libat_compare_exchange_16 (U_16 *, U_16 *, U_16, int, int) + __attribute__((__noinline__)); + +/* PR 57744: lqarx/stqcx needs even/odd register pairs. The assembler will + complain if the compiler gets an odd/even register pair. Create a function + which has the 16 byte compare and exchange instructions, but don't actually + execute it, so that we can detect these failures on older machines. */ + +int +libat_compare_exchange_16 (U_16 *mptr, U_16 *eptr, U_16 newval, + int smodel, int fmodel __attribute__((unused))) +{ + if (((smodel) == 0)) + return __atomic_compare_exchange_n (mptr, eptr, newval, 0, 0, 0); + else if (((smodel) != 5)) + return __atomic_compare_exchange_n (mptr, eptr, newval, 0, 4, 0); + else + return __atomic_compare_exchange_n (mptr, eptr, newval, 0, 5, 0); +} + +U_16 a = 1, b = 1, c = -2; +volatile int do_test = 0; + +int main (void) +{ + if (do_test && !libat_compare_exchange_16 (&a, &b, c, 0, 0)) + aborrt (); + + return 0; +} diff --git a/gcc/testsuite/gfortran.dg/pointer_remapping_8.f90 b/gcc/testsuite/gfortran.dg/pointer_remapping_8.f90 new file mode 100644 index 00000000000..94fe6c553ef --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pointer_remapping_8.f90 @@ -0,0 +1,10 @@ +! { dg-do compile } +! +! PR 54788 ICE on pointer-array element assignment +! +program bug + integer, pointer :: a(:) + integer :: b + allocate(a(0:0)) + a(0:0) => b ! { dg-error "Rank remapping target must be rank 1 or simply contiguous" } +end diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index a5bca6b72c1..c7936119b31 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -2106,6 +2106,15 @@ proc check_effective_target_aarch64_big_endian { } { }] } +# Return 1 if this is a AArch64 target supporting little endian +proc check_effective_target_aarch64_little_endian { } { + return [check_no_compiler_messages aarch64_little_endian assembly { + #if !defined(__aarch64__) || defined(__AARCH64EB__) + #error FOO + #endif + }] +} + # Return 1 is this is an arm target using 32-bit instructions proc check_effective_target_arm32 { } { return [check_no_compiler_messages arm32 assembly { diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c index c9b10213257..41eac972a97 100644 --- a/gcc/tree-vect-loop.c +++ b/gcc/tree-vect-loop.c @@ -538,7 +538,12 @@ vect_is_simple_iv_evolution (unsigned loop_nb, tree access_fn, tree * init, if (TREE_CODE (step_expr) != INTEGER_CST && (TREE_CODE (step_expr) != SSA_NAME || ((bb = gimple_bb (SSA_NAME_DEF_STMT (step_expr))) - && flow_bb_inside_loop_p (get_loop (cfun, loop_nb), bb)))) + && flow_bb_inside_loop_p (get_loop (cfun, loop_nb), bb)) + || (!INTEGRAL_TYPE_P (TREE_TYPE (step_expr)) + && (!SCALAR_FLOAT_TYPE_P (TREE_TYPE (step_expr)) + || !flag_associative_math))) + && (TREE_CODE (step_expr) != REAL_CST + || !flag_associative_math)) { if (dump_enabled_p ()) dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, @@ -3276,7 +3281,13 @@ get_initial_def_for_induction (gimple iv_phi) { /* iv_loop is the loop to be vectorized. Generate: vec_step = [VF*S, VF*S, VF*S, VF*S] */ - expr = build_int_cst (TREE_TYPE (step_expr), vf); + if (SCALAR_FLOAT_TYPE_P (TREE_TYPE (step_expr))) + { + expr = build_int_cst (integer_type_node, vf); + expr = fold_convert (TREE_TYPE (step_expr), expr); + } + else + expr = build_int_cst (TREE_TYPE (step_expr), vf); new_name = fold_build2 (MULT_EXPR, TREE_TYPE (step_expr), expr, step_expr); if (TREE_CODE (step_expr) == SSA_NAME) @@ -3339,7 +3350,13 @@ get_initial_def_for_induction (gimple iv_phi) gcc_assert (!nested_in_vect_loop); /* Create the vector that holds the step of the induction. */ - expr = build_int_cst (TREE_TYPE (step_expr), nunits); + if (SCALAR_FLOAT_TYPE_P (TREE_TYPE (step_expr))) + { + expr = build_int_cst (integer_type_node, nunits); + expr = fold_convert (TREE_TYPE (step_expr), expr); + } + else + expr = build_int_cst (TREE_TYPE (step_expr), nunits); new_name = fold_build2 (MULT_EXPR, TREE_TYPE (step_expr), expr, step_expr); if (TREE_CODE (step_expr) == SSA_NAME) diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog index ca29119c953..0cf9100cf62 100644 --- a/libcpp/ChangeLog +++ b/libcpp/ChangeLog @@ -1,3 +1,9 @@ +2013-06-28 Ed Smith-Rowland <3dw4rd@verizon.net> + + * lex.c (lex_raw_string(), lex_string()): Constrain suffixes treated + as concatenated literal and macro to just the patterns found in + inttypes.h; (is_macro()): New. + 2013-06-24 Dehao Chen <dehao@google.com> * files.c (_cpp_stack_include): Fix the highest_location when header diff --git a/libcpp/lex.c b/libcpp/lex.c index 3e59d40d32e..022d31016e2 100644 --- a/libcpp/lex.c +++ b/libcpp/lex.c @@ -1334,6 +1334,33 @@ bufring_append (cpp_reader *pfile, const uchar *base, size_t len, *last_buff_p = last_buff; } + +/* Returns true if a macro has been defined. + This might not work if compile with -save-temps, + or preprocess separately from compilation. */ + +static bool +is_macro(cpp_reader *pfile, const uchar *base) +{ + const uchar *cur = base; + if (! ISIDST (*cur)) + return false; + unsigned int hash = HT_HASHSTEP (0, *cur); + ++cur; + while (ISIDNUM (*cur)) + { + hash = HT_HASHSTEP (hash, *cur); + ++cur; + } + hash = HT_HASHFINISH (hash, cur - base); + + cpp_hashnode *result = CPP_HASHNODE (ht_lookup_with_hash (pfile->hash_table, + base, cur - base, hash, HT_NO_INSERT)); + + return !result ? false : (result->type == NT_MACRO); +} + + /* Lexes a raw string. The stored string contains the spelling, including double quotes, delimiter string, '(' and ')', any leading 'L', 'u', 'U' or 'u8' and 'R' modifier. It returns the type of the @@ -1556,22 +1583,18 @@ lex_raw_string (cpp_reader *pfile, cpp_token *token, const uchar *base, if (CPP_OPTION (pfile, user_literals)) { - /* According to C++11 [lex.ext]p10, a ud-suffix not starting with an - underscore is ill-formed. Since this breaks programs using macros - from inttypes.h, we generate a warning and treat the ud-suffix as a - separate preprocessing token. This approach is under discussion by - the standards committee, and has been adopted as a conforming - extension by other front ends such as clang. - A special exception is made for the suffix 's' which will be - standardized as a user-defined literal suffix for strings. */ - if (ISALPHA (*cur) && *cur != 's') + /* If a string format macro, say from inttypes.h, is placed touching + a string literal it could be parsed as a C++11 user-defined string + literal thus breaking the program. + Try to identify macros with is_macro. A warning is issued. */ + if (is_macro (pfile, cur)) { /* Raise a warning, but do not consume subsequent tokens. */ if (CPP_OPTION (pfile, warn_literal_suffix)) cpp_warning_with_line (pfile, CPP_W_LITERAL_SUFFIX, token->src_loc, 0, "invalid suffix on literal; C++11 requires " - "a space between literal and identifier"); + "a space between literal and string macro"); } /* Grab user defined literal suffix. */ else if (ISIDST (*cur)) @@ -1689,22 +1712,18 @@ lex_string (cpp_reader *pfile, cpp_token *token, const uchar *base) if (CPP_OPTION (pfile, user_literals)) { - /* According to C++11 [lex.ext]p10, a ud-suffix not starting with an - underscore is ill-formed. Since this breaks programs using macros - from inttypes.h, we generate a warning and treat the ud-suffix as a - separate preprocessing token. This approach is under discussion by - the standards committee, and has been adopted as a conforming - extension by other front ends such as clang. - A special exception is made for the suffix 's' which will be - standardized as a user-defined literal suffix for strings. */ - if (ISALPHA (*cur) && *cur != 's') + /* If a string format macro, say from inttypes.h, is placed touching + a string literal it could be parsed as a C++11 user-defined string + literal thus breaking the program. + Try to identify macros with is_macro. A warning is issued. */ + if (is_macro (pfile, cur)) { /* Raise a warning, but do not consume subsequent tokens. */ if (CPP_OPTION (pfile, warn_literal_suffix)) cpp_warning_with_line (pfile, CPP_W_LITERAL_SUFFIX, token->src_loc, 0, "invalid suffix on literal; C++11 requires " - "a space between literal and identifier"); + "a space between literal and string macro"); } /* Grab user defined literal suffix. */ else if (ISIDST (*cur)) diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index cd4645a07f4..f2bc54ce0a2 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,12 @@ +2013-06-28 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/36041 + * libgcc2.c (POPCOUNTCST2, POPCOUNTCST4, POPCOUNTCST8, POPCOUNTCST): + Define. + (__popcountSI2): For __SIZEOF_INT__ > 2 targets use arithmetics + instead of table lookups. + (__popcountDI2): Likewise. + 2013-06-25 Chung-Ju Wu <jasonwucj@gmail.com> * Makefile.in (clean, distclean): Remove auto-target.h and stamp-h diff --git a/libgcc/libgcc2.c b/libgcc/libgcc2.c index 9138c1e0727..a47d8af9f86 100644 --- a/libgcc/libgcc2.c +++ b/libgcc/libgcc2.c @@ -819,17 +819,42 @@ const UQItype __popcount_tab[256] = }; #endif +#if defined(L_popcountsi2) || defined(L_popcountdi2) +#define POPCOUNTCST2(x) (((UWtype) x << BITS_PER_UNIT) | x) +#define POPCOUNTCST4(x) (((UWtype) x << (2 * BITS_PER_UNIT)) | x) +#define POPCOUNTCST8(x) (((UWtype) x << (4 * BITS_PER_UNIT)) | x) +#if W_TYPE_SIZE == BITS_PER_UNIT +#define POPCOUNTCST(x) x +#elif W_TYPE_SIZE == 2 * BITS_PER_UNIT +#define POPCOUNTCST(x) POPCOUNTCST2 (x) +#elif W_TYPE_SIZE == 4 * BITS_PER_UNIT +#define POPCOUNTCST(x) POPCOUNTCST4 (POPCOUNTCST2 (x)) +#elif W_TYPE_SIZE == 8 * BITS_PER_UNIT +#define POPCOUNTCST(x) POPCOUNTCST8 (POPCOUNTCST4 (POPCOUNTCST2 (x))) +#endif +#endif + #ifdef L_popcountsi2 #undef int int __popcountSI2 (UWtype x) { + /* Force table lookup on targets like AVR and RL78 which only + pretend they have LIBGCC2_UNITS_PER_WORD 4, but actually + have 1, and other small word targets. */ +#if __SIZEOF_INT__ > 2 && defined (POPCOUNTCST) && BITS_PER_UNIT == 8 + x = x - ((x >> 1) & POPCOUNTCST (0x55)); + x = (x & POPCOUNTCST (0x33)) + ((x >> 2) & POPCOUNTCST (0x33)); + x = (x + (x >> 4)) & POPCOUNTCST (0x0F); + return (x * POPCOUNTCST (0x01)) >> (W_TYPE_SIZE - BITS_PER_UNIT); +#else int i, ret = 0; for (i = 0; i < W_TYPE_SIZE; i += 8) ret += __popcount_tab[(x >> i) & 0xff]; return ret; +#endif } #endif @@ -838,12 +863,28 @@ __popcountSI2 (UWtype x) int __popcountDI2 (UDWtype x) { + /* Force table lookup on targets like AVR and RL78 which only + pretend they have LIBGCC2_UNITS_PER_WORD 4, but actually + have 1, and other small word targets. */ +#if __SIZEOF_INT__ > 2 && defined (POPCOUNTCST) && BITS_PER_UNIT == 8 + const DWunion uu = {.ll = x}; + UWtype x1 = uu.s.low, x2 = uu.s.high; + x1 = x1 - ((x1 >> 1) & POPCOUNTCST (0x55)); + x2 = x2 - ((x2 >> 1) & POPCOUNTCST (0x55)); + x1 = (x1 & POPCOUNTCST (0x33)) + ((x1 >> 2) & POPCOUNTCST (0x33)); + x2 = (x2 & POPCOUNTCST (0x33)) + ((x2 >> 2) & POPCOUNTCST (0x33)); + x1 = (x1 + (x1 >> 4)) & POPCOUNTCST (0x0F); + x2 = (x2 + (x2 >> 4)) & POPCOUNTCST (0x0F); + x1 += x2; + return (x1 * POPCOUNTCST (0x01)) >> (W_TYPE_SIZE - BITS_PER_UNIT); +#else int i, ret = 0; for (i = 0; i < 2*W_TYPE_SIZE; i += 8) ret += __popcount_tab[(x >> i) & 0xff]; return ret; +#endif } #endif diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog index 9a575739e7c..6687169f1ce 100644 --- a/libgomp/ChangeLog +++ b/libgomp/ChangeLog @@ -1,3 +1,8 @@ +2013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com> + + * testsuite/libgomp.fortran/strassen.f90: + Add dg-skip-if aarch64_tiny. + 2013-06-20 Iain Sandoe <iain@codesourcery.com> Cesar Philippidis <cesar@codesourcery.com> diff --git a/libgomp/testsuite/libgomp.fortran/strassen.f90 b/libgomp/testsuite/libgomp.fortran/strassen.f90 index b44982665a6..af94241d16f 100644 --- a/libgomp/testsuite/libgomp.fortran/strassen.f90 +++ b/libgomp/testsuite/libgomp.fortran/strassen.f90 @@ -1,4 +1,5 @@ ! { dg-options "-O2" } +! { dg-skip-if "AArch64 tiny code model does not support programs larger than 1MiB" {aarch64_tiny} {"*"} {""} } program strassen_matmul use omp_lib diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 347cf3cee8f..64509c17316 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,96 @@ +2013-07-01 Paolo Carlini <paolo.carlini@oracle.com> + + * include/bits/stl_list.h (list<>::insert(iterator, + size_type, const value_type&), list<>::insert(iterator, + initializer_list<>), list<>::insert(iterator, _InputIterator, + _InputIterator), list<>::splice(iterator, list&&), + list<>::splice(iterator, list&), list<>::splice(iterator, list&&, + iterator), list<>::splice(iterator, list&, iterator), + list<>::splice(iterator, list&&, iterator, iterator), + list<>::splice(iterator, list&, iterator, iterator)): Adjust C++11 + signatures to take const_iterator(s). + * include/bits/list.tcc (list<>::insert(const_iterator, size_type, + const value_type&), list<>::insert(const_iterator, _InputIterator, + _InputIterator)): Define. + * include/ext/vstring.h (__versa_string<>::insert(iterator, + size_type, _CharT), __versa_string<>::insert(iterator, + _InputIterator, _InputIterator), __versa_string<>::insert(iterator, + std::initializer_list<>), __versa_string<>::replace(iterator, + iterator, _InputIterator, _InputIterator), __versa_string<>:: + replace(iterator, iterator, std::initializer_list<>)): Adjust C++11 + signatures to take const_iterator(s). + (__versa_string<>::_M_replace_dispatch): Take const_iterators. + * include/ext/vstring.tcc: Likewise. + * include/debug/list: Adjust. + * include/profile/list: Likewise. + * testsuite/23_containers/list/operations/splice/const_iterator.cc: + New. + * testsuite/23_containers/list/modifiers/insert/const_iterator.cc: + Extend. + * testsuite/ext/vstring/modifiers/insert/char/const_iterator.cc: + Likewise. + * testsuite/ext/vstring/modifiers/insert/wchar_t/const_iterator.cc: + Likewise. + * testsuite/ext/vstring/modifiers/replace/char/const_iterator.cc: + Likewise. + * testsuite/ext/vstring/modifiers/replace/wchar_t/const_iterator.cc: + Likewise. + + * testsuite/23_containers/list/requirements/dr438/assign_neg.cc: + Adjust dg-error line number. + * testsuite/23_containers/list/requirements/dr438/ + constructor_1_neg.cc: Likewise. + * testsuite/23_containers/list/requirements/dr438/ + constructor_2_neg.cc: Likewise. + * testsuite/23_containers/list/requirements/dr438/insert_neg.cc: + Likewise. + +2013-06-30 Paolo Carlini <paolo.carlini@oracle.com> + + * include/bits/stl_deque.h (deque<>::insert(iterator, + size_type, const value_type&), deque<>::insert(iterator, + initializer_list<>), deque<>::insert(iterator, _InputIterator, + _InputIterator)): Adjust C++11 signatures to take a const_iterator. + * include/bits/stl_vector.h: Likewise. + * include/bits/stl_bvector.h: Likewise. + * include/debug/deque: Adjust. + * include/debug/vector: Likewise. + * include/profile/deque: Likewise. + * include/profile/vector: Likewise. + * testsuite/23_containers/deque/modifiers/insert/const_iterator.cc: + Extend. + * testsuite/23_containers/vector/bool/modifiers/insert/ + const_iterator.cc: Likewise. + * testsuite/23_containers/vector/modifiers/insert/const_iterator.cc: + Likewise. + + * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc: + Adjust dg-error line number. + * testsuite/23_containers/deque/requirements/dr438/ + constructor_1_neg.cc: Likewise. + * testsuite/23_containers/deque/requirements/dr438/ + constructor_2_neg.cc: Likewise. + * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc: + Likewise. + * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc: + Likewise. + * testsuite/23_containers/vector/requirements/dr438/ + constructor_1_neg.cc: Likewise. + * testsuite/23_containers/vector/requirements/dr438/ + constructor_2_neg.cc: Likewise. + * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc: + Likewise. + +2013-06-27 Paolo Carlini <paolo.carlini@oracle.com> + + * testsuite/21_strings/basic_string/operations/*: Move inside + testsuite/21_strings/basic_string/operations/data/. + * testsuite/21_strings/basic_string/compare/*: Move inside + testsuite/21_strings/basic_string/operations/. + * testsuite/21_strings/basic_string/find/*: Likewise. + * testsuite/21_strings/basic_string/rfind/*: Likewise. + * testsuite/21_strings/basic_string/substr/*: Likewise. + 2013-06-27 Paolo Carlini <paolo.carlini@oracle.com> * testsuite/21_strings/basic_string/append/*: Move inside diff --git a/libstdc++-v3/doc/xml/manual/containers.xml b/libstdc++-v3/doc/xml/manual/containers.xml index 920b491db36..9791953b78d 100644 --- a/libstdc++-v3/doc/xml/manual/containers.xml +++ b/libstdc++-v3/doc/xml/manual/containers.xml @@ -354,6 +354,60 @@ <info><title>Unordered Associative</title></info> <?dbhtml filename="unordered_associative.html"?> + <section xml:id="containers.unordered.insert_hints" xreflabel="Insertion Hints"> + <info><title>Insertion Hints</title></info> + + <para> + Here is how the hinting works in the libstdc++ implementation of unordered + containers, and the rationale behind this behavior. + </para> + <para> + In the following text, the phrase <emphasis>equivalent to</emphasis> refer + to the result of the invocation of the equal predicate imposed on the + container by its <code>key_equal</code> object, which defaults to (basically) + <quote>==</quote>. + </para> + <para> + Unordered containers can be seen as a <code>std::vector</code> of + <code>std::forward_list</code>. The <code>std::vector</code> represents + the buckets and each <code>std::forward_list</code> is the list of nodes + belonging to the same bucket. When inserting an element in such a data + structure we first need to compute the element hash code to find the + bucket to insert the element to, the second step depends on the uniqueness + of elements in the container. + </para> + <para> + In the case of <code>std::unordered_set</code> and + <code>std::unordered_map</code> you need to look through all bucket's + elements for an equivalent one. If there is none the insertion can be + achieved, otherwise the insertion fails. As we always need to loop though + all bucket's elements, the hint doesn't tell us if the element is already + present, and we don't have any constraint on where the new element is to + be inserted, the hint won't be of any help and will then be ignored. + </para> + <para> + In the case of <code>std::unordered_multiset</code> + and <code>std::unordered_multimap</code> equivalent elements must be + linked together so that the <code>equal_range(const key_type&)</code> + can return the range of iterators pointing to all equivalent elements. + This is where hinting can be used to point to another equivalent element + already part of the container and so skip all non equivalent elements of + the bucket. So to be useful the hint shall point to an element equivalent + to the one being inserted. The new element will be then inserted right + after the hint. Note that because of an implementation detail inserting + after a node can require updating the bucket of the following node. To + check if the next bucket is to be modified we need to compute the + following node's hash code. So if you want your hint to be really efficient + it should be followed by another equivalent element, the implementation + will detect this equivalence and won't compute next element hash code. + </para> + <para> + It is highly advised to start using unordered containers hints only if you + have a benchmark that will demonstrate the benefit of it. If you don't then do + not use hints, it might do more harm than good. + </para> + </section> + <section xml:id="containers.unordered.hash" xreflabel="Hash"> <info><title>Hash Code</title></info> diff --git a/libstdc++-v3/include/bits/hashtable.h b/libstdc++-v3/include/bits/hashtable.h index 8ce264ed72e..9b586b01e24 100644 --- a/libstdc++-v3/include/bits/hashtable.h +++ b/libstdc++-v3/include/bits/hashtable.h @@ -225,7 +225,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION using __node_base = typename __hashtable_base::__node_base; using __bucket_type = typename __hashtable_base::__bucket_type; using __ireturn_type = typename __hashtable_base::__ireturn_type; - using __iconv_type = typename __hashtable_base::__iconv_type; using __map_base = __detail::_Map_base<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, @@ -680,7 +679,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION // Insert node with hash code __code. Take ownership of the node, // deallocate it on exception. iterator - _M_insert_multi_node(__hash_code __code, __node_type* __n); + _M_insert_multi_node(__node_type* __hint, + __hash_code __code, __node_type* __n); template<typename... _Args> std::pair<iterator, bool> @@ -688,7 +688,18 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template<typename... _Args> iterator - _M_emplace(std::false_type, _Args&&... __args); + _M_emplace(std::false_type __uk, _Args&&... __args) + { return _M_emplace(cend(), __uk, std::forward<_Args>(__args)...); } + + // Emplace with hint, useless when keys are unique. + template<typename... _Args> + iterator + _M_emplace(const_iterator, std::true_type __uk, _Args&&... __args) + { return _M_emplace(__uk, std::forward<_Args>(__args)...).first; } + + template<typename... _Args> + iterator + _M_emplace(const_iterator, std::false_type, _Args&&... __args); template<typename _Arg> std::pair<iterator, bool> @@ -696,7 +707,19 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template<typename _Arg> iterator - _M_insert(_Arg&&, std::false_type); + _M_insert(_Arg&& __arg, std::false_type __uk) + { return _M_insert(cend(), std::forward<_Arg>(__arg), __uk); } + + // Insert with hint, not used when keys are unique. + template<typename _Arg> + iterator + _M_insert(const_iterator, _Arg&& __arg, std::true_type __uk) + { return _M_insert(std::forward<_Arg>(__arg), __uk).first; } + + // Insert with hint when keys are not unique. + template<typename _Arg> + iterator + _M_insert(const_iterator, _Arg&&, std::false_type); size_type _M_erase(std::true_type, const key_type&); @@ -716,8 +739,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template<typename... _Args> iterator - emplace_hint(const_iterator, _Args&&... __args) - { return __iconv_type()(emplace(std::forward<_Args>(__args)...)); } + emplace_hint(const_iterator __hint, _Args&&... __args) + { + return _M_emplace(__hint, __unique_keys(), + std::forward<_Args>(__args)...); + } // Insert member functions via inheritance. @@ -1642,7 +1668,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION _Traits>::iterator _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>:: - _M_emplace(std::false_type, _Args&&... __args) + _M_emplace(const_iterator __hint, std::false_type, _Args&&... __args) { // First build the node to get its hash code. __node_type* __node = _M_allocate_node(std::forward<_Args>(__args)...); @@ -1658,7 +1684,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION __throw_exception_again; } - return _M_insert_multi_node(__code, __node); + return _M_insert_multi_node(__hint._M_cur, __code, __node); } template<typename _Key, typename _Value, @@ -1710,7 +1736,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION _Traits>::iterator _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>:: - _M_insert_multi_node(__hash_code __code, __node_type* __node) + _M_insert_multi_node(__node_type* __hint, __hash_code __code, + __node_type* __node) { const __rehash_state& __saved_state = _M_rehash_policy._M_state(); std::pair<bool, std::size_t> __do_rehash @@ -1725,13 +1752,28 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION const key_type& __k = this->_M_extract()(__node->_M_v()); size_type __bkt = _M_bucket_index(__k, __code); - // Find the node before an equivalent one. - __node_base* __prev = _M_find_before_node(__bkt, __k, __code); + // Find the node before an equivalent one or use hint if it exists and + // if it is equivalent. + __node_base* __prev + = __builtin_expect(__hint != nullptr, false) + && this->_M_equals(__k, __code, __hint) + ? __hint + : _M_find_before_node(__bkt, __k, __code); if (__prev) { // Insert after the node before the equivalent one. __node->_M_nxt = __prev->_M_nxt; __prev->_M_nxt = __node; + if (__builtin_expect(__prev == __hint, false)) + // hint might be the last bucket node, in this case we need to + // update next bucket. + if (__node->_M_nxt + && !this->_M_equals(__k, __code, __node->_M_next())) + { + size_type __next_bkt = _M_bucket_index(__node->_M_next()); + if (__next_bkt != __bkt) + _M_buckets[__next_bkt] = __node; + } } else // The inserted node has no equivalent in the @@ -1786,7 +1828,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION _Traits>::iterator _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>:: - _M_insert(_Arg&& __v, std::false_type) + _M_insert(const_iterator __hint, _Arg&& __v, std::false_type) { // First compute the hash code so that we don't do anything if it // throws. @@ -1795,7 +1837,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION // Second allocate new node so that we don't rehash if it throws. __node_type* __node = _M_allocate_node(std::forward<_Arg>(__v)); - return _M_insert_multi_node(__code, __node); + return _M_insert_multi_node(__hint._M_cur, __code, __node); } template<typename _Key, typename _Value, diff --git a/libstdc++-v3/include/bits/hashtable_policy.h b/libstdc++-v3/include/bits/hashtable_policy.h index 1c76af0ac66..2ae0efa08b5 100644 --- a/libstdc++-v3/include/bits/hashtable_policy.h +++ b/libstdc++-v3/include/bits/hashtable_policy.h @@ -612,7 +612,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION using __unique_keys = typename __hashtable_base::__unique_keys; using __ireturn_type = typename __hashtable_base::__ireturn_type; - using __iconv_type = typename __hashtable_base::__iconv_type; __hashtable& _M_conjure_hashtable() @@ -626,8 +625,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION } iterator - insert(const_iterator, const value_type& __v) - { return __iconv_type()(insert(__v)); } + insert(const_iterator __hint, const value_type& __v) + { + __hashtable& __h = _M_conjure_hashtable(); + return __h._M_insert(__hint, __v, __unique_keys()); + } void insert(initializer_list<value_type> __l) @@ -711,8 +713,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION } iterator - insert(const_iterator, value_type&& __v) - { return insert(std::move(__v)).first; } + insert(const_iterator __hint, value_type&& __v) + { + __hashtable& __h = this->_M_conjure_hashtable(); + return __h._M_insert(__hint, std::move(__v), __unique_keys()); + } }; /// Specialization. @@ -745,9 +750,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION } iterator - insert(const_iterator, value_type&& __v) - { return insert(std::move(__v)); } - }; + insert(const_iterator __hint, value_type&& __v) + { + __hashtable& __h = this->_M_conjure_hashtable(); + return __h._M_insert(__hint, std::move(__v), __unique_keys()); + } + }; /// Specialization. template<typename _Key, typename _Value, typename _Alloc, @@ -769,7 +777,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION using __unique_keys = typename __base_type::__unique_keys; using __hashtable = typename __base_type::__hashtable; using __ireturn_type = typename __base_type::__ireturn_type; - using __iconv_type = typename __base_type::__iconv_type; using __base_type::insert; @@ -792,8 +799,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template<typename _Pair, typename = _IFconsp<_Pair>> iterator - insert(const_iterator, _Pair&& __v) - { return __iconv_type()(insert(std::forward<_Pair>(__v))); } + insert(const_iterator __hint, _Pair&& __v) + { + __hashtable& __h = this->_M_conjure_hashtable(); + return __h._M_emplace(__hint, __unique_keys(), + std::forward<_Pair>(__v)); + } }; /** @@ -1470,10 +1481,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION using __ireturn_type = typename std::conditional<__unique_keys::value, std::pair<iterator, bool>, iterator>::type; - - using __iconv_type = typename std::conditional<__unique_keys::value, - _Select1st, _Identity - >::type; private: using _EqualEBO = _Hashtable_ebo_helper<0, _Equal>; using _EqualHelper = _Equal_helper<_Key, _Value, _ExtractKey, _Equal, diff --git a/libstdc++-v3/include/bits/list.tcc b/libstdc++-v3/include/bits/list.tcc index 4f82e35c921..4d8ce2351e8 100644 --- a/libstdc++-v3/include/bits/list.tcc +++ b/libstdc++-v3/include/bits/list.tcc @@ -107,6 +107,40 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER return iterator(__tmp); } +#if __cplusplus >= 201103L + template<typename _Tp, typename _Alloc> + typename list<_Tp, _Alloc>::iterator + list<_Tp, _Alloc>:: + insert(const_iterator __position, size_type __n, const value_type& __x) + { + if (__n) + { + list __tmp(__n, __x, get_allocator()); + iterator __it = __tmp.begin(); + splice(__position, __tmp); + return __it; + } + return __position._M_const_cast(); + } + + template<typename _Tp, typename _Alloc> + template<typename _InputIterator, typename> + typename list<_Tp, _Alloc>::iterator + list<_Tp, _Alloc>:: + insert(const_iterator __position, _InputIterator __first, + _InputIterator __last) + { + list __tmp(__first, __last, get_allocator()); + if (!__tmp.empty()) + { + iterator __it = __tmp.begin(); + splice(__position, __tmp); + return __it; + } + return __position._M_const_cast(); + } +#endif + template<typename _Tp, typename _Alloc> typename list<_Tp, _Alloc>::iterator list<_Tp, _Alloc>:: diff --git a/libstdc++-v3/include/bits/stl_bvector.h b/libstdc++-v3/include/bits/stl_bvector.h index 489d819f06f..887ea16ae55 100644 --- a/libstdc++-v3/include/bits/stl_bvector.h +++ b/libstdc++-v3/include/bits/stl_bvector.h @@ -881,10 +881,15 @@ template<typename _Alloc> #if __cplusplus >= 201103L template<typename _InputIterator, typename = std::_RequireInputIter<_InputIterator>> - void - insert(iterator __position, + iterator + insert(const_iterator __position, _InputIterator __first, _InputIterator __last) - { _M_insert_dispatch(__position, __first, __last, __false_type()); } + { + difference_type __offset = __position - cbegin(); + _M_insert_dispatch(__position._M_const_cast(), + __first, __last, __false_type()); + return begin() + __offset; + } #else template<typename _InputIterator> void @@ -896,13 +901,24 @@ template<typename _Alloc> } #endif +#if __cplusplus >= 201103L + iterator + insert(const_iterator __position, size_type __n, const bool& __x) + { + difference_type __offset = __position - cbegin(); + _M_fill_insert(__position._M_const_cast(), __n, __x); + return begin() + __offset; + } +#else void insert(iterator __position, size_type __n, const bool& __x) { _M_fill_insert(__position, __n, __x); } +#endif #if __cplusplus >= 201103L - void insert(iterator __p, initializer_list<bool> __l) - { this->insert(__p, __l.begin(), __l.end()); } + iterator + insert(const_iterator __p, initializer_list<bool> __l) + { return this->insert(__p, __l.begin(), __l.end()); } #endif void diff --git a/libstdc++-v3/include/bits/stl_deque.h b/libstdc++-v3/include/bits/stl_deque.h index a03ba256b53..a4656734469 100644 --- a/libstdc++-v3/include/bits/stl_deque.h +++ b/libstdc++-v3/include/bits/stl_deque.h @@ -1517,11 +1517,30 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER * initializer_list @a __l into the %deque before the location * specified by @a __p. This is known as <em>list insert</em>. */ - void - insert(iterator __p, initializer_list<value_type> __l) - { this->insert(__p, __l.begin(), __l.end()); } + iterator + insert(const_iterator __p, initializer_list<value_type> __l) + { return this->insert(__p, __l.begin(), __l.end()); } #endif +#if __cplusplus >= 201103L + /** + * @brief Inserts a number of copies of given data into the %deque. + * @param __position A const_iterator into the %deque. + * @param __n Number of elements to be inserted. + * @param __x Data to be inserted. + * @return An iterator that points to the inserted data. + * + * This function will insert a specified number of copies of the given + * data before the location specified by @a __position. + */ + iterator + insert(const_iterator __position, size_type __n, const value_type& __x) + { + difference_type __offset = __position - cbegin(); + _M_fill_insert(__position._M_const_cast(), __n, __x); + return begin() + __offset; + } +#else /** * @brief Inserts a number of copies of given data into the %deque. * @param __position An iterator into the %deque. @@ -1534,25 +1553,42 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER void insert(iterator __position, size_type __n, const value_type& __x) { _M_fill_insert(__position, __n, __x); } +#endif +#if __cplusplus >= 201103L /** * @brief Inserts a range into the %deque. - * @param __position An iterator into the %deque. + * @param __position A const_iterator into the %deque. * @param __first An input iterator. * @param __last An input iterator. + * @return An iterator that points to the inserted data. * * This function will insert copies of the data in the range * [__first,__last) into the %deque before the location specified * by @a __position. This is known as <em>range insert</em>. */ -#if __cplusplus >= 201103L template<typename _InputIterator, typename = std::_RequireInputIter<_InputIterator>> - void - insert(iterator __position, _InputIterator __first, + iterator + insert(const_iterator __position, _InputIterator __first, _InputIterator __last) - { _M_insert_dispatch(__position, __first, __last, __false_type()); } + { + difference_type __offset = __position - cbegin(); + _M_insert_dispatch(__position._M_const_cast(), + __first, __last, __false_type()); + return begin() + __offset; + } #else + /** + * @brief Inserts a range into the %deque. + * @param __position An iterator into the %deque. + * @param __first An input iterator. + * @param __last An input iterator. + * + * This function will insert copies of the data in the range + * [__first,__last) into the %deque before the location specified + * by @a __position. This is known as <em>range insert</em>. + */ template<typename _InputIterator> void insert(iterator __position, _InputIterator __first, diff --git a/libstdc++-v3/include/bits/stl_list.h b/libstdc++-v3/include/bits/stl_list.h index 7c3eb159aba..5e8312dc6ff 100644 --- a/libstdc++-v3/include/bits/stl_list.h +++ b/libstdc++-v3/include/bits/stl_list.h @@ -1113,9 +1113,11 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER /** * @brief Inserts the contents of an initializer_list into %list - * before specified iterator. - * @param __p An iterator into the %list. + * before specified const_iterator. + * @param __p A const_iterator into the %list. * @param __l An initializer_list of value_type. + * @return An iterator pointing to the first element inserted + * (or __position). * * This function will insert copies of the data in the * initializer_list @a l into the %list before the location @@ -1124,11 +1126,29 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER * This operation is linear in the number of elements inserted and * does not invalidate iterators and references. */ - void - insert(iterator __p, initializer_list<value_type> __l) - { this->insert(__p, __l.begin(), __l.end()); } + iterator + insert(const_iterator __p, initializer_list<value_type> __l) + { return this->insert(__p, __l.begin(), __l.end()); } #endif +#if __cplusplus >= 201103L + /** + * @brief Inserts a number of copies of given data into the %list. + * @param __position A const_iterator into the %list. + * @param __n Number of elements to be inserted. + * @param __x Data to be inserted. + * @return An iterator pointing to the first element inserted + * (or __position). + * + * This function will insert a specified number of copies of the + * given data before the location specified by @a position. + * + * This operation is linear in the number of elements inserted and + * does not invalidate iterators and references. + */ + iterator + insert(const_iterator __position, size_type __n, const value_type& __x); +#else /** * @brief Inserts a number of copies of given data into the %list. * @param __position An iterator into the %list. @@ -1147,12 +1167,16 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER list __tmp(__n, __x, get_allocator()); splice(__position, __tmp); } +#endif +#if __cplusplus >= 201103L /** * @brief Inserts a range into the %list. - * @param __position An iterator into the %list. + * @param __position A const_iterator into the %list. * @param __first An input iterator. * @param __last An input iterator. + * @return An iterator pointing to the first element inserted + * (or __position). * * This function will insert copies of the data in the range [@a * first,@a last) into the %list before the location specified by @@ -1161,12 +1185,26 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER * This operation is linear in the number of elements inserted and * does not invalidate iterators and references. */ -#if __cplusplus >= 201103L template<typename _InputIterator, typename = std::_RequireInputIter<_InputIterator>> + iterator + insert(const_iterator __position, _InputIterator __first, + _InputIterator __last); #else + /** + * @brief Inserts a range into the %list. + * @param __position An iterator into the %list. + * @param __first An input iterator. + * @param __last An input iterator. + * + * This function will insert copies of the data in the range [@a + * first,@a last) into the %list before the location specified by + * @a position. + * + * This operation is linear in the number of elements inserted and + * does not invalidate iterators and references. + */ template<typename _InputIterator> -#endif void insert(iterator __position, _InputIterator __first, _InputIterator __last) @@ -1174,6 +1212,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER list __tmp(__first, __last, get_allocator()); splice(__position, __tmp); } +#endif /** * @brief Remove element at given position. @@ -1275,7 +1314,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER */ void #if __cplusplus >= 201103L - splice(iterator __position, list&& __x) + splice(const_iterator __position, list&& __x) #else splice(iterator __position, list& __x) #endif @@ -1284,16 +1323,31 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER { _M_check_equal_allocators(__x); - this->_M_transfer(__position, __x.begin(), __x.end()); + this->_M_transfer(__position._M_const_cast(), + __x.begin(), __x.end()); } } #if __cplusplus >= 201103L void - splice(iterator __position, list& __x) + splice(const_iterator __position, list& __x) { splice(__position, std::move(__x)); } #endif +#if __cplusplus >= 201103L + /** + * @brief Insert element from another %list. + * @param __position Const_iterator referencing the element to + * insert before. + * @param __x Source list. + * @param __i Const_iterator referencing the element to move. + * + * Removes the element in list @a __x referenced by @a __i and + * inserts it into the current list before @a __position. + */ + void + splice(const_iterator __position, list&& __x, const_iterator __i) +#else /** * @brief Insert element from another %list. * @param __position Iterator referencing the element to insert before. @@ -1304,13 +1358,10 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER * inserts it into the current list before @a __position. */ void -#if __cplusplus >= 201103L - splice(iterator __position, list&& __x, iterator __i) -#else splice(iterator __position, list& __x, iterator __i) #endif { - iterator __j = __i; + iterator __j = __i._M_const_cast(); ++__j; if (__position == __i || __position == __j) return; @@ -1318,15 +1369,44 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER if (this != &__x) _M_check_equal_allocators(__x); - this->_M_transfer(__position, __i, __j); + this->_M_transfer(__position._M_const_cast(), + __i._M_const_cast(), __j); } #if __cplusplus >= 201103L + /** + * @brief Insert element from another %list. + * @param __position Const_iterator referencing the element to + * insert before. + * @param __x Source list. + * @param __i Const_iterator referencing the element to move. + * + * Removes the element in list @a __x referenced by @a __i and + * inserts it into the current list before @a __position. + */ void - splice(iterator __position, list& __x, iterator __i) + splice(const_iterator __position, list& __x, const_iterator __i) { splice(__position, std::move(__x), __i); } #endif +#if __cplusplus >= 201103L + /** + * @brief Insert range from another %list. + * @param __position Const_iterator referencing the element to + * insert before. + * @param __x Source list. + * @param __first Const_iterator referencing the start of range in x. + * @param __last Const_iterator referencing the end of range in x. + * + * Removes elements in the range [__first,__last) and inserts them + * before @a __position in constant time. + * + * Undefined if @a __position is in [__first,__last). + */ + void + splice(const_iterator __position, list&& __x, const_iterator __first, + const_iterator __last) +#else /** * @brief Insert range from another %list. * @param __position Iterator referencing the element to insert before. @@ -1340,10 +1420,6 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER * Undefined if @a __position is in [__first,__last). */ void -#if __cplusplus >= 201103L - splice(iterator __position, list&& __x, iterator __first, - iterator __last) -#else splice(iterator __position, list& __x, iterator __first, iterator __last) #endif @@ -1353,13 +1429,29 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER if (this != &__x) _M_check_equal_allocators(__x); - this->_M_transfer(__position, __first, __last); + this->_M_transfer(__position._M_const_cast(), + __first._M_const_cast(), + __last._M_const_cast()); } } #if __cplusplus >= 201103L + /** + * @brief Insert range from another %list. + * @param __position Const_iterator referencing the element to + * insert before. + * @param __x Source list. + * @param __first Const_iterator referencing the start of range in x. + * @param __last Const_iterator referencing the end of range in x. + * + * Removes elements in the range [__first,__last) and inserts them + * before @a __position in constant time. + * + * Undefined if @a __position is in [__first,__last). + */ void - splice(iterator __position, list& __x, iterator __first, iterator __last) + splice(const_iterator __position, list& __x, const_iterator __first, + const_iterator __last) { splice(__position, std::move(__x), __first, __last); } #endif diff --git a/libstdc++-v3/include/bits/stl_vector.h b/libstdc++-v3/include/bits/stl_vector.h index a403b4f83bb..726693918a3 100644 --- a/libstdc++-v3/include/bits/stl_vector.h +++ b/libstdc++-v3/include/bits/stl_vector.h @@ -1015,11 +1015,34 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER * %vector and if it is frequently used the user should * consider using std::list. */ - void - insert(iterator __position, initializer_list<value_type> __l) - { this->insert(__position, __l.begin(), __l.end()); } + iterator + insert(const_iterator __position, initializer_list<value_type> __l) + { return this->insert(__position, __l.begin(), __l.end()); } #endif +#if __cplusplus >= 201103L + /** + * @brief Inserts a number of copies of given data into the %vector. + * @param __position A const_iterator into the %vector. + * @param __n Number of elements to be inserted. + * @param __x Data to be inserted. + * @return An iterator that points to the inserted data. + * + * This function will insert a specified number of copies of + * the given data before the location specified by @a position. + * + * Note that this kind of operation could be expensive for a + * %vector and if it is frequently used the user should + * consider using std::list. + */ + iterator + insert(const_iterator __position, size_type __n, const value_type& __x) + { + difference_type __offset = __position - cbegin(); + _M_fill_insert(__position._M_const_cast(), __n, __x); + return begin() + __offset; + } +#else /** * @brief Inserts a number of copies of given data into the %vector. * @param __position An iterator into the %vector. @@ -1036,12 +1059,15 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER void insert(iterator __position, size_type __n, const value_type& __x) { _M_fill_insert(__position, __n, __x); } +#endif +#if __cplusplus >= 201103L /** * @brief Inserts a range into the %vector. - * @param __position An iterator into the %vector. + * @param __position A const_iterator into the %vector. * @param __first An input iterator. * @param __last An input iterator. + * @return An iterator that points to the inserted data. * * This function will insert copies of the data in the range * [__first,__last) into the %vector before the location specified @@ -1051,14 +1077,32 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER * %vector and if it is frequently used the user should * consider using std::list. */ -#if __cplusplus >= 201103L template<typename _InputIterator, typename = std::_RequireInputIter<_InputIterator>> - void - insert(iterator __position, _InputIterator __first, + iterator + insert(const_iterator __position, _InputIterator __first, _InputIterator __last) - { _M_insert_dispatch(__position, __first, __last, __false_type()); } + { + difference_type __offset = __position - cbegin(); + _M_insert_dispatch(__position._M_const_cast(), + __first, __last, __false_type()); + return begin() + __offset; + } #else + /** + * @brief Inserts a range into the %vector. + * @param __position An iterator into the %vector. + * @param __first An input iterator. + * @param __last An input iterator. + * + * This function will insert copies of the data in the range + * [__first,__last) into the %vector before the location specified + * by @a pos. + * + * Note that this kind of operation could be expensive for a + * %vector and if it is frequently used the user should + * consider using std::list. + */ template<typename _InputIterator> void insert(iterator __position, _InputIterator __first, diff --git a/libstdc++-v3/include/debug/deque b/libstdc++-v3/include/debug/deque index 638bf1cd3ca..e5e902dfc7b 100644 --- a/libstdc++-v3/include/debug/deque +++ b/libstdc++-v3/include/debug/deque @@ -411,14 +411,26 @@ namespace __debug insert(const_iterator __position, _Tp&& __x) { return emplace(__position, std::move(__x)); } - void - insert(iterator __p, initializer_list<value_type> __l) + iterator + insert(const_iterator __position, initializer_list<value_type> __l) { - _Base::insert(__p, __l); + __glibcxx_check_insert(__position); + _Base_iterator __res = _Base::insert(__position.base(), __l); this->_M_invalidate_all(); + return iterator(__res, this); } #endif +#if __cplusplus >= 201103L + iterator + insert(const_iterator __position, size_type __n, const _Tp& __x) + { + __glibcxx_check_insert(__position); + _Base_iterator __res = _Base::insert(__position.base(), __n, __x); + this->_M_invalidate_all(); + return iterator(__res, this); + } +#else void insert(iterator __position, size_type __n, const _Tp& __x) { @@ -426,13 +438,24 @@ namespace __debug _Base::insert(__position.base(), __n, __x); this->_M_invalidate_all(); } +#endif #if __cplusplus >= 201103L template<class _InputIterator, typename = std::_RequireInputIter<_InputIterator>> + iterator + insert(const_iterator __position, + _InputIterator __first, _InputIterator __last) + { + __glibcxx_check_insert_range(__position, __first, __last); + _Base_iterator __res = _Base::insert(__position.base(), + __gnu_debug::__base(__first), + __gnu_debug::__base(__last)); + this->_M_invalidate_all(); + return iterator(__res, this); + } #else template<class _InputIterator> -#endif void insert(iterator __position, _InputIterator __first, _InputIterator __last) @@ -442,6 +465,7 @@ namespace __debug __gnu_debug::__base(__last)); this->_M_invalidate_all(); } +#endif void pop_front() diff --git a/libstdc++-v3/include/debug/list b/libstdc++-v3/include/debug/list index c175de01f23..1ae8507ca86 100644 --- a/libstdc++-v3/include/debug/list +++ b/libstdc++-v3/include/debug/list @@ -403,28 +403,46 @@ namespace __debug insert(const_iterator __position, _Tp&& __x) { return emplace(__position, std::move(__x)); } - void - insert(iterator __p, initializer_list<value_type> __l) + iterator + insert(const_iterator __p, initializer_list<value_type> __l) { __glibcxx_check_insert(__p); - _Base::insert(__p.base(), __l); + return iterator(_Base::insert(__p.base(), __l), this); } #endif +#if __cplusplus >= 201103L + iterator + insert(const_iterator __position, size_type __n, const _Tp& __x) + { + __glibcxx_check_insert(__position); + return iterator(_Base::insert(__position.base(), __n, __x), this); + } +#else void insert(iterator __position, size_type __n, const _Tp& __x) { __glibcxx_check_insert(__position); _Base::insert(__position.base(), __n, __x); } +#endif #if __cplusplus >= 201103L template<class _InputIterator, typename = std::_RequireInputIter<_InputIterator>> + iterator + insert(const_iterator __position, _InputIterator __first, + _InputIterator __last) + { + __glibcxx_check_insert_range(__position, __first, __last); + return iterator(_Base::insert(__position.base(), + __gnu_debug::__base(__first), + __gnu_debug::__base(__last)), + this); + } #else template<class _InputIterator> -#endif - void + void insert(iterator __position, _InputIterator __first, _InputIterator __last) { @@ -432,6 +450,7 @@ namespace __debug _Base::insert(__position.base(), __gnu_debug::__base(__first), __gnu_debug::__base(__last)); } +#endif private: _Base_iterator @@ -496,7 +515,7 @@ namespace __debug // 23.2.2.4 list operations: void #if __cplusplus >= 201103L - splice(iterator __position, list&& __x) + splice(const_iterator __position, list&& __x) #else splice(iterator __position, list& __x) #endif @@ -510,13 +529,13 @@ namespace __debug #if __cplusplus >= 201103L void - splice(iterator __position, list& __x) + splice(const_iterator __position, list& __x) { splice(__position, std::move(__x)); } #endif void #if __cplusplus >= 201103L - splice(iterator __position, list&& __x, iterator __i) + splice(const_iterator __position, list&& __x, const_iterator __i) #else splice(iterator __position, list& __x, iterator __i) #endif @@ -542,14 +561,14 @@ namespace __debug #if __cplusplus >= 201103L void - splice(iterator __position, list& __x, iterator __i) + splice(const_iterator __position, list& __x, const_iterator __i) { splice(__position, std::move(__x), __i); } #endif void #if __cplusplus >= 201103L - splice(iterator __position, list&& __x, iterator __first, - iterator __last) + splice(const_iterator __position, list&& __x, const_iterator __first, + const_iterator __last) #else splice(iterator __position, list& __x, iterator __first, iterator __last) @@ -565,14 +584,14 @@ namespace __debug // We used to perform the splice_alloc check: not anymore, redundant // after implementing the relevant bits of N1599. - for (_Base_iterator __tmp = __first.base(); + for (_Base_const_iterator __tmp = __first.base(); __tmp != __last.base(); ++__tmp) { _GLIBCXX_DEBUG_VERIFY(__tmp != _Base::end(), _M_message(__gnu_debug::__msg_valid_range) ._M_iterator(__first, "first") ._M_iterator(__last, "last")); - _GLIBCXX_DEBUG_VERIFY(&__x != this || __tmp != __position, + _GLIBCXX_DEBUG_VERIFY(&__x != this || __tmp != __position.base(), _M_message(__gnu_debug::__msg_splice_overlap) ._M_iterator(__tmp, "position") ._M_iterator(__first, "first") @@ -588,7 +607,8 @@ namespace __debug #if __cplusplus >= 201103L void - splice(iterator __position, list& __x, iterator __first, iterator __last) + splice(const_iterator __position, list& __x, + const_iterator __first, const_iterator __last) { splice(__position, std::move(__x), __first, __last); } #endif diff --git a/libstdc++-v3/include/debug/vector b/libstdc++-v3/include/debug/vector index f55dc67ede0..7b28177c2a0 100644 --- a/libstdc++-v3/include/debug/vector +++ b/libstdc++-v3/include/debug/vector @@ -471,11 +471,27 @@ namespace __debug insert(const_iterator __position, _Tp&& __x) { return emplace(__position, std::move(__x)); } - void - insert(iterator __position, initializer_list<value_type> __l) - { this->insert(__position, __l.begin(), __l.end()); } + iterator + insert(const_iterator __position, initializer_list<value_type> __l) + { return this->insert(__position, __l.begin(), __l.end()); } #endif +#if __cplusplus >= 201103L + iterator + insert(const_iterator __position, size_type __n, const _Tp& __x) + { + __glibcxx_check_insert(__position); + bool __realloc = _M_requires_reallocation(this->size() + __n); + difference_type __offset = __position.base() - _Base::cbegin(); + _Base_iterator __res = _Base::insert(__position.base(), __n, __x); + if (__realloc) + this->_M_invalidate_all(); + else + this->_M_invalidate_after_nth(__offset); + _M_update_guaranteed_capacity(); + return iterator(__res, this); + } +#else void insert(iterator __position, size_type __n, const _Tp& __x) { @@ -489,13 +505,35 @@ namespace __debug this->_M_invalidate_after_nth(__offset); _M_update_guaranteed_capacity(); } +#endif #if __cplusplus >= 201103L template<class _InputIterator, typename = std::_RequireInputIter<_InputIterator>> + iterator + insert(const_iterator __position, + _InputIterator __first, _InputIterator __last) + { + __glibcxx_check_insert_range(__position, __first, __last); + + /* Hard to guess if invalidation will occur, because __last + - __first can't be calculated in all cases, so we just + punt here by checking if it did occur. */ + _Base_iterator __old_begin = _M_base().begin(); + difference_type __offset = __position.base() - _Base::cbegin(); + _Base_iterator __res = _Base::insert(__position.base(), + __gnu_debug::__base(__first), + __gnu_debug::__base(__last)); + + if (_M_base().begin() != __old_begin) + this->_M_invalidate_all(); + else + this->_M_invalidate_after_nth(__offset); + _M_update_guaranteed_capacity(); + return iterator(__res, this); + } #else template<class _InputIterator> -#endif void insert(iterator __position, _InputIterator __first, _InputIterator __last) @@ -516,6 +554,7 @@ namespace __debug this->_M_invalidate_after_nth(__offset); _M_update_guaranteed_capacity(); } +#endif iterator #if __cplusplus >= 201103L diff --git a/libstdc++-v3/include/ext/vstring.h b/libstdc++-v3/include/ext/vstring.h index c78f2146a13..43edb53b41c 100644 --- a/libstdc++-v3/include/ext/vstring.h +++ b/libstdc++-v3/include/ext/vstring.h @@ -916,6 +916,31 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { return this->assign(__l.begin(), __l.end()); } #endif // C++11 +#if __cplusplus >= 201103L + /** + * @brief Insert multiple characters. + * @param __p Const_iterator referencing location in string to + * insert at. + * @param __n Number of characters to insert + * @param __c The character to insert. + * @return Iterator referencing the first inserted char. + * @throw std::length_error If new length exceeds @c max_size(). + * + * Inserts @a __n copies of character @a __c starting at the + * position referenced by iterator @a __p. If adding + * characters causes the length to exceed max_size(), + * length_error is thrown. The value of the string doesn't + * change if an error is thrown. + */ + iterator + insert(const_iterator __p, size_type __n, _CharT __c) + { + _GLIBCXX_DEBUG_PEDASSERT(__p >= _M_ibegin() && __p <= _M_iend()); + const size_type __pos = __p - _M_ibegin(); + this->replace(__p, __p, __n, __c); + return iterator(this->_M_data() + __pos); + } +#else /** * @brief Insert multiple characters. * @param __p Iterator referencing location in string to insert at. @@ -932,12 +957,16 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION void insert(iterator __p, size_type __n, _CharT __c) { this->replace(__p, __p, __n, __c); } +#endif +#if __cplusplus >= 201103L /** * @brief Insert a range of characters. - * @param __p Iterator referencing location in string to insert at. + * @param __p Const_iterator referencing location in string to + * insert at. * @param __beg Start of range. * @param __end End of range. + * @return Iterator referencing the first inserted char. * @throw std::length_error If new length exceeds @c max_size(). * * Inserts characters in range [beg,end). If adding characters @@ -945,26 +974,47 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION * thrown. The value of the string doesn't change if an error * is thrown. */ -#if __cplusplus >= 201103L template<class _InputIterator, typename = std::_RequireInputIter<_InputIterator>> + iterator + insert(const_iterator __p, _InputIterator __beg, _InputIterator __end) + { + _GLIBCXX_DEBUG_PEDASSERT(__p >= _M_ibegin() && __p <= _M_iend()); + const size_type __pos = __p - _M_ibegin(); + this->replace(__p, __p, __beg, __end); + return iterator(this->_M_data() + __pos); + } #else + /** + * @brief Insert a range of characters. + * @param __p Iterator referencing location in string to insert at. + * @param __beg Start of range. + * @param __end End of range. + * @throw std::length_error If new length exceeds @c max_size(). + * + * Inserts characters in range [beg,end). If adding characters + * causes the length to exceed max_size(), length_error is + * thrown. The value of the string doesn't change if an error + * is thrown. + */ template<class _InputIterator> -#endif void insert(iterator __p, _InputIterator __beg, _InputIterator __end) { this->replace(__p, __p, __beg, __end); } +#endif #if __cplusplus >= 201103L /** * @brief Insert an initializer_list of characters. - * @param __p Iterator referencing location in string to insert at. + * @param __p Const_iterator referencing location in string to + * insert at. * @param __l The initializer_list of characters to insert. + * @return Iterator referencing the first inserted char. * @throw std::length_error If new length exceeds @c max_size(). */ - void - insert(iterator __p, std::initializer_list<_CharT> __l) - { this->insert(__p, __l.begin(), __l.end()); } + iterator + insert(const_iterator __p, std::initializer_list<_CharT> __l) + { return this->insert(__p, __l.begin(), __l.end()); } #endif // C++11 /** @@ -1421,7 +1471,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template<class _InputIterator, typename = std::_RequireInputIter<_InputIterator>> __versa_string& - replace(iterator __i1, iterator __i2, + replace(const_iterator __i1, const_iterator __i2, _InputIterator __k1, _InputIterator __k2) { _GLIBCXX_DEBUG_PEDASSERT(_M_ibegin() <= __i1 && __i1 <= __i2 @@ -1447,7 +1497,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION // Specializations for the common case of pointer and iterator: // useful to avoid the overhead of temporary buffering in _M_replace. __versa_string& - replace(iterator __i1, iterator __i2, _CharT* __k1, _CharT* __k2) +#if __cplusplus >= 201103L + replace(const_iterator __i1, const_iterator __i2, + _CharT* __k1, _CharT* __k2) +#else + replace(iterator __i1, iterator __i2, + _CharT* __k1, _CharT* __k2) +#endif { _GLIBCXX_DEBUG_PEDASSERT(_M_ibegin() <= __i1 && __i1 <= __i2 && __i2 <= _M_iend()); @@ -1457,8 +1513,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION } __versa_string& +#if __cplusplus >= 201103L + replace(const_iterator __i1, const_iterator __i2, + const _CharT* __k1, const _CharT* __k2) +#else replace(iterator __i1, iterator __i2, const _CharT* __k1, const _CharT* __k2) +#endif { _GLIBCXX_DEBUG_PEDASSERT(_M_ibegin() <= __i1 && __i1 <= __i2 && __i2 <= _M_iend()); @@ -1468,7 +1529,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION } __versa_string& - replace(iterator __i1, iterator __i2, iterator __k1, iterator __k2) +#if __cplusplus >= 201103L + replace(const_iterator __i1, const_iterator __i2, + iterator __k1, iterator __k2) +#else + replace(iterator __i1, iterator __i2, + iterator __k1, iterator __k2) +#endif { _GLIBCXX_DEBUG_PEDASSERT(_M_ibegin() <= __i1 && __i1 <= __i2 && __i2 <= _M_iend()); @@ -1478,8 +1545,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION } __versa_string& +#if __cplusplus >= 201103L + replace(const_iterator __i1, const_iterator __i2, + const_iterator __k1, const_iterator __k2) +#else replace(iterator __i1, iterator __i2, const_iterator __k1, const_iterator __k2) +#endif { _GLIBCXX_DEBUG_PEDASSERT(_M_ibegin() <= __i1 && __i1 <= __i2 && __i2 <= _M_iend()); @@ -1502,22 +1574,24 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION * of result exceeds max_size(), length_error is thrown. The * value of the string doesn't change if an error is thrown. */ - __versa_string& replace(iterator __i1, iterator __i2, - std::initializer_list<_CharT> __l) + __versa_string& + replace(const_iterator __i1, const_iterator __i2, + std::initializer_list<_CharT> __l) { return this->replace(__i1, __i2, __l.begin(), __l.end()); } #endif // C++11 private: template<class _Integer> __versa_string& - _M_replace_dispatch(iterator __i1, iterator __i2, _Integer __n, - _Integer __val, std::__true_type) + _M_replace_dispatch(const_iterator __i1, const_iterator __i2, + _Integer __n, _Integer __val, std::__true_type) { return _M_replace_aux(__i1 - _M_ibegin(), __i2 - __i1, __n, __val); } template<class _InputIterator> __versa_string& - _M_replace_dispatch(iterator __i1, iterator __i2, _InputIterator __k1, - _InputIterator __k2, std::__false_type); + _M_replace_dispatch(const_iterator __i1, const_iterator __i2, + _InputIterator __k1, _InputIterator __k2, + std::__false_type); __versa_string& _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, diff --git a/libstdc++-v3/include/ext/vstring.tcc b/libstdc++-v3/include/ext/vstring.tcc index 2dcd295cfb8..0a80c26fd89 100644 --- a/libstdc++-v3/include/ext/vstring.tcc +++ b/libstdc++-v3/include/ext/vstring.tcc @@ -81,8 +81,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template<typename _InputIterator> __versa_string<_CharT, _Traits, _Alloc, _Base>& __versa_string<_CharT, _Traits, _Alloc, _Base>:: - _M_replace_dispatch(iterator __i1, iterator __i2, _InputIterator __k1, - _InputIterator __k2, std::__false_type) + _M_replace_dispatch(const_iterator __i1, const_iterator __i2, + _InputIterator __k1, _InputIterator __k2, + std::__false_type) { const __versa_string __s(__k1, __k2); const size_type __n1 = __i2 - __i1; diff --git a/libstdc++-v3/include/profile/deque b/libstdc++-v3/include/profile/deque index 0ec98386bae..c46618e27e4 100644 --- a/libstdc++-v3/include/profile/deque +++ b/libstdc++-v3/include/profile/deque @@ -344,31 +344,35 @@ namespace __profile insert(const_iterator __position, _Tp&& __x) { return emplace(__position, std::move(__x)); } - void - insert(iterator __p, initializer_list<value_type> __l) - { - _Base::insert(__p, __l); - } + iterator + insert(const_iterator __p, initializer_list<value_type> __l) + { return _Base::insert(__p, __l); } #endif +#if __cplusplus >= 201103L + iterator + insert(const_iterator __position, size_type __n, const _Tp& __x) + { return _Base::insert(__position, __n, __x); } +#else void insert(iterator __position, size_type __n, const _Tp& __x) - { - _Base::insert(__position, __n, __x); - } + { _Base::insert(__position, __n, __x); } +#endif #if __cplusplus >= 201103L template<typename _InputIterator, typename = std::_RequireInputIter<_InputIterator>> + iterator + insert(const_iterator __position, + _InputIterator __first, _InputIterator __last) + { return _Base::insert(__position, __first, __last); } #else template<typename _InputIterator> -#endif void insert(iterator __position, _InputIterator __first, _InputIterator __last) - { - _Base::insert(__position, __first, __last); - } + { _Base::insert(__position, __first, __last); } +#endif void pop_front() diff --git a/libstdc++-v3/include/profile/list b/libstdc++-v3/include/profile/list index 3a68bf7493a..ac09aa3db26 100644 --- a/libstdc++-v3/include/profile/list +++ b/libstdc++-v3/include/profile/list @@ -363,27 +363,43 @@ template<typename _Tp, typename _Allocator = std::allocator<_Tp> > this); } - void - insert(iterator __position, initializer_list<value_type> __l) + iterator + insert(const_iterator __position, initializer_list<value_type> __l) { _M_profile_insert(this, __position, size()); - _Base::insert(__position.base(), __l); + return iterator(_Base::insert(__position.base(), __l), this); } #endif +#if __cplusplus >= 201103L + iterator + insert(const_iterator __position, size_type __n, const _Tp& __x) + { + _M_profile_insert(this, __position, size()); + return iterator(_Base::insert(__position.base(), __n, __x), this); + } +#else void insert(iterator __position, size_type __n, const _Tp& __x) { _M_profile_insert(this, __position, size()); _Base::insert(__position.base(), __n, __x); } +#endif #if __cplusplus >= 201103L template<typename _InputIterator, typename = std::_RequireInputIter<_InputIterator>> + iterator + insert(const_iterator __position, _InputIterator __first, + _InputIterator __last) + { + _M_profile_insert(this, __position, size()); + return iterator(_Base::insert(__position.base(), __first, __last), + this); + } #else template<class _InputIterator> -#endif void insert(iterator __position, _InputIterator __first, _InputIterator __last) @@ -391,6 +407,7 @@ template<typename _Tp, typename _Allocator = std::allocator<_Tp> > _M_profile_insert(this, __position, size()); _Base::insert(__position.base(), __first, __last); } +#endif iterator #if __cplusplus >= 201103L @@ -423,7 +440,7 @@ template<typename _Tp, typename _Allocator = std::allocator<_Tp> > // 23.2.2.4 list operations: void #if __cplusplus >= 201103L - splice(iterator __position, list&& __x) + splice(const_iterator __position, list&& __x) #else splice(iterator __position, list& __x) #endif @@ -431,19 +448,17 @@ template<typename _Tp, typename _Allocator = std::allocator<_Tp> > #if __cplusplus >= 201103L void - splice(iterator __position, list& __x) + splice(const_iterator __position, list& __x) { this->splice(__position, std::move(__x)); } -#endif -#if __cplusplus >= 201103L void - splice(iterator __position, list& __x, iterator __i) + splice(const_iterator __position, list& __x, const_iterator __i) { this->splice(__position, std::move(__x), __i); } #endif void #if __cplusplus >= 201103L - splice(iterator __position, list&& __x, iterator __i) + splice(const_iterator __position, list&& __x, const_iterator __i) #else splice(iterator __position, list& __x, iterator __i) #endif @@ -458,8 +473,8 @@ template<typename _Tp, typename _Allocator = std::allocator<_Tp> > void #if __cplusplus >= 201103L - splice(iterator __position, list&& __x, iterator __first, - iterator __last) + splice(const_iterator __position, list&& __x, const_iterator __first, + const_iterator __last) #else splice(iterator __position, list& __x, iterator __first, iterator __last) @@ -474,7 +489,8 @@ template<typename _Tp, typename _Allocator = std::allocator<_Tp> > #if __cplusplus >= 201103L void - splice(iterator __position, list& __x, iterator __first, iterator __last) + splice(const_iterator __position, list& __x, + const_iterator __first, const_iterator __last) { this->splice(__position, std::move(__x), __first, __last); } #endif diff --git a/libstdc++-v3/include/profile/vector b/libstdc++-v3/include/profile/vector index de058d0d814..3ef04ff0a7c 100644 --- a/libstdc++-v3/include/profile/vector +++ b/libstdc++-v3/include/profile/vector @@ -44,6 +44,9 @@ namespace __profile { typedef _GLIBCXX_STD_C::vector<_Tp, _Allocator> _Base; + typedef typename _Base::iterator _Base_iterator; + typedef typename _Base::const_iterator _Base_const_iterator; + #if __cplusplus >= 201103L typedef __gnu_cxx::__alloc_traits<_Allocator> _Alloc_traits; #endif @@ -52,9 +55,9 @@ namespace __profile typedef typename _Base::reference reference; typedef typename _Base::const_reference const_reference; - typedef __iterator_tracker<typename _Base::iterator, vector> + typedef __iterator_tracker<_Base_iterator, vector> iterator; - typedef __iterator_tracker<typename _Base::const_iterator, vector> + typedef __iterator_tracker<_Base_const_iterator, vector> const_iterator; typedef typename _Base::size_type size_type; @@ -361,7 +364,7 @@ namespace __profile __profcxx_vector_insert(this, __position.base() - _Base::begin(), this->size()); size_type __old_size = this->capacity(); - typename _Base::iterator __res = _Base::insert(__position.base(), __x); + _Base_iterator __res = _Base::insert(__position.base(), __x); _M_profile_resize(this, __old_size, this->capacity()); return iterator(__res, this); } @@ -370,10 +373,10 @@ namespace __profile iterator insert(const_iterator __position, _Tp&& __x) { - __profcxx_vector_insert(this, __position.base() - _Base::begin(), + __profcxx_vector_insert(this, __position.base() - _Base::cbegin(), this->size()); size_type __old_size = this->capacity(); - typename _Base::iterator __res = _Base::insert(__position.base(), __x); + _Base_iterator __res = _Base::insert(__position.base(), __x); _M_profile_resize(this, __old_size, this->capacity()); return iterator(__res, this); } @@ -382,15 +385,14 @@ namespace __profile iterator emplace(const_iterator __position, _Args&&... __args) { - typename _Base::iterator __res - = _Base::emplace(__position.base(), - std::forward<_Args>(__args)...); + _Base_iterator __res = _Base::emplace(__position.base(), + std::forward<_Args>(__args)...); return iterator(__res, this); } - void - insert(iterator __position, initializer_list<value_type> __l) - { this->insert(__position, __l.begin(), __l.end()); } + iterator + insert(const_iterator __position, initializer_list<value_type> __l) + { return this->insert(__position, __l.begin(), __l.end()); } #endif #if __cplusplus >= 201103L @@ -404,12 +406,24 @@ namespace __profile void swap(vector& __x) #if __cplusplus >= 201103L - noexcept(_Alloc_traits::_S_nothrow_swap()) + noexcept(_Alloc_traits::_S_nothrow_swap()) #endif { _Base::swap(__x); } +#if __cplusplus >= 201103L + iterator + insert(const_iterator __position, size_type __n, const _Tp& __x) + { + __profcxx_vector_insert(this, __position.base() - _Base::cbegin(), + this->size()); + size_type __old_size = this->capacity(); + _Base_iterator __res = _Base::insert(__position, __n, __x); + _M_profile_resize(this, __old_size, this->capacity()); + return iterator(__res, this); + } +#else void insert(iterator __position, size_type __n, const _Tp& __x) { @@ -419,23 +433,35 @@ namespace __profile _Base::insert(__position, __n, __x); _M_profile_resize(this, __old_size, this->capacity()); } +#endif #if __cplusplus >= 201103L template<typename _InputIterator, typename = std::_RequireInputIter<_InputIterator>> + iterator + insert(const_iterator __position, + _InputIterator __first, _InputIterator __last) + { + __profcxx_vector_insert(this, __position.base() - _Base::cbegin(), + this->size()); + size_type __old_size = this->capacity(); + _Base_iterator __res = _Base::insert(__position, __first, __last); + _M_profile_resize(this, __old_size, this->capacity()); + return iterator(__res, this); + } #else template<typename _InputIterator> + void + insert(iterator __position, + _InputIterator __first, _InputIterator __last) + { + __profcxx_vector_insert(this, __position.base() - _Base::begin(), + this->size()); + size_type __old_size = this->capacity(); + _Base::insert(__position, __first, __last); + _M_profile_resize(this, __old_size, this->capacity()); + } #endif - void - insert(iterator __position, - _InputIterator __first, _InputIterator __last) - { - __profcxx_vector_insert(this, __position.base()-_Base::begin(), - this->size()); - size_type __old_size = this->capacity(); - _Base::insert(__position, __first, __last); - _M_profile_resize(this, __old_size, this->capacity()); - } iterator #if __cplusplus >= 201103L @@ -444,7 +470,7 @@ namespace __profile erase(iterator __position) #endif { - typename _Base::iterator __res = _Base::erase(__position.base()); + _Base_iterator __res = _Base::erase(__position.base()); return iterator(__res, this); } @@ -457,8 +483,7 @@ namespace __profile { // _GLIBCXX_RESOLVE_LIB_DEFECTS // 151. can't currently clear() empty container - typename _Base::iterator __res = _Base::erase(__first.base(), - __last.base()); + _Base_iterator __res = _Base::erase(__first.base(), __last.base()); return iterator(__res, this); } diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/compare/char/1.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/1.cc index 5561630014a..5561630014a 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/compare/char/1.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/1.cc diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/compare/char/13650.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/13650.cc index 9df4550c411..9df4550c411 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/compare/char/13650.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/13650.cc diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/compare/wchar_t/1.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc index ca5962de3c3..ca5962de3c3 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/compare/wchar_t/1.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/compare/wchar_t/13650.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/13650.cc index 857cdafc489..857cdafc489 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/compare/wchar_t/13650.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/13650.cc diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/operations/char/1.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/data/char/1.cc index 6fd3d9b62cd..6fd3d9b62cd 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/operations/char/1.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/data/char/1.cc diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/operations/wchar_t/1.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/data/wchar_t/1.cc index 97b5d4afcec..97b5d4afcec 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/operations/wchar_t/1.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/data/wchar_t/1.cc diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/find/char/1.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/1.cc index 0c09992d259..0c09992d259 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/find/char/1.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/1.cc diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/find/char/2.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/2.cc index 5e8b35a3d49..5e8b35a3d49 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/find/char/2.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/2.cc diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/find/char/3.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/3.cc index 4dec069c128..4dec069c128 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/find/char/3.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/3.cc diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/find/char/4.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/4.cc index d593f9d5338..d593f9d5338 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/find/char/4.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/4.cc diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/find/wchar_t/1.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/1.cc index 2b488a3e587..2b488a3e587 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/find/wchar_t/1.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/1.cc diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/find/wchar_t/2.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/2.cc index 3ada8ba3457..3ada8ba3457 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/find/wchar_t/2.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/2.cc diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/find/wchar_t/3.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/3.cc index 299c354aad8..299c354aad8 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/find/wchar_t/3.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/3.cc diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/find/wchar_t/4.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/4.cc index 1357eb972d6..1357eb972d6 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/find/wchar_t/4.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/4.cc diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/rfind/char/1.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/char/1.cc index 0fa46d37b51..0fa46d37b51 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/rfind/char/1.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/char/1.cc diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/rfind/char/2.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/char/2.cc index 79f41d6b352..79f41d6b352 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/rfind/char/2.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/char/2.cc diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/rfind/char/3.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/char/3.cc index cbd327f7dc8..cbd327f7dc8 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/rfind/char/3.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/char/3.cc diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/rfind/wchar_t/1.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/wchar_t/1.cc index 9b4cecf9e85..9b4cecf9e85 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/rfind/wchar_t/1.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/wchar_t/1.cc diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/rfind/wchar_t/2.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/wchar_t/2.cc index 1b38b403ffc..1b38b403ffc 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/rfind/wchar_t/2.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/wchar_t/2.cc diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/rfind/wchar_t/3.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/wchar_t/3.cc index 5db1e49b39a..5db1e49b39a 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/rfind/wchar_t/3.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/wchar_t/3.cc diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/substr/char/1.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/substr/char/1.cc index 463452fbdda..463452fbdda 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/substr/char/1.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/substr/char/1.cc diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/substr/wchar_t/1.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/substr/wchar_t/1.cc index ff3ecc890e2..ff3ecc890e2 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/substr/wchar_t/1.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/substr/wchar_t/1.cc diff --git a/libstdc++-v3/testsuite/23_containers/deque/modifiers/insert/const_iterator.cc b/libstdc++-v3/testsuite/23_containers/deque/modifiers/insert/const_iterator.cc index 915aa688a91..9af2bc90886 100644 --- a/libstdc++-v3/testsuite/23_containers/deque/modifiers/insert/const_iterator.cc +++ b/libstdc++-v3/testsuite/23_containers/deque/modifiers/insert/const_iterator.cc @@ -24,6 +24,9 @@ void test01() { std::deque<int> d1; int n = 0; - d1.insert(d1.cbegin(), n); - d1.insert(d1.cbegin(), 1); + std::deque<int>::iterator it = d1.insert(d1.cbegin(), n); + it = d1.insert(d1.cbegin(), 1); + it = d1.insert(d1.cbegin(), {2, 3}); + it = d1.insert(d1.cbegin(), 1, 4); + it = d1.insert(d1.cbegin(), d1.begin(), d1.end()); } diff --git a/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/assign_neg.cc b/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/assign_neg.cc index 9788b4d952d..7558ac7d855 100644 --- a/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/assign_neg.cc +++ b/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/assign_neg.cc @@ -18,7 +18,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile } -// { dg-error "no matching" "" { target *-*-* } 1724 } +// { dg-error "no matching" "" { target *-*-* } 1760 } #include <deque> diff --git a/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc b/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc index a85b5c3f9f8..ee6b721d9d3 100644 --- a/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc +++ b/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc @@ -18,7 +18,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile } -// { dg-error "no matching" "" { target *-*-* } 1657 } +// { dg-error "no matching" "" { target *-*-* } 1693 } #include <deque> diff --git a/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_2_neg.cc b/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_2_neg.cc index 162bdf0bf95..d36964efa4e 100644 --- a/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_2_neg.cc +++ b/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_2_neg.cc @@ -18,7 +18,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile } -// { dg-error "no matching" "" { target *-*-* } 1657 } +// { dg-error "no matching" "" { target *-*-* } 1693 } #include <deque> #include <utility> diff --git a/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/insert_neg.cc b/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/insert_neg.cc index 7e8356fd763..cda684d29f5 100644 --- a/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/insert_neg.cc +++ b/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/insert_neg.cc @@ -18,7 +18,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile } -// { dg-error "no matching" "" { target *-*-* } 1808 } +// { dg-error "no matching" "" { target *-*-* } 1844 } #include <deque> diff --git a/libstdc++-v3/testsuite/23_containers/list/modifiers/insert/const_iterator.cc b/libstdc++-v3/testsuite/23_containers/list/modifiers/insert/const_iterator.cc index 156bc0a58cb..75670ec7904 100644 --- a/libstdc++-v3/testsuite/23_containers/list/modifiers/insert/const_iterator.cc +++ b/libstdc++-v3/testsuite/23_containers/list/modifiers/insert/const_iterator.cc @@ -24,6 +24,9 @@ void test01() { std::list<int> l1; int n = 0; - l1.insert(l1.cbegin(), n); - l1.insert(l1.cbegin(), 1); + std::list<int>::iterator it = l1.insert(l1.cbegin(), n); + it = l1.insert(l1.cbegin(), 1); + it = l1.insert(l1.cbegin(), {2, 3}); + it = l1.insert(l1.cbegin(), 1, 4); + it = l1.insert(l1.cbegin(), l1.begin(), l1.end()); } diff --git a/libstdc++-v3/testsuite/23_containers/list/operations/splice/const_iterator.cc b/libstdc++-v3/testsuite/23_containers/list/operations/splice/const_iterator.cc new file mode 100644 index 00000000000..a2544dc9b1e --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/list/operations/splice/const_iterator.cc @@ -0,0 +1,32 @@ +// { dg-options "-std=gnu++11" } +// { dg-do compile } + +// Copyright (C) 2013 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// <http://www.gnu.org/licenses/>. + +#include <list> + +void test01() +{ + std::list<int> l1{0, 1}, l2{2, 3}; + l1.splice(l1.cbegin(), l2); + l2.splice(l2.cbegin(), std::move(l1)); + l1.splice(l1.cbegin(), l2, l2.cbegin()); + l2.splice(l2.cbegin(), std::move(l1), l1.cbegin()); + l1.splice(l1.cbegin(), l2, l2.cbegin(), l2.cend()); + l2.splice(l2.cbegin(), std::move(l1), l1.cbegin(), l1.cend()); +} diff --git a/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/assign_neg.cc b/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/assign_neg.cc index 218b862e348..80cf1033d27 100644 --- a/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/assign_neg.cc +++ b/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/assign_neg.cc @@ -18,7 +18,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile } -// { dg-error "no matching" "" { target *-*-* } 1559 } +// { dg-error "no matching" "" { target *-*-* } 1651 } #include <list> diff --git a/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc b/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc index 3f0b74939b1..333849252b1 100644 --- a/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc +++ b/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc @@ -18,7 +18,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile } -// { dg-error "no matching" "" { target *-*-* } 1511 } +// { dg-error "no matching" "" { target *-*-* } 1603 } #include <list> diff --git a/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc b/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc index b861f46fde2..fdf4fe9387f 100644 --- a/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc +++ b/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc @@ -18,7 +18,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile } -// { dg-error "no matching" "" { target *-*-* } 1511 } +// { dg-error "no matching" "" { target *-*-* } 1603 } #include <list> #include <utility> diff --git a/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/insert_neg.cc b/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/insert_neg.cc index fd38c0b36d6..3c33584e8de 100644 --- a/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/insert_neg.cc +++ b/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/insert_neg.cc @@ -18,7 +18,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile } -// { dg-error "no matching" "" { target *-*-* } 1511 } +// { dg-error "no matching" "" { target *-*-* } 1603 } #include <list> diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/hint.cc b/libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/hint.cc new file mode 100644 index 00000000000..f7bde0423dc --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/hint.cc @@ -0,0 +1,123 @@ +// Copyright (C) 2013 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// <http://www.gnu.org/licenses/>. + +// { dg-options "-std=gnu++11" } + +// Insert with hint, specific to this library implementation. + +#include <iterator> +#include <unordered_map> +#include <testsuite_hooks.h> + +void test01() +{ + bool test __attribute__((unused)) = true; + + typedef std::unordered_multimap<int, int> Map; + typedef typename Map::value_type Pair; + + Map m; + + auto it1 = m.insert(Pair(0, 0)); + VERIFY( it1 != m.end() ); + VERIFY( it1->first == 0 ); + VERIFY( it1->second == 0 ); + + auto it2 = m.insert(it1, Pair(0, 2)); + VERIFY( it2 != m.end() ); + VERIFY( it2 != it1 ); + VERIFY( it2->second == 2 ); + VERIFY( it2 == std::next(it1) ); + + Pair p(0, 1); + it2 = m.insert(it1, p); + VERIFY( it2 == std::next(it1) ); +} + +struct hasher +{ + std::size_t operator()(int val) const + { return val / 2; } +}; + +void test02() +{ + bool test __attribute__((unused)) = true; + + typedef std::unordered_multimap<int, int, hasher> Map; + typedef typename Map::value_type Pair; + + Map m; + + auto it1 = m.insert(Pair(0, 0)); + auto it2 = m.insert(it1, Pair(1, 0)); + VERIFY( m.bucket(it1->first) == m.bucket(it2->first) ); + VERIFY( m.bucket_size(m.bucket(it1->first)) == 2 ); + + auto it3 = m.insert(it2, Pair(2, 0)); + VERIFY( m.bucket(it3->first) != m.bucket(it2->first) ); + VERIFY( m.bucket_size(m.bucket(it3->first)) == 1 ); + + auto it4 = m.insert(it1, Pair(0, 1)); + VERIFY( it4 == std::next(it1) ); + VERIFY( m.bucket_size(m.bucket(it1->first)) == 3 ); + VERIFY( m.bucket_size(m.bucket(it3->first)) == 1 ); + + Pair p(1, 1); + it4 = m.insert(it2, p); + VERIFY( it4 == std::next(it2) ); + VERIFY( m.bucket_size(m.bucket(it1->first)) == 4 ); + auto range = m.equal_range(0); + VERIFY( std::distance(range.first, range.second) == 2 ); + range = m.equal_range(1); + VERIFY( std::distance(range.first, range.second) == 2 ); +} + +void test03() +{ + bool test __attribute__((unused)) = true; + + typedef std::unordered_multimap<int, int> Map; + typedef typename Map::value_type Pair; + + Map m; + + auto it1 = m.insert(Pair(0, 0)); + VERIFY( it1 != m.end() ); + VERIFY( it1->first == 0 ); + VERIFY( it1->second == 0 ); + + auto it2 = m.emplace_hint(it1, std::piecewise_construct, + std::make_tuple(0), + std::make_tuple(2)); + VERIFY( it2 != m.end() ); + VERIFY( it2 != it1 ); + VERIFY( it2->second == 2 ); + VERIFY( it2 == std::next(it1) ); + + Pair p(0, 1); + it2 = m.emplace_hint(it1, p); + VERIFY( it2 == std::next(it1) ); +} + +int main() +{ + test01(); + test02(); + test03(); + return 0; +} diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/instantiation_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/instantiation_neg.cc index f22c8bef31a..dcea9740689 100644 --- a/libstdc++-v3/testsuite/23_containers/unordered_set/instantiation_neg.cc +++ b/libstdc++-v3/testsuite/23_containers/unordered_set/instantiation_neg.cc @@ -19,7 +19,7 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// { dg-error "with noexcept" "" { target *-*-* } 254 } +// { dg-error "with noexcept" "" { target *-*-* } 253 } #include <unordered_set> diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/not_default_constructible_hash_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/not_default_constructible_hash_neg.cc index 7590344b61a..e1b96a4a44b 100644 --- a/libstdc++-v3/testsuite/23_containers/unordered_set/not_default_constructible_hash_neg.cc +++ b/libstdc++-v3/testsuite/23_containers/unordered_set/not_default_constructible_hash_neg.cc @@ -19,7 +19,7 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// { dg-error "default constructible" "" { target *-*-* } 272 } +// { dg-error "default constructible" "" { target *-*-* } 271 } #include <unordered_set> diff --git a/libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/const_iterator.cc b/libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/const_iterator.cc index b8993d84342..93f3d928711 100644 --- a/libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/const_iterator.cc +++ b/libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/const_iterator.cc @@ -23,5 +23,8 @@ void test01() { std::vector<bool> vb1; - vb1.insert(vb1.cbegin(), true); + std::vector<bool>::iterator it = vb1.insert(vb1.cbegin(), true); + it = vb1.insert(vb1.cbegin(), {false, true}); + it = vb1.insert(vb1.cbegin(), 1, false); + it = vb1.insert(vb1.cbegin(), vb1.begin(), vb1.end()); } diff --git a/libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/const_iterator.cc b/libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/const_iterator.cc index 5e5ef9e3739..b1bf91edc22 100644 --- a/libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/const_iterator.cc +++ b/libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/const_iterator.cc @@ -24,6 +24,9 @@ void test01() { std::vector<int> v1; int n = 0; - v1.insert(v1.cbegin(), n); - v1.insert(v1.cbegin(), 1); + std::vector<int>::iterator it = v1.insert(v1.cbegin(), n); + it = v1.insert(v1.cbegin(), 1); + it = v1.insert(v1.cbegin(), {2, 3}); + it = v1.insert(v1.cbegin(), 1, 4); + it = v1.insert(v1.cbegin(), v1.begin(), v1.end()); } diff --git a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc index e9434677282..f7353ab325c 100644 --- a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc +++ b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc @@ -18,7 +18,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile } -// { dg-error "no matching" "" { target *-*-* } 1264 } +// { dg-error "no matching" "" { target *-*-* } 1308 } #include <vector> diff --git a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc index ba14bcef2ad..f404a7009da 100644 --- a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc +++ b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc @@ -18,7 +18,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile } -// { dg-error "no matching" "" { target *-*-* } 1190 } +// { dg-error "no matching" "" { target *-*-* } 1234 } #include <vector> diff --git a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc index c9ac43782c4..070295676a5 100644 --- a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc +++ b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc @@ -18,7 +18,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile } -// { dg-error "no matching" "" { target *-*-* } 1190 } +// { dg-error "no matching" "" { target *-*-* } 1234 } #include <vector> #include <utility> diff --git a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc index 343edc2c7f3..95af05795ce 100644 --- a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc +++ b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc @@ -18,7 +18,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile } -// { dg-error "no matching" "" { target *-*-* } 1305 } +// { dg-error "no matching" "" { target *-*-* } 1349 } #include <vector> diff --git a/libstdc++-v3/testsuite/ext/vstring/modifiers/insert/char/const_iterator.cc b/libstdc++-v3/testsuite/ext/vstring/modifiers/insert/char/const_iterator.cc index 223ab66ab7d..6e922a0b719 100644 --- a/libstdc++-v3/testsuite/ext/vstring/modifiers/insert/char/const_iterator.cc +++ b/libstdc++-v3/testsuite/ext/vstring/modifiers/insert/char/const_iterator.cc @@ -23,5 +23,8 @@ void test01() { __gnu_cxx::__vstring vs1; - vs1.insert(vs1.cbegin(), '1'); + __gnu_cxx::__vstring::iterator it = vs1.insert(vs1.cbegin(), '1'); + it = vs1.insert(vs1.cbegin(), 1, '2'); + it = vs1.insert(vs1.cbegin(), {'3', '4'}); + it = vs1.insert(vs1.cbegin(), vs1.begin(), vs1.end()); } diff --git a/libstdc++-v3/testsuite/ext/vstring/modifiers/insert/wchar_t/const_iterator.cc b/libstdc++-v3/testsuite/ext/vstring/modifiers/insert/wchar_t/const_iterator.cc index 57fee54fdc4..86e949e578a 100644 --- a/libstdc++-v3/testsuite/ext/vstring/modifiers/insert/wchar_t/const_iterator.cc +++ b/libstdc++-v3/testsuite/ext/vstring/modifiers/insert/wchar_t/const_iterator.cc @@ -23,5 +23,8 @@ void test01() { __gnu_cxx::__wvstring wvs1; - wvs1.insert(wvs1.cbegin(), L'1'); + __gnu_cxx::__wvstring::iterator it = wvs1.insert(wvs1.cbegin(), L'1'); + it = wvs1.insert(wvs1.cbegin(), 1, L'2'); + it = wvs1.insert(wvs1.cbegin(), {L'3', L'4'}); + it = wvs1.insert(wvs1.cbegin(), wvs1.begin(), wvs1.end()); } diff --git a/libstdc++-v3/testsuite/ext/vstring/modifiers/replace/char/const_iterator.cc b/libstdc++-v3/testsuite/ext/vstring/modifiers/replace/char/const_iterator.cc index 0838443db77..61898098830 100644 --- a/libstdc++-v3/testsuite/ext/vstring/modifiers/replace/char/const_iterator.cc +++ b/libstdc++-v3/testsuite/ext/vstring/modifiers/replace/char/const_iterator.cc @@ -27,4 +27,6 @@ void test01() vs1.replace(vs1.cbegin(), vs1.cend(), "1", 1); vs1.replace(vs1.cbegin(), vs1.cend(), "2"); vs1.replace(vs1.cbegin(), vs1.cend(), 1, '3'); + vs1.replace(vs1.cbegin(), vs1.cend(), vs1.begin(), vs1.end()); + vs1.replace(vs1.cbegin(), vs1.cend(), {'4', '5'}); } diff --git a/libstdc++-v3/testsuite/ext/vstring/modifiers/replace/wchar_t/const_iterator.cc b/libstdc++-v3/testsuite/ext/vstring/modifiers/replace/wchar_t/const_iterator.cc index a909c9ca5a4..65466a6a9ba 100644 --- a/libstdc++-v3/testsuite/ext/vstring/modifiers/replace/wchar_t/const_iterator.cc +++ b/libstdc++-v3/testsuite/ext/vstring/modifiers/replace/wchar_t/const_iterator.cc @@ -27,4 +27,6 @@ void test01() wvs1.replace(wvs1.cbegin(), wvs1.cend(), L"1", 1); wvs1.replace(wvs1.cbegin(), wvs1.cend(), L"2"); wvs1.replace(wvs1.cbegin(), wvs1.cend(), 1, L'3'); + wvs1.replace(wvs1.cbegin(), wvs1.cend(), wvs1.begin(), wvs1.end()); + wvs1.replace(wvs1.cbegin(), wvs1.cend(), {'4', '5'}); } diff --git a/libstdc++-v3/testsuite/performance/23_containers/insert/unordered_multiset_hint.cc b/libstdc++-v3/testsuite/performance/23_containers/insert/unordered_multiset_hint.cc new file mode 100644 index 00000000000..4e96ec1b840 --- /dev/null +++ b/libstdc++-v3/testsuite/performance/23_containers/insert/unordered_multiset_hint.cc @@ -0,0 +1,336 @@ +// Copyright (C) 2013 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// <http://www.gnu.org/licenses/>. + +// { dg-options "-std=gnu++11" } + +#include <testsuite_performance.h> + +#include <sstream> +#include <string> +#include <vector> +#include <unordered_set> + +namespace +{ + const int sz = 2000000; + const std::string pattern = "test string #"; + const int nb_copies = 100; + + // Special std::string hasher based on std::hash<std::string> but not tag as + // slow so that hash code is not cached. It is easier to show impact of + // hinting in this context. + struct hasher + { + std::size_t + operator()(const std::string& str) const noexcept + { + //std::istringstream istr(str.substr(pattern.size())); + //std::size_t str_index; + //istr >> str_index; + //return str_index; + std::hash<std::string> std_hasher; + return std_hasher(str); + } + }; + + using ums_t = std::unordered_multiset<std::string, hasher>; + + void + insert_with_perfect_hint1(const std::vector<std::string>& strs, + ums_t& ms) + { + std::vector<typename ums_t::iterator> hints; + hints.reserve(strs.size()); + for (auto str : strs) + hints.push_back(ms.insert(str)); + + for (int j = 1; j != nb_copies; ++j) + for (std::size_t i = 0; i != strs.size(); ++i) + ms.insert(hints[i], strs[i]); + } + + void + insert_with_perfect_hint2(const std::vector<std::string>& strs, + ums_t& ms) + { + std::vector<typename ums_t::iterator> hints; + hints.reserve(strs.size()); + for (auto str : strs) + hints.push_back(ms.insert(str)); + + for (std::size_t i = 0; i != strs.size(); ++i) + for (int j = 1; j != nb_copies; ++j) + ms.insert(hints[i], strs[i]); + } + + // Always insert with the result of the previous insertion. The result of + // the previous insertion will never be followed by an equivalent node + // resulting in a re-computation of its hash code which is expensive. + void + insert_with_good_hint(const std::vector<std::string>& strs, + ums_t& ms) + { + std::vector<typename ums_t::iterator> hints; + hints.reserve(strs.size()); + for (auto str : strs) + hints.push_back(ms.insert(str)); + + for (int j = 1; j != nb_copies; ++j) + for (std::size_t i = 0; i != strs.size(); ++i) + hints[i] = ms.insert(hints[i], strs[i]); + } + + // Note that the following use case is particularly bad especially compared to + // the solution without hint because without hint the first insertion will put + // it first in the bucket and following insertions will detect it and insert + // just before. By giving a hint insertion will be done just after forcing to + // check if it has no impact on the following bucket. + void + insert_with_bad_hint(const std::vector<std::string>& strs, + ums_t& ms) + { + std::vector<typename ums_t::iterator> hints; + hints.reserve(strs.size()); + for (auto str : strs) + hints.push_back(ms.insert(str)); + + for (std::size_t i = 0; i != strs.size(); ++i) + for (int j = 1; j != nb_copies; ++j) + hints[i] = ms.insert(hints[i], strs[i]); + } + + void + insert_without_hint1(const std::vector<std::string>& strs, + ums_t& ms) + { + std::vector<typename ums_t::iterator> hints; + hints.reserve(strs.size()); + for (auto str : strs) + hints.push_back(ms.insert(str)); + + for (int j = 1; j != nb_copies; ++j) + for (std::size_t i = 0; i != strs.size(); ++i) + hints[i] = ms.insert(strs[i]); + } + + // This version is the best one if you insert all equivalent elements at the + // same time. It demonstrates that most of the time it is better not to give + // any hint unless you have written a benchmark for your application showing + // that it does have a positive effect. + void + insert_without_hint2(const std::vector<std::string>& strs, + ums_t& ms) + { + std::vector<typename ums_t::iterator> hints; + hints.reserve(strs.size()); + for (auto str : strs) + hints.push_back(ms.insert(str)); + + for (std::size_t i = 0; i != strs.size(); ++i) + for (int j = 1; j != nb_copies; ++j) + hints[i] = ms.insert(strs[i]); + } + + void + insert_with_any_hint1(const std::vector<std::string>& strs, + ums_t& ms) + { + std::vector<typename ums_t::iterator> hints; + hints.reserve(strs.size()); + for (auto str : strs) + hints.push_back(ms.insert(ms.begin(), str)); + + std::size_t offset = strs.size() / 2; + for (int j = 1; j != nb_copies; ++j) + for (std::size_t i = 0; i != strs.size(); ++i) + { + ms.insert(hints[(i + offset) % hints.size()], strs[i]); + ++offset; + } + } + + void + insert_with_any_hint2(const std::vector<std::string>& strs, + ums_t& ms) + { + std::vector<typename ums_t::iterator> hints; + hints.reserve(strs.size()); + for (auto str : strs) + hints.push_back(ms.insert(ms.begin(), str)); + + std::size_t offset = strs.size() / 2; + for (std::size_t i = 0; i != strs.size(); ++i) + for (int j = 1; j != nb_copies; ++j) + { + ms.insert(hints[(i + offset) % hints.size()], strs[i]); + ++offset; + } + } +} + +int main() +{ + using namespace __gnu_test; + + const int nb_iter = 10; + + std::vector<std::string> strs; + strs.reserve(sz / nb_copies); + + for (int i = 0; i != sz / nb_copies; ++i) + { + std::ostringstream osstr; + osstr << pattern << i; + strs.push_back(osstr.str()); + } + + ums_t ms; + // Use a large load factor to make the context ideal for using hint because we + // will have many elements per bucket. + ms.max_load_factor(10.0f); + ms.reserve(sz); + + // Warm up. + { + for (auto str : strs) + for (int j = 0; j != nb_copies; ++j) + ms.insert(str); + } + + time_counter time_no_hint1, time_any_hint1, time_bad_hint, time_perfect_hint1; + time_counter time_no_hint2, time_any_hint2, time_good_hint, time_perfect_hint2; + resource_counter resource_no_hint1, resource_any_hint1, resource_bad_hint, + resource_perfect_hint1; + resource_counter resource_no_hint2, resource_any_hint2, resource_good_hint, + resource_perfect_hint2; + + for (int i = 0; i != nb_iter; ++i) + { + // Bad hint + { + ms.clear(); + start_counters(time_bad_hint, resource_bad_hint); + insert_with_bad_hint(strs, ms); + stop_counters(time_bad_hint, resource_bad_hint); + } + + // No hint + { + ms.clear(); + start_counters(time_no_hint1, resource_no_hint1); + insert_without_hint1(strs, ms); + stop_counters(time_no_hint1, resource_no_hint1); + } + + // Any hint + { + ms.clear(); + start_counters(time_any_hint1, resource_any_hint1); + insert_with_any_hint1(strs, ms); + stop_counters(time_any_hint1, resource_any_hint1); + } + + // Good hint + { + ms.clear(); + start_counters(time_good_hint, resource_good_hint); + insert_with_good_hint(strs, ms); + stop_counters(time_good_hint, resource_good_hint); + } + + // No hint + { + ms.clear(); + start_counters(time_no_hint2, resource_no_hint2); + insert_without_hint2(strs, ms); + stop_counters(time_no_hint2, resource_no_hint2); + } + + // Perfect hint + { + ms.clear(); + start_counters(time_perfect_hint2, resource_perfect_hint2); + insert_with_perfect_hint2(strs, ms); + stop_counters(time_perfect_hint2, resource_perfect_hint2); + } + + // Any hint + { + ms.clear(); + start_counters(time_any_hint2, resource_any_hint2); + insert_with_any_hint2(strs, ms); + stop_counters(time_any_hint2, resource_any_hint2); + } + + // Perfect hint + { + ms.clear(); + start_counters(time_perfect_hint1, resource_perfect_hint1); + insert_with_perfect_hint1(strs, ms); + stop_counters(time_perfect_hint1, resource_perfect_hint1); + } + } + + std::ostringstream ostr; + ostr << "unordered_set " << nb_copies << " X " << sz / nb_copies + << " insertions w/o hint"; + report_performance(__FILE__, ostr.str().c_str(), + time_no_hint1, resource_no_hint1); + + ostr.str(""); + ostr << "unordered_set " << nb_copies << " X " << sz / nb_copies + << " insertions with any hint"; + report_performance(__FILE__, ostr.str().c_str(), + time_any_hint1, resource_any_hint1); + + ostr.str(""); + ostr << "unordered_set " << nb_copies << " X " << sz / nb_copies + << " insertions with good hint"; + report_performance(__FILE__, ostr.str().c_str(), + time_good_hint, resource_good_hint); + + ostr.str(""); + ostr << "unordered_set " << nb_copies << " X " << sz / nb_copies + << " insertions with perfect hint"; + report_performance(__FILE__, ostr.str().c_str(), + time_perfect_hint1, resource_perfect_hint1); + + ostr.str(""); + ostr << "unordered_set " << sz / nb_copies << " X " << nb_copies + << " insertions w/o hint"; + report_performance(__FILE__, ostr.str().c_str(), + time_no_hint2, resource_no_hint2); + + ostr.str(""); + ostr << "unordered_set " << sz / nb_copies << " X " << nb_copies + << " insertions with any hint"; + report_performance(__FILE__, ostr.str().c_str(), + time_any_hint2, resource_any_hint2); + + ostr.str(""); + ostr << "unordered_set " << sz / nb_copies << " X " << nb_copies + << " insertions with bad hint"; + report_performance(__FILE__, ostr.str().c_str(), + time_bad_hint, resource_bad_hint); + + ostr.str(""); + ostr << "unordered_set " << sz / nb_copies << " X " << nb_copies + << " insertions with perfect hint"; + report_performance(__FILE__, ostr.str().c_str(), + time_perfect_hint2, resource_perfect_hint2); + return 0; +} |