summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2013-07-03 11:40:08 +0000
committerbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2013-07-03 11:40:08 +0000
commit6983fe1e36db7532af100486b526f4131926025b (patch)
tree92a4c336516c44b56768d1319d2fe84c13b85e98
parentf33a0367d52b7cd93be9089eee3ccebb8b9e687d (diff)
downloadgcc-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
-rw-r--r--ChangeLog.MELT4
-rw-r--r--fixincludes/tests/base/linux/compiler.h14
-rw-r--r--gcc/ChangeLog442
-rw-r--r--gcc/DATESTAMP2
-rw-r--r--gcc/builtins.def6
-rw-r--r--gcc/c-family/ChangeLog7
-rw-r--r--gcc/c-family/array-notation-common.c93
-rw-r--r--gcc/c-family/c-common.c30
-rw-r--r--gcc/c-family/c-common.h2
-rw-r--r--gcc/c/ChangeLog5
-rw-r--r--gcc/c/c-parser.c39
-rw-r--r--gcc/config.gcc6
-rw-r--r--gcc/config/aarch64/aarch64-builtins.c1
-rw-r--r--gcc/config/aarch64/aarch64-protos.h11
-rw-r--r--gcc/config/aarch64/aarch64-simd-builtins.def7
-rw-r--r--gcc/config/aarch64/aarch64-simd.md22
-rw-r--r--gcc/config/aarch64/aarch64.c29
-rw-r--r--gcc/config/aarch64/aarch64.h10
-rw-r--r--gcc/config/aarch64/aarch64.md47
-rw-r--r--gcc/config/aarch64/arm_neon.h797
-rw-r--r--gcc/config/aarch64/predicates.md5
-rw-r--r--gcc/config/arm/arm.md384
-rw-r--r--gcc/config/arm/constraints.md3
-rw-r--r--gcc/config/arm/iwmmxt.md249
-rw-r--r--gcc/config/arm/iwmmxt2.md110
-rw-r--r--gcc/config/arm/marvell-f-iwmmxt.md34
-rw-r--r--gcc/config/arm/predicates.md6
-rw-r--r--gcc/config/arm/thumb2.md71
-rw-r--r--gcc/config/arm/vfp.md90
-rw-r--r--gcc/config/i386/bmiintrin.h12
-rw-r--r--gcc/config/i386/i386.c62
-rw-r--r--gcc/config/mips/mips-cpus.def2
-rw-r--r--gcc/config/mips/mips-tables.opt174
-rw-r--r--gcc/config/mips/mips.h2
-rw-r--r--gcc/config/mips/n32-elf.h35
-rw-r--r--gcc/config/mips/sde.h17
-rw-r--r--gcc/config/rs6000/rs6000.h24
-rw-r--r--gcc/cp/ChangeLog96
-rw-r--r--gcc/cp/call.c39
-rw-r--r--gcc/cp/class.c11
-rw-r--r--gcc/cp/cp-array-notation.c582
-rw-r--r--gcc/cp/cp-gimplify.c6
-rw-r--r--gcc/cp/cp-tree.h6
-rw-r--r--gcc/cp/parser.c471
-rw-r--r--gcc/cp/pt.c19
-rw-r--r--gcc/cp/semantics.c21
-rw-r--r--gcc/cp/typeck.c47
-rw-r--r--gcc/doc/invoke.texi2
-rw-r--r--gcc/dwarf2out.c16
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/array.c2
-rw-r--r--gcc/go/gofrontend/parse.cc2
-rw-r--r--gcc/go/gofrontend/types.cc7
-rw-r--r--gcc/lra-constraints.c11
-rw-r--r--gcc/po/ChangeLog4
-rw-r--r--gcc/po/ru.po4830
-rw-r--r--gcc/testsuite/ChangeLog113
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/decl-ptr-colon.c1
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/dimensionless-arrays.c4
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/fn_ptr.c11
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/misc.c28
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/rank_mismatch.c1
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/sec_implicit_ex.c2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/initlist73.C13
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/noexcept21.C87
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/udlit-nospace-neg.C4
-rw-r--r--gcc/testsuite/g++.dg/cpp1y/complex_literals.h12
-rw-r--r--gcc/testsuite/g++.dg/cpp1y/udlit-enc-prefix-neg.C17
-rw-r--r--gcc/testsuite/g++.dg/cpp1y/udlit-userdef-string.C7
-rw-r--r--gcc/testsuite/g++.dg/ext/pr57509.C16
-rw-r--r--gcc/testsuite/g++.dg/simulate-thread/atomics-1.C2
-rw-r--r--gcc/testsuite/g++.dg/simulate-thread/atomics-2.C1
-rw-r--r--gcc/testsuite/gcc.dg/atomic-flag.c1
-rw-r--r--gcc/testsuite/gcc.dg/vect/pr57741-1.c21
-rw-r--r--gcc/testsuite/gcc.dg/vect/pr57741-2.c44
-rw-r--r--gcc/testsuite/gcc.dg/vect/pr57741-3.c42
-rw-r--r--gcc/testsuite/gcc.target/aarch64/abs_1.c53
-rw-r--r--gcc/testsuite/gcc.target/aarch64/bfxil_1.c40
-rw-r--r--gcc/testsuite/gcc.target/aarch64/bfxil_2.c42
-rw-r--r--gcc/testsuite/gcc.target/aarch64/insv_1.c3
-rw-r--r--gcc/testsuite/gcc.target/aarch64/insv_2.c85
-rw-r--r--gcc/testsuite/gcc.target/i386/avx-inline.c20
-rw-r--r--gcc/testsuite/gcc.target/i386/bmi-1.c20
-rw-r--r--gcc/testsuite/gcc.target/i386/bmi-2.c20
-rw-r--r--gcc/testsuite/gcc.target/i386/bmi-bextr-4.c49
-rw-r--r--gcc/testsuite/gcc.target/i386/bmi-bextr-5.c48
-rw-r--r--gcc/testsuite/gcc.target/i386/pr57736.c41
-rw-r--r--gcc/testsuite/gcc.target/mips/call-1.c6
-rw-r--r--gcc/testsuite/gcc.target/mips/call-2.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/call-3.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/lazy-binding-1.c2
-rw-r--r--gcc/testsuite/gcc.target/powerpc/pr57744.c37
-rw-r--r--gcc/testsuite/gfortran.dg/pointer_remapping_8.f9010
-rw-r--r--gcc/testsuite/lib/target-supports.exp9
-rw-r--r--gcc/tree-vect-loop.c23
-rw-r--r--libcpp/ChangeLog6
-rw-r--r--libcpp/lex.c59
-rw-r--r--libgcc/ChangeLog9
-rw-r--r--libgcc/libgcc2.c41
-rw-r--r--libgomp/ChangeLog5
-rw-r--r--libgomp/testsuite/libgomp.fortran/strassen.f901
-rw-r--r--libstdc++-v3/ChangeLog93
-rw-r--r--libstdc++-v3/doc/xml/manual/containers.xml54
-rw-r--r--libstdc++-v3/include/bits/hashtable.h68
-rw-r--r--libstdc++-v3/include/bits/hashtable_policy.h37
-rw-r--r--libstdc++-v3/include/bits/list.tcc34
-rw-r--r--libstdc++-v3/include/bits/stl_bvector.h26
-rw-r--r--libstdc++-v3/include/bits/stl_deque.h52
-rw-r--r--libstdc++-v3/include/bits/stl_list.h138
-rw-r--r--libstdc++-v3/include/bits/stl_vector.h60
-rw-r--r--libstdc++-v3/include/debug/deque32
-rw-r--r--libstdc++-v3/include/debug/list48
-rw-r--r--libstdc++-v3/include/debug/vector47
-rw-r--r--libstdc++-v3/include/ext/vstring.h106
-rw-r--r--libstdc++-v3/include/ext/vstring.tcc5
-rw-r--r--libstdc++-v3/include/profile/deque28
-rw-r--r--libstdc++-v3/include/profile/list42
-rw-r--r--libstdc++-v3/include/profile/vector75
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/1.cc (renamed from libstdc++-v3/testsuite/21_strings/basic_string/compare/char/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/13650.cc (renamed from libstdc++-v3/testsuite/21_strings/basic_string/compare/char/13650.cc)0
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc (renamed from libstdc++-v3/testsuite/21_strings/basic_string/compare/wchar_t/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/13650.cc (renamed from libstdc++-v3/testsuite/21_strings/basic_string/compare/wchar_t/13650.cc)0
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operations/data/char/1.cc (renamed from libstdc++-v3/testsuite/21_strings/basic_string/operations/char/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operations/data/wchar_t/1.cc (renamed from libstdc++-v3/testsuite/21_strings/basic_string/operations/wchar_t/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/1.cc (renamed from libstdc++-v3/testsuite/21_strings/basic_string/find/char/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/2.cc (renamed from libstdc++-v3/testsuite/21_strings/basic_string/find/char/2.cc)0
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/3.cc (renamed from libstdc++-v3/testsuite/21_strings/basic_string/find/char/3.cc)0
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/4.cc (renamed from libstdc++-v3/testsuite/21_strings/basic_string/find/char/4.cc)0
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/1.cc (renamed from libstdc++-v3/testsuite/21_strings/basic_string/find/wchar_t/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/2.cc (renamed from libstdc++-v3/testsuite/21_strings/basic_string/find/wchar_t/2.cc)0
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/3.cc (renamed from libstdc++-v3/testsuite/21_strings/basic_string/find/wchar_t/3.cc)0
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/4.cc (renamed from libstdc++-v3/testsuite/21_strings/basic_string/find/wchar_t/4.cc)0
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/char/1.cc (renamed from libstdc++-v3/testsuite/21_strings/basic_string/rfind/char/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/char/2.cc (renamed from libstdc++-v3/testsuite/21_strings/basic_string/rfind/char/2.cc)0
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/char/3.cc (renamed from libstdc++-v3/testsuite/21_strings/basic_string/rfind/char/3.cc)0
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/wchar_t/1.cc (renamed from libstdc++-v3/testsuite/21_strings/basic_string/rfind/wchar_t/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/wchar_t/2.cc (renamed from libstdc++-v3/testsuite/21_strings/basic_string/rfind/wchar_t/2.cc)0
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/wchar_t/3.cc (renamed from libstdc++-v3/testsuite/21_strings/basic_string/rfind/wchar_t/3.cc)0
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operations/substr/char/1.cc (renamed from libstdc++-v3/testsuite/21_strings/basic_string/substr/char/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operations/substr/wchar_t/1.cc (renamed from libstdc++-v3/testsuite/21_strings/basic_string/substr/wchar_t/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/23_containers/deque/modifiers/insert/const_iterator.cc7
-rw-r--r--libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/assign_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_2_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/insert_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/list/modifiers/insert/const_iterator.cc7
-rw-r--r--libstdc++-v3/testsuite/23_containers/list/operations/splice/const_iterator.cc32
-rw-r--r--libstdc++-v3/testsuite/23_containers/list/requirements/dr438/assign_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/list/requirements/dr438/insert_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/hint.cc123
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_set/instantiation_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_set/not_default_constructible_hash_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/const_iterator.cc5
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/const_iterator.cc7
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/ext/vstring/modifiers/insert/char/const_iterator.cc5
-rw-r--r--libstdc++-v3/testsuite/ext/vstring/modifiers/insert/wchar_t/const_iterator.cc5
-rw-r--r--libstdc++-v3/testsuite/ext/vstring/modifiers/replace/char/const_iterator.cc2
-rw-r--r--libstdc++-v3/testsuite/ext/vstring/modifiers/replace/wchar_t/const_iterator.cc2
-rw-r--r--libstdc++-v3/testsuite/performance/23_containers/insert/unordered_multiset_hint.cc336
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&amp;)</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;
+}