+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-04-27 Release Manager
* GCC 6.1.0 released.
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-04-27 Release Manager
* GCC 6.1.0 released.
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-04-27 Release Manager
* GCC 6.1.0 released.
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
+2016-08-18 Richard Biener <rguenther@suse.de>
+
+ PR bootstrap/77279
+ * download_prerequisites: Patch ISL 0.15 to remove trailing comma
+ which causes PR77279.
+
2016-04-27 Release Manager
* GCC 6.1.0 released.
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$ISL.tar.bz2 || exit 1
tar xjf $ISL.tar.bz2 || exit 1
+ # Fix trailing comma which errors with -pedantic for host GCC <= 4.3
+ sed -e 's/isl_stat_ok = 0,/isl_stat_ok = 0/' isl-0.15/include/isl/ctx.h > isl-0.15/include/isl/ctx.h.tem && mv isl-0.15/include/isl/ctx.h.tem isl-0.15/include/isl/ctx.h
ln -sf $ISL isl || exit 1
fi
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-04-27 Release Manager
* GCC 6.1.0 released.
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-04-27 Release Manager
* GCC 6.1.0 released.
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-04-27 Release Manager
* GCC 6.1.0 released.
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-06-15 David Edelsohn <dje.gcc@gmail.com>
Backport from mainline
+2016-08-22 Richard Biener <rguenther@suse.de>
+
+ * BASE-VER: Set to 6.2.1.
+
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
+2016-08-18 Chung-Lin Tang <cltang@codesourcery.com>
+
+ Backport from mainline
+ 2016-08-18 Chung-Lin Tang <cltang@codesourcery.com>
+
+ PR middle-end/70895
+ * gimplify.c (omp_add_variable): Adjust/add variable mapping on
+ enclosing parallel construct for reduction variables on OpenACC loop
+ directives.
+
+2016-08-18 Oleg Endo <olegendo@gcc.gnu.org>
+
+ Backport from mainline
+ 2016-06-17 DJ Delorie <dj@redhat.com>
+
+ PR target/71338
+ * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
+ * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
+ (umulqihi3_virt): Likewise.
+ * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
+ (umulqihi3_real): Likewise.
+
+2016-08-16 Eric Botcazou <ebotcazou@adacore.com>
+
+ * doc/install.texi (*-*-solaris2*): Adjust latest change.
+
+2016-08-15 Martin Liska <mliska@suse.cz>
+
+ Backported from mainline
+ 2016-08-15 Martin Liska <mliska@suse.cz>
+
+ PR driver/72765
+ * gcc.c (do_spec_1): Call save_string with the right size.
+
+2016-08-15 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/71906
+ * dwarf2out.c (string_types): New variable.
+ (gen_array_type_die): Change early_dwarf handling of
+ DW_AT_string_length, create DW_OP_call4 referencing the
+ length var temporarily. Handle parameters that are pointers
+ to string length.
+ (adjust_string_types): New function.
+ (gen_subprogram_die): Temporarily set string_types to local var,
+ call adjust_string_types if needed.
+ (non_dwarf_expression, copy_deref_exprloc, optimize_string_length):
+ New functions.
+ (resolve_addr): Adjust DW_AT_string_length if it is DW_OP_call4.
+
+2016-08-15 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/73434
+ * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Preserve
+ TBAA info on the base when forwarding a non-invariant address.
+
+2016-08-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ * doc/install.texi (*-*-solaris2*): Fix version number and document
+ requirement on GNU make for building libjava with the Solaris linker.
+
+2016-08-15 Martin Liska <mliska@suse.cz>
+ Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/72824
+ * tree-loop-distribution.c (const_with_all_bytes_same)
+ <case VECTOR_CST>: Fix a typo.
+
+2016-08-14 Uros Bizjak <ubizjak@gmail.com>
+
+ Backport from mainline
+ 2016-08-14 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/76342
+ * config/i386/avx512fintrin.h (_mm512_undefined_epi32):
+ Renamed from _mm512_undefined_si512.
+ (_mm_undefined_si512): New definition.
+
+ Backport from mainline:
+ 2016-08-09 David Wohlferd <dw@LimeGreenSocks.com>
+
+ * config/i3836/avx512fintrin.h (_mm512_cvtsepi64_epi32): Remove
+ unused variable __O.
+
+ Backport from mainline:
+ 2016-08-09 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/72843
+ * config/i386/i386.md (*movtf_internal): Use
+ lra_in_progress || reload_completed instead of !can_create_pseudo_p
+ in the insn constraint.
+ (*movxf_internal): Ditto.
+ (*movdf_internal): Ditto.
+ (*movsf_internal): Ditto.
+
+2016-08-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/71512
+ * ubsan.c (instrument_si_overflow): Pass true instead of false
+ to gsi_replace.
+ (pass_ubsan::execute): Call gimple_purge_dead_eh_edges at the end
+ of bbs. Return TODO_cleanup_cfg if any returned true.
+
+2016-08-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
+
+ Backport from mainline
+ 2016-08-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
+
+ PR tree-optimization/71083
+ * tree-predcom.c (ref_at_iteration): Correctly align the
+ reference type.
+
+2016-08-12 James Greenhalgh <james.greenhalgh@arm.com
+
+ Backport from mainline
+ 2016-08-05 James Greenhalgh <james.greenhalgh@arm.com>
+
+ PR Target/72819
+ * config/aarch64/aarch64.h (aarch64_fp16_type_node): Declare.
+ (aarch64_fp16_ptr_type_node): Likewise.
+ * config/aarch64/aarch64-simd-builtins.c
+ (aarch64_fp16_ptr_type_node): Define.
+ (aarch64_init_fp16_types): New, refactored out of...
+ (aarch64_init_builtins): ...here, update to call
+ aarch64_init_fp16_types.
+ * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Handle
+ HFmode.
+ (aapcs_vfp_sub_candidate): Likewise.
+
+2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
+
+ Backport from mainline
+ 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
+
+ * config/s390/s390-builtin-types.def: Add INT128 types.
+ * config/s390/s390-builtins.def: Add INT128 variants for the add
+ sub low-level builtins dealing with TImode.
+ * config/s390/s390.c (s390_expand_builtin): Allow mode conversions
+ via subreg when expanding a builtin.
+ * config/s390/s390.md: Remove UNSPEC_VEC_ADDC_U128,
+ UNSPEC_VEC_SUB_U128, and UNSPEC_VEC_SUBC_U128 constants.
+ Fix comment.
+ * config/s390/vecintrin.h: Adjust builtin names accordingly.
+ * config/s390/vx-builtins.md ("vec_add_u128"): Remove expander.
+ ("vec_addc<mode>", "vec_addc_u128"): Merge to
+ "vacc<bhfgq>_<mode>".
+ ("vec_adde_u128"): Rename to "vacq". Change mode to TImode.
+ ("vec_addec_u128"): Rename to "vacccq". Change mode to TImode.
+ ("vec_subc<mode>", "vec_subc_u128"): Merge to
+ "vscbi<bhfgq>_<mode>".
+ ("vec_sube_u128"): Rename to "vsbiq". Change mode to TImode.
+ ("vec_subec_u128"): Rename to "vsbcbiq". Change mode to TImode.
+
+2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
+
+ Backport from mainline
+ 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
+
+ * config/s390/s390-builtins.def: Mark last operand of s390_vlvg*
+ and s390_vlgv* builtins as element selector.
+
+2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
+
+ Backport from mainline
+ 2016-07-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
+
+ * config/s390/s390.c (s390_expand_vec_init): Force initializer
+ element to register if it doesn't match general_operand.
+
+2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
+
+ Backport from mainline
+ 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
+
+ * config/s390/vecintrin.h: Fix file description in comment.
+
+2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
+
+ Backport from mainline
+ 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
+
+ * config/s390/s390-builtin-types.def: Change builtin type naming
+ scheme to match builtin-types.def.
+
+2016-08-10 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ Backport from mainline
+ 2016-08-10 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ PR target/72853
+ * config/rs6000/rs6000.c (mem_operand_ds_form): Add check for op
+ being an offsettable address.
+
+2016-08-10 Jakub Jelinek <jakub@redhat.com>
+
+ Backported from mainline
+ 2016-08-09 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/72824
+ * tree-loop-distribution.c (const_with_all_bytes_same): Verify
+ real_zerop is not negative.
+
+2016-08-09 Martin Jambor <mjambor@suse.cz>
+
+ PR ipa/71981
+ * ipa-polymorphic-call.c (get_dynamic_type): Bail out gracefully
+ if instance is a MEM_REF.
+
+2016-08-09 Richard Biener <rguenther@suse.de>
+
+ Backport from mainline
+ 2016-08-09 Richard Biener <rguenther@suse.de>
+
+ PR ipa/68273
+ * ipa-prop.c (ipa_modify_formal_parameters): Build
+ parameter types with natural alignment also for the
+ over-aligned case.
+
+ 2016-07-15 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/71881
+ * tree-loop-distribution.c (destroy_loop): Remove blocks in
+ reverse DOM order to make debug temp generation happy.
+
+2016-08-09 Alan Modra <amodra@gmail.com>
+
+ PR target/72802
+ * config/rs6000/rs6000.md (mov<mode>_hardfloat): Sort
+ alternatives. Put loads first, then stores, and reg/reg moves
+ within same class later. Delete attr length.
+
+2016-08-09 Alan Modra <amodra@gmail.com>
+
+ PR target/72802
+ * config/rs6000/rs6000.c (mem_operand_gpr): Remove vsx dform test.
+ (mem_operand_ds_form): New predicate.
+ * config/rs6000/rs6000-protos.h (mem_operand_ds_form): Declare.
+ * config/rs6000/constraints.md (wY): New constraint.
+ * config/rs6000/rs6000.md (f32_lm2, f32_sm2): Use wY for SF.
+ (extendsfdf2_fpr): Replace o constraint with wY.
+
+2016-08-08 Georg-Johann Lay <avr@gjlay.de>
+
+ Backport from 2016-07-29 trunk r238863.
+
+ PR rtl-optimization/71976
+ * combine.c (get_last_value): Return 0 if the argument for which
+ the function is called has a wider mode than the recorded value.
+
+2016-08-04 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ Backport from trunk
+ 2016-07-26 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ PR target/71869
+ * config/rs6000/rs6000.c (rs6000_generate_compare): Rework
+ __float128 support when we don't have hardware support, so that
+ the IEEE built-in functions like isgreater, first call __unordkf3
+ to make sure neither operand is a NaN, and if both operands are
+ ordered, do the normal comparison.
+
+2016-08-04 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/72805
+ * config/i386/avx512fintrin.h (_mm512_cmp_epi32_mask) [!__OPTIMIZE__]:
+ Cast builtin function result to __mmask16 instead of __mmask8.
+ (_mm512_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
+ (_mm512_mask_cmp_epi32_mask) [!__OPTIMIZE__]: Ditto.
+ (_mm512_mask_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
+
+2016-08-03 Georg-Johann Lay <avr@gjlay.de>
+
+ PR 70677
+ * common/config/avr/avr-common.c (avr_option_optimization_table)
+ [OPT_LEVELS_ALL]: Turn off -fcaller-saves.
+
+2016-08-01 Georg-Johann Lay <avr@gjlay.de>
+
+ Backport from 2016-08-01 trunk r238948.
+
+ PR target/72767
+ * config/avr/avr.md (length) [branch]: Correct insn length
+ attribute for forward branches.
+
+2016-08-01 Georg-Johann Lay <avr@gjlay.de>
+
+ Backport from 2016-06-16 trunk r237536.
+ 2016-06-16 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
+
+ PR target/71151
+ * config/avr/avr.c (avr_asm_init_sections): Remove setup of
+ progmem_swtable_section.
+ (progmem_swtable_section): Remove.
+ (avr_asm_function_rodata_section): Remove.
+ (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
+ * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION): Define to 1.
+
+2016-07-29 Marek Polacek <polacek@redhat.com>
+
+ Backport from mainline
+ 2016-07-29 Marek Polacek <polacek@redhat.com>
+
+ PR c/7652
+ * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Add break.
+ (altivec_expand_st_builtin): Likewise.
+ * config/i386/i386.c (ix86_expand_args_builtin): Likewise.
+ (ix86_expand_round_builtin): Likewise.
+
+2016-07-27 Segher Boessenkool <segher@kernel.crashing.org>
+
+ PR target/71216
+ * config/rs6000/rs6000.c (rs6000_file_start): Fix condition for
+ when to emit a ".machine" pseudo-op.
+
+2016-07-26 Alan Modra <amodra@gmail.com>
+
+ PR target/72103
+ * config/rs6000/rs6000.c (rs6000_secondary_reload): Initialize
+ sri->t_icode.
+
+2016-07-21 Jakub Jelinek <jakub@redhat.com>
+
+ PR sanitizer/71953
+ * asan.c (asan_dynamic_init_call): Call asan_init_shadow_ptr_types
+ before builtin_decl_implicit.
+
+ * tree-object-size.c (unknown): Use HOST_WIDE_INT_M1U instead of -1.
+
+2016-07-21 Andrew Sutton <andrew.n.sutton@gmail.com>
+
+ Improving concepts performance and diagnostics.
+ * timevar.def (TV_CONSTRAINT_SAT, TV_CONSTRAINT_SUB): New time vars
+ for constraint satisfaction and subsumption.
+ * timevar.h (auto_timevar): New constructor that matches the push/pop
+ pattern of usage in pt.c.
+
+2016-07-20 John David Anglin <danglin@gcc.gnu.org>
+
+ Backport from mainline
+ 2016-07-16 John David Anglin <danglin@gcc.gnu.org>
+
+ * config/pa/pa.c (hppa_profile_hook): Allocate stack space for
+ register parameters. Remove code to initialize argument pointer
+ on TARGET_64BIT. Optimize call to _mcount when it can be reached
+ using a pc-relative branch. Cleanup conditional code.
+ * config/pa/pa.md (call_mcount): New expander.
+ (call_mcount_nonpic): New insn.
+ (call_mcount_pic): New insn and split.
+ (call_mcount_pic_post_reload): New insn.
+ (call_mcount_64bit): New insn and split.
+ (call_mcount_64bit_post_reload): New insn.
+
+2016-07-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
+
+ Backport from mainline
+ 2016-07-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
+
+ * config/s390/s390.c (s390_encode_section_info): Remove mode size
+ check.
+
+2016-07-20 Martin Jambor <mjambor@suse.cz>
+
+ PR fortran/71688
+ * trans-decl.c (gfc_generate_function_code): Use get_create rather
+ than create to get a call graph node.
+
+2016-07-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/71916
+ * cfgrtl.c (contains_no_active_insn_p): Return false also for
+ bb which have a single succ fake edge.
+
+2016-07-19 Aldy Hernandez <aldyh@redhat.com>
+
+ PR debug/71855
+ * dwarf2out.c (gen_subprogram_die): Only call
+ gen_unspecified_parameters_die while dumping early dwarf.
+
+2016-07-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/71874
+ * gimple-fold.c (fold_builtin_memory_op): Use
+ get_addr_base_and_unit_offset instead of get_ref_base_and_extent.
+
+2016-07-18 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ Back port from mainline
+ 2016-07-18 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ PR target/71493
+ * config/rs6000/rs6000.c (rs6000_function_value): Fix
+ unintentional System V.4 structure return breakage for structures
+ with a single floating point element.
+
+2016-07-18 Martin Liska <mliska@suse.cz>
+
+ Backported from mainline
+ 2016-07-12 Martin Liska <mliska@suse.cz>
+
+ PR rtl-optimization/71634
+ * ira-build.c (mark_loops_for_removal): Properly iterate
+ loops.
+
+2016-07-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
+
+ Backport from mainline
+ 2016-07-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
+
+ * config/s390/s390.c (s390_encode_section_info): Always set
+ notaligned marker if mode size is 0 or no MEM_ALIGN info could be
+ found.
+
+2016-07-15 Alan Modra <amodra@gmail.com>
+
+ Apply from mainline
+ 2016-07-11 Alan Modra <amodra@gmail.com>
+ * config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec.
+ (ctr<mode>): Add unspec.
+ (ctr<mode>_internal*): Likewise.
+
+2016-07-14 Alan Modra <amodra@gmail.com>
+
+ PR target/71733
+ * config/rs6000/rs6000.c (rs6000_option_override_internal): Deal
+ with p9_vector override before power9-dform override.
+
+2016-07-13 Ilya Enkovich <ilya.enkovich@intel.com>
+
+ Backport from mainline r238086.
+ 2016-07-07 Ilya Enkovich <ilya.enkovich@intel.com>
+
+ PR ipa/71624
+ * ipa-inline-analysis.c (compute_inline_parameters): Set
+ local.can_change_signature to false for intrumentation
+ thunk callees.
+
+2016-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
+ Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ Backport from mainline
+ 2016-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
+ Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New
+ prototype.
+ * config/rs6000/rs6000.c (rs6000_split_signbit): New function.
+ * config/rs6000/rs6000.md (UNSPEC_SIGNBIT): New constant.
+ (SIGNBIT): New mode iterator.
+ (Fsignbit): New mode attribute.
+ (signbit<mode>2): Change operand1 to match FLOAT128 instead of
+ IBM128; dispatch to gen_signbit{kf,tf}2_dm for __float128
+ when direct moves are available.
+ (signbit<mode>2_dm): New define_insn_and_split).
+ (signbit<mode>2_dm2): New define_insn.
+
+2016-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ Backport from mainline
+ 2016-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ PR target/71805
+ * config/rs6000/altivec.md (altivec_vperm_<mode>_internal):
+ The xxperm and xxpermr instructions require that the 2nd input
+ operand overlap with the output operand, and not the 1st.
+ (altivec_vperm_v8hiv16qi): Likewise.
+ (altivec_vperm_<mode>_uns_internal): Likewise.
+ (altivec_vpermr_<mode>_internal): Likewise.
+ (vperm_v8hiv4si): Likewise.
+ (vperm_v16qiv8hi): Likewise.
+
+2016-07-12 Segher Boessenkool <segher@kernel.crashing.org>
+
+ Backport from mainline
+ 2016-07-06 Segher Boessenkool <segher@kernel.crashing.org>
+
+ PR target/70098
+ PR target/71763
+ * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
+ *ctr<mode>_internal5, *ctr<mode>_internal6): Add *wi to the output
+ constraint.
+
+2016-07-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/71758
+ * omp-low.c (expand_omp_target): Gimplify device.
+
+ PR tree-optimization/71823
+ * tree-vect-stmts.c (vectorizable_operation): Use vect_get_vec_defs
+ to get vec_oprnds2 from op2.
+
+2016-07-11 Yuri Rumyantsev <ysrumyan@gmail.com>
+
+ Backport from mainline r238055.
+ 2016-07-06 Yuri Rumyantsev <ysrumyan@gmail.com>
+
+ PR tree-optimization/71518
+ * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust
+ misalign also for outer loops with negative step.
+
2016-07-08 Martin Liska <mliska@suse.cz>
Backported from mainline
Backport from mainline
2016-07-06 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
- PR target/50739
+ PR target/50739
* config/avr/avr.c (avr_asm_select_section): Strip off
SECTION_DECLARED from flags when calling get_section.
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-06-13 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Deal with
tree
asan_dynamic_init_call (bool after_p)
{
+ if (shadow_ptr_types[0] == NULL_TREE)
+ asan_init_shadow_ptr_types ();
+
tree fn = builtin_decl_implicit (after_p
? BUILT_IN_ASAN_AFTER_DYNAMIC_INIT
: BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT);
pretty_printer module_name_pp;
pp_string (&module_name_pp, main_input_filename);
- if (shadow_ptr_types[0] == NULL_TREE)
- asan_init_shadow_ptr_types ();
module_name_cst = asan_pp_string (&module_name_pp);
module_name_cst = fold_convert (const_ptr_type_node,
module_name_cst);
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-07-05 Markus Trippelsdorf <markus@trippelsdorf.de>
PR c++/71214
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
+2016-08-12 Jakub Jelinek <jakub@redhat.com>
+ Martin Liska <mliska@suse.cz>
+
+ PR c/67410
+ * c-typeck.c (set_nonincremental_init_from_string): Use / instead of
+ % to determine val element to change. Assert that
+ wchar_bytes * charwidth fits into val array.
+
+2016-08-11 Jakub Jelinek <jakub@redhat.com>
+
+ Backported from mainline
+ 2016-08-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/72816
+ * c-decl.c (grokdeclarator): When adding TYPE_DOMAIN for flexible
+ array member through typedef, for orig_qual_indirect == 0 clear
+ orig_qual_type.
+
2016-07-02 Jakub Jelinek <jakub@redhat.com>
Backported from mainline
type = build_distinct_type_copy (TYPE_MAIN_VARIANT (type));
TYPE_DOMAIN (type) = build_range_type (sizetype, size_zero_node,
NULL_TREE);
+ if (orig_qual_indirect == 0)
+ orig_qual_type = NULL_TREE;
}
type = c_build_qualified_type (type, type_quals, orig_qual_type,
orig_qual_indirect);
wchar_bytes = TYPE_PRECISION (TREE_TYPE (TREE_TYPE (str))) / BITS_PER_UNIT;
charwidth = TYPE_PRECISION (char_type_node);
+ gcc_assert ((size_t) wchar_bytes * charwidth
+ <= ARRAY_SIZE (val) * HOST_BITS_PER_WIDE_INT);
type = TREE_TYPE (constructor_type);
p = TREE_STRING_POINTER (str);
end = p + TREE_STRING_LENGTH (str);
bitpos = (wchar_bytes - byte - 1) * charwidth;
else
bitpos = byte * charwidth;
- val[bitpos % HOST_BITS_PER_WIDE_INT]
+ val[bitpos / HOST_BITS_PER_WIDE_INT]
|= ((unsigned HOST_WIDE_INT) ((unsigned char) *p++))
<< (bitpos % HOST_BITS_PER_WIDE_INT);
}
{
rtx_insn *insn;
- if (bb == EXIT_BLOCK_PTR_FOR_FN (cfun) || bb == ENTRY_BLOCK_PTR_FOR_FN (cfun)
- || !single_succ_p (bb))
+ if (bb == EXIT_BLOCK_PTR_FOR_FN (cfun)
+ || bb == ENTRY_BLOCK_PTR_FOR_FN (cfun)
+ || !single_succ_p (bb)
+ || (single_succ_edge (bb)->flags & EDGE_FAKE) != 0)
return false;
for (insn = BB_HEAD (bb); insn != BB_END (bb); insn = NEXT_INSN (insn))
&& DF_INSN_LUID (rsp->last_set) >= subst_low_luid)
return 0;
+ /* If fewer bits were set than what we are asked for now, we cannot use
+ the value. */
+ if (GET_MODE_PRECISION (rsp->last_set_mode)
+ < GET_MODE_PRECISION (GET_MODE (x)))
+ return 0;
+
/* If the value has all its registers valid, return it. */
if (get_last_value_validate (&value, rsp->last_set, rsp->last_set_label, 0))
return value;
static const struct default_options avr_option_optimization_table[] =
{
{ OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 },
+ // The only effect of -fcaller-saves might be that it triggers
+ // a frame without need when it tries to be smart around calls.
+ { OPT_LEVELS_ALL, OPT_fcaller_saves, NULL, 0 },
{ OPT_LEVELS_NONE, 0, NULL, 0 }
};
};
#undef ENTRY
-/* This type is not SIMD-specific; it is the user-visible __fp16. */
-static tree aarch64_fp16_type_node = NULL_TREE;
-
static tree aarch64_simd_intOI_type_node = NULL_TREE;
static tree aarch64_simd_intCI_type_node = NULL_TREE;
static tree aarch64_simd_intXI_type_node = NULL_TREE;
+/* The user-visible __fp16 type, and a pointer to that type. Used
+ across the back-end. */
+tree aarch64_fp16_type_node = NULL_TREE;
+tree aarch64_fp16_ptr_type_node = NULL_TREE;
+
static const char *
aarch64_mangle_builtin_scalar_type (const_tree type)
{
}
}
+/* Initialize the backend types that support the user-visible __fp16
+ type, also initialize a pointer to that type, to be used when
+ forming HFAs. */
+
+static void
+aarch64_init_fp16_types (void)
+{
+ aarch64_fp16_type_node = make_node (REAL_TYPE);
+ TYPE_PRECISION (aarch64_fp16_type_node) = 16;
+ layout_type (aarch64_fp16_type_node);
+
+ (*lang_hooks.types.register_builtin_type) (aarch64_fp16_type_node, "__fp16");
+ aarch64_fp16_ptr_type_node = build_pointer_type (aarch64_fp16_type_node);
+}
+
void
aarch64_init_builtins (void)
{
= add_builtin_function ("__builtin_aarch64_set_fpsr", ftype_set_fpr,
AARCH64_BUILTIN_SET_FPSR, BUILT_IN_MD, NULL, NULL_TREE);
- aarch64_fp16_type_node = make_node (REAL_TYPE);
- TYPE_PRECISION (aarch64_fp16_type_node) = 16;
- layout_type (aarch64_fp16_type_node);
-
- (*lang_hooks.types.register_builtin_type) (aarch64_fp16_type_node, "__fp16");
+ aarch64_init_fp16_types ();
if (TARGET_SIMD)
aarch64_init_simd_builtins ();
field_t = long_double_type_node;
field_ptr_t = long_double_ptr_type_node;
break;
-/* The half precision and quad precision are not fully supported yet. Enable
- the following code after the support is complete. Need to find the correct
- type node for __fp16 *. */
-#if 0
case HFmode:
- field_t = float_type_node;
- field_ptr_t = float_ptr_type_node;
+ field_t = aarch64_fp16_type_node;
+ field_ptr_t = aarch64_fp16_ptr_type_node;
break;
-#endif
case V2SImode:
case V4SImode:
{
{
case REAL_TYPE:
mode = TYPE_MODE (type);
- if (mode != DFmode && mode != SFmode && mode != TFmode)
+ if (mode != DFmode && mode != SFmode
+ && mode != TFmode && mode != HFmode)
return -1;
if (*modep == VOIDmode)
case COMPLEX_TYPE:
mode = TYPE_MODE (TREE_TYPE (type));
- if (mode != DFmode && mode != SFmode && mode != TFmode)
+ if (mode != DFmode && mode != SFmode
+ && mode != TFmode && mode != HFmode)
return -1;
if (*modep == VOIDmode)
#define ASM_OUTPUT_POOL_EPILOGUE aarch64_asm_output_pool_epilogue
+/* This type is the user-visible __fp16, and a pointer to that type. We
+ need it in many places in the backend. Defined in aarch64-builtins.c. */
+extern tree aarch64_fp16_type_node;
+extern tree aarch64_fp16_ptr_type_node;
+
#endif /* GCC_AARCH64_H */
/* Current architecture. */
const avr_arch_t *avr_arch;
-/* Section to put switch tables in. */
-static GTY(()) section *progmem_swtable_section;
-
/* Unnamed sections associated to __attribute__((progmem)) aka. PROGMEM
or to address space __flash* or __memx. Only used as singletons inside
avr_asm_select_section, but it must not be local there because of GTY. */
static void
avr_asm_init_sections (void)
{
- /* Set up a section for jump tables. Alignment is handled by
- ASM_OUTPUT_BEFORE_CASE_LABEL. */
-
- if (AVR_HAVE_JMP_CALL)
- {
- progmem_swtable_section
- = get_unnamed_section (0, output_section_asm_op,
- "\t.section\t.progmem.gcc_sw_table"
- ",\"a\",@progbits");
- }
- else
- {
- progmem_swtable_section
- = get_unnamed_section (SECTION_CODE, output_section_asm_op,
- "\t.section\t.progmem.gcc_sw_table"
- ",\"ax\",@progbits");
- }
-
/* Override section callbacks to keep track of `avr_need_clear_bss_p'
resp. `avr_need_copy_data_p'. */
}
-/* Implement `TARGET_ASM_FUNCTION_RODATA_SECTION'. */
-
-static section*
-avr_asm_function_rodata_section (tree decl)
-{
- /* If a function is unused and optimized out by -ffunction-sections
- and --gc-sections, ensure that the same will happen for its jump
- tables by putting them into individual sections. */
-
- unsigned int flags;
- section * frodata;
-
- /* Get the frodata section from the default function in varasm.c
- but treat function-associated data-like jump tables as code
- rather than as user defined data. AVR has no constant pools. */
- {
- int fdata = flag_data_sections;
-
- flag_data_sections = flag_function_sections;
- frodata = default_function_rodata_section (decl);
- flag_data_sections = fdata;
- flags = frodata->common.flags;
- }
-
- if (frodata != readonly_data_section
- && flags & SECTION_NAMED)
- {
- /* Adjust section flags and replace section name prefix. */
-
- unsigned int i;
-
- static const char* const prefix[] =
- {
- ".rodata", ".progmem.gcc_sw_table",
- ".gnu.linkonce.r.", ".gnu.linkonce.t."
- };
-
- for (i = 0; i < sizeof (prefix) / sizeof (*prefix); i += 2)
- {
- const char * old_prefix = prefix[i];
- const char * new_prefix = prefix[i+1];
- const char * name = frodata->named.name;
-
- if (STR_PREFIX_P (name, old_prefix))
- {
- const char *rname = ACONCAT ((new_prefix,
- name + strlen (old_prefix), NULL));
- flags &= ~SECTION_CODE;
- flags |= AVR_HAVE_JMP_CALL ? 0 : SECTION_CODE;
-
- return get_section (rname, flags, frodata->named.decl);
- }
- }
- }
-
- return progmem_swtable_section;
-}
-
-
/* Implement `TARGET_ASM_NAMED_SECTION'. */
/* Track need of __do_clear_bss, __do_copy_data for named sections. */
#undef TARGET_FOLD_BUILTIN
#define TARGET_FOLD_BUILTIN avr_fold_builtin
-#undef TARGET_ASM_FUNCTION_RODATA_SECTION
-#define TARGET_ASM_FUNCTION_RODATA_SECTION avr_asm_function_rodata_section
-
#undef TARGET_SCALAR_MODE_SUPPORTED_P
#define TARGET_SCALAR_MODE_SUPPORTED_P avr_scalar_mode_supported_p
#define SUPPORTS_INIT_PRIORITY 0
-#define JUMP_TABLES_IN_TEXT_SECTION 0
+#define JUMP_TABLES_IN_TEXT_SECTION 1
#define ASM_COMMENT_START " ; "
(define_attr "length" ""
(cond [(eq_attr "type" "branch")
(if_then_else (and (ge (minus (pc) (match_dup 0))
- (const_int -63))
+ (const_int -62))
(le (minus (pc) (match_dup 0))
(const_int 62)))
(const_int 1)
(if_then_else (and (ge (minus (pc) (match_dup 0))
- (const_int -2045))
+ (const_int -2044))
(le (minus (pc) (match_dup 0))
(const_int 2045)))
(const_int 2)
_mm512_broadcastb_epi8 (__m128i __A)
{
return (__m512i) __builtin_ia32_pbroadcastb512_mask ((__v16qi) __A,
- (__v64qi)_mm512_undefined_si512(),
- (__mmask64) -
- 1);
+ (__v64qi)_mm512_undefined_epi32(),
+ (__mmask64) -1);
}
extern __inline __m512i
_mm512_broadcastw_epi16 (__m128i __A)
{
return (__m512i) __builtin_ia32_pbroadcastw512_mask ((__v8hi) __A,
- (__v32hi)_mm512_undefined_si512(),
- (__mmask32)-1);
+ (__v32hi)_mm512_undefined_epi32(),
+ (__mmask32) -1);
}
extern __inline __m512i
/* idx */ ,
(__v32hi) __A,
(__v32hi) __B,
- (__mmask32) -
- 1);
+ (__mmask32) -1);
}
extern __inline __m512i
{
return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
(__v64qi) __Y, 4,
- (__mmask64) - 1);
+ (__mmask64) -1);
}
extern __inline __mmask64
{
return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
(__v64qi) __Y, 1,
- (__mmask64) - 1);
+ (__mmask64) -1);
}
extern __inline __mmask64
{
return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
(__v64qi) __Y, 5,
- (__mmask64) - 1);
+ (__mmask64) -1);
}
extern __inline __mmask64
{
return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X,
(__v64qi) __Y, 2,
- (__mmask64) - 1);
+ (__mmask64) -1);
}
extern __inline __mmask32
{
return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
(__v32hi) __Y, 4,
- (__mmask32) - 1);
+ (__mmask32) -1);
}
extern __inline __mmask32
{
return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
(__v32hi) __Y, 1,
- (__mmask32) - 1);
+ (__mmask32) -1);
}
extern __inline __mmask32
{
return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
(__v32hi) __Y, 5,
- (__mmask32) - 1);
+ (__mmask32) -1);
}
extern __inline __mmask32
{
return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X,
(__v32hi) __Y, 2,
- (__mmask32) - 1);
+ (__mmask32) -1);
}
extern __inline __mmask64
{
return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
(__v64qi) __Y, 4,
- (__mmask64) - 1);
+ (__mmask64) -1);
}
extern __inline __mmask64
{
return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
(__v64qi) __Y, 1,
- (__mmask64) - 1);
+ (__mmask64) -1);
}
extern __inline __mmask64
{
return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
(__v64qi) __Y, 5,
- (__mmask64) - 1);
+ (__mmask64) -1);
}
extern __inline __mmask64
{
return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X,
(__v64qi) __Y, 2,
- (__mmask64) - 1);
+ (__mmask64) -1);
}
extern __inline __mmask32
{
return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
(__v32hi) __Y, 4,
- (__mmask32) - 1);
+ (__mmask32) -1);
}
extern __inline __mmask32
{
return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
(__v32hi) __Y, 1,
- (__mmask32) - 1);
+ (__mmask32) -1);
}
extern __inline __mmask32
{
return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
(__v32hi) __Y, 5,
- (__mmask32) - 1);
+ (__mmask32) -1);
}
extern __inline __mmask32
{
return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X,
(__v32hi) __Y, 2,
- (__mmask32) - 1);
+ (__mmask32) -1);
}
#ifdef __OPTIMIZE__
return (__m512d) __builtin_ia32_broadcastf64x2_512_mask ((__v2df)
__A,
_mm512_undefined_pd(),
- (__mmask8) -
- 1);
+ (__mmask8) -1);
}
extern __inline __m512d
{
return (__m512i) __builtin_ia32_broadcasti64x2_512_mask ((__v2di)
__A,
- _mm512_undefined_si512(),
- (__mmask8) -
- 1);
+ _mm512_undefined_epi32(),
+ (__mmask8) -1);
}
extern __inline __m512i
{
return (__m512) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A,
(__v16sf)_mm512_undefined_ps(),
- (__mmask16) -
- 1);
+ (__mmask16) -1);
}
extern __inline __m512
{
return (__m512i) __builtin_ia32_broadcasti32x2_512_mask ((__v4si)
__A,
- (__v16si)_mm512_undefined_si512(),
- (__mmask16)
- -1);
+ (__v16si)_mm512_undefined_epi32(),
+ (__mmask16) -1);
}
extern __inline __m512i
{
return (__m512) __builtin_ia32_broadcastf32x8_512_mask ((__v8sf) __A,
_mm512_undefined_ps(),
- (__mmask16) -
- 1);
+ (__mmask16) -1);
}
extern __inline __m512
{
return (__m512i) __builtin_ia32_broadcasti32x8_512_mask ((__v8si)
__A,
- (__v16si)_mm512_undefined_si512(),
- (__mmask16)
- -1);
+ (__v16si)_mm512_undefined_epi32(),
+ (__mmask16) -1);
}
extern __inline __m512i
__imm,
(__v2df)
_mm_setzero_pd (),
- (__mmask8) -
- 1);
+ (__mmask8) -1);
}
extern __inline __m128d
__imm,
(__v2di)
_mm_setzero_di (),
- (__mmask8) -
- 1);
+ (__mmask8) -1);
}
extern __inline __m128i
__imm,
(__v8di)
_mm512_setzero_si512 (),
- (__mmask8) -
- 1);
+ (__mmask8) -1);
}
extern __inline __m512i
__imm,
(__v8df)
_mm512_setzero_pd (),
- (__mmask8) -
- 1);
+ (__mmask8) -1);
}
extern __inline __m512d
{
return (__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) __A,
__imm,
- (__mmask16) -
- 1);
+ (__mmask16) -1);
}
#else
extern __inline __m512i
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_undefined_si512 (void)
+_mm512_undefined_epi32 (void)
{
__m512i __Y = __Y;
return __Y;
}
+#define _mm512_undefined_si512 _mm512_undefined_epi32
+
extern __inline __m512i
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_set1_epi8 (char __A)
return (__m512i) __builtin_ia32_psllv16si_mask ((__v16si) __X,
(__v16si) __Y,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
return (__m512i) __builtin_ia32_psrav16si_mask ((__v16si) __X,
(__v16si) __Y,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
return (__m512i) __builtin_ia32_psrlv16si_mask ((__v16si) __X,
(__v16si) __Y,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
return (__m512i) __builtin_ia32_psrav8di_mask ((__v8di) __X,
(__v8di) __Y,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
return (__m512i) __builtin_ia32_psrlv8di_mask ((__v8di) __X,
(__v8di) __Y,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
return (__m512i) __builtin_ia32_pmuldq512_mask ((__v16si) __X,
(__v16si) __Y,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
return (__m512i) __builtin_ia32_pmuludq512_mask ((__v16si) __X,
(__v16si) __Y,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
{
return (__m512i) __builtin_ia32_psllqi512_mask ((__v8di) __A, __B,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
#else
#define _mm512_slli_epi64(X, C) \
((__m512i) __builtin_ia32_psllqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
- (__v8di)(__m512i)_mm512_undefined_si512 (),\
+ (__v8di)(__m512i)_mm512_undefined_epi32 (),\
(__mmask8)-1))
#define _mm512_mask_slli_epi64(W, U, X, C) \
return (__m512i) __builtin_ia32_psllq512_mask ((__v8di) __A,
(__v2di) __B,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
{
return (__m512i) __builtin_ia32_psrlqi512_mask ((__v8di) __A, __B,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
#else
#define _mm512_srli_epi64(X, C) \
((__m512i) __builtin_ia32_psrlqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
- (__v8di)(__m512i)_mm512_undefined_si512 (),\
+ (__v8di)(__m512i)_mm512_undefined_epi32 (),\
(__mmask8)-1))
#define _mm512_mask_srli_epi64(W, U, X, C) \
return (__m512i) __builtin_ia32_psrlq512_mask ((__v8di) __A,
(__v2di) __B,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
{
return (__m512i) __builtin_ia32_psraqi512_mask ((__v8di) __A, __B,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
#else
#define _mm512_srai_epi64(X, C) \
((__m512i) __builtin_ia32_psraqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
- (__v8di)(__m512i)_mm512_undefined_si512 (),\
+ (__v8di)(__m512i)_mm512_undefined_epi32 (),\
(__mmask8)-1))
#define _mm512_mask_srai_epi64(W, U, X, C) \
return (__m512i) __builtin_ia32_psraq512_mask ((__v8di) __A,
(__v2di) __B,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
{
return (__m512i) __builtin_ia32_pslldi512_mask ((__v16si) __A, __B,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
#else
#define _mm512_slli_epi32(X, C) \
((__m512i) __builtin_ia32_pslldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
- (__v16si)(__m512i)_mm512_undefined_si512 (),\
+ (__v16si)(__m512i)_mm512_undefined_epi32 (),\
(__mmask16)-1))
#define _mm512_mask_slli_epi32(W, U, X, C) \
return (__m512i) __builtin_ia32_pslld512_mask ((__v16si) __A,
(__v4si) __B,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
{
return (__m512i) __builtin_ia32_psrldi512_mask ((__v16si) __A, __B,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
#else
#define _mm512_srli_epi32(X, C) \
((__m512i) __builtin_ia32_psrldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
- (__v16si)(__m512i)_mm512_undefined_si512 (),\
+ (__v16si)(__m512i)_mm512_undefined_epi32 (),\
(__mmask16)-1))
#define _mm512_mask_srli_epi32(W, U, X, C) \
return (__m512i) __builtin_ia32_psrld512_mask ((__v16si) __A,
(__v4si) __B,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
{
return (__m512i) __builtin_ia32_psradi512_mask ((__v16si) __A, __B,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
#else
#define _mm512_srai_epi32(X, C) \
((__m512i) __builtin_ia32_psradi512_mask ((__v16si)(__m512i)(X), (int)(C),\
- (__v16si)(__m512i)_mm512_undefined_si512 (),\
+ (__v16si)(__m512i)_mm512_undefined_epi32 (),\
(__mmask16)-1))
#define _mm512_mask_srai_epi32(W, U, X, C) \
return (__m512i) __builtin_ia32_psrad512_mask ((__v16si) __A,
(__v4si) __B,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
{
return (__m512i) __builtin_ia32_pmovsxbd512_mask ((__v16qi) __A,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
{
return (__m512i) __builtin_ia32_pmovsxbq512_mask ((__v16qi) __A,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
{
return (__m512i) __builtin_ia32_pmovsxwd512_mask ((__v16hi) __A,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
{
return (__m512i) __builtin_ia32_pmovsxwq512_mask ((__v8hi) __A,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
{
return (__m512i) __builtin_ia32_pmovsxdq512_mask ((__v8si) __X,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
{
return (__m512i) __builtin_ia32_pmovzxbd512_mask ((__v16qi) __A,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
{
return (__m512i) __builtin_ia32_pmovzxbq512_mask ((__v16qi) __A,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
{
return (__m512i) __builtin_ia32_pmovzxwd512_mask ((__v16hi) __A,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
{
return (__m512i) __builtin_ia32_pmovzxwq512_mask ((__v8hi) __A,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
{
return (__m512i) __builtin_ia32_pmovzxdq512_mask ((__v8si) __X,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
{
return (__m512i) __builtin_ia32_pabsq512_mask ((__v8di) __A,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
{
return (__m512i) __builtin_ia32_pabsd512_mask ((__v16si) __A,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
{
return (__m512i) __builtin_ia32_pbroadcastd512 ((__v4si) __A,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
{
return (__m512i) __builtin_ia32_pbroadcastd512_gpr_mask (__A,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16)(-1));
}
{
return (__m512i) __builtin_ia32_pbroadcastq512 ((__v2di) __A,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
{
return (__m512i) __builtin_ia32_pbroadcastq512_gpr_mask (__A,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8)(-1));
}
{
return (__m512i) __builtin_ia32_broadcasti32x4_512 ((__v4si) __A,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
{
return (__m512i) __builtin_ia32_broadcasti64x4_512 ((__v4di) __A,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
return (__m512i) __builtin_ia32_pshufd512_mask ((__v16si) __A,
__mask,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
return (__m512i) __builtin_ia32_shuf_i64x2_mask ((__v8di) __A,
(__v8di) __B, __imm,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
(__v16si) __B,
__imm,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
#else
#define _mm512_shuffle_epi32(X, C) \
((__m512i) __builtin_ia32_pshufd512_mask ((__v16si)(__m512i)(X), (int)(C),\
- (__v16si)(__m512i)_mm512_undefined_si512 (),\
+ (__v16si)(__m512i)_mm512_undefined_epi32 (),\
(__mmask16)-1))
#define _mm512_mask_shuffle_epi32(W, U, X, C) \
#define _mm512_shuffle_i64x2(X, Y, C) \
((__m512i) __builtin_ia32_shuf_i64x2_mask ((__v8di)(__m512i)(X), \
(__v8di)(__m512i)(Y), (int)(C),\
- (__v8di)(__m512i)_mm512_undefined_si512 (),\
+ (__v8di)(__m512i)_mm512_undefined_epi32 (),\
(__mmask8)-1))
#define _mm512_mask_shuffle_i64x2(W, U, X, Y, C) \
#define _mm512_shuffle_i32x4(X, Y, C) \
((__m512i) __builtin_ia32_shuf_i32x4_mask ((__v16si)(__m512i)(X), \
(__v16si)(__m512i)(Y), (int)(C),\
- (__v16si)(__m512i)_mm512_undefined_si512 (),\
+ (__v16si)(__m512i)_mm512_undefined_epi32 (),\
(__mmask16)-1))
#define _mm512_mask_shuffle_i32x4(W, U, X, Y, C) \
return (__m512i) __builtin_ia32_prolvd512_mask ((__v16si) __A,
(__v16si) __B,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
return (__m512i) __builtin_ia32_prorvd512_mask ((__v16si) __A,
(__v16si) __B,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
return (__m512i) __builtin_ia32_prolvq512_mask ((__v8di) __A,
(__v8di) __B,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
return (__m512i) __builtin_ia32_prorvq512_mask ((__v8di) __A,
(__v8di) __B,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
{
return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1, __R);
}
{
return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1, __R);
}
}
#else
#define _mm512_cvtt_roundps_epi32(A, B) \
- ((__m512i)__builtin_ia32_cvttps2dq512_mask(A, (__v16si)_mm512_undefined_si512 (), -1, B))
+ ((__m512i)__builtin_ia32_cvttps2dq512_mask(A, (__v16si)_mm512_undefined_epi32 (), -1, B))
#define _mm512_mask_cvtt_roundps_epi32(W, U, A, B) \
((__m512i)__builtin_ia32_cvttps2dq512_mask(A, (__v16si)(W), U, B))
((__m512i)__builtin_ia32_cvttps2dq512_mask(A, (__v16si)_mm512_setzero_si512 (), U, B))
#define _mm512_cvtt_roundps_epu32(A, B) \
- ((__m512i)__builtin_ia32_cvttps2udq512_mask(A, (__v16si)_mm512_undefined_si512 (), -1, B))
+ ((__m512i)__builtin_ia32_cvttps2udq512_mask(A, (__v16si)_mm512_undefined_epi32 (), -1, B))
#define _mm512_mask_cvtt_roundps_epu32(W, U, A, B) \
((__m512i)__builtin_ia32_cvttps2udq512_mask(A, (__v16si)(W), U, B))
{
return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1, __R);
}
{
return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1, __R);
}
}
#else
#define _mm512_cvt_roundps_epi32(A, B) \
- ((__m512i)__builtin_ia32_cvtps2dq512_mask(A, (__v16si)_mm512_undefined_si512 (), -1, B))
+ ((__m512i)__builtin_ia32_cvtps2dq512_mask(A, (__v16si)_mm512_undefined_epi32 (), -1, B))
#define _mm512_mask_cvt_roundps_epi32(W, U, A, B) \
((__m512i)__builtin_ia32_cvtps2dq512_mask(A, (__v16si)(W), U, B))
((__m512i)__builtin_ia32_cvtps2dq512_mask(A, (__v16si)_mm512_setzero_si512 (), U, B))
#define _mm512_cvt_roundps_epu32(A, B) \
- ((__m512i)__builtin_ia32_cvtps2udq512_mask(A, (__v16si)_mm512_undefined_si512 (), -1, B))
+ ((__m512i)__builtin_ia32_cvtps2udq512_mask(A, (__v16si)_mm512_undefined_epi32 (), -1, B))
#define _mm512_mask_cvt_roundps_epu32(W, U, A, B) \
((__m512i)__builtin_ia32_cvtps2udq512_mask(A, (__v16si)(W), U, B))
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_cvtsepi64_epi32 (__m512i __A)
{
- __v8si __O;
return (__m256i) __builtin_ia32_pmovsqd512_mask ((__v8di) __A,
(__v8si)
_mm256_undefined_si256 (),
(__v4di) __B,
__imm,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
#define _mm512_inserti64x4(X, Y, C) \
((__m512i) __builtin_ia32_inserti64x4_mask ((__v8di)(__m512i) (X), \
(__v4di)(__m256i) (Y), (int) (C), \
- (__v8di)(__m512i)_mm512_undefined_si512 (), \
+ (__v8di)(__m512i)_mm512_undefined_epi32 (), \
(__mmask8)-1))
#define _mm512_mask_inserti64x4(W, U, X, Y, C) \
{
return (__m512i) __builtin_ia32_permdi512_mask ((__v8di) __X, __I,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) (-1));
}
((__m512i) __builtin_ia32_permdi512_mask ((__v8di)(__m512i)(X), \
(int)(I), \
(__v8di)(__m512i) \
- (_mm512_undefined_si512 ()),\
+ (_mm512_undefined_epi32 ()),\
(__mmask8)(-1)))
#define _mm512_maskz_permutex_epi64(M, X, I) \
return (__m512i) __builtin_ia32_permvardi512_mask ((__v8di) __Y,
(__v8di) __X,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __Y,
(__v16si) __X,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
{
return (__m512i) __builtin_ia32_prold512_mask ((__v16si) __A, __B,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
{
return (__m512i) __builtin_ia32_prord512_mask ((__v16si) __A, __B,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
{
return (__m512i) __builtin_ia32_prolq512_mask ((__v8di) __A, __B,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
{
return (__m512i) __builtin_ia32_prorq512_mask ((__v8di) __A, __B,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
#define _mm512_rol_epi32(A, B) \
((__m512i)__builtin_ia32_prold512_mask ((__v16si)(__m512i)(A), \
(int)(B), \
- (__v16si)_mm512_undefined_si512 (), \
+ (__v16si)_mm512_undefined_epi32 (), \
(__mmask16)(-1)))
#define _mm512_mask_rol_epi32(W, U, A, B) \
((__m512i)__builtin_ia32_prold512_mask ((__v16si)(__m512i)(A), \
#define _mm512_ror_epi32(A, B) \
((__m512i)__builtin_ia32_prord512_mask ((__v16si)(__m512i)(A), \
(int)(B), \
- (__v16si)_mm512_undefined_si512 (), \
+ (__v16si)_mm512_undefined_epi32 (), \
(__mmask16)(-1)))
#define _mm512_mask_ror_epi32(W, U, A, B) \
((__m512i)__builtin_ia32_prord512_mask ((__v16si)(__m512i)(A), \
#define _mm512_rol_epi64(A, B) \
((__m512i)__builtin_ia32_prolq512_mask ((__v8di)(__m512i)(A), \
(int)(B), \
- (__v8di)_mm512_undefined_si512 (), \
+ (__v8di)_mm512_undefined_epi32 (), \
(__mmask8)(-1)))
#define _mm512_mask_rol_epi64(W, U, A, B) \
((__m512i)__builtin_ia32_prolq512_mask ((__v8di)(__m512i)(A), \
#define _mm512_ror_epi64(A, B) \
((__m512i)__builtin_ia32_prorq512_mask ((__v8di)(__m512i)(A), \
(int)(B), \
- (__v8di)_mm512_undefined_si512 (), \
+ (__v8di)_mm512_undefined_epi32 (), \
(__mmask8)(-1)))
#define _mm512_mask_ror_epi64(W, U, A, B) \
((__m512i)__builtin_ia32_prorq512_mask ((__v8di)(__m512i)(A), \
return (__m512i) __builtin_ia32_pandnd512_mask ((__v16si) __A,
(__v16si) __B,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
return (__m512i) __builtin_ia32_pandnd512_mask ((__v16si) __A,
(__v16si) __B,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
return (__m512i) __builtin_ia32_pandnq512_mask ((__v8di) __A,
(__v8di) __B,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
return (__m512i) __builtin_ia32_punpckhdq512_mask ((__v16si) __A,
(__v16si) __B,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
return (__m512i) __builtin_ia32_punpckhqdq512_mask ((__v8di) __A,
(__v8di) __B,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
return (__m512i) __builtin_ia32_punpckldq512_mask ((__v16si) __A,
(__v16si) __B,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
return (__m512i) __builtin_ia32_punpcklqdq512_mask ((__v8di) __A,
(__v8di) __B,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
return (__m512i) __builtin_ia32_alignd512_mask ((__v16si) __A,
(__v16si) __B, __imm,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
return (__m512i) __builtin_ia32_alignq512_mask ((__v8di) __A,
(__v8di) __B, __imm,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
#else
#define _mm512_alignr_epi32(X, Y, C) \
((__m512i)__builtin_ia32_alignd512_mask ((__v16si)(__m512i)(X), \
- (__v16si)(__m512i)(Y), (int)(C), (__v16si)_mm512_undefined_si512 (),\
+ (__v16si)(__m512i)(Y), (int)(C), (__v16si)_mm512_undefined_epi32 (),\
(__mmask16)-1))
#define _mm512_mask_alignr_epi32(W, U, X, Y, C) \
#define _mm512_alignr_epi64(X, Y, C) \
((__m512i)__builtin_ia32_alignq512_mask ((__v8di)(__m512i)(X), \
- (__v8di)(__m512i)(Y), (int)(C), (__v8di)_mm512_undefined_si512 (), \
+ (__v8di)(__m512i)(Y), (int)(C), (__v8di)_mm512_undefined_epi32 (), \
(__mmask8)-1))
#define _mm512_mask_alignr_epi64(W, U, X, Y, C) \
(__mmask8)-1))
#define _mm512_cmp_epi32_mask(X, Y, P) \
- ((__mmask8) __builtin_ia32_cmpd512_mask ((__v16si)(__m512i)(X), \
- (__v16si)(__m512i)(Y), (int)(P),\
- (__mmask16)-1))
+ ((__mmask16) __builtin_ia32_cmpd512_mask ((__v16si)(__m512i)(X), \
+ (__v16si)(__m512i)(Y), (int)(P), \
+ (__mmask16)-1))
#define _mm512_cmp_epu64_mask(X, Y, P) \
((__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di)(__m512i)(X), \
(__mmask8)-1))
#define _mm512_cmp_epu32_mask(X, Y, P) \
- ((__mmask8) __builtin_ia32_ucmpd512_mask ((__v16si)(__m512i)(X), \
- (__v16si)(__m512i)(Y), (int)(P),\
- (__mmask16)-1))
+ ((__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si)(__m512i)(X), \
+ (__v16si)(__m512i)(Y), (int)(P), \
+ (__mmask16)-1))
-#define _mm512_cmp_round_pd_mask(X, Y, P, R) \
+#define _mm512_cmp_round_pd_mask(X, Y, P, R) \
((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X), \
(__v8df)(__m512d)(Y), (int)(P),\
(__mmask8)-1, R))
-#define _mm512_cmp_round_ps_mask(X, Y, P, R) \
+#define _mm512_cmp_round_ps_mask(X, Y, P, R) \
((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X), \
(__v16sf)(__m512)(Y), (int)(P),\
(__mmask16)-1, R))
-#define _mm512_mask_cmp_epi64_mask(M, X, Y, P) \
+#define _mm512_mask_cmp_epi64_mask(M, X, Y, P) \
((__mmask8) __builtin_ia32_cmpq512_mask ((__v8di)(__m512i)(X), \
(__v8di)(__m512i)(Y), (int)(P),\
(__mmask8)M))
-#define _mm512_mask_cmp_epi32_mask(M, X, Y, P) \
- ((__mmask8) __builtin_ia32_cmpd512_mask ((__v16si)(__m512i)(X), \
- (__v16si)(__m512i)(Y), (int)(P),\
- (__mmask16)M))
+#define _mm512_mask_cmp_epi32_mask(M, X, Y, P) \
+ ((__mmask16) __builtin_ia32_cmpd512_mask ((__v16si)(__m512i)(X), \
+ (__v16si)(__m512i)(Y), (int)(P), \
+ (__mmask16)M))
-#define _mm512_mask_cmp_epu64_mask(M, X, Y, P) \
+#define _mm512_mask_cmp_epu64_mask(M, X, Y, P) \
((__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di)(__m512i)(X), \
(__v8di)(__m512i)(Y), (int)(P),\
(__mmask8)M))
-#define _mm512_mask_cmp_epu32_mask(M, X, Y, P) \
- ((__mmask8) __builtin_ia32_ucmpd512_mask ((__v16si)(__m512i)(X), \
- (__v16si)(__m512i)(Y), (int)(P),\
- (__mmask16)M))
+#define _mm512_mask_cmp_epu32_mask(M, X, Y, P) \
+ ((__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si)(__m512i)(X), \
+ (__v16si)(__m512i)(Y), (int)(P), \
+ (__mmask16)M))
-#define _mm512_mask_cmp_round_pd_mask(M, X, Y, P, R) \
+#define _mm512_mask_cmp_round_pd_mask(M, X, Y, P, R) \
((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X), \
(__v8df)(__m512d)(Y), (int)(P),\
(__mmask8)M, R))
-#define _mm512_mask_cmp_round_ps_mask(M, X, Y, P, R) \
+#define _mm512_mask_cmp_round_ps_mask(M, X, Y, P, R) \
((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X), \
(__v16sf)(__m512)(Y), (int)(P),\
(__mmask16)M, R))
-#define _mm_cmp_round_sd_mask(X, Y, P, R) \
+#define _mm_cmp_round_sd_mask(X, Y, P, R) \
((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X), \
(__v2df)(__m128d)(Y), (int)(P),\
(__mmask8)-1, R))
-#define _mm_mask_cmp_round_sd_mask(M, X, Y, P, R) \
+#define _mm_mask_cmp_round_sd_mask(M, X, Y, P, R) \
((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X), \
(__v2df)(__m128d)(Y), (int)(P),\
(M), R))
-#define _mm_cmp_round_ss_mask(X, Y, P, R) \
+#define _mm_cmp_round_ss_mask(X, Y, P, R) \
((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X), \
(__v4sf)(__m128)(Y), (int)(P), \
(__mmask8)-1, R))
-#define _mm_mask_cmp_round_ss_mask(M, X, Y, P, R) \
+#define _mm_mask_cmp_round_ss_mask(M, X, Y, P, R) \
((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X), \
(__v4sf)(__m128)(Y), (int)(P), \
(M), R))
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_i32gather_epi32 (__m512i __index, int const *__addr, int __scale)
{
- __m512i v1_old = _mm512_undefined_si512 ();
+ __m512i v1_old = _mm512_undefined_epi32 ();
__mmask16 mask = 0xFFFF;
return (__m512i) __builtin_ia32_gathersiv16si ((__v16si) v1_old,
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_i32gather_epi64 (__m256i __index, long long const *__addr, int __scale)
{
- __m512i v1_old = _mm512_undefined_si512 ();
+ __m512i v1_old = _mm512_undefined_epi32 ();
__mmask8 mask = 0xFF;
return (__m512i) __builtin_ia32_gathersiv8di ((__v8di) v1_old,
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_i64gather_epi64 (__m512i __index, long long const *__addr, int __scale)
{
- __m512i v1_old = _mm512_undefined_si512 ();
+ __m512i v1_old = _mm512_undefined_epi32 ();
__mmask8 mask = 0xFF;
return (__m512i) __builtin_ia32_gatherdiv8di ((__v8di) v1_old,
(__mmask8)MASK, (int)SCALE)
#define _mm512_i32gather_epi32(INDEX, ADDR, SCALE) \
- (__m512i) __builtin_ia32_gathersiv16si ((__v16si)_mm512_undefined_si512 (), \
+ (__m512i) __builtin_ia32_gathersiv16si ((__v16si)_mm512_undefined_epi32 (), \
(int const *)ADDR, \
(__v16si)(__m512i)INDEX, \
(__mmask16)0xFFFF, (int)SCALE)
(__mmask16)MASK, (int)SCALE)
#define _mm512_i32gather_epi64(INDEX, ADDR, SCALE) \
- (__m512i) __builtin_ia32_gathersiv8di ((__v8di)_mm512_undefined_si512 (), \
+ (__m512i) __builtin_ia32_gathersiv8di ((__v8di)_mm512_undefined_epi32 (), \
(long long const *)ADDR, \
(__v8si)(__m256i)INDEX, \
(__mmask8)0xFF, (int)SCALE)
(__mmask8)MASK, (int)SCALE)
#define _mm512_i64gather_epi64(INDEX, ADDR, SCALE) \
- (__m512i) __builtin_ia32_gatherdiv8di ((__v8di)_mm512_undefined_si512 (), \
+ (__m512i) __builtin_ia32_gatherdiv8di ((__v8di)_mm512_undefined_epi32 (), \
(long long const *)ADDR, \
(__v8di)(__m512i)INDEX, \
(__mmask8)0xFF, (int)SCALE)
return (__m512i) __builtin_ia32_pmaxsq512_mask ((__v8di) __A,
(__v8di) __B,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
return (__m512i) __builtin_ia32_pminsq512_mask ((__v8di) __A,
(__v8di) __B,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
return (__m512i) __builtin_ia32_pmaxuq512_mask ((__v8di) __A,
(__v8di) __B,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
return (__m512i) __builtin_ia32_pminuq512_mask ((__v8di) __A,
(__v8di) __B,
(__v8di)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask8) -1);
}
return (__m512i) __builtin_ia32_pmaxsd512_mask ((__v16si) __A,
(__v16si) __B,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
return (__m512i) __builtin_ia32_pminsd512_mask ((__v16si) __A,
(__v16si) __B,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
return (__m512i) __builtin_ia32_pmaxud512_mask ((__v16si) __A,
(__v16si) __B,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
return (__m512i) __builtin_ia32_pminud512_mask ((__v16si) __A,
(__v16si) __B,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1);
}
{
return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1,
_MM_FROUND_CUR_DIRECTION);
}
{
return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1,
_MM_FROUND_CUR_DIRECTION);
}
{
return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1,
_MM_FROUND_CUR_DIRECTION);
}
{
return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A,
(__v16si)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask16) -1,
_MM_FROUND_CUR_DIRECTION);
}
return (__m512i) __builtin_ia32_vpmadd52luq512_mask ((__v8di) __X,
(__v8di) __Y,
(__v8di) __Z,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __m512i
return (__m512i) __builtin_ia32_vpmadd52huq512_mask ((__v8di) __X,
(__v8di) __Y,
(__v8di) __Z,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __m512i
return (__m128i) __builtin_ia32_vpmadd52luq128_mask ((__v2di) __X,
(__v2di) __Y,
(__v2di) __Z,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __m128i
return (__m128i) __builtin_ia32_vpmadd52huq128_mask ((__v2di) __X,
(__v2di) __Y,
(__v2di) __Z,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __m256i
return (__m256i) __builtin_ia32_vpmadd52luq256_mask ((__v4di) __X,
(__v4di) __Y,
(__v4di) __Z,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __m256i
return (__m256i) __builtin_ia32_vpmadd52huq256_mask ((__v4di) __X,
(__v4di) __Y,
(__v4di) __Z,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __m128i
return (__m512i) __builtin_ia32_vpmultishiftqb512_mask ((__v64qi) __X,
(__v64qi) __Y,
(__v64qi)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask64) -1);
}
return (__m512i) __builtin_ia32_permvarqi512_mask ((__v64qi) __B,
(__v64qi) __A,
(__v64qi)
- _mm512_undefined_si512 (),
+ _mm512_undefined_epi32 (),
(__mmask64) -1);
}
/* idx */ ,
(__v64qi) __A,
(__v64qi) __B,
- (__mmask64) -
- 1);
+ (__mmask64) -1);
}
extern __inline __m512i
/* idx */ ,
(__v32qi) __A,
(__v32qi) __B,
- (__mmask32) -
- 1);
+ (__mmask32) -1);
}
extern __inline __m256i
/* idx */ ,
(__v16qi) __A,
(__v16qi) __B,
- (__mmask16) -
- 1);
+ (__mmask16) -1);
}
extern __inline __m128i
/* idx */ ,
(__v16hi) __A,
(__v16hi) __B,
- (__mmask16) -
- 1);
+ (__mmask16) -1);
}
extern __inline __m256i
/* idx */ ,
(__v8hi) __A,
(__v8hi) __B,
- (__mmask8) -
- 1);
+ (__mmask8) -1);
}
extern __inline __m128i
{
return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
(__v32qi) __Y, 4,
- (__mmask32) - 1);
+ (__mmask32) -1);
}
extern __inline __mmask32
{
return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
(__v32qi) __Y, 1,
- (__mmask32) - 1);
+ (__mmask32) -1);
}
extern __inline __mmask32
{
return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
(__v32qi) __Y, 5,
- (__mmask32) - 1);
+ (__mmask32) -1);
}
extern __inline __mmask32
{
return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X,
(__v32qi) __Y, 2,
- (__mmask32) - 1);
+ (__mmask32) -1);
}
extern __inline __mmask16
{
return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
(__v16hi) __Y, 4,
- (__mmask16) - 1);
+ (__mmask16) -1);
}
extern __inline __mmask16
{
return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
(__v16hi) __Y, 1,
- (__mmask16) - 1);
+ (__mmask16) -1);
}
extern __inline __mmask16
{
return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
(__v16hi) __Y, 5,
- (__mmask16) - 1);
+ (__mmask16) -1);
}
extern __inline __mmask16
{
return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X,
(__v16hi) __Y, 2,
- (__mmask16) - 1);
+ (__mmask16) -1);
}
extern __inline __mmask16
{
return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
(__v16qi) __Y, 4,
- (__mmask16) - 1);
+ (__mmask16) -1);
}
extern __inline __mmask16
{
return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
(__v16qi) __Y, 1,
- (__mmask16) - 1);
+ (__mmask16) -1);
}
extern __inline __mmask16
{
return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
(__v16qi) __Y, 5,
- (__mmask16) - 1);
+ (__mmask16) -1);
}
extern __inline __mmask16
{
return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X,
(__v16qi) __Y, 2,
- (__mmask16) - 1);
+ (__mmask16) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
(__v8hi) __Y, 4,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
(__v8hi) __Y, 1,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
(__v8hi) __Y, 5,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_ucmpw128_mask ((__v8hi) __X,
(__v8hi) __Y, 2,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask16
{
return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
(__v16qi) __Y, 4,
- (__mmask16) - 1);
+ (__mmask16) -1);
}
extern __inline __mmask16
{
return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
(__v16qi) __Y, 1,
- (__mmask16) - 1);
+ (__mmask16) -1);
}
extern __inline __mmask16
{
return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
(__v16qi) __Y, 5,
- (__mmask16) - 1);
+ (__mmask16) -1);
}
extern __inline __mmask16
{
return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X,
(__v16qi) __Y, 2,
- (__mmask16) - 1);
+ (__mmask16) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
(__v8hi) __Y, 4,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
(__v8hi) __Y, 1,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
(__v8hi) __Y, 5,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X,
(__v8hi) __Y, 2,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __m256i
{
return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
(__v32qi) __Y, 4,
- (__mmask32) - 1);
+ (__mmask32) -1);
}
extern __inline __mmask32
{
return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
(__v32qi) __Y, 1,
- (__mmask32) - 1);
+ (__mmask32) -1);
}
extern __inline __mmask32
{
return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
(__v32qi) __Y, 5,
- (__mmask32) - 1);
+ (__mmask32) -1);
}
extern __inline __mmask32
{
return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X,
(__v32qi) __Y, 2,
- (__mmask32) - 1);
+ (__mmask32) -1);
}
extern __inline __mmask16
{
return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
(__v16hi) __Y, 4,
- (__mmask16) - 1);
+ (__mmask16) -1);
}
extern __inline __mmask16
{
return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
(__v16hi) __Y, 1,
- (__mmask16) - 1);
+ (__mmask16) -1);
}
extern __inline __mmask16
{
return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
(__v16hi) __Y, 5,
- (__mmask16) - 1);
+ (__mmask16) -1);
}
extern __inline __mmask16
{
return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X,
(__v16hi) __Y, 2,
- (__mmask16) - 1);
+ (__mmask16) -1);
}
extern __inline void
return (__m256d) __builtin_ia32_broadcastf64x2_256_mask ((__v2df)
__A,
(__v4df)_mm256_undefined_pd(),
- (__mmask8) -
- 1);
+ (__mmask8) -1);
}
extern __inline __m256d
return (__m256i) __builtin_ia32_broadcasti64x2_256_mask ((__v2di)
__A,
(__v4di)_mm256_undefined_si256(),
- (__mmask8) -
- 1);
+ (__mmask8) -1);
}
extern __inline __m256i
{
return (__m256) __builtin_ia32_broadcastf32x2_256_mask ((__v4sf) __A,
(__v8sf)_mm256_undefined_ps(),
- (__mmask8) -
- 1);
+ (__mmask8) -1);
}
extern __inline __m256
return (__m256i) __builtin_ia32_broadcasti32x2_256_mask ((__v4si)
__A,
(__v8si)_mm256_undefined_si256(),
- (__mmask8) -
- 1);
+ (__mmask8) -1);
}
extern __inline __m256i
return (__m128i) __builtin_ia32_broadcasti32x2_128_mask ((__v4si)
__A,
(__v4si)_mm_undefined_si128(),
- (__mmask8) -
- 1);
+ (__mmask8) -1);
}
extern __inline __m128i
__imm,
(__v2df)
_mm_setzero_pd (),
- (__mmask8) -
- 1);
+ (__mmask8) -1);
}
extern __inline __m128d
__imm,
(__v2di)
_mm_setzero_di (),
- (__mmask8) -
- 1);
+ (__mmask8) -1);
}
extern __inline __m128i
__imm,
(__v4di)
_mm256_setzero_si256 (),
- (__mmask8) -
- 1);
+ (__mmask8) -1);
}
extern __inline __m256i
__imm,
(__v4df)
_mm256_setzero_pd (),
- (__mmask8) -
- 1);
+ (__mmask8) -1);
}
extern __inline __m256d
{
return (__m256) __builtin_ia32_broadcastf32x4_256_mask ((__v4sf) __A,
(__v8sf)_mm256_undefined_pd (),
- (__mmask8) -
- 1);
+ (__mmask8) -1);
}
extern __inline __m256
return (__m256i) __builtin_ia32_broadcasti32x4_256_mask ((__v4si)
__A,
(__v8si)_mm256_undefined_si256 (),
- (__mmask8) -
- 1);
+ (__mmask8) -1);
}
extern __inline __m256i
/* idx */ ,
(__v4df) __A,
(__v4df) __B,
- (__mmask8) -
- 1);
+ (__mmask8) -1);
}
extern __inline __m256d
/* idx */ ,
(__v2df) __A,
(__v2df) __B,
- (__mmask8) -
- 1);
+ (__mmask8) -1);
}
extern __inline __m128d
return (__m256i) __builtin_ia32_vpconflictdi_256_mask ((__v4di) __A,
(__v4di)
_mm256_setzero_si256 (),
- (__mmask8) -
- 1);
+ (__mmask8) -1);
}
extern __inline __m256i
return (__m256i) __builtin_ia32_vpconflictsi_256_mask ((__v8si) __A,
(__v8si)
_mm256_setzero_si256 (),
- (__mmask8) -
- 1);
+ (__mmask8) -1);
}
extern __inline __m256i
return (__m128i) __builtin_ia32_vpconflictdi_128_mask ((__v2di) __A,
(__v2di)
_mm_setzero_di (),
- (__mmask8) -
- 1);
+ (__mmask8) -1);
}
extern __inline __m128i
return (__m128i) __builtin_ia32_vpconflictsi_128_mask ((__v4si) __A,
(__v4si)
_mm_setzero_si128 (),
- (__mmask8) -
- 1);
+ (__mmask8) -1);
}
extern __inline __m128i
__imm,
(__v8si)
_mm256_setzero_si256 (),
- (__mmask8) -
- 1);
+ (__mmask8) -1);
}
extern __inline __m256i
__imm,
(__v4si)
_mm_setzero_si128 (),
- (__mmask8) -
- 1);
+ (__mmask8) -1);
}
extern __inline __m128i
__imm,
(__v4sf)
_mm_setzero_ps (),
- (__mmask8) -
- 1);
+ (__mmask8) -1);
}
extern __inline __m128
{
return (__mmask8) __builtin_ia32_ucmpd256_mask ((__v8si) __X,
(__v8si) __Y, 4,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_ucmpd256_mask ((__v8si) __X,
(__v8si) __Y, 1,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_ucmpd256_mask ((__v8si) __X,
(__v8si) __Y, 5,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_ucmpd256_mask ((__v8si) __X,
(__v8si) __Y, 2,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_ucmpq256_mask ((__v4di) __X,
(__v4di) __Y, 4,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_ucmpq256_mask ((__v4di) __X,
(__v4di) __Y, 1,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_ucmpq256_mask ((__v4di) __X,
(__v4di) __Y, 5,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_ucmpq256_mask ((__v4di) __X,
(__v4di) __Y, 2,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_cmpd256_mask ((__v8si) __X,
(__v8si) __Y, 4,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_cmpd256_mask ((__v8si) __X,
(__v8si) __Y, 1,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_cmpd256_mask ((__v8si) __X,
(__v8si) __Y, 5,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_cmpd256_mask ((__v8si) __X,
(__v8si) __Y, 2,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_cmpq256_mask ((__v4di) __X,
(__v4di) __Y, 4,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_cmpq256_mask ((__v4di) __X,
(__v4di) __Y, 1,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_cmpq256_mask ((__v4di) __X,
(__v4di) __Y, 5,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_cmpq256_mask ((__v4di) __X,
(__v4di) __Y, 2,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_ucmpd128_mask ((__v4si) __X,
(__v4si) __Y, 4,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_ucmpd128_mask ((__v4si) __X,
(__v4si) __Y, 1,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_ucmpd128_mask ((__v4si) __X,
(__v4si) __Y, 5,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_ucmpd128_mask ((__v4si) __X,
(__v4si) __Y, 2,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_ucmpq128_mask ((__v2di) __X,
(__v2di) __Y, 4,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_ucmpq128_mask ((__v2di) __X,
(__v2di) __Y, 1,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_ucmpq128_mask ((__v2di) __X,
(__v2di) __Y, 5,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_ucmpq128_mask ((__v2di) __X,
(__v2di) __Y, 2,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_cmpd128_mask ((__v4si) __X,
(__v4si) __Y, 4,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_cmpd128_mask ((__v4si) __X,
(__v4si) __Y, 1,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_cmpd128_mask ((__v4si) __X,
(__v4si) __Y, 5,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_cmpd128_mask ((__v4si) __X,
(__v4si) __Y, 2,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_cmpq128_mask ((__v2di) __X,
(__v2di) __Y, 4,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_cmpq128_mask ((__v2di) __X,
(__v2di) __Y, 1,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_cmpq128_mask ((__v2di) __X,
(__v2di) __Y, 5,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
extern __inline __mmask8
{
return (__mmask8) __builtin_ia32_cmpq128_mask ((__v2di) __X,
(__v2di) __Y, 2,
- (__mmask8) - 1);
+ (__mmask8) -1);
}
#else
case 5:
pat = GEN_FCN (icode) (real_target, args[0].op, args[1].op,
args[2].op, args[3].op, args[4].op);
+ break;
case 6:
pat = GEN_FCN (icode) (real_target, args[0].op, args[1].op,
args[2].op, args[3].op, args[4].op,
case 5:
pat = GEN_FCN (icode) (target, args[0].op, args[1].op,
args[2].op, args[3].op, args[4].op);
+ break;
case 6:
pat = GEN_FCN (icode) (target, args[0].op, args[1].op,
args[2].op, args[3].op, args[4].op,
(match_operand:TF 1 "general_operand" "C ,xm,x,*roF,*rC"))]
"(TARGET_64BIT || TARGET_SSE)
&& !(MEM_P (operands[0]) && MEM_P (operands[1]))
- && (!can_create_pseudo_p ()
+ && (lra_in_progress || reload_completed
|| (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
|| !CONST_DOUBLE_P (operands[1])
|| (optimize_function_for_size_p (cfun)
(match_operand:XF 1 "general_operand"
"fm,f,G,roF,r , *roF,*r,F ,C,roF,rF"))]
"!(MEM_P (operands[0]) && MEM_P (operands[1]))
- && (!can_create_pseudo_p ()
+ && (lra_in_progress || reload_completed
|| (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
|| !CONST_DOUBLE_P (operands[1])
|| (optimize_function_for_size_p (cfun)
(match_operand:DF 1 "general_operand"
"Yf*fm,Yf*f,G ,roF,r ,*roF,*r,F ,rm,rC,C ,F ,C,v,m,v,C ,*x,m ,*x,Yj,r ,roF,rF,rmF,rC"))]
"!(MEM_P (operands[0]) && MEM_P (operands[1]))
- && (!can_create_pseudo_p ()
+ && (lra_in_progress || reload_completed
|| (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
|| !CONST_DOUBLE_P (operands[1])
|| (optimize_function_for_size_p (cfun)
(match_operand:SF 1 "general_operand"
"Yf*fm,Yf*f,G ,rmF,rF,C,v,m,v,Yj,r ,*y ,m ,*y,*Yn,r ,rmF,rF"))]
"!(MEM_P (operands[0]) && MEM_P (operands[1]))
- && (!can_create_pseudo_p ()
+ && (lra_in_progress || reload_completed
|| (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
|| !CONST_DOUBLE_P (operands[1])
|| (optimize_function_for_size_p (cfun)
lcla2 and load_offset_label_address insn patterns. */
rtx reg = gen_reg_rtx (SImode);
rtx_code_label *label_rtx = gen_label_rtx ();
- rtx begin_label_rtx;
+ rtx mcount = gen_rtx_MEM (Pmode, gen_rtx_SYMBOL_REF (Pmode, "_mcount"));
+ int reg_parm_stack_space = REG_PARM_STACK_SPACE (NULL_TREE);
+ rtx arg_bytes, begin_label_rtx;
rtx_insn *call_insn;
char begin_label_name[16];
+ bool use_mcount_pcrel_call;
+
+ /* If we can reach _mcount with a pc-relative call, we can optimize
+ loading the address of the current function. This requires linker
+ long branch stub support. */
+ if (!TARGET_PORTABLE_RUNTIME
+ && !TARGET_LONG_CALLS
+ && (TARGET_SOM || flag_function_sections))
+ use_mcount_pcrel_call = TRUE;
+ else
+ use_mcount_pcrel_call = FALSE;
ASM_GENERATE_INTERNAL_LABEL (begin_label_name, FUNC_BEGIN_PROLOG_LABEL,
label_no);
begin_label_rtx = gen_rtx_SYMBOL_REF (SImode, ggc_strdup (begin_label_name));
- if (TARGET_64BIT)
- emit_move_insn (arg_pointer_rtx,
- gen_rtx_PLUS (word_mode, virtual_outgoing_args_rtx,
- GEN_INT (64)));
-
emit_move_insn (gen_rtx_REG (word_mode, 26), gen_rtx_REG (word_mode, 2));
- /* The address of the function is loaded into %r25 with an instruction-
- relative sequence that avoids the use of relocations. The sequence
- is split so that the load_offset_label_address instruction can
- occupy the delay slot of the call to _mcount. */
- if (TARGET_PA_20)
- emit_insn (gen_lcla2 (reg, label_rtx));
- else
- emit_insn (gen_lcla1 (reg, label_rtx));
-
- emit_insn (gen_load_offset_label_address (gen_rtx_REG (SImode, 25),
- reg, begin_label_rtx, label_rtx));
-
-#if !NO_DEFERRED_PROFILE_COUNTERS
- {
- rtx count_label_rtx, addr, r24;
- char count_label_name[16];
+ if (!use_mcount_pcrel_call)
+ {
+ /* The address of the function is loaded into %r25 with an instruction-
+ relative sequence that avoids the use of relocations. The sequence
+ is split so that the load_offset_label_address instruction can
+ occupy the delay slot of the call to _mcount. */
+ if (TARGET_PA_20)
+ emit_insn (gen_lcla2 (reg, label_rtx));
+ else
+ emit_insn (gen_lcla1 (reg, label_rtx));
- funcdef_nos.safe_push (label_no);
- ASM_GENERATE_INTERNAL_LABEL (count_label_name, "LP", label_no);
- count_label_rtx = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (count_label_name));
+ emit_insn (gen_load_offset_label_address (gen_rtx_REG (SImode, 25),
+ reg,
+ begin_label_rtx,
+ label_rtx));
+ }
- addr = force_reg (Pmode, count_label_rtx);
- r24 = gen_rtx_REG (Pmode, 24);
- emit_move_insn (r24, addr);
+ if (!NO_DEFERRED_PROFILE_COUNTERS)
+ {
+ rtx count_label_rtx, addr, r24;
+ char count_label_name[16];
- call_insn =
- emit_call_insn (gen_call (gen_rtx_MEM (Pmode,
- gen_rtx_SYMBOL_REF (Pmode,
- "_mcount")),
- GEN_INT (TARGET_64BIT ? 24 : 12)));
+ funcdef_nos.safe_push (label_no);
+ ASM_GENERATE_INTERNAL_LABEL (count_label_name, "LP", label_no);
+ count_label_rtx = gen_rtx_SYMBOL_REF (Pmode,
+ ggc_strdup (count_label_name));
- use_reg (&CALL_INSN_FUNCTION_USAGE (call_insn), r24);
- }
-#else
+ addr = force_reg (Pmode, count_label_rtx);
+ r24 = gen_rtx_REG (Pmode, 24);
+ emit_move_insn (r24, addr);
- call_insn =
- emit_call_insn (gen_call (gen_rtx_MEM (Pmode,
- gen_rtx_SYMBOL_REF (Pmode,
- "_mcount")),
- GEN_INT (TARGET_64BIT ? 16 : 8)));
+ arg_bytes = GEN_INT (TARGET_64BIT ? 24 : 12);
+ if (use_mcount_pcrel_call)
+ call_insn = emit_call_insn (gen_call_mcount (mcount, arg_bytes,
+ begin_label_rtx));
+ else
+ call_insn = emit_call_insn (gen_call (mcount, arg_bytes));
-#endif
+ use_reg (&CALL_INSN_FUNCTION_USAGE (call_insn), r24);
+ }
+ else
+ {
+ arg_bytes = GEN_INT (TARGET_64BIT ? 16 : 8);
+ if (use_mcount_pcrel_call)
+ call_insn = emit_call_insn (gen_call_mcount (mcount, arg_bytes,
+ begin_label_rtx));
+ else
+ call_insn = emit_call_insn (gen_call (mcount, arg_bytes));
+ }
use_reg (&CALL_INSN_FUNCTION_USAGE (call_insn), gen_rtx_REG (SImode, 25));
use_reg (&CALL_INSN_FUNCTION_USAGE (call_insn), gen_rtx_REG (SImode, 26));
/* Indicate the _mcount call cannot throw, nor will it execute a
non-local goto. */
make_reg_eh_region_note_nothrow_nononlocal (call_insn);
+
+ /* Allocate space for fixed arguments. */
+ if (reg_parm_stack_space > crtl->outgoing_args_size)
+ crtl->outgoing_args_size = reg_parm_stack_space;
}
/* Fetch the return address for the frame COUNT steps up from
(cond [(and (const_int 0) (eq (const_int 0) (pc))) (const_int 12)]
(symbol_ref "pa_attr_length_indirect_call (insn)")))])
+/* Expand special pc-relative call to _mcount. */
+
+(define_expand "call_mcount"
+ [(parallel [(call (match_operand:SI 0 "" "")
+ (match_operand 1 "" ""))
+ (set (reg:SI 25)
+ (plus:SI (reg:SI 2)
+ (minus:SI (match_operand 2 "" "")
+ (plus:SI (pc) (const_int 4)))))
+ (clobber (reg:SI 2))])]
+ "!TARGET_PORTABLE_RUNTIME"
+ "
+{
+ rtx op = XEXP (operands[0], 0);
+ rtx nb = operands[1];
+ rtx lab = operands[2];
+
+ if (TARGET_64BIT)
+ {
+ rtx r4 = gen_rtx_REG (word_mode, 4);
+ emit_move_insn (arg_pointer_rtx,
+ gen_rtx_PLUS (word_mode, virtual_outgoing_args_rtx,
+ GEN_INT (64)));
+ emit_call_insn (gen_call_mcount_64bit (op, nb, lab, r4));
+ }
+ else
+ {
+ if (flag_pic)
+ {
+ rtx r4 = gen_rtx_REG (word_mode, 4);
+ emit_call_insn (gen_call_mcount_pic (op, nb, lab, r4));
+ }
+ else
+ emit_call_insn (gen_call_mcount_nonpic (op, nb, lab));
+ }
+
+ DONE;
+}")
+
+(define_insn "call_mcount_nonpic"
+ [(call (mem:SI (match_operand 0 "call_operand_address" ""))
+ (match_operand 1 "" "i"))
+ (set (reg:SI 25)
+ (plus:SI (reg:SI 2)
+ (minus:SI (match_operand 2 "" "")
+ (plus:SI (pc) (const_int 4)))))
+ (clobber (reg:SI 2))]
+ "!TARGET_PORTABLE_RUNTIME && !TARGET_64BIT"
+ "*
+{
+ pa_output_arg_descriptor (insn);
+ return \"{bl|b,l} %0,%%r2\;ldo %2-.-4(%%r2),%%r25\";
+}"
+ [(set_attr "type" "multi")
+ (set_attr "length" "8")])
+
+(define_insn "call_mcount_pic"
+ [(call (mem:SI (match_operand 0 "call_operand_address" ""))
+ (match_operand 1 "" "i"))
+ (set (reg:SI 25)
+ (plus:SI (reg:SI 2)
+ (minus:SI (match_operand 2 "" "")
+ (plus:SI (pc) (const_int 4)))))
+ (clobber (reg:SI 2))
+ (clobber (match_operand 3))
+ (use (reg:SI 19))]
+ "!TARGET_PORTABLE_RUNTIME && !TARGET_64BIT"
+ "#")
+
+(define_split
+ [(parallel [(call (mem:SI (match_operand 0 "call_operand_address" ""))
+ (match_operand 1 "" ""))
+ (set (reg:SI 25)
+ (plus:SI (reg:SI 2)
+ (minus:SI (match_operand 2 "" "")
+ (plus:SI (pc) (const_int 4)))))
+ (clobber (reg:SI 2))
+ (clobber (match_operand 3))
+ (use (reg:SI 19))])]
+ "!TARGET_PORTABLE_RUNTIME && !TARGET_64BIT && reload_completed"
+ [(set (match_dup 3) (reg:SI 19))
+ (parallel [(call (mem:SI (match_dup 0))
+ (match_dup 1))
+ (set (reg:SI 25)
+ (plus:SI (reg:SI 2)
+ (minus:SI (match_dup 2)
+ (plus:SI (pc) (const_int 4)))))
+ (clobber (reg:SI 2))
+ (use (reg:SI 19))])
+ (set (reg:SI 19) (match_dup 3))]
+ "")
+
+(define_insn "*call_mcount_pic_post_reload"
+ [(call (mem:SI (match_operand 0 "call_operand_address" ""))
+ (match_operand 1 "" "i"))
+ (set (reg:SI 25)
+ (plus:SI (reg:SI 2)
+ (minus:SI (match_operand 2 "" "")
+ (plus:SI (pc) (const_int 4)))))
+ (clobber (reg:SI 2))
+ (use (reg:SI 19))]
+ "!TARGET_PORTABLE_RUNTIME && !TARGET_64BIT"
+ "*
+{
+ pa_output_arg_descriptor (insn);
+ return \"{bl|b,l} %0,%%r2\;ldo %2-.-4(%%r2),%%r25\";
+}"
+ [(set_attr "type" "multi")
+ (set_attr "length" "8")])
+
+(define_insn "call_mcount_64bit"
+ [(call (mem:SI (match_operand 0 "call_operand_address" ""))
+ (match_operand 1 "" "i"))
+ (set (reg:SI 25)
+ (plus:SI (reg:SI 2)
+ (minus:SI (match_operand 2 "" "")
+ (plus:SI (pc) (const_int 4)))))
+ (clobber (reg:DI 2))
+ (clobber (match_operand 3))
+ (use (reg:DI 27))
+ (use (reg:DI 29))]
+ "TARGET_64BIT"
+ "#")
+
+(define_split
+ [(parallel [(call (mem:SI (match_operand 0 "call_operand_address" ""))
+ (match_operand 1 "" ""))
+ (set (reg:SI 25)
+ (plus:SI (reg:SI 2)
+ (minus:SI (match_operand 2 "" "")
+ (plus:SI (pc) (const_int 4)))))
+ (clobber (reg:DI 2))
+ (clobber (match_operand 3))
+ (use (reg:DI 27))
+ (use (reg:DI 29))])]
+ "TARGET_64BIT && reload_completed"
+ [(set (match_dup 3) (reg:DI 27))
+ (parallel [(call (mem:SI (match_dup 0))
+ (match_dup 1))
+ (set (reg:SI 25)
+ (plus:SI (reg:SI 2)
+ (minus:SI (match_dup 2)
+ (plus:SI (pc) (const_int 4)))))
+ (clobber (reg:DI 2))
+ (use (reg:DI 27))
+ (use (reg:DI 29))])
+ (set (reg:DI 27) (match_dup 3))]
+ "")
+
+(define_insn "*call_mcount_64bit_post_reload"
+ [(call (mem:SI (match_operand 0 "call_operand_address" ""))
+ (match_operand 1 "" "i"))
+ (set (reg:SI 25)
+ (plus:SI (reg:SI 2)
+ (minus:SI (match_operand 2 "" "")
+ (plus:SI (pc) (const_int 4)))))
+ (clobber (reg:DI 2))
+ (use (reg:DI 27))
+ (use (reg:DI 29))]
+ "TARGET_64BIT"
+ "{bl|b,l} %0,%%r2\;ldo %2-.-4(%%r2),%%r25"
+ [(set_attr "type" "multi")
+ (set_attr "length" "8")])
+
;; Call subroutine returning any type.
(define_expand "untyped_call"
[(set (match_operand:HI 0 "register_operand")
(mult:HI (zero_extend:HI (match_operand:QI 1 "register_operand"))
(zero_extend:HI (match_operand:QI 2 "register_operand"))))]
- "!TARGET_G10"
+ ""
""
)
[(set (match_operand:HI 0 "register_operand" "=A,A")
(mult:HI (match_operand:HI 1 "rl78_nonfar_operand" "0,0")
(match_operand:HI 2 "rl78_24_operand" "N,i")))]
- "rl78_real_insns_ok () && !TARGET_G10"
+ "rl78_real_insns_ok ()"
"@
shlw\t%0, 1
shlw\t%0, 2"
[(set (match_operand:HI 0 "nonimmediate_operand" "=A")
(mult:HI (zero_extend:HI (match_operand:QI 1 "general_operand" "%a"))
(zero_extend:HI (match_operand:QI 2 "general_operand" "x"))))]
- "rl78_real_insns_ok () && !TARGET_G10"
+ "rl78_real_insns_ok ()"
"mulu\t%2"
)
[(set (match_operand:HI 0 "register_operand" "=v")
(mult:HI (match_operand:HI 1 "rl78_nonfar_operand" "%vim")
(match_operand:HI 2 "rl78_24_operand" "Ni")))]
- "rl78_virt_insns_ok () && !TARGET_G10"
+ "rl78_virt_insns_ok ()"
"v.mulu\t%0, %1, %2"
[(set_attr "valloc" "umul")]
)
[(set (match_operand:HI 0 "register_operand" "=v")
(mult:HI (zero_extend:HI (match_operand:QI 1 "rl78_nonfar_operand" "%vim"))
(zero_extend:HI (match_operand:QI 2 "general_operand" "vim"))))]
- "rl78_virt_insns_ok () && !TARGET_G10"
+ "rl78_virt_insns_ok ()"
"v.mulu\t%0, %2"
[(set_attr "valloc" "umul")]
)
;; Slightly prefer vperm, since the target does not overlap the source
(define_insn "*altivec_vperm_<mode>_internal"
[(set (match_operand:VM 0 "register_operand" "=v,?wo")
- (unspec:VM [(match_operand:VM 1 "register_operand" "v,0")
- (match_operand:VM 2 "register_operand" "v,wo")
+ (unspec:VM [(match_operand:VM 1 "register_operand" "v,wo")
+ (match_operand:VM 2 "register_operand" "v,0")
(match_operand:V16QI 3 "register_operand" "v,wo")]
UNSPEC_VPERM))]
"TARGET_ALTIVEC"
"@
vperm %0,%1,%2,%3
- xxperm %x0,%x2,%x3"
+ xxperm %x0,%x1,%x3"
[(set_attr "type" "vecperm")
(set_attr "length" "4")])
(define_insn "altivec_vperm_v8hiv16qi"
[(set (match_operand:V16QI 0 "register_operand" "=v,?wo")
- (unspec:V16QI [(match_operand:V8HI 1 "register_operand" "v,0")
- (match_operand:V8HI 2 "register_operand" "v,wo")
+ (unspec:V16QI [(match_operand:V8HI 1 "register_operand" "v,wo")
+ (match_operand:V8HI 2 "register_operand" "v,0")
(match_operand:V16QI 3 "register_operand" "v,wo")]
UNSPEC_VPERM))]
"TARGET_ALTIVEC"
"@
vperm %0,%1,%2,%3
- xxperm %x0,%x2,%x3"
+ xxperm %x0,%x1,%x3"
[(set_attr "type" "vecperm")
(set_attr "length" "4")])
(define_insn "*altivec_vperm_<mode>_uns_internal"
[(set (match_operand:VM 0 "register_operand" "=v,?wo")
- (unspec:VM [(match_operand:VM 1 "register_operand" "v,0")
- (match_operand:VM 2 "register_operand" "v,wo")
+ (unspec:VM [(match_operand:VM 1 "register_operand" "v,wo")
+ (match_operand:VM 2 "register_operand" "v,0")
(match_operand:V16QI 3 "register_operand" "v,wo")]
UNSPEC_VPERM_UNS))]
"TARGET_ALTIVEC"
"@
vperm %0,%1,%2,%3
- xxperm %x0,%x2,%x3"
+ xxperm %x0,%x1,%x3"
[(set_attr "type" "vecperm")
(set_attr "length" "4")])
(define_insn "*altivec_vpermr_<mode>_internal"
[(set (match_operand:VM 0 "register_operand" "=v,?wo")
- (unspec:VM [(match_operand:VM 1 "register_operand" "v,0")
- (match_operand:VM 2 "register_operand" "v,wo")
+ (unspec:VM [(match_operand:VM 1 "register_operand" "v,wo")
+ (match_operand:VM 2 "register_operand" "v,0")
(match_operand:V16QI 3 "register_operand" "v,wo")]
UNSPEC_VPERMR))]
"TARGET_P9_VECTOR"
"@
vpermr %0,%2,%1,%3
- xxpermr %x0,%x2,%x3"
+ xxpermr %x0,%x1,%x3"
[(set_attr "type" "vecperm")
(set_attr "length" "4")])
(define_insn "vperm_v8hiv4si"
[(set (match_operand:V4SI 0 "register_operand" "=v,?wo")
- (unspec:V4SI [(match_operand:V8HI 1 "register_operand" "v,0")
- (match_operand:V4SI 2 "register_operand" "v,wo")
+ (unspec:V4SI [(match_operand:V8HI 1 "register_operand" "v,wo")
+ (match_operand:V4SI 2 "register_operand" "v,0")
(match_operand:V16QI 3 "register_operand" "v,wo")]
UNSPEC_VPERMSI))]
"TARGET_ALTIVEC"
"@
vperm %0,%1,%2,%3
- xxperm %x0,%x2,%x3"
+ xxperm %x0,%x1,%x3"
[(set_attr "type" "vecperm")
(set_attr "length" "4")])
(define_insn "vperm_v16qiv8hi"
[(set (match_operand:V8HI 0 "register_operand" "=v,?wo")
- (unspec:V8HI [(match_operand:V16QI 1 "register_operand" "v,0")
- (match_operand:V8HI 2 "register_operand" "v,wo")
+ (unspec:V8HI [(match_operand:V16QI 1 "register_operand" "v,wo")
+ (match_operand:V8HI 2 "register_operand" "v,0")
(match_operand:V16QI 3 "register_operand" "v,wo")]
UNSPEC_VPERMHI))]
"TARGET_ALTIVEC"
"@
vperm %0,%1,%2,%3
- xxperm %x0,%x2,%x3"
+ xxperm %x0,%x1,%x3"
[(set_attr "type" "vecperm")
(set_attr "length" "4")])
"Vector constant that can be loaded with XXSPLTIB & sign extension."
(match_test "xxspltib_constant_split (op, mode)"))
+;; ISA 3.0 DS-form instruction that has the bottom 2 bits 0 and no update form.
+;; Used by LXSD/STXSD/LXSSP/STXSSP. In contrast to "Y", the multiple-of-four
+;; offset is enforced for 32-bit too.
+(define_memory_constraint "wY"
+ "Offsettable memory operand, with bottom 2 bits 0"
+ (and (match_code "mem")
+ (not (match_test "update_address_mem (op, mode)"))
+ (match_test "mem_operand_ds_form (op, mode)")))
+
;; Altivec style load/store that ignores the bottom bits of the address
(define_memory_constraint "wZ"
"Indexed or indirect memory operand, ignoring the bottom 4 bits"
extern int num_insns_constant_wide (HOST_WIDE_INT);
extern int small_data_operand (rtx, machine_mode);
extern bool mem_operand_gpr (rtx, machine_mode);
+extern bool mem_operand_ds_form (rtx, machine_mode);
extern bool toc_relative_expr_p (const_rtx, bool);
extern bool invalid_e500_subreg (rtx, machine_mode);
extern void validate_condition_mode (enum rtx_code, machine_mode);
extern int rs6000_emit_cmove (rtx, rtx, rtx, rtx);
extern int rs6000_emit_vector_cond_expr (rtx, rtx, rtx, rtx, rtx, rtx);
extern void rs6000_emit_minmax (rtx, enum rtx_code, rtx, rtx);
+extern void rs6000_split_signbit (rtx, rtx);
extern void rs6000_expand_atomic_compare_and_swap (rtx op[]);
extern void rs6000_expand_atomic_exchange (rtx op[]);
extern void rs6000_expand_atomic_op (enum rtx_code, rtx, rtx, rtx, rtx, rtx);
&& !(rs6000_isa_flags_explicit & OPTION_MASK_TOC_FUSION))
rs6000_isa_flags |= OPTION_MASK_TOC_FUSION;
+ /* ISA 3.0 vector instructions include ISA 2.07. */
+ if (TARGET_P9_VECTOR && !TARGET_P8_VECTOR)
+ {
+ if (rs6000_isa_flags_explicit & OPTION_MASK_P8_VECTOR)
+ error ("-mpower9-vector requires -mpower8-vector");
+ rs6000_isa_flags &= ~OPTION_MASK_P9_VECTOR;
+ }
+
/* -mpower9-dform turns on both -mpower9-dform-scalar and
-mpower9-dform-vector. */
if (TARGET_P9_DFORM_BOTH > 0)
rs6000_isa_flags &= ~OPTION_MASK_P9_DFORM_SCALAR;
}
- /* ISA 3.0 vector instructions include ISA 2.07. */
- if (TARGET_P9_VECTOR && !TARGET_P8_VECTOR)
- {
- if (rs6000_isa_flags_explicit & OPTION_MASK_P8_VECTOR)
- error ("-mpower9-vector requires -mpower8-vector");
- rs6000_isa_flags &= ~OPTION_MASK_P9_VECTOR;
- }
-
/* There have been bugs with -mvsx-timode that don't show up with -mlra,
but do show up with -mno-lra. Given -mlra will become the default once
PR 69847 is fixed, turn off the options with problems by default if
}
#ifdef USING_ELFOS_H
- if (rs6000_default_cpu == 0 || rs6000_default_cpu[0] == '\0'
- || !global_options_set.x_rs6000_cpu_index)
+ if (!(rs6000_default_cpu && rs6000_default_cpu[0])
+ && !global_options_set.x_rs6000_cpu_index)
{
fputs ("\t.machine ", asm_out_file);
if ((rs6000_isa_flags & OPTION_MASK_MODULO) != 0)
if (TARGET_POWERPC64 && (offset & 3) != 0)
return false;
- if (mode_supports_vsx_dform_quad (mode)
- && !quad_address_offset_p (offset))
+ extra = GET_MODE_SIZE (mode) - UNITS_PER_WORD;
+ if (extra < 0)
+ extra = 0;
+
+ if (GET_CODE (addr) == LO_SUM)
+ /* For lo_sum addresses, we must allow any offset except one that
+ causes a wrap, so test only the low 16 bits. */
+ offset = ((offset & 0xffff) ^ 0x8000) - 0x8000;
+
+ return offset + 0x8000 < 0x10000u - extra;
+}
+
+/* As above, but for DS-FORM VSX insns. Unlike mem_operand_gpr,
+ enforce an offset divisible by 4 even for 32-bit. */
+
+bool
+mem_operand_ds_form (rtx op, machine_mode mode)
+{
+ unsigned HOST_WIDE_INT offset;
+ int extra;
+ rtx addr = XEXP (op, 0);
+
+ if (!offsettable_address_p (false, mode, addr))
+ return false;
+
+ op = address_offset (addr);
+ if (op == NULL_RTX)
+ return true;
+
+ offset = INTVAL (op);
+ if ((offset & 3) != 0)
return false;
extra = GET_MODE_SIZE (mode) - UNITS_PER_WORD;
break;
case ALTIVEC_BUILTIN_LD_INTERNAL_2di:
icode = CODE_FOR_vector_altivec_load_v2di;
+ break;
case ALTIVEC_BUILTIN_LD_INTERNAL_1ti:
icode = CODE_FOR_vector_altivec_load_v1ti;
break;
break;
case ALTIVEC_BUILTIN_ST_INTERNAL_2di:
icode = CODE_FOR_vector_altivec_store_v2di;
+ break;
case ALTIVEC_BUILTIN_ST_INTERNAL_1ti:
icode = CODE_FOR_vector_altivec_store_v1ti;
break;
&& MEM_P (SUBREG_REG (x))));
sri->icode = CODE_FOR_nothing;
+ sri->t_icode = CODE_FOR_nothing;
sri->extra_cost = 0;
icode = ((in_p)
? reg_addr[mode].reload_load
else if (!TARGET_FLOAT128_HW && FLOAT128_VECTOR_P (mode))
{
rtx libfunc = NULL_RTX;
- bool uneq_or_ltgt = false;
- rtx dest = gen_reg_rtx (SImode);
+ bool check_nan = false;
+ rtx dest;
switch (code)
{
case UNGE:
case UNGT:
- libfunc = optab_libfunc (le_optab, mode);
+ check_nan = true;
+ libfunc = optab_libfunc (ge_optab, mode);
code = (code == UNGE) ? GE : GT;
break;
case UNLE:
case UNLT:
- libfunc = optab_libfunc (ge_optab, mode);
+ check_nan = true;
+ libfunc = optab_libfunc (le_optab, mode);
code = (code == UNLE) ? LE : LT;
break;
case UNEQ:
case LTGT:
- libfunc = optab_libfunc (le_optab, mode);
- uneq_or_ltgt = true;
- code = (code = UNEQ) ? NE : EQ;
+ check_nan = true;
+ libfunc = optab_libfunc (eq_optab, mode);
+ code = (code = UNEQ) ? EQ : NE;
break;
default:
}
gcc_assert (libfunc);
- dest = emit_library_call_value (libfunc, NULL_RTX, LCT_CONST,
- SImode, 2, op0, mode, op1, mode);
- /* If this is UNEQ or LTGT, we call __lekf2, which returns -1 for less
- than, 0 for equal, +1 for greater, and +2 for nan. We add 1, to give
- a value of 0..3, and then do and AND immediate of 1 to isolate whether
- it is 0/Nan (i.e. bottom bit is 0), or less than/greater than
- (i.e. bottom bit is 1). */
- if (uneq_or_ltgt)
+ if (!check_nan)
+ dest = emit_library_call_value (libfunc, NULL_RTX, LCT_CONST,
+ SImode, 2, op0, mode, op1, mode);
+
+ /* The library signals an exception for signalling NaNs, so we need to
+ handle isgreater, etc. by first checking isordered. */
+ else
{
- rtx add_result = gen_reg_rtx (SImode);
- rtx and_result = gen_reg_rtx (SImode);
- emit_insn (gen_addsi3 (add_result, dest, GEN_INT (1)));
- emit_insn (gen_andsi3 (and_result, add_result, GEN_INT (1)));
- dest = and_result;
+ rtx ne_rtx, normal_dest, unord_dest;
+ rtx unord_func = optab_libfunc (unord_optab, mode);
+ rtx join_label = gen_label_rtx ();
+ rtx join_ref = gen_rtx_LABEL_REF (VOIDmode, join_label);
+ rtx unord_cmp = gen_reg_rtx (comp_mode);
+
+
+ /* Test for either value being a NaN. */
+ gcc_assert (unord_func);
+ unord_dest = emit_library_call_value (unord_func, NULL_RTX, LCT_CONST,
+ SImode, 2, op0, mode, op1,
+ mode);
+
+ /* Set value (0) if either value is a NaN, and jump to the join
+ label. */
+ dest = gen_reg_rtx (SImode);
+ emit_move_insn (dest, const1_rtx);
+ emit_insn (gen_rtx_SET (unord_cmp,
+ gen_rtx_COMPARE (comp_mode, unord_dest,
+ const0_rtx)));
+
+ ne_rtx = gen_rtx_NE (comp_mode, unord_cmp, const0_rtx);
+ emit_jump_insn (gen_rtx_SET (pc_rtx,
+ gen_rtx_IF_THEN_ELSE (VOIDmode, ne_rtx,
+ join_ref,
+ pc_rtx)));
+
+ /* Do the normal comparison, knowing that the values are not
+ NaNs. */
+ normal_dest = emit_library_call_value (libfunc, NULL_RTX, LCT_CONST,
+ SImode, 2, op0, mode, op1,
+ mode);
+
+ emit_insn (gen_cstoresi4 (dest,
+ gen_rtx_fmt_ee (code, SImode, normal_dest,
+ const0_rtx),
+ normal_dest, const0_rtx));
+
+ /* Join NaN and non-Nan paths. Compare dest against 0. */
+ emit_label (join_label);
+ code = NE;
}
emit_insn (gen_rtx_SET (compare_result,
emit_move_insn (dest, target);
}
+/* Split a signbit operation on 64-bit machines with direct move. Also allow
+ for the value to come from memory or if it is already loaded into a GPR. */
+
+void
+rs6000_split_signbit (rtx dest, rtx src)
+{
+ machine_mode d_mode = GET_MODE (dest);
+ machine_mode s_mode = GET_MODE (src);
+ rtx dest_di = (d_mode == DImode) ? dest : gen_lowpart (DImode, dest);
+ rtx shift_reg = dest_di;
+
+ gcc_assert (REG_P (dest));
+ gcc_assert (REG_P (src) || MEM_P (src));
+ gcc_assert (s_mode == KFmode || s_mode == TFmode);
+
+ if (MEM_P (src))
+ {
+ rtx mem = (WORDS_BIG_ENDIAN
+ ? adjust_address (src, DImode, 0)
+ : adjust_address (src, DImode, 8));
+ emit_insn (gen_rtx_SET (dest_di, mem));
+ }
+
+ else
+ {
+ unsigned int r = REGNO (src);
+
+ /* If this is a VSX register, generate the special mfvsrd instruction
+ to get it in a GPR. Until we support SF and DF modes, that will
+ always be true. */
+ gcc_assert (VSX_REGNO_P (r));
+
+ if (s_mode == KFmode)
+ emit_insn (gen_signbitkf2_dm2 (dest_di, src));
+ else
+ emit_insn (gen_signbittf2_dm2 (dest_di, src));
+ }
+
+ emit_insn (gen_lshrdi3 (dest_di, shift_reg, GEN_INT (63)));
+ return;
+}
+
/* A subroutine of the atomic operation splitters. Jump to LABEL if
COND is true. Mark the jump as unlikely to be taken. */
if (DECIMAL_FLOAT_MODE_P (mode) && TARGET_HARD_FLOAT && TARGET_FPRS)
/* _Decimal128 must use an even/odd register pair. */
regno = (mode == TDmode) ? FP_ARG_RETURN + 1 : FP_ARG_RETURN;
- else if (SCALAR_FLOAT_MODE_NOT_VECTOR_P (mode) && TARGET_HARD_FLOAT && TARGET_FPRS
+ else if (SCALAR_FLOAT_TYPE_P (valtype) && TARGET_HARD_FLOAT && TARGET_FPRS
+ && !FLOAT128_VECTOR_P (mode)
&& ((TARGET_SINGLE_FLOAT && (mode == SFmode)) || TARGET_DOUBLE_FLOAT))
regno = FP_ARG_RETURN;
else if (TREE_CODE (valtype) == COMPLEX_TYPE
UNSPEC_ROUND_TO_ODD
UNSPEC_IEEE128_MOVE
UNSPEC_IEEE128_CONVERT
+ UNSPEC_SIGNBIT
+ UNSPEC_DOLOOP
])
;;
(define_mode_attr f32_lr [(SF "f") (SD "wz")])
(define_mode_attr f32_lr2 [(SF "wb") (SD "wn")])
(define_mode_attr f32_lm [(SF "m") (SD "Z")])
-(define_mode_attr f32_lm2 [(SF "o") (SD "wn")])
+(define_mode_attr f32_lm2 [(SF "wY") (SD "wn")])
(define_mode_attr f32_li [(SF "lfs%U1%X1 %0,%1") (SD "lfiwzx %0,%y1")])
(define_mode_attr f32_li2 [(SF "lxssp %0,%1") (SD "lfiwzx %0,%y1")])
(define_mode_attr f32_lv [(SF "lxsspx %x0,%y1") (SD "lxsiwzx %x0,%y1")])
(define_mode_attr f32_sr [(SF "f") (SD "wx")])
(define_mode_attr f32_sr2 [(SF "wb") (SD "wn")])
(define_mode_attr f32_sm [(SF "m") (SD "Z")])
-(define_mode_attr f32_sm2 [(SF "o") (SD "wn")])
+(define_mode_attr f32_sm2 [(SF "wY") (SD "wn")])
(define_mode_attr f32_si [(SF "stfs%U0%X0 %1,%0") (SD "stfiwx %1,%y0")])
(define_mode_attr f32_si2 [(SF "stxssp %1,%0") (SD "stfiwx %1,%y0")])
(define_mode_attr f32_sv [(SF "stxsspx %x1,%y0") (SD "stxsiwzx %x1,%y0")])
(IF "TARGET_FLOAT128")
(TF "TARGET_LONG_DOUBLE_128")])
+; Iterator for signbit on 64-bit machines with direct move
+(define_mode_iterator SIGNBIT [(KF "FLOAT128_VECTOR_P (KFmode)")
+ (TF "FLOAT128_VECTOR_P (TFmode)")])
+
+(define_mode_attr Fsignbit [(KF "wa")
+ (TF "wa")])
+
; SF/DF suffix for traditional floating instructions
(define_mode_attr Ftrad [(SF "s") (DF "")])
(define_insn_and_split "*extendsfdf2_fpr"
[(set (match_operand:DF 0 "gpc_reg_operand" "=d,?d,d,ws,?ws,wu,wb")
- (float_extend:DF (match_operand:SF 1 "reg_or_mem_operand" "0,f,m,0,wy,Z,o")))]
+ (float_extend:DF (match_operand:SF 1 "reg_or_mem_operand" "0,f,m,0,wy,Z,wY")))]
"TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_DOUBLE_FLOAT"
"@
#
;; when little-endian.
(define_expand "signbit<mode>2"
[(set (match_dup 2)
- (float_truncate:DF (match_operand:IBM128 1 "gpc_reg_operand" "")))
+ (float_truncate:DF (match_operand:FLOAT128 1 "gpc_reg_operand" "")))
(set (match_dup 3)
(subreg:DI (match_dup 2) 0))
(set (match_dup 4)
(set (match_operand:SI 0 "gpc_reg_operand" "")
(match_dup 6))]
"TARGET_HARD_FLOAT
- && (TARGET_FPRS || TARGET_E500_DOUBLE)"
+ && (TARGET_FPRS || TARGET_E500_DOUBLE)
+ && (!FLOAT128_IEEE_P (<MODE>mode)
+ || (TARGET_POWERPC64 && TARGET_DIRECT_MOVE))"
{
+ if (FLOAT128_IEEE_P (<MODE>mode))
+ {
+ if (<MODE>mode == KFmode)
+ emit_insn (gen_signbitkf2_dm (operands[0], operands[1]));
+ else if (<MODE>mode == TFmode)
+ emit_insn (gen_signbittf2_dm (operands[0], operands[1]));
+ else
+ gcc_unreachable ();
+ DONE;
+ }
operands[2] = gen_reg_rtx (DFmode);
operands[3] = gen_reg_rtx (DImode);
if (TARGET_POWERPC64)
operands[5] = CONST0_RTX (<MODE>mode);
})
+;; Optimize signbit on 64-bit systems with direct move to avoid doing the store
+;; and load.
+(define_insn_and_split "signbit<mode>2_dm"
+ [(set (match_operand:SI 0 "gpc_reg_operand" "=r,r,r")
+ (unspec:SI
+ [(match_operand:SIGNBIT 1 "input_operand" "<Fsignbit>,m,r")]
+ UNSPEC_SIGNBIT))]
+ "TARGET_POWERPC64 && TARGET_DIRECT_MOVE"
+ "#"
+ "&& reload_completed"
+ [(const_int 0)]
+{
+ rs6000_split_signbit (operands[0], operands[1]);
+ DONE;
+}
+ [(set_attr "length" "8,8,12")
+ (set_attr "type" "mftgpr,load,integer")])
+
+;; MODES_TIEABLE_P doesn't allow DImode to be tied with the various floating
+;; point types, which makes normal SUBREG's problematical. Instead use a
+;; special pattern to avoid using a normal movdi.
+(define_insn "signbit<mode>2_dm2"
+ [(set (match_operand:DI 0 "gpc_reg_operand" "=r")
+ (unspec:DI [(match_operand:SIGNBIT 1 "gpc_reg_operand" "<Fsignbit>")
+ (const_int 0)]
+ UNSPEC_SIGNBIT))]
+ "TARGET_POWERPC64 && TARGET_DIRECT_MOVE"
+ "mfvsrd %0,%x1"
+ [(set_attr "type" "mftgpr")])
+
+
;; Use an unspec rather providing an if-then-else in RTL, to prevent the
;; compiler from optimizing -0.0
(define_insn "copysign<mode>3_fcpsgn"
}")
(define_insn "mov<mode>_hardfloat"
- [(set (match_operand:FMOVE32 0 "nonimmediate_operand" "=!r,!r,m,f,<f32_vsx>,<f32_vsx>,!r,<f32_lr>,<f32_lr2>,<f32_sm>,<f32_sm2>,<f32_av>,Z,?<f32_dm>,?r,*c*l,!r,*h")
- (match_operand:FMOVE32 1 "input_operand" "r,m,r,f,<f32_vsx>,<zero_fp>,<zero_fp>,<f32_lm>,<f32_lm2>,<f32_sr>,<f32_sr2>,Z,<f32_av>,r,<f32_dm>,r,h,0"))]
+ [(set (match_operand:FMOVE32 0 "nonimmediate_operand"
+ "=!r, <f32_lr>, <f32_lr2>, <f32_av>, m, <f32_sm>,
+ <f32_sm2>, Z, <f32_vsx>, !r, ?<f32_dm>, ?r,
+ f, <f32_vsx>, !r, *c*l, !r, *h")
+ (match_operand:FMOVE32 1 "input_operand"
+ "m, <f32_lm>, <f32_lm2>, Z, r, <f32_sr>,
+ <f32_sr2>, <f32_av>, <zero_fp>, <zero_fp>, r, <f32_dm>,
+ f, <f32_vsx>, r, r, *h, 0"))]
"(gpc_reg_operand (operands[0], <MODE>mode)
|| gpc_reg_operand (operands[1], <MODE>mode))
&& (TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_SINGLE_FLOAT)"
"@
- mr %0,%1
lwz%U1%X1 %0,%1
- stw%U0%X0 %1,%0
- fmr %0,%1
- xscpsgndp %x0,%x1,%x1
- xxlxor %x0,%x0,%x0
- li %0,0
<f32_li>
<f32_li2>
+ <f32_lv>
+ stw%U0%X0 %1,%0
<f32_si>
<f32_si2>
- <f32_lv>
<f32_sv>
+ xxlxor %x0,%x0,%x0
+ li %0,0
mtvsrwz %x0,%1
mfvsrwz %0,%x1
+ fmr %0,%1
+ xscpsgndp %x0,%x1,%x1
+ mr %0,%1
mt%0 %1
mf%1 %0
nop"
- [(set_attr "type" "*,load,store,fpsimple,fpsimple,veclogical,integer,fpload,fpload,fpstore,fpstore,fpload,fpstore,mffgpr,mftgpr,mtjmpr,mfjmpr,*")
- (set_attr "length" "4")])
+ [(set_attr "type" "load,fpload,fpload,fpload,store,fpstore,fpstore,fpstore,veclogical,integer,mffgpr,mftgpr,fpsimple,fpsimple,*,mtjmpr,mfjmpr,*")])
(define_insn "*mov<mode>_softfloat"
[(set (match_operand:FMOVE32 0 "nonimmediate_operand" "=r,cl,r,r,m,r,r,r,r,*h")
(set (match_dup 0)
(plus:P (match_dup 0)
(const_int -1)))
+ (unspec [(const_int 0)] UNSPEC_DOLOOP)
(clobber (match_scratch:CC 2 ""))
(clobber (match_scratch:P 3 ""))])]
""
;; JUMP_INSNs.
;; For the length attribute to be calculated correctly, the
;; label MUST be operand 0.
+;; The UNSPEC is present to prevent combine creating this pattern.
(define_insn "*ctr<mode>_internal1"
[(set (pc)
(const_int 1))
(label_ref (match_operand 0 "" ""))
(pc)))
- (set (match_operand:P 2 "nonimmediate_operand" "=1,*r,m,*d*c*l")
+ (set (match_operand:P 2 "nonimmediate_operand" "=1,*r,m,*d*wi*c*l")
(plus:P (match_dup 1)
(const_int -1)))
+ (unspec [(const_int 0)] UNSPEC_DOLOOP)
(clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
(clobber (match_scratch:P 4 "=X,X,&r,r"))]
""
(const_int 1))
(pc)
(label_ref (match_operand 0 "" ""))))
- (set (match_operand:P 2 "nonimmediate_operand" "=1,*r,m,*d*c*l")
+ (set (match_operand:P 2 "nonimmediate_operand" "=1,*r,m,*d*wi*c*l")
(plus:P (match_dup 1)
(const_int -1)))
+ (unspec [(const_int 0)] UNSPEC_DOLOOP)
(clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
(clobber (match_scratch:P 4 "=X,X,&r,r"))]
""
(const_int 1))
(label_ref (match_operand 0 "" ""))
(pc)))
- (set (match_operand:P 2 "nonimmediate_operand" "=1,*r,m,*d*c*l")
+ (set (match_operand:P 2 "nonimmediate_operand" "=1,*r,m,*d*wi*c*l")
(plus:P (match_dup 1)
(const_int -1)))
+ (unspec [(const_int 0)] UNSPEC_DOLOOP)
(clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
(clobber (match_scratch:P 4 "=X,X,&r,r"))]
""
(const_int 1))
(pc)
(label_ref (match_operand 0 "" ""))))
- (set (match_operand:P 2 "nonimmediate_operand" "=1,*r,m,*d*c*l")
+ (set (match_operand:P 2 "nonimmediate_operand" "=1,*r,m,*d*wi*c*l")
(plus:P (match_dup 1)
(const_int -1)))
+ (unspec [(const_int 0)] UNSPEC_DOLOOP)
(clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
(clobber (match_scratch:P 4 "=X,X,&r,r"))]
""
(match_operand 6 "" "")))
(set (match_operand:P 0 "int_reg_operand" "")
(plus:P (match_dup 1) (const_int -1)))
+ (unspec [(const_int 0)] UNSPEC_DOLOOP)
(clobber (match_scratch:CC 3 ""))
(clobber (match_scratch:P 4 ""))]
"reload_completed"
(match_operand 6 "" "")))
(set (match_operand:P 0 "nonimmediate_operand" "")
(plus:P (match_dup 1) (const_int -1)))
+ (unspec [(const_int 0)] UNSPEC_DOLOOP)
(clobber (match_scratch:CC 3 ""))
(clobber (match_scratch:P 4 ""))]
"reload_completed && ! gpc_reg_operand (operands[0], SImode)"
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
-#define DEF_FN_TYPE_1(FN_TYPE, FLAGS, T1) \
+#define DEF_FN_TYPE_0(FN_TYPE, FLAGS, T1) \
DEF_FN_TYPE (FN_TYPE, \
FLAGS, \
s390_builtin_types[T1])
-#define DEF_FN_TYPE_2(FN_TYPE, FLAGS, T1, T2) \
+#define DEF_FN_TYPE_1(FN_TYPE, FLAGS, T1, T2) \
DEF_FN_TYPE (FN_TYPE, \
FLAGS, \
s390_builtin_types[T1], \
s390_builtin_types[T2])
-#define DEF_FN_TYPE_3(FN_TYPE, FLAGS, T1, T2, T3) \
+#define DEF_FN_TYPE_2(FN_TYPE, FLAGS, T1, T2, T3) \
DEF_FN_TYPE (FN_TYPE, \
FLAGS, \
s390_builtin_types[T1], \
s390_builtin_types[T2], \
s390_builtin_types[T3])
-#define DEF_FN_TYPE_4(FN_TYPE, FLAGS, T1, T2, T3, T4) \
+#define DEF_FN_TYPE_3(FN_TYPE, FLAGS, T1, T2, T3, T4) \
DEF_FN_TYPE (FN_TYPE, \
FLAGS, \
s390_builtin_types[T1], \
s390_builtin_types[T2], \
s390_builtin_types[T3], \
s390_builtin_types[T4])
-#define DEF_FN_TYPE_5(FN_TYPE, FLAGS, T1, T2, T3, T4, T5) \
+#define DEF_FN_TYPE_4(FN_TYPE, FLAGS, T1, T2, T3, T4, T5) \
DEF_FN_TYPE (FN_TYPE, \
FLAGS, \
s390_builtin_types[T1], \
s390_builtin_types[T3], \
s390_builtin_types[T4], \
s390_builtin_types[T5])
-#define DEF_FN_TYPE_6(FN_TYPE, FLAGS, T1, T2, T3, T4, T5, T6) \
+#define DEF_FN_TYPE_5(FN_TYPE, FLAGS, T1, T2, T3, T4, T5, T6) \
DEF_FN_TYPE (FN_TYPE, \
FLAGS, \
s390_builtin_types[T1], \
DEF_TYPE (BT_UINT, 0, unsigned_type_node, 0)
DEF_TYPE (BT_VOIDCONST, B_VX, void_type_node, 1)
DEF_TYPE (BT_ULONG, B_VX, long_unsigned_type_node, 0)
+DEF_TYPE (BT_INT128, B_VX, intTI_type_node, 0)
DEF_TYPE (BT_USHORTCONST, B_VX, short_unsigned_type_node, 1)
DEF_TYPE (BT_SHORTCONST, B_VX, short_integer_type_node, 1)
DEF_TYPE (BT_INTCONST, B_VX, integer_type_node, 1)
DEF_OPAQUE_VECTOR_TYPE (BT_BV4SI, B_VX, BT_BINT, 4)
DEF_OPAQUE_VECTOR_TYPE (BT_BV2DI, B_VX, BT_BLONGLONG, 2)
DEF_OPAQUE_VECTOR_TYPE (BT_BV8HI, B_VX, BT_BSHORT, 8)
-DEF_FN_TYPE_1 (BT_FN_INT, B_HTM, BT_INT)
-DEF_FN_TYPE_1 (BT_FN_UINT, 0, BT_UINT)
-DEF_FN_TYPE_2 (BT_FN_INT_INT, B_VX, BT_INT, BT_INT)
-DEF_FN_TYPE_2 (BT_FN_INT_VOIDPTR, B_HTM, BT_INT, BT_VOIDPTR)
-DEF_FN_TYPE_2 (BT_FN_OV4SI_INT, B_VX, BT_OV4SI, BT_INT)
-DEF_FN_TYPE_2 (BT_FN_OV4SI_INTCONSTPTR, B_VX, BT_OV4SI, BT_INTCONSTPTR)
-DEF_FN_TYPE_2 (BT_FN_OV4SI_OV4SI, B_VX, BT_OV4SI, BT_OV4SI)
-DEF_FN_TYPE_2 (BT_FN_UV16QI_UCHAR, B_VX, BT_UV16QI, BT_UCHAR)
-DEF_FN_TYPE_2 (BT_FN_UV16QI_UCHARCONSTPTR, B_VX, BT_UV16QI, BT_UCHARCONSTPTR)
-DEF_FN_TYPE_2 (BT_FN_UV16QI_USHORT, B_VX, BT_UV16QI, BT_USHORT)
-DEF_FN_TYPE_2 (BT_FN_UV16QI_UV16QI, B_VX, BT_UV16QI, BT_UV16QI)
-DEF_FN_TYPE_2 (BT_FN_UV2DI_ULONGLONG, B_VX, BT_UV2DI, BT_ULONGLONG)
-DEF_FN_TYPE_2 (BT_FN_UV2DI_ULONGLONGCONSTPTR, B_VX, BT_UV2DI, BT_ULONGLONGCONSTPTR)
-DEF_FN_TYPE_2 (BT_FN_UV2DI_USHORT, B_VX, BT_UV2DI, BT_USHORT)
-DEF_FN_TYPE_2 (BT_FN_UV2DI_UV2DI, B_VX, BT_UV2DI, BT_UV2DI)
-DEF_FN_TYPE_2 (BT_FN_UV2DI_UV4SI, B_VX, BT_UV2DI, BT_UV4SI)
-DEF_FN_TYPE_2 (BT_FN_UV4SI_UINT, B_VX, BT_UV4SI, BT_UINT)
-DEF_FN_TYPE_2 (BT_FN_UV4SI_UINTCONSTPTR, B_VX, BT_UV4SI, BT_UINTCONSTPTR)
-DEF_FN_TYPE_2 (BT_FN_UV4SI_USHORT, B_VX, BT_UV4SI, BT_USHORT)
-DEF_FN_TYPE_2 (BT_FN_UV4SI_UV4SI, B_VX, BT_UV4SI, BT_UV4SI)
-DEF_FN_TYPE_2 (BT_FN_UV4SI_UV8HI, B_VX, BT_UV4SI, BT_UV8HI)
-DEF_FN_TYPE_2 (BT_FN_UV8HI_USHORT, B_VX, BT_UV8HI, BT_USHORT)
-DEF_FN_TYPE_2 (BT_FN_UV8HI_USHORTCONSTPTR, B_VX, BT_UV8HI, BT_USHORTCONSTPTR)
-DEF_FN_TYPE_2 (BT_FN_UV8HI_UV16QI, B_VX, BT_UV8HI, BT_UV16QI)
-DEF_FN_TYPE_2 (BT_FN_UV8HI_UV8HI, B_VX, BT_UV8HI, BT_UV8HI)
-DEF_FN_TYPE_2 (BT_FN_V16QI_SCHAR, B_VX, BT_V16QI, BT_SCHAR)
-DEF_FN_TYPE_2 (BT_FN_V16QI_UCHAR, B_VX, BT_V16QI, BT_UCHAR)
-DEF_FN_TYPE_2 (BT_FN_V16QI_V16QI, B_VX, BT_V16QI, BT_V16QI)
-DEF_FN_TYPE_2 (BT_FN_V2DF_DBL, B_VX, BT_V2DF, BT_DBL)
-DEF_FN_TYPE_2 (BT_FN_V2DF_FLTCONSTPTR, B_VX, BT_V2DF, BT_FLTCONSTPTR)
-DEF_FN_TYPE_2 (BT_FN_V2DF_V2DF, B_VX, BT_V2DF, BT_V2DF)
-DEF_FN_TYPE_2 (BT_FN_V2DI_SHORT, B_VX, BT_V2DI, BT_SHORT)
-DEF_FN_TYPE_2 (BT_FN_V2DI_V16QI, B_VX, BT_V2DI, BT_V16QI)
-DEF_FN_TYPE_2 (BT_FN_V2DI_V2DI, B_VX, BT_V2DI, BT_V2DI)
-DEF_FN_TYPE_2 (BT_FN_V2DI_V4SI, B_VX, BT_V2DI, BT_V4SI)
-DEF_FN_TYPE_2 (BT_FN_V2DI_V8HI, B_VX, BT_V2DI, BT_V8HI)
-DEF_FN_TYPE_2 (BT_FN_V4SI_SHORT, B_VX, BT_V4SI, BT_SHORT)
-DEF_FN_TYPE_2 (BT_FN_V4SI_V4SI, B_VX, BT_V4SI, BT_V4SI)
-DEF_FN_TYPE_2 (BT_FN_V4SI_V8HI, B_VX, BT_V4SI, BT_V8HI)
-DEF_FN_TYPE_2 (BT_FN_V8HI_SHORT, B_VX, BT_V8HI, BT_SHORT)
-DEF_FN_TYPE_2 (BT_FN_V8HI_V16QI, B_VX, BT_V8HI, BT_V16QI)
-DEF_FN_TYPE_2 (BT_FN_V8HI_V8HI, B_VX, BT_V8HI, BT_V8HI)
-DEF_FN_TYPE_2 (BT_FN_VOID_INT, B_HTM, BT_VOID, BT_INT)
-DEF_FN_TYPE_2 (BT_FN_VOID_UINT, 0, BT_VOID, BT_UINT)
-DEF_FN_TYPE_3 (BT_FN_DBL_V2DF_INT, B_VX, BT_DBL, BT_V2DF, BT_INT)
-DEF_FN_TYPE_3 (BT_FN_INT_OV4SI_INT, B_VX, BT_INT, BT_OV4SI, BT_INT)
-DEF_FN_TYPE_3 (BT_FN_INT_OV4SI_OV4SI, B_VX, BT_INT, BT_OV4SI, BT_OV4SI)
-DEF_FN_TYPE_3 (BT_FN_INT_UV16QI_UV16QI, B_VX, BT_INT, BT_UV16QI, BT_UV16QI)
-DEF_FN_TYPE_3 (BT_FN_INT_UV2DI_UV2DI, B_VX, BT_INT, BT_UV2DI, BT_UV2DI)
-DEF_FN_TYPE_3 (BT_FN_INT_UV4SI_UV4SI, B_VX, BT_INT, BT_UV4SI, BT_UV4SI)
-DEF_FN_TYPE_3 (BT_FN_INT_UV8HI_UV8HI, B_VX, BT_INT, BT_UV8HI, BT_UV8HI)
-DEF_FN_TYPE_3 (BT_FN_INT_V16QI_V16QI, B_VX, BT_INT, BT_V16QI, BT_V16QI)
-DEF_FN_TYPE_3 (BT_FN_INT_V2DF_V2DF, B_VX, BT_INT, BT_V2DF, BT_V2DF)
-DEF_FN_TYPE_3 (BT_FN_INT_V2DI_V2DI, B_VX, BT_INT, BT_V2DI, BT_V2DI)
-DEF_FN_TYPE_3 (BT_FN_INT_V4SI_V4SI, B_VX, BT_INT, BT_V4SI, BT_V4SI)
-DEF_FN_TYPE_3 (BT_FN_INT_V8HI_V8HI, B_VX, BT_INT, BT_V8HI, BT_V8HI)
-DEF_FN_TYPE_3 (BT_FN_INT_VOIDPTR_INT, B_HTM, BT_INT, BT_VOIDPTR, BT_INT)
-DEF_FN_TYPE_3 (BT_FN_OV2DI_LONGLONG_LONGLONG, B_VX, BT_OV2DI, BT_LONGLONG, BT_LONGLONG)
-DEF_FN_TYPE_3 (BT_FN_OV4SI_INTCONSTPTR_INT, B_VX, BT_OV4SI, BT_INTCONSTPTR, BT_INT)
-DEF_FN_TYPE_3 (BT_FN_OV4SI_INTCONSTPTR_UINT, B_VX, BT_OV4SI, BT_INTCONSTPTR, BT_UINT)
-DEF_FN_TYPE_3 (BT_FN_OV4SI_INT_INT, B_VX, BT_OV4SI, BT_INT, BT_INT)
-DEF_FN_TYPE_3 (BT_FN_OV4SI_OV4SI_INTPTR, B_VX, BT_OV4SI, BT_OV4SI, BT_INTPTR)
-DEF_FN_TYPE_3 (BT_FN_OV4SI_OV4SI_OV4SI, B_VX, BT_OV4SI, BT_OV4SI, BT_OV4SI)
-DEF_FN_TYPE_3 (BT_FN_OV4SI_OV4SI_UCHAR, B_VX, BT_OV4SI, BT_OV4SI, BT_UCHAR)
-DEF_FN_TYPE_3 (BT_FN_OV4SI_OV4SI_ULONG, B_VX, BT_OV4SI, BT_OV4SI, BT_ULONG)
-DEF_FN_TYPE_3 (BT_FN_UCHAR_UV16QI_INT, B_VX, BT_UCHAR, BT_UV16QI, BT_INT)
-DEF_FN_TYPE_3 (BT_FN_UINT_UV4SI_INT, B_VX, BT_UINT, BT_UV4SI, BT_INT)
-DEF_FN_TYPE_3 (BT_FN_UINT_VOIDCONSTPTR_INT, B_VX, BT_UINT, BT_VOIDCONSTPTR, BT_INT)
-DEF_FN_TYPE_3 (BT_FN_ULONGLONG_UV2DI_INT, B_VX, BT_ULONGLONG, BT_UV2DI, BT_INT)
-DEF_FN_TYPE_3 (BT_FN_USHORT_UV8HI_INT, B_VX, BT_USHORT, BT_UV8HI, BT_INT)
-DEF_FN_TYPE_3 (BT_FN_UV16QI_UCHARCONSTPTR_USHORT, B_VX, BT_UV16QI, BT_UCHARCONSTPTR, BT_USHORT)
-DEF_FN_TYPE_3 (BT_FN_UV16QI_UCHAR_INT, B_VX, BT_UV16QI, BT_UCHAR, BT_INT)
-DEF_FN_TYPE_3 (BT_FN_UV16QI_UCHAR_UCHAR, B_VX, BT_UV16QI, BT_UCHAR, BT_UCHAR)
-DEF_FN_TYPE_3 (BT_FN_UV16QI_UV16QI_INTPTR, B_VX, BT_UV16QI, BT_UV16QI, BT_INTPTR)
-DEF_FN_TYPE_3 (BT_FN_UV16QI_UV16QI_UCHAR, B_VX, BT_UV16QI, BT_UV16QI, BT_UCHAR)
-DEF_FN_TYPE_3 (BT_FN_UV16QI_UV16QI_UINT, B_VX, BT_UV16QI, BT_UV16QI, BT_UINT)
-DEF_FN_TYPE_3 (BT_FN_UV16QI_UV16QI_UV16QI, B_VX, BT_UV16QI, BT_UV16QI, BT_UV16QI)
-DEF_FN_TYPE_3 (BT_FN_UV16QI_UV2DI_UV2DI, B_VX, BT_UV16QI, BT_UV2DI, BT_UV2DI)
-DEF_FN_TYPE_3 (BT_FN_UV16QI_UV4SI_UV4SI, B_VX, BT_UV16QI, BT_UV4SI, BT_UV4SI)
-DEF_FN_TYPE_3 (BT_FN_UV16QI_UV8HI_UV8HI, B_VX, BT_UV16QI, BT_UV8HI, BT_UV8HI)
-DEF_FN_TYPE_3 (BT_FN_UV2DI_UCHAR_UCHAR, B_VX, BT_UV2DI, BT_UCHAR, BT_UCHAR)
-DEF_FN_TYPE_3 (BT_FN_UV2DI_ULONGLONG_INT, B_VX, BT_UV2DI, BT_ULONGLONG, BT_INT)
-DEF_FN_TYPE_3 (BT_FN_UV2DI_UV2DI_UCHAR, B_VX, BT_UV2DI, BT_UV2DI, BT_UCHAR)
-DEF_FN_TYPE_3 (BT_FN_UV2DI_UV2DI_UINT, B_VX, BT_UV2DI, BT_UV2DI, BT_UINT)
-DEF_FN_TYPE_3 (BT_FN_UV2DI_UV2DI_UV2DI, B_VX, BT_UV2DI, BT_UV2DI, BT_UV2DI)
-DEF_FN_TYPE_3 (BT_FN_UV2DI_UV4SI_UV4SI, B_VX, BT_UV2DI, BT_UV4SI, BT_UV4SI)
-DEF_FN_TYPE_3 (BT_FN_UV2DI_UV8HI_UV8HI, B_VX, BT_UV2DI, BT_UV8HI, BT_UV8HI)
-DEF_FN_TYPE_3 (BT_FN_UV2DI_V2DF_INT, B_VX, BT_UV2DI, BT_V2DF, BT_INT)
-DEF_FN_TYPE_3 (BT_FN_UV4SI_UCHAR_UCHAR, B_VX, BT_UV4SI, BT_UCHAR, BT_UCHAR)
-DEF_FN_TYPE_3 (BT_FN_UV4SI_UINT_INT, B_VX, BT_UV4SI, BT_UINT, BT_INT)
-DEF_FN_TYPE_3 (BT_FN_UV4SI_UV16QI_UV16QI, B_VX, BT_UV4SI, BT_UV16QI, BT_UV16QI)
-DEF_FN_TYPE_3 (BT_FN_UV4SI_UV2DI_UV2DI, B_VX, BT_UV4SI, BT_UV2DI, BT_UV2DI)
-DEF_FN_TYPE_3 (BT_FN_UV4SI_UV4SI_INTPTR, B_VX, BT_UV4SI, BT_UV4SI, BT_INTPTR)
-DEF_FN_TYPE_3 (BT_FN_UV4SI_UV4SI_UCHAR, B_VX, BT_UV4SI, BT_UV4SI, BT_UCHAR)
-DEF_FN_TYPE_3 (BT_FN_UV4SI_UV4SI_UINT, B_VX, BT_UV4SI, BT_UV4SI, BT_UINT)
-DEF_FN_TYPE_3 (BT_FN_UV4SI_UV4SI_UV4SI, B_VX, BT_UV4SI, BT_UV4SI, BT_UV4SI)
-DEF_FN_TYPE_3 (BT_FN_UV4SI_UV8HI_UV8HI, B_VX, BT_UV4SI, BT_UV8HI, BT_UV8HI)
-DEF_FN_TYPE_3 (BT_FN_UV8HI_UCHAR_UCHAR, B_VX, BT_UV8HI, BT_UCHAR, BT_UCHAR)
-DEF_FN_TYPE_3 (BT_FN_UV8HI_USHORT_INT, B_VX, BT_UV8HI, BT_USHORT, BT_INT)
-DEF_FN_TYPE_3 (BT_FN_UV8HI_UV16QI_UV16QI, B_VX, BT_UV8HI, BT_UV16QI, BT_UV16QI)
-DEF_FN_TYPE_3 (BT_FN_UV8HI_UV4SI_UV4SI, B_VX, BT_UV8HI, BT_UV4SI, BT_UV4SI)
-DEF_FN_TYPE_3 (BT_FN_UV8HI_UV8HI_INTPTR, B_VX, BT_UV8HI, BT_UV8HI, BT_INTPTR)
-DEF_FN_TYPE_3 (BT_FN_UV8HI_UV8HI_UCHAR, B_VX, BT_UV8HI, BT_UV8HI, BT_UCHAR)
-DEF_FN_TYPE_3 (BT_FN_UV8HI_UV8HI_UINT, B_VX, BT_UV8HI, BT_UV8HI, BT_UINT)
-DEF_FN_TYPE_3 (BT_FN_UV8HI_UV8HI_UV8HI, B_VX, BT_UV8HI, BT_UV8HI, BT_UV8HI)
-DEF_FN_TYPE_3 (BT_FN_V16QI_BV16QI_V16QI, B_VX, BT_V16QI, BT_BV16QI, BT_V16QI)
-DEF_FN_TYPE_3 (BT_FN_V16QI_UINT_VOIDCONSTPTR, B_VX, BT_V16QI, BT_UINT, BT_VOIDCONSTPTR)
-DEF_FN_TYPE_3 (BT_FN_V16QI_UV16QI_UV16QI, B_VX, BT_V16QI, BT_UV16QI, BT_UV16QI)
-DEF_FN_TYPE_3 (BT_FN_V16QI_V16QI_V16QI, B_VX, BT_V16QI, BT_V16QI, BT_V16QI)
-DEF_FN_TYPE_3 (BT_FN_V16QI_V8HI_V8HI, B_VX, BT_V16QI, BT_V8HI, BT_V8HI)
-DEF_FN_TYPE_3 (BT_FN_V2DF_DBL_INT, B_VX, BT_V2DF, BT_DBL, BT_INT)
-DEF_FN_TYPE_3 (BT_FN_V2DF_UV2DI_INT, B_VX, BT_V2DF, BT_UV2DI, BT_INT)
-DEF_FN_TYPE_3 (BT_FN_V2DF_UV4SI_INT, B_VX, BT_V2DF, BT_UV4SI, BT_INT)
-DEF_FN_TYPE_3 (BT_FN_V2DF_V2DF_V2DF, B_VX, BT_V2DF, BT_V2DF, BT_V2DF)
-DEF_FN_TYPE_3 (BT_FN_V2DF_V2DI_INT, B_VX, BT_V2DF, BT_V2DI, BT_INT)
-DEF_FN_TYPE_3 (BT_FN_V2DI_BV2DI_V2DI, B_VX, BT_V2DI, BT_BV2DI, BT_V2DI)
-DEF_FN_TYPE_3 (BT_FN_V2DI_UV2DI_UV2DI, B_VX, BT_V2DI, BT_UV2DI, BT_UV2DI)
-DEF_FN_TYPE_3 (BT_FN_V2DI_V2DF_INT, B_VX, BT_V2DI, BT_V2DF, BT_INT)
-DEF_FN_TYPE_3 (BT_FN_V2DI_V2DF_V2DF, B_VX, BT_V2DI, BT_V2DF, BT_V2DF)
-DEF_FN_TYPE_3 (BT_FN_V2DI_V2DI_V2DI, B_VX, BT_V2DI, BT_V2DI, BT_V2DI)
-DEF_FN_TYPE_3 (BT_FN_V2DI_V4SI_V4SI, B_VX, BT_V2DI, BT_V4SI, BT_V4SI)
-DEF_FN_TYPE_3 (BT_FN_V4SI_BV4SI_V4SI, B_VX, BT_V4SI, BT_BV4SI, BT_V4SI)
-DEF_FN_TYPE_3 (BT_FN_V4SI_INT_VOIDPTR, B_VX, BT_V4SI, BT_INT, BT_VOIDPTR)
-DEF_FN_TYPE_3 (BT_FN_V4SI_UV4SI_UV4SI, B_VX, BT_V4SI, BT_UV4SI, BT_UV4SI)
-DEF_FN_TYPE_3 (BT_FN_V4SI_V2DI_V2DI, B_VX, BT_V4SI, BT_V2DI, BT_V2DI)
-DEF_FN_TYPE_3 (BT_FN_V4SI_V4SI_V4SI, B_VX, BT_V4SI, BT_V4SI, BT_V4SI)
-DEF_FN_TYPE_3 (BT_FN_V4SI_V8HI_V8HI, B_VX, BT_V4SI, BT_V8HI, BT_V8HI)
-DEF_FN_TYPE_3 (BT_FN_V8HI_BV8HI_V8HI, B_VX, BT_V8HI, BT_BV8HI, BT_V8HI)
-DEF_FN_TYPE_3 (BT_FN_V8HI_UV8HI_UV8HI, B_VX, BT_V8HI, BT_UV8HI, BT_UV8HI)
-DEF_FN_TYPE_3 (BT_FN_V8HI_V16QI_V16QI, B_VX, BT_V8HI, BT_V16QI, BT_V16QI)
-DEF_FN_TYPE_3 (BT_FN_V8HI_V4SI_V4SI, B_VX, BT_V8HI, BT_V4SI, BT_V4SI)
-DEF_FN_TYPE_3 (BT_FN_V8HI_V8HI_V8HI, B_VX, BT_V8HI, BT_V8HI, BT_V8HI)
-DEF_FN_TYPE_3 (BT_FN_VOID_UINT64PTR_UINT64, B_HTM, BT_VOID, BT_UINT64PTR, BT_UINT64)
-DEF_FN_TYPE_3 (BT_FN_VOID_V2DF_FLTPTR, B_VX, BT_VOID, BT_V2DF, BT_FLTPTR)
-DEF_FN_TYPE_4 (BT_FN_INT_OV4SI_OV4SI_INTPTR, B_VX, BT_INT, BT_OV4SI, BT_OV4SI, BT_INTPTR)
-DEF_FN_TYPE_4 (BT_FN_OV4SI_INT_OV4SI_INT, B_VX, BT_OV4SI, BT_INT, BT_OV4SI, BT_INT)
-DEF_FN_TYPE_4 (BT_FN_OV4SI_OV4SI_OV4SI_INT, B_VX, BT_OV4SI, BT_OV4SI, BT_OV4SI, BT_INT)
-DEF_FN_TYPE_4 (BT_FN_OV4SI_OV4SI_OV4SI_INTPTR, B_VX, BT_OV4SI, BT_OV4SI, BT_OV4SI, BT_INTPTR)
-DEF_FN_TYPE_4 (BT_FN_OV4SI_OV4SI_OV4SI_OV4SI, B_VX, BT_OV4SI, BT_OV4SI, BT_OV4SI, BT_OV4SI)
-DEF_FN_TYPE_4 (BT_FN_OV4SI_OV4SI_OV4SI_UCHAR, B_VX, BT_OV4SI, BT_OV4SI, BT_OV4SI, BT_UCHAR)
-DEF_FN_TYPE_4 (BT_FN_OV4SI_OV4SI_OV4SI_ULONGLONG, B_VX, BT_OV4SI, BT_OV4SI, BT_OV4SI, BT_ULONGLONG)
-DEF_FN_TYPE_4 (BT_FN_UV16QI_UV16QI_UCHAR_INT, B_VX, BT_UV16QI, BT_UV16QI, BT_UCHAR, BT_INT)
-DEF_FN_TYPE_4 (BT_FN_UV16QI_UV16QI_UV16QI_INT, B_VX, BT_UV16QI, BT_UV16QI, BT_UV16QI, BT_INT)
-DEF_FN_TYPE_4 (BT_FN_UV16QI_UV16QI_UV16QI_INTPTR, B_VX, BT_UV16QI, BT_UV16QI, BT_UV16QI, BT_INTPTR)
-DEF_FN_TYPE_4 (BT_FN_UV16QI_UV16QI_UV16QI_UV16QI, B_VX, BT_UV16QI, BT_UV16QI, BT_UV16QI, BT_UV16QI)
-DEF_FN_TYPE_4 (BT_FN_UV16QI_UV2DI_UV2DI_UV16QI, B_VX, BT_UV16QI, BT_UV2DI, BT_UV2DI, BT_UV16QI)
-DEF_FN_TYPE_4 (BT_FN_UV16QI_UV8HI_UV8HI_INTPTR, B_VX, BT_UV16QI, BT_UV8HI, BT_UV8HI, BT_INTPTR)
-DEF_FN_TYPE_4 (BT_FN_UV2DI_UV2DI_ULONGLONG_INT, B_VX, BT_UV2DI, BT_UV2DI, BT_ULONGLONG, BT_INT)
-DEF_FN_TYPE_4 (BT_FN_UV2DI_UV2DI_UV2DI_INT, B_VX, BT_UV2DI, BT_UV2DI, BT_UV2DI, BT_INT)
-DEF_FN_TYPE_4 (BT_FN_UV2DI_UV4SI_UV4SI_UV2DI, B_VX, BT_UV2DI, BT_UV4SI, BT_UV4SI, BT_UV2DI)
-DEF_FN_TYPE_4 (BT_FN_UV4SI_UV2DI_UV2DI_INTPTR, B_VX, BT_UV4SI, BT_UV2DI, BT_UV2DI, BT_INTPTR)
-DEF_FN_TYPE_4 (BT_FN_UV4SI_UV4SI_UINT_INT, B_VX, BT_UV4SI, BT_UV4SI, BT_UINT, BT_INT)
-DEF_FN_TYPE_4 (BT_FN_UV4SI_UV4SI_UV4SI_INT, B_VX, BT_UV4SI, BT_UV4SI, BT_UV4SI, BT_INT)
-DEF_FN_TYPE_4 (BT_FN_UV4SI_UV4SI_UV4SI_INTPTR, B_VX, BT_UV4SI, BT_UV4SI, BT_UV4SI, BT_INTPTR)
-DEF_FN_TYPE_4 (BT_FN_UV4SI_UV4SI_UV4SI_UV4SI, B_VX, BT_UV4SI, BT_UV4SI, BT_UV4SI, BT_UV4SI)
-DEF_FN_TYPE_4 (BT_FN_UV4SI_UV8HI_UV8HI_UV4SI, B_VX, BT_UV4SI, BT_UV8HI, BT_UV8HI, BT_UV4SI)
-DEF_FN_TYPE_4 (BT_FN_UV8HI_UV16QI_UV16QI_UV8HI, B_VX, BT_UV8HI, BT_UV16QI, BT_UV16QI, BT_UV8HI)
-DEF_FN_TYPE_4 (BT_FN_UV8HI_UV4SI_UV4SI_INTPTR, B_VX, BT_UV8HI, BT_UV4SI, BT_UV4SI, BT_INTPTR)
-DEF_FN_TYPE_4 (BT_FN_UV8HI_UV8HI_USHORT_INT, B_VX, BT_UV8HI, BT_UV8HI, BT_USHORT, BT_INT)
-DEF_FN_TYPE_4 (BT_FN_UV8HI_UV8HI_UV8HI_INT, B_VX, BT_UV8HI, BT_UV8HI, BT_UV8HI, BT_INT)
-DEF_FN_TYPE_4 (BT_FN_UV8HI_UV8HI_UV8HI_INTPTR, B_VX, BT_UV8HI, BT_UV8HI, BT_UV8HI, BT_INTPTR)
-DEF_FN_TYPE_4 (BT_FN_UV8HI_UV8HI_UV8HI_UV8HI, B_VX, BT_UV8HI, BT_UV8HI, BT_UV8HI, BT_UV8HI)
-DEF_FN_TYPE_4 (BT_FN_V16QI_UV16QI_UV16QI_INTPTR, B_VX, BT_V16QI, BT_UV16QI, BT_UV16QI, BT_INTPTR)
-DEF_FN_TYPE_4 (BT_FN_V16QI_V16QI_V16QI_INTPTR, B_VX, BT_V16QI, BT_V16QI, BT_V16QI, BT_INTPTR)
-DEF_FN_TYPE_4 (BT_FN_V16QI_V16QI_V16QI_V16QI, B_VX, BT_V16QI, BT_V16QI, BT_V16QI, BT_V16QI)
-DEF_FN_TYPE_4 (BT_FN_V16QI_V8HI_V8HI_INTPTR, B_VX, BT_V16QI, BT_V8HI, BT_V8HI, BT_INTPTR)
-DEF_FN_TYPE_4 (BT_FN_V2DF_V2DF_DBL_INT, B_VX, BT_V2DF, BT_V2DF, BT_DBL, BT_INT)
-DEF_FN_TYPE_4 (BT_FN_V2DF_V2DF_UCHAR_UCHAR, B_VX, BT_V2DF, BT_V2DF, BT_UCHAR, BT_UCHAR)
-DEF_FN_TYPE_4 (BT_FN_V2DF_V2DF_V2DF_V2DF, B_VX, BT_V2DF, BT_V2DF, BT_V2DF, BT_V2DF)
-DEF_FN_TYPE_4 (BT_FN_V2DI_UV2DI_UV2DI_INTPTR, B_VX, BT_V2DI, BT_UV2DI, BT_UV2DI, BT_INTPTR)
-DEF_FN_TYPE_4 (BT_FN_V2DI_V2DF_INT_INTPTR, B_VX, BT_V2DI, BT_V2DF, BT_INT, BT_INTPTR)
-DEF_FN_TYPE_4 (BT_FN_V2DI_V2DF_V2DF_INTPTR, B_VX, BT_V2DI, BT_V2DF, BT_V2DF, BT_INTPTR)
-DEF_FN_TYPE_4 (BT_FN_V2DI_V2DI_V2DI_INTPTR, B_VX, BT_V2DI, BT_V2DI, BT_V2DI, BT_INTPTR)
-DEF_FN_TYPE_4 (BT_FN_V2DI_V4SI_V4SI_V2DI, B_VX, BT_V2DI, BT_V4SI, BT_V4SI, BT_V2DI)
-DEF_FN_TYPE_4 (BT_FN_V4SI_UV4SI_UV4SI_INTPTR, B_VX, BT_V4SI, BT_UV4SI, BT_UV4SI, BT_INTPTR)
-DEF_FN_TYPE_4 (BT_FN_V4SI_V2DI_V2DI_INTPTR, B_VX, BT_V4SI, BT_V2DI, BT_V2DI, BT_INTPTR)
-DEF_FN_TYPE_4 (BT_FN_V4SI_V4SI_V4SI_INTPTR, B_VX, BT_V4SI, BT_V4SI, BT_V4SI, BT_INTPTR)
-DEF_FN_TYPE_4 (BT_FN_V4SI_V4SI_V4SI_V4SI, B_VX, BT_V4SI, BT_V4SI, BT_V4SI, BT_V4SI)
-DEF_FN_TYPE_4 (BT_FN_V4SI_V8HI_V8HI_V4SI, B_VX, BT_V4SI, BT_V8HI, BT_V8HI, BT_V4SI)
-DEF_FN_TYPE_4 (BT_FN_V8HI_UV8HI_UV8HI_INTPTR, B_VX, BT_V8HI, BT_UV8HI, BT_UV8HI, BT_INTPTR)
-DEF_FN_TYPE_4 (BT_FN_V8HI_V16QI_V16QI_V8HI, B_VX, BT_V8HI, BT_V16QI, BT_V16QI, BT_V8HI)
-DEF_FN_TYPE_4 (BT_FN_V8HI_V4SI_V4SI_INTPTR, B_VX, BT_V8HI, BT_V4SI, BT_V4SI, BT_INTPTR)
-DEF_FN_TYPE_4 (BT_FN_V8HI_V8HI_V8HI_INTPTR, B_VX, BT_V8HI, BT_V8HI, BT_V8HI, BT_INTPTR)
-DEF_FN_TYPE_4 (BT_FN_V8HI_V8HI_V8HI_V8HI, B_VX, BT_V8HI, BT_V8HI, BT_V8HI, BT_V8HI)
-DEF_FN_TYPE_4 (BT_FN_VOID_OV4SI_INT_VOIDPTR, B_VX, BT_VOID, BT_OV4SI, BT_INT, BT_VOIDPTR)
-DEF_FN_TYPE_4 (BT_FN_VOID_OV4SI_VOIDPTR_UINT, B_VX, BT_VOID, BT_OV4SI, BT_VOIDPTR, BT_UINT)
-DEF_FN_TYPE_4 (BT_FN_VOID_V16QI_UINT_VOIDPTR, B_VX, BT_VOID, BT_V16QI, BT_UINT, BT_VOIDPTR)
-DEF_FN_TYPE_5 (BT_FN_OV4SI_OV4SI_OUV4SI_INTCONSTPTR_UCHAR, B_VX, BT_OV4SI, BT_OV4SI, BT_OUV4SI, BT_INTCONSTPTR, BT_UCHAR)
-DEF_FN_TYPE_5 (BT_FN_OV4SI_OV4SI_OV4SI_OV4SI_INTPTR, B_VX, BT_OV4SI, BT_OV4SI, BT_OV4SI, BT_OV4SI, BT_INTPTR)
-DEF_FN_TYPE_5 (BT_FN_UV16QI_UV16QI_UV16QI_INT_INTPTR, B_VX, BT_UV16QI, BT_UV16QI, BT_UV16QI, BT_INT, BT_INTPTR)
-DEF_FN_TYPE_5 (BT_FN_UV16QI_UV16QI_UV16QI_UV16QI_INT, B_VX, BT_UV16QI, BT_UV16QI, BT_UV16QI, BT_UV16QI, BT_INT)
-DEF_FN_TYPE_5 (BT_FN_UV2DI_UV2DI_UV2DI_ULONGLONGCONSTPTR_UCHAR, B_VX, BT_UV2DI, BT_UV2DI, BT_UV2DI, BT_ULONGLONGCONSTPTR, BT_UCHAR)
-DEF_FN_TYPE_5 (BT_FN_UV2DI_UV2DI_UV2DI_UV2DI_INT, B_VX, BT_UV2DI, BT_UV2DI, BT_UV2DI, BT_UV2DI, BT_INT)
-DEF_FN_TYPE_5 (BT_FN_UV4SI_UV4SI_UV4SI_INT_INTPTR, B_VX, BT_UV4SI, BT_UV4SI, BT_UV4SI, BT_INT, BT_INTPTR)
-DEF_FN_TYPE_5 (BT_FN_UV4SI_UV4SI_UV4SI_UINTCONSTPTR_UCHAR, B_VX, BT_UV4SI, BT_UV4SI, BT_UV4SI, BT_UINTCONSTPTR, BT_UCHAR)
-DEF_FN_TYPE_5 (BT_FN_UV4SI_UV4SI_UV4SI_UV4SI_INT, B_VX, BT_UV4SI, BT_UV4SI, BT_UV4SI, BT_UV4SI, BT_INT)
-DEF_FN_TYPE_5 (BT_FN_UV8HI_UV8HI_UV8HI_INT_INTPTR, B_VX, BT_UV8HI, BT_UV8HI, BT_UV8HI, BT_INT, BT_INTPTR)
-DEF_FN_TYPE_5 (BT_FN_UV8HI_UV8HI_UV8HI_UV8HI_INT, B_VX, BT_UV8HI, BT_UV8HI, BT_UV8HI, BT_UV8HI, BT_INT)
-DEF_FN_TYPE_5 (BT_FN_VOID_UV2DI_UV2DI_ULONGLONGPTR_ULONGLONG, B_VX, BT_VOID, BT_UV2DI, BT_UV2DI, BT_ULONGLONGPTR, BT_ULONGLONG)
-DEF_FN_TYPE_5 (BT_FN_VOID_UV4SI_UV4SI_UINTPTR_ULONGLONG, B_VX, BT_VOID, BT_UV4SI, BT_UV4SI, BT_UINTPTR, BT_ULONGLONG)
-DEF_FN_TYPE_5 (BT_FN_VOID_V4SI_V4SI_INTPTR_ULONGLONG, B_VX, BT_VOID, BT_V4SI, BT_V4SI, BT_INTPTR, BT_ULONGLONG)
-DEF_FN_TYPE_6 (BT_FN_UV16QI_UV16QI_UV16QI_UV16QI_INT_INTPTR, B_VX, BT_UV16QI, BT_UV16QI, BT_UV16QI, BT_UV16QI, BT_INT, BT_INTPTR)
-DEF_FN_TYPE_6 (BT_FN_UV4SI_UV4SI_UV4SI_UV4SI_INT_INTPTR, B_VX, BT_UV4SI, BT_UV4SI, BT_UV4SI, BT_UV4SI, BT_INT, BT_INTPTR)
-DEF_FN_TYPE_6 (BT_FN_UV8HI_UV8HI_UV8HI_UV8HI_INT_INTPTR, B_VX, BT_UV8HI, BT_UV8HI, BT_UV8HI, BT_UV8HI, BT_INT, BT_INTPTR)
+DEF_FN_TYPE_0 (BT_FN_INT, B_HTM, BT_INT)
+DEF_FN_TYPE_0 (BT_FN_UINT, 0, BT_UINT)
+DEF_FN_TYPE_1 (BT_FN_INT_INT, B_VX, BT_INT, BT_INT)
+DEF_FN_TYPE_1 (BT_FN_INT_VOIDPTR, B_HTM, BT_INT, BT_VOIDPTR)
+DEF_FN_TYPE_1 (BT_FN_OV4SI_INT, B_VX, BT_OV4SI, BT_INT)
+DEF_FN_TYPE_1 (BT_FN_OV4SI_INTCONSTPTR, B_VX, BT_OV4SI, BT_INTCONSTPTR)
+DEF_FN_TYPE_1 (BT_FN_OV4SI_OV4SI, B_VX, BT_OV4SI, BT_OV4SI)
+DEF_FN_TYPE_1 (BT_FN_UV16QI_UCHAR, B_VX, BT_UV16QI, BT_UCHAR)
+DEF_FN_TYPE_1 (BT_FN_UV16QI_UCHARCONSTPTR, B_VX, BT_UV16QI, BT_UCHARCONSTPTR)
+DEF_FN_TYPE_1 (BT_FN_UV16QI_USHORT, B_VX, BT_UV16QI, BT_USHORT)
+DEF_FN_TYPE_1 (BT_FN_UV16QI_UV16QI, B_VX, BT_UV16QI, BT_UV16QI)
+DEF_FN_TYPE_1 (BT_FN_UV2DI_ULONGLONG, B_VX, BT_UV2DI, BT_ULONGLONG)
+DEF_FN_TYPE_1 (BT_FN_UV2DI_ULONGLONGCONSTPTR, B_VX, BT_UV2DI, BT_ULONGLONGCONSTPTR)
+DEF_FN_TYPE_1 (BT_FN_UV2DI_USHORT, B_VX, BT_UV2DI, BT_USHORT)
+DEF_FN_TYPE_1 (BT_FN_UV2DI_UV2DI, B_VX, BT_UV2DI, BT_UV2DI)
+DEF_FN_TYPE_1 (BT_FN_UV2DI_UV4SI, B_VX, BT_UV2DI, BT_UV4SI)
+DEF_FN_TYPE_1 (BT_FN_UV4SI_UINT, B_VX, BT_UV4SI, BT_UINT)
+DEF_FN_TYPE_1 (BT_FN_UV4SI_UINTCONSTPTR, B_VX, BT_UV4SI, BT_UINTCONSTPTR)
+DEF_FN_TYPE_1 (BT_FN_UV4SI_USHORT, B_VX, BT_UV4SI, BT_USHORT)
+DEF_FN_TYPE_1 (BT_FN_UV4SI_UV4SI, B_VX, BT_UV4SI, BT_UV4SI)
+DEF_FN_TYPE_1 (BT_FN_UV4SI_UV8HI, B_VX, BT_UV4SI, BT_UV8HI)
+DEF_FN_TYPE_1 (BT_FN_UV8HI_USHORT, B_VX, BT_UV8HI, BT_USHORT)
+DEF_FN_TYPE_1 (BT_FN_UV8HI_USHORTCONSTPTR, B_VX, BT_UV8HI, BT_USHORTCONSTPTR)
+DEF_FN_TYPE_1 (BT_FN_UV8HI_UV16QI, B_VX, BT_UV8HI, BT_UV16QI)
+DEF_FN_TYPE_1 (BT_FN_UV8HI_UV8HI, B_VX, BT_UV8HI, BT_UV8HI)
+DEF_FN_TYPE_1 (BT_FN_V16QI_SCHAR, B_VX, BT_V16QI, BT_SCHAR)
+DEF_FN_TYPE_1 (BT_FN_V16QI_UCHAR, B_VX, BT_V16QI, BT_UCHAR)
+DEF_FN_TYPE_1 (BT_FN_V16QI_V16QI, B_VX, BT_V16QI, BT_V16QI)
+DEF_FN_TYPE_1 (BT_FN_V2DF_DBL, B_VX, BT_V2DF, BT_DBL)
+DEF_FN_TYPE_1 (BT_FN_V2DF_FLTCONSTPTR, B_VX, BT_V2DF, BT_FLTCONSTPTR)
+DEF_FN_TYPE_1 (BT_FN_V2DF_V2DF, B_VX, BT_V2DF, BT_V2DF)
+DEF_FN_TYPE_1 (BT_FN_V2DI_SHORT, B_VX, BT_V2DI, BT_SHORT)
+DEF_FN_TYPE_1 (BT_FN_V2DI_V16QI, B_VX, BT_V2DI, BT_V16QI)
+DEF_FN_TYPE_1 (BT_FN_V2DI_V2DI, B_VX, BT_V2DI, BT_V2DI)
+DEF_FN_TYPE_1 (BT_FN_V2DI_V4SI, B_VX, BT_V2DI, BT_V4SI)
+DEF_FN_TYPE_1 (BT_FN_V2DI_V8HI, B_VX, BT_V2DI, BT_V8HI)
+DEF_FN_TYPE_1 (BT_FN_V4SI_SHORT, B_VX, BT_V4SI, BT_SHORT)
+DEF_FN_TYPE_1 (BT_FN_V4SI_V4SI, B_VX, BT_V4SI, BT_V4SI)
+DEF_FN_TYPE_1 (BT_FN_V4SI_V8HI, B_VX, BT_V4SI, BT_V8HI)
+DEF_FN_TYPE_1 (BT_FN_V8HI_SHORT, B_VX, BT_V8HI, BT_SHORT)
+DEF_FN_TYPE_1 (BT_FN_V8HI_V16QI, B_VX, BT_V8HI, BT_V16QI)
+DEF_FN_TYPE_1 (BT_FN_V8HI_V8HI, B_VX, BT_V8HI, BT_V8HI)
+DEF_FN_TYPE_1 (BT_FN_VOID_INT, B_HTM, BT_VOID, BT_INT)
+DEF_FN_TYPE_1 (BT_FN_VOID_UINT, 0, BT_VOID, BT_UINT)
+DEF_FN_TYPE_2 (BT_FN_DBL_V2DF_INT, B_VX, BT_DBL, BT_V2DF, BT_INT)
+DEF_FN_TYPE_2 (BT_FN_INT128_INT128_INT128, B_VX, BT_INT128, BT_INT128, BT_INT128)
+DEF_FN_TYPE_2 (BT_FN_INT_OV4SI_INT, B_VX, BT_INT, BT_OV4SI, BT_INT)
+DEF_FN_TYPE_2 (BT_FN_INT_OV4SI_OV4SI, B_VX, BT_INT, BT_OV4SI, BT_OV4SI)
+DEF_FN_TYPE_2 (BT_FN_INT_UV16QI_UV16QI, B_VX, BT_INT, BT_UV16QI, BT_UV16QI)
+DEF_FN_TYPE_2 (BT_FN_INT_UV2DI_UV2DI, B_VX, BT_INT, BT_UV2DI, BT_UV2DI)
+DEF_FN_TYPE_2 (BT_FN_INT_UV4SI_UV4SI, B_VX, BT_INT, BT_UV4SI, BT_UV4SI)
+DEF_FN_TYPE_2 (BT_FN_INT_UV8HI_UV8HI, B_VX, BT_INT, BT_UV8HI, BT_UV8HI)
+DEF_FN_TYPE_2 (BT_FN_INT_V16QI_V16QI, B_VX, BT_INT, BT_V16QI, BT_V16QI)
+DEF_FN_TYPE_2 (BT_FN_INT_V2DF_V2DF, B_VX, BT_INT, BT_V2DF, BT_V2DF)
+DEF_FN_TYPE_2 (BT_FN_INT_V2DI_V2DI, B_VX, BT_INT, BT_V2DI, BT_V2DI)
+DEF_FN_TYPE_2 (BT_FN_INT_V4SI_V4SI, B_VX, BT_INT, BT_V4SI, BT_V4SI)
+DEF_FN_TYPE_2 (BT_FN_INT_V8HI_V8HI, B_VX, BT_INT, BT_V8HI, BT_V8HI)
+DEF_FN_TYPE_2 (BT_FN_INT_VOIDPTR_INT, B_HTM, BT_INT, BT_VOIDPTR, BT_INT)
+DEF_FN_TYPE_2 (BT_FN_OV2DI_LONGLONG_LONGLONG, B_VX, BT_OV2DI, BT_LONGLONG, BT_LONGLONG)
+DEF_FN_TYPE_2 (BT_FN_OV4SI_INTCONSTPTR_INT, B_VX, BT_OV4SI, BT_INTCONSTPTR, BT_INT)
+DEF_FN_TYPE_2 (BT_FN_OV4SI_INTCONSTPTR_UINT, B_VX, BT_OV4SI, BT_INTCONSTPTR, BT_UINT)
+DEF_FN_TYPE_2 (BT_FN_OV4SI_INT_INT, B_VX, BT_OV4SI, BT_INT, BT_INT)
+DEF_FN_TYPE_2 (BT_FN_OV4SI_OV4SI_INTPTR, B_VX, BT_OV4SI, BT_OV4SI, BT_INTPTR)
+DEF_FN_TYPE_2 (BT_FN_OV4SI_OV4SI_OV4SI, B_VX, BT_OV4SI, BT_OV4SI, BT_OV4SI)
+DEF_FN_TYPE_2 (BT_FN_OV4SI_OV4SI_UCHAR, B_VX, BT_OV4SI, BT_OV4SI, BT_UCHAR)
+DEF_FN_TYPE_2 (BT_FN_OV4SI_OV4SI_ULONG, B_VX, BT_OV4SI, BT_OV4SI, BT_ULONG)
+DEF_FN_TYPE_2 (BT_FN_UCHAR_UV16QI_INT, B_VX, BT_UCHAR, BT_UV16QI, BT_INT)
+DEF_FN_TYPE_2 (BT_FN_UINT_UV4SI_INT, B_VX, BT_UINT, BT_UV4SI, BT_INT)
+DEF_FN_TYPE_2 (BT_FN_UINT_VOIDCONSTPTR_INT, B_VX, BT_UINT, BT_VOIDCONSTPTR, BT_INT)
+DEF_FN_TYPE_2 (BT_FN_ULONGLONG_UV2DI_INT, B_VX, BT_ULONGLONG, BT_UV2DI, BT_INT)
+DEF_FN_TYPE_2 (BT_FN_USHORT_UV8HI_INT, B_VX, BT_USHORT, BT_UV8HI, BT_INT)
+DEF_FN_TYPE_2 (BT_FN_UV16QI_UCHARCONSTPTR_USHORT, B_VX, BT_UV16QI, BT_UCHARCONSTPTR, BT_USHORT)
+DEF_FN_TYPE_2 (BT_FN_UV16QI_UCHAR_INT, B_VX, BT_UV16QI, BT_UCHAR, BT_INT)
+DEF_FN_TYPE_2 (BT_FN_UV16QI_UCHAR_UCHAR, B_VX, BT_UV16QI, BT_UCHAR, BT_UCHAR)
+DEF_FN_TYPE_2 (BT_FN_UV16QI_UV16QI_INTPTR, B_VX, BT_UV16QI, BT_UV16QI, BT_INTPTR)
+DEF_FN_TYPE_2 (BT_FN_UV16QI_UV16QI_UCHAR, B_VX, BT_UV16QI, BT_UV16QI, BT_UCHAR)
+DEF_FN_TYPE_2 (BT_FN_UV16QI_UV16QI_UINT, B_VX, BT_UV16QI, BT_UV16QI, BT_UINT)
+DEF_FN_TYPE_2 (BT_FN_UV16QI_UV16QI_UV16QI, B_VX, BT_UV16QI, BT_UV16QI, BT_UV16QI)
+DEF_FN_TYPE_2 (BT_FN_UV16QI_UV2DI_UV2DI, B_VX, BT_UV16QI, BT_UV2DI, BT_UV2DI)
+DEF_FN_TYPE_2 (BT_FN_UV16QI_UV4SI_UV4SI, B_VX, BT_UV16QI, BT_UV4SI, BT_UV4SI)
+DEF_FN_TYPE_2 (BT_FN_UV16QI_UV8HI_UV8HI, B_VX, BT_UV16QI, BT_UV8HI, BT_UV8HI)
+DEF_FN_TYPE_2 (BT_FN_UV2DI_UCHAR_UCHAR, B_VX, BT_UV2DI, BT_UCHAR, BT_UCHAR)
+DEF_FN_TYPE_2 (BT_FN_UV2DI_ULONGLONG_INT, B_VX, BT_UV2DI, BT_ULONGLONG, BT_INT)
+DEF_FN_TYPE_2 (BT_FN_UV2DI_UV2DI_UCHAR, B_VX, BT_UV2DI, BT_UV2DI, BT_UCHAR)
+DEF_FN_TYPE_2 (BT_FN_UV2DI_UV2DI_UINT, B_VX, BT_UV2DI, BT_UV2DI, BT_UINT)
+DEF_FN_TYPE_2 (BT_FN_UV2DI_UV2DI_UV2DI, B_VX, BT_UV2DI, BT_UV2DI, BT_UV2DI)
+DEF_FN_TYPE_2 (BT_FN_UV2DI_UV4SI_UV4SI, B_VX, BT_UV2DI, BT_UV4SI, BT_UV4SI)
+DEF_FN_TYPE_2 (BT_FN_UV2DI_UV8HI_UV8HI, B_VX, BT_UV2DI, BT_UV8HI, BT_UV8HI)
+DEF_FN_TYPE_2 (BT_FN_UV2DI_V2DF_INT, B_VX, BT_UV2DI, BT_V2DF, BT_INT)
+DEF_FN_TYPE_2 (BT_FN_UV4SI_UCHAR_UCHAR, B_VX, BT_UV4SI, BT_UCHAR, BT_UCHAR)
+DEF_FN_TYPE_2 (BT_FN_UV4SI_UINT_INT, B_VX, BT_UV4SI, BT_UINT, BT_INT)
+DEF_FN_TYPE_2 (BT_FN_UV4SI_UV16QI_UV16QI, B_VX, BT_UV4SI, BT_UV16QI, BT_UV16QI)
+DEF_FN_TYPE_2 (BT_FN_UV4SI_UV2DI_UV2DI, B_VX, BT_UV4SI, BT_UV2DI, BT_UV2DI)
+DEF_FN_TYPE_2 (BT_FN_UV4SI_UV4SI_INTPTR, B_VX, BT_UV4SI, BT_UV4SI, BT_INTPTR)
+DEF_FN_TYPE_2 (BT_FN_UV4SI_UV4SI_UCHAR, B_VX, BT_UV4SI, BT_UV4SI, BT_UCHAR)
+DEF_FN_TYPE_2 (BT_FN_UV4SI_UV4SI_UINT, B_VX, BT_UV4SI, BT_UV4SI, BT_UINT)
+DEF_FN_TYPE_2 (BT_FN_UV4SI_UV4SI_UV4SI, B_VX, BT_UV4SI, BT_UV4SI, BT_UV4SI)
+DEF_FN_TYPE_2 (BT_FN_UV4SI_UV8HI_UV8HI, B_VX, BT_UV4SI, BT_UV8HI, BT_UV8HI)
+DEF_FN_TYPE_2 (BT_FN_UV8HI_UCHAR_UCHAR, B_VX, BT_UV8HI, BT_UCHAR, BT_UCHAR)
+DEF_FN_TYPE_2 (BT_FN_UV8HI_USHORT_INT, B_VX, BT_UV8HI, BT_USHORT, BT_INT)
+DEF_FN_TYPE_2 (BT_FN_UV8HI_UV16QI_UV16QI, B_VX, BT_UV8HI, BT_UV16QI, BT_UV16QI)
+DEF_FN_TYPE_2 (BT_FN_UV8HI_UV4SI_UV4SI, B_VX, BT_UV8HI, BT_UV4SI, BT_UV4SI)
+DEF_FN_TYPE_2 (BT_FN_UV8HI_UV8HI_INTPTR, B_VX, BT_UV8HI, BT_UV8HI, BT_INTPTR)
+DEF_FN_TYPE_2 (BT_FN_UV8HI_UV8HI_UCHAR, B_VX, BT_UV8HI, BT_UV8HI, BT_UCHAR)
+DEF_FN_TYPE_2 (BT_FN_UV8HI_UV8HI_UINT, B_VX, BT_UV8HI, BT_UV8HI, BT_UINT)
+DEF_FN_TYPE_2 (BT_FN_UV8HI_UV8HI_UV8HI, B_VX, BT_UV8HI, BT_UV8HI, BT_UV8HI)
+DEF_FN_TYPE_2 (BT_FN_V16QI_BV16QI_V16QI, B_VX, BT_V16QI, BT_BV16QI, BT_V16QI)
+DEF_FN_TYPE_2 (BT_FN_V16QI_UINT_VOIDCONSTPTR, B_VX, BT_V16QI, BT_UINT, BT_VOIDCONSTPTR)
+DEF_FN_TYPE_2 (BT_FN_V16QI_UV16QI_UV16QI, B_VX, BT_V16QI, BT_UV16QI, BT_UV16QI)
+DEF_FN_TYPE_2 (BT_FN_V16QI_V16QI_V16QI, B_VX, BT_V16QI, BT_V16QI, BT_V16QI)
+DEF_FN_TYPE_2 (BT_FN_V16QI_V8HI_V8HI, B_VX, BT_V16QI, BT_V8HI, BT_V8HI)
+DEF_FN_TYPE_2 (BT_FN_V2DF_DBL_INT, B_VX, BT_V2DF, BT_DBL, BT_INT)
+DEF_FN_TYPE_2 (BT_FN_V2DF_UV2DI_INT, B_VX, BT_V2DF, BT_UV2DI, BT_INT)
+DEF_FN_TYPE_2 (BT_FN_V2DF_UV4SI_INT, B_VX, BT_V2DF, BT_UV4SI, BT_INT)
+DEF_FN_TYPE_2 (BT_FN_V2DF_V2DF_V2DF, B_VX, BT_V2DF, BT_V2DF, BT_V2DF)
+DEF_FN_TYPE_2 (BT_FN_V2DF_V2DI_INT, B_VX, BT_V2DF, BT_V2DI, BT_INT)
+DEF_FN_TYPE_2 (BT_FN_V2DI_BV2DI_V2DI, B_VX, BT_V2DI, BT_BV2DI, BT_V2DI)
+DEF_FN_TYPE_2 (BT_FN_V2DI_UV2DI_UV2DI, B_VX, BT_V2DI, BT_UV2DI, BT_UV2DI)
+DEF_FN_TYPE_2 (BT_FN_V2DI_V2DF_INT, B_VX, BT_V2DI, BT_V2DF, BT_INT)
+DEF_FN_TYPE_2 (BT_FN_V2DI_V2DF_V2DF, B_VX, BT_V2DI, BT_V2DF, BT_V2DF)
+DEF_FN_TYPE_2 (BT_FN_V2DI_V2DI_V2DI, B_VX, BT_V2DI, BT_V2DI, BT_V2DI)
+DEF_FN_TYPE_2 (BT_FN_V2DI_V4SI_V4SI, B_VX, BT_V2DI, BT_V4SI, BT_V4SI)
+DEF_FN_TYPE_2 (BT_FN_V4SI_BV4SI_V4SI, B_VX, BT_V4SI, BT_BV4SI, BT_V4SI)
+DEF_FN_TYPE_2 (BT_FN_V4SI_INT_VOIDPTR, B_VX, BT_V4SI, BT_INT, BT_VOIDPTR)
+DEF_FN_TYPE_2 (BT_FN_V4SI_UV4SI_UV4SI, B_VX, BT_V4SI, BT_UV4SI, BT_UV4SI)
+DEF_FN_TYPE_2 (BT_FN_V4SI_V2DI_V2DI, B_VX, BT_V4SI, BT_V2DI, BT_V2DI)
+DEF_FN_TYPE_2 (BT_FN_V4SI_V4SI_V4SI, B_VX, BT_V4SI, BT_V4SI, BT_V4SI)
+DEF_FN_TYPE_2 (BT_FN_V4SI_V8HI_V8HI, B_VX, BT_V4SI, BT_V8HI, BT_V8HI)
+DEF_FN_TYPE_2 (BT_FN_V8HI_BV8HI_V8HI, B_VX, BT_V8HI, BT_BV8HI, BT_V8HI)
+DEF_FN_TYPE_2 (BT_FN_V8HI_UV8HI_UV8HI, B_VX, BT_V8HI, BT_UV8HI, BT_UV8HI)
+DEF_FN_TYPE_2 (BT_FN_V8HI_V16QI_V16QI, B_VX, BT_V8HI, BT_V16QI, BT_V16QI)
+DEF_FN_TYPE_2 (BT_FN_V8HI_V4SI_V4SI, B_VX, BT_V8HI, BT_V4SI, BT_V4SI)
+DEF_FN_TYPE_2 (BT_FN_V8HI_V8HI_V8HI, B_VX, BT_V8HI, BT_V8HI, BT_V8HI)
+DEF_FN_TYPE_2 (BT_FN_VOID_UINT64PTR_UINT64, B_HTM, BT_VOID, BT_UINT64PTR, BT_UINT64)
+DEF_FN_TYPE_2 (BT_FN_VOID_V2DF_FLTPTR, B_VX, BT_VOID, BT_V2DF, BT_FLTPTR)
+DEF_FN_TYPE_3 (BT_FN_INT128_INT128_INT128_INT128, B_VX, BT_INT128, BT_INT128, BT_INT128, BT_INT128)
+DEF_FN_TYPE_3 (BT_FN_INT_OV4SI_OV4SI_INTPTR, B_VX, BT_INT, BT_OV4SI, BT_OV4SI, BT_INTPTR)
+DEF_FN_TYPE_3 (BT_FN_OV4SI_INT_OV4SI_INT, B_VX, BT_OV4SI, BT_INT, BT_OV4SI, BT_INT)
+DEF_FN_TYPE_3 (BT_FN_OV4SI_OV4SI_OV4SI_INT, B_VX, BT_OV4SI, BT_OV4SI, BT_OV4SI, BT_INT)
+DEF_FN_TYPE_3 (BT_FN_OV4SI_OV4SI_OV4SI_INTPTR, B_VX, BT_OV4SI, BT_OV4SI, BT_OV4SI, BT_INTPTR)
+DEF_FN_TYPE_3 (BT_FN_OV4SI_OV4SI_OV4SI_OV4SI, B_VX, BT_OV4SI, BT_OV4SI, BT_OV4SI, BT_OV4SI)
+DEF_FN_TYPE_3 (BT_FN_OV4SI_OV4SI_OV4SI_UCHAR, B_VX, BT_OV4SI, BT_OV4SI, BT_OV4SI, BT_UCHAR)
+DEF_FN_TYPE_3 (BT_FN_OV4SI_OV4SI_OV4SI_ULONGLONG, B_VX, BT_OV4SI, BT_OV4SI, BT_OV4SI, BT_ULONGLONG)
+DEF_FN_TYPE_3 (BT_FN_UV16QI_UV16QI_UCHAR_INT, B_VX, BT_UV16QI, BT_UV16QI, BT_UCHAR, BT_INT)
+DEF_FN_TYPE_3 (BT_FN_UV16QI_UV16QI_UV16QI_INT, B_VX, BT_UV16QI, BT_UV16QI, BT_UV16QI, BT_INT)
+DEF_FN_TYPE_3 (BT_FN_UV16QI_UV16QI_UV16QI_INTPTR, B_VX, BT_UV16QI, BT_UV16QI, BT_UV16QI, BT_INTPTR)
+DEF_FN_TYPE_3 (BT_FN_UV16QI_UV16QI_UV16QI_UV16QI, B_VX, BT_UV16QI, BT_UV16QI, BT_UV16QI, BT_UV16QI)
+DEF_FN_TYPE_3 (BT_FN_UV16QI_UV2DI_UV2DI_UV16QI, B_VX, BT_UV16QI, BT_UV2DI, BT_UV2DI, BT_UV16QI)
+DEF_FN_TYPE_3 (BT_FN_UV16QI_UV8HI_UV8HI_INTPTR, B_VX, BT_UV16QI, BT_UV8HI, BT_UV8HI, BT_INTPTR)
+DEF_FN_TYPE_3 (BT_FN_UV2DI_UV2DI_ULONGLONG_INT, B_VX, BT_UV2DI, BT_UV2DI, BT_ULONGLONG, BT_INT)
+DEF_FN_TYPE_3 (BT_FN_UV2DI_UV2DI_UV2DI_INT, B_VX, BT_UV2DI, BT_UV2DI, BT_UV2DI, BT_INT)
+DEF_FN_TYPE_3 (BT_FN_UV2DI_UV4SI_UV4SI_UV2DI, B_VX, BT_UV2DI, BT_UV4SI, BT_UV4SI, BT_UV2DI)
+DEF_FN_TYPE_3 (BT_FN_UV4SI_UV2DI_UV2DI_INTPTR, B_VX, BT_UV4SI, BT_UV2DI, BT_UV2DI, BT_INTPTR)
+DEF_FN_TYPE_3 (BT_FN_UV4SI_UV4SI_UINT_INT, B_VX, BT_UV4SI, BT_UV4SI, BT_UINT, BT_INT)
+DEF_FN_TYPE_3 (BT_FN_UV4SI_UV4SI_UV4SI_INT, B_VX, BT_UV4SI, BT_UV4SI, BT_UV4SI, BT_INT)
+DEF_FN_TYPE_3 (BT_FN_UV4SI_UV4SI_UV4SI_INTPTR, B_VX, BT_UV4SI, BT_UV4SI, BT_UV4SI, BT_INTPTR)
+DEF_FN_TYPE_3 (BT_FN_UV4SI_UV4SI_UV4SI_UV4SI, B_VX, BT_UV4SI, BT_UV4SI, BT_UV4SI, BT_UV4SI)
+DEF_FN_TYPE_3 (BT_FN_UV4SI_UV8HI_UV8HI_UV4SI, B_VX, BT_UV4SI, BT_UV8HI, BT_UV8HI, BT_UV4SI)
+DEF_FN_TYPE_3 (BT_FN_UV8HI_UV16QI_UV16QI_UV8HI, B_VX, BT_UV8HI, BT_UV16QI, BT_UV16QI, BT_UV8HI)
+DEF_FN_TYPE_3 (BT_FN_UV8HI_UV4SI_UV4SI_INTPTR, B_VX, BT_UV8HI, BT_UV4SI, BT_UV4SI, BT_INTPTR)
+DEF_FN_TYPE_3 (BT_FN_UV8HI_UV8HI_USHORT_INT, B_VX, BT_UV8HI, BT_UV8HI, BT_USHORT, BT_INT)
+DEF_FN_TYPE_3 (BT_FN_UV8HI_UV8HI_UV8HI_INT, B_VX, BT_UV8HI, BT_UV8HI, BT_UV8HI, BT_INT)
+DEF_FN_TYPE_3 (BT_FN_UV8HI_UV8HI_UV8HI_INTPTR, B_VX, BT_UV8HI, BT_UV8HI, BT_UV8HI, BT_INTPTR)
+DEF_FN_TYPE_3 (BT_FN_UV8HI_UV8HI_UV8HI_UV8HI, B_VX, BT_UV8HI, BT_UV8HI, BT_UV8HI, BT_UV8HI)
+DEF_FN_TYPE_3 (BT_FN_V16QI_UV16QI_UV16QI_INTPTR, B_VX, BT_V16QI, BT_UV16QI, BT_UV16QI, BT_INTPTR)
+DEF_FN_TYPE_3 (BT_FN_V16QI_V16QI_V16QI_INTPTR, B_VX, BT_V16QI, BT_V16QI, BT_V16QI, BT_INTPTR)
+DEF_FN_TYPE_3 (BT_FN_V16QI_V16QI_V16QI_V16QI, B_VX, BT_V16QI, BT_V16QI, BT_V16QI, BT_V16QI)
+DEF_FN_TYPE_3 (BT_FN_V16QI_V8HI_V8HI_INTPTR, B_VX, BT_V16QI, BT_V8HI, BT_V8HI, BT_INTPTR)
+DEF_FN_TYPE_3 (BT_FN_V2DF_V2DF_DBL_INT, B_VX, BT_V2DF, BT_V2DF, BT_DBL, BT_INT)
+DEF_FN_TYPE_3 (BT_FN_V2DF_V2DF_UCHAR_UCHAR, B_VX, BT_V2DF, BT_V2DF, BT_UCHAR, BT_UCHAR)
+DEF_FN_TYPE_3 (BT_FN_V2DF_V2DF_V2DF_V2DF, B_VX, BT_V2DF, BT_V2DF, BT_V2DF, BT_V2DF)
+DEF_FN_TYPE_3 (BT_FN_V2DI_UV2DI_UV2DI_INTPTR, B_VX, BT_V2DI, BT_UV2DI, BT_UV2DI, BT_INTPTR)
+DEF_FN_TYPE_3 (BT_FN_V2DI_V2DF_INT_INTPTR, B_VX, BT_V2DI, BT_V2DF, BT_INT, BT_INTPTR)
+DEF_FN_TYPE_3 (BT_FN_V2DI_V2DF_V2DF_INTPTR, B_VX, BT_V2DI, BT_V2DF, BT_V2DF, BT_INTPTR)
+DEF_FN_TYPE_3 (BT_FN_V2DI_V2DI_V2DI_INTPTR, B_VX, BT_V2DI, BT_V2DI, BT_V2DI, BT_INTPTR)
+DEF_FN_TYPE_3 (BT_FN_V2DI_V4SI_V4SI_V2DI, B_VX, BT_V2DI, BT_V4SI, BT_V4SI, BT_V2DI)
+DEF_FN_TYPE_3 (BT_FN_V4SI_UV4SI_UV4SI_INTPTR, B_VX, BT_V4SI, BT_UV4SI, BT_UV4SI, BT_INTPTR)
+DEF_FN_TYPE_3 (BT_FN_V4SI_V2DI_V2DI_INTPTR, B_VX, BT_V4SI, BT_V2DI, BT_V2DI, BT_INTPTR)
+DEF_FN_TYPE_3 (BT_FN_V4SI_V4SI_V4SI_INTPTR, B_VX, BT_V4SI, BT_V4SI, BT_V4SI, BT_INTPTR)
+DEF_FN_TYPE_3 (BT_FN_V4SI_V4SI_V4SI_V4SI, B_VX, BT_V4SI, BT_V4SI, BT_V4SI, BT_V4SI)
+DEF_FN_TYPE_3 (BT_FN_V4SI_V8HI_V8HI_V4SI, B_VX, BT_V4SI, BT_V8HI, BT_V8HI, BT_V4SI)
+DEF_FN_TYPE_3 (BT_FN_V8HI_UV8HI_UV8HI_INTPTR, B_VX, BT_V8HI, BT_UV8HI, BT_UV8HI, BT_INTPTR)
+DEF_FN_TYPE_3 (BT_FN_V8HI_V16QI_V16QI_V8HI, B_VX, BT_V8HI, BT_V16QI, BT_V16QI, BT_V8HI)
+DEF_FN_TYPE_3 (BT_FN_V8HI_V4SI_V4SI_INTPTR, B_VX, BT_V8HI, BT_V4SI, BT_V4SI, BT_INTPTR)
+DEF_FN_TYPE_3 (BT_FN_V8HI_V8HI_V8HI_INTPTR, B_VX, BT_V8HI, BT_V8HI, BT_V8HI, BT_INTPTR)
+DEF_FN_TYPE_3 (BT_FN_V8HI_V8HI_V8HI_V8HI, B_VX, BT_V8HI, BT_V8HI, BT_V8HI, BT_V8HI)
+DEF_FN_TYPE_3 (BT_FN_VOID_OV4SI_INT_VOIDPTR, B_VX, BT_VOID, BT_OV4SI, BT_INT, BT_VOIDPTR)
+DEF_FN_TYPE_3 (BT_FN_VOID_OV4SI_VOIDPTR_UINT, B_VX, BT_VOID, BT_OV4SI, BT_VOIDPTR, BT_UINT)
+DEF_FN_TYPE_3 (BT_FN_VOID_V16QI_UINT_VOIDPTR, B_VX, BT_VOID, BT_V16QI, BT_UINT, BT_VOIDPTR)
+DEF_FN_TYPE_4 (BT_FN_OV4SI_OV4SI_OUV4SI_INTCONSTPTR_UCHAR, B_VX, BT_OV4SI, BT_OV4SI, BT_OUV4SI, BT_INTCONSTPTR, BT_UCHAR)
+DEF_FN_TYPE_4 (BT_FN_OV4SI_OV4SI_OV4SI_OV4SI_INTPTR, B_VX, BT_OV4SI, BT_OV4SI, BT_OV4SI, BT_OV4SI, BT_INTPTR)
+DEF_FN_TYPE_4 (BT_FN_UV16QI_UV16QI_UV16QI_INT_INTPTR, B_VX, BT_UV16QI, BT_UV16QI, BT_UV16QI, BT_INT, BT_INTPTR)
+DEF_FN_TYPE_4 (BT_FN_UV16QI_UV16QI_UV16QI_UV16QI_INT, B_VX, BT_UV16QI, BT_UV16QI, BT_UV16QI, BT_UV16QI, BT_INT)
+DEF_FN_TYPE_4 (BT_FN_UV2DI_UV2DI_UV2DI_ULONGLONGCONSTPTR_UCHAR, B_VX, BT_UV2DI, BT_UV2DI, BT_UV2DI, BT_ULONGLONGCONSTPTR, BT_UCHAR)
+DEF_FN_TYPE_4 (BT_FN_UV2DI_UV2DI_UV2DI_UV2DI_INT, B_VX, BT_UV2DI, BT_UV2DI, BT_UV2DI, BT_UV2DI, BT_INT)
+DEF_FN_TYPE_4 (BT_FN_UV4SI_UV4SI_UV4SI_INT_INTPTR, B_VX, BT_UV4SI, BT_UV4SI, BT_UV4SI, BT_INT, BT_INTPTR)
+DEF_FN_TYPE_4 (BT_FN_UV4SI_UV4SI_UV4SI_UINTCONSTPTR_UCHAR, B_VX, BT_UV4SI, BT_UV4SI, BT_UV4SI, BT_UINTCONSTPTR, BT_UCHAR)
+DEF_FN_TYPE_4 (BT_FN_UV4SI_UV4SI_UV4SI_UV4SI_INT, B_VX, BT_UV4SI, BT_UV4SI, BT_UV4SI, BT_UV4SI, BT_INT)
+DEF_FN_TYPE_4 (BT_FN_UV8HI_UV8HI_UV8HI_INT_INTPTR, B_VX, BT_UV8HI, BT_UV8HI, BT_UV8HI, BT_INT, BT_INTPTR)
+DEF_FN_TYPE_4 (BT_FN_UV8HI_UV8HI_UV8HI_UV8HI_INT, B_VX, BT_UV8HI, BT_UV8HI, BT_UV8HI, BT_UV8HI, BT_INT)
+DEF_FN_TYPE_4 (BT_FN_VOID_UV2DI_UV2DI_ULONGLONGPTR_ULONGLONG, B_VX, BT_VOID, BT_UV2DI, BT_UV2DI, BT_ULONGLONGPTR, BT_ULONGLONG)
+DEF_FN_TYPE_4 (BT_FN_VOID_UV4SI_UV4SI_UINTPTR_ULONGLONG, B_VX, BT_VOID, BT_UV4SI, BT_UV4SI, BT_UINTPTR, BT_ULONGLONG)
+DEF_FN_TYPE_4 (BT_FN_VOID_V4SI_V4SI_INTPTR_ULONGLONG, B_VX, BT_VOID, BT_V4SI, BT_V4SI, BT_INTPTR, BT_ULONGLONG)
+DEF_FN_TYPE_5 (BT_FN_UV16QI_UV16QI_UV16QI_UV16QI_INT_INTPTR, B_VX, BT_UV16QI, BT_UV16QI, BT_UV16QI, BT_UV16QI, BT_INT, BT_INTPTR)
+DEF_FN_TYPE_5 (BT_FN_UV4SI_UV4SI_UV4SI_UV4SI_INT_INTPTR, B_VX, BT_UV4SI, BT_UV4SI, BT_UV4SI, BT_UV4SI, BT_INT, BT_INTPTR)
+DEF_FN_TYPE_5 (BT_FN_UV8HI_UV8HI_UV8HI_UV8HI_INT_INTPTR, B_VX, BT_UV8HI, BT_UV8HI, BT_UV8HI, BT_UV8HI, BT_INT, BT_INTPTR)
DEF_OV_TYPE (BT_OV_BV16QI_BV16QI, BT_BV16QI, BT_BV16QI)
DEF_OV_TYPE (BT_OV_BV16QI_BV16QI_BV16QI, BT_BV16QI, BT_BV16QI, BT_BV16QI)
DEF_OV_TYPE (BT_OV_BV16QI_BV16QI_BV16QI_BV16QI, BT_BV16QI, BT_BV16QI, BT_BV16QI, BT_BV16QI)
OB_DEF_VAR (s390_vec_insert_b64, s390_vlvgg, O3_ELEM, BT_OV_UV2DI_ULONGLONG_BV2DI_INT)
OB_DEF_VAR (s390_vec_insert_dbl, s390_vlvgg_dbl, O3_ELEM, BT_OV_V2DF_DBL_V2DF_INT)
-B_DEF (s390_vlvgb, vec_insertv16qi, 0, B_VX, 0, BT_FN_UV16QI_UV16QI_UCHAR_INT)
-B_DEF (s390_vlvgh, vec_insertv8hi, 0, B_VX, 0, BT_FN_UV8HI_UV8HI_USHORT_INT)
-B_DEF (s390_vlvgf, vec_insertv4si, 0, B_VX, 0, BT_FN_UV4SI_UV4SI_UINT_INT)
-B_DEF (s390_vlvgg, vec_insertv2di, 0, B_VX, 0, BT_FN_UV2DI_UV2DI_ULONGLONG_INT)
-B_DEF (s390_vlvgg_dbl, vec_insertv2df, 0, B_VX | B_INT, 0, BT_FN_V2DF_V2DF_DBL_INT)
+B_DEF (s390_vlvgb, vec_insertv16qi, 0, B_VX, O3_ELEM, BT_FN_UV16QI_UV16QI_UCHAR_INT)
+B_DEF (s390_vlvgh, vec_insertv8hi, 0, B_VX, O3_ELEM, BT_FN_UV8HI_UV8HI_USHORT_INT)
+B_DEF (s390_vlvgf, vec_insertv4si, 0, B_VX, O3_ELEM, BT_FN_UV4SI_UV4SI_UINT_INT)
+B_DEF (s390_vlvgg, vec_insertv2di, 0, B_VX, O3_ELEM, BT_FN_UV2DI_UV2DI_ULONGLONG_INT)
+B_DEF (s390_vlvgg_dbl, vec_insertv2df, 0, B_VX | B_INT, O3_ELEM, BT_FN_V2DF_V2DF_DBL_INT)
OB_DEF (s390_vec_promote, s390_vec_promote_s8,s390_vec_promote_dbl,B_VX, BT_FN_OV4SI_INT_INT)
OB_DEF_VAR (s390_vec_promote_s8, s390_vlvgb_noin, O2_ELEM, BT_OV_V16QI_SCHAR_INT) /* vlvgb */
OB_DEF_VAR (s390_vec_extract_b64, s390_vlgvg, O2_ELEM, BT_OV_ULONGLONG_BV2DI_INT)
OB_DEF_VAR (s390_vec_extract_dbl, s390_vlgvg_dbl, O2_ELEM, BT_OV_DBL_V2DF_INT) /* vlgvg */
-B_DEF (s390_vlgvb, vec_extractv16qi, 0, B_VX, 0, BT_FN_UCHAR_UV16QI_INT)
-B_DEF (s390_vlgvh, vec_extractv8hi, 0, B_VX, 0, BT_FN_USHORT_UV8HI_INT)
-B_DEF (s390_vlgvf, vec_extractv4si, 0, B_VX, 0, BT_FN_UINT_UV4SI_INT)
-B_DEF (s390_vlgvg, vec_extractv2di, 0, B_VX, 0, BT_FN_ULONGLONG_UV2DI_INT)
-B_DEF (s390_vlgvg_dbl, vec_extractv2df, 0, B_VX | B_INT, 0, BT_FN_DBL_V2DF_INT)
+B_DEF (s390_vlgvb, vec_extractv16qi, 0, B_VX, O2_ELEM, BT_FN_UCHAR_UV16QI_INT)
+B_DEF (s390_vlgvh, vec_extractv8hi, 0, B_VX, O2_ELEM, BT_FN_USHORT_UV8HI_INT)
+B_DEF (s390_vlgvf, vec_extractv4si, 0, B_VX, O2_ELEM, BT_FN_UINT_UV4SI_INT)
+B_DEF (s390_vlgvg, vec_extractv2di, 0, B_VX, O2_ELEM, BT_FN_ULONGLONG_UV2DI_INT)
+B_DEF (s390_vlgvg_dbl, vec_extractv2df, 0, B_VX | B_INT, O2_ELEM, BT_FN_DBL_V2DF_INT)
OB_DEF (s390_vec_insert_and_zero, s390_vec_insert_and_zero_s8,s390_vec_insert_and_zero_dbl,B_VX,BT_FN_OV4SI_INTCONSTPTR)
OB_DEF_VAR (s390_vec_insert_and_zero_s8,s390_vllezb, 0, BT_OV_V16QI_SCHARCONSTPTR)
B_DEF (s390_vupllh, vec_unpackl_lv8hi, 0, B_VX, 0, BT_FN_UV4SI_UV8HI)
B_DEF (s390_vuplf, vec_unpacklv4si, 0, B_VX, 0, BT_FN_V2DI_V4SI)
B_DEF (s390_vupllf, vec_unpackl_lv4si, 0, B_VX, 0, BT_FN_UV2DI_UV4SI)
-B_DEF (s390_vaq, vec_add_u128, 0, B_VX, 0, BT_FN_UV16QI_UV16QI_UV16QI)
OB_DEF (s390_vec_addc, s390_vec_addc_u8, s390_vec_addc_u64, B_VX, BT_FN_OV4SI_OV4SI_OV4SI)
OB_DEF_VAR (s390_vec_addc_u8, s390_vaccb, 0, BT_OV_UV16QI_UV16QI_UV16QI)
OB_DEF_VAR (s390_vec_addc_u32, s390_vaccf, 0, BT_OV_UV4SI_UV4SI_UV4SI)
OB_DEF_VAR (s390_vec_addc_u64, s390_vaccg, 0, BT_OV_UV2DI_UV2DI_UV2DI)
-B_DEF (s390_vaccb, vec_addcv16qi, 0, B_VX, 0, BT_FN_UV16QI_UV16QI_UV16QI)
-B_DEF (s390_vacch, vec_addcv8hi, 0, B_VX, 0, BT_FN_UV8HI_UV8HI_UV8HI)
-B_DEF (s390_vaccf, vec_addcv4si, 0, B_VX, 0, BT_FN_UV4SI_UV4SI_UV4SI)
-B_DEF (s390_vaccg, vec_addcv2di, 0, B_VX, 0, BT_FN_UV2DI_UV2DI_UV2DI)
-B_DEF (s390_vaccq, vec_addc_u128, 0, B_VX, 0, BT_FN_UV16QI_UV16QI_UV16QI)
-B_DEF (s390_vacq, vec_adde_u128, 0, B_VX, 0, BT_FN_UV16QI_UV16QI_UV16QI_UV16QI)
-B_DEF (s390_vacccq, vec_addec_u128, 0, B_VX, 0, BT_FN_UV16QI_UV16QI_UV16QI_UV16QI)
+B_DEF (s390_vaccb, vaccb_v16qi, 0, B_VX, 0, BT_FN_UV16QI_UV16QI_UV16QI)
+B_DEF (s390_vacch, vacch_v8hi, 0, B_VX, 0, BT_FN_UV8HI_UV8HI_UV8HI)
+B_DEF (s390_vaccf, vaccf_v4si, 0, B_VX, 0, BT_FN_UV4SI_UV4SI_UV4SI)
+B_DEF (s390_vaccg, vaccg_v2di, 0, B_VX, 0, BT_FN_UV2DI_UV2DI_UV2DI)
+
+B_DEF (s390_vec_add_u128, addti3, 0, B_VX, 0, BT_FN_UV16QI_UV16QI_UV16QI)
+B_DEF (s390_vec_addc_u128, vaccq_ti, 0, B_VX, 0, BT_FN_UV16QI_UV16QI_UV16QI)
+B_DEF (s390_vec_adde_u128, vacq, 0, B_VX, 0, BT_FN_UV16QI_UV16QI_UV16QI_UV16QI)
+B_DEF (s390_vec_addec_u128, vacccq, 0, B_VX, 0, BT_FN_UV16QI_UV16QI_UV16QI_UV16QI)
+
+B_DEF (s390_vaq, addti3, 0, B_VX, 0, BT_FN_INT128_INT128_INT128)
+B_DEF (s390_vaccq, vaccq_ti, 0, B_VX, 0, BT_FN_INT128_INT128_INT128)
+B_DEF (s390_vacq, vacq, 0, B_VX, 0, BT_FN_INT128_INT128_INT128_INT128)
+B_DEF (s390_vacccq, vacccq, 0, B_VX, 0, BT_FN_INT128_INT128_INT128_INT128)
OB_DEF (s390_vec_and, s390_vec_and_b8, s390_vec_and_dbl_c, B_VX, BT_FN_OV4SI_OV4SI_OV4SI)
OB_DEF_VAR (s390_vec_and_b8, s390_vn, 0, BT_OV_BV16QI_BV16QI_BV16QI)
OB_DEF_VAR (s390_vec_srb_dbl_s64, s390_vsrlb, 0, BT_OV_V2DF_V2DF_V2DI)
B_DEF (s390_vsrlb, vec_srbv16qi, 0, B_VX, 0, BT_FN_UV16QI_UV16QI_UV16QI)
-B_DEF (s390_vsq, vec_sub_u128, 0, B_VX, 0, BT_FN_UV16QI_UV16QI_UV16QI)
OB_DEF (s390_vec_subc, s390_vec_subc_u8, s390_vec_subc_u64, B_VX, BT_FN_OV4SI_OV4SI_OV4SI)
OB_DEF_VAR (s390_vec_subc_u8, s390_vscbib, 0, BT_OV_UV16QI_UV16QI_UV16QI)
OB_DEF_VAR (s390_vec_subc_u32, s390_vscbif, 0, BT_OV_UV4SI_UV4SI_UV4SI)
OB_DEF_VAR (s390_vec_subc_u64, s390_vscbig, 0, BT_OV_UV2DI_UV2DI_UV2DI)
-B_DEF (s390_vscbib, vec_subcv16qi, 0, B_VX, 0, BT_FN_UV16QI_UV16QI_UV16QI)
-B_DEF (s390_vscbih, vec_subcv8hi, 0, B_VX, 0, BT_FN_UV8HI_UV8HI_UV8HI)
-B_DEF (s390_vscbif, vec_subcv4si, 0, B_VX, 0, BT_FN_UV4SI_UV4SI_UV4SI)
-B_DEF (s390_vscbig, vec_subcv2di, 0, B_VX, 0, BT_FN_UV2DI_UV2DI_UV2DI)
-B_DEF (s390_vscbiq, vec_subc_u128, 0, B_VX, 0, BT_FN_UV16QI_UV16QI_UV16QI)
-B_DEF (s390_vsbiq, vec_sube_u128, 0, B_VX, 0, BT_FN_UV16QI_UV16QI_UV16QI_UV16QI)
-B_DEF (s390_vsbcbiq, vec_subec_u128, 0, B_VX, 0, BT_FN_UV16QI_UV16QI_UV16QI_UV16QI)
+B_DEF (s390_vscbib, vscbib_v16qi, 0, B_VX, 0, BT_FN_UV16QI_UV16QI_UV16QI)
+B_DEF (s390_vscbih, vscbih_v8hi, 0, B_VX, 0, BT_FN_UV8HI_UV8HI_UV8HI)
+B_DEF (s390_vscbif, vscbif_v4si, 0, B_VX, 0, BT_FN_UV4SI_UV4SI_UV4SI)
+B_DEF (s390_vscbig, vscbig_v2di, 0, B_VX, 0, BT_FN_UV2DI_UV2DI_UV2DI)
+
+/* The builtin definitions requires these to use vector unsigned char.
+ But we want the GCC low-level builtins and the insn patterns to
+ allow int128_t and TImode. So we rely on s390_expand_builtin to
+ switch modes. */
+
+B_DEF (s390_vec_sub_u128, subti3, 0, B_VX, 0, BT_FN_UV16QI_UV16QI_UV16QI)
+B_DEF (s390_vec_subc_u128, vscbiq_ti, 0, B_VX, 0, BT_FN_UV16QI_UV16QI_UV16QI)
+B_DEF (s390_vec_sube_u128, vsbiq, 0, B_VX, 0, BT_FN_UV16QI_UV16QI_UV16QI_UV16QI)
+B_DEF (s390_vec_subec_u128, vsbcbiq, 0, B_VX, 0, BT_FN_UV16QI_UV16QI_UV16QI_UV16QI)
+
+B_DEF (s390_vsq, subti3, 0, B_VX, 0, BT_FN_INT128_INT128_INT128)
+B_DEF (s390_vscbiq, vscbiq_ti, 0, B_VX, 0, BT_FN_INT128_INT128_INT128)
+B_DEF (s390_vsbiq, vsbiq, 0, B_VX, 0, BT_FN_INT128_INT128_INT128_INT128)
+B_DEF (s390_vsbcbiq, vsbcbiq, 0, B_VX, 0, BT_FN_INT128_INT128_INT128_INT128)
OB_DEF (s390_vec_sum2, s390_vec_sum2_u16, s390_vec_sum2_u32, B_VX, BT_FN_OV4SI_OV4SI_OV4SI)
OB_DEF_VAR (s390_vec_sum2_u16, s390_vsumgh, 0, BT_OV_UV2DI_UV8HI_UV8HI)
arity = 0;
FOR_EACH_CALL_EXPR_ARG (arg, iter, exp)
{
+ rtx tmp_rtx;
const struct insn_operand_data *insn_op;
unsigned int op_flags = all_op_flags & ((1 << O_SHIFT) - 1);
copy_to_mode_reg (Pmode,
XEXP (op[arity], 0)));
}
+ /* Some of the builtins require different modes/types than the
+ pattern in order to implement a specific API. Instead of
+ adding many expanders which do the mode change we do it here.
+ E.g. s390_vec_add_u128 required to have vector unsigned char
+ arguments is mapped to addti3. */
+ else if (insn_op->mode != VOIDmode
+ && GET_MODE (op[arity]) != VOIDmode
+ && GET_MODE (op[arity]) != insn_op->mode
+ && ((tmp_rtx = simplify_gen_subreg (insn_op->mode, op[arity],
+ GET_MODE (op[arity]), 0))
+ != NULL_RTX))
+ {
+ op[arity] = tmp_rtx;
+ }
else if (GET_MODE (op[arity]) == insn_op->mode
|| GET_MODE (op[arity]) == VOIDmode
|| (insn_op->predicate == address_operand
/* Unfortunately the vec_init expander is not allowed to fail. So
we have to implement the fallback ourselves. */
for (i = 0; i < n_elts; i++)
- emit_insn (gen_rtx_SET (target,
- gen_rtx_UNSPEC (mode,
- gen_rtvec (3, XVECEXP (vals, 0, i),
- GEN_INT (i), target),
- UNSPEC_VEC_SET)));
+ {
+ rtx elem = XVECEXP (vals, 0, i);
+ if (!general_operand (elem, GET_MODE (elem)))
+ elem = force_reg (inner_mode, elem);
+
+ emit_insn (gen_rtx_SET (target,
+ gen_rtx_UNSPEC (mode,
+ gen_rtvec (3, elem,
+ GEN_INT (i), target),
+ UNSPEC_VEC_SET)));
+ }
}
/* Structure to hold the initial parameters for a compare_and_swap operation
{
/* Store the alignment to be able to check if we can use
a larl/load-relative instruction. We only handle the cases
- that can go wrong (i.e. no FUNC_DECLs). If a symref does
- not have any flag we assume it to be correctly aligned. */
-
- if (DECL_ALIGN (decl) % 64)
- SYMBOL_FLAG_SET_NOTALIGN8 (XEXP (rtl, 0));
-
- if (DECL_ALIGN (decl) % 32)
- SYMBOL_FLAG_SET_NOTALIGN4 (XEXP (rtl, 0));
-
+ that can go wrong (i.e. no FUNC_DECLs). */
if (DECL_ALIGN (decl) == 0 || DECL_ALIGN (decl) % 16)
SYMBOL_FLAG_SET_NOTALIGN2 (XEXP (rtl, 0));
+ else if (DECL_ALIGN (decl) % 32)
+ SYMBOL_FLAG_SET_NOTALIGN4 (XEXP (rtl, 0));
+ else if (DECL_ALIGN (decl) % 64)
+ SYMBOL_FLAG_SET_NOTALIGN8 (XEXP (rtl, 0));
}
/* Literal pool references don't have a decl so they are handled
entry to decide upon the alignment. */
if (MEM_P (rtl)
&& GET_CODE (XEXP (rtl, 0)) == SYMBOL_REF
- && TREE_CONSTANT_POOL_ADDRESS_P (XEXP (rtl, 0))
- && MEM_ALIGN (rtl) != 0
- && GET_MODE_BITSIZE (GET_MODE (rtl)) != 0)
+ && TREE_CONSTANT_POOL_ADDRESS_P (XEXP (rtl, 0)))
{
- if (MEM_ALIGN (rtl) % 64)
- SYMBOL_FLAG_SET_NOTALIGN8 (XEXP (rtl, 0));
-
- if (MEM_ALIGN (rtl) % 32)
- SYMBOL_FLAG_SET_NOTALIGN4 (XEXP (rtl, 0));
-
if (MEM_ALIGN (rtl) == 0 || MEM_ALIGN (rtl) % 16)
SYMBOL_FLAG_SET_NOTALIGN2 (XEXP (rtl, 0));
+ else if (MEM_ALIGN (rtl) % 32)
+ SYMBOL_FLAG_SET_NOTALIGN4 (XEXP (rtl, 0));
+ else if (MEM_ALIGN (rtl) % 64)
+ SYMBOL_FLAG_SET_NOTALIGN8 (XEXP (rtl, 0));
}
}
UNSPEC_VEC_UNPACKL
UNSPEC_VEC_UNPACKL_L
UNSPEC_VEC_ADDC
- UNSPEC_VEC_ADDC_U128
UNSPEC_VEC_ADDE_U128
UNSPEC_VEC_ADDEC_U128
UNSPEC_VEC_AVG
UNSPEC_VEC_SRL
UNSPEC_VEC_SRLB
- UNSPEC_VEC_SUB_U128
UNSPEC_VEC_SUBC
- UNSPEC_VEC_SUBC_U128
UNSPEC_VEC_SUBE_U128
UNSPEC_VEC_SUBEC_U128
(clobber (reg:CC CC_REGNUM))])]
"TARGET_ZARCH"
{
- /* For z13 we have vaq which doesn't set CC. */
+ /* For z13 we have vsq which doesn't set CC. */
if (TARGET_VX)
{
emit_insn (gen_rtx_SET (operands[0],
-/* GNU compiler hardware transactional execution intrinsics
+/* GNU compiler vector extension intrinsics
Copyright (C) 2015-2016 Free Software Foundation, Inc.
Contributed by Andreas Krebbel (Andreas.Krebbel@de.ibm.com)
#define vec_splat_s32 __builtin_s390_vec_splat_s32
#define vec_splat_u64 __builtin_s390_vec_splat_u64
#define vec_splat_s64 __builtin_s390_vec_splat_s64
-#define vec_add_u128 __builtin_s390_vaq
-#define vec_addc_u128 __builtin_s390_vaccq
-#define vec_adde_u128 __builtin_s390_vacq
-#define vec_addec_u128 __builtin_s390_vacccq
#define vec_checksum __builtin_s390_vcksm
#define vec_gfmsum_128 __builtin_s390_vgfmg
#define vec_gfmsum_accum_128 __builtin_s390_vgfmag
-#define vec_sub_u128 __builtin_s390_vsq
-#define vec_subc_u128 __builtin_s390_vscbiq
-#define vec_sube_u128 __builtin_s390_vsbiq
-#define vec_subec_u128 __builtin_s390_vsbcbiq
#define vec_ceil(X) __builtin_s390_vfidb((X), 4, 6)
#define vec_roundp(X) __builtin_s390_vfidb((X), 4, 6)
#define vec_floor(X) __builtin_s390_vfidb((X), 4, 7)
#define vec_unpackh __builtin_s390_vec_unpackh
#define vec_unpackl __builtin_s390_vec_unpackl
#define vec_addc __builtin_s390_vec_addc
+#define vec_add_u128 __builtin_s390_vec_add_u128
+#define vec_addc_u128 __builtin_s390_vec_addc_u128
+#define vec_adde_u128 __builtin_s390_vec_adde_u128
+#define vec_addec_u128 __builtin_s390_vec_addec_u128
#define vec_and __builtin_s390_vec_and
#define vec_andc __builtin_s390_vec_andc
#define vec_avg __builtin_s390_vec_avg
#define vec_srl __builtin_s390_vec_srl
#define vec_srb __builtin_s390_vec_srb
#define vec_subc __builtin_s390_vec_subc
+#define vec_sub_u128 __builtin_s390_vec_sub_u128
+#define vec_subc_u128 __builtin_s390_vec_subc_u128
+#define vec_sube_u128 __builtin_s390_vec_sube_u128
+#define vec_subec_u128 __builtin_s390_vec_subec_u128
#define vec_sum2 __builtin_s390_vec_sum2
#define vec_sum_u128 __builtin_s390_vec_sum_u128
#define vec_sum4 __builtin_s390_vec_sum4
; Vector add
-; vaq
-
-; zvector builtins uses V16QI operands. So replace the modes in order
-; to map this to a TImode add. We have to keep the V16QI mode
-; operands in the expander in order to allow some operand type
-; checking when expanding the builtin.
-(define_expand "vec_add_u128"
- [(match_operand:V16QI 0 "register_operand" "")
- (match_operand:V16QI 1 "register_operand" "")
- (match_operand:V16QI 2 "register_operand" "")]
- "TARGET_VX"
-{
- rtx op0 = gen_rtx_SUBREG (TImode, operands[0], 0);
- rtx op1 = gen_rtx_SUBREG (TImode, operands[1], 0);
- rtx op2 = gen_rtx_SUBREG (TImode, operands[2], 0);
-
- emit_insn (gen_rtx_SET (op0,
- gen_rtx_PLUS (TImode, op1, op2)));
- DONE;
-})
-
; Vector add compute carry
-(define_insn "vec_addc<mode>"
- [(set (match_operand:VI_HW 0 "register_operand" "=v")
- (unspec:VI_HW [(match_operand:VI_HW 1 "register_operand" "%v")
- (match_operand:VI_HW 2 "register_operand" "v")]
- UNSPEC_VEC_ADDC))]
+(define_insn "vacc<bhfgq>_<mode>"
+ [(set (match_operand:VIT_HW 0 "register_operand" "=v")
+ (unspec:VIT_HW [(match_operand:VIT_HW 1 "register_operand" "%v")
+ (match_operand:VIT_HW 2 "register_operand" "v")]
+ UNSPEC_VEC_ADDC))]
"TARGET_VX"
"vacc<bhfgq>\t%v0,%v1,%v2"
[(set_attr "op_type" "VRR")])
-(define_insn "vec_addc_u128"
- [(set (match_operand:V16QI 0 "register_operand" "=v")
- (unspec:V16QI [(match_operand:V16QI 1 "register_operand" "%v")
- (match_operand:V16QI 2 "register_operand" "v")]
- UNSPEC_VEC_ADDC_U128))]
- "TARGET_VX"
- "vaccq\t%v0,%v1,%v2"
- [(set_attr "op_type" "VRR")])
-
-
; Vector add with carry
-(define_insn "vec_adde_u128"
- [(set (match_operand:V16QI 0 "register_operand" "=v")
- (unspec:V16QI [(match_operand:V16QI 1 "register_operand" "%v")
- (match_operand:V16QI 2 "register_operand" "v")
- (match_operand:V16QI 3 "register_operand" "v")]
- UNSPEC_VEC_ADDE_U128))]
+(define_insn "vacq"
+ [(set (match_operand:TI 0 "register_operand" "=v")
+ (unspec:TI [(match_operand:TI 1 "register_operand" "%v")
+ (match_operand:TI 2 "register_operand" "v")
+ (match_operand:TI 3 "register_operand" "v")]
+ UNSPEC_VEC_ADDE_U128))]
"TARGET_VX"
"vacq\t%v0,%v1,%v2,%v3"
[(set_attr "op_type" "VRR")])
; Vector add with carry compute carry
-(define_insn "vec_addec_u128"
- [(set (match_operand:V16QI 0 "register_operand" "=v")
- (unspec:V16QI [(match_operand:V16QI 1 "register_operand" "%v")
- (match_operand:V16QI 2 "register_operand" "v")
- (match_operand:V16QI 3 "register_operand" "v")]
- UNSPEC_VEC_ADDEC_U128))]
+(define_insn "vacccq"
+ [(set (match_operand:TI 0 "register_operand" "=v")
+ (unspec:TI [(match_operand:TI 1 "register_operand" "%v")
+ (match_operand:TI 2 "register_operand" "v")
+ (match_operand:TI 3 "register_operand" "v")]
+ UNSPEC_VEC_ADDEC_U128))]
"TARGET_VX"
"vacccq\t%v0,%v1,%v2,%v3"
[(set_attr "op_type" "VRR")])
; Vector subtract
-(define_insn "vec_sub_u128"
- [(set (match_operand:V16QI 0 "register_operand" "=v")
- (unspec:V16QI [(match_operand:V16QI 1 "register_operand" "v")
- (match_operand:V16QI 2 "register_operand" "v")]
- UNSPEC_VEC_SUB_U128))]
- "TARGET_VX"
- "vsq\t%v0,%v1,%v2"
- [(set_attr "op_type" "VRR")])
-
-
; Vector subtract compute borrow indication
-(define_insn "vec_subc<mode>"
- [(set (match_operand:VI_HW 0 "register_operand" "=v")
- (unspec:VI_HW [(match_operand:VI_HW 1 "register_operand" "v")
- (match_operand:VI_HW 2 "register_operand" "v")]
+(define_insn "vscbi<bhfgq>_<mode>"
+ [(set (match_operand:VIT_HW 0 "register_operand" "=v")
+ (unspec:VIT_HW [(match_operand:VIT_HW 1 "register_operand" "v")
+ (match_operand:VIT_HW 2 "register_operand" "v")]
UNSPEC_VEC_SUBC))]
"TARGET_VX"
"vscbi<bhfgq>\t%v0,%v1,%v2"
[(set_attr "op_type" "VRR")])
-(define_insn "vec_subc_u128"
- [(set (match_operand:V16QI 0 "register_operand" "=v")
- (unspec:V16QI [(match_operand:V16QI 1 "register_operand" "v")
- (match_operand:V16QI 2 "register_operand" "v")]
- UNSPEC_VEC_SUBC_U128))]
- "TARGET_VX"
- "vscbiq\t%v0,%v1,%v2"
- [(set_attr "op_type" "VRR")])
-
-
; Vector subtract with borrow indication
-(define_insn "vec_sube_u128"
- [(set (match_operand:V16QI 0 "register_operand" "=v")
- (unspec:V16QI [(match_operand:V16QI 1 "register_operand" "v")
- (match_operand:V16QI 2 "register_operand" "v")
- (match_operand:V16QI 3 "register_operand" "v")]
+(define_insn "vsbiq"
+ [(set (match_operand:TI 0 "register_operand" "=v")
+ (unspec:TI [(match_operand:TI 1 "register_operand" "v")
+ (match_operand:TI 2 "register_operand" "v")
+ (match_operand:TI 3 "register_operand" "v")]
UNSPEC_VEC_SUBE_U128))]
"TARGET_VX"
"vsbiq\t%v0,%v1,%v2,%v3"
; Vector subtract with borrow compute and borrow indication
-(define_insn "vec_subec_u128"
- [(set (match_operand:V16QI 0 "register_operand" "=v")
- (unspec:V16QI [(match_operand:V16QI 1 "register_operand" "v")
- (match_operand:V16QI 2 "register_operand" "v")
- (match_operand:V16QI 3 "register_operand" "v")]
+(define_insn "vsbcbiq"
+ [(set (match_operand:TI 0 "register_operand" "=v")
+ (unspec:TI [(match_operand:TI 1 "register_operand" "v")
+ (match_operand:TI 2 "register_operand" "v")
+ (match_operand:TI 3 "register_operand" "v")]
UNSPEC_VEC_SUBEC_U128))]
"TARGET_VX"
"vsbcbiq\t%v0,%v1,%v2,%v3"
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
+2016-08-13 Jason Merrill <jason@redhat.com>
+
+ PR c++/71972
+ * constexpr.c (cxx_eval_array_reference): Handle looking for the
+ value of an element we're currently modifying.
+
+2016-08-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/72868
+ * constexpr.c (label_matches): Handle case range expressions.
+
+2016-08-11 Jason Merrill <jason@redhat.com>
+
+ PR c++/73456
+ * logic.cc (non_atomic_constraint_p): Handle EXPR_PACK_EXPANSION.
+
+2016-08-08 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/72800
+ * lambda.c (add_capture): Check lambda_capture_field_type return
+ value for error_mark_node.
+
+2016-08-05 Nathan Sidwell <nathan@acm.org>
+
+ PR c++/68724
+ * pt.c (unify): TRAIT_EXPR is an expr.
+
+2016-08-04 Jason Merrill <jason@redhat.com>
+
+ PR c++/72415
+ * pt.c (tsubst_pack_expansion): Pull a single pack expansion out
+ of the TREE_VEC.
+
+2016-07-29 Jason Merrill <jason@redhat.com>
+
+ PR c++/72457
+ * init.c (expand_aggr_init_1): Only handle value-init of bases.
+ * constexpr.c (build_data_member_initialization): Handle multiple
+ initializers for the same field.
+
+2016-07-25 Jason Merrill <jason@redhat.com>
+
+ PR c++/71576
+ * call.c (convert_like_real): Use lvalue_kind.
+
+ PR c++/71833
+ * pt.c (coerce_template_parameter_pack): Fix logic for
+ pack index.
+
+2016-07-23 Jason Merrill <jason@redhat.com>
+
+ PR c++/55922
+ PR c++/63151
+ * init.c (expand_aggr_init_1): Handle list-initialization from {}.
+
+ PR c++/70709
+ * class.c (walk_subobject_offsets): Handle 0-length array.
+
+ PR c++/70778
+ * pt.c (tsubst): Also substitute into the template of a
+ BOUND_TEMPLATE_TEMPLATE_PARM.
+
+ PR c++/71738
+ * pt.c (lookup_template_class_1): Handle getting template from tsubst.
+
+ PR c++/71350
+ * decl.c (reshape_init_r): Check complain for missing braces warning.
+
+2016-07-22 Jason Merrill <jason@redhat.com>
+
+ PR c++/71748
+ PR c++/52746
+ * pt.c (tsubst_baselink): Call
+ adjust_result_of_qualified_name_lookup for unqualified
+ destructors.
+
+2016-07-21 Jason Merrill <jason@redhat.com>
+
+ PR c++/69223
+ * semantics.c (apply_deduced_return_type): Call
+ complete_type_or_else before building the new RESULT_DECL.
+
+ PR c++/71630
+ * pt.c (instantiate_decl): Fix pattern_defined for namespace scope
+ variable templates.
+
+ PR c++/71913
+ * call.c (unsafe_copy_elision_p): It's OK to elide when
+ initializing an unknown object.
+
+2016-07-21 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/71728
+ * constexpr.c (potential_constant_expression_1) <case GOTO_EXPR>:
+ Replace assert with test, return false if the goto isn't break
+ or continue. Formatting fix.
+
+2016-07-21 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/71941
+ * cp-gimplify.c (cp_genericize): For nested cp_genericize calls
+ save/restore bc_label array.
+
+2016-07-21 Patrick Palka <ppalka@gcc.gnu.org>
+
+ PR c++/70822
+ PR c++/70106
+ * cp-tree.h (REF_PARENTHESIZED_P): Make this flag apply to
+ SCOPE_REFs too.
+ * pt.c (tsubst_qualified_id): If REF_PARENTHESIZED_P is set
+ on the qualified_id then propagate it to the resulting
+ expression.
+ (do_auto_deduction): Check REF_PARENTHESIZED_P on SCOPE_REFs
+ too.
+ * semantics.c (force_paren_expr): If given a SCOPE_REF, just set
+ its REF_PARENTHESIZED_P flag.
+
+2016-07-21 Andrew Sutton <andrew.n.sutton@gmail.com>
+ Jason Merrill <jason@redhat.com>
+
+ Improving concepts performance and diagnostics.
+ PR c++/67565
+ PR c++/67579
+ PR c++/71843
+ * cp-tree.def (CHECK_CONSTR): New.
+ * cp-tree.h (CHECK_CONSTR_CONCEPT): New.
+ (CHECK_CONSTR_ARGS): New.
+ * constraint.cc (make_predicate_constraint): Remove in favor of
+ normalize_expression.
+ (resolve_constraint_check): Actually return error_mark_node when
+ resolution fails.
+ (resolve_variable_concept_check): Perform coercion as if processing
+ a template. Also return errors on resolution failure.
+ (lift_*): Remove all of these functions. Don't unnecessarily inline
+ concepts.
+ (learn_*): Add facilities to memoize implications for subsumption
+ during normalization.
+ (expanding_concept): New.
+ (expand_concept): New. Return the inlined and normalized definition
+ of a concept when needed.
+ (transform_*, xform_*): Rename to normalize_* to better reflect the
+ responsibility of those functions.
+ (normalize_template_id_expression): Check for non-boolean operands
+ when possible. Generate check constraints instead of normal variable
+ references.
+ (normalize_call_expression): Report errors when resolution fails.
+ (check_for_logical_overloads): Rewrite this check to more accurately
+ report the error.
+ (normalize_atom): Check for overloaded calls and invalid types before
+ determining if the expression refers to a concept.
+ (build_constraints): Don't cache normalized constraints or decomposed
+ assumptions.
+ (finish_shorthand_constraint): Return a normalized expression instead
+ of a predicate constraint.
+ (finish_template_introduction): Same.
+ (placeholder_extract_concept_and_args): Rewrite this since we only
+ ever get check constraints here.
+ (equivalent_placeholder_constraints): Rewrite in terms of check
+ constraints, and handle error_mark_nodes correctly.
+ (tsubst_check_constraint, tsubst_expr_constr, tsubst_type_constr)
+ (tsubst_implicit_conversion_constr)
+ (tsubst_argument_deduction_constr, tsubst_exception_constr)
+ (tsubst_parameterized_constraint, tsubst_constraint): New.
+ (tsbust_conjunection): Replace with tsubst_logical_operator and
+ actually generate the right kind of constraint.
+ (tsubst_requirement_body): Reverse the order of substituted arguments
+ so that they appear in the order written (helps diagnostics).
+ (satisfy_check_constraint): New.
+ (satisfy_conjunction): Simplify.
+ (satisfy_disjunction): Same.
+ (satisfy_constraint_1): Handle check constraints.
+ (eval_constr): New (private) global state.
+ (evaluating_constraints_sentinel): New. Manages eval_constr.
+ (satisfy_constraint): Add timing variables.
+ (satisfy_associated_constraints): Add hooks for memoization.
+ (evaluate_function_concept): Build a check constraint instead of
+ normalizing its definition.
+ (evaluate_variable_concept): Same.
+ (evaluate_constraint_expression): Normalize, but in the current
+ declaration processing context.
+ (evaluating_constraints_p): New.
+ (elide_constraint_failure_p): Actually emit constraint_thresh errors.
+ (diagnose_*): Remove artificial indentation. Add a new parameter to
+ each that tracks the current (complete) constraint prior to any
+ substitutions.
+ (diagnose_expression): Removed.
+ (diagnose_call_expression): Same.
+ (diagnose_template_id): Same.
+ (diagnose_template_id): New.
+ (diagnose_logical_constraint): New.
+ (diagnose_expression_constraint): Show the original expression.
+ (diagnose_type_constraint): Show the original type.
+ (diagnose_implicit_conversion_constraint): Be specific about
+ failures, don't re-diagnose a known-to-be-failed substitutions,
+ and manage elisions properly.
+ (diagnose_argument_deduction_constraint): Same.
+ (diagnose_exception_constraint): Same.
+ (diagnose_parameterized_constraint): Same.
+ (constraint_p): Allow EXPR_PACK_EXPANSION.
+ * logic.cc (next_by_distance): Removed. No longer used.
+ (any_p): Renamed from any_of.
+ (term_entry, term_hasher): New.
+ (term_list): Rewrite to include a hash table for quick lookup.
+ Also, make less stateful.
+ (proof_state): Extend to allow goals to be discharged once
+ satisfied.
+ (non_atomic_constraint_p): New.
+ (any_non_atomic_constraints_p): New.
+ (...rest...): Previous implementation completely replaced with an
+ iterative algorithm that opportunistically prunes the search space
+ before committing to using more memory.
+ * parser.c: (cp_parser_type_parameter): Normalize constraints.
+ (cp_parser_explicit_template_declaration): Same.
+ * pt.c: (finish_template_variable): Be less redundant with this error
+ message.
+ (template_args_equal): No longer static.
+ (tsubst_decl): Don't try to find specializations of variables that
+ have already been instantiated.
+ (build_non_dependent_expr): Avoid infinite recursion during concept
+ expansion.
+ (make_constrained_auto): Normalize constraints.
+ (do_auto_deduction): When doing auto deduction from a
+ partial-concept-id, be sure to include the explicit args checking
+ the constraints.
+ (constraint_sat_*): New. Memoize satisfied constraints.
+ (concept_spec_*): New. Memoize expressions associated with a concept
+ specialization.
+ (constraint_memos, concept_memos): New.
+ (lookup_constraint_satisfaction, memoize_constraint_satisfaction): New.
+ (lookup_concept_satisfaction, memoize_concept_satisfaction): New.
+ (get_concept_expansion, save_concept_expansion): New.
+ (hash_subsumption_args): New.
+ (comp_subsumption_args): New.
+ (subsumption_*): New. Memoize parts of the subsumption relation.
+ (lookup_subsumption_result, save_subsumption_result): New.
+ (init_constraint_processing): Initialize memo tables.
+ (get_constraints): Shortcut if !flag_concepts.
+ * decl.c (grokfndecl): Normalize constraints.
+ * error.c (dump_simple_decl): Print "concept" when appropriate.
+ (dump_function_decl): Same.
+ (dump_template_decl): Don't write requirements when we're not
+ printing the header.
+ (dump_expr): Handle fold expressions.
+ * cxx-pretty-print.c (cxx_pretty_printer::expression): Handle
+ fold expressions.
+ (get_fold_operator): New.
+ (pp_cxx_unary_left_fold_expression): New.
+ (pp_cxx_unary_right_fold_expression): New.
+ (pp_cxx_binary_fold_expression): New.
+ (pp_cxx_check_constraint): New.
+ (pp_cxx_*_constraint): Rewrite the grammar of internal constraints
+ to make them easier to read when debugging.
+ * search.c (accessible_p): Don't shortcut when evaluating constraints.
+ * tree.c (cp_tree_equal): Handle CHECK_CONSTR.
+
+2016-07-21 Jason Merrill <jason@redhat.com>
+
+ PR c++/70781
+ * parser.c (cp_parser_lambda_expression): Unset OK if there was an
+ error parsing the lambda-declarator.
+
+ PR c++/71896
+ * constexpr.c (cxx_eval_binary_expression): Handle comparison
+ between lowered and unlowered PTRMEM_CST.
+
+ PR c++/71092
+ * constexpr.c (cxx_eval_call_expression): Fail quietly when cgraph
+ threw away DECL_SAVED_TREE.
+
+ PR c++/71117
+ Core 2189
+ * call.c (add_template_conv_candidate): Disable if there are
+ viable candidates.
+
+ PR c++/71495
+ * call.c (convert_like_real): Mask complain.
+
+ PR c++/71511
+ * typeck2.c (cxx_incomplete_type_diagnostic): Handle DECLTYPE_TYPE.
+
+ PR c++/71513
+ * pt.c (tsubst_attributes): Fix loop logic.
+
+ PR c++/71604
+ PR c++/54430
+ * parser.c (cp_parser_range_for): Modify IDENTIFIER_BINDING directly.
+ (cp_parser_simple_declaration): Diagnose type definition in
+ for-range-declaration.
+
+ PR c++/71711
+ * operators.def: Add *_FOLD_EXPR.
+ * cp-tree.h (FOLD_EXPR_P): Parenthesize.
+ * mangle.c (write_expression): Handle fold-expressions.
+ * pt.c (tsubst_unary_left_fold, tsubst_binary_left_fold)
+ (tsubst_unary_right_fold, tsubst_binary_right_fold): Handle
+ partial instantiation.
+
+ PR c++/71814
+ * mangle.c (write_expression): Handle sizeof... an argument pack.
+
+ PR c++/71718
+ * pt.c (push_tinst_level_loc): Set at_eof before fatal_error.
+
+ PR c++/70824
+ * init.c (constant_value_1): Don't instantiated DECL_INITIAL of
+ artificial variables.
+
+ * lambda.c (maybe_add_lambda_conv_op): Fix null object argument.
+
+2016-07-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/71909
+ * parser.c (cp_parser_save_member_function_body): Consume
+ __transaction_relaxed or __transaction_atomic with optional
+ attribute. Only skip catch with block if try keyword is seen.
+
+2016-07-19 Jakub Jelinek <jakub@redhat.com>
+
+ Backported from mainline
+ 2016-07-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/71835
+ * call.c (build_op_call_1): Use convert_like_with_context only
+ if cand->fn is a decl.
+
+ PR c++/71828
+ * constexpr.c (cxx_eval_constant_expression) <case REALPART_EXPR>:
+ For lval don't use cxx_eval_unary_expression and instead recurse
+ and if needed rebuild the reference.
+
+ PR c++/71822
+ * cp-gimplify.c (cp_gimplify_expr) <case VEC_INIT_EXPR>: Recursively
+ fold *expr_p before genericizing it.
+
+ PR c++/71871
+ * typeck.c (build_x_conditional_expr): Revert the 2012-10-25 change.
+
+ 2016-07-07 Jakub Jelinek <jakub@redhat.com>
+ Kai Tietz <ktietz70@googlemail.com>
+
+ PR c++/70869
+ PR c++/71054
+ * cp-gimplify.c (cp_genericize_r): For DECL_EXPR for non-static
+ artificial vars, genericize their initializers.
+
2016-06-21 Jakub Jelinek <jakub@redhat.com>
Backported from mainline
tree return_type, tree access_path,
tree conversion_path, tsubst_flags_t complain)
{
+ /* Making this work broke PR 71117, so until the committee resolves core
+ issue 2189, let's disable this candidate if there are any viable call
+ operators. */
+ if (any_strictly_viable (*candidates))
+ return NULL;
+
return
add_template_candidate_real (candidates, tmpl, NULL_TREE, NULL_TREE,
NULL_TREE, arglist, return_type, access_path,
result = build_over_call (cand, LOOKUP_NORMAL, complain);
else
{
- obj = convert_like_with_context (cand->convs[0], obj, cand->fn, -1,
- complain);
+ if (DECL_P (cand->fn))
+ obj = convert_like_with_context (cand->convs[0], obj, cand->fn,
+ -1, complain);
+ else
+ obj = convert_like (cand->convs[0], obj, complain);
obj = convert_from_reference (obj);
result = cp_build_function_call_vec (obj, args, complain);
}
expr = decay_conversion (expr, complain);
if (expr == error_mark_node)
{
- if (complain)
+ if (complain & tf_error)
{
maybe_print_user_conv_context (convs);
if (fn)
for a non-reference copy-initialization (8.5). */
tree type = TREE_TYPE (ref_type);
- cp_lvalue_kind lvalue = real_lvalue_p (expr);
+ cp_lvalue_kind lvalue = lvalue_kind (expr);
gcc_assert (same_type_ignoring_top_level_qualifiers_p
(type, next_conversion (convs)->type));
unsafe_copy_elision_p (tree target, tree exp)
{
tree type = TYPE_MAIN_VARIANT (TREE_TYPE (exp));
- if (type == CLASSTYPE_AS_BASE (type))
+ /* It's safe to elide the copy for a class with no tail padding. */
+ if (tree_int_cst_equal (TYPE_SIZE (type), CLASSTYPE_SIZE (type)))
return false;
- if (!is_base_field_ref (target)
- && resolves_to_fixed_type_p (target, NULL))
+ /* It's safe to elide the copy if we aren't initializing a base object. */
+ if (!is_base_field_ref (target))
return false;
tree init = TARGET_EXPR_INITIAL (exp);
/* build_compound_expr pushes COMPOUND_EXPR inside TARGET_EXPR. */
/* Avoid recursing into objects that are not interesting. */
if (!CLASS_TYPE_P (element_type)
|| !CLASSTYPE_CONTAINS_EMPTY_CLASS_P (element_type)
- || !domain)
+ || !domain
+ || integer_minus_onep (TYPE_MAX_VALUE (domain)))
return 0;
/* Step through each of the elements in the array. */
gcc_assert (TREE_TYPE (member) == vtbl_ptr_type_node);
}
- CONSTRUCTOR_APPEND_ELT (*vec, member, init);
+ /* Value-initialization can produce multiple initializers for the
+ same field; use the last one. */
+ if (!vec_safe_is_empty (*vec) && (*vec)->last().index == member)
+ (*vec)->last().value = init;
+ else
+ CONSTRUCTOR_APPEND_ELT (*vec, member, init);
return true;
}
}
else
{
- if (!result || result == error_mark_node)
+ if (result && result != error_mark_node)
+ /* OK */;
+ else if (!DECL_SAVED_TREE (fun))
+ {
+ /* When at_eof >= 2, cgraph has started throwing away
+ DECL_SAVED_TREE, so fail quietly. FIXME we get here because of
+ late code generation for VEC_INIT_EXPR, which needs to be
+ completely reconsidered. */
+ gcc_assert (at_eof >= 2 && ctx->quiet);
+ *non_constant_p = true;
+ }
+ else
{
- gcc_assert (DECL_SAVED_TREE (fun));
tree body, parms, res;
/* Reuse or create a new unshared copy of this function's body. */
&& (null_member_pointer_value_p (lhs)
|| null_member_pointer_value_p (rhs)))
r = constant_boolean_node (!is_code_eq, type);
+ else if (TREE_CODE (lhs) == PTRMEM_CST)
+ lhs = cplus_expand_constant (lhs);
+ else if (TREE_CODE (rhs) == PTRMEM_CST)
+ rhs = cplus_expand_constant (rhs);
}
if (r == NULL_TREE)
else
found = (i < len);
- if (!found)
+ if (found)
{
- if (TREE_CODE (ary) == CONSTRUCTOR
- && CONSTRUCTOR_NO_IMPLICIT_ZERO (ary))
+ tree r;
+ if (TREE_CODE (ary) == CONSTRUCTOR)
+ r = (*CONSTRUCTOR_ELTS (ary))[i].value;
+ else if (elem_nchars == 1)
+ r = build_int_cst (cv_unqualified (TREE_TYPE (TREE_TYPE (ary))),
+ TREE_STRING_POINTER (ary)[i]);
+ else
{
- /* 'ary' is part of the aggregate initializer we're currently
- building; if there's no initializer for this element yet,
- that's an error. */
- if (!ctx->quiet)
- error ("accessing uninitialized array element");
- *non_constant_p = true;
- return t;
+ tree type = cv_unqualified (TREE_TYPE (TREE_TYPE (ary)));
+ r = native_interpret_expr (type, (const unsigned char *)
+ TREE_STRING_POINTER (ary)
+ + i * elem_nchars, elem_nchars);
}
+ if (r)
+ /* Don't VERIFY_CONSTANT here. */
+ return r;
- /* If it's within the array bounds but doesn't have an explicit
- initializer, it's value-initialized. */
- tree val = build_value_init (elem_type, tf_warning_or_error);
- return cxx_eval_constant_expression (ctx, val, lval, non_constant_p,
- overflow_p);
+ /* Otherwise the element doesn't have a value yet. */
}
- if (TREE_CODE (ary) == CONSTRUCTOR)
- return (*CONSTRUCTOR_ELTS (ary))[i].value;
- else if (elem_nchars == 1)
- return build_int_cst (cv_unqualified (TREE_TYPE (TREE_TYPE (ary))),
- TREE_STRING_POINTER (ary)[i]);
- else
+ /* Not found. */
+
+ if (TREE_CODE (ary) == CONSTRUCTOR
+ && CONSTRUCTOR_NO_IMPLICIT_ZERO (ary))
{
- tree type = cv_unqualified (TREE_TYPE (TREE_TYPE (ary)));
- return native_interpret_expr (type, (const unsigned char *)
- TREE_STRING_POINTER (ary)
- + i * elem_nchars, elem_nchars);
+ /* 'ary' is part of the aggregate initializer we're currently
+ building; if there's no initializer for this element yet,
+ that's an error. */
+ if (!ctx->quiet)
+ error ("accessing uninitialized array element");
+ *non_constant_p = true;
+ return t;
}
- /* Don't VERIFY_CONSTANT here. */
+
+ /* If it's within the array bounds but doesn't have an explicit
+ initializer, it's value-initialized. */
+ tree val = build_value_init (elem_type, tf_warning_or_error);
+ return cxx_eval_constant_expression (ctx, val, lval, non_constant_p,
+ overflow_p);
}
/* Subroutine of cxx_eval_constant_expression.
{
if (!CASE_LOW (stmt))
default_label = i;
+ else if (CASE_HIGH (stmt))
+ {
+ if (tree_int_cst_le (CASE_LOW (stmt), *jump_target)
+ && tree_int_cst_le (*jump_target, CASE_HIGH (stmt)))
+ return true;
+ }
else if (tree_int_cst_equal (*jump_target, CASE_LOW (stmt)))
return true;
}
case REALPART_EXPR:
case IMAGPART_EXPR:
+ if (lval)
+ {
+ r = cxx_eval_constant_expression (ctx, TREE_OPERAND (t, 0), lval,
+ non_constant_p, overflow_p);
+ if (r == error_mark_node)
+ ;
+ else if (r == TREE_OPERAND (t, 0))
+ r = t;
+ else
+ r = fold_build1 (TREE_CODE (t), TREE_TYPE (t), r);
+ break;
+ }
+ /* FALLTHRU */
case CONJ_EXPR:
case FIX_TRUNC_EXPR:
case FLOAT_EXPR:
case GOTO_EXPR:
{
tree *target = &TREE_OPERAND (t, 0);
- /* Gotos representing break and continue are OK; we should have
- rejected other gotos in parsing. */
- gcc_assert (breaks (target) || continues (target));
- return true;
+ /* Gotos representing break and continue are OK. */
+ if (breaks (target) || continues (target))
+ return true;
+ if (flags & tf_error)
+ error ("%<goto%> is not a constant-expression");
+ return false;
}
default:
return false;
sorry ("unexpected AST of kind %s", get_tree_code_name (TREE_CODE (t)));
- gcc_unreachable();
+ gcc_unreachable ();
return false;
}
#undef RECUR
#include "system.h"
#include "coretypes.h"
#include "tm.h"
+#include "timevar.h"
#include "hash-set.h"
#include "machmode.h"
#include "vec.h"
static inline bool
constraint_p (tree_code c)
{
- return (PRED_CONSTR <= c && c <= DISJ_CONSTR) || c == ERROR_MARK;
+ return ((PRED_CONSTR <= c && c <= DISJ_CONSTR)
+ || c == EXPR_PACK_EXPANSION
+ || c == ERROR_MARK);
}
/* Returns true if T is a constraint. Note that error_mark_node
return constraint_p (TREE_CODE (t));
}
-/* Make a predicate constraint from the given expression. */
-
-tree
-make_predicate_constraint (tree expr)
-{
- return build_nt (PRED_CONSTR, expr);
-}
-
/* Returns the conjunction of two constraints A and B. Note that
conjoining a non-null constraint with NULL_TREE is an identity
operation. That is, for non-null A,
return false;
}
+/* Returns true if any of the arguments in the template
+ argument list is a wildcard or wildcard pack. */
+
+bool
+contains_wildcard_p (tree args)
+{
+ for (int i = 0; i < TREE_VEC_LENGTH (args); ++i)
+ {
+ tree arg = TREE_VEC_ELT (args, i);
+ if (TREE_CODE (arg) == WILDCARD_DECL)
+ return true;
+ }
+ return false;
+}
+
+/* Build a new call expression, but don't actually generate a
+ new function call. We just want the tree, not the semantics. */
+
+inline tree
+build_call_check (tree id)
+{
+ ++processing_template_decl;
+ vec<tree, va_gc> *fargs = make_tree_vector();
+ tree call = finish_call_expr (id, &fargs, false, false, tf_none);
+ release_tree_vector (fargs);
+ --processing_template_decl;
+ return call;
+}
+
+/* Build an expression that will check a variable concept. If any
+ argument contains a wildcard, don't try to finish the variable
+ template because we can't substitute into a non-existent
+ declaration. */
+
+tree
+build_variable_check (tree id)
+{
+ gcc_assert (TREE_CODE (id) == TEMPLATE_ID_EXPR);
+ if (contains_wildcard_p (TREE_OPERAND (id, 1)))
+ return id;
+
+ ++processing_template_decl;
+ tree var = finish_template_variable (id);
+ --processing_template_decl;
+ return var;
+}
+
/*---------------------------------------------------------------------------
Resolution of qualified concept names
---------------------------------------------------------------------------*/
static tree
resolve_constraint_check (tree ovl, tree args)
{
+ int nerrs = 0;
tree cands = NULL_TREE;
for (tree p = ovl; p != NULL_TREE; p = OVL_NEXT (p))
{
++processing_template_decl;
tree parms = TREE_VALUE (DECL_TEMPLATE_PARMS (tmpl));
if (tree subst = coerce_template_parms (parms, args, tmpl))
- if (subst != error_mark_node)
- cands = tree_cons (subst, fn, cands);
+ {
+ if (subst == error_mark_node)
+ ++nerrs;
+ else
+ cands = tree_cons (subst, fn, cands);
+ }
--processing_template_decl;
}
- // If we didn't find a unique candidate, then this is
- // not a constraint check.
- if (!cands || TREE_CHAIN (cands))
- return NULL_TREE;
+ if (!cands)
+ /* We either had no candidates or failed deductions. */
+ return nerrs ? error_mark_node : NULL_TREE;
+ else if (TREE_CHAIN (cands))
+ /* There are multiple candidates. */
+ return error_mark_node;
return cands;
}
assuming that it works. Note that failing to deduce
will result in diagnostics. */
tree parms = INNERMOST_TEMPLATE_PARMS (DECL_TEMPLATE_PARMS (tmpl));
+ ++processing_template_decl;
tree result = coerce_template_parms (parms, args, tmpl);
+ --processing_template_decl;
if (result != error_mark_node)
{
tree decl = DECL_TEMPLATE_RESULT (tmpl);
return build_tree_list (result, decl);
}
else
- return NULL_TREE;
+ return error_mark_node;
}
namespace {
/*---------------------------------------------------------------------------
- Lifting of concept definitions
+ Constraint implication learning
---------------------------------------------------------------------------*/
-/* Part of constraint normalization. Whenever we find a reference to
- a variable concept or a call to a function concept, we lift or
- inline that concept's definition into the constraint. This ensures
- that constraints are always checked in the immediate instantiation
- context. */
+/* The implication context determines how we memoize concept checks.
+ Given two checks C1 and C2, the direction of implication depends
+ on whether we are learning implications of a conjunction or disjunction.
+ For example:
-tree lift_expression (tree);
+ template<typename T> concept bool C = ...;
+ template<typenaem T> concept bool D = C<T> && true;
-/* If the tree T has operands, then lift any concepts out of them. */
-tree
-lift_operands (tree t)
+ From this, we can learn that D<T> implies C<T>. We cannot learn,
+ without further testing, that C<T> does not imply D<T>. If, for
+ example, C<T> were defined as true, then these constraints would
+ be logically equivalent.
+
+ In rare cases, we may start with a logical equivalence. For example:
+
+ template<typename T> concept bool C = ...;
+ template<typename T> concept bool D = C<T>;
+
+ Here, we learn that C<T> implies D<T> and vice versa. */
+
+enum implication_context
+{
+ conjunction_cxt, /* C1 implies C2. */
+ disjunction_cxt, /* C2 implies C1. */
+ equivalence_cxt /* C1 implies C2, C2 implies C1. */
+};
+
+void learn_implications(tree, tree, implication_context);
+
+void
+learn_implication (tree parent, tree child, implication_context cxt)
{
- if (int n = tree_operand_length (t))
+ switch (cxt)
{
- t = copy_node (t);
- for (int i = 0; i < n; ++i)
- TREE_OPERAND (t, i) = lift_expression (TREE_OPERAND (t, i));
+ case conjunction_cxt:
+ save_subsumption_result (parent, child, true);
+ break;
+ case disjunction_cxt:
+ save_subsumption_result (child, parent, true);
+ break;
+ case equivalence_cxt:
+ save_subsumption_result (parent, child, true);
+ save_subsumption_result (child, parent, true);
+ break;
}
- return t;
}
-/* Recursively lift all operands of the function call. Also, check
- that the call target is not accidentally a variable concept
- since that's ill-formed. */
-tree
-lift_function_call (tree t)
+void
+learn_logical_operation (tree parent, tree constr, implication_context cxt)
{
- gcc_assert (TREE_CODE (t) == CALL_EXPR);
- gcc_assert (!VAR_P (CALL_EXPR_FN (t)));
- return lift_operands (t);
+ learn_implications (parent, TREE_OPERAND (constr, 0), cxt);
+ learn_implications (parent, TREE_OPERAND (constr, 1), cxt);
}
-/* Inline a function (concept) definition by substituting
- ARGS into its body. */
+void
+learn_implications (tree parent, tree constr, implication_context cxt)
+{
+ switch (TREE_CODE (constr))
+ {
+ case CHECK_CONSTR:
+ return learn_implication (parent, constr, cxt);
+
+ case CONJ_CONSTR:
+ if (cxt == disjunction_cxt)
+ return;
+ return learn_logical_operation (parent, constr, cxt);
+
+ case DISJ_CONSTR:
+ if (cxt == conjunction_cxt)
+ return;
+ return learn_logical_operation (parent, constr, cxt);
+
+ default:
+ break;
+ }
+}
+
+/* Quickly scan the top-level constraints of CONSTR to learn and
+ cache logical relations between concepts. The search does not
+ include conjunctions of disjunctions or vice versa. */
+
+void
+learn_implications (tree tmpl, tree args, tree constr)
+{
+ /* Don't memoize relations between non-dependent arguemnts. It's not
+ helpful. */
+ if (!uses_template_parms (args))
+ return;
+
+ /* Build a check constraint for the purpose of caching. */
+ tree parent = build_nt (CHECK_CONSTR, tmpl, args);
+
+ /* Start learning based on the kind of the top-level contraint. */
+ if (TREE_CODE (constr) == CONJ_CONSTR)
+ return learn_logical_operation (parent, constr, conjunction_cxt);
+ else if (TREE_CODE (constr) == DISJ_CONSTR)
+ return learn_logical_operation (parent, constr, disjunction_cxt);
+ else if (TREE_CODE (constr) == CHECK_CONSTR)
+ /* This is the rare concept alias case. */
+ return learn_implication (parent, constr, equivalence_cxt);
+}
+
+/*---------------------------------------------------------------------------
+ Expansion of concept definitions
+---------------------------------------------------------------------------*/
+
+/* Returns the expression of a function concept. */
+
tree
-lift_function_definition (tree fn, tree args)
+get_returned_expression (tree fn)
{
/* Extract the body of the function minus the return expression. */
tree body = DECL_SAVED_TREE (fn);
if (TREE_CODE (body) != RETURN_EXPR)
return error_mark_node;
- body = TREE_OPERAND (body, 0);
-
- /* Substitute template arguments to produce our inline expression. */
- tree result = tsubst_expr (body, args, tf_none, NULL_TREE, false);
- if (result == error_mark_node)
- return error_mark_node;
-
- return lift_expression (result);
+ return TREE_OPERAND (body, 0);
}
-/* Inline a reference to a function concept. */
-tree
-lift_call_expression (tree t)
-{
- /* Try to resolve this function call as a concept. If not, then
- it can be returned as-is. */
- tree check = resolve_constraint_check (t);
- if (!check)
- return lift_function_call (t);
- if (check == error_mark_node)
- return error_mark_node;
-
- tree fn = TREE_VALUE (check);
- tree args = TREE_PURPOSE (check);
- return lift_function_definition (fn, args);
-}
+/* Returns the initializer of a variable concept. */
tree
-lift_variable_initializer (tree var, tree args)
+get_variable_initializer (tree var)
{
- /* Extract the body from the variable initializer. */
tree init = DECL_INITIAL (var);
if (!init)
return error_mark_node;
+ return init;
+}
- /* Substitute the arguments to form our new inline expression. */
- tree result = tsubst_expr (init, args, tf_none, NULL_TREE, false);
- if (result == error_mark_node)
- return error_mark_node;
+/* Returns the definition of a variable or function concept. */
- return lift_expression (result);
+tree
+get_concept_definition (tree decl)
+{
+ if (TREE_CODE (decl) == VAR_DECL)
+ return get_variable_initializer (decl);
+ else if (TREE_CODE (decl) == FUNCTION_DECL)
+ return get_returned_expression (decl);
+ gcc_unreachable ();
}
-/* Determine if a template-id is a variable concept and inline. */
+int expansion_level = 0;
-tree
-lift_template_id (tree t)
+struct expanding_concept_sentinel
{
- if (tree info = resolve_variable_concept_check (t))
- {
- tree decl = TREE_VALUE (info);
- tree args = TREE_PURPOSE (info);
- return lift_variable_initializer (decl, args);
- }
+ expanding_concept_sentinel ()
+ {
+ ++expansion_level;
+ }
- /* Check that we didn't refer to a function concept like
- a variable.
+ ~expanding_concept_sentinel()
+ {
+ --expansion_level;
+ }
+};
- TODO: Add a note on how to fix this. */
- tree tmpl = TREE_OPERAND (t, 0);
- if (TREE_CODE (tmpl) == OVERLOAD)
- {
- tree fn = OVL_FUNCTION (tmpl);
- if (TREE_CODE (fn) == TEMPLATE_DECL
- && DECL_DECLARED_CONCEPT_P (DECL_TEMPLATE_RESULT (fn)))
- {
- error_at (location_of (t),
- "invalid reference to function concept %qD", fn);
- return error_mark_node;
- }
- }
- return t;
-}
+} /* namespace */
-/* Lift any constraints appearing in a nested requirement of
- a requires-expression. */
-tree
-lift_requires_expression (tree t)
+/* Returns true when a concept is being expanded. */
+
+bool
+expanding_concept()
{
- tree parms = TREE_OPERAND (t, 0);
- tree reqs = TREE_OPERAND (t, 1);
- tree result = NULL_TREE;
- for (; reqs != NULL_TREE; reqs = TREE_CHAIN (reqs))
- {
- tree req = TREE_VALUE (reqs);
- if (TREE_CODE (req) == NESTED_REQ)
- {
- tree expr = lift_expression (TREE_OPERAND (req, 0));
- req = finish_nested_requirement (expr);
- }
- result = tree_cons (NULL_TREE, req, result);
- }
- return finish_requires_expr (parms, result);
+ return expansion_level > 0;
}
-/* Inline references to specializations of concepts. */
+/* Expand a concept declaration (not a template) and its arguments to
+ a constraint defined by the concept's initializer or definition. */
+
tree
-lift_expression (tree t)
+expand_concept (tree decl, tree args)
{
- if (t == NULL_TREE)
- return NULL_TREE;
+ expanding_concept_sentinel sentinel;
- if (t == error_mark_node)
- return error_mark_node;
+ if (TREE_CODE (decl) == TEMPLATE_DECL)
+ decl = DECL_TEMPLATE_RESULT (decl);
+ tree tmpl = DECL_TI_TEMPLATE (decl);
- /* Concepts can be referred to by call or variable. All other
- nodes are preserved. */
- switch (TREE_CODE (t))
- {
- case CALL_EXPR:
- return lift_call_expression (t);
+ /* Check for a previous specialization. */
+ if (tree spec = get_concept_expansion (tmpl, args))
+ return spec;
- case TEMPLATE_ID_EXPR:
- return lift_template_id (t);
+ /* Substitute the arguments to form a new definition expression. */
+ tree def = get_concept_definition (decl);
- case REQUIRES_EXPR:
- return lift_requires_expression (t);
-
- case EXPR_PACK_EXPANSION:
- /* Use copy_node rather than make_pack_expansion so that
- PACK_EXPANSION_PARAMETER_PACKS stays the same. */
- t = copy_node (t);
- SET_PACK_EXPANSION_PATTERN
- (t, lift_expression (PACK_EXPANSION_PATTERN (t)));
- return t;
-
- case TREE_LIST:
- {
- t = copy_node (t);
- TREE_VALUE (t) = lift_expression (TREE_VALUE (t));
- TREE_CHAIN (t) = lift_expression (TREE_CHAIN (t));
- return t;
- }
+ ++processing_template_decl;
+ tree result = tsubst_expr (def, args, tf_none, NULL_TREE, true);
+ --processing_template_decl;
+ if (result == error_mark_node)
+ return error_mark_node;
- default:
- return lift_operands (t);
- }
+ /* And lastly, normalize it, check for implications, and save
+ the specialization for later. */
+ tree norm = normalize_expression (result);
+ learn_implications (tmpl, args, norm);
+ return save_concept_expansion (tmpl, args, norm);
}
-/*---------------------------------------------------------------------------
- Transformation of expressions into constraints
----------------------------------------------------------------------------*/
-
-/* Part of constraint normalization. The following functions rewrite
- expressions as constraints. */
-
-tree transform_expression (tree);
-
-/* Check that the logical-or or logical-and expression does
- not result in a call to a user-defined user-defined operator
- (temp.constr.op). Returns true if the logical operator is
- admissible and false otherwise. */
-bool
-check_logical_expr (tree t)
-{
- /* We can't do much for type dependent expressions. */
- if (type_dependent_expression_p (t))
- return true;
+/*---------------------------------------------------------------------------
+ Stepwise normalization of expressions
- /* Resolve the logical operator. Note that template processing is
- disabled so we get the actual call or target expression back.
- not_processing_template_sentinel sentinel.
-
- TODO: This check is actually subsumed by the requirement that
- constraint operands have type bool. I'm not sure we need it
- unless we allow conversions. */
- tree arg1 = TREE_OPERAND (t, 0);
- tree arg2 = TREE_OPERAND (t, 1);
- tree ovl = NULL_TREE;
- tree expr = build_x_binary_op (EXPR_LOC_OR_LOC (arg2, input_location),
- TREE_CODE (t),
- arg1, TREE_CODE (arg1),
- arg2, TREE_CODE (arg2),
- &ovl,
- tf_none);
- if (TREE_CODE (expr) != TREE_CODE (t))
- {
- error ("user-defined operator %qs in constraint %q+E",
- operator_name_info[TREE_CODE (t)].name, t);
- return false;
- }
- return true;
-}
+This set of functions will transform an expression into a constraint
+in a sequence of steps. Normalization does not not look into concept
+definitions.
+---------------------------------------------------------------------------*/
/* Transform a logical-or or logical-and expression into either
a conjunction or disjunction. */
tree
-xform_logical (tree t, tree_code c)
+normalize_logical_operation (tree t, tree_code c)
{
- if (!check_logical_expr (t))
- return error_mark_node;
- tree t0 = transform_expression (TREE_OPERAND (t, 0));
- tree t1 = transform_expression (TREE_OPERAND (t, 1));
+ tree t0 = normalize_expression (TREE_OPERAND (t, 0));
+ tree t1 = normalize_expression (TREE_OPERAND (t, 1));
return build_nt (c, t0, t1);
}
for its expression. */
inline tree
-xform_simple_requirement (tree t)
+normalize_simple_requirement (tree t)
{
return build_nt (EXPR_CONSTR, TREE_OPERAND (t, 0));
}
/* A type requirement T introduce a type constraint for its type. */
inline tree
-xform_type_requirement (tree t)
+normalize_type_requirement (tree t)
{
return build_nt (TYPE_CONSTR, TREE_OPERAND (t, 0));
}
includes an exception constraint. */
tree
-xform_compound_requirement (tree t)
+normalize_compound_requirement (tree t)
{
tree expr = TREE_OPERAND (t, 0);
tree constr = build_nt (EXPR_CONSTR, TREE_OPERAND (t, 0));
will guarantee that the constraint is never satisfied. */
inline tree
-xform_nested_requirement (tree t)
+normalize_nested_requirement (tree t)
{
- return transform_expression (TREE_OPERAND (t, 0));
+ return normalize_expression (TREE_OPERAND (t, 0));
}
/* Transform a requirement T into one or more constraints. */
tree
-xform_requirement (tree t)
+normalize_requirement (tree t)
{
switch (TREE_CODE (t))
{
case SIMPLE_REQ:
- return xform_simple_requirement (t);
+ return normalize_simple_requirement (t);
case TYPE_REQ:
- return xform_type_requirement (t);
+ return normalize_type_requirement (t);
case COMPOUND_REQ:
- return xform_compound_requirement (t);
+ return normalize_compound_requirement (t);
case NESTED_REQ:
- return xform_nested_requirement (t);
+ return normalize_nested_requirement (t);
default:
gcc_unreachable ();
constraints. */
tree
-xform_requirements (tree t)
+normalize_requirements (tree t)
{
tree result = NULL_TREE;
for (; t; t = TREE_CHAIN (t))
{
- tree constr = xform_requirement (TREE_VALUE (t));
+ tree constr = normalize_requirement (TREE_VALUE (t));
result = conjoin_constraints (result, constr);
}
return result;
}
-/* Transform a requires-expression into a parameterized constraint. */
+/* The normal form of a requires-expression is a parameterized
+ constraint having the same parameters and a conjunction of
+ constraints representing the normal form of requirements. */
tree
-xform_requires_expr (tree t)
+normalize_requires_expression (tree t)
{
- tree operand = xform_requirements (TREE_OPERAND (t, 1));
+ tree operand = normalize_requirements (TREE_OPERAND (t, 1));
if (tree parms = TREE_OPERAND (t, 0))
return build_nt (PARM_CONSTR, parms, operand);
else
return operand;
}
-/* Transform an expression into an atomic predicate constraint.
- After substitution, the expression of a predicate constraint
- shall have type bool (temp.constr.pred). For non-type-dependent
- expressions, we can check that now. */
+/* For a template-id referring to a variable concept, returns
+ a check constraint. Otherwise, returns a predicate constraint. */
tree
-xform_atomic (tree t)
+normalize_template_id_expression (tree t)
{
- if (TREE_TYPE (t) && !type_dependent_expression_p (t))
- {
- tree type = cv_unqualified (TREE_TYPE (t));
- if (!same_type_p (type, boolean_type_node))
- {
- error ("predicate constraint %q+E does not have type %<bool%>", t);
+ if (tree info = resolve_variable_concept_check (t))
+ {
+ if (info == error_mark_node)
+ {
+ /* We get this when the template arguments don't match
+ the variable concept. */
+ error ("invalid reference to concept %qE", t);
+ return error_mark_node;
+ }
+
+ tree decl = TREE_VALUE (info);
+ tree args = TREE_PURPOSE (info);
+ return build_nt (CHECK_CONSTR, decl, args);
+ }
+
+ /* Check that we didn't refer to a function concept like a variable. */
+ tree tmpl = TREE_OPERAND (t, 0);
+ if (TREE_CODE (tmpl) == OVERLOAD)
+ {
+ tree fn = OVL_FUNCTION (tmpl);
+ if (TREE_CODE (fn) == TEMPLATE_DECL
+ && DECL_DECLARED_CONCEPT_P (DECL_TEMPLATE_RESULT (fn)))
+ {
+ error_at (location_of (t),
+ "invalid reference to function concept %qD", fn);
+ return error_mark_node;
+ }
+ }
+
+ return build_nt (PRED_CONSTR, t);
+}
+
+/* For a call expression to a function concept, returns a check
+ constraint. Otherwise, returns a predicate constraint. */
+
+tree
+normalize_call_expression (tree t)
+{
+ /* Try to resolve this function call as a concept. If not, then
+ it can be returned as a predicate constraint. */
+ tree check = resolve_constraint_check (t);
+ if (!check)
+ return build_nt (PRED_CONSTR, t);
+ if (check == error_mark_node)
+ {
+ /* TODO: Improve diagnostics. We could report why the reference
+ is invalid. */
+ error ("invalid reference to concept %qE", t);
+ return error_mark_node;
+ }
+
+ tree fn = TREE_VALUE (check);
+ tree args = TREE_PURPOSE (check);
+ return build_nt (CHECK_CONSTR, fn, args);
+}
+
+/* If T is a call to an overloaded && or || operator, diagnose that
+ as a non-SFINAEable error. Returns true if an error is emitted.
+
+ TODO: It would be better to diagnose this at the point of definition,
+ if possible. Perhaps we should immediately do a first-pass normalization
+ of a concept definition to catch obvious non-dependent errors like
+ this. */
+
+bool
+check_for_logical_overloads (tree t)
+{
+ if (TREE_CODE (t) != CALL_EXPR)
+ return false;
+
+ tree fn = CALL_EXPR_FN (t);
+
+ /* For member calls, try extracting the function from the
+ component ref. */
+ if (TREE_CODE (fn) == COMPONENT_REF)
+ {
+ fn = TREE_OPERAND (fn, 1);
+ if (TREE_CODE (fn) == BASELINK)
+ fn = BASELINK_FUNCTIONS (fn);
+ }
+
+ if (TREE_CODE (fn) != FUNCTION_DECL)
+ return false;
+
+ if (DECL_OVERLOADED_OPERATOR_P (fn))
+ {
+ location_t loc = EXPR_LOC_OR_LOC (t, input_location);
+ error_at (loc, "constraint %qE, uses overloaded operator", t);
+ return true;
+ }
+
+ return false;
+}
+
+/* The normal form of an atom depends on the expression. The normal
+ form of a function call to a function concept is a check constraint
+ for that concept. The normal form of a reference to a variable
+ concept is a check constraint for that concept. Otherwise, the
+ constraint is a predicate constraint. */
+
+tree
+normalize_atom (tree t)
+{
+ /* We can get constraints pushed down through pack expansions, so
+ just return them. */
+ if (constraint_p (t))
+ return t;
+
+ tree type = TREE_TYPE (t);
+ if (!type || type_unknown_p (t) || TREE_CODE (type) == TEMPLATE_TYPE_PARM)
+ ;
+ else if (!dependent_type_p (type))
+ {
+ if (check_for_logical_overloads (t))
return error_mark_node;
- }
- }
+
+ type = cv_unqualified (type);
+ if (!same_type_p (type, boolean_type_node))
+ {
+ error ("predicate constraint %q+E does not have type %<bool%>", t);
+ return error_mark_node;
+ }
+ }
+
+ if (TREE_CODE (t) == TEMPLATE_ID_EXPR)
+ return normalize_template_id_expression (t);
+ if (TREE_CODE (t) == CALL_EXPR)
+ return normalize_call_expression (t);
return build_nt (PRED_CONSTR, t);
}
leaves of the constraint so that partial ordering will work. */
tree
-xform_pack_expansion (tree t)
+normalize_pack_expansion (tree t)
{
- tree pat = transform_expression (PACK_EXPANSION_PATTERN (t));
+ tree pat = normalize_expression (PACK_EXPANSION_PATTERN (t));
return push_down_pack_expansion (t, pat);
}
/* Transform an expression into a constraint. */
tree
-xform_expr (tree t)
+normalize_any_expression (tree t)
{
switch (TREE_CODE (t))
{
case TRUTH_ANDIF_EXPR:
- return xform_logical (t, CONJ_CONSTR);
+ return normalize_logical_operation (t, CONJ_CONSTR);
case TRUTH_ORIF_EXPR:
- return xform_logical (t, DISJ_CONSTR);
+ return normalize_logical_operation (t, DISJ_CONSTR);
case REQUIRES_EXPR:
- return xform_requires_expr (t);
+ return normalize_requires_expression (t);
case BIND_EXPR:
- return transform_expression (BIND_EXPR_BODY (t));
+ return normalize_expression (BIND_EXPR_BODY (t));
case EXPR_PACK_EXPANSION:
- return xform_pack_expansion (t);
+ return normalize_pack_expansion (t);
default:
/* All other constraints are atomic. */
- return xform_atomic (t);
+ return normalize_atom (t);
}
}
/* Transform a statement into an expression. */
-
tree
-xform_stmt (tree t)
+normalize_any_statement (tree t)
{
switch (TREE_CODE (t))
{
case RETURN_EXPR:
- return transform_expression (TREE_OPERAND (t, 0));
+ return normalize_expression (TREE_OPERAND (t, 0));
default:
gcc_unreachable ();
}
/* Reduction rules for the declaration T. */
tree
-xform_decl (tree t)
+normalize_any_declaration (tree t)
{
switch (TREE_CODE (t))
{
case VAR_DECL:
- return xform_atomic (t);
+ return normalize_atom (t);
default:
gcc_unreachable ();
}
return error_mark_node;
}
-/* Transform a lifted expression into a constraint. This either
- returns a constraint, or it returns error_mark_node when
- a constraint cannot be formed. */
+/* Returns the normal form of a constraint expression. */
tree
-transform_expression (tree t)
+normalize_expression (tree t)
{
if (!t)
return NULL_TREE;
case tcc_binary:
case tcc_expression:
case tcc_vl_exp:
- return xform_expr (t);
+ return normalize_any_expression (t);
case tcc_statement:
- return xform_stmt (t);
+ return normalize_any_statement (t);
case tcc_declaration:
- return xform_decl (t);
+ return normalize_any_declaration (t);
case tcc_exceptional:
case tcc_constant:
case tcc_reference:
case tcc_comparison:
/* These are all atomic predicate constraints. */
- return xform_atomic (t);
+ return normalize_atom (t);
default:
/* Unhandled node kind. */
return error_mark_node;
}
+
/*---------------------------------------------------------------------------
Constraint normalization
---------------------------------------------------------------------------*/
{
++processing_template_decl;
tree expr = PRED_CONSTR_EXPR (t);
- tree lifted = lift_expression (expr);
- tree constr = transform_expression (lifted);
+ tree constr = normalize_expression (expr);
--processing_template_decl;
return constr;
}
return error_mark_node;
}
-} /* namespace */
// -------------------------------------------------------------------------- //
ci->declarator_reqs = decl_reqs;
ci->associated_constr = conjoin_constraints (tmpl_reqs, decl_reqs);
- ++processing_template_decl;
- ci->normalized_constr = normalize_constraint (ci->associated_constr);
- --processing_template_decl;
-
- ci->assumptions = decompose_assumptions (ci->normalized_constr);
return (tree)ci;
}
namespace {
-/* Returns true if any of the arguments in the template
- argument list is a wildcard or wildcard pack. */
-bool
-contains_wildcard_p (tree args)
-{
- for (int i = 0; i < TREE_VEC_LENGTH (args); ++i)
- {
- tree arg = TREE_VEC_ELT (args, i);
- if (TREE_CODE (arg) == WILDCARD_DECL)
- return true;
- }
- return false;
-}
-
-/* Build a new call expression, but don't actually generate
- a new function call. We just want the tree, not the
- semantics. */
-inline tree
-build_call_check (tree id)
-{
- ++processing_template_decl;
- vec<tree, va_gc> *fargs = make_tree_vector();
- tree call = finish_call_expr (id, &fargs, false, false, tf_none);
- release_tree_vector (fargs);
- --processing_template_decl;
- return call;
-}
-
-/* Build an expression that will check a variable concept. If any
- argument contains a wildcard, don't try to finish the variable
- template because we can't substitute into a non-existent
- declaration. */
-tree
-build_variable_check (tree id)
-{
- gcc_assert (TREE_CODE (id) == TEMPLATE_ID_EXPR);
- if (contains_wildcard_p (TREE_OPERAND (id, 1)))
- return id;
-
- ++processing_template_decl;
- tree var = finish_template_variable (id);
- --processing_template_decl;
- return var;
-}
-
/* Construct a sequence of template arguments by prepending
ARG to REST. Either ARG or REST may be null. */
tree
Note that the constraints are neither reduced nor decomposed.
That is done only after the requires clause has been parsed
- (or not). */
+ (or not).
+
+ This will always return a CHECK_CONSTR. */
tree
finish_shorthand_constraint (tree decl, tree constr)
{
TREE_TYPE (check) = boolean_type_node;
}
- return make_predicate_constraint (check);
+ return normalize_expression (check);
}
/* Returns a conjunction of shorthand requirements for the template
/* Associate the constraint. */
tree check = build_concept_check (tmpl_decl, NULL_TREE, check_args);
- tree constr = make_predicate_constraint (check);
+ tree constr = normalize_expression (check);
TEMPLATE_PARMS_CONSTRAINTS (current_template_parms) = constr;
return parm_list;
{
if (TREE_CODE (t) == TYPE_DECL)
{
- /* A constrained parameter. */
- tmpl = DECL_TI_TEMPLATE (CONSTRAINED_PARM_CONCEPT (t));
- args = CONSTRAINED_PARM_EXTRA_ARGS (t);
+ /* A constrained parameter. Build a constraint check
+ based on the prototype parameter and then extract the
+ arguments from that. */
+ tree proto = CONSTRAINED_PARM_PROTOTYPE (t);
+ tree check = finish_shorthand_constraint (proto, t);
+ placeholder_extract_concept_and_args (check, tmpl, args);
return;
}
- gcc_assert (TREE_CODE (t) == PRED_CONSTR);
- t = PRED_CONSTR_EXPR (t);
- gcc_assert (TREE_CODE (t) == CALL_EXPR
- || TREE_CODE (t) == TEMPLATE_ID_EXPR
- || VAR_P (t));
-
- if (TREE_CODE (t) == CALL_EXPR)
- t = CALL_EXPR_FN (t);
- if (TREE_CODE (t) == TEMPLATE_ID_EXPR)
+ if (TREE_CODE (t) == CHECK_CONSTR)
{
- tmpl = TREE_OPERAND (t, 0);
- if (TREE_CODE (tmpl) == OVERLOAD)
- {
- gcc_assert (OVL_CHAIN (tmpl) == NULL_TREE);
- tmpl = OVL_FUNCTION (tmpl);
- }
- args = TREE_OPERAND (t, 1);
- }
- else if (DECL_P (t))
- {
- tmpl = DECL_TI_TEMPLATE (t);
- args = DECL_TI_ARGS (t);
+ tree decl = CHECK_CONSTR_CONCEPT (t);
+ tmpl = DECL_TI_TEMPLATE (decl);
+ args = CHECK_CONSTR_ARGS (t);
+ return;
}
- else
+
gcc_unreachable ();
}
/* Returns true iff the placeholders C1 and C2 are equivalent. C1
- and C2 can be either PRED_CONSTR_EXPR or TEMPLATE_TYPE_PARM. */
+ and C2 can be either CHECK_CONSTR or TEMPLATE_TYPE_PARM. */
bool
equivalent_placeholder_constraints (tree c1, tree c2)
return true;
if (!c1 || !c2)
return false;
+ if (c1 == error_mark_node || c2 == error_mark_node)
+ /* We get here during satisfaction; when a deduction constraint
+ fails, substitution can produce an error_mark_node for the
+ placeholder constraints. */
+ return false;
tree t1, t2, a1, a2;
placeholder_extract_concept_and_args (c1, t1, a1);
if (t1 != t2)
return false;
- /* Skip the first argument to avoid infinite recursion on the
- placeholder auto itself. */
- bool skip1 = (TREE_CODE (c1) == PRED_CONSTR);
- bool skip2 = (TREE_CODE (c2) == PRED_CONSTR);
-
- int len1 = (a1 ? TREE_VEC_LENGTH (a1) : 0) - skip1;
- int len2 = (a2 ? TREE_VEC_LENGTH (a2) : 0) - skip2;
-
+ int len1 = TREE_VEC_LENGTH (a1);
+ int len2 = TREE_VEC_LENGTH (a2);
if (len1 != len2)
return false;
- for (int i = 0; i < len1; ++i)
- if (!cp_tree_equal (TREE_VEC_ELT (a1, i + skip1),
- TREE_VEC_ELT (a2, i + skip2)))
+ /* Skip the first argument so we don't infinitely recurse.
+ Also, they may differ in template parameter index. */
+ for (int i = 1; i < len1; ++i)
+ {
+ tree t1 = TREE_VEC_ELT (a1, i);
+ tree t2 = TREE_VEC_ELT (a2, i);
+ if (!template_args_equal (t1, t2))
return false;
+ }
return true;
}
return build_nt (PRED_CONSTR, result);
}
+/* Substitute into a check constraint. */
+
+tree
+tsubst_check_constraint (tree t, tree args,
+ tsubst_flags_t complain, tree in_decl)
+{
+ tree decl = CHECK_CONSTR_CONCEPT (t);
+ tree tmpl = DECL_TI_TEMPLATE (decl);
+ tree targs = CHECK_CONSTR_ARGS (t);
+
+ /* Substitute through by building an template-id expression
+ and then substituting into that. */
+ tree expr = build_nt(TEMPLATE_ID_EXPR, tmpl, targs);
+ ++processing_template_decl;
+ tree result = tsubst_expr (expr, args, complain, in_decl, false);
+ --processing_template_decl;
+
+ if (result == error_mark_node)
+ return error_mark_node;
+
+ /* Extract the results and rebuild the check constraint. */
+ decl = DECL_TEMPLATE_RESULT (TREE_OPERAND (result, 0));
+ args = TREE_OPERAND (result, 1);
+
+ return build_nt (CHECK_CONSTR, decl, args);
+}
+
/* Substitute into the conjunction of constraints. Returns
error_mark_node if substitution into either operand fails. */
+
tree
-tsubst_conjunction (tree t, tree args,
- tsubst_flags_t complain, tree in_decl)
+tsubst_logical_operator (tree t, tree args,
+ tsubst_flags_t complain, tree in_decl)
{
tree t0 = TREE_OPERAND (t, 0);
tree r0 = tsubst_constraint (t0, args, complain, in_decl);
+ if (r0 == error_mark_node)
+ return error_mark_node;
tree t1 = TREE_OPERAND (t, 1);
tree r1 = tsubst_constraint (t1, args, complain, in_decl);
- return build_nt (CONJ_CONSTR, r0, r1);
+ if (r1 == error_mark_node)
+ return error_mark_node;
+ return build_nt (TREE_CODE (t), r0, r1);
+}
+
+namespace {
+
+/* Substitute ARGS into the expression constraint T. */
+
+tree
+tsubst_expr_constr (tree t, tree args, tsubst_flags_t complain, tree in_decl)
+{
+ cp_unevaluated guard;
+ tree expr = EXPR_CONSTR_EXPR (t);
+ tree ret = tsubst_expr (expr, args, complain, in_decl, false);
+ if (ret == error_mark_node)
+ return error_mark_node;
+ return build_nt (EXPR_CONSTR, ret);
+}
+
+/* Substitute ARGS into the type constraint T. */
+
+tree
+tsubst_type_constr (tree t, tree args, tsubst_flags_t complain, tree in_decl)
+{
+ tree type = TYPE_CONSTR_TYPE (t);
+ tree ret = tsubst (type, args, complain, in_decl);
+ if (ret == error_mark_node)
+ return error_mark_node;
+ return build_nt (TYPE_CONSTR, ret);
+}
+
+/* Substitute ARGS into the implicit conversion constraint T. */
+
+tree
+tsubst_implicit_conversion_constr (tree t, tree args, tsubst_flags_t complain,
+ tree in_decl)
+{
+ cp_unevaluated guard;
+ tree expr = ICONV_CONSTR_EXPR (t);
+ tree type = ICONV_CONSTR_TYPE (t);
+ tree new_expr = tsubst_expr (expr, args, complain, in_decl, false);
+ if (new_expr == error_mark_node)
+ return error_mark_node;
+ tree new_type = tsubst (type, args, complain, in_decl);
+ if (new_type == error_mark_node)
+ return error_mark_node;
+ return build_nt (ICONV_CONSTR, new_expr, new_type);
+}
+
+/* Substitute ARGS into the argument deduction constraint T. */
+
+tree
+tsubst_argument_deduction_constr (tree t, tree args, tsubst_flags_t complain,
+ tree in_decl)
+{
+ cp_unevaluated guard;
+ tree expr = DEDUCT_CONSTR_EXPR (t);
+ tree pattern = DEDUCT_CONSTR_PATTERN (t);
+ tree autos = DEDUCT_CONSTR_PLACEHOLDER(t);
+ tree new_expr = tsubst_expr (expr, args, complain, in_decl, false);
+ if (new_expr == error_mark_node)
+ return error_mark_node;
+ /* It seems like substituting through the pattern will not affect the
+ placeholders. We should (?) be able to reuse the existing list
+ without any problems. If not, then we probably want to create a
+ new list of placeholders and then instantiate the pattern using
+ those. */
+ tree new_pattern = tsubst (pattern, args, complain, in_decl);
+ if (new_pattern == error_mark_node)
+ return error_mark_node;
+ return build_nt (DEDUCT_CONSTR, new_expr, new_pattern, autos);
}
-/* Substitute ARGS into the constraint T. */
+/* Substitute ARGS into the exception constraint T. */
+
tree
-tsubst_constraint (tree t, tree args, tsubst_flags_t complain, tree in_decl)
+tsubst_exception_constr (tree t, tree args, tsubst_flags_t complain,
+ tree in_decl)
{
- if (t == NULL_TREE)
- return t;
- if (TREE_CODE (t) == CONJ_CONSTR)
- return tsubst_conjunction (t, args, complain, in_decl);
- else if (TREE_CODE (t) == PRED_CONSTR)
- return tsubst_predicate_constraint (t, args, complain, in_decl);
- else
- gcc_unreachable ();
- return error_mark_node;
+ cp_unevaluated guard;
+ tree expr = EXCEPT_CONSTR_EXPR (t);
+ tree ret = tsubst_expr (expr, args, complain, in_decl, false);
+ if (ret == error_mark_node)
+ return error_mark_node;
+ return build_nt (EXCEPT_CONSTR, ret);
}
-namespace {
-
/* A subroutine of tsubst_constraint_variables. Register local
specializations for each of parameter in PARMS and its
corresponding substituted constraint variable in VARS.
Returns VARS. */
+
tree
declare_constraint_vars (tree parms, tree vars)
{
Note that the caller must establish a local specialization stack
prior to calling this function since this substitution will
declare the substituted parameters. */
+
tree
tsubst_constraint_variables (tree t, tree args,
tsubst_flags_t complain, tree in_decl)
return declare_constraint_vars (t, vars);
}
+/* Substitute ARGS into the parameterized constraint T. */
+
+tree
+tsubst_parameterized_constraint (tree t, tree args,
+ tsubst_flags_t complain, tree in_decl)
+{
+ local_specialization_stack stack;
+ tree vars = tsubst_constraint_variables (PARM_CONSTR_PARMS (t),
+ args, complain, in_decl);
+ if (vars == error_mark_node)
+ return error_mark_node;
+ tree expr = tsubst_constraint (PARM_CONSTR_OPERAND (t), args,
+ complain, in_decl);
+ if (expr == error_mark_node)
+ return error_mark_node;
+ return build_nt (PARM_CONSTR, vars, expr);
+}
+
/* Substitute ARGS into the simple requirement T. Note that
substitution may result in an ill-formed expression without
causing the program to be ill-formed. In such cases, the
requirement wraps an error_mark_node. */
+
inline tree
tsubst_simple_requirement (tree t, tree args,
tsubst_flags_t complain, tree in_decl)
return finish_nested_requirement (expr);
}
+/* Substitute ARGS into the requirement T. */
+
inline tree
tsubst_requirement (tree t, tree args, tsubst_flags_t complain, tree in_decl)
{
r = tree_cons (NULL_TREE, e, r);
t = TREE_CHAIN (t);
}
- return r;
+ /* Ensure that the order of constraints is the same as the original. */
+ return nreverse (r);
}
} /* namespace */
/* Substitute ARGS into the constraint information CI, producing a new
constraint record. */
+
tree
tsubst_constraint_info (tree t, tree args,
tsubst_flags_t complain, tree in_decl)
return build_constraints (tmpl_constr, decl_constr);
}
+/* Substitute ARGS into the constraint T. */
+
+tree
+tsubst_constraint (tree t, tree args, tsubst_flags_t complain, tree in_decl)
+{
+ if (t == NULL_TREE)
+ return t;
+ switch (TREE_CODE (t))
+ {
+ case PRED_CONSTR:
+ return tsubst_predicate_constraint (t, args, complain, in_decl);
+ case CHECK_CONSTR:
+ return tsubst_check_constraint (t, args, complain, in_decl);
+ case CONJ_CONSTR:
+ case DISJ_CONSTR:
+ return tsubst_logical_operator (t, args, complain, in_decl);
+ case PARM_CONSTR:
+ return tsubst_parameterized_constraint (t, args, complain, in_decl);
+ case EXPR_CONSTR:
+ return tsubst_expr_constr (t, args, complain, in_decl);
+ case TYPE_CONSTR:
+ return tsubst_type_constr (t, args, complain, in_decl);
+ case ICONV_CONSTR:
+ return tsubst_implicit_conversion_constr (t, args, complain, in_decl);
+ case DEDUCT_CONSTR:
+ return tsubst_argument_deduction_constr (t, args, complain, in_decl);
+ case EXCEPT_CONSTR:
+ return tsubst_exception_constr (t, args, complain, in_decl);
+ default:
+ gcc_unreachable ();
+ }
+ return error_mark_node;
+}
/*---------------------------------------------------------------------------
Constraint satisfaction
gen_elem_of_pack_expansion_instantiation will check that each element of
the expansion is satisfied. */
tree exprs = tsubst_pack_expansion (t, args, complain, in_decl);
+
if (exprs == error_mark_node)
return boolean_false_node;
- int n = TREE_VEC_LENGTH (exprs);
- for (int i = 0; i < n; ++i)
+ /* TODO: It might be better to normalize each expanded term
+ and evaluate them separately. That would provide better
+ opportunities for diagnostics. */
+ for (int i = 0; i < TREE_VEC_LENGTH (exprs); ++i)
if (TREE_VEC_ELT (exprs, i) != boolean_true_node)
return boolean_false_node;
return boolean_true_node;
satisfy_predicate_constraint (tree t, tree args,
tsubst_flags_t complain, tree in_decl)
{
- tree original = TREE_OPERAND (t, 0);
+ tree expr = TREE_OPERAND (t, 0);
/* We should never have a naked pack expansion in a predicate constraint. */
- gcc_assert (TREE_CODE (original) != EXPR_PACK_EXPANSION);
+ gcc_assert (TREE_CODE (expr) != EXPR_PACK_EXPANSION);
- tree expr = tsubst_expr (original, args, complain, in_decl, false);
+ /* If substitution into the expression fails, the constraint
+ is not satisfied. */
+ expr = tsubst_expr (expr, args, complain, in_decl, false);
if (expr == error_mark_node)
return boolean_false_node;
return boolean_false_node;
}
- tree value = cxx_constant_value (expr);
- return value;
+ return cxx_constant_value (expr);
+}
+
+/* A concept check constraint like C<CARGS> is satisfied if substituting ARGS
+ into CARGS succeeds and C is satisfied for the resulting arguments. */
+
+tree
+satisfy_check_constraint (tree t, tree args,
+ tsubst_flags_t complain, tree in_decl)
+{
+ tree decl = CHECK_CONSTR_CONCEPT (t);
+ tree tmpl = DECL_TI_TEMPLATE (decl);
+ tree cargs = CHECK_CONSTR_ARGS (t);
+
+ /* Instantiate the concept check arguments. */
+ tree targs = tsubst (cargs, args, tf_none, NULL_TREE);
+ if (targs == error_mark_node)
+ return boolean_false_node;
+
+ /* Search for a previous value. */
+ if (tree prev = lookup_concept_satisfaction (tmpl, targs))
+ return prev;
+
+ /* Expand the concept; failure here implies non-satisfaction. */
+ tree def = expand_concept (decl, targs);
+ if (def == error_mark_node)
+ return memoize_concept_satisfaction (tmpl, args, boolean_false_node);
+
+ /* Recursively satisfy the constraint. */
+ tree result = satisfy_constraint_1 (def, targs, complain, in_decl);
+ return memoize_concept_satisfaction (tmpl, targs, result);
}
/* Check an expression constraint. The constraint is satisfied if
return boolean_false_node;
if (!perform_deferred_access_checks (tf_none))
return boolean_false_node;
-
return boolean_true_node;
}
return boolean_false_node;
if (!perform_deferred_access_checks (complain))
return boolean_false_node;
-
return boolean_true_node;
}
{
tree t0 = satisfy_constraint_1 (TREE_OPERAND (t, 0), args, complain, in_decl);
if (t0 == boolean_false_node)
- return t0;
- tree t1 = satisfy_constraint_1 (TREE_OPERAND (t, 1), args, complain, in_decl);
- if (t1 == boolean_false_node)
- return t1;
- return boolean_true_node;
+ return boolean_false_node;
+ return satisfy_constraint_1 (TREE_OPERAND (t, 1), args, complain, in_decl);
}
/* Check that the disjunction of constraints is satisfied. Note
tree t0 = satisfy_constraint_1 (TREE_OPERAND (t, 0), args, complain, in_decl);
if (t0 == boolean_true_node)
return boolean_true_node;
- tree t1 = satisfy_constraint_1 (TREE_OPERAND (t, 1), args, complain, in_decl);
- if (t1 == boolean_true_node)
- return boolean_true_node;
- return boolean_false_node;
+ return satisfy_constraint_1 (TREE_OPERAND (t, 1), args, complain, in_decl);
}
/* Dispatch to an appropriate satisfaction routine depending on the
case PRED_CONSTR:
return satisfy_predicate_constraint (t, args, complain, in_decl);
+ case CHECK_CONSTR:
+ return satisfy_check_constraint (t, args, complain, in_decl);
+
case EXPR_CONSTR:
return satisfy_expression_constraint (t, args, complain, in_decl);
tree
satisfy_constraint (tree t, tree args)
{
+ auto_timevar time (TV_CONSTRAINT_SAT);
+
/* Turn off template processing. Constraint satisfaction only applies
- to non-dependent terms, so we want full checking here. */
- processing_template_decl_sentinel sentinel (true);
+ to non-dependent terms, so we want to ensure full checking here. */
+ processing_template_decl_sentinel proc (true);
+
/* Avoid early exit in tsubst and tsubst_copy from null args; since earlier
substitution was done with processing_template_decl forced on, there will
be expressions that still need semantic processing, possibly buried in
decltype or a template argument. */
if (args == NULL_TREE)
args = make_tree_vec (1);
+
return satisfy_constraint_1 (t, args, tf_none, NULL_TREE);
}
if (args && uses_template_parms (args))
return boolean_true_node;
- /* Invalid requirements cannot be satisfied. */
- if (!valid_constraints_p (ci))
- return boolean_false_node;
+ /* Check if we've seen a previous result. */
+ if (tree prev = lookup_constraint_satisfaction (ci, args))
+ return prev;
- return satisfy_constraint (CI_NORMALIZED_CONSTRAINTS (ci), args);
+ /* Actually test for satisfaction. */
+ tree result = satisfy_constraint (CI_ASSOCIATED_CONSTRAINTS (ci), args);
+ return memoize_constraint_satisfaction (ci, args, result);
}
} /* namespace */
evaluate_constraints (tree constr, tree args)
{
gcc_assert (constraint_p (constr));
- return satisfy_constraint (normalize_constraint (constr), args);
+ return satisfy_constraint (constr, args);
}
/* Evaluate the function concept FN by substituting its own args
tree
evaluate_function_concept (tree fn, tree args)
{
- ++processing_template_decl;
- /* We lift using DECL_TI_ARGS because we want to delay producing
- non-dependent expressions until we're doing satisfaction. We can't just
- go without any substitution because we need to lower the level of 'auto's
- in type deduction constraints. */
- tree constr = transform_expression (lift_function_definition
- (fn, DECL_TI_ARGS (fn)));
- --processing_template_decl;
+ tree constr = build_nt (CHECK_CONSTR, fn, args);
return satisfy_constraint (constr, args);
}
boolean_false_node otherwise. */
tree
-evaluate_variable_concept (tree decl, tree args)
+evaluate_variable_concept (tree var, tree args)
{
- ++processing_template_decl;
- tree constr = transform_expression (lift_variable_initializer
- (decl, DECL_TI_ARGS (decl)));
- --processing_template_decl;
+ tree constr = build_nt (CHECK_CONSTR, var, args);
return satisfy_constraint (constr, args);
}
tree
evaluate_constraint_expression (tree expr, tree args)
{
- ++processing_template_decl;
- tree constr = transform_expression (lift_expression (expr));
- --processing_template_decl;
+ tree constr = normalize_expression (expr);
return satisfy_constraint (constr, args);
}
} /* namespace */
-
/*---------------------------------------------------------------------------
Semantic analysis of requires-expressions
---------------------------------------------------------------------------*/
---------------------------------------------------------------------------*/
/* Returns true when the the constraints in A subsume those in B. */
+
bool
subsumes_constraints (tree a, tree b)
{
Returns 1 if A is more constrained than B, -1 if B is more constrained
than A, and 0 otherwise. */
+
int
more_constrained (tree d1, tree d2)
{
/* Returns true if D1 is at least as constrained as D2. That is, the
associated constraints of D1 subsume those of D2, or both declarations
are unconstrained. */
+
bool
at_least_as_constrained (tree d1, tree d2)
{
/*---------------------------------------------------------------------------
Constraint diagnostics
+
+FIXME: Normalize expressions into constraints before evaluating them.
+This should be the general pattern for all such diagnostics.
---------------------------------------------------------------------------*/
-/* The diagnosis of constraints performs a combination of
- normalization and satisfaction testing. We recursively
- walk through the conjunction (or disjunctions) of associated
- constraints, testing each sub-expression in turn.
+/* The number of detailed constraint failures. */
- We currently restrict diagnostics to just the top-level
- conjunctions within the associated constraints. A fully
- recursive walk is possible, but it can generate a lot
- of errors. */
+int constraint_errors = 0;
+/* Do not generate errors after diagnosing this number of constraint
+ failures.
-namespace {
+ FIXME: This is a really arbitrary number. Provide better control of
+ constraint diagnostics with a command line option. */
-void diagnose_expression (location_t, tree, tree);
-void diagnose_constraint (location_t, tree, tree);
+int constraint_thresh = 20;
-/* Diagnose a conjunction of constraints. */
-void
-diagnose_logical_operation (location_t loc, tree t, tree args)
+
+/* Returns true if we should elide the diagnostic for a constraint failure.
+ This is the case when the number of errors has exceeded the pre-configured
+ threshold. */
+
+inline bool
+elide_constraint_failure_p ()
+{
+ bool ret = constraint_thresh <= constraint_errors;
+ ++constraint_errors;
+ return ret;
+}
+
+/* Returns the number of undiagnosed errors. */
+
+inline int
+undiagnosed_constraint_failures ()
{
- diagnose_expression (loc, TREE_OPERAND (t, 0), args);
- diagnose_expression (loc, TREE_OPERAND (t, 0), args);
+ return constraint_errors - constraint_thresh;
}
-/* Determine if the trait expression T is satisfied by ARGS.
- Emit a precise diagnostic if it is not. */
+/* The diagnosis of constraints performs a combination of normalization
+ and satisfaction testing. We recursively walk through the conjunction or
+ disjunction of associated constraints, testing each sub-constraint in
+ turn. */
+
+namespace {
+
+void diagnose_constraint (location_t, tree, tree, tree);
+
+/* Emit a specific diagnostics for a failed trait. */
+
void
-diagnose_trait_expression (location_t loc, tree t, tree args)
+diagnose_trait_expression (location_t loc, tree, tree cur, tree args)
{
- if (constraint_expression_satisfied_p (t, args))
+ if (constraint_expression_satisfied_p (cur, args))
+ return;
+ if (elide_constraint_failure_p())
return;
- /* Rebuild the trait expression so we can diagnose the
- specific failure. */
+ tree expr = PRED_CONSTR_EXPR (cur);
++processing_template_decl;
- tree expr = tsubst_expr (t, args, tf_none, NULL_TREE, false);
+ expr = tsubst_expr (expr, args, tf_none, NULL_TREE, false);
--processing_template_decl;
tree t1 = TRAIT_EXPR_TYPE1 (expr);
tree t2 = TRAIT_EXPR_TYPE2 (expr);
- switch (TRAIT_EXPR_KIND (t))
+ switch (TRAIT_EXPR_KIND (expr))
{
case CPTK_HAS_NOTHROW_ASSIGN:
inform (loc, " %qT is not nothrow copy assignable", t1);
}
}
-/* Determine if the call expression T, when normalized as a constraint,
- is satisfied by ARGS.
+/* Diagnose the expression of a predicate constraint. */
- TODO: If T is refers to a concept, We could recursively analyze
- its definition to identify the exact failure, but that could
- emit a *lot* of error messages (defeating the purpose of
- improved diagnostics). Consider adding a flag to control the
- depth of diagnostics. */
void
-diagnose_call_expression (location_t loc, tree t, tree args)
+diagnose_other_expression (location_t loc, tree, tree cur, tree args)
{
- if (constraint_expression_satisfied_p (t, args))
+ if (constraint_expression_satisfied_p (cur, args))
return;
-
- /* Rebuild the expression for the purpose of diagnostics. */
- ++processing_template_decl;
- tree expr = tsubst_expr (t, args, tf_none, NULL_TREE, false);
- --processing_template_decl;
-
- /* If the function call is known to be a concept check, then
- diagnose it differently (i.e., we may recurse). */
- if (resolve_constraint_check (t))
- inform (loc, " concept %qE was not satisfied", expr);
- else
- inform (loc, " %qE evaluated to false", expr);
-}
-
-/* Determine if the template-id T, when normalized as a constraint
- is satisfied by ARGS. */
-void
-diagnose_template_id (location_t loc, tree t, tree args)
-{
- /* Check for invalid template-ids. */
- if (!variable_template_p (TREE_OPERAND (t, 0)))
- {
- inform (loc, " invalid constraint %qE", t);
- return;
- }
-
- if (constraint_expression_satisfied_p (t, args))
+ if (elide_constraint_failure_p())
return;
+ inform (loc, "%qE evaluated to false", cur);
+}
- /* Rebuild the expression for the purpose of diagnostics. */
- ++processing_template_decl;
- tree expr = tsubst_expr (t, args, tf_none, NULL_TREE, false);
- --processing_template_decl;
+/* Do our best to infer meaning from predicates. */
- tree var = DECL_TEMPLATE_RESULT (TREE_OPERAND (t, 0));
- if (DECL_DECLARED_CONCEPT_P (var))
- inform (loc, " concept %qE was not satisfied", expr);
+inline void
+diagnose_predicate_constraint (location_t loc, tree orig, tree cur, tree args)
+{
+ if (TREE_CODE (PRED_CONSTR_EXPR (cur)) == TRAIT_EXPR)
+ diagnose_trait_expression (loc, orig, cur, args);
else
- inform (loc, " %qE evaluated to false", expr);
+ diagnose_other_expression (loc, orig, cur, args);
}
-/* Determine if the requires-expression, when normalized as a
- constraint is satisfied by ARGS.
+/* Diagnose a failed pack expansion, possibly containing constraints. */
- TODO: Build sets of expressions, types, and constraints
- based on the requirements in T and emit specific diagnostics
- for those. */
void
-diagnose_requires_expression (location_t loc, tree t, tree args)
+diagnose_pack_expansion (location_t loc, tree, tree cur, tree args)
{
- if (constraint_expression_satisfied_p (t, args))
+ if (constraint_expression_satisfied_p (cur, args))
return;
- inform (loc, "requirements not satisfied");
-}
-
-void
-diagnose_pack_expansion (location_t loc, tree t, tree args)
-{
- if (constraint_expression_satisfied_p (t, args))
+ if (elide_constraint_failure_p())
return;
/* Make sure that we don't have naked packs that we don't expect. */
- if (!same_type_p (TREE_TYPE (t), boolean_type_node))
+ if (!same_type_p (TREE_TYPE (cur), boolean_type_node))
{
- inform (loc, "invalid pack expansion in constraint %qE", t);
+ inform (loc, "invalid pack expansion in constraint %qE", cur);
return;
}
- inform (loc, " in the expansion of %qE", t);
+ inform (loc, "in the expansion of %qE", cur);
/* Get the vector of expanded arguments. Note that n must not
be 0 since this constraint is not satisfied. */
++processing_template_decl;
- tree exprs = tsubst_pack_expansion (t, args, tf_none, NULL_TREE);
+ tree exprs = tsubst_pack_expansion (cur, args, tf_none, NULL_TREE);
--processing_template_decl;
if (exprs == error_mark_node)
{
}
}
-/* Diagnose an expression that would be characterized as
- a predicate constraint. */
+/* Diagnose a potentially unsatisfied concept check constraint DECL<CARGS>.
+ Parameters are as for diagnose_constraint. */
+
void
-diagnose_other_expression (location_t loc, tree t, tree args)
+diagnose_check_constraint (location_t loc, tree orig, tree cur, tree args)
{
- if (constraint_expression_satisfied_p (t, args))
+ if (constraints_satisfied_p (cur, args))
return;
- inform (loc, " %qE evaluated to false", t);
+
+ tree decl = CHECK_CONSTR_CONCEPT (cur);
+ tree cargs = CHECK_CONSTR_ARGS (cur);
+ tree tmpl = DECL_TI_TEMPLATE (decl);
+ tree check = build_nt (CHECK_CONSTR, decl, cargs);
+
+ /* Instantiate the concept check arguments. */
+ tree targs = tsubst (cargs, args, tf_none, NULL_TREE);
+ if (targs == error_mark_node)
+ {
+ if (elide_constraint_failure_p ())
+ return;
+ inform (loc, "invalid use of the concept %qE", check);
+ tsubst (cargs, args, tf_warning_or_error, NULL_TREE);
+ return;
+ }
+
+ tree sub = build_tree_list (tmpl, targs);
+ /* Update to the expanded definitions. */
+ cur = expand_concept (decl, targs);
+ if (cur == error_mark_node)
+ {
+ if (elide_constraint_failure_p ())
+ return;
+ inform (loc, "in the expansion of concept %qE %S", check, sub);
+ cur = get_concept_definition (decl);
+ tsubst_expr (cur, targs, tf_warning_or_error, NULL_TREE, false);
+ return;
+ }
+
+ orig = get_concept_definition (CHECK_CONSTR_CONCEPT (orig));
+ orig = normalize_expression (orig);
+
+ location_t dloc = DECL_SOURCE_LOCATION (decl);
+ inform (dloc, "within %qS", sub);
+ diagnose_constraint (dloc, orig, cur, targs);
}
+/* Diagnose a potentially unsatisfied conjunction or disjunction. Parameters
+ are as for diagnose_constraint. */
+
void
-diagnose_expression (location_t loc, tree t, tree args)
+diagnose_logical_constraint (location_t loc, tree orig, tree cur, tree args)
{
- switch (TREE_CODE (t))
- {
- case TRUTH_ANDIF_EXPR:
- diagnose_logical_operation (loc, t, args);
- break;
+ tree t0 = TREE_OPERAND (cur, 0);
+ tree t1 = TREE_OPERAND (cur, 1);
+ if (!constraints_satisfied_p (t0, args))
+ diagnose_constraint (loc, TREE_OPERAND (orig, 0), t0, args);
+ else if (TREE_CODE (orig) == TRUTH_ORIF_EXPR)
+ return;
+ if (!constraints_satisfied_p (t1, args))
+ diagnose_constraint (loc, TREE_OPERAND (orig, 1), t1, args);
+}
- case TRUTH_ORIF_EXPR:
- diagnose_logical_operation (loc, t, args);
- break;
+/* Diagnose a potential expression constraint failure. */
- case CALL_EXPR:
- diagnose_call_expression (loc, t, args);
- break;
+void
+diagnose_expression_constraint (location_t loc, tree orig, tree cur, tree args)
+{
+ if (constraints_satisfied_p (cur, args))
+ return;
+ if (elide_constraint_failure_p())
+ return;
- case TEMPLATE_ID_EXPR:
- diagnose_template_id (loc, t, args);
- break;
+ tree expr = EXPR_CONSTR_EXPR (orig);
+ inform (loc, "the required expression %qE would be ill-formed", expr);
- case REQUIRES_EXPR:
- diagnose_requires_expression (loc, t, args);
- break;
+ // TODO: We should have a flag that controls this substitution.
+ // I'm finding it very useful for resolving concept check errors.
- case TRAIT_EXPR:
- diagnose_trait_expression (loc, t, args);
- break;
+ // inform (input_location, "==== BEGIN DUMP ====");
+ // tsubst_expr (EXPR_CONSTR_EXPR (orig), args, tf_warning_or_error, NULL_TREE, false);
+ // inform (input_location, "==== END DUMP ====");
+}
- case EXPR_PACK_EXPANSION:
- diagnose_pack_expansion (loc, t, args);
- break;
+/* Diagnose a potentially failed type constraint. */
- default:
- diagnose_other_expression (loc, t, args);
- break;
+void
+diagnose_type_constraint (location_t loc, tree orig, tree cur, tree args)
+{
+ if (constraints_satisfied_p (cur, args))
+ return;
+ if (elide_constraint_failure_p())
+ return;
+
+ tree type = TYPE_CONSTR_TYPE (orig);
+ inform (loc, "the required type %qT would be ill-formed", type);
+}
+
+/* Diagnose a potentially unsatisfied conversion constraint. */
+
+void
+diagnose_implicit_conversion_constraint (location_t loc, tree orig, tree cur,
+ tree args)
+{
+ if (constraints_satisfied_p (cur, args))
+ return;
+
+ /* The expression and type will previously have been substituted into,
+ and therefore may already be an error. Also, we will have already
+ diagnosed substitution failures into an expression since this must be
+ part of a compound requirement. */
+ tree expr = ICONV_CONSTR_EXPR (cur);
+ if (error_operand_p (expr))
+ return;
+
+ /* Don't elide a previously diagnosed failure. */
+ if (elide_constraint_failure_p())
+ return;
+
+ tree type = ICONV_CONSTR_TYPE (cur);
+ if (error_operand_p (type))
+ {
+ inform (loc, "substitution into type %qT failed",
+ ICONV_CONSTR_TYPE (orig));
+ return;
}
+
+ inform(loc, "%qE is not implicitly convertible to %qT", expr, type);
}
-inline void
-diagnose_predicate_constraint (location_t loc, tree t, tree args)
+/* Diagnose an argument deduction constraint. */
+
+void
+diagnose_argument_deduction_constraint (location_t loc, tree orig, tree cur,
+ tree args)
+{
+ if (constraints_satisfied_p (cur, args))
+ return;
+
+ /* The expression and type will previously have been substituted into,
+ and therefore may already be an error. Also, we will have already
+ diagnosed substution failures into an expression since this must be
+ part of a compound requirement. */
+ tree expr = DEDUCT_CONSTR_EXPR (cur);
+ if (error_operand_p (expr))
+ return;
+
+ /* Don't elide a previously diagnosed failure. */
+ if (elide_constraint_failure_p ())
+ return;
+
+ tree pattern = DEDUCT_CONSTR_PATTERN (cur);
+ if (error_operand_p (pattern))
+ {
+ inform (loc, "substitution into type %qT failed",
+ DEDUCT_CONSTR_PATTERN (orig));
+ return;
+ }
+
+ inform (loc, "unable to deduce placeholder type %qT from %qE",
+ pattern, expr);
+}
+
+/* Diagnose an exception constraint. */
+
+void
+diagnose_exception_constraint (location_t loc, tree orig, tree cur, tree args)
{
- diagnose_expression (loc, PRED_CONSTR_EXPR (t), args);
+ if (constraints_satisfied_p (cur, args))
+ return;
+ if (elide_constraint_failure_p ())
+ return;
+
+ /* Rebuild a noexcept expression. */
+ tree expr = EXCEPT_CONSTR_EXPR (cur);
+ if (error_operand_p (expr))
+ return;
+
+ inform (loc, "%qE evaluated to false", EXCEPT_CONSTR_EXPR (orig));
}
-inline void
-diagnose_conjunction (location_t loc, tree t, tree args)
+/* Diagnose a potentially unsatisfied parameterized constraint. */
+
+void
+diagnose_parameterized_constraint (location_t loc, tree orig, tree cur,
+ tree args)
{
- diagnose_constraint (loc, TREE_OPERAND (t, 0), args);
- diagnose_constraint (loc, TREE_OPERAND (t, 1), args);
+ if (constraints_satisfied_p (cur, args))
+ return;
+
+ local_specialization_stack stack;
+ tree parms = PARM_CONSTR_PARMS (cur);
+ tree vars = tsubst_constraint_variables (parms, args, tf_warning_or_error,
+ NULL_TREE);
+ if (vars == error_mark_node)
+ {
+ if (elide_constraint_failure_p ())
+ return;
+
+ /* TODO: Check which variable failed and use orig to diagnose
+ that substitution error. */
+ inform (loc, "failed to instantiate constraint variables");
+ return;
+ }
+
+ /* TODO: It would be better write these in a list. */
+ while (vars)
+ {
+ inform (loc, " with %q#D", vars);
+ vars = TREE_CHAIN (vars);
+ }
+ orig = PARM_CONSTR_OPERAND (orig);
+ cur = PARM_CONSTR_OPERAND (cur);
+ return diagnose_constraint (loc, orig, cur, args);
}
-/* Diagnose the constraint T for the given ARGS. This is only
- ever invoked on the associated constraints, so we can
- only have conjunctions of predicate constraints. */
+/* Diagnose the constraint CUR for the given ARGS. This is only ever invoked
+ on the associated constraints, so we can only have conjunctions of
+ predicate constraints. The ORIGinal (dependent) constructs follow
+ the current constraints to enable better diagnostics. Note that ORIG
+ and CUR must be the same kinds of node, except when CUR is an error. */
+
void
-diagnose_constraint (location_t loc, tree t, tree args)
+diagnose_constraint (location_t loc, tree orig, tree cur, tree args)
{
- switch (TREE_CODE (t))
+ switch (TREE_CODE (cur))
{
+ case EXPR_CONSTR:
+ diagnose_expression_constraint (loc, orig, cur, args);
+ break;
+
+ case TYPE_CONSTR:
+ diagnose_type_constraint (loc, orig, cur, args);
+ break;
+
+ case ICONV_CONSTR:
+ diagnose_implicit_conversion_constraint (loc, orig, cur, args);
+ break;
+
+ case DEDUCT_CONSTR:
+ diagnose_argument_deduction_constraint (loc, orig, cur, args);
+ break;
+
+ case EXCEPT_CONSTR:
+ diagnose_exception_constraint (loc, orig, cur, args);
+ break;
+
case CONJ_CONSTR:
- diagnose_conjunction (loc, t, args);
+ case DISJ_CONSTR:
+ diagnose_logical_constraint (loc, orig, cur, args);
break;
case PRED_CONSTR:
- diagnose_predicate_constraint (loc, t, args);
+ diagnose_predicate_constraint (loc, orig, cur, args);
+ break;
+
+ case PARM_CONSTR:
+ diagnose_parameterized_constraint (loc, orig, cur, args);
+ break;
+
+ case CHECK_CONSTR:
+ diagnose_check_constraint (loc, orig, cur, args);
+ break;
+
+ case EXPR_PACK_EXPANSION:
+ diagnose_pack_expansion (loc, orig, cur, args);
+ break;
+
+ case ERROR_MARK:
+ /* TODO: Can we improve the diagnostic with the original? */
+ inform (input_location, "ill-formed constraint");
break;
default:
args = TI_ARGS (ti);
}
- /* Check that the constraints are actually valid. */
- tree ci = get_constraints (decl);
- if (!valid_constraints_p (ci))
- {
- inform (loc, " invalid constraints");
- return;
- }
-
/* Recursively diagnose the associated constraints. */
- diagnose_constraint (loc, CI_ASSOCIATED_CONSTRAINTS (ci), args);
+ tree ci = get_constraints (decl);
+ tree t = CI_ASSOCIATED_CONSTRAINTS (ci);
+ diagnose_constraint (loc, t, t, args);
}
} // namespace
void
diagnose_constraints (location_t loc, tree t, tree args)
{
+ constraint_errors = 0;
+
if (constraint_p (t))
- diagnose_constraint (loc, t, args);
- else
+ diagnose_constraint (loc, t, t, args);
+ else if (DECL_P (t))
diagnose_declaration_constraints (loc, t, args);
+ else
+ gcc_unreachable ();
+
+ /* Note the number of elided failures. */
+ int n = undiagnosed_constraint_failures ();
+ if (n > 0)
+ inform (loc, "... and %d more constraint errors not shown", n);
}
init, VEC_INIT_EXPR_VALUE_INIT (*expr_p),
from_array,
tf_warning_or_error);
+ hash_set<tree> pset;
+ cp_walk_tree (expr_p, cp_fold_r, &pset, NULL);
cp_genericize_tree (expr_p);
ret = GS_OK;
input_location = loc;
{
tree d = DECL_EXPR_DECL (stmt);
if (TREE_CODE (d) == VAR_DECL)
- gcc_assert (CP_DECL_THREAD_LOCAL_P (d) == DECL_THREAD_LOCAL_P (d));
+ {
+ gcc_assert (CP_DECL_THREAD_LOCAL_P (d) == DECL_THREAD_LOCAL_P (d));
+ /* User var initializers should be genericized during containing
+ BIND_EXPR genericization when walk_tree walks DECL_INITIAL
+ of BIND_EXPR_VARS. Artificial temporaries might not be
+ mentioned there though, so walk them now. */
+ if (DECL_ARTIFICIAL (d) && !TREE_STATIC (d) && DECL_INITIAL (d))
+ cp_walk_tree (&DECL_INITIAL (d), cp_genericize_r, data, NULL);
+ }
}
else if (TREE_CODE (stmt) == OMP_PARALLEL
|| TREE_CODE (stmt) == OMP_TASK
if (DECL_CLONED_FUNCTION_P (fndecl))
return;
+ /* Allow cp_genericize calls to be nested. */
+ tree save_bc_label[2];
+ save_bc_label[bc_break] = bc_label[bc_break];
+ save_bc_label[bc_continue] = bc_label[bc_continue];
+ bc_label[bc_break] = NULL_TREE;
+ bc_label[bc_continue] = NULL_TREE;
+
/* Expand all the array notations here. */
if (flag_cilkplus
&& contains_array_notation_expr (DECL_SAVED_TREE (fndecl)))
gcc_assert (bc_label[bc_break] == NULL);
gcc_assert (bc_label[bc_continue] == NULL);
+ bc_label[bc_break] = save_bc_label[bc_break];
+ bc_label[bc_continue] = save_bc_label[bc_continue];
}
\f
/* Build code to apply FN to each member of ARG1 and ARG2. FN may be
PRED_CONSTR_EXPR has the expression to be evaluated. */
DEFTREECODE (PRED_CONSTR, "pred_constr", tcc_expression, 1)
+/* A check constraint represents the checking of a concept
+ C. It has two operands: the template defining the concept
+ and a sequence of template arguments.
+
+ CHECK_CONSTR_CONCEPT has the concept definition
+ CHECK_CONSTR_ARGUMENTS are the template arguments */
+DEFTREECODE (CHECK_CONSTR, "check_constr", tcc_expression, 2)
+
/* An expression constraint determines the validity of a expression E.
EXPR_CONST_EXPR has the expression being validated. */
T must contain at least one place holder.
DEDUCT_CONSTR_EXPR has the expression E
- DEDUCT_CONSTR_PATTERN has the type patter T.
+ DEDUCT_CONSTR_PATTERN has the type pattern T.
DEDUCT_CONSTR_PLACEHOLDERS has the list of placeholder nodes in T. */
DEFTREECODE (DEDUCT_CONSTR, "deduct_constr", tcc_expression, 3)
TARGET_EXPR_DIRECT_INIT_P (in TARGET_EXPR)
FNDECL_USED_AUTO (in FUNCTION_DECL)
DECLTYPE_FOR_LAMBDA_PROXY (in DECLTYPE_TYPE)
- REF_PARENTHESIZED_P (in COMPONENT_REF, INDIRECT_REF)
+ REF_PARENTHESIZED_P (in COMPONENT_REF, INDIRECT_REF, SCOPE_REF)
AGGR_INIT_ZERO_FIRST (in AGGR_INIT_EXPR)
CONSTRUCTOR_MUTABLE_POISON (in CONSTRUCTOR)
3: (TREE_REFERENCE_EXPR) (in NON_LVALUE_EXPR) (commented-out).
// - a constraint expression introduced by a function declarator
// - the associated constraints, which are the conjunction of those,
// and used for declaration matching
-// - the cached normalized associated constraints which are used
-// to support satisfaction and subsumption.
-// - assumptions which is the result of decomposing the normalized
-// constraints.
//
// The template and declarator requirements are kept to support pretty
// printing constrained declarations.
tree template_reqs;
tree declarator_reqs;
tree associated_constr;
- tree normalized_constr;
- tree assumptions;
};
// Require that pointer P is non-null before returning.
#define CI_ASSOCIATED_CONSTRAINTS(NODE) \
check_constraint_info (check_nonnull(NODE))->associated_constr
-// The normalized associated constraints.
-#define CI_NORMALIZED_CONSTRAINTS(NODE) \
- check_constraint_info (check_nonnull(NODE))->normalized_constr
-
-// Get the set of assumptions associated with the constraint info node.
-#define CI_ASSUMPTIONS(NODE) \
- check_constraint_info (check_nonnull(NODE))->assumptions
-
// Access the logical constraints on the template parameters introduced
// at a given template parameter list level indicated by NODE.
#define TEMPLATE_PARMS_CONSTRAINTS(NODE) \
#define PRED_CONSTR_EXPR(NODE) \
TREE_OPERAND (TREE_CHECK (NODE, PRED_CONSTR), 0)
+/* The concept of a concept check. */
+#define CHECK_CONSTR_CONCEPT(NODE) \
+ TREE_OPERAND (TREE_CHECK (NODE, CHECK_CONSTR), 0)
+
+/* The template arguments of a concept check. */
+#define CHECK_CONSTR_ARGS(NODE) \
+ TREE_OPERAND (TREE_CHECK (NODE, CHECK_CONSTR), 1)
+
/* The expression validated by the predicate constraint. */
#define EXPR_CONSTR_EXPR(NODE) \
TREE_OPERAND (TREE_CHECK (NODE, EXPR_CONSTR), 0)
TREE_CHECK2 (NODE, BINARY_LEFT_FOLD_EXPR, BINARY_RIGHT_FOLD_EXPR)
/* True if NODE is UNARY_FOLD_EXPR or a BINARY_FOLD_EXPR */
-#define FOLD_EXPR_P(NODE) \
- TREE_CODE (NODE) == UNARY_LEFT_FOLD_EXPR \
- || TREE_CODE (NODE) == UNARY_RIGHT_FOLD_EXPR \
- || TREE_CODE (NODE) == BINARY_LEFT_FOLD_EXPR \
- || TREE_CODE (NODE) == BINARY_RIGHT_FOLD_EXPR
+#define FOLD_EXPR_P(NODE) \
+ (TREE_CODE (NODE) == UNARY_LEFT_FOLD_EXPR \
+ || TREE_CODE (NODE) == UNARY_RIGHT_FOLD_EXPR \
+ || TREE_CODE (NODE) == BINARY_LEFT_FOLD_EXPR \
+ || TREE_CODE (NODE) == BINARY_RIGHT_FOLD_EXPR)
/* True when NODE is a fold over a compound assignment operator. */
#define FOLD_EXPR_MODIFY_P(NODE) \
#define PAREN_STRING_LITERAL_P(NODE) \
TREE_LANG_FLAG_0 (STRING_CST_CHECK (NODE))
-/* Indicates whether a COMPONENT_REF has been parenthesized, or an
- INDIRECT_REF comes from parenthesizing a _DECL. Currently only set
- some of the time in C++14 mode. */
+/* Indicates whether a COMPONENT_REF or a SCOPE_REF has been parenthesized, or
+ an INDIRECT_REF comes from parenthesizing a _DECL. Currently only set some
+ of the time in C++14 mode. */
#define REF_PARENTHESIZED_P(NODE) \
- TREE_LANG_FLAG_2 (TREE_CHECK2 ((NODE), COMPONENT_REF, INDIRECT_REF))
+ TREE_LANG_FLAG_2 (TREE_CHECK3 ((NODE), COMPONENT_REF, INDIRECT_REF, SCOPE_REF))
/* Nonzero if this AGGR_INIT_EXPR provides for initialization via a
constructor call, rather than an ordinary function call. */
extern tree get_pattern_parm (tree, tree);
extern int comp_template_args (tree, tree, tree * = NULL,
tree * = NULL);
+extern int template_args_equal (tree, tree);
extern tree maybe_process_partial_specialization (tree);
extern tree most_specialized_instantiation (tree);
extern void print_candidates (tree);
/* in constraint.cc */
extern void init_constraint_processing ();
extern bool constraint_p (tree);
-extern tree make_predicate_constraint (tree);
extern tree conjoin_constraints (tree, tree);
extern tree conjoin_constraints (tree);
-extern bool valid_constraints_p (tree);
extern tree get_constraints (tree);
extern void set_constraints (tree, tree);
extern void remove_constraints (tree);
extern tree tsubst_constraint (tree, tree, tsubst_flags_t, tree);
extern tree tsubst_constraint_info (tree, tree, tsubst_flags_t, tree);
extern bool function_concept_check_p (tree);
-
+extern tree normalize_expression (tree);
+extern tree expand_concept (tree, tree);
+extern bool expanding_concept ();
extern tree evaluate_constraints (tree, tree);
extern tree evaluate_function_concept (tree, tree);
extern tree evaluate_variable_concept (tree, tree);
extern tree evaluate_constraint_expression (tree, tree);
extern bool constraints_satisfied_p (tree);
extern bool constraints_satisfied_p (tree, tree);
+extern tree lookup_constraint_satisfaction (tree, tree);
+extern tree memoize_constraint_satisfaction (tree, tree, tree);
+extern tree lookup_concept_satisfaction (tree, tree);
+extern tree memoize_concept_satisfaction (tree, tree, tree);
+extern tree get_concept_expansion (tree, tree);
+extern tree save_concept_expansion (tree, tree, tree);
+extern bool* lookup_subsumption_result (tree, tree);
+extern bool save_subsumption_result (tree, tree, bool);
extern bool equivalent_constraints (tree, tree);
extern bool equivalently_constrained (tree, tree);
extern void diagnose_constraints (location_t, tree, tree);
/* in logic.cc */
-extern tree decompose_assumptions (tree);
extern tree decompose_conclusions (tree);
extern bool subsumes (tree, tree);
static void pp_cxx_template_parameter (cxx_pretty_printer *, tree);
static void pp_cxx_cast_expression (cxx_pretty_printer *, tree);
static void pp_cxx_typeid_expression (cxx_pretty_printer *, tree);
+static void pp_cxx_unary_left_fold_expression (cxx_pretty_printer *, tree);
+static void pp_cxx_unary_right_fold_expression (cxx_pretty_printer *, tree);
+static void pp_cxx_binary_fold_expression (cxx_pretty_printer *, tree);
\f
static inline void
pp_cxx_ws_string (this, "...");
break;
+ case UNARY_LEFT_FOLD_EXPR:
+ pp_cxx_unary_left_fold_expression (this, t);
+ break;
+
+ case UNARY_RIGHT_FOLD_EXPR:
+ pp_cxx_unary_right_fold_expression (this, t);
+ break;
+
+ case BINARY_LEFT_FOLD_EXPR:
+ case BINARY_RIGHT_FOLD_EXPR:
+ pp_cxx_binary_fold_expression (this, t);
+ break;
+
case TEMPLATE_ID_EXPR:
pp_cxx_template_id (this, t);
break;
break;
case PRED_CONSTR:
+ case CHECK_CONSTR:
case EXPR_CONSTR:
case TYPE_CONSTR:
case ICONV_CONSTR:
pp_cxx_constrained_type_spec (cxx_pretty_printer *pp, tree c)
{
tree t, a;
+ if (c == error_mark_node)
+ {
+ pp_cxx_ws_string(pp, "<unsatisfied-constrained-placeholder>");
+ return;
+ }
placeholder_extract_concept_and_args (c, t, a);
pp->id_expression (t);
if (TREE_VEC_LENGTH (a) > 1)
pp_cxx_right_paren (pp);
}
+static char const*
+get_fold_operator (tree t)
+{
+ int op = int_cst_value (FOLD_EXPR_OP (t));
+ if (FOLD_EXPR_MODIFY_P (t))
+ {
+ switch (op)
+ {
+ case NOP_EXPR: return "=";
+ case PLUS_EXPR: return "+=";
+ case MINUS_EXPR: return "-=";
+ case MULT_EXPR: return "*=";
+ case TRUNC_DIV_EXPR: return "/=";
+ case TRUNC_MOD_EXPR: return "%=";
+ case BIT_XOR_EXPR: return "^=";
+ case BIT_AND_EXPR: return "&=";
+ case BIT_IOR_EXPR: return "|=";
+ case LSHIFT_EXPR: return "<<=";
+ case RSHIFT_EXPR: return ">>=";
+ default: gcc_unreachable ();
+ }
+ }
+ else
+ {
+ switch (op)
+ {
+ case PLUS_EXPR: return "+";
+ case MINUS_EXPR: return "-";
+ case MULT_EXPR: return "*";
+ case TRUNC_DIV_EXPR: return "/";
+ case TRUNC_MOD_EXPR: return "%";
+ case BIT_XOR_EXPR: return "^";
+ case BIT_AND_EXPR: return "&";
+ case BIT_IOR_EXPR: return "|";
+ case LSHIFT_EXPR: return "<<";
+ case RSHIFT_EXPR: return ">>";
+ case EQ_EXPR: return "==";
+ case NE_EXPR: return "!=";
+ case LT_EXPR: return "<";
+ case GT_EXPR: return ">";
+ case LE_EXPR: return "<=";
+ case GE_EXPR: return ">=";
+ case TRUTH_ANDIF_EXPR: return "&&";
+ case TRUTH_ORIF_EXPR: return "||";
+ case MEMBER_REF: return "->*";
+ case DOTSTAR_EXPR: return ".*";
+ case OFFSET_REF: return ".*";
+ default: return ","; /* FIXME: Not the right default. */
+ }
+ }
+}
+
+void
+pp_cxx_unary_left_fold_expression (cxx_pretty_printer *pp, tree t)
+{
+ char const* op = get_fold_operator (t);
+ tree expr = PACK_EXPANSION_PATTERN (FOLD_EXPR_PACK (t));
+ pp_cxx_left_paren (pp);
+ pp_cxx_ws_string (pp, "...");
+ pp_cxx_ws_string (pp, op);
+ pp->expression (expr);
+ pp_cxx_right_paren (pp);
+}
+
+void
+pp_cxx_unary_right_fold_expression (cxx_pretty_printer *pp, tree t)
+{
+ char const* op = get_fold_operator (t);
+ tree expr = PACK_EXPANSION_PATTERN (FOLD_EXPR_PACK (t));
+ pp_cxx_left_paren (pp);
+ pp->expression (expr);
+ pp_space (pp);
+ pp_cxx_ws_string (pp, op);
+ pp_cxx_ws_string (pp, "...");
+ pp_cxx_right_paren (pp);
+}
+
+void
+pp_cxx_binary_fold_expression (cxx_pretty_printer *pp, tree t)
+{
+ char const* op = get_fold_operator (t);
+ tree t1 = TREE_OPERAND (t, 1);
+ tree t2 = TREE_OPERAND (t, 2);
+ if (t1 == FOLD_EXPR_PACK (t))
+ t1 = PACK_EXPANSION_PATTERN (t1);
+ else
+ t2 = PACK_EXPANSION_PATTERN (t2);
+ pp_cxx_left_paren (pp);
+ pp->expression (t1);
+ pp_cxx_ws_string (pp, op);
+ pp_cxx_ws_string (pp, "...");
+ pp_cxx_ws_string (pp, op);
+ pp->expression (t2);
+ pp_cxx_right_paren (pp);
+}
+
void
pp_cxx_trait_expression (cxx_pretty_printer *pp, tree t)
{
pp_cxx_ws_string (pp, "->");
pp->type_id (type);
}
+ pp_cxx_semicolon (pp);
}
/* nested requirement:
void
pp_cxx_predicate_constraint (cxx_pretty_printer *pp, tree t)
{
- pp_string (pp, "predicate");
- pp_left_paren (pp);
pp->expression (TREE_OPERAND (t, 0));
- pp_right_paren (pp);
+}
+
+void
+pp_cxx_check_constraint (cxx_pretty_printer *pp, tree t)
+{
+ tree decl = CHECK_CONSTR_CONCEPT (t);
+ tree tmpl = DECL_TI_TEMPLATE (decl);
+ tree args = CHECK_CONSTR_ARGS (t);
+ tree id = build_nt (TEMPLATE_ID_EXPR, tmpl, args);
+
+ if (TREE_CODE (decl) == VAR_DECL)
+ pp->expression (id);
+ else if (TREE_CODE (decl) == FUNCTION_DECL)
+ {
+ tree call = build_vl_exp (CALL_EXPR, 2);
+ TREE_OPERAND (call, 0) = integer_two_node;
+ TREE_OPERAND (call, 1) = id;
+ pp->expression (call);
+ }
+ else
+ gcc_unreachable ();
}
void
pp_cxx_expression_constraint (cxx_pretty_printer *pp, tree t)
{
- pp_string (pp, "valid_expr");
- pp_left_paren (pp);
+ pp_string (pp, "<valid-expression ");
+ pp_cxx_left_paren (pp);
pp->expression (TREE_OPERAND (t, 0));
- pp_right_paren (pp);
+ pp_cxx_right_paren (pp);
+ pp_string (pp, ">");
}
void
pp_cxx_type_constraint (cxx_pretty_printer *pp, tree t)
{
- pp_string (pp, "valid_type");
- pp_left_paren (pp);
+ pp_string (pp, "<valid-type ");
pp->type_id (TREE_OPERAND (t, 0));
- pp_right_paren (pp);
+ pp_string (pp, ">");
}
void
pp_cxx_implicit_conversion_constraint (cxx_pretty_printer *pp, tree t)
{
- pp_string (pp, "convertible");
- pp_left_paren (pp);
+ pp_string (pp, "<implicitly-conversion ");
+ pp_cxx_left_paren (pp);
pp->expression (ICONV_CONSTR_EXPR (t));
- pp_cxx_separate_with (pp, ',');
- pp->expression (ICONV_CONSTR_TYPE (t));
- pp_right_paren (pp);
+ pp_cxx_right_paren (pp);
+ pp_cxx_ws_string (pp, "to");
+ pp->type_id (ICONV_CONSTR_TYPE (t));
+ pp_string (pp, ">");
}
void
pp_cxx_argument_deduction_constraint (cxx_pretty_printer *pp, tree t)
{
- pp_string (pp, "deducible");
- pp_left_paren (pp);
+ pp_string (pp, "<argument-deduction ");
+ pp_cxx_left_paren (pp);
pp->expression (DEDUCT_CONSTR_EXPR (t));
- pp_cxx_separate_with (pp, ',');
+ pp_cxx_right_paren (pp);
+ pp_cxx_ws_string (pp, "as");
pp->expression (DEDUCT_CONSTR_PATTERN (t));
- pp_right_paren (pp);
+ pp_string (pp, ">");
}
void
pp_cxx_exception_constraint (cxx_pretty_printer *pp, tree t)
{
pp_cxx_ws_string (pp, "noexcept");
- pp_left_paren (pp);
+ pp_cxx_whitespace (pp);
+ pp_cxx_left_paren (pp);
pp->expression (TREE_OPERAND (t, 0));
- pp_right_paren (pp);
+ pp_cxx_right_paren (pp);
}
void
pp_cxx_parameterized_constraint (cxx_pretty_printer *pp, tree t)
{
pp_left_paren (pp);
- pp_string (pp, "forall");
+ pp_string (pp, "<requires ");
if (tree parms = PARM_CONSTR_PARMS (t))
{
- if (parms)
pp_cxx_parameter_declaration_clause (pp, parms);
pp_cxx_whitespace (pp);
}
pp_cxx_constraint (pp, PARM_CONSTR_OPERAND (t));
- pp_right_paren (pp);
+ pp_string (pp, ">");
}
void
pp_cxx_predicate_constraint (pp, t);
break;
+ case CHECK_CONSTR:
+ pp_cxx_check_constraint (pp, t);
+ break;
+
case EXPR_CONSTR:
pp_cxx_expression_constraint (pp, t);
break;
pp_cxx_disjunction (pp, t);
break;
+ case EXPR_PACK_EXPANSION:
+ pp->expression (TREE_OPERAND (t, 0));
+ break;
+
default:
gcc_unreachable ();
}
}
}
- warning (OPT_Wmissing_braces, "missing braces around initializer for %qT",
- type);
+ if (complain & tf_warning)
+ warning (OPT_Wmissing_braces,
+ "missing braces around initializer for %qT",
+ type);
}
/* Dispatch to specialized routines. */
/* Adjust the required expression into a constraint. */
if (decl_reqs)
- decl_reqs = make_predicate_constraint (decl_reqs);
+ decl_reqs = normalize_expression (decl_reqs);
tree ci = build_constraints (tmpl_reqs, decl_reqs);
set_constraints (decl, ci);
{
if (VAR_P (t)
&& DECL_DECLARED_CONSTEXPR_P (t))
- pp_cxx_ws_string (pp, "constexpr");
+ {
+ if (DECL_DECLARED_CONCEPT_P (t))
+ pp_cxx_ws_string (pp, "concept");
+ else
+ pp_cxx_ws_string (pp, "constexpr");
+ }
dump_type_prefix (pp, type, flags & ~TFF_UNQUALIFIED_NAME);
pp_maybe_space (pp);
}
if (TEMPLATE_TYPE_PARAMETER_PACK (TREE_TYPE (t)))
pp_cxx_ws_string (pp, "...");
}
+
+ /* Only print the requirements if we're also printing
+ the template header. */
+ if (flag_concepts)
+ if (tree ci = get_constraints (t))
+ if (check_constraint_info (ci))
+ if (tree reqs = CI_TEMPLATE_REQS (ci))
+ {
+ pp_cxx_requires_clause (pp, reqs);
+ pp_cxx_whitespace (pp);
+ }
}
- if (flag_concepts)
- if (tree ci = get_constraints (t))
- if (check_constraint_info (ci))
- if (tree reqs = CI_TEMPLATE_REQS (ci))
- {
- pp_cxx_requires_clause (pp, reqs);
- pp_cxx_whitespace (pp);
- }
if (DECL_CLASS_TEMPLATE_P (t))
dump_type (pp, TREE_TYPE (t),
pp_cxx_ws_string (pp, "virtual");
if (DECL_DECLARED_CONSTEXPR_P (t))
- pp_cxx_ws_string (pp, "constexpr");
+ {
+ if (DECL_DECLARED_CONCEPT_P (t))
+ pp_cxx_ws_string (pp, "concept");
+ else
+ pp_cxx_ws_string (pp, "constexpr");
+ }
}
/* Print the return type? */
break;
case EXPR_PACK_EXPANSION:
+ case UNARY_LEFT_FOLD_EXPR:
+ case UNARY_RIGHT_FOLD_EXPR:
+ case BINARY_LEFT_FOLD_EXPR:
+ case BINARY_RIGHT_FOLD_EXPR:
case TYPEID_EXPR:
case MEMBER_REF:
case DOTSTAR_EXPR:
break;
case PRED_CONSTR:
+ case CHECK_CONSTR:
case EXPR_CONSTR:
case TYPE_CONSTR:
case ICONV_CONSTR:
return;
}
+ /* List-initialization from {} becomes value-initialization for non-aggregate
+ classes with default constructors. Handle this here when we're
+ initializing a base, so protected access works. */
+ if (exp != true_exp && init && TREE_CODE (init) == TREE_LIST)
+ {
+ tree elt = TREE_VALUE (init);
+ if (DIRECT_LIST_INIT_P (elt)
+ && CONSTRUCTOR_ELTS (elt) == 0
+ && CLASSTYPE_NON_AGGREGATE (type)
+ && TYPE_HAS_DEFAULT_CONSTRUCTOR (type))
+ init = void_type_node;
+ }
+
/* If an explicit -- but empty -- initializer list was present,
that's value-initialization. */
if (init == void_type_node)
&& TREE_CODE (init) == TREE_LIST
&& TREE_CHAIN (init) == NULL_TREE)
init = TREE_VALUE (init);
- /* Instantiate a non-dependent initializer. */
- init = instantiate_non_dependent_or_null (init);
+ /* Instantiate a non-dependent initializer for user variables. We
+ mustn't do this for the temporary for an array compound literal;
+ trying to instatiate the initializer will keep creating new
+ temporaries until we crash. Probably it's not useful to do it for
+ other artificial variables, either. */
+ if (!DECL_ARTIFICIAL (decl))
+ init = instantiate_non_dependent_or_null (init);
if (!init
|| !TREE_TYPE (init)
|| !TREE_CONSTANT (init)
else
{
type = lambda_capture_field_type (initializer, explicit_init_p);
+ if (type == error_mark_node)
+ return error_mark_node;
if (by_reference_p)
{
type = build_reference_type (type);
tree optype = TREE_TYPE (callop);
tree fn_result = TREE_TYPE (optype);
+ tree thisarg = build_nop (TREE_TYPE (DECL_ARGUMENTS (callop)),
+ null_pointer_node);
if (generic_lambda_p)
{
/* Prepare the dependent member call for the static member function
return expression for a deduced return call op to allow for simple
implementation of the conversion operator. */
- tree instance = build_nop (type, null_pointer_node);
+ tree instance = cp_build_indirect_ref (thisarg, RO_NULL,
+ tf_warning_or_error);
tree objfn = build_min (COMPONENT_REF, NULL_TREE,
instance, DECL_NAME (callop), NULL_TREE);
int nargs = list_length (DECL_ARGUMENTS (callop)) - 1;
else
{
direct_argvec = make_tree_vector ();
- direct_argvec->quick_push (build1 (NOP_EXPR,
- TREE_TYPE (DECL_ARGUMENTS (callop)),
- null_pointer_node));
+ direct_argvec->quick_push (thisarg);
}
/* Copy CALLOP's argument list (as per 'copy_list') as FN_ARGS in order to
#include "system.h"
#include "coretypes.h"
#include "tm.h"
+#include "timevar.h"
#include "hash-set.h"
#include "machmode.h"
#include "vec.h"
// Helper algorithms
-// Increment iter distance(first, last) times.
-template<typename I1, typename I2, typename I3>
- I1 next_by_distance (I1 iter, I2 first, I3 last)
- {
- for ( ; first != last; ++first, ++iter)
- ;
- return iter;
- }
+template<typename I>
+inline I
+next (I iter)
+{
+ return ++iter;
+}
+
+template<typename I, typename P>
+inline bool
+any_p (I first, I last, P pred)
+{
+ while (first != last)
+ {
+ if (pred(*first))
+ return true;
+ ++first;
+ }
+ return false;
+}
+
+bool prove_implication (tree, tree);
/*---------------------------------------------------------------------------
Proof state
---------------------------------------------------------------------------*/
+struct term_entry
+{
+ tree t;
+};
+
+/* Hashing function and equality for constraint entries. */
+
+struct term_hasher : ggc_ptr_hash<term_entry>
+{
+ static hashval_t hash (term_entry *e)
+ {
+ return iterative_hash_template_arg (e->t, 0);
+ }
+
+ static bool equal (term_entry *e1, term_entry *e2)
+ {
+ return cp_tree_equal (e1->t, e2->t);
+ }
+};
+
/* A term list is a list of atomic constraints. It is used
to maintain the lists of assumptions and conclusions in a
proof goal.
Each term list maintains an iterator that refers to the current
term. This can be used by various tactics to support iteration
and stateful manipulation of the list. */
-struct term_list : std::list<tree>
+struct term_list
{
- term_list ();
- term_list (const term_list &x);
- term_list& operator= (const term_list &x);
-
- tree current_term () { return *current; }
- const_tree current_term () const { return *current; }
+ typedef std::list<tree>::iterator iterator;
+ term_list ();
+ term_list (tree);
- void insert (tree t);
- tree erase ();
+ bool includes (tree);
+ iterator insert (iterator, tree);
+ iterator push_back (tree);
+ iterator erase (iterator);
+ iterator replace (iterator, tree);
+ iterator replace (iterator, tree, tree);
- void start ();
- void next ();
- bool done() const;
+ iterator begin() { return seq.begin(); }
+ iterator end() { return seq.end(); }
- iterator current;
+ std::list<tree> seq;
+ hash_table<term_hasher> tab;
};
inline
term_list::term_list ()
- : std::list<tree> (), current (end ())
-{ }
+ : seq(), tab (11)
+{
+}
-inline
-term_list::term_list (const term_list &x)
- : std::list<tree> (x)
- , current (next_by_distance (begin (), x.begin (), x.current))
-{ }
+/* Initialize a term list with an initial term. */
-inline term_list&
-term_list::operator= (const term_list &x)
+inline
+term_list::term_list (tree t)
+ : seq (), tab (11)
{
- std::list<tree>::operator=(x);
- current = next_by_distance (begin (), x.begin (), x.current);
- return *this;
+ push_back (t);
}
-/* Try saving the term T into the list of terms. If
- T is already in the list of terms, then no action is
- performed. Otherwise, insert T before the current
- position, making this term current.
+/* Returns true if T is the in the tree. */
- Note that not inserting terms is an optimization
- that corresponds to the structural rule of
- contraction.
-
- NOTE: With the contraction rule, this data structure
- would be more efficiently represented as an ordered set
- or hash set. */
-void
-term_list::insert (tree t)
+inline bool
+term_list::includes (tree t)
{
- /* Search the current term list. If there is already
- a matching term, do not add the new one. */
- for (iterator i = begin(); i != end(); ++i)
- if (cp_tree_equal (*i, t))
- return;
+ term_entry ent = {t};
+ return tab.find (&ent);
+}
- current = std::list<tree>::insert (current, t);
+/* Append a term to the list. */
+inline term_list::iterator
+term_list::push_back (tree t)
+{
+ return insert (end(), t);
}
-/* Remove the current term from the list, repositioning to
- the term following the removed term. Note that the new
- position could be past the end of the list.
+/* Insert a new (unseen) term T into the list before the proposition
+ indicated by ITER. Returns the iterator to the newly inserted
+ element. */
- The removed term is returned. */
-inline tree
-term_list::erase ()
+term_list::iterator
+term_list::insert (iterator iter, tree t)
{
- tree t = *current;
- current = std::list<tree>::erase (current);
- return t;
+ gcc_assert (!includes (t));
+ iter = seq.insert (iter, t);
+ term_entry ent = {t};
+ term_entry** slot = tab.find_slot (&ent, INSERT);
+ term_entry* ptr = ggc_alloc<term_entry> ();
+ *ptr = ent;
+ *slot = ptr;
+ return iter;
}
-/* Initialize the current term to the first in the list. */
-inline void
-term_list::start ()
+/* Remove an existing term from the list. Returns an iterator referring
+ to the element after the removed term. This may be end(). */
+
+term_list::iterator
+term_list::erase (iterator iter)
{
- current = begin ();
+ gcc_assert (includes (*iter));
+ term_entry ent = {*iter};
+ tab.remove_elt (&ent);
+ iter = seq.erase (iter);
+ return iter;
}
-/* Advance to the next term in the list. */
-inline void
-term_list::next ()
+/* Replace the given term with that specified. If the term has
+ been previously seen, do not insert the term. Returns the
+ first iterator past the current term. */
+
+term_list::iterator
+term_list::replace (iterator iter, tree t)
{
- ++current;
+ iter = erase (iter);
+ if (!includes (t))
+ insert (iter, t);
+ return iter;
}
-/* Returns true when the current position is past the end. */
-inline bool
-term_list::done () const
+
+/* Replace the term at the given position by the supplied T1
+ followed by t2. This is used in certain logical operators to
+ load a list of assumptions or conclusions. */
+
+term_list::iterator
+term_list::replace (iterator iter, tree t1, tree t2)
{
- return current == end ();
+ iter = erase (iter);
+ if (!includes (t1))
+ insert (iter, t1);
+ if (!includes (t2))
+ insert (iter, t2);
+ return iter;
}
-
/* A goal (or subgoal) models a sequent of the form
'A |- C' where A and C are lists of assumptions and
conclusions written as propositions in the constraint
- language (i.e., lists of trees).
-*/
+ language (i.e., lists of trees). */
+
struct proof_goal
{
term_list assumptions;
/* A proof state owns a list of goals and tracks the
current sub-goal. The class also provides facilities
for managing subgoals and constructing term lists. */
+
struct proof_state : std::list<proof_goal>
{
proof_state ();
iterator branch (iterator i);
+ iterator discharge (iterator i);
};
-/* An alias for proof state iterators. */
-typedef proof_state::iterator goal_iterator;
+/* Initialize the state with a single empty goal, and set that goal
+ as the current subgoal. */
-/* Initialize the state with a single empty goal,
- and set that goal as the current subgoal. */
inline
proof_state::proof_state ()
: std::list<proof_goal> (1)
{ }
-/* Branch the current goal by creating a new subgoal,
- returning a reference to // the new object. This does
- not update the current goal. */
+/* Branch the current goal by creating a new subgoal, returning a
+ reference to the new object. This does not update the current goal. */
+
inline proof_state::iterator
proof_state::branch (iterator i)
{
return insert (++i, g);
}
+/* Discharge the current goal, setting it equal to the
+ next non-satisfied goal. */
+
+inline proof_state::iterator
+proof_state::discharge (iterator i)
+{
+ gcc_assert (i != end());
+ return erase (i);
+}
+
+
/*---------------------------------------------------------------------------
- Logical rules
+ Debugging
---------------------------------------------------------------------------*/
-/*These functions modify the current state and goal by decomposing
- logical expressions using the logical rules of sequent calculus for
- first order logic.
+// void
+// debug (term_list& ts)
+// {
+// for (term_list::iterator i = ts.begin(); i != ts.end(); ++i)
+// verbatim (" # %E", *i);
+// }
+//
+// void
+// debug (proof_goal& g)
+// {
+// debug (g.assumptions);
+// verbatim (" |-");
+// debug (g.conclusions);
+// }
- Note that in each decomposition rule, the term T has been erased
- from term list before the specific rule is applied. */
+/*---------------------------------------------------------------------------
+ Atomicity of constraints
+---------------------------------------------------------------------------*/
-/* The left logical rule for conjunction adds both operands
- to the current set of constraints. */
-void
-left_conjunction (proof_state &, goal_iterator i, tree t)
+/* Returns true if T is not an atomic constraint. */
+
+bool
+non_atomic_constraint_p (tree t)
{
- gcc_assert (TREE_CODE (t) == CONJ_CONSTR);
+ switch (TREE_CODE (t))
+ {
+ case PRED_CONSTR:
+ case EXPR_CONSTR:
+ case TYPE_CONSTR:
+ case ICONV_CONSTR:
+ case DEDUCT_CONSTR:
+ case EXCEPT_CONSTR:
+ /* A pack expansion isn't atomic, but it can't decompose to prove an
+ atom, so it shouldn't cause analyze_atom to return undecided. */
+ case EXPR_PACK_EXPANSION:
+ return false;
+ case CHECK_CONSTR:
+ case PARM_CONSTR:
+ case CONJ_CONSTR:
+ case DISJ_CONSTR:
+ return true;
+ default:
+ gcc_unreachable ();
+ }
+}
- /* Insert the operands into the current branch. Note that the
- final order of insertion is left-to-right. */
- term_list &l = i->assumptions;
- l.insert (TREE_OPERAND (t, 1));
- l.insert (TREE_OPERAND (t, 0));
+/* Returns true if any constraints in T are not atomic. */
+
+bool
+any_non_atomic_constraints_p (term_list& t)
+{
+ return any_p (t.begin(), t.end(), non_atomic_constraint_p);
}
-/* The left logical rule for disjunction creates a new goal,
- adding the first operand to the original set of
- constraints and the second operand to the new set
- of constraints. */
-void
-left_disjunction (proof_state &s, goal_iterator i, tree t)
+/*---------------------------------------------------------------------------
+ Proof validations
+---------------------------------------------------------------------------*/
+
+enum proof_result
{
- gcc_assert (TREE_CODE (t) == DISJ_CONSTR);
+ invalid,
+ valid,
+ undecided
+};
+
+proof_result check_term (term_list&, tree);
- /* Branch the current subgoal. */
- goal_iterator j = s.branch (i);
- term_list &l1 = i->assumptions;
- term_list &l2 = j->assumptions;
- /* Insert operands into the different branches. */
- l1.insert (TREE_OPERAND (t, 0));
- l2.insert (TREE_OPERAND (t, 1));
+proof_result
+analyze_atom (term_list& ts, tree t)
+{
+ /* FIXME: Hook into special cases, if any. */
+ /*
+ term_list::iterator iter = ts.begin();
+ term_list::iterator end = ts.end();
+ while (iter != end)
+ {
+ ++iter;
+ }
+ */
+
+ if (non_atomic_constraint_p (t))
+ return undecided;
+ if (any_non_atomic_constraints_p (ts))
+ return undecided;
+ return invalid;
}
-/* The left logical rules for parameterized constraints
- adds its operand to the current goal. The list of
- parameters are effectively discarded. */
-void
-left_parameterized_constraint (proof_state &, goal_iterator i, tree t)
+/* Search for a pack expansion in the list of assumptions that would
+ make this expansion valid. */
+
+proof_result
+analyze_pack (term_list& ts, tree t)
{
- gcc_assert (TREE_CODE (t) == PARM_CONSTR);
- term_list &l = i->assumptions;
- l.insert (PARM_CONSTR_OPERAND (t));
+ tree c1 = normalize_expression (PACK_EXPANSION_PATTERN (t));
+ term_list::iterator iter = ts.begin();
+ term_list::iterator end = ts.end();
+ while (iter != end)
+ {
+ if (TREE_CODE (*iter) == TREE_CODE (t))
+ {
+ tree c2 = normalize_expression (PACK_EXPANSION_PATTERN (*iter));
+ if (prove_implication (c2, c1))
+ return valid;
+ else
+ return invalid;
+ }
+ ++iter;
+ }
+ return invalid;
}
-/*---------------------------------------------------------------------------
- Decomposition
----------------------------------------------------------------------------*/
+/* Search for concept checks in TS that we know subsume T. */
-/* The following algorithms decompose expressions into sets of
- atomic propositions. In terms of the sequent calculus, these
- functions exercise the logical rules only.
+proof_result
+search_known_subsumptions (term_list& ts, tree t)
+{
+ for (term_list::iterator i = ts.begin(); i != ts.end(); ++i)
+ if (TREE_CODE (*i) == CHECK_CONSTR)
+ {
+ if (bool* b = lookup_subsumption_result (*i, t))
+ return *b ? valid : invalid;
+ }
+ return undecided;
+}
- This is equivalent, for the purpose of determining subsumption,
- to rewriting a constraint in disjunctive normal form. It also
- allows the resulting assumptions to be used as declarations
- for the purpose of separate checking. */
+/* Determine if the terms in TS provide sufficient support for proving
+ the proposition T. If any term in TS is a concept check that is known
+ to subsume T, then the proof is valid. Otherwise, we have to expand T
+ and continue searching for support. */
-/* Apply the left logical rules to the proof state. */
-void
-decompose_left_term (proof_state &s, goal_iterator i)
+proof_result
+analyze_check (term_list& ts, tree t)
+{
+ proof_result r = search_known_subsumptions (ts, t);
+ if (r != undecided)
+ return r;
+
+ tree tmpl = CHECK_CONSTR_CONCEPT (t);
+ tree args = CHECK_CONSTR_ARGS (t);
+ tree c = expand_concept (tmpl, args);
+ return check_term (ts, c);
+}
+
+/* Recursively check constraints of the parameterized constraint. */
+
+proof_result
+analyze_parameterized (term_list& ts, tree t)
+{
+ return check_term (ts, PARM_CONSTR_OPERAND (t));
+}
+
+proof_result
+analyze_conjunction (term_list& ts, tree t)
+{
+ proof_result r = check_term (ts, TREE_OPERAND (t, 0));
+ if (r == invalid || r == undecided)
+ return r;
+ return check_term (ts, TREE_OPERAND (t, 1));
+}
+
+proof_result
+analyze_disjunction (term_list& ts, tree t)
+{
+ proof_result r = check_term (ts, TREE_OPERAND (t, 0));
+ if (r == valid)
+ return r;
+ return check_term (ts, TREE_OPERAND (t, 1));
+}
+
+proof_result
+analyze_term (term_list& ts, tree t)
{
- term_list &l = i->assumptions;
- tree t = l.current_term ();
switch (TREE_CODE (t))
{
+ case CHECK_CONSTR:
+ return analyze_check (ts, t);
+
+ case PARM_CONSTR:
+ return analyze_parameterized (ts, t);
+
case CONJ_CONSTR:
- left_conjunction (s, i, l.erase ());
- break;
+ return analyze_conjunction (ts, t);
case DISJ_CONSTR:
- left_disjunction (s, i, l.erase ());
- break;
- case PARM_CONSTR:
- left_parameterized_constraint (s, i, l.erase ());
- break;
+ return analyze_disjunction (ts, t);
+
+ case PRED_CONSTR:
+ case EXPR_CONSTR:
+ case TYPE_CONSTR:
+ case ICONV_CONSTR:
+ case DEDUCT_CONSTR:
+ case EXCEPT_CONSTR:
+ return analyze_atom (ts, t);
+
+ case EXPR_PACK_EXPANSION:
+ return analyze_pack (ts, t);
+
+ case ERROR_MARK:
+ /* Encountering an error anywhere in a constraint invalidates
+ the proof, since the constraint is ill-formed. */
+ return invalid;
default:
- l.next ();
- break;
+ gcc_unreachable ();
}
}
-/* Apply the left logical rules of the sequent calculus
- until the current goal is fully decomposed into atomic
- constraints. */
-void
-decompose_left_goal (proof_state &s, goal_iterator i)
+/* Check if a single term can be proven from a set of assumptions.
+ If the proof is not valid, then it is incomplete when either
+ the given term is non-atomic or any term in the list of assumptions
+ is not-atomic. */
+
+proof_result
+check_term (term_list& ts, tree t)
{
- term_list& l = i->assumptions;
- l.start ();
- while (!l.done ())
- decompose_left_term (s, i);
+ /* Try the easy way; search for an equivalent term. */
+ if (ts.includes (t))
+ return valid;
+
+ /* The hard way; actually consider what the term means. */
+ return analyze_term (ts, t);
}
-/* Apply the left logical rules of the sequent calculus
- until the antecedents are fully decomposed into atomic
- constraints. */
-void
-decompose_left (proof_state& s)
+/* Check to see if any term is proven by the assumptions in the
+ proof goal. The proof is valid if the proof of any term is valid.
+ If validity cannot be determined, but any particular
+ check was undecided, then this goal is undecided. */
+
+proof_result
+check_goal (proof_goal& g)
{
- goal_iterator iter = s.begin ();
- goal_iterator end = s.end ();
- for ( ; iter != end; ++iter)
- decompose_left_goal (s, iter);
+ term_list::iterator iter = g.conclusions.begin ();
+ term_list::iterator end = g.conclusions.end ();
+ bool incomplete = false;
+ while (iter != end)
+ {
+ proof_result r = check_term (g.assumptions, *iter);
+ if (r == valid)
+ return r;
+ if (r == undecided)
+ incomplete = true;
+ ++iter;
+ }
+
+ /* Was the proof complete? */
+ if (incomplete)
+ return undecided;
+ else
+ return invalid;
}
-/* Returns a vector of terms from the term list L. */
-tree
-extract_terms (term_list& l)
+/* Check if the the proof is valid. This is the case when all
+ goals can be discharged. If any goal is invalid, then the
+ entire proof is invalid. Otherwise, the proof is undecided. */
+
+proof_result
+check_proof (proof_state& p)
{
- tree result = make_tree_vec (l.size());
- term_list::iterator iter = l.begin();
- term_list::iterator end = l.end();
- for (int n = 0; iter != end; ++iter, ++n)
- TREE_VEC_ELT (result, n) = *iter;
- return result;
+ proof_state::iterator iter = p.begin();
+ proof_state::iterator end = p.end();
+ while (iter != end)
+ {
+ proof_result r = check_goal (*iter);
+ if (r == invalid)
+ return r;
+ if (r == valid)
+ iter = p.discharge (iter);
+ else
+ ++iter;
+ }
+
+ /* If all goals are discharged, then the proof is valid. */
+ if (p.empty())
+ return valid;
+ else
+ return undecided;
}
-/* Extract the assumptions from the proof state S
- as a vector of vectors of atomic constraints. */
-inline tree
-extract_assumptions (proof_state& s)
+/*---------------------------------------------------------------------------
+ Left logical rules
+---------------------------------------------------------------------------*/
+
+term_list::iterator
+load_check_assumption (term_list& ts, term_list::iterator i)
{
- tree result = make_tree_vec (s.size ());
- goal_iterator iter = s.begin ();
- goal_iterator end = s.end ();
- for (int n = 0; iter != end; ++iter, ++n)
- TREE_VEC_ELT (result, n) = extract_terms (iter->assumptions);
- return result;
+ tree decl = CHECK_CONSTR_CONCEPT (*i);
+ tree tmpl = DECL_TI_TEMPLATE (decl);
+ tree args = CHECK_CONSTR_ARGS (*i);
+ return ts.replace(i, expand_concept (tmpl, args));
}
-} // namespace
+term_list::iterator
+load_parameterized_assumption (term_list& ts, term_list::iterator i)
+{
+ return ts.replace(i, PARM_CONSTR_OPERAND(*i));
+}
-/* Decompose the required expression T into a constraint set: a
- vector of vectors containing only atomic propositions. If T is
- invalid, return an error. */
-tree
-decompose_assumptions (tree t)
+term_list::iterator
+load_conjunction_assumption (term_list& ts, term_list::iterator i)
{
- if (!t || t == error_mark_node)
- return t;
+ tree t1 = TREE_OPERAND (*i, 0);
+ tree t2 = TREE_OPERAND (*i, 1);
+ return ts.replace(i, t1, t2);
+}
- /* Create a proof state, and insert T as the sole assumption. */
- proof_state s;
- term_list &l = s.begin ()->assumptions;
- l.insert (t);
+/* Examine the terms in the list, and apply left-logical rules to move
+ terms into the set of assumptions. */
- /* Decompose the expression into a constraint set, and then
- extract the terms for the AST. */
- decompose_left (s);
- return extract_assumptions (s);
+void
+load_assumptions (proof_goal& g)
+{
+ term_list::iterator iter = g.assumptions.begin();
+ term_list::iterator end = g.assumptions.end();
+ while (iter != end)
+ {
+ switch (TREE_CODE (*iter))
+ {
+ case CHECK_CONSTR:
+ iter = load_check_assumption (g.assumptions, iter);
+ break;
+ case PARM_CONSTR:
+ iter = load_parameterized_assumption (g.assumptions, iter);
+ break;
+ case CONJ_CONSTR:
+ iter = load_conjunction_assumption (g.assumptions, iter);
+ break;
+ default:
+ ++iter;
+ break;
+ }
+ }
}
+/* In each subgoal, load constraints into the assumption set. */
-/*---------------------------------------------------------------------------
- Subsumption Rules
----------------------------------------------------------------------------*/
+void
+load_assumptions(proof_state& p)
+{
+ proof_state::iterator iter = p.begin();
+ while (iter != p.end())
+ {
+ load_assumptions (*iter);
+ ++iter;
+ }
+}
-namespace {
+void
+explode_disjunction (proof_state& p, proof_state::iterator gi, term_list::iterator ti1)
+{
+ tree t1 = TREE_OPERAND (*ti1, 0);
+ tree t2 = TREE_OPERAND (*ti1, 1);
-bool subsumes_constraint (tree, tree);
-bool subsumes_conjunction (tree, tree);
-bool subsumes_disjunction (tree, tree);
-bool subsumes_parameterized_constraint (tree, tree);
-bool subsumes_atomic_constraint (tree, tree);
+ /* Erase the current term from the goal. */
+ proof_goal& g1 = *gi;
+ proof_goal& g2 = *p.branch (gi);
-/* Returns true if the assumption A matches the conclusion C. This
- is generally the case when A and C have the same syntax.
+ /* Get an iterator to the equivalent position in th enew goal. */
+ int n = std::distance (g1.assumptions.begin (), ti1);
+ term_list::iterator ti2 = g2.assumptions.begin ();
+ std::advance (ti2, n);
- NOTE: There will be specialized matching rules to accommodate
- type equivalence, conversion, inheritance, etc. But this is not
- in the current concepts draft. */
-inline bool
-match_terms (tree a, tree c)
-{
- return cp_tree_equal (a, c);
+ /* Replace the disjunction in both branches. */
+ g1.assumptions.replace (ti1, t1);
+ g2.assumptions.replace (ti2, t2);
}
-/* Returns true if the list of assumptions AS subsumes the atomic
- proposition C. This is the case when we can find a proposition
- in AS that entails the conclusion C. */
+
+/* Search the assumptions of the goal for the first disjunction. */
+
bool
-subsumes_atomic_constraint (tree as, tree c)
+explode_goal (proof_state& p, proof_state::iterator gi)
{
- for (int i = 0; i < TREE_VEC_LENGTH (as); ++i)
- if (match_terms (TREE_VEC_ELT (as, i), c))
- return true;
+ term_list& ts = gi->assumptions;
+ term_list::iterator ti = ts.begin();
+ term_list::iterator end = ts.end();
+ while (ti != end)
+ {
+ if (TREE_CODE (*ti) == DISJ_CONSTR)
+ {
+ explode_disjunction (p, gi, ti);
+ return true;
+ }
+ else ++ti;
+ }
return false;
}
-/* Returns true when both operands of C are subsumed by the
- assumptions AS. */
-inline bool
-subsumes_conjunction (tree as, tree c)
+/* Search for the first goal with a disjunction, and then branch
+ creating a clone of that subgoal. */
+
+void
+explode_assumptions (proof_state& p)
{
- tree l = TREE_OPERAND (c, 0);
- tree r = TREE_OPERAND (c, 1);
- return subsumes_constraint (as, l) && subsumes_constraint (as, r);
+ proof_state::iterator iter = p.begin();
+ proof_state::iterator end = p.end();
+ while (iter != end)
+ {
+ if (explode_goal (p, iter))
+ return;
+ ++iter;
+ }
}
-/* Returns true when either operand of C is subsumed by the
- assumptions AS. */
-inline bool
-subsumes_disjunction (tree as, tree c)
+
+/*---------------------------------------------------------------------------
+ Right logical rules
+---------------------------------------------------------------------------*/
+
+term_list::iterator
+load_disjunction_conclusion (term_list& g, term_list::iterator i)
{
- tree l = TREE_OPERAND (c, 0);
- tree r = TREE_OPERAND (c, 1);
- return subsumes_constraint (as, l) || subsumes_constraint (as, r);
+ tree t1 = TREE_OPERAND (*i, 0);
+ tree t2 = TREE_OPERAND (*i, 1);
+ return g.replace(i, t1, t2);
}
-/* Returns true when the operand of C is subsumed by the
- assumptions in AS. The parameters are not considered in
- the subsumption rules. */
-bool
-subsumes_parameterized_constraint (tree as, tree c)
+/* Apply logical rules to the right hand side. This will load the
+ conclusion set with all tpp-level disjunctions. */
+
+void
+load_conclusions (proof_goal& g)
{
- tree t = PARM_CONSTR_OPERAND (c);
- return subsumes_constraint (as, t);
+ term_list::iterator iter = g.conclusions.begin();
+ term_list::iterator end = g.conclusions.end();
+ while (iter != end)
+ {
+ if (TREE_CODE (*iter) == DISJ_CONSTR)
+ iter = load_disjunction_conclusion (g.conclusions, iter);
+ else
+ ++iter;
+ }
}
+void
+load_conclusions (proof_state& p)
+{
+ proof_state::iterator iter = p.begin();
+ while (iter != p.end())
+ {
+ load_conclusions (*iter);
+ ++iter;
+ }
+}
+
+
+/*---------------------------------------------------------------------------
+ High-level proof tactics
+---------------------------------------------------------------------------*/
+
+/* Given two constraints A and C, try to derive a proof that
+ A implies C. */
-/* Returns true when the list of assumptions AS subsumes the
- concluded proposition C. This is a simple recursive descent
- on C, matching against propositions in the assumption list AS. */
bool
-subsumes_constraint (tree as, tree c)
+prove_implication (tree a, tree c)
{
- switch (TREE_CODE (c))
+ /* Quick accept. */
+ if (cp_tree_equal (a, c))
+ return true;
+
+ /* Build the initial proof state. */
+ proof_state proof;
+ proof_goal& goal = proof.front();
+ goal.assumptions.push_back(a);
+ goal.conclusions.push_back(c);
+
+ /* Perform an initial right-expansion in the off-chance that the right
+ hand side contains disjunctions. */
+ load_conclusions (proof);
+
+ int step_max = 1 << 10;
+ int step_count = 0; /* FIXME: We shouldn't have this. */
+ std::size_t branch_limit = 1024; /* FIXME: This needs to be configurable. */
+ while (step_count < step_max && proof.size() < branch_limit)
{
- case CONJ_CONSTR:
- return subsumes_conjunction (as, c);
- case DISJ_CONSTR:
- return subsumes_disjunction (as, c);
- case PARM_CONSTR:
- return subsumes_parameterized_constraint (as, c);
- default:
- return subsumes_atomic_constraint (as, c);
+ /* Determine if we can prove that the assumptions entail the
+ conclusions. If so, we're done. */
+ load_assumptions (proof);
+
+ /* Can we solve the proof based on this? */
+ proof_result r = check_proof (proof);
+ if (r != undecided)
+ return r == valid;
+
+ /* If not, then we need to dig into disjunctions. */
+ explode_assumptions (proof);
+
+ ++step_count;
}
+
+ if (step_count == step_max)
+ error ("subsumption failed to resolve");
+
+ if (proof.size() == branch_limit)
+ error ("exceeded maximum number of branches");
+
+ return false;
}
-/* Returns true if the LEFT constraints subsume the RIGHT constraints.
- This is done by checking that the RIGHT requirements follow from
- each of the LEFT subgoals. */
+/* Returns true if the LEFT constraint subsume the RIGHT constraints.
+ This is done by deriving a proof of the conclusions on the RIGHT
+ from the assumptions on the LEFT assumptions. */
+
bool
subsumes_constraints_nonnull (tree left, tree right)
{
gcc_assert (check_constraint_info (left));
gcc_assert (check_constraint_info (right));
- /* Check that the required expression in RIGHT is subsumed by each
- subgoal in the assumptions of LEFT. */
- tree as = CI_ASSUMPTIONS (left);
- tree c = CI_NORMALIZED_CONSTRAINTS (right);
- for (int i = 0; i < TREE_VEC_LENGTH (as); ++i)
- if (!subsumes_constraint (TREE_VEC_ELT (as, i), c))
- return false;
- return true;
+ auto_timevar time (TV_CONSTRAINT_SUB);
+ tree a = CI_ASSOCIATED_CONSTRAINTS (left);
+ tree c = CI_ASSOCIATED_CONSTRAINTS (right);
+ return prove_implication (a, c);
}
} /* namespace */
/* Returns true if the LEFT constraints subsume the RIGHT
- constraints. */
+ constraints. */
+
bool
subsumes (tree left, tree right)
{
write_type (TREE_TYPE (TREE_OPERAND (expr, 0)));
}
else if (TREE_CODE (expr) == SIZEOF_EXPR
+ && ARGUMENT_PACK_P (TREE_OPERAND (expr, 0)))
+ {
+ tree args = ARGUMENT_PACK_ARGS (TREE_OPERAND (expr, 0));
+ int length = TREE_VEC_LENGTH (args);
+ if (abi_warn_or_compat_version_crosses (10))
+ G.need_abi_warning = true;
+ if (abi_version_at_least (10))
+ {
+ /* sP <template-arg>* E # sizeof...(T), size of a captured
+ template parameter pack from an alias template */
+ write_string ("sP");
+ for (int i = 0; i < length; ++i)
+ write_template_arg (TREE_VEC_ELT (args, i));
+ write_char ('E');
+ }
+ else
+ {
+ /* In GCC 5 we represented this sizeof wrong, with the effect
+ that we mangled it as the last element of the pack. */
+ tree arg = TREE_VEC_ELT (args, length-1);
+ if (TYPE_P (arg))
+ {
+ write_string ("st");
+ write_type (arg);
+ }
+ else
+ {
+ write_string ("sz");
+ write_expression (arg);
+ }
+ }
+ }
+ else if (TREE_CODE (expr) == SIZEOF_EXPR
&& TYPE_P (TREE_OPERAND (expr, 0)))
{
write_string ("st");
"cannot be mangled");
continue;
}
+ else if (FOLD_EXPR_P (expr))
+ {
+ /* The first 'operand' of a fold-expression is the operator
+ that it folds over. */
+ if (i == 0)
+ {
+ int fcode = TREE_INT_CST_LOW (operand);
+ write_string (operator_name_info[fcode].mangled_name);
+ continue;
+ }
+ else if (code == BINARY_LEFT_FOLD_EXPR)
+ {
+ /* The order of operands of the binary left and right
+ folds is the same, but we want to mangle them in
+ lexical order, i.e. non-pack first. */
+ if (i == 1)
+ operand = FOLD_EXPR_INIT (expr);
+ else
+ operand = FOLD_EXPR_PACK (expr);
+ }
+ if (PACK_EXPANSION_P (operand))
+ operand = PACK_EXPANSION_PATTERN (operand);
+ }
write_expression (operand);
}
}
/* Variadic templates extension. */
DEF_SIMPLE_OPERATOR ("...", EXPR_PACK_EXPANSION, "sp", 1)
+DEF_SIMPLE_OPERATOR ("... +", UNARY_LEFT_FOLD_EXPR, "fl", 2)
+DEF_SIMPLE_OPERATOR ("+ ...", UNARY_RIGHT_FOLD_EXPR, "fr", 2)
+DEF_SIMPLE_OPERATOR ("+ ... +", BINARY_LEFT_FOLD_EXPR, "fL", 3)
+DEF_SIMPLE_OPERATOR ("+ ... +", BINARY_RIGHT_FOLD_EXPR, "fR", 3)
ok &= cp_parser_lambda_declarator_opt (parser, lambda_expr);
+ if (ok && cp_parser_error_occurred (parser))
+ ok = false;
+
if (ok)
{
- if (!cp_parser_error_occurred (parser)
- && cp_lexer_next_token_is (parser->lexer, CPP_OPEN_BRACE)
+ if (cp_lexer_next_token_is (parser->lexer, CPP_OPEN_BRACE)
&& cp_parser_start_tentative_firewall (parser))
start = token;
cp_parser_lambda_body (parser, lambda_expr);
bool ivdep)
{
tree stmt, range_expr;
+ cxx_binding *binding = NULL;
+ tree name = NULL_TREE;
/* Get the range declaration momentarily out of the way so that
the range expression doesn't clash with it. */
if (range_decl != error_mark_node)
- pop_binding (DECL_NAME (range_decl), range_decl);
+ {
+ name = DECL_NAME (range_decl);
+ binding = IDENTIFIER_BINDING (name);
+ IDENTIFIER_BINDING (name) = binding->previous;
+ }
if (cp_lexer_next_token_is (parser->lexer, CPP_OPEN_BRACE))
{
/* Put the range declaration back into scope. */
if (range_decl != error_mark_node)
- push_binding (DECL_NAME (range_decl), range_decl, current_binding_level);
+ {
+ binding->previous = IDENTIFIER_BINDING (name);
+ IDENTIFIER_BINDING (name) = binding;
+ }
/* If in template, STMT is converted to a normal for-statement
at instantiation. If not, it is done just ahead. */
if (token->type == CPP_COMMA)
/* will be consumed next time around */;
/* If it's a `;', we are done. */
- else if (token->type == CPP_SEMICOLON || maybe_range_for_decl)
+ else if (token->type == CPP_SEMICOLON)
break;
+ else if (maybe_range_for_decl)
+ {
+ if (declares_class_or_enum && token->type == CPP_COLON)
+ pedwarn (decl_specifiers.locations[ds_type_spec], 0,
+ "types may not be defined in a for-range-declaration");
+ break;
+ }
/* Anything else is an error. */
else
{
cp_parser_require (parser, CPP_GREATER, RT_GREATER);
// If template requirements are present, parse them.
- tree reqs = get_shorthand_constraints (current_template_parms);
- if (tree r = cp_parser_requires_clause_opt (parser))
- reqs = conjoin_constraints (reqs, make_predicate_constraint (r));
- TEMPLATE_PARMS_CONSTRAINTS (current_template_parms) = reqs;
+ if (flag_concepts)
+ {
+ tree reqs = get_shorthand_constraints (current_template_parms);
+ if (tree r = cp_parser_requires_clause_opt (parser))
+ reqs = conjoin_constraints (reqs, normalize_expression (r));
+ TEMPLATE_PARMS_CONSTRAINTS (current_template_parms) = reqs;
+ }
/* Look for the `class' or 'typename' keywords. */
cp_parser_type_parameter_key (parser);
cp_parser_skip_to_end_of_template_parameter_list (parser);
/* Manage template requirements */
- tree reqs = get_shorthand_constraints (current_template_parms);
- if (tree r = cp_parser_requires_clause_opt (parser))
- reqs = conjoin_constraints (reqs, make_predicate_constraint (r));
- TEMPLATE_PARMS_CONSTRAINTS (current_template_parms) = reqs;
+ if (flag_concepts)
+ {
+ tree reqs = get_shorthand_constraints (current_template_parms);
+ if (tree r = cp_parser_requires_clause_opt (parser))
+ reqs = conjoin_constraints (reqs, normalize_expression (r));
+ TEMPLATE_PARMS_CONSTRAINTS (current_template_parms) = reqs;
+ }
cp_parser_template_declaration_after_parameters (parser, parameter_list,
member_p);
cp_token *first;
cp_token *last;
tree fn;
+ bool function_try_block = false;
/* Create the FUNCTION_DECL. */
fn = grokmethod (decl_specifiers, declarator, attributes);
/* Save away the tokens that make up the body of the
function. */
first = parser->lexer->next_token;
+
+ if (cp_lexer_next_token_is_keyword (parser->lexer, RID_TRANSACTION_RELAXED))
+ cp_lexer_consume_token (parser->lexer);
+ else if (cp_lexer_next_token_is_keyword (parser->lexer,
+ RID_TRANSACTION_ATOMIC))
+ {
+ cp_lexer_consume_token (parser->lexer);
+ /* Match cp_parser_txn_attribute_opt [[ identifier ]]. */
+ if (cp_lexer_next_token_is (parser->lexer, CPP_OPEN_SQUARE)
+ && cp_lexer_nth_token_is (parser->lexer, 2, CPP_OPEN_SQUARE)
+ && (cp_lexer_nth_token_is (parser->lexer, 3, CPP_NAME)
+ || cp_lexer_nth_token_is (parser->lexer, 3, CPP_KEYWORD))
+ && cp_lexer_nth_token_is (parser->lexer, 4, CPP_CLOSE_SQUARE)
+ && cp_lexer_nth_token_is (parser->lexer, 5, CPP_CLOSE_SQUARE))
+ {
+ cp_lexer_consume_token (parser->lexer);
+ cp_lexer_consume_token (parser->lexer);
+ cp_lexer_consume_token (parser->lexer);
+ cp_lexer_consume_token (parser->lexer);
+ cp_lexer_consume_token (parser->lexer);
+ }
+ else
+ while (cp_next_tokens_can_be_gnu_attribute_p (parser)
+ && cp_lexer_nth_token_is (parser->lexer, 2, CPP_OPEN_PAREN))
+ {
+ cp_lexer_consume_token (parser->lexer);
+ if (cp_parser_cache_group (parser, CPP_CLOSE_PAREN, /*depth=*/0))
+ break;
+ }
+ }
+
/* Handle function try blocks. */
if (cp_lexer_next_token_is_keyword (parser->lexer, RID_TRY))
- cp_lexer_consume_token (parser->lexer);
+ {
+ cp_lexer_consume_token (parser->lexer);
+ function_try_block = true;
+ }
/* We can have braced-init-list mem-initializers before the fn body. */
if (cp_lexer_next_token_is (parser->lexer, CPP_COLON))
{
}
cp_parser_cache_group (parser, CPP_CLOSE_BRACE, /*depth=*/0);
/* Handle function try blocks. */
- while (cp_lexer_next_token_is_keyword (parser->lexer, RID_CATCH))
- cp_parser_cache_group (parser, CPP_CLOSE_BRACE, /*depth=*/0);
+ if (function_try_block)
+ while (cp_lexer_next_token_is_keyword (parser->lexer, RID_CATCH))
+ cp_parser_cache_group (parser, CPP_CLOSE_BRACE, /*depth=*/0);
last = parser->lexer->next_token;
/* Save away the inline definition; we will process it when the
implicit template scope, and we're trying to synthesize a
constrained parameter, try to find a previous parameter with
the same name. This is the same-type rule for abbreviated
- function templates. */
+ function templates.
+
+ NOTE: We can generate implicit parameters when tentatively
+ parsing a nested name specifier, only to reject that parse
+ later. However, matching the same template-id as part of a
+ direct-declarator should generate an identical template
+ parameter, so this rule will merge them. */
if (parser->implicit_template_scope && constr)
{
tree t = parser->implicit_template_parms;
static int coerce_template_template_parms (tree, tree, tsubst_flags_t,
tree, tree);
static bool template_template_parm_bindings_ok_p (tree, tree);
-static int template_args_equal (tree, tree);
static void tsubst_default_arguments (tree, tsubst_flags_t);
static tree for_each_template_parm_r (tree *, int *, void *);
static tree copy_default_args_to_explicit_spec_1 (tree, tree);
/* Convert the remaining arguments, which will be a part of the
parameter pack "parm". */
+ int first_pack_arg = arg_idx;
for (; arg_idx < nargs; ++arg_idx)
{
tree arg = TREE_VEC_ELT (inner_args, arg_idx);
tree actual_parm = TREE_VALUE (parm);
- int pack_idx = arg_idx - parm_idx;
+ int pack_idx = arg_idx - first_pack_arg;
if (packed_parms)
{
TREE_VEC_ELT (packed_args, pack_idx) = arg;
}
- if (arg_idx - parm_idx < TREE_VEC_LENGTH (packed_args)
+ if (arg_idx - first_pack_arg < TREE_VEC_LENGTH (packed_args)
&& TREE_VEC_LENGTH (packed_args) > 0)
{
if (complain & tf_error)
error ("wrong number of template arguments (%d, should be %d)",
- arg_idx - parm_idx, TREE_VEC_LENGTH (packed_args));
+ arg_idx - first_pack_arg, TREE_VEC_LENGTH (packed_args));
return error_mark_node;
}
/* Returns 1 if template args OT and NT are equivalent. */
-static int
+int
template_args_equal (tree ot, tree nt)
{
if (nt == ot)
for parameters in the TYPE_DECL of the alias template
done earlier. So be careful while getting the template
of FOUND. */
- found = TREE_CODE (found) == TYPE_DECL
+ found = TREE_CODE (found) == TEMPLATE_DECL
+ ? found
+ : TREE_CODE (found) == TYPE_DECL
? TYPE_TI_TEMPLATE (TREE_TYPE (found))
: CLASSTYPE_TI_TEMPLATE (found);
}
{
if (complain & tf_error)
{
- error ("constraints for %qD not satisfied", templ);
+ error ("use of invalid variable template %qE", var);
diagnose_constraints (location_of (var), templ, arglist);
}
return error_mark_node;
if (tinst_depth >= max_tinst_depth)
{
+ /* Tell error.c not to try to instantiate any templates. */
+ at_eof = 2;
fatal_error (input_location,
"template instantiation depth exceeds maximum of %d"
" (use -ftemplate-depth= to increase the maximum)",
}
if (last_dep)
- for (tree *p = &attributes; *p; p = &TREE_CHAIN (*p))
+ for (tree *p = &attributes; *p; )
{
tree t = *p;
if (ATTR_IS_DEPENDENT (t))
{
tree subst = tsubst_attribute (t, NULL, args, complain, in_decl);
- if (subst == t)
- continue;
- *p = subst;
- do
- p = &TREE_CHAIN (*p);
- while (*p);
- *p = TREE_CHAIN (t);
+ if (subst != t)
+ {
+ *p = subst;
+ do
+ p = &TREE_CHAIN (*p);
+ while (*p);
+ *p = TREE_CHAIN (t);
+ continue;
+ }
}
+ p = &TREE_CHAIN (*p);
}
return attributes;
tree pack = tsubst_fold_expr_pack (t, args, complain, in_decl);
if (pack == error_mark_node)
return error_mark_node;
+ if (PACK_EXPANSION_P (pack))
+ {
+ tree r = copy_node (t);
+ FOLD_EXPR_PACK (r) = pack;
+ return r;
+ }
if (TREE_VEC_LENGTH (pack) == 0)
return expand_empty_fold (t, complain);
else
if (init == error_mark_node)
return error_mark_node;
+ if (PACK_EXPANSION_P (pack))
+ {
+ tree r = copy_node (t);
+ FOLD_EXPR_PACK (r) = pack;
+ FOLD_EXPR_INIT (r) = init;
+ return r;
+ }
+
tree vec = make_tree_vec (TREE_VEC_LENGTH (pack) + 1);
TREE_VEC_ELT (vec, 0) = init;
for (int i = 0; i < TREE_VEC_LENGTH (pack); ++i)
tree pack = tsubst_fold_expr_pack (t, args, complain, in_decl);
if (pack == error_mark_node)
return error_mark_node;
+ if (PACK_EXPANSION_P (pack))
+ {
+ tree r = copy_node (t);
+ FOLD_EXPR_PACK (r) = pack;
+ return r;
+ }
if (TREE_VEC_LENGTH (pack) == 0)
return expand_empty_fold (t, complain);
else
if (init == error_mark_node)
return error_mark_node;
+ if (PACK_EXPANSION_P (pack))
+ {
+ tree r = copy_node (t);
+ FOLD_EXPR_PACK (r) = pack;
+ FOLD_EXPR_INIT (r) = init;
+ return r;
+ }
+
int n = TREE_VEC_LENGTH (pack);
tree vec = make_tree_vec (n + 1);
for (int i = 0; i < n; ++i)
local_specializations = saved_local_specializations;
}
+ /* If the dependent pack arguments were such that we end up with only a
+ single pack expansion again, there's no need to keep it in a TREE_VEC. */
+ if (len == 1 && TREE_CODE (result) == TREE_VEC
+ && PACK_EXPANSION_P (TREE_VEC_ELT (result, 0)))
+ return TREE_VEC_ELT (result, 0);
+
return result;
}
if (code == BOUND_TEMPLATE_TEMPLATE_PARM)
{
- tree argvec = tsubst (TYPE_TI_ARGS (t), args,
+ tree tinfo = TYPE_TEMPLATE_INFO (t);
+ /* We might need to substitute into the types of non-type
+ template parameters. */
+ tree tmpl = tsubst (TI_TEMPLATE (tinfo), args,
+ complain, in_decl);
+ if (tmpl == error_mark_node)
+ return error_mark_node;
+ tree argvec = tsubst (TI_ARGS (tinfo), args,
complain, in_decl);
if (argvec == error_mark_node)
return error_mark_node;
TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO (r)
- = build_template_info (TYPE_TI_TEMPLATE (t), argvec);
+ = build_template_info (tmpl, argvec);
}
}
break;
if (!object_type)
object_type = current_class_type;
- if (qualified)
- baselink = adjust_result_of_qualified_name_lookup (baselink,
- qualifying_scope,
- object_type);
+ if (qualified || name == complete_dtor_identifier)
+ {
+ baselink = adjust_result_of_qualified_name_lookup (baselink,
+ qualifying_scope,
+ object_type);
+ if (!qualified)
+ /* We need to call adjust_result_of_qualified_name_lookup in case the
+ destructor names a base class, but we unset BASELINK_QUALIFIED_P
+ so that we still get virtual function binding. */
+ BASELINK_QUALIFIED_P (baselink) = false;
+ }
return baselink;
}
{
if (is_template)
expr = build_min_nt_loc (loc, TEMPLATE_ID_EXPR, expr, template_args);
- return build_qualified_name (NULL_TREE, scope, expr,
- QUALIFIED_NAME_IS_TEMPLATE (qualified_id));
+ tree r = build_qualified_name (NULL_TREE, scope, expr,
+ QUALIFIED_NAME_IS_TEMPLATE (qualified_id));
+ REF_PARENTHESIZED_P (r) = REF_PARENTHESIZED_P (qualified_id);
+ return r;
}
if (!BASELINK_P (name) && !DECL_P (expr))
&& TREE_CODE (expr) != OFFSET_REF)
expr = convert_from_reference (expr);
+ if (REF_PARENTHESIZED_P (qualified_id))
+ expr = force_paren_expr (expr);
+
return expr;
}
/* An unresolved overload is a nondeduced context. */
if (is_overloaded_fn (parm) || type_unknown_p (parm))
return unify_success (explain_p);
- gcc_assert (EXPR_P (parm));
+ gcc_assert (EXPR_P (parm) || TREE_CODE (parm) == TRAIT_EXPR);
expr:
/* We must be looking at an expression. This can happen with
something like:
else
{
deleted_p = false;
- pattern_defined = ! DECL_IN_AGGR_P (code_pattern);
+ if (DECL_CLASS_SCOPE_P (code_pattern))
+ pattern_defined = ! DECL_IN_AGGR_P (code_pattern);
+ else
+ pattern_defined = ! DECL_EXTERNAL (code_pattern);
}
/* We may be in the middle of deferred access check. Disable it now. */
if (0 && flag_checking && cxx_dialect >= cxx11
/* Don't do this during nsdmi parsing as it can lead to
unexpected recursive instantiations. */
- && !parsing_nsdmi ())
+ && !parsing_nsdmi ()
+ /* Don't do this during concept expansion either and for
+ the same reason. */
+ && !expanding_concept ())
fold_non_dependent_expr (expr);
/* Preserve OVERLOADs; the functions must be available to resolve
else
expr = build_concept_check (build_overload (tmpl, NULL_TREE), type, args);
- tree constr = make_predicate_constraint (expr);
+ tree constr = normalize_expression (expr);
PLACEHOLDER_TYPE_CONSTRAINTS (type) = constr;
/* Our canonical type depends on the constraint. */
/* Replace occurrences of 'auto' in TYPE with the appropriate type deduced
from INIT. AUTO_NODE is the TEMPLATE_TYPE_PARM used for 'auto' in TYPE.
The CONTEXT determines the context in which auto deduction is performed
- and is used to control error diagnostics. */
+ and is used to control error diagnostics.
+
+ For partial-concept-ids, extra args may be appended to the list of deduced
+ template arguments prior to determining constraint satisfaction. */
tree
do_auto_deduction (tree type, tree init, tree auto_node,
if (AUTO_IS_DECLTYPE (auto_node))
{
- bool id = (DECL_P (init) || (TREE_CODE (init) == COMPONENT_REF
- && !REF_PARENTHESIZED_P (init)));
+ bool id = (DECL_P (init)
+ || ((TREE_CODE (init) == COMPONENT_REF
+ || TREE_CODE (init) == SCOPE_REF)
+ && !REF_PARENTHESIZED_P (init)));
targs = make_tree_vec (1);
TREE_VEC_ELT (targs, 0)
= finish_decltype_type (init, id, tf_warning_or_error);
if (flag_concepts && !processing_template_decl)
if (tree constr = PLACEHOLDER_TYPE_CONSTRAINTS (auto_node))
{
- /* Use the deduced type to check the associated constraints. */
- if (!constraints_satisfied_p (constr, targs))
+ /* Use the deduced type to check the associated constraints. If we
+ have a partial-concept-id, rebuild the argument list so that
+ we check using the extra arguments. */
+ gcc_assert (TREE_CODE (constr) == CHECK_CONSTR);
+ tree cargs = CHECK_CONSTR_ARGS (constr);
+ if (TREE_VEC_LENGTH (cargs) > 1)
+ {
+ cargs = copy_node (cargs);
+ TREE_VEC_ELT (cargs, 0) = TREE_VEC_ELT (targs, 0);
+ }
+ else
+ cargs = targs;
+ if (!constraints_satisfied_p (constr, cargs))
{
if (complain & tf_warning_or_error)
{
static GTY (()) hash_table<constr_hasher> *decl_constraints;
-/* Returns true iff cinfo contains a valid set of constraints.
- This is the case when the associated requirements have been
- successfully decomposed into lists of atomic constraints.
- That is, when the saved assumptions are not error_mark_node. */
-
-bool
-valid_constraints_p (tree cinfo)
-{
- gcc_assert (cinfo);
- return CI_ASSUMPTIONS (cinfo) != error_mark_node;
-}
-
/* Returns the template constraints of declaration T. If T is not
constrained, return NULL_TREE. Note that T must be non-null. */
tree
get_constraints (tree t)
{
+ if (!flag_concepts)
+ return NULL_TREE;
+
gcc_assert (DECL_P (t));
if (TREE_CODE (t) == TEMPLATE_DECL)
t = DECL_TEMPLATE_RESULT (t);
{
if (!ci)
return;
- gcc_assert (t);
+ gcc_assert (t && flag_concepts);
if (TREE_CODE (t) == TEMPLATE_DECL)
t = DECL_TEMPLATE_RESULT (t);
gcc_assert (!get_constraints (t));
decl_constraints->clear_slot (slot);
}
+/* Memoized satisfaction results for declarations. This
+ maps the pair (constraint_info, arguments) to the result computed
+ by constraints_satisfied_p. */
+
+struct GTY((for_user)) constraint_sat_entry
+{
+ tree ci;
+ tree args;
+ tree result;
+};
+
+/* Hashing function and equality for constraint entries. */
+
+struct constraint_sat_hasher : ggc_ptr_hash<constraint_sat_entry>
+{
+ static hashval_t hash (constraint_sat_entry *e)
+ {
+ hashval_t val = iterative_hash_object(e->ci, 0);
+ return iterative_hash_template_arg (e->args, val);
+ }
+
+ static bool equal (constraint_sat_entry *e1, constraint_sat_entry *e2)
+ {
+ return e1->ci == e2->ci && comp_template_args (e1->args, e2->args);
+ }
+};
+
+/* Memoized satisfaction results for concept checks. */
+
+struct GTY((for_user)) concept_spec_entry
+{
+ tree tmpl;
+ tree args;
+ tree result;
+};
+
+/* Hashing function and equality for constraint entries. */
+
+struct concept_spec_hasher : ggc_ptr_hash<concept_spec_entry>
+{
+ static hashval_t hash (concept_spec_entry *e)
+ {
+ return hash_tmpl_and_args (e->tmpl, e->args);
+ }
+
+ static bool equal (concept_spec_entry *e1, concept_spec_entry *e2)
+ {
+ ++comparing_specializations;
+ bool eq = e1->tmpl == e2->tmpl && comp_template_args (e1->args, e2->args);
+ --comparing_specializations;
+ return eq;
+ }
+};
+
+static GTY (()) hash_table<constraint_sat_hasher> *constraint_memos;
+static GTY (()) hash_table<concept_spec_hasher> *concept_memos;
+
+/* Search for a memoized satisfaction result. Returns one of the
+ truth value nodes if previously memoized, or NULL_TREE otherwise. */
+
+tree
+lookup_constraint_satisfaction (tree ci, tree args)
+{
+ constraint_sat_entry elt = { ci, args, NULL_TREE };
+ constraint_sat_entry* found = constraint_memos->find (&elt);
+ if (found)
+ return found->result;
+ else
+ return NULL_TREE;
+}
+
+/* Memoize the result of a satisfication test. Returns the saved result. */
+
+tree
+memoize_constraint_satisfaction (tree ci, tree args, tree result)
+{
+ constraint_sat_entry elt = {ci, args, result};
+ constraint_sat_entry** slot = constraint_memos->find_slot (&elt, INSERT);
+ constraint_sat_entry* entry = ggc_alloc<constraint_sat_entry> ();
+ *entry = elt;
+ *slot = entry;
+ return result;
+}
+
+/* Search for a memoized satisfaction result for a concept. */
+
+tree
+lookup_concept_satisfaction (tree tmpl, tree args)
+{
+ concept_spec_entry elt = { tmpl, args, NULL_TREE };
+ concept_spec_entry* found = concept_memos->find (&elt);
+ if (found)
+ return found->result;
+ else
+ return NULL_TREE;
+}
+
+/* Memoize the result of a concept check. Returns the saved result. */
+
+tree
+memoize_concept_satisfaction (tree tmpl, tree args, tree result)
+{
+ concept_spec_entry elt = {tmpl, args, result};
+ concept_spec_entry** slot = concept_memos->find_slot (&elt, INSERT);
+ concept_spec_entry* entry = ggc_alloc<concept_spec_entry> ();
+ *entry = elt;
+ *slot = entry;
+ return result;
+}
+
+static GTY (()) hash_table<concept_spec_hasher> *concept_expansions;
+
+/* Returns a prior concept specialization. This returns the substituted
+ and normalized constraints defined by the concept. */
+
+tree
+get_concept_expansion (tree tmpl, tree args)
+{
+ concept_spec_entry elt = { tmpl, args, NULL_TREE };
+ concept_spec_entry* found = concept_expansions->find (&elt);
+ if (found)
+ return found->result;
+ else
+ return NULL_TREE;
+}
+
+/* Save a concept expansion for later. */
+
+tree
+save_concept_expansion (tree tmpl, tree args, tree def)
+{
+ concept_spec_entry elt = {tmpl, args, def};
+ concept_spec_entry** slot = concept_expansions->find_slot (&elt, INSERT);
+ concept_spec_entry* entry = ggc_alloc<concept_spec_entry> ();
+ *entry = elt;
+ *slot = entry;
+ return def;
+}
+
+static hashval_t
+hash_subsumption_args (tree t1, tree t2)
+{
+ gcc_assert (TREE_CODE (t1) == CHECK_CONSTR);
+ gcc_assert (TREE_CODE (t2) == CHECK_CONSTR);
+ int val = 0;
+ val = iterative_hash_object (CHECK_CONSTR_CONCEPT (t1), val);
+ val = iterative_hash_template_arg (CHECK_CONSTR_ARGS (t1), val);
+ val = iterative_hash_object (CHECK_CONSTR_CONCEPT (t2), val);
+ val = iterative_hash_template_arg (CHECK_CONSTR_ARGS (t2), val);
+ return val;
+}
+
+/* Compare the constraints of two subsumption entries. The LEFT1 and
+ LEFT2 arguments comprise the first subsumption pair and the RIGHT1
+ and RIGHT2 arguments comprise the second. These are all CHECK_CONSTRs. */
+
+static bool
+comp_subsumption_args (tree left1, tree left2, tree right1, tree right2)
+{
+ if (CHECK_CONSTR_CONCEPT (left1) == CHECK_CONSTR_CONCEPT (right1))
+ if (CHECK_CONSTR_CONCEPT (left2) == CHECK_CONSTR_CONCEPT (right2))
+ if (comp_template_args (CHECK_CONSTR_ARGS (left1),
+ CHECK_CONSTR_ARGS (right1)))
+ return comp_template_args (CHECK_CONSTR_ARGS (left2),
+ CHECK_CONSTR_ARGS (right2));
+ return false;
+}
+
+/* Key/value pair for learning and memoizing subsumption results. This
+ associates a pair of check constraints (including arguments) with
+ a boolean value indicating the result. */
+
+struct GTY((for_user)) subsumption_entry
+{
+ tree t1;
+ tree t2;
+ bool result;
+};
+
+/* Hashing function and equality for constraint entries. */
+
+struct subsumption_hasher : ggc_ptr_hash<subsumption_entry>
+{
+ static hashval_t hash (subsumption_entry *e)
+ {
+ return hash_subsumption_args (e->t1, e->t2);
+ }
+
+ static bool equal (subsumption_entry *e1, subsumption_entry *e2)
+ {
+ ++comparing_specializations;
+ bool eq = comp_subsumption_args(e1->t1, e1->t2, e2->t1, e2->t2);
+ --comparing_specializations;
+ return eq;
+ }
+};
+
+static GTY (()) hash_table<subsumption_hasher> *subsumption_table;
+
+/* Search for a previously cached subsumption result. */
+
+bool*
+lookup_subsumption_result (tree t1, tree t2)
+{
+ subsumption_entry elt = { t1, t2, false };
+ subsumption_entry* found = subsumption_table->find (&elt);
+ if (found)
+ return &found->result;
+ else
+ return 0;
+}
+
+/* Save a subsumption result. */
+
+bool
+save_subsumption_result (tree t1, tree t2, bool result)
+{
+ subsumption_entry elt = {t1, t2, result};
+ subsumption_entry** slot = subsumption_table->find_slot (&elt, INSERT);
+ subsumption_entry* entry = ggc_alloc<subsumption_entry> ();
+ *entry = elt;
+ *slot = entry;
+ return result;
+}
+
/* Set up the hash table for constraint association. */
void
init_constraint_processing (void)
{
+ if (!flag_concepts)
+ return;
+
decl_constraints = hash_table<constr_hasher>::create_ggc(37);
+ constraint_memos = hash_table<constraint_sat_hasher>::create_ggc(37);
+ concept_memos = hash_table<concept_spec_hasher>::create_ggc(37);
+ concept_expansions = hash_table<concept_spec_hasher>::create_ggc(37);
+ subsumption_table = hash_table<subsumption_hasher>::create_ggc(37);
}
/* Set up the hash tables for template instantiations. */
indent+4);
print_node (file, "associated_constr",
cinfo->associated_constr, indent+4);
- print_node_brief (file, "assumptions", cinfo->assumptions, indent+4);
break;
}
case ARGUMENT_PACK_SELECT:
in default arguments for template parameters), and access
checking should be performed in the outermost parameter list. */
if (processing_template_decl
+ && !expanding_concept ()
&& (!processing_template_parmlist || processing_template_decl > 1))
return 1;
&& TREE_CODE (expr) != SCOPE_REF)
return expr;
- if (TREE_CODE (expr) == COMPONENT_REF)
+ if (TREE_CODE (expr) == COMPONENT_REF
+ || TREE_CODE (expr) == SCOPE_REF)
REF_PARENTHESIZED_P (expr) = true;
- else if (type_dependent_expression_p (expr)
- /* When processing_template_decl, a SCOPE_REF may actually be
- referring to a non-static data member of the current class, in
- which case its TREE_TYPE may not be properly cv-qualified (the
- cv-qualifiers of the implicit *this object haven't yet been taken
- into account) so we have to delay building a static_cast until
- instantiation. */
- || (processing_template_decl
- && TREE_CODE (expr) == SCOPE_REF))
+ else if (type_dependent_expression_p (expr))
expr = build1 (PAREN_EXPR, TREE_TYPE (expr), expr);
else if (VAR_P (expr) && DECL_HARD_REGISTER (expr))
/* We can't bind a hard register variable to a reference. */;
if (TREE_TYPE (result) == return_type)
return;
+ if (!processing_template_decl && !VOID_TYPE_P (return_type)
+ && !complete_type_or_else (return_type, NULL_TREE))
+ return;
+
/* We already have a DECL_RESULT from start_preparsed_function.
Now we need to redo the work it and allocate_struct_function
did to reflect the new type. */
if (!processing_template_decl)
{
- if (!VOID_TYPE_P (TREE_TYPE (result)))
- complete_type_or_else (TREE_TYPE (result), NULL_TREE);
bool aggr = aggregate_value_p (result, fco);
#ifdef PCC_STATIC_STRUCT_RETURN
cfun->returns_pcc_struct = aggr;
return cp_tree_equal (CI_ASSOCIATED_CONSTRAINTS (t1),
CI_ASSOCIATED_CONSTRAINTS (t2));
+ case CHECK_CONSTR:
+ return (CHECK_CONSTR_CONCEPT (t1) == CHECK_CONSTR_CONCEPT (t2)
+ && comp_template_args (CHECK_CONSTR_ARGS (t1),
+ CHECK_CONSTR_ARGS (t2)));
+
case TREE_VEC:
{
unsigned ix;
}
expr = build_conditional_expr (loc, ifexp, op1, op2, complain);
- if (processing_template_decl && expr != error_mark_node
- && TREE_CODE (expr) != VEC_COND_EXPR)
+ if (processing_template_decl && expr != error_mark_node)
{
tree min = build_min_non_dep (COND_EXPR, expr,
orig_ifexp, orig_op1, orig_op2);
break;
case TYPENAME_TYPE:
+ case DECLTYPE_TYPE:
emit_diagnostic (diag_kind, loc, 0,
"invalid use of dependent type %qT", type);
break;
@c alone is too unspecific and must be avoided.
@anchor{x-x-solaris2}
@heading *-*-solaris2*
-Support for Solaris 9 has been removed in GCC 4.10. Support for Solaris
+Support for Solaris 9 has been removed in GCC 5. Support for Solaris
8 has been removed in GCC 4.8. Support for Solaris 7 has been removed
in GCC 4.6.
plugin (@option{-fuse-linker-plugin}) with GNU @command{ld}, GNU
binutils @emph{must} be configured with @option{--enable-largefile}.
-To enable symbol versioning in @samp{libstdc++} with Solaris @command{ld},
+To enable symbol versioning in @samp{libstdc++} with the Solaris linker,
you need to have any version of GNU @command{c++filt}, which is part of
GNU binutils. @samp{libstdc++} symbol versioning will be disabled if no
-appropriate version is found. Solaris @command{c++filt} from the Solaris Studio
-compilers does @emph{not} work.
+appropriate version is found. Solaris @command{c++filt} from the Solaris
+Studio compilers does @emph{not} work.
+
+GNU @command{make} version 3.81 or later is required to build libjava
+with the Solaris linker.
Sun bug 4927647 sometimes causes random spurious testsuite failures
related to missing diagnostic output. This bug doesn't affect GCC
static vec<dw_die_ref> base_types;
+/* Pointer to vector of DW_TAG_string_type DIEs that need finalization
+ once all arguments are parsed. */
+static vec<dw_die_ref> *string_types;
+
/* Flags to represent a set of attribute classes for attributes that represent
a scalar value (bounds, pointers, ...). */
enum dw_scalar_form
if (size >= 0)
add_AT_unsigned (array_die, DW_AT_byte_size, size);
else if (TYPE_DOMAIN (type) != NULL_TREE
- && TYPE_MAX_VALUE (TYPE_DOMAIN (type)) != NULL_TREE
- && DECL_P (TYPE_MAX_VALUE (TYPE_DOMAIN (type))))
+ && TYPE_MAX_VALUE (TYPE_DOMAIN (type)) != NULL_TREE)
{
tree szdecl = TYPE_MAX_VALUE (TYPE_DOMAIN (type));
- dw_loc_list_ref loc = loc_list_from_tree (szdecl, 2, NULL);
+ tree rszdecl = szdecl;
+ HOST_WIDE_INT rsize = 0;
size = int_size_in_bytes (TREE_TYPE (szdecl));
- if (loc && size > 0)
+ if (!DECL_P (szdecl))
{
- add_AT_location_description (array_die, DW_AT_string_length, loc);
- if (size != DWARF2_ADDR_SIZE)
- add_AT_unsigned (array_die, DW_AT_byte_size, size);
+ if (TREE_CODE (szdecl) == INDIRECT_REF
+ && DECL_P (TREE_OPERAND (szdecl, 0)))
+ {
+ rszdecl = TREE_OPERAND (szdecl, 0);
+ rsize = int_size_in_bytes (TREE_TYPE (rszdecl));
+ if (rsize <= 0)
+ size = 0;
+ }
+ else
+ size = 0;
+ }
+ if (size > 0)
+ {
+ dw_loc_list_ref loc = loc_list_from_tree (szdecl, 2, NULL);
+ if (loc == NULL
+ && early_dwarf
+ && current_function_decl
+ && DECL_CONTEXT (rszdecl) == current_function_decl)
+ {
+ dw_die_ref ref = lookup_decl_die (rszdecl);
+ dw_loc_descr_ref l = NULL;
+ if (ref)
+ {
+ l = new_loc_descr (DW_OP_call4, 0, 0);
+ l->dw_loc_oprnd1.val_class = dw_val_class_die_ref;
+ l->dw_loc_oprnd1.v.val_die_ref.die = ref;
+ l->dw_loc_oprnd1.v.val_die_ref.external = 0;
+ }
+ else if (TREE_CODE (rszdecl) == PARM_DECL
+ && string_types)
+ {
+ l = new_loc_descr (DW_OP_call4, 0, 0);
+ l->dw_loc_oprnd1.val_class = dw_val_class_decl_ref;
+ l->dw_loc_oprnd1.v.val_decl_ref = rszdecl;
+ string_types->safe_push (array_die);
+ }
+ if (l && rszdecl != szdecl)
+ {
+ if (rsize == DWARF2_ADDR_SIZE)
+ add_loc_descr (&l, new_loc_descr (DW_OP_deref,
+ 0, 0));
+ else
+ add_loc_descr (&l, new_loc_descr (DW_OP_deref_size,
+ rsize, 0));
+ }
+ if (l)
+ loc = new_loc_list (l, NULL, NULL, NULL);
+ }
+ if (loc)
+ {
+ add_AT_location_description (array_die, DW_AT_string_length,
+ loc);
+ if (size != DWARF2_ADDR_SIZE)
+ add_AT_unsigned (array_die, DW_AT_byte_size, size);
+ }
}
}
return;
add_pubtype (type, array_die);
}
+/* After all arguments are created, adjust any DW_TAG_string_type
+ DIEs DW_AT_string_length attributes. */
+
+static void
+adjust_string_types (void)
+{
+ dw_die_ref array_die;
+ unsigned int i;
+ FOR_EACH_VEC_ELT (*string_types, i, array_die)
+ {
+ dw_attr_node *a = get_AT (array_die, DW_AT_string_length);
+ if (a == NULL)
+ continue;
+ dw_loc_descr_ref loc = AT_loc (a);
+ gcc_assert (loc->dw_loc_opc == DW_OP_call4
+ && loc->dw_loc_oprnd1.val_class == dw_val_class_decl_ref);
+ dw_die_ref ref = lookup_decl_die (loc->dw_loc_oprnd1.v.val_decl_ref);
+ if (ref)
+ {
+ loc->dw_loc_oprnd1.val_class = dw_val_class_die_ref;
+ loc->dw_loc_oprnd1.v.val_die_ref.die = ref;
+ loc->dw_loc_oprnd1.v.val_die_ref.external = 0;
+ }
+ else
+ {
+ remove_AT (array_die, DW_AT_string_length);
+ remove_AT (array_die, DW_AT_byte_size);
+ }
+ }
+}
+
/* This routine generates DIE for array with hidden descriptor, details
are filled into *info by a langhook. */
tree generic_decl_parm = generic_decl
? DECL_ARGUMENTS (generic_decl)
: NULL;
+ auto_vec<dw_die_ref> string_types_vec;
+ if (string_types == NULL)
+ string_types = &string_types_vec;
/* Now we want to walk the list of parameters of the function and
emit their relevant DIEs.
void_type_node 2) an unprototyped function declaration (not a
definition). This just means that we have no info about the
parameters at all. */
- if (prototype_p (TREE_TYPE (decl)))
+ if (early_dwarf)
{
- /* This is the prototyped case, check for.... */
- if (stdarg_p (TREE_TYPE (decl)))
+ if (prototype_p (TREE_TYPE (decl)))
+ {
+ /* This is the prototyped case, check for.... */
+ if (stdarg_p (TREE_TYPE (decl)))
+ gen_unspecified_parameters_die (decl, subr_die);
+ }
+ else if (DECL_INITIAL (decl) == NULL_TREE)
gen_unspecified_parameters_die (decl, subr_die);
}
- else if (DECL_INITIAL (decl) == NULL_TREE)
- gen_unspecified_parameters_die (decl, subr_die);
+
+ /* Adjust DW_TAG_string_type DIEs if needed, now that all arguments
+ have DIEs. */
+ if (string_types == &string_types_vec)
+ {
+ adjust_string_types ();
+ string_types = NULL;
+ }
}
if (subr_die != old_die)
}
}
+/* Return NULL if l is a DWARF expression, or first op that is not
+ valid DWARF expression. */
+
+static dw_loc_descr_ref
+non_dwarf_expression (dw_loc_descr_ref l)
+{
+ while (l)
+ {
+ if (l->dw_loc_opc >= DW_OP_reg0 && l->dw_loc_opc <= DW_OP_reg31)
+ return l;
+ switch (l->dw_loc_opc)
+ {
+ case DW_OP_regx:
+ case DW_OP_implicit_value:
+ case DW_OP_stack_value:
+ case DW_OP_GNU_implicit_pointer:
+ case DW_OP_GNU_parameter_ref:
+ case DW_OP_piece:
+ case DW_OP_bit_piece:
+ return l;
+ default:
+ break;
+ }
+ l = l->dw_loc_next;
+ }
+ return NULL;
+}
+
+/* Return adjusted copy of EXPR:
+ If it is empty DWARF expression, return it.
+ If it is valid non-empty DWARF expression,
+ return copy of EXPR with copy of DEREF appended to it.
+ If it is DWARF expression followed by DW_OP_reg{N,x}, return
+ copy of the DWARF expression with DW_OP_breg{N,x} <0> appended
+ and no DEREF.
+ If it is DWARF expression followed by DW_OP_stack_value, return
+ copy of the DWARF expression without anything appended.
+ Otherwise, return NULL. */
+
+static dw_loc_descr_ref
+copy_deref_exprloc (dw_loc_descr_ref expr, dw_loc_descr_ref deref)
+{
+
+ if (expr == NULL)
+ return NULL;
+
+ dw_loc_descr_ref l = non_dwarf_expression (expr);
+ if (l && l->dw_loc_next)
+ return NULL;
+
+ if (l)
+ {
+ if (l->dw_loc_opc >= DW_OP_reg0 && l->dw_loc_opc <= DW_OP_reg31)
+ deref = new_loc_descr ((enum dwarf_location_atom)
+ (DW_OP_breg0 + (l->dw_loc_opc - DW_OP_reg0)),
+ 0, 0);
+ else
+ switch (l->dw_loc_opc)
+ {
+ case DW_OP_regx:
+ deref = new_loc_descr (DW_OP_bregx,
+ l->dw_loc_oprnd1.v.val_unsigned, 0);
+ break;
+ case DW_OP_stack_value:
+ deref = NULL;
+ break;
+ default:
+ return NULL;
+ }
+ }
+ else
+ deref = new_loc_descr (deref->dw_loc_opc,
+ deref->dw_loc_oprnd1.v.val_int, 0);
+
+ dw_loc_descr_ref ret = NULL, *p = &ret;
+ while (expr != l)
+ {
+ *p = new_loc_descr (expr->dw_loc_opc, 0, 0);
+ (*p)->dw_loc_oprnd1 = expr->dw_loc_oprnd1;
+ (*p)->dw_loc_oprnd2 = expr->dw_loc_oprnd2;
+ p = &(*p)->dw_loc_next;
+ expr = expr->dw_loc_next;
+ }
+ *p = deref;
+ return ret;
+}
+
+/* For DW_AT_string_length attribute with DW_OP_call4 reference to a variable
+ or argument, adjust it if needed and return:
+ -1 if the DW_AT_string_length attribute and DW_AT_byte_size attribute
+ if present should be removed
+ 0 keep the attribute as is if the referenced var or argument has
+ only DWARF expression that covers all ranges
+ 1 if the attribute has been successfully adjusted. */
+
+static int
+optimize_string_length (dw_attr_node *a)
+{
+ dw_loc_descr_ref l = AT_loc (a), lv;
+ dw_die_ref die = l->dw_loc_oprnd1.v.val_die_ref.die;
+ dw_attr_node *av = get_AT (die, DW_AT_location);
+ dw_loc_list_ref d;
+ bool non_dwarf_expr = false;
+
+ if (av == NULL)
+ return -1;
+ switch (AT_class (av))
+ {
+ case dw_val_class_loc_list:
+ for (d = AT_loc_list (av); d != NULL; d = d->dw_loc_next)
+ if (d->expr && non_dwarf_expression (d->expr))
+ non_dwarf_expr = true;
+ break;
+ case dw_val_class_loc:
+ lv = AT_loc (av);
+ if (lv == NULL)
+ return -1;
+ if (non_dwarf_expression (lv))
+ non_dwarf_expr = true;
+ break;
+ default:
+ return -1;
+ }
+
+ /* If it is safe to keep DW_OP_call4 in, keep it. */
+ if (!non_dwarf_expr
+ && (l->dw_loc_next == NULL || AT_class (av) == dw_val_class_loc))
+ return 0;
+
+ /* If not dereferencing the DW_OP_call4 afterwards, we can just
+ copy over the DW_AT_location attribute from die to a. */
+ if (l->dw_loc_next == NULL)
+ {
+ a->dw_attr_val = av->dw_attr_val;
+ return 1;
+ }
+
+ dw_loc_list_ref list, *p;
+ switch (AT_class (av))
+ {
+ case dw_val_class_loc_list:
+ p = &list;
+ list = NULL;
+ for (d = AT_loc_list (av); d != NULL; d = d->dw_loc_next)
+ {
+ lv = copy_deref_exprloc (d->expr, l->dw_loc_next);
+ if (lv)
+ {
+ *p = new_loc_list (lv, d->begin, d->end, d->section);
+ p = &(*p)->dw_loc_next;
+ }
+ }
+ if (list == NULL)
+ return -1;
+ a->dw_attr_val.val_class = dw_val_class_loc_list;
+ gen_llsym (list);
+ *AT_loc_list_ptr (a) = list;
+ return 1;
+ case dw_val_class_loc:
+ lv = copy_deref_exprloc (AT_loc (av), l->dw_loc_next);
+ if (lv == NULL)
+ return -1;
+ a->dw_attr_val.v.val_loc = lv;
+ return 1;
+ default:
+ gcc_unreachable ();
+ }
+}
+
/* Resolve DW_OP_addr and DW_AT_const_value CONST_STRING arguments to
an address in .rodata section if the string literal is emitted there,
or remove the containing location list or replace DW_AT_const_value
dw_attr_node *a;
dw_loc_list_ref *curr, *start, loc;
unsigned ix;
+ bool remove_AT_byte_size = false;
FOR_EACH_VEC_SAFE_ELT (die->die_attr, ix, a)
switch (AT_class (a))
case dw_val_class_loc:
{
dw_loc_descr_ref l = AT_loc (a);
+ /* Using DW_OP_call4 or DW_OP_call4 DW_OP_deref in
+ DW_AT_string_length is only a rough approximation; unfortunately
+ DW_AT_string_length can't be a reference to a DIE. DW_OP_call4
+ needs a DWARF expression, while DW_AT_location of the referenced
+ variable or argument might be any location description. */
+ if (a->dw_attr == DW_AT_string_length
+ && l
+ && l->dw_loc_opc == DW_OP_call4
+ && l->dw_loc_oprnd1.val_class == dw_val_class_die_ref
+ && (l->dw_loc_next == NULL
+ || (l->dw_loc_next->dw_loc_next == NULL
+ && (l->dw_loc_next->dw_loc_opc == DW_OP_deref
+ || l->dw_loc_next->dw_loc_opc != DW_OP_deref_size))))
+ {
+ switch (optimize_string_length (a))
+ {
+ case -1:
+ remove_AT (die, a->dw_attr);
+ ix--;
+ /* For DWARF4 and earlier, if we drop DW_AT_string_length,
+ we need to drop also DW_AT_byte_size. */
+ remove_AT_byte_size = true;
+ continue;
+ default:
+ break;
+ case 1:
+ /* Even if we keep the optimized DW_AT_string_length,
+ it might have changed AT_class, so process it again. */
+ ix--;
+ continue;
+ }
+ }
/* For -gdwarf-2 don't attempt to optimize
DW_AT_data_member_location containing
DW_OP_plus_uconst - older consumers might
break;
}
+ if (remove_AT_byte_size)
+ remove_AT (die, DW_AT_byte_size);
+
FOR_EACH_CHILD (die, c, resolve_addr (c));
}
\f
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
+2016-08-16 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ Backport from trunk
+ * frontend-passes.c (create_var): Set ts.deferred for
+ deferred-length character variables.
+ * dump-parse-tree.c (show_typespec): Also dump
+ is_c_interop, is_iso_c and deferred flags.
+
+2016-08-15 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/71906
+ * trans-decl.c (gfc_get_symbol_decl): Call gfc_finish_var_decl
+ for decl's character length before gfc_finish_var_decl on the
+ decl itself.
+
+2016-08-11 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ Backport from trunk:
+ PR fortran/71936
+ * trans-array.c (gfc_array_allocate): When SOURCE= is a function
+ stick with the ref of the object to allocate.
+
+2016-08-11 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ Backport from trunk
+ PR fortran/72698
+ * trans-stmt.c (gfc_trans_allocate): Prevent generating code for
+ copy of zero sized string and with it an ICE.
+
+2016-08-08 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ Backport from trunk:
+ PR fortran/70524
+ * trans-array.c (gfc_trans_dummy_array_bias): Ensure that the
+ location information is correctly set.
+ * trans-decl.c (gfc_trans_deferred_vars): Set the locus of the
+ current construct early.
+
+2016-08-07 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR fortran/71795
+ Backport from trunk
+ * frontend-passes.c (combine_array_constructor): Don't
+ do anything if the expression is inside an array iterator.
+
+2016-07-28 Steven G. Kargl <kargl@gcc.gnu.org>
+ Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ Backported from trunk:
+ PR fortran/71883
+ * frontend-passes.c (gfc_run_passes): Bail out if there are any
+ errors.
+ * error.c (gfc_internal_error): If there are any errors in the
+ buffer, exit with EXIT_FAILURE.
+
+2016-07-22 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ Backported from trunk:
+ PR fortran/71807
+ * trans-expr.c (gfc_trans_subcomponent_assign): Special casing
+ when allocatable component is set to null() in initializer.
+
+2016-07-22 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ Backport from trunk:
+ PR fortran/70842
+ * simplify.c (gfc_simplify_len): Only for unlimited polymorphic
+ types replace the expression's _data ref with a _len ref.
+
+2016-07-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ Backport from trunk:
+ PR fortran/71764
+ * trans-expr.c (gfc_trans_structure_assign): Remove assert.
+
+2016-07-13 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ Backport from trunk:
+ PR fortran/71623
+ * trans-stmt.c (gfc_trans_allocate): Add code of pre block of typespec
+ in allocate to parent block.
+
2016-07-09 Thomas Koenig <tkoenig@gcc.gnu.org>
Backport from trunk:
fprintf (dumpfile, "%d", ts->kind);
break;
}
+ if (ts->is_c_interop)
+ fputs (" C_INTEROP", dumpfile);
+
+ if (ts->is_iso_c)
+ fputs (" ISO_C", dumpfile);
+
+ if (ts->deferred)
+ fputs (" DEFERRED", dumpfile);
fputc (')', dumpfile);
}
void
gfc_internal_error (const char *gmsgid, ...)
{
+ int e, w;
va_list argp;
diagnostic_info diagnostic;
rich_location rich_loc (line_table, UNKNOWN_LOCATION);
+ gfc_get_errors (&w, &e);
+ if (e > 0)
+ exit(EXIT_FAILURE);
+
va_start (argp, gmsgid);
diagnostic_set_info (&diagnostic, gmsgid, &argp, &rich_loc, DK_ICE);
report_diagnostic (&diagnostic);
doloop_level = 0;
doloop_warn (ns);
doloop_list.release ();
+ int w, e;
if (flag_frontend_optimize)
{
expr_array.release ();
}
+ gfc_get_errors (&w, &e);
+ if (e > 0)
+ return;
+
if (flag_realloc_lhs)
realloc_strings (ns);
}
gfc_code *n;
gfc_namespace *ns;
int i;
+ bool deferred;
if (e->expr_type == EXPR_CONSTANT || is_fe_temp (e))
return gfc_copy_expr (e);
}
}
+ deferred = 0;
if (e->ts.type == BT_CHARACTER && e->rank == 0)
{
gfc_expr *length;
if (length)
symbol->ts.u.cl->length = length;
else
- symbol->attr.allocatable = 1;
+ {
+ symbol->attr.allocatable = 1;
+ deferred = 1;
+ }
}
symbol->attr.flavor = FL_VARIABLE;
result = gfc_get_expr ();
result->expr_type = EXPR_VARIABLE;
result->ts = e->ts;
+ result->ts.deferred = deferred;
result->rank = e->rank;
result->shape = gfc_copy_shape (e->shape, e->rank);
result->symtree = symtree;
if (forall_level > 0)
return false;
+ /* Inside an iterator, things can get hairy; we are likely to create
+ an invalid temporary variable. */
+ if (iterator_level > 0)
+ return false;
+
op1 = e->value.op.op1;
op2 = e->value.op.op2;
}
else if (e->expr_type == EXPR_VARIABLE && e->ts.type == BT_CHARACTER
&& e->symtree->n.sym
+ && e->symtree->n.sym->ts.type != BT_DERIVED
&& e->symtree->n.sym->assoc && e->symtree->n.sym->assoc->target
- && e->symtree->n.sym->assoc->target->ts.type == BT_DERIVED)
+ && e->symtree->n.sym->assoc->target->ts.type == BT_DERIVED
+ && e->symtree->n.sym->assoc->target->symtree->n.sym
+ && UNLIMITED_POLY (e->symtree->n.sym->assoc->target->symtree->n.sym))
+
/* The expression in assoc->target points to a ref to the _data component
of the unlimited polymorphic entity. To get the _len component the last
_data ref needs to be stripped and a ref to the _len component added. */
if (ref->u.ar.type == AR_FULL && expr3 != NULL)
{
+ gfc_ref *old_ref = ref;
/* F08:C633: Array shape from expr3. */
ref = expr3->ref;
/* Find the last reference in the chain. */
if (!retrieve_last_ref (&ref, &prev_ref))
- return false;
+ {
+ if (expr3->expr_type == EXPR_FUNCTION
+ && gfc_expr_attr (expr3).dimension)
+ ref = old_ref;
+ else
+ return false;
+ }
alloc_w_e3_arr_spec = true;
}
return;
}
+ loc.nextc = NULL;
gfc_save_backend_locus (&loc);
+ /* loc.nextc is not set by save_backend_locus but the location routines
+ depend on it. */
+ if (loc.nextc == NULL)
+ loc.nextc = loc.lb->line;
gfc_set_backend_locus (&sym->declared_at);
/* Descriptor type. */
&& !(sym->attr.use_assoc && !intrinsic_array_parameter)))
gfc_defer_symbol_init (sym);
+ /* Associate names can use the hidden string length variable
+ of their associated target. */
+ if (sym->ts.type == BT_CHARACTER
+ && TREE_CODE (length) != INTEGER_CST)
+ {
+ gfc_finish_var_decl (length, sym);
+ gcc_assert (!sym->value);
+ }
+
gfc_finish_var_decl (decl, sym);
if (sym->ts.type == BT_CHARACTER)
- {
- /* Character variables need special handling. */
- gfc_allocate_lang_decl (decl);
-
- /* Associate names can use the hidden string length variable
- of their associated target. */
- if (TREE_CODE (length) != INTEGER_CST)
- {
- gfc_finish_var_decl (length, sym);
- gcc_assert (!sym->value);
- }
- }
+ /* Character variables need special handling. */
+ gfc_allocate_lang_decl (decl);
else if (sym->attr.subref_array_pointer)
- {
- /* We need the span for these beasts. */
- gfc_allocate_lang_decl (decl);
- }
+ /* We need the span for these beasts. */
+ gfc_allocate_lang_decl (decl);
if (sym->attr.subref_array_pointer)
{
else if (proc_sym->as)
{
tree result = TREE_VALUE (current_fake_result_decl);
+ gfc_save_backend_locus (&loc);
+ gfc_set_backend_locus (&proc_sym->declared_at);
gfc_trans_dummy_array_bias (proc_sym, result, block);
/* An automatic character length, pointer array result. */
tmp = NULL;
if (proc_sym->ts.deferred)
{
- gfc_save_backend_locus (&loc);
- gfc_set_backend_locus (&proc_sym->declared_at);
gfc_start_block (&init);
tmp = gfc_null_and_pass_deferred_len (proc_sym, &init, &loc);
gfc_add_init_cleanup (block, gfc_finish_block (&init), tmp);
function has already called cgraph_create_node, which also created
the cgraph node for this function. */
if (!has_coarray_vars || flag_coarray != GFC_FCOARRAY_LIB)
- (void) cgraph_node::create (fndecl);
+ (void) cgraph_node::get_create (fndecl);
}
else
cgraph_node::finalize_function (fndecl, true);
tmp = gfc_trans_alloc_subarray_assign (tmp, cm, expr);
gfc_add_expr_to_block (&block, tmp);
}
+ else if (init && cm->attr.allocatable && expr->expr_type == EXPR_NULL)
+ {
+ /* NULL initialization for allocatable components. */
+ gfc_add_modify (&block, dest, fold_convert (TREE_TYPE (dest),
+ null_pointer_node));
+ }
else if (init && (cm->attr.allocatable
|| (cm->ts.type == BT_CLASS && CLASS_DATA (cm)->attr.allocatable
&& expr->ts.type != BT_CLASS)))
{
gfc_se se, lse;
- gcc_assert (cm->backend_decl == NULL);
gfc_init_se (&se, NULL);
gfc_init_se (&lse, NULL);
gfc_conv_expr (&se, gfc_constructor_first (expr->value.constructor)->expr);
}
gfc_add_block_to_block (&block, &se.pre);
gfc_add_block_to_block (&post, &se.post);
+
+ /* Special case when string in expr3 is zero. */
+ if (code->expr3->ts.type == BT_CHARACTER
+ && integer_zerop (se.string_length))
+ {
+ gfc_init_se (&se, NULL);
+ temp_var_needed = false;
+ expr3_len = integer_zero_node;
+ e3_is = E3_MOLD;
+ }
/* Prevent aliasing, i.e., se.expr may be already a
variable declaration. */
- if (se.expr != NULL_TREE && temp_var_needed)
+ else if (se.expr != NULL_TREE && temp_var_needed)
{
tree var, desc;
tmp = GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (se.expr)) || is_coarray ?
gcc_assert (expr3_esize);
expr3_esize = fold_convert (sizetype, expr3_esize);
if (e3_is == E3_MOLD)
- {
- /* The expr3 is no longer valid after this point. */
- expr3 = NULL_TREE;
- e3_is = E3_UNSET;
- }
+ /* The expr3 is no longer valid after this point. */
+ expr3 = NULL_TREE;
}
else if (code->ext.alloc.ts.type != BT_UNKNOWN)
{
tmp = gfc_get_char_type (code->ext.alloc.ts.kind);
tmp = TYPE_SIZE_UNIT (tmp);
tmp = fold_convert (TREE_TYPE (se_sz.expr), tmp);
+ gfc_add_block_to_block (&block, &se_sz.pre);
expr3_esize = fold_build2_loc (input_location, MULT_EXPR,
TREE_TYPE (se_sz.expr),
tmp, se_sz.expr);
+ expr3_esize = gfc_evaluate_now (expr3_esize, &block);
}
}
source= or mold= expression. */
gfc_init_se (&se_sz, NULL);
gfc_conv_expr (&se_sz, code->ext.alloc.ts.u.cl->length);
+ gfc_add_block_to_block (&block, &se_sz.pre);
gfc_add_modify (&block, al_len,
fold_convert (TREE_TYPE (al_len),
se_sz.expr));
specified by a type spec for deferred length character
arrays or unlimited polymorphic objects without a
source= or mold= expression. */
- gfc_init_se (&se_sz, NULL);
- gfc_conv_expr (&se_sz, code->ext.alloc.ts.u.cl->length);
- gfc_add_modify (&block, al_len,
- fold_convert (TREE_TYPE (al_len),
- se_sz.expr));
+ if (expr3_esize == NULL_TREE || code->ext.alloc.ts.kind != 1)
+ {
+ gfc_init_se (&se_sz, NULL);
+ gfc_conv_expr (&se_sz, code->ext.alloc.ts.u.cl->length);
+ gfc_add_block_to_block (&block, &se_sz.pre);
+ gfc_add_modify (&block, al_len,
+ fold_convert (TREE_TYPE (al_len),
+ se_sz.expr));
+ }
+ else
+ gfc_add_modify (&block, al_len,
+ fold_convert (TREE_TYPE (al_len),
+ expr3_esize));
}
else
/* No length information needed, because type to allocate
fold_convert (TREE_TYPE (al_len),
integer_zero_node));
}
- if (code->expr3 && !code->expr3->mold)
+ if (code->expr3 && !code->expr3->mold && e3_is != E3_MOLD)
{
/* Initialization via SOURCE block (or static default initializer).
Classes need some special handling, so catch them first. */
if (files_differ)
#endif
{
- temp_filename = save_string (temp_filename,
- temp_filename_length + 1);
+ temp_filename
+ = save_string (temp_filename,
+ temp_filename_length - 1);
obstack_grow (&obstack, temp_filename,
temp_filename_length);
arg_going = 1;
{
tree src_base, dest_base, fn;
HOST_WIDE_INT src_offset = 0, dest_offset = 0;
- HOST_WIDE_INT size = -1;
- HOST_WIDE_INT maxsize = -1;
- bool reverse;
+ HOST_WIDE_INT maxsize;
srcvar = TREE_OPERAND (src, 0);
- src_base = get_ref_base_and_extent (srcvar, &src_offset,
- &size, &maxsize, &reverse);
+ src_base = get_addr_base_and_unit_offset (srcvar, &src_offset);
+ if (src_base == NULL)
+ src_base = srcvar;
destvar = TREE_OPERAND (dest, 0);
- dest_base = get_ref_base_and_extent (destvar, &dest_offset,
- &size, &maxsize, &reverse);
+ dest_base = get_addr_base_and_unit_offset (destvar,
+ &dest_offset);
+ if (dest_base == NULL)
+ dest_base = destvar;
if (tree_fits_uhwi_p (len))
maxsize = tree_to_uhwi (len);
else
maxsize = -1;
- src_offset /= BITS_PER_UNIT;
- dest_offset /= BITS_PER_UNIT;
if (SSA_VAR_P (src_base)
&& SSA_VAR_P (dest_base))
{
n->value |= flags;
else
splay_tree_insert (ctx->variables, (splay_tree_key)decl, flags);
+
+ /* For reductions clauses in OpenACC loop directives, by default create a
+ copy clause on the enclosing parallel construct for carrying back the
+ results. */
+ if (ctx->region_type == ORT_ACC && (flags & GOVD_REDUCTION))
+ {
+ struct gimplify_omp_ctx *outer_ctx = ctx->outer_context;
+ while (outer_ctx)
+ {
+ n = splay_tree_lookup (outer_ctx->variables, (splay_tree_key)decl);
+ if (n != NULL)
+ {
+ /* Ignore local variables and explicitly declared clauses. */
+ if (n->value & (GOVD_LOCAL | GOVD_EXPLICIT))
+ break;
+ else if (outer_ctx->region_type == ORT_ACC_KERNELS)
+ {
+ /* According to the OpenACC spec, such a reduction variable
+ should already have a copy map on a kernels construct,
+ verify that here. */
+ gcc_assert (!(n->value & GOVD_FIRSTPRIVATE)
+ && (n->value & GOVD_MAP));
+ }
+ else if (outer_ctx->region_type == ORT_ACC_PARALLEL)
+ {
+ /* Remove firstprivate and make it a copy map. */
+ n->value &= ~GOVD_FIRSTPRIVATE;
+ n->value |= GOVD_MAP;
+ }
+ }
+ else if (outer_ctx->region_type == ORT_ACC_PARALLEL)
+ {
+ splay_tree_insert (outer_ctx->variables, (splay_tree_key)decl,
+ GOVD_MAP | GOVD_SEEN);
+ break;
+ }
+ outer_ctx = outer_ctx->outer_context;
+ }
+ }
}
/* Notice a threadprivate variable DECL used in OMP context CTX.
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-04-27 Release Manager
* GCC 6.1.0 released.
node->local.can_change_signature = !e;
}
}
+
+ /* Functions called by instrumentation thunk can't change signature
+ because instrumentation thunk modification is not supported. */
+ if (node->local.can_change_signature)
+ for (e = node->callers; e; e = e->next_caller)
+ if (e->caller->thunk.thunk_p
+ && e->caller->thunk.add_pointer_bounds_args)
+ {
+ node->local.can_change_signature = false;
+ break;
+ }
+
estimate_function_body_sizes (node, early);
for (e = node->callees; e; e = e->next_callee)
if (!maybe_in_construction && !maybe_derived_type)
return false;
+ /* If we are in fact not looking at any object object or the instance is
+ some placement new into a random load, give up straight away. */
+ if (TREE_CODE (instance) == MEM_REF)
+ return false;
+
/* We need to obtain refernce to virtual table pointer. It is better
to look it up in the code rather than build our own. This require bit
of pattern matching, but we end up verifying that what we found is
tci.offset = instance_offset;
tci.instance = instance;
tci.vtbl_ptr_ref = instance_ref;
- gcc_assert (TREE_CODE (instance) != MEM_REF);
tci.known_current_type = NULL_TREE;
tci.known_current_offset = 0;
tci.otr_type = otr_type;
if (is_gimple_reg_type (ptype))
{
unsigned malign = GET_MODE_ALIGNMENT (TYPE_MODE (ptype));
- if (TYPE_ALIGN (ptype) < malign)
+ if (TYPE_ALIGN (ptype) != malign)
ptype = build_aligned_type (ptype, malign);
}
}
);
}
qsort (sorted_loops, n, sizeof (ira_loop_tree_node_t), loop_compare_func);
- for (i = 0; n - i + 1 > IRA_MAX_LOOPS_NUM; i++)
+ for (i = 0; i < n - IRA_MAX_LOOPS_NUM; i++)
{
sorted_loops[i]->to_remove_p = true;
if (internal_flag_ira_verbose > 1 && ira_dump_file != NULL)
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR java/70839
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-04-27 Release Manager
* GCC 6.1.0 released.
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-04-27 Release Manager
* GCC 6.1.0 released.
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-04-27 Release Manager
* GCC 6.1.0 released.
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-04-27 Release Manager
* GCC 6.1.0 released.
make_edge (else_bb, new_bb, EDGE_FALLTHRU);
device = tmp_var;
+ gsi = gsi_last_bb (new_bb);
+ }
+ else
+ {
+ gsi = gsi_last_bb (new_bb);
+ device = force_gimple_operand_gsi (&gsi, device, true, NULL_TREE,
+ true, GSI_SAME_STMT);
}
- gsi = gsi_last_bb (new_bb);
t = gimple_omp_target_data_arg (entry_stmt);
if (t == NULL)
{
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
+2016-08-19 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.pot: Regenerate.
+
+2016-07-28 Joseph Myers <joseph@codesourcery.com>
+
+ * sv.po: Update.
+
2016-06-06 Joseph Myers <joseph@codesourcery.com>
* fr.po: Update.
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
-"POT-Creation-Date: 2016-04-21 15:24+0000\n"
+"POT-Creation-Date: 2016-08-19 21:03+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-#: cfgrtl.c:2654
+#: cfgrtl.c:2656
msgid "flow control insn inside a basic block"
msgstr ""
-#: cfgrtl.c:2886
+#: cfgrtl.c:2888
msgid "wrong insn in the fallthru edge"
msgstr ""
-#: cfgrtl.c:2943
+#: cfgrtl.c:2945
msgid "insn outside basic block"
msgstr ""
-#: cfgrtl.c:2950
+#: cfgrtl.c:2952
msgid "return not followed by barrier"
msgstr ""
msgid "const/copy propagation disabled"
msgstr ""
-#: diagnostic.c:212
+#: diagnostic.c:210
#, c-format
msgid "%s: all warnings being treated as errors"
msgstr ""
-#: diagnostic.c:217
+#: diagnostic.c:215
#, c-format
msgid "%s: some warnings being treated as errors"
msgstr ""
-#: diagnostic.c:292 input.c:169 c-family/c-opts.c:1310 cp/error.c:1193
-#: fortran/cpp.c:576 fortran/error.c:998 fortran/error.c:1018
+#: diagnostic.c:290 input.c:169 c-family/c-opts.c:1310 cp/error.c:1196
+#: fortran/cpp.c:576 fortran/error.c:996 fortran/error.c:1016
msgid "<built-in>"
msgstr ""
-#: diagnostic.c:451
+#: diagnostic.c:449
#, c-format
msgid "compilation terminated due to -Wfatal-errors.\n"
msgstr ""
-#: diagnostic.c:462
+#: diagnostic.c:460
#, c-format
msgid "compilation terminated due to -fmax-errors=%u.\n"
msgstr ""
-#: diagnostic.c:483
+#: diagnostic.c:481
#, c-format
msgid ""
"Please submit a full bug report,\n"
"with preprocessed source if appropriate.\n"
msgstr ""
-#: diagnostic.c:489
+#: diagnostic.c:487
#, c-format
msgid "See %s for instructions.\n"
msgstr ""
-#: diagnostic.c:498
+#: diagnostic.c:496
#, c-format
msgid "compilation terminated.\n"
msgstr ""
-#: diagnostic.c:787
+#: diagnostic.c:785
#, c-format
msgid "%s:%d: confused by earlier errors, bailing out\n"
msgstr ""
-#: diagnostic.c:1311
+#: diagnostic.c:1309
#, c-format
msgid "Internal compiler error: Error reporting routines re-entered.\n"
msgstr ""
" other options on to these processes the -W<letter> options must be used.\n"
msgstr ""
-#: gcc.c:5876
+#: gcc.c:5877
#, c-format
msgid "Processing spec (%s), which is '%s'\n"
msgstr ""
-#: gcc.c:6580
+#: gcc.c:6581
#, c-format
msgid "Target: %s\n"
msgstr ""
-#: gcc.c:6581
+#: gcc.c:6582
#, c-format
msgid "Configured with: %s\n"
msgstr ""
-#: gcc.c:6595
+#: gcc.c:6596
#, c-format
msgid "Thread model: %s\n"
msgstr ""
-#: gcc.c:6606
+#: gcc.c:6607
#, c-format
msgid "gcc version %s %s\n"
msgstr ""
-#: gcc.c:6609
+#: gcc.c:6610
#, c-format
msgid "gcc driver version %s %sexecuting gcc version %s\n"
msgstr ""
-#: gcc.c:6682 gcc.c:6894
+#: gcc.c:6683 gcc.c:6895
#, c-format
msgid ""
"The bug is not reproducible, so it is likely a hardware or OS problem.\n"
msgstr ""
-#: gcc.c:6818
+#: gcc.c:6819
#, c-format
msgid ""
"Preprocessed source stored into %s file, please attach this to your "
"bugreport.\n"
msgstr ""
-#: gcc.c:7757
+#: gcc.c:7761
#, c-format
msgid "install: %s%s\n"
msgstr ""
-#: gcc.c:7760
+#: gcc.c:7764
#, c-format
msgid "programs: %s\n"
msgstr ""
-#: gcc.c:7762
+#: gcc.c:7766
#, c-format
msgid "libraries: %s\n"
msgstr ""
-#: gcc.c:7879
+#: gcc.c:7883
#, c-format
msgid ""
"\n"
"For bug reporting instructions, please see:\n"
msgstr ""
-#: gcc.c:7895 gcov-tool.c:525
+#: gcc.c:7899 gcov-tool.c:525
#, c-format
msgid "%s %s%s\n"
msgstr ""
-#: gcc.c:7898 gcov-tool.c:527 gcov.c:504 fortran/gfortranspec.c:280
+#: gcc.c:7902 gcov-tool.c:527 gcov.c:504 fortran/gfortranspec.c:280
#: java/jcf-dump.c:1229
msgid "(C)"
msgstr ""
-#: gcc.c:7899 fortran/gfortranspec.c:281 java/jcf-dump.c:1230
+#: gcc.c:7903 fortran/gfortranspec.c:281 java/jcf-dump.c:1230
#, c-format
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
"\n"
msgstr ""
-#: gcc.c:8204
+#: gcc.c:8208
#, c-format
msgid ""
"\n"
"\n"
msgstr ""
-#: gcc.c:8205
+#: gcc.c:8209
#, c-format
msgid ""
"Use \"-Wl,OPTION\" to pass \"OPTION\" to the linker.\n"
"\n"
msgstr ""
-#: gcc.c:9497
+#: gcc.c:9501
#, c-format
msgid ""
"Assembler options\n"
"\n"
msgstr ""
-#: gcc.c:9498
+#: gcc.c:9502
#, c-format
msgid ""
"Use \"-Wa,OPTION\" to pass \"OPTION\" to the assembler.\n"
msgid "GCSE disabled"
msgstr ""
-#: gimple-ssa-isolate-paths.c:440 c/c-typeck.c:9766
+#: gimple-ssa-isolate-paths.c:440 c/c-typeck.c:9773
#, gcc-internal-format
msgid "function returns address of local variable"
msgstr ""
msgid "At top level:"
msgstr ""
-#: langhooks.c:393 cp/error.c:3299
+#: langhooks.c:393 cp/error.c:3315
#, c-format
msgid "In member function %qs"
msgstr ""
-#: langhooks.c:397 cp/error.c:3302
+#: langhooks.c:397 cp/error.c:3318
#, c-format
msgid "In function %qs"
msgstr ""
-#: langhooks.c:448 cp/error.c:3252
+#: langhooks.c:448 cp/error.c:3268
msgid " inlined from %qs at %r%s:%d:%d%R"
msgstr ""
-#: langhooks.c:453 cp/error.c:3257
+#: langhooks.c:453 cp/error.c:3273
msgid " inlined from %qs at %r%s:%d%R"
msgstr ""
-#: langhooks.c:459 cp/error.c:3263
+#: langhooks.c:459 cp/error.c:3279
#, c-format
msgid " inlined from %qs"
msgstr ""
msgid "collect: relinking\n"
msgstr ""
-#: toplev.c:331
+#: toplev.c:329
#, c-format
msgid "unrecoverable error"
msgstr ""
-#: toplev.c:640
+#: toplev.c:638
#, c-format
msgid ""
"%s%s%s %sversion %s (%s)\n"
"%s\tcompiled by GNU C version %s, "
msgstr ""
-#: toplev.c:642
+#: toplev.c:640
#, c-format
msgid "%s%s%s %sversion %s (%s) compiled by CC, "
msgstr ""
-#: toplev.c:646
+#: toplev.c:644
#, c-format
msgid "GMP version %s, MPFR version %s, MPC version %s, isl version %s\n"
msgstr ""
-#: toplev.c:648
+#: toplev.c:646
#, c-format
msgid "%s%swarning: %s header version %s differs from library version %s.\n"
msgstr ""
-#: toplev.c:650
+#: toplev.c:648
#, c-format
msgid ""
"%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
msgstr ""
-#: toplev.c:824
+#: toplev.c:822
msgid "options passed: "
msgstr ""
-#: toplev.c:852
+#: toplev.c:850
msgid "options enabled: "
msgstr ""
-#: tree-diagnostic.c:295 c/c-decl.c:5203 c/c-typeck.c:6813 cp/error.c:684
-#: cp/error.c:992 c-family/c-pretty-print.c:408
+#: tree-diagnostic.c:295 c/c-decl.c:5203 c/c-typeck.c:6818 cp/error.c:682
+#: cp/error.c:995 c-family/c-pretty-print.c:408
#, gcc-internal-format
msgid "<anonymous>"
msgstr ""
msgid "<command-line>"
msgstr ""
-#: config/aarch64/aarch64.c:4451 config/arm/arm.c:21954 config/arm/arm.c:21967
-#: config/arm/arm.c:21992 config/nios2/nios2.c:2642
+#: config/aarch64/aarch64.c:4451 config/arm/arm.c:21959 config/arm/arm.c:21972
+#: config/arm/arm.c:21997 config/nios2/nios2.c:2642
#, c-format
msgid "Unsupported operand for code '%c'"
msgstr ""
msgid "incompatible floating point / vector register operand for '%%%c'"
msgstr ""
-#: config/aarch64/aarch64.c:4627 config/arm/arm.c:22499
+#: config/aarch64/aarch64.c:4627 config/arm/arm.c:22504
#, c-format
msgid "missing operand"
msgstr ""
msgstr ""
#: config/alpha/alpha.c:5102 config/i386/i386.c:17140
-#: config/rs6000/rs6000.c:20285 config/sparc/sparc.c:8649
+#: config/rs6000/rs6000.c:21150 config/sparc/sparc.c:8749
#, c-format
msgid "'%%&' used without any local dynamic TLS references"
msgstr ""
msgstr ""
#: config/alpha/alpha.c:5200 config/ia64/ia64.c:5436
-#: config/rs6000/rs6000.c:19965 config/xtensa/xtensa.c:2357
+#: config/rs6000/rs6000.c:20830 config/xtensa/xtensa.c:2357
#, c-format
msgid "invalid %%R value"
msgstr ""
-#: config/alpha/alpha.c:5206 config/rs6000/rs6000.c:19885
+#: config/alpha/alpha.c:5206 config/rs6000/rs6000.c:20750
#: config/xtensa/xtensa.c:2324
#, c-format
msgid "invalid %%N value"
msgstr ""
-#: config/alpha/alpha.c:5214 config/rs6000/rs6000.c:19913
+#: config/alpha/alpha.c:5214 config/rs6000/rs6000.c:20778
#, c-format
msgid "invalid %%P value"
msgstr ""
msgstr ""
#: config/alpha/alpha.c:5300 config/alpha/alpha.c:5311
-#: config/rs6000/rs6000.c:19973
+#: config/rs6000/rs6000.c:20838
#, c-format
msgid "invalid %%s value"
msgstr ""
msgid "invalid %%C value"
msgstr ""
-#: config/alpha/alpha.c:5359 config/rs6000/rs6000.c:19749
+#: config/alpha/alpha.c:5359 config/rs6000/rs6000.c:20614
#, c-format
msgid "invalid %%E value"
msgstr ""
msgstr ""
#: config/alpha/alpha.c:5393 config/cr16/cr16.c:1531
-#: config/rs6000/rs6000.c:20290 config/spu/spu.c:1446
+#: config/rs6000/rs6000.c:21155 config/spu/spu.c:1446
#, c-format
msgid "invalid %%xn code"
msgstr ""
#. Unknown flag.
#. Undocumented flag.
#: config/arc/arc.c:3312 config/epiphany/epiphany.c:1286
-#: config/m32r/m32r.c:2226 config/nds32/nds32.c:2291 config/sparc/sparc.c:8832
+#: config/m32r/m32r.c:2226 config/nds32/nds32.c:2291 config/sparc/sparc.c:8932
#, c-format
msgid "invalid operand output code"
msgstr ""
msgid "invalid UNSPEC as operand: %d"
msgstr ""
-#: config/arm/arm.c:19021 config/arm/arm.c:19046 config/arm/arm.c:19056
-#: config/arm/arm.c:19065 config/arm/arm.c:19073
+#: config/arm/arm.c:19018 config/arm/arm.c:19043 config/arm/arm.c:19053
+#: config/arm/arm.c:19062 config/arm/arm.c:19070
#, c-format
msgid "invalid shift operand"
msgstr ""
-#: config/arm/arm.c:21830 config/arm/arm.c:21848
+#: config/arm/arm.c:21835 config/arm/arm.c:21853
#, c-format
msgid "predicated Thumb instruction"
msgstr ""
-#: config/arm/arm.c:21836
+#: config/arm/arm.c:21841
#, c-format
msgid "predicated instruction in conditional sequence"
msgstr ""
-#: config/arm/arm.c:22069 config/arm/arm.c:22091 config/arm/arm.c:22101
-#: config/arm/arm.c:22111 config/arm/arm.c:22121 config/arm/arm.c:22160
-#: config/arm/arm.c:22178 config/arm/arm.c:22203 config/arm/arm.c:22218
-#: config/arm/arm.c:22245 config/arm/arm.c:22252 config/arm/arm.c:22270
-#: config/arm/arm.c:22277 config/arm/arm.c:22285 config/arm/arm.c:22306
-#: config/arm/arm.c:22313 config/arm/arm.c:22446 config/arm/arm.c:22453
-#: config/arm/arm.c:22480 config/arm/arm.c:22487 config/bfin/bfin.c:1436
+#: config/arm/arm.c:22074 config/arm/arm.c:22096 config/arm/arm.c:22106
+#: config/arm/arm.c:22116 config/arm/arm.c:22126 config/arm/arm.c:22165
+#: config/arm/arm.c:22183 config/arm/arm.c:22208 config/arm/arm.c:22223
+#: config/arm/arm.c:22250 config/arm/arm.c:22257 config/arm/arm.c:22275
+#: config/arm/arm.c:22282 config/arm/arm.c:22290 config/arm/arm.c:22311
+#: config/arm/arm.c:22318 config/arm/arm.c:22451 config/arm/arm.c:22458
+#: config/arm/arm.c:22485 config/arm/arm.c:22492 config/bfin/bfin.c:1436
#: config/bfin/bfin.c:1443 config/bfin/bfin.c:1450 config/bfin/bfin.c:1457
#: config/bfin/bfin.c:1466 config/bfin/bfin.c:1473 config/bfin/bfin.c:1480
#: config/bfin/bfin.c:1487
msgid "invalid operand for code '%c'"
msgstr ""
-#: config/arm/arm.c:22173
+#: config/arm/arm.c:22178
#, c-format
msgid "instruction never executed"
msgstr ""
#. Former Maverick support, removed after GCC-4.7.
-#: config/arm/arm.c:22194
+#: config/arm/arm.c:22199
#, c-format
msgid "obsolete Maverick format code '%c'"
msgstr ""
-#: config/arm/arm.c:23613
+#: config/arm/arm.c:23618
msgid "function parameters cannot have __fp16 type"
msgstr ""
-#: config/arm/arm.c:23623
+#: config/arm/arm.c:23628
msgid "functions cannot return __fp16 type"
msgstr ""
-#: config/avr/avr.c:2127
+#: config/avr/avr.c:2124
#, c-format
msgid "address operand requires constraint for X, Y, or Z register"
msgstr ""
-#: config/avr/avr.c:2285
+#: config/avr/avr.c:2282
msgid "operands to %T/%t must be reg + const_int:"
msgstr ""
-#: config/avr/avr.c:2335 config/avr/avr.c:2402
+#: config/avr/avr.c:2332 config/avr/avr.c:2399
msgid "bad address, not an I/O address:"
msgstr ""
-#: config/avr/avr.c:2344
+#: config/avr/avr.c:2341
msgid "bad address, not a constant:"
msgstr ""
-#: config/avr/avr.c:2362 config/avr/avr.c:2369
+#: config/avr/avr.c:2359 config/avr/avr.c:2366
msgid "bad address, not (reg+disp):"
msgstr ""
-#: config/avr/avr.c:2376
+#: config/avr/avr.c:2373
msgid "bad address, not post_inc or pre_dec:"
msgstr ""
-#: config/avr/avr.c:2388
+#: config/avr/avr.c:2385
msgid "internal compiler error. Bad address:"
msgstr ""
-#: config/avr/avr.c:2421
+#: config/avr/avr.c:2418
#, c-format
msgid "Unsupported code '%c' for fixed-point:"
msgstr ""
-#: config/avr/avr.c:2429
+#: config/avr/avr.c:2426
msgid "internal compiler error. Unknown mode:"
msgstr ""
-#: config/avr/avr.c:3422 config/avr/avr.c:4352 config/avr/avr.c:4801
+#: config/avr/avr.c:3419 config/avr/avr.c:4349 config/avr/avr.c:4798
msgid "invalid insn:"
msgstr ""
-#: config/avr/avr.c:3476 config/avr/avr.c:3581 config/avr/avr.c:3639
-#: config/avr/avr.c:3685 config/avr/avr.c:3704 config/avr/avr.c:3896
-#: config/avr/avr.c:4204 config/avr/avr.c:4488 config/avr/avr.c:4694
-#: config/avr/avr.c:4858 config/avr/avr.c:4952 config/avr/avr.c:5148
+#: config/avr/avr.c:3473 config/avr/avr.c:3578 config/avr/avr.c:3636
+#: config/avr/avr.c:3682 config/avr/avr.c:3701 config/avr/avr.c:3893
+#: config/avr/avr.c:4201 config/avr/avr.c:4485 config/avr/avr.c:4691
+#: config/avr/avr.c:4855 config/avr/avr.c:4949 config/avr/avr.c:5145
msgid "incorrect insn:"
msgstr ""
-#: config/avr/avr.c:3720 config/avr/avr.c:3995 config/avr/avr.c:4275
-#: config/avr/avr.c:4560 config/avr/avr.c:4740 config/avr/avr.c:5008
-#: config/avr/avr.c:5206
+#: config/avr/avr.c:3717 config/avr/avr.c:3992 config/avr/avr.c:4272
+#: config/avr/avr.c:4557 config/avr/avr.c:4737 config/avr/avr.c:5005
+#: config/avr/avr.c:5203
msgid "unknown move insn:"
msgstr ""
-#: config/avr/avr.c:5637
+#: config/avr/avr.c:5634
msgid "bad shift insn:"
msgstr ""
-#: config/avr/avr.c:5745 config/avr/avr.c:6226 config/avr/avr.c:6641
+#: config/avr/avr.c:5742 config/avr/avr.c:6223 config/avr/avr.c:6638
msgid "internal compiler error. Incorrect shift:"
msgstr ""
-#: config/avr/avr.c:7978
+#: config/avr/avr.c:7975
msgid "unsupported fixed-point conversion"
msgstr ""
msgstr ""
#: config/cris/cris.c:612 config/ft32/ft32.c:104 config/moxie/moxie.c:103
-#: final.c:3407 final.c:3409 fold-const.c:277 gcc.c:5211 gcc.c:5225
-#: loop-iv.c:3043 loop-iv.c:3052 rtl-error.c:101 toplev.c:335
+#: final.c:3407 final.c:3409 fold-const.c:271 gcc.c:5211 gcc.c:5225
+#: loop-iv.c:3043 loop-iv.c:3052 rtl-error.c:101 toplev.c:333
#: tree-ssa-loop-niter.c:2328 tree-vrp.c:7480 cp/typeck.c:6065 java/expr.c:382
#: lto/lto-object.c:184 lto/lto-object.c:281 lto/lto-object.c:338
#: lto/lto-object.c:362
msgid "invalid constraints for operand"
msgstr ""
-#: config/i386/i386.c:27726
+#: config/i386/i386.c:27754
msgid "unknown insn mode"
msgstr ""
msgid "invalid %%P operand"
msgstr ""
-#: config/iq2000/iq2000.c:3143 config/rs6000/rs6000.c:19903
+#: config/iq2000/iq2000.c:3143 config/rs6000/rs6000.c:20768
#, c-format
msgid "invalid %%p value"
msgstr ""
msgid "post-increment address is not a register"
msgstr ""
-#: config/m32r/m32r.c:2328 config/m32r/m32r.c:2343
-#: config/rs6000/rs6000.c:31278
+#: config/m32r/m32r.c:2328 config/m32r/m32r.c:2343 config/rs6000/rs6000.c:32640
msgid "bad address"
msgstr ""
msgid "Try running '%s' in the shell to raise its limit.\n"
msgstr ""
-#: config/rs6000/rs6000.c:3922
+#: config/rs6000/rs6000.c:3959
msgid "-maltivec=le not allowed for big-endian targets"
msgstr ""
-#: config/rs6000/rs6000.c:3934
+#: config/rs6000/rs6000.c:3971
msgid "-mvsx requires hardware floating point"
msgstr ""
-#: config/rs6000/rs6000.c:3942
+#: config/rs6000/rs6000.c:3979
msgid "-mvsx and -mpaired are incompatible"
msgstr ""
-#: config/rs6000/rs6000.c:3944
+#: config/rs6000/rs6000.c:3981
msgid "-mvsx needs indexed addressing"
msgstr ""
-#: config/rs6000/rs6000.c:3949
+#: config/rs6000/rs6000.c:3986
msgid "-mvsx and -mno-altivec are incompatible"
msgstr ""
-#: config/rs6000/rs6000.c:3951
+#: config/rs6000/rs6000.c:3988
msgid "-mno-altivec disables vsx"
msgstr ""
-#: config/rs6000/rs6000.c:4091
+#: config/rs6000/rs6000.c:4129
msgid "-mquad-memory requires 64-bit mode"
msgstr ""
-#: config/rs6000/rs6000.c:4094
+#: config/rs6000/rs6000.c:4132
msgid "-mquad-memory-atomic requires 64-bit mode"
msgstr ""
-#: config/rs6000/rs6000.c:4106
+#: config/rs6000/rs6000.c:4144
msgid "-mquad-memory is not available in little endian mode"
msgstr ""
-#: config/rs6000/rs6000.c:4174
+#: config/rs6000/rs6000.c:4212
msgid "-mtoc-fusion requires 64-bit"
msgstr ""
-#: config/rs6000/rs6000.c:4181
+#: config/rs6000/rs6000.c:4219
msgid "-mtoc-fusion requires medium/large code model"
msgstr ""
-#: config/rs6000/rs6000.c:9505
+#: config/rs6000/rs6000.c:9919
msgid "bad move"
msgstr ""
-#: config/rs6000/rs6000.c:19546
+#: config/rs6000/rs6000.c:20411
msgid "Bad 128-bit move"
msgstr ""
-#: config/rs6000/rs6000.c:19737
+#: config/rs6000/rs6000.c:20602
#, c-format
msgid "invalid %%e value"
msgstr ""
-#: config/rs6000/rs6000.c:19758
+#: config/rs6000/rs6000.c:20623
#, c-format
msgid "invalid %%f value"
msgstr ""
-#: config/rs6000/rs6000.c:19767
+#: config/rs6000/rs6000.c:20632
#, c-format
msgid "invalid %%F value"
msgstr ""
-#: config/rs6000/rs6000.c:19776
+#: config/rs6000/rs6000.c:20641
#, c-format
msgid "invalid %%G value"
msgstr ""
-#: config/rs6000/rs6000.c:19811
+#: config/rs6000/rs6000.c:20676
#, c-format
msgid "invalid %%j code"
msgstr ""
-#: config/rs6000/rs6000.c:19821
+#: config/rs6000/rs6000.c:20686
#, c-format
msgid "invalid %%J code"
msgstr ""
-#: config/rs6000/rs6000.c:19831
+#: config/rs6000/rs6000.c:20696
#, c-format
msgid "invalid %%k value"
msgstr ""
-#: config/rs6000/rs6000.c:19846 config/xtensa/xtensa.c:2343
+#: config/rs6000/rs6000.c:20711 config/xtensa/xtensa.c:2343
#, c-format
msgid "invalid %%K value"
msgstr ""
-#: config/rs6000/rs6000.c:19893
+#: config/rs6000/rs6000.c:20758
#, c-format
msgid "invalid %%O value"
msgstr ""
-#: config/rs6000/rs6000.c:19940
+#: config/rs6000/rs6000.c:20805
#, c-format
msgid "invalid %%q value"
msgstr ""
-#: config/rs6000/rs6000.c:19993
+#: config/rs6000/rs6000.c:20858
#, c-format
msgid "invalid %%T value"
msgstr ""
-#: config/rs6000/rs6000.c:20005
+#: config/rs6000/rs6000.c:20870
#, c-format
msgid "invalid %%u value"
msgstr ""
-#: config/rs6000/rs6000.c:20019 config/xtensa/xtensa.c:2313
+#: config/rs6000/rs6000.c:20884 config/xtensa/xtensa.c:2313
#, c-format
msgid "invalid %%v value"
msgstr ""
-#: config/rs6000/rs6000.c:20086 config/xtensa/xtensa.c:2364
+#: config/rs6000/rs6000.c:20951 config/xtensa/xtensa.c:2364
#, c-format
msgid "invalid %%x value"
msgstr ""
-#: config/rs6000/rs6000.c:20234
+#: config/rs6000/rs6000.c:21099
#, c-format
msgid "invalid %%y value, try using the 'Z' constraint"
msgstr ""
-#: config/rs6000/rs6000.c:20912
+#: config/rs6000/rs6000.c:21814
msgid "__float128 and __ibm128 cannot be used in the same expression"
msgstr ""
-#: config/rs6000/rs6000.c:20918
+#: config/rs6000/rs6000.c:21820
msgid "__ibm128 and long double cannot be used in the same expression"
msgstr ""
-#: config/rs6000/rs6000.c:20924
+#: config/rs6000/rs6000.c:21826
msgid "__float128 and long double cannot be used in the same expression"
msgstr ""
-#: config/rs6000/rs6000.c:34329
+#: config/rs6000/rs6000.c:35706
msgid "AltiVec argument passed to unprototyped function"
msgstr ""
-#: config/rs6000/rs6000.c:36027
+#: config/rs6000/rs6000.c:37429
msgid "Could not generate addis value for fusion"
msgstr ""
-#: config/rs6000/rs6000.c:36099
+#: config/rs6000/rs6000.c:37501
msgid "Unable to generate load/store offset for fusion"
msgstr ""
-#: config/rs6000/rs6000.c:36203
+#: config/rs6000/rs6000.c:37605
msgid "Bad GPR fusion"
msgstr ""
-#: config/rs6000/rs6000.c:36421
+#: config/rs6000/rs6000.c:37823
msgid "emit_fusion_p9_load, bad reg #1"
msgstr ""
-#: config/rs6000/rs6000.c:36458
+#: config/rs6000/rs6000.c:37860
msgid "emit_fusion_p9_load, bad reg #2"
msgstr ""
-#: config/rs6000/rs6000.c:36461
+#: config/rs6000/rs6000.c:37863
msgid "emit_fusion_p9_load not MEM"
msgstr ""
-#: config/rs6000/rs6000.c:36499
+#: config/rs6000/rs6000.c:37901
msgid "emit_fusion_p9_store, bad reg #1"
msgstr ""
-#: config/rs6000/rs6000.c:36536
+#: config/rs6000/rs6000.c:37938
msgid "emit_fusion_p9_store, bad reg #2"
msgstr ""
-#: config/rs6000/rs6000.c:36539
+#: config/rs6000/rs6000.c:37941
msgid "emit_fusion_p9_store not MEM"
msgstr ""
-#: config/s390/s390.c:7147
+#: config/s390/s390.c:7168
#, c-format
msgid "symbolic memory references are only supported on z10 or later"
msgstr ""
-#: config/s390/s390.c:7158
+#: config/s390/s390.c:7179
#, c-format
msgid "cannot decompose address"
msgstr ""
-#: config/s390/s390.c:7227
+#: config/s390/s390.c:7248
#, c-format
msgid "invalid comparison operator for 'E' output modifier"
msgstr ""
-#: config/s390/s390.c:7250
+#: config/s390/s390.c:7271
#, c-format
msgid "invalid reference for 'J' output modifier"
msgstr ""
-#: config/s390/s390.c:7268
+#: config/s390/s390.c:7289
#, c-format
msgid "invalid address for 'O' output modifier"
msgstr ""
-#: config/s390/s390.c:7290
+#: config/s390/s390.c:7311
#, c-format
msgid "invalid address for 'R' output modifier"
msgstr ""
-#: config/s390/s390.c:7308
+#: config/s390/s390.c:7329
#, c-format
msgid "memory reference expected for 'S' output modifier"
msgstr ""
-#: config/s390/s390.c:7318
+#: config/s390/s390.c:7339
#, c-format
msgid "invalid address for 'S' output modifier"
msgstr ""
-#: config/s390/s390.c:7339
+#: config/s390/s390.c:7360
#, c-format
msgid "register or memory expression expected for 'N' output modifier"
msgstr ""
-#: config/s390/s390.c:7350
+#: config/s390/s390.c:7371
#, c-format
msgid "register or memory expression expected for 'M' output modifier"
msgstr ""
-#: config/s390/s390.c:7435 config/s390/s390.c:7456
+#: config/s390/s390.c:7456 config/s390/s390.c:7477
#, c-format
msgid "invalid constant for output modifier '%c'"
msgstr ""
-#: config/s390/s390.c:7453
+#: config/s390/s390.c:7474
#, c-format
msgid "invalid constant - try using an output modifier"
msgstr ""
-#: config/s390/s390.c:7494
+#: config/s390/s390.c:7515
#, c-format
msgid "invalid constant vector for output modifier '%c'"
msgstr ""
-#: config/s390/s390.c:7501
+#: config/s390/s390.c:7522
#, c-format
msgid "invalid expression - try using an output modifier"
msgstr ""
-#: config/s390/s390.c:7504
+#: config/s390/s390.c:7525
#, c-format
msgid "invalid expression for output modifier '%c'"
msgstr ""
-#: config/s390/s390.c:11356
+#: config/s390/s390.c:11377
msgid "Vector argument passed to unprototyped function"
msgstr ""
-#: config/s390/s390.c:15023
+#: config/s390/s390.c:15036
msgid "types differ in signess"
msgstr ""
-#: config/s390/s390.c:15033
+#: config/s390/s390.c:15046
msgid "binary operator does not support two vector bool operands"
msgstr ""
-#: config/s390/s390.c:15036
+#: config/s390/s390.c:15049
msgid "binary operator does not support vector bool operand"
msgstr ""
-#: config/s390/s390.c:15044
+#: config/s390/s390.c:15057
msgid ""
"binary operator does not support mixing vector bool with floating point "
"vector operands"
msgid "created and used with different endianness"
msgstr ""
-#: config/sparc/sparc.c:8658 config/sparc/sparc.c:8664
+#: config/sparc/sparc.c:8758 config/sparc/sparc.c:8764
#, c-format
msgid "invalid %%Y operand"
msgstr ""
-#: config/sparc/sparc.c:8734
+#: config/sparc/sparc.c:8834
#, c-format
msgid "invalid %%A operand"
msgstr ""
-#: config/sparc/sparc.c:8744
+#: config/sparc/sparc.c:8844
#, c-format
msgid "invalid %%B operand"
msgstr ""
-#: config/sparc/sparc.c:8773 config/tilegx/tilegx.c:5095
+#: config/sparc/sparc.c:8873 config/tilegx/tilegx.c:5095
#: config/tilepro/tilepro.c:4510
#, c-format
msgid "invalid %%C operand"
msgstr ""
-#: config/sparc/sparc.c:8790 config/tilegx/tilegx.c:5128
+#: config/sparc/sparc.c:8890 config/tilegx/tilegx.c:5128
#, c-format
msgid "invalid %%D operand"
msgstr ""
-#: config/sparc/sparc.c:8806
+#: config/sparc/sparc.c:8906
#, c-format
msgid "invalid %%f operand"
msgstr ""
-#: config/sparc/sparc.c:8818
+#: config/sparc/sparc.c:8918
#, c-format
msgid "invalid %%s operand"
msgstr ""
-#: config/sparc/sparc.c:8863
+#: config/sparc/sparc.c:8963
#, c-format
msgid "floating-point constant not a valid immediate operand"
msgstr ""
msgid "illegal operand detected"
msgstr ""
-#: config/visium/visium.c:3195
+#: config/visium/visium.c:3255
msgid "illegal operand "
msgstr ""
-#: config/visium/visium.c:3246
+#: config/visium/visium.c:3306
msgid "illegal operand address (1)"
msgstr ""
-#: config/visium/visium.c:3253
+#: config/visium/visium.c:3313
msgid "illegal operand address (2)"
msgstr ""
-#: config/visium/visium.c:3268
+#: config/visium/visium.c:3328
msgid "illegal operand address (3)"
msgstr ""
-#: config/visium/visium.c:3276
+#: config/visium/visium.c:3336
msgid "illegal operand address (4)"
msgstr ""
msgid "address offset not a constant"
msgstr ""
-#: c/c-objc-common.c:162
+#: c/c-objc-common.c:160
msgid "aka"
msgstr ""
-#: c/c-objc-common.c:189
+#: c/c-objc-common.c:187
msgid "({anonymous})"
msgstr ""
#: c/c-parser.c:5286 c/c-parser.c:5670 c/c-parser.c:5839 c/c-parser.c:5870
#: c/c-parser.c:6085 c/c-parser.c:8825 c/c-parser.c:8860 c/c-parser.c:8891
#: c/c-parser.c:8938 c/c-parser.c:9119 c/c-parser.c:9899 c/c-parser.c:9969
-#: c/c-parser.c:10012 c/c-parser.c:14509 c/c-parser.c:14533 c/c-parser.c:14551
-#: c/c-parser.c:14764 c/c-parser.c:14807 c/c-parser.c:2950 c/c-parser.c:9112
-#: cp/parser.c:26313 cp/parser.c:26886
+#: c/c-parser.c:10012 c/c-parser.c:14492 c/c-parser.c:14516 c/c-parser.c:14534
+#: c/c-parser.c:14747 c/c-parser.c:14790 c/c-parser.c:2950 c/c-parser.c:9112
+#: cp/parser.c:26388 cp/parser.c:26961
#, gcc-internal-format
msgid "expected %<;%>"
msgstr ""
#: c/c-parser.c:5545 c/c-parser.c:5755 c/c-parser.c:6021 c/c-parser.c:6144
#: c/c-parser.c:7203 c/c-parser.c:7628 c/c-parser.c:7669 c/c-parser.c:7802
#: c/c-parser.c:7996 c/c-parser.c:8013 c/c-parser.c:8039 c/c-parser.c:9410
-#: c/c-parser.c:9482 c/c-parser.c:10515 c/c-parser.c:10716 c/c-parser.c:10855
-#: c/c-parser.c:10910 c/c-parser.c:11007 c/c-parser.c:11187 c/c-parser.c:11231
-#: c/c-parser.c:11275 c/c-parser.c:11319 c/c-parser.c:11363 c/c-parser.c:11408
-#: c/c-parser.c:11443 c/c-parser.c:11511 c/c-parser.c:11760 c/c-parser.c:11906
-#: c/c-parser.c:12032 c/c-parser.c:12183 c/c-parser.c:12286 c/c-parser.c:12329
-#: c/c-parser.c:12376 c/c-parser.c:12420 c/c-parser.c:12486 c/c-parser.c:12522
-#: c/c-parser.c:12649 c/c-parser.c:12731 c/c-parser.c:12839 c/c-parser.c:12874
-#: c/c-parser.c:12922 c/c-parser.c:12980 c/c-parser.c:14711 c/c-parser.c:16655
-#: c/c-parser.c:16865 c/c-parser.c:17306 c/c-parser.c:17364 c/c-parser.c:17790
-#: c/c-parser.c:10986 cp/parser.c:24098 cp/parser.c:26889
+#: c/c-parser.c:9482 c/c-parser.c:10515 c/c-parser.c:10699 c/c-parser.c:10838
+#: c/c-parser.c:10893 c/c-parser.c:10990 c/c-parser.c:11170 c/c-parser.c:11214
+#: c/c-parser.c:11258 c/c-parser.c:11302 c/c-parser.c:11346 c/c-parser.c:11391
+#: c/c-parser.c:11426 c/c-parser.c:11494 c/c-parser.c:11743 c/c-parser.c:11889
+#: c/c-parser.c:12015 c/c-parser.c:12166 c/c-parser.c:12269 c/c-parser.c:12312
+#: c/c-parser.c:12359 c/c-parser.c:12403 c/c-parser.c:12469 c/c-parser.c:12505
+#: c/c-parser.c:12632 c/c-parser.c:12714 c/c-parser.c:12822 c/c-parser.c:12857
+#: c/c-parser.c:12905 c/c-parser.c:12963 c/c-parser.c:14694 c/c-parser.c:16640
+#: c/c-parser.c:16850 c/c-parser.c:17291 c/c-parser.c:17349 c/c-parser.c:17775
+#: c/c-parser.c:10969 cp/parser.c:24120 cp/parser.c:26964
#, gcc-internal-format
msgid "expected %<(%>"
msgstr ""
#: c/c-parser.c:2192 c/c-parser.c:7230 c/c-parser.c:7636 c/c-parser.c:7677
-#: c/c-parser.c:7813 cp/parser.c:26311 cp/parser.c:26904
+#: c/c-parser.c:7813 cp/parser.c:26386 cp/parser.c:26979
#, gcc-internal-format
msgid "expected %<,%>"
msgstr ""
#: c/c-parser.c:7828 c/c-parser.c:8005 c/c-parser.c:8030 c/c-parser.c:8054
#: c/c-parser.c:8277 c/c-parser.c:8668 c/c-parser.c:9204 c/c-parser.c:9225
#: c/c-parser.c:9433 c/c-parser.c:9488 c/c-parser.c:9871 c/c-parser.c:10552
-#: c/c-parser.c:10719 c/c-parser.c:10858 c/c-parser.c:10944 c/c-parser.c:11088
-#: c/c-parser.c:11194 c/c-parser.c:11238 c/c-parser.c:11282 c/c-parser.c:11326
-#: c/c-parser.c:11370 c/c-parser.c:11414 c/c-parser.c:11471 c/c-parser.c:11478
-#: c/c-parser.c:11518 c/c-parser.c:11673 c/c-parser.c:11731 c/c-parser.c:11780
-#: c/c-parser.c:11852 c/c-parser.c:12004 c/c-parser.c:12129 c/c-parser.c:12190
-#: c/c-parser.c:12293 c/c-parser.c:12336 c/c-parser.c:12401 c/c-parser.c:12443
-#: c/c-parser.c:12473 c/c-parser.c:12501 c/c-parser.c:12537 c/c-parser.c:12679
-#: c/c-parser.c:12697 c/c-parser.c:12703 c/c-parser.c:12787 c/c-parser.c:12798
-#: c/c-parser.c:12818 c/c-parser.c:12828 c/c-parser.c:12845 c/c-parser.c:12881
-#: c/c-parser.c:12893 c/c-parser.c:12941 c/c-parser.c:12949 c/c-parser.c:12984
-#: c/c-parser.c:14593 c/c-parser.c:14772 c/c-parser.c:14818 c/c-parser.c:16844
-#: c/c-parser.c:16921 c/c-parser.c:17342 c/c-parser.c:17426 c/c-parser.c:17799
-#: cp/parser.c:24130 cp/parser.c:26934
+#: c/c-parser.c:10702 c/c-parser.c:10841 c/c-parser.c:10927 c/c-parser.c:11071
+#: c/c-parser.c:11177 c/c-parser.c:11221 c/c-parser.c:11265 c/c-parser.c:11309
+#: c/c-parser.c:11353 c/c-parser.c:11397 c/c-parser.c:11454 c/c-parser.c:11461
+#: c/c-parser.c:11501 c/c-parser.c:11656 c/c-parser.c:11714 c/c-parser.c:11763
+#: c/c-parser.c:11835 c/c-parser.c:11987 c/c-parser.c:12112 c/c-parser.c:12173
+#: c/c-parser.c:12276 c/c-parser.c:12319 c/c-parser.c:12384 c/c-parser.c:12426
+#: c/c-parser.c:12456 c/c-parser.c:12484 c/c-parser.c:12520 c/c-parser.c:12662
+#: c/c-parser.c:12680 c/c-parser.c:12686 c/c-parser.c:12770 c/c-parser.c:12781
+#: c/c-parser.c:12801 c/c-parser.c:12811 c/c-parser.c:12828 c/c-parser.c:12864
+#: c/c-parser.c:12876 c/c-parser.c:12924 c/c-parser.c:12932 c/c-parser.c:12967
+#: c/c-parser.c:14576 c/c-parser.c:14755 c/c-parser.c:14801 c/c-parser.c:16829
+#: c/c-parser.c:16906 c/c-parser.c:17327 c/c-parser.c:17411 c/c-parser.c:17784
+#: cp/parser.c:24152 cp/parser.c:27009
#, gcc-internal-format
msgid "expected %<)%>"
msgstr ""
#: c/c-parser.c:3583 c/c-parser.c:4514 c/c-parser.c:4550 c/c-parser.c:6136
-#: c/c-parser.c:7744 c/c-parser.c:8102 c/c-parser.c:8251 c/c-parser.c:10654
-#: c/c-parser.c:17702 c/c-parser.c:17704 c/c-parser.c:18043 cp/parser.c:7024
-#: cp/parser.c:26898
+#: c/c-parser.c:7744 c/c-parser.c:8102 c/c-parser.c:8251 c/c-parser.c:10656
+#: c/c-parser.c:17687 c/c-parser.c:17689 c/c-parser.c:18028 cp/parser.c:7024
+#: cp/parser.c:26973
#, gcc-internal-format
msgid "expected %<]%>"
msgstr ""
msgid "expected %<;%>, %<,%> or %<)%>"
msgstr ""
-#: c/c-parser.c:4372 c/c-parser.c:14534 cp/parser.c:26892 cp/parser.c:28814
+#: c/c-parser.c:4372 c/c-parser.c:14517 cp/parser.c:26967 cp/parser.c:28889
#, gcc-internal-format
msgid "expected %<}%>"
msgstr ""
-#: c/c-parser.c:4684 c/c-parser.c:9453 c/c-parser.c:15252 c/c-parser.c:2768
-#: c/c-parser.c:2971 c/c-parser.c:9007 cp/parser.c:17140 cp/parser.c:26895
+#: c/c-parser.c:4684 c/c-parser.c:9453 c/c-parser.c:15237 c/c-parser.c:2768
+#: c/c-parser.c:2971 c/c-parser.c:9007 cp/parser.c:17162 cp/parser.c:26970
#, gcc-internal-format
msgid "expected %<{%>"
msgstr ""
#: c/c-parser.c:4917 c/c-parser.c:4926 c/c-parser.c:6043 c/c-parser.c:6385
#: c/c-parser.c:7278 c/c-parser.c:9218 c/c-parser.c:9601 c/c-parser.c:9662
-#: c/c-parser.c:10641 c/c-parser.c:11457 c/c-parser.c:11591 c/c-parser.c:11963
-#: c/c-parser.c:12055 c/c-parser.c:12683 c/c-parser.c:16712 c/c-parser.c:16768
-#: c/c-parser.c:11080 cp/parser.c:26928 cp/parser.c:28025 cp/parser.c:30699
+#: c/c-parser.c:10643 c/c-parser.c:11440 c/c-parser.c:11574 c/c-parser.c:11946
+#: c/c-parser.c:12038 c/c-parser.c:12666 c/c-parser.c:16697 c/c-parser.c:16753
+#: c/c-parser.c:11063 cp/parser.c:27003 cp/parser.c:28100 cp/parser.c:30758
#, gcc-internal-format
msgid "expected %<:%>"
msgstr ""
msgid "Cilk array notation cannot be used as a condition for while statement"
msgstr ""
-#: c/c-parser.c:5656 cp/parser.c:26822
+#: c/c-parser.c:5656 cp/parser.c:26897
#, gcc-internal-format
msgid "expected %<while%>"
msgstr ""
msgid "expected %<.%>"
msgstr ""
-#: c/c-parser.c:8678 c/c-parser.c:8710 c/c-parser.c:8950 cp/parser.c:28599
-#: cp/parser.c:28673
+#: c/c-parser.c:8678 c/c-parser.c:8710 c/c-parser.c:8950 cp/parser.c:28674
+#: cp/parser.c:28748
#, gcc-internal-format
msgid "expected %<@end%>"
msgstr ""
-#: c/c-parser.c:9367 cp/parser.c:26913
+#: c/c-parser.c:9367 cp/parser.c:26988
#, gcc-internal-format
msgid "expected %<>%>"
msgstr ""
-#: c/c-parser.c:12133 c/c-parser.c:12897 cp/parser.c:26937
+#: c/c-parser.c:12116 c/c-parser.c:12880 cp/parser.c:27012
#, gcc-internal-format
msgid "expected %<,%> or %<)%>"
msgstr ""
-#: c/c-parser.c:14246 c/c-parser.c:14290 c/c-parser.c:14518 c/c-parser.c:14753
-#: c/c-parser.c:16906 c/c-parser.c:17528 c/c-parser.c:4573 cp/parser.c:26916
+#: c/c-parser.c:14229 c/c-parser.c:14273 c/c-parser.c:14501 c/c-parser.c:14736
+#: c/c-parser.c:16891 c/c-parser.c:17513 c/c-parser.c:4573 cp/parser.c:26991
#, gcc-internal-format
msgid "expected %<=%>"
msgstr ""
-#: c/c-parser.c:15295 c/c-parser.c:15285 cp/parser.c:34071
+#: c/c-parser.c:15280 c/c-parser.c:15270 cp/parser.c:34132
#, gcc-internal-format
msgid "expected %<#pragma omp section%> or %<}%>"
msgstr ""
-#: c/c-parser.c:17690 c/c-parser.c:10600 cp/parser.c:26901 cp/parser.c:29954
+#: c/c-parser.c:17675 c/c-parser.c:10602 cp/parser.c:26976 cp/parser.c:30031
#, gcc-internal-format
msgid "expected %<[%>"
msgstr ""
-#: c/c-typeck.c:7400
+#: c/c-typeck.c:7405
msgid "(anonymous)"
msgstr ""
-#: cp/call.c:9453
+#: cp/call.c:9464
msgid "candidate 1:"
msgstr ""
-#: cp/call.c:9454
+#: cp/call.c:9465
msgid "candidate 2:"
msgstr ""
msgid "candidate is: %+#D"
msgstr ""
-#: cp/error.c:319
+#: cp/error.c:317
msgid "<missing>"
msgstr ""
-#: cp/error.c:419
+#: cp/error.c:417
msgid "<brace-enclosed initializer list>"
msgstr ""
-#: cp/error.c:421
+#: cp/error.c:419
msgid "<unresolved overloaded function type>"
msgstr ""
-#: cp/error.c:583
+#: cp/error.c:581
msgid "<type error>"
msgstr ""
-#: cp/error.c:686
+#: cp/error.c:684
#, c-format
msgid "<anonymous %s>"
msgstr ""
#. A lambda's "type" is essentially its signature.
-#: cp/error.c:691
+#: cp/error.c:689
msgid "<lambda"
msgstr ""
-#: cp/error.c:821
+#: cp/error.c:819
msgid "<typeprefixerror>"
msgstr ""
-#: cp/error.c:950
+#: cp/error.c:948
#, c-format
msgid "(static initializers for %s)"
msgstr ""
-#: cp/error.c:952
+#: cp/error.c:950
#, c-format
msgid "(static destructors for %s)"
msgstr ""
-#: cp/error.c:1060
+#: cp/error.c:1063
msgid "vtable for "
msgstr ""
-#: cp/error.c:1084
+#: cp/error.c:1087
msgid "<return value> "
msgstr ""
-#: cp/error.c:1099
+#: cp/error.c:1102
msgid "{anonymous}"
msgstr ""
-#: cp/error.c:1101
+#: cp/error.c:1104
msgid "(anonymous namespace)"
msgstr ""
-#: cp/error.c:1217
+#: cp/error.c:1220
msgid "<template arguments error>"
msgstr ""
-#: cp/error.c:1239
+#: cp/error.c:1242
msgid "<enumerator>"
msgstr ""
-#: cp/error.c:1279
+#: cp/error.c:1282
msgid "<declaration error>"
msgstr ""
-#: cp/error.c:1808 cp/error.c:1828
+#: cp/error.c:1819 cp/error.c:1839
msgid "<template parameter error>"
msgstr ""
-#: cp/error.c:1958
+#: cp/error.c:1969
msgid "<statement>"
msgstr ""
-#: cp/error.c:1985 cp/error.c:3027 c-family/c-pretty-print.c:2182
+#: cp/error.c:1996 cp/error.c:3043 c-family/c-pretty-print.c:2182
#, gcc-internal-format
msgid "<unknown>"
msgstr ""
#. While waiting for caret diagnostics, avoid printing
#. __cxa_allocate_exception, __cxa_throw, and the like.
-#: cp/error.c:2003
+#: cp/error.c:2014
msgid "<throw-expression>"
msgstr ""
-#: cp/error.c:2104
+#: cp/error.c:2115
msgid "<ubsan routine call>"
msgstr ""
-#: cp/error.c:2561
+#: cp/error.c:2572
msgid "<unparsed>"
msgstr ""
-#: cp/error.c:2708
+#: cp/error.c:2723
msgid "<lambda>"
msgstr ""
-#: cp/error.c:2750
+#: cp/error.c:2766
msgid "*this"
msgstr ""
-#: cp/error.c:2760
+#: cp/error.c:2776
msgid "<expression error>"
msgstr ""
-#: cp/error.c:2775
+#: cp/error.c:2791
msgid "<unknown operator>"
msgstr ""
-#: cp/error.c:3071
+#: cp/error.c:3087
msgid "{unknown}"
msgstr ""
-#: cp/error.c:3183
+#: cp/error.c:3199
msgid "At global scope:"
msgstr ""
-#: cp/error.c:3289
+#: cp/error.c:3305
#, c-format
msgid "In static member function %qs"
msgstr ""
-#: cp/error.c:3291
+#: cp/error.c:3307
#, c-format
msgid "In copy constructor %qs"
msgstr ""
-#: cp/error.c:3293
+#: cp/error.c:3309
#, c-format
msgid "In constructor %qs"
msgstr ""
-#: cp/error.c:3295
+#: cp/error.c:3311
#, c-format
msgid "In destructor %qs"
msgstr ""
-#: cp/error.c:3297
+#: cp/error.c:3313
msgid "In lambda function"
msgstr ""
-#: cp/error.c:3317
+#: cp/error.c:3333
#, c-format
msgid "%s: In substitution of %qS:\n"
msgstr ""
-#: cp/error.c:3318
+#: cp/error.c:3334
msgid "%s: In instantiation of %q#D:\n"
msgstr ""
-#: cp/error.c:3343
+#: cp/error.c:3359
msgid "%r%s:%d:%d:%R "
msgstr ""
-#: cp/error.c:3346
+#: cp/error.c:3362
msgid "%r%s:%d:%R "
msgstr ""
-#: cp/error.c:3354
+#: cp/error.c:3370
#, c-format
msgid "recursively required by substitution of %qS\n"
msgstr ""
-#: cp/error.c:3355
+#: cp/error.c:3371
#, c-format
msgid "required by substitution of %qS\n"
msgstr ""
-#: cp/error.c:3360
+#: cp/error.c:3376
msgid "recursively required from %q#D\n"
msgstr ""
-#: cp/error.c:3361
+#: cp/error.c:3377
msgid "required from %q#D\n"
msgstr ""
-#: cp/error.c:3368
+#: cp/error.c:3384
msgid "recursively required from here\n"
msgstr ""
-#: cp/error.c:3369
+#: cp/error.c:3385
msgid "required from here\n"
msgstr ""
-#: cp/error.c:3421
+#: cp/error.c:3437
msgid ""
"%r%s:%d:%d:%R [ skipping %d instantiation contexts, use -ftemplate-"
"backtrace-limit=0 to disable ]\n"
msgstr ""
-#: cp/error.c:3427
+#: cp/error.c:3443
msgid ""
"%r%s:%d:%R [ skipping %d instantiation contexts, use -ftemplate-backtrace-"
"limit=0 to disable ]\n"
msgstr ""
-#: cp/error.c:3481
+#: cp/error.c:3497
msgid "%r%s:%d:%d:%R in constexpr expansion of %qs"
msgstr ""
-#: cp/error.c:3485
+#: cp/error.c:3501
msgid "%r%s:%d:%R in constexpr expansion of %qs"
msgstr ""
-#: cp/pt.c:1947 cp/semantics.c:5220
+#: cp/pt.c:1945 cp/semantics.c:5217
msgid "candidates are:"
msgstr ""
-#: cp/pt.c:21038
+#: cp/pt.c:21086
msgid "candidate is:"
msgid_plural "candidates are:"
msgstr[0] ""
msgid "source type is not polymorphic"
msgstr ""
-#: cp/typeck.c:5820 c/c-typeck.c:4093
+#: cp/typeck.c:5820 c/c-typeck.c:4098
#, gcc-internal-format
msgid "wrong type argument to unary minus"
msgstr ""
-#: cp/typeck.c:5821 c/c-typeck.c:4080
+#: cp/typeck.c:5821 c/c-typeck.c:4085
#, gcc-internal-format
msgid "wrong type argument to unary plus"
msgstr ""
-#: cp/typeck.c:5848 c/c-typeck.c:4119
+#: cp/typeck.c:5848 c/c-typeck.c:4124
#, gcc-internal-format
msgid "wrong type argument to bit-complement"
msgstr ""
-#: cp/typeck.c:5855 c/c-typeck.c:4127
+#: cp/typeck.c:5855 c/c-typeck.c:4132
#, gcc-internal-format
msgid "wrong type argument to abs"
msgstr ""
-#: cp/typeck.c:5867 c/c-typeck.c:4139
+#: cp/typeck.c:5867 c/c-typeck.c:4144
#, gcc-internal-format
msgid "wrong type argument to conjugation"
msgstr ""
msgid "arguments '%s' and '%s' for intrinsic '%s'"
msgstr ""
-#: fortran/error.c:873
+#: fortran/error.c:871
msgid "Fortran 2008 obsolescent feature:"
msgstr ""
-#: fortran/error.c:882
+#: fortran/error.c:880
msgid "GNU Extension:"
msgstr ""
-#: fortran/error.c:885
+#: fortran/error.c:883
msgid "Legacy Extension:"
msgstr ""
-#: fortran/error.c:888
+#: fortran/error.c:886
msgid "Obsolescent feature:"
msgstr ""
-#: fortran/error.c:891
+#: fortran/error.c:889
msgid "Deleted feature:"
msgstr ""
msgid "Driving:"
msgstr ""
-#: fortran/interface.c:2941 fortran/intrinsic.c:3994
+#: fortran/interface.c:3048 fortran/intrinsic.c:3994
msgid "actual argument to INTENT = OUT/INOUT"
msgstr ""
msgid "Expected integer"
msgstr ""
-#: fortran/module.c:1559 fortran/module.c:2546
+#: fortran/module.c:1559 fortran/module.c:2547
msgid "Expected string"
msgstr ""
msgid "Expected attribute bit name"
msgstr ""
-#: fortran/module.c:3150
+#: fortran/module.c:3151
msgid "Expected integer string"
msgstr ""
-#: fortran/module.c:3154
+#: fortran/module.c:3155
msgid "Error converting integer"
msgstr ""
-#: fortran/module.c:3176
+#: fortran/module.c:3177
msgid "Expected real string"
msgstr ""
-#: fortran/module.c:3400
+#: fortran/module.c:3401
msgid "Expected expression type"
msgstr ""
-#: fortran/module.c:3480
+#: fortran/module.c:3481
msgid "Bad operator"
msgstr ""
-#: fortran/module.c:3595
+#: fortran/module.c:3596
msgid "Bad type in constant expression"
msgstr ""
-#: fortran/module.c:6939
+#: fortran/module.c:6946
msgid "Unexpected end of module"
msgstr ""
-#: fortran/parse.c:1592
+#: fortran/parse.c:1671
msgid "arithmetic IF"
msgstr ""
-#: fortran/parse.c:1601
+#: fortran/parse.c:1680
msgid "attribute declaration"
msgstr ""
-#: fortran/parse.c:1637
+#: fortran/parse.c:1716
msgid "data declaration"
msgstr ""
-#: fortran/parse.c:1646
+#: fortran/parse.c:1734
msgid "derived type declaration"
msgstr ""
-#: fortran/parse.c:1749
+#: fortran/parse.c:1846
msgid "block IF"
msgstr ""
-#: fortran/parse.c:1758
+#: fortran/parse.c:1855
msgid "implied END DO"
msgstr ""
-#: fortran/parse.c:1852 fortran/resolve.c:10531
+#: fortran/parse.c:1949 fortran/resolve.c:10537
msgid "assignment"
msgstr ""
-#: fortran/parse.c:1855 fortran/resolve.c:10582 fortran/resolve.c:10585
+#: fortran/parse.c:1952 fortran/resolve.c:10588 fortran/resolve.c:10591
msgid "pointer assignment"
msgstr ""
-#: fortran/parse.c:1873
+#: fortran/parse.c:1970
msgid "simple IF"
msgstr ""
msgid "internal function"
msgstr ""
-#: fortran/resolve.c:2151 fortran/resolve.c:2345
+#: fortran/resolve.c:2157 fortran/resolve.c:2351
msgid "elemental procedure"
msgstr ""
-#: fortran/resolve.c:2248
+#: fortran/resolve.c:2254
msgid "allocatable argument"
msgstr ""
-#: fortran/resolve.c:2253
+#: fortran/resolve.c:2259
msgid "asynchronous argument"
msgstr ""
-#: fortran/resolve.c:2258
+#: fortran/resolve.c:2264
msgid "optional argument"
msgstr ""
-#: fortran/resolve.c:2263
+#: fortran/resolve.c:2269
msgid "pointer argument"
msgstr ""
-#: fortran/resolve.c:2268
+#: fortran/resolve.c:2274
msgid "target argument"
msgstr ""
-#: fortran/resolve.c:2273
+#: fortran/resolve.c:2279
msgid "value argument"
msgstr ""
-#: fortran/resolve.c:2278
+#: fortran/resolve.c:2284
msgid "volatile argument"
msgstr ""
-#: fortran/resolve.c:2283
+#: fortran/resolve.c:2289
msgid "assumed-shape argument"
msgstr ""
-#: fortran/resolve.c:2288
+#: fortran/resolve.c:2294
msgid "assumed-rank argument"
msgstr ""
-#: fortran/resolve.c:2293
+#: fortran/resolve.c:2299
msgid "coarray argument"
msgstr ""
-#: fortran/resolve.c:2298
+#: fortran/resolve.c:2304
msgid "parametrized derived type argument"
msgstr ""
-#: fortran/resolve.c:2303
+#: fortran/resolve.c:2309
msgid "polymorphic argument"
msgstr ""
-#: fortran/resolve.c:2308
+#: fortran/resolve.c:2314
msgid "NO_ARG_CHECK attribute"
msgstr ""
#. As assumed-type is unlimited polymorphic (cf. above).
#. See also TS 29113, Note 6.1.
-#: fortran/resolve.c:2315
+#: fortran/resolve.c:2321
msgid "assumed-type argument"
msgstr ""
-#: fortran/resolve.c:2326
+#: fortran/resolve.c:2332
msgid "array result"
msgstr ""
-#: fortran/resolve.c:2331
+#: fortran/resolve.c:2337
msgid "pointer or allocatable result"
msgstr ""
-#: fortran/resolve.c:2338
+#: fortran/resolve.c:2344
msgid "result with non-constant character length"
msgstr ""
-#: fortran/resolve.c:2350
+#: fortran/resolve.c:2356
msgid "bind(c) procedure"
msgstr ""
-#: fortran/resolve.c:3552
+#: fortran/resolve.c:3558
#, c-format
msgid "Invalid context for NULL() pointer at %%L"
msgstr ""
-#: fortran/resolve.c:3568
+#: fortran/resolve.c:3574
#, c-format
msgid "Operand of unary numeric operator %%<%s%%> at %%L is %s"
msgstr ""
-#: fortran/resolve.c:3584
+#: fortran/resolve.c:3590
#, c-format
msgid "Operands of binary numeric operator %%<%s%%> at %%L are %s/%s"
msgstr ""
-#: fortran/resolve.c:3599
+#: fortran/resolve.c:3605
#, c-format
msgid "Operands of string concatenation operator at %%L are %s/%s"
msgstr ""
-#: fortran/resolve.c:3618
+#: fortran/resolve.c:3624
#, c-format
msgid "Operands of logical operator %%<%s%%> at %%L are %s/%s"
msgstr ""
-#: fortran/resolve.c:3632
+#: fortran/resolve.c:3638
#, c-format
msgid "Operand of .not. operator at %%L is %s"
msgstr ""
-#: fortran/resolve.c:3646
+#: fortran/resolve.c:3652
msgid "COMPLEX quantities cannot be compared at %L"
msgstr ""
-#: fortran/resolve.c:3697
+#: fortran/resolve.c:3703
#, c-format
msgid "Logicals at %%L must be compared with %s instead of %s"
msgstr ""
-#: fortran/resolve.c:3703
+#: fortran/resolve.c:3709
#, c-format
msgid "Operands of comparison operator %%<%s%%> at %%L are %s/%s"
msgstr ""
-#: fortran/resolve.c:3711
+#: fortran/resolve.c:3717
#, c-format
msgid "Unknown operator %%<%s%%> at %%L"
msgstr ""
-#: fortran/resolve.c:3714
+#: fortran/resolve.c:3720
#, c-format
msgid "Operand of user operator %%<%s%%> at %%L is %s"
msgstr ""
-#: fortran/resolve.c:3718
+#: fortran/resolve.c:3724
#, c-format
msgid "Operands of user operator %%<%s%%> at %%L are %s/%s"
msgstr ""
-#: fortran/resolve.c:3806
+#: fortran/resolve.c:3812
#, c-format
msgid "Inconsistent ranks for operator at %%L and %%L"
msgstr ""
-#: fortran/resolve.c:6470
+#: fortran/resolve.c:6476
msgid "Loop variable"
msgstr ""
-#: fortran/resolve.c:6474
+#: fortran/resolve.c:6480
msgid "iterator variable"
msgstr ""
-#: fortran/resolve.c:6478
+#: fortran/resolve.c:6484
msgid "Start expression in DO loop"
msgstr ""
-#: fortran/resolve.c:6482
+#: fortran/resolve.c:6488
msgid "End expression in DO loop"
msgstr ""
-#: fortran/resolve.c:6486
+#: fortran/resolve.c:6492
msgid "Step expression in DO loop"
msgstr ""
-#: fortran/resolve.c:6743 fortran/resolve.c:6746
+#: fortran/resolve.c:6749 fortran/resolve.c:6752
msgid "DEALLOCATE object"
msgstr ""
-#: fortran/resolve.c:7113 fortran/resolve.c:7116
+#: fortran/resolve.c:7119 fortran/resolve.c:7122
msgid "ALLOCATE object"
msgstr ""
-#: fortran/resolve.c:7345 fortran/resolve.c:8792
+#: fortran/resolve.c:7351 fortran/resolve.c:8798
msgid "STAT variable"
msgstr ""
-#: fortran/resolve.c:7389 fortran/resolve.c:8804
+#: fortran/resolve.c:7395 fortran/resolve.c:8810
msgid "ERRMSG variable"
msgstr ""
-#: fortran/resolve.c:8634
+#: fortran/resolve.c:8640
msgid "item in READ"
msgstr ""
-#: fortran/resolve.c:8816
+#: fortran/resolve.c:8822
msgid "ACQUIRED_LOCK variable"
msgstr ""
msgid "Different CHARACTER lengths (%ld/%ld) in array constructor"
msgstr ""
-#: fortran/trans-array.c:5484
+#: fortran/trans-array.c:5491
msgid "Integer overflow when calculating the amount of memory to allocate"
msgstr ""
-#: fortran/trans-decl.c:5490
+#: fortran/trans-decl.c:5503
#, c-format
msgid ""
"Actual string length does not match the declared one for dummy argument "
"'%s' (%ld/%ld)"
msgstr ""
-#: fortran/trans-decl.c:5498
+#: fortran/trans-decl.c:5511
#, c-format
msgid ""
"Actual string length is shorter than the declared one for dummy argument "
"'%s' (%ld/%ld)"
msgstr ""
-#: fortran/trans-expr.c:8140
+#: fortran/trans-expr.c:8170
#, c-format
msgid "Target of rank remapping is too small (%ld < %ld)"
msgstr ""
-#: fortran/trans-expr.c:9345
+#: fortran/trans-expr.c:9375
msgid "Assignment of scalar to unallocated array"
msgstr ""
msgid "%s: Failed to close output file %s\n"
msgstr ""
-#: objc/objc-act.c:6179 cp/cxx-pretty-print.c:156
+#: objc/objc-act.c:6179 cp/cxx-pretty-print.c:159
#, gcc-internal-format
msgid "<unnamed>"
msgstr ""
msgid "-E or -x required when input is from standard input"
msgstr ""
-#: config/nios2/elf.h:44
-msgid "You need a C startup file for -msys-crt0="
-msgstr ""
-
-#: config/sol2.h:181
-msgid "-fvtable-verify is not supported in this configuration"
-msgstr ""
-
-#: config/sol2.h:268 config/sol2.h:273
-msgid "does not support multilib"
-msgstr ""
-
-#: config/sol2.h:365
-msgid "-pie is not supported in this configuration"
-msgstr ""
-
-#: config/darwin.h:251
+#: config/darwin.h:252
msgid "-current_version only allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:253
+#: config/darwin.h:254
msgid "-install_name only allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:258
+#: config/darwin.h:259
msgid "-bundle not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:259
+#: config/darwin.h:260
msgid "-bundle_loader not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:260
+#: config/darwin.h:261
msgid "-client_name not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:265
+#: config/darwin.h:266
msgid "-force_flat_namespace not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:267
+#: config/darwin.h:268
msgid "-keep_private_externs not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:268
+#: config/darwin.h:269
msgid "-private_bundle not allowed with -dynamiclib"
msgstr ""
-#: config/sparc/linux64.h:149 config/sparc/linux64.h:156
-#: config/sparc/netbsd-elf.h:108 config/sparc/netbsd-elf.h:117
-#: config/sparc/sol2.h:219 config/sparc/sol2.h:225
-msgid "may not use both -m32 and -m64"
-msgstr ""
-
-#: config/s390/tpf.h:110
-msgid "static is not supported on TPF-OS"
+#: config/dragonfly.h:76 config/alpha/freebsd.h:33 config/i386/freebsd.h:82
+#: config/i386/freebsd64.h:35 config/ia64/freebsd.h:26
+#: config/rs6000/sysv4.h:731 config/sparc/freebsd.h:45
+msgid "consider using '-pg' instead of '-p' with gprof(1)"
msgstr ""
-#: config/i386/mingw-w64.h:87 config/i386/mingw32.h:117
-#: config/i386/cygwin-w64.h:64 config/i386/cygwin.h:130
-msgid "shared and mdll are not compatible"
+#: config/lynx.h:69
+msgid "cannot use mthreads and mlegacy-threads together"
msgstr ""
-#: config/alpha/freebsd.h:33 config/rs6000/sysv4.h:731 config/dragonfly.h:76
-#: config/ia64/freebsd.h:26 config/i386/freebsd.h:82
-#: config/i386/freebsd64.h:35 config/sparc/freebsd.h:45
-msgid "consider using '-pg' instead of '-p' with gprof(1)"
+#: config/lynx.h:94
+msgid "cannot use mshared and static together"
msgstr ""
-#: objc/lang-specs.h:30 objc/lang-specs.h:41
-msgid "GNU Objective C no longer supports traditional compilation"
+#: config/sol2.h:181
+msgid "-fvtable-verify is not supported in this configuration"
msgstr ""
-#: objc/lang-specs.h:55
-msgid ""
-"objc-cpp-output is deprecated; please use objective-c-cpp-output instead"
+#: config/sol2.h:268 config/sol2.h:273
+msgid "does not support multilib"
msgstr ""
-#: config/tilegx/tilegx.h:546 config/tilegx/tilegx.h:551 config/arm/arm.h:102
-msgid "-mbig-endian and -mlittle-endian may not be used together"
+#: config/sol2.h:365
+msgid "-pie is not supported in this configuration"
msgstr ""
-#: config/moxie/moxiebox.h:43
-msgid "this target is little-endian"
+#: config/vxworks.h:70
+msgid "-Xbind-now and -Xbind-lazy are incompatible"
msgstr ""
-#: ada/gcc-interface/lang-specs.h:34
-msgid "-c or -S required for Ada"
+#: config/arc/arc.h:142 config/mips/mips.h:1358
+msgid "may not use both -EB and -EL"
msgstr ""
-#: ada/gcc-interface/lang-specs.h:52
-msgid "-c required for gnat2why"
+#: config/arm/arm.h:100
+msgid "-mfloat-abi=soft and -mfloat-abi=hard may not be used together"
msgstr ""
-#: ada/gcc-interface/lang-specs.h:65
-msgid "-c required for gnat2scil"
+#: config/arm/arm.h:102 config/tilegx/tilegx.h:546 config/tilegx/tilegx.h:551
+msgid "-mbig-endian and -mlittle-endian may not be used together"
msgstr ""
-#: config/pa/pa-hpux10.h:102 config/pa/pa-hpux10.h:105
-#: config/pa/pa-hpux10.h:113 config/pa/pa-hpux10.h:116
-#: config/pa/pa-hpux11.h:134 config/pa/pa-hpux11.h:137
-#: config/pa/pa64-hpux.h:29 config/pa/pa64-hpux.h:32 config/pa/pa64-hpux.h:41
-#: config/pa/pa64-hpux.h:44
-msgid "warning: consider linking with '-static' as system libraries with"
+#: config/arm/freebsd.h:49
+msgid "consider using `-pg' instead of `-p' with gprof (1) "
msgstr ""
-#: config/pa/pa-hpux10.h:103 config/pa/pa-hpux10.h:106
-#: config/pa/pa-hpux10.h:114 config/pa/pa-hpux10.h:117
-#: config/pa/pa-hpux11.h:135 config/pa/pa-hpux11.h:138
-#: config/pa/pa64-hpux.h:30 config/pa/pa64-hpux.h:33 config/pa/pa64-hpux.h:42
-#: config/pa/pa64-hpux.h:45
-msgid " profiling support are only provided in archive format"
+#: config/avr/specs.h:68
+msgid "shared is not supported"
msgstr ""
-#: config/vxworks.h:70
-msgid "-Xbind-now and -Xbind-lazy are incompatible"
+#: config/bfin/elf.h:55
+msgid "no processor type specified for linking"
msgstr ""
#: config/cris/cris.h:184
msgid "do not specify both -march=... and -mcpu=..."
msgstr ""
-#: config/arc/arc.h:142 config/mips/mips.h:1358
-msgid "may not use both -EB and -EL"
-msgstr ""
-
-#: objcp/lang-specs.h:58
-msgid ""
-"objc++-cpp-output is deprecated; please use objective-c++-cpp-output instead"
-msgstr ""
-
-#: config/rs6000/darwin.h:95
-msgid " conflicting code gen style switches are used"
+#: config/i386/cygwin-w64.h:64 config/i386/cygwin.h:130
+#: config/i386/mingw-w64.h:87 config/i386/mingw32.h:117
+msgid "shared and mdll are not compatible"
msgstr ""
-#: fortran/lang-specs.h:54 fortran/lang-specs.h:68
-msgid "gfortran does not support -E without -cpp"
+#: config/mcore/mcore.h:53
+msgid "the m210 does not have little endian support"
msgstr ""
-#: config/sh/sh.h:375 config/sh/sh.h:378
-msgid "SH2a does not support little-endian"
+#: config/mips/r3900.h:37
+msgid "-mhard-float not supported"
msgstr ""
-#: config/avr/specs.h:68
-msgid "shared is not supported"
+#: config/mips/r3900.h:39
+msgid "-msingle-float and -msoft-float cannot both be specified"
msgstr ""
-#: config/arm/arm.h:100
-msgid "-mfloat-abi=soft and -mfloat-abi=hard may not be used together"
+#: config/moxie/moxiebox.h:43
+msgid "this target is little-endian"
msgstr ""
-#: config/vax/netbsd-elf.h:51
-msgid "the -shared option is not currently supported for VAX ELF"
+#: config/nios2/elf.h:44
+msgid "You need a C startup file for -msys-crt0="
msgstr ""
-#: config/mips/r3900.h:37
-msgid "-mhard-float not supported"
+#: config/pa/pa-hpux10.h:102 config/pa/pa-hpux10.h:105
+#: config/pa/pa-hpux10.h:113 config/pa/pa-hpux10.h:116
+#: config/pa/pa-hpux11.h:134 config/pa/pa-hpux11.h:137 config/pa/pa64-hpux.h:29
+#: config/pa/pa64-hpux.h:32 config/pa/pa64-hpux.h:41 config/pa/pa64-hpux.h:44
+msgid "warning: consider linking with '-static' as system libraries with"
msgstr ""
-#: config/mips/r3900.h:39
-msgid "-msingle-float and -msoft-float cannot both be specified"
+#: config/pa/pa-hpux10.h:103 config/pa/pa-hpux10.h:106
+#: config/pa/pa-hpux10.h:114 config/pa/pa-hpux10.h:117
+#: config/pa/pa-hpux11.h:135 config/pa/pa-hpux11.h:138 config/pa/pa64-hpux.h:30
+#: config/pa/pa64-hpux.h:33 config/pa/pa64-hpux.h:42 config/pa/pa64-hpux.h:45
+msgid " profiling support are only provided in archive format"
msgstr ""
-#: config/vax/vax.h:46 config/vax/vax.h:47
-msgid "profiling not supported with -mg"
+#: config/rs6000/darwin.h:95
+msgid " conflicting code gen style switches are used"
msgstr ""
#: config/rs6000/freebsd64.h:171
msgid "consider using `-pg' instead of `-p' with gprof(1)"
msgstr ""
-#: config/lynx.h:69
-msgid "cannot use mthreads and mlegacy-threads together"
-msgstr ""
-
-#: config/lynx.h:94
-msgid "cannot use mshared and static together"
-msgstr ""
-
#: config/rx/rx.h:80
msgid "-mas100-syntax is incompatible with -gdwarf"
msgstr ""
msgid "rx200 cpu does not have FPU hardware"
msgstr ""
-#: config/arm/freebsd.h:49
-msgid "consider using `-pg' instead of `-p' with gprof (1) "
+#: config/s390/tpf.h:110
+msgid "static is not supported on TPF-OS"
msgstr ""
-#: config/bfin/elf.h:55
-msgid "no processor type specified for linking"
+#: config/sh/sh.h:375 config/sh/sh.h:378
+msgid "SH2a does not support little-endian"
+msgstr ""
+
+#: config/sparc/linux64.h:149 config/sparc/linux64.h:156
+#: config/sparc/netbsd-elf.h:108 config/sparc/netbsd-elf.h:117
+#: config/sparc/sol2.h:228 config/sparc/sol2.h:234
+msgid "may not use both -m32 and -m64"
+msgstr ""
+
+#: config/vax/netbsd-elf.h:51
+msgid "the -shared option is not currently supported for VAX ELF"
+msgstr ""
+
+#: config/vax/vax.h:46 config/vax/vax.h:47
+msgid "profiling not supported with -mg"
+msgstr ""
+
+#: ada/gcc-interface/lang-specs.h:34
+msgid "-c or -S required for Ada"
+msgstr ""
+
+#: ada/gcc-interface/lang-specs.h:52
+msgid "-c required for gnat2why"
+msgstr ""
+
+#: ada/gcc-interface/lang-specs.h:65
+msgid "-c required for gnat2scil"
+msgstr ""
+
+#: fortran/lang-specs.h:54 fortran/lang-specs.h:68
+msgid "gfortran does not support -E without -cpp"
msgstr ""
#: java/lang-specs.h:32
msgid "-femit-class-file should used along with -fsyntax-only"
msgstr ""
-#: config/mcore/mcore.h:53
-msgid "the m210 does not have little endian support"
+#: objc/lang-specs.h:30 objc/lang-specs.h:41
+msgid "GNU Objective C no longer supports traditional compilation"
+msgstr ""
+
+#: objc/lang-specs.h:55
+msgid ""
+"objc-cpp-output is deprecated; please use objective-c-cpp-output instead"
+msgstr ""
+
+#: objcp/lang-specs.h:58
+msgid ""
+"objc++-cpp-output is deprecated; please use objective-c++-cpp-output instead"
msgstr ""
#: fortran/lang.opt:146
msgstr ""
#: fortran/lang.opt:421
-msgid "Set the default double precision kind to an 8 byte wide type."
+msgid "Enable all DEC language extensions."
msgstr ""
#: fortran/lang.opt:425
-msgid "Set the default integer kind to an 8 byte wide type."
+msgid "Enable support for DEC STRUCTURE/RECORD."
msgstr ""
#: fortran/lang.opt:429
-msgid "Set the default real kind to an 8 byte wide type."
+msgid "Set the default double precision kind to an 8 byte wide type."
msgstr ""
#: fortran/lang.opt:433
+msgid "Set the default integer kind to an 8 byte wide type."
+msgstr ""
+
+#: fortran/lang.opt:437
+msgid "Set the default real kind to an 8 byte wide type."
+msgstr ""
+
+#: fortran/lang.opt:441
msgid "Allow dollar signs in entity names."
msgstr ""
-#: fortran/lang.opt:437 config/alpha/alpha.opt:31 common.opt:732
-#: common.opt:920 common.opt:924 common.opt:928 common.opt:932 common.opt:1421
-#: common.opt:1570 common.opt:1574 common.opt:1800 common.opt:1946
-#: common.opt:2598
+#: fortran/lang.opt:445 config/alpha/alpha.opt:31 common.opt:732 common.opt:920
+#: common.opt:924 common.opt:928 common.opt:932 common.opt:1421 common.opt:1570
+#: common.opt:1574 common.opt:1800 common.opt:1946 common.opt:2598
msgid "Does nothing. Preserved for backward compatibility."
msgstr ""
-#: fortran/lang.opt:441
+#: fortran/lang.opt:449
msgid "Display the code tree after parsing."
msgstr ""
-#: fortran/lang.opt:445
+#: fortran/lang.opt:453
msgid "Display the code tree after front end optimization."
msgstr ""
-#: fortran/lang.opt:449
+#: fortran/lang.opt:457
msgid "Display the code tree after parsing; deprecated option."
msgstr ""
-#: fortran/lang.opt:453
+#: fortran/lang.opt:461
msgid ""
"Specify that an external BLAS library should be used for matmul calls on "
"large-size arrays."
msgstr ""
-#: fortran/lang.opt:457
+#: fortran/lang.opt:465
msgid "Use f2c calling convention."
msgstr ""
-#: fortran/lang.opt:461
+#: fortran/lang.opt:469
msgid "Assume that the source file is fixed form."
msgstr ""
-#: fortran/lang.opt:465
+#: fortran/lang.opt:473
msgid "Interpret any INTEGER(4) as an INTEGER(8)."
msgstr ""
-#: fortran/lang.opt:469 fortran/lang.opt:473
+#: fortran/lang.opt:477 fortran/lang.opt:481
msgid "Specify where to find the compiled intrinsic modules."
msgstr ""
-#: fortran/lang.opt:477
+#: fortran/lang.opt:485
msgid "Allow arbitrary character line width in fixed mode."
msgstr ""
-#: fortran/lang.opt:481
+#: fortran/lang.opt:489
msgid "-ffixed-line-length-<n>\tUse n as character line width in fixed mode."
msgstr ""
-#: fortran/lang.opt:485
+#: fortran/lang.opt:493
msgid "-ffpe-trap=[...]\tStop on following floating point exceptions."
msgstr ""
-#: fortran/lang.opt:489
+#: fortran/lang.opt:497
msgid "-ffpe-summary=[...]\tPrint summary of floating point exceptions."
msgstr ""
-#: fortran/lang.opt:493
+#: fortran/lang.opt:501
msgid "Assume that the source file is free form."
msgstr ""
-#: fortran/lang.opt:497
+#: fortran/lang.opt:505
msgid "Allow arbitrary character line width in free mode."
msgstr ""
-#: fortran/lang.opt:501
+#: fortran/lang.opt:509
msgid "-ffree-line-length-<n>\tUse n as character line width in free mode."
msgstr ""
-#: fortran/lang.opt:505
+#: fortran/lang.opt:513
msgid "Enable front end optimization."
msgstr ""
-#: fortran/lang.opt:509
+#: fortran/lang.opt:517
msgid ""
"Specify that no implicit typing is allowed, unless overridden by explicit "
"IMPLICIT statements."
msgstr ""
-#: fortran/lang.opt:513
+#: fortran/lang.opt:521
msgid ""
"-finit-character=<n>\tInitialize local character variables to ASCII value n."
msgstr ""
-#: fortran/lang.opt:517
+#: fortran/lang.opt:525
msgid "-finit-integer=<n>\tInitialize local integer variables to n."
msgstr ""
-#: fortran/lang.opt:521
+#: fortran/lang.opt:529
msgid "Initialize local variables to zero (from g77)."
msgstr ""
-#: fortran/lang.opt:525
+#: fortran/lang.opt:533
msgid "-finit-logical=<true|false>\tInitialize local logical variables."
msgstr ""
-#: fortran/lang.opt:529
+#: fortran/lang.opt:537
msgid "-finit-real=<zero|snan|nan|inf|-inf>\tInitialize local real variables."
msgstr ""
-#: fortran/lang.opt:532
+#: fortran/lang.opt:540
#, c-format
msgid "Unrecognized option to floating-point init value: %qs"
msgstr ""
-#: fortran/lang.opt:551
+#: fortran/lang.opt:559
msgid ""
"-finline-matmul-limit=<n>\tSpecify the size of the largest matrix for which "
"matmul will be inlined."
msgstr ""
-#: fortran/lang.opt:555
+#: fortran/lang.opt:563
msgid ""
"-fmax-array-constructor=<n>\tMaximum number of objects in an array "
"constructor."
msgstr ""
-#: fortran/lang.opt:559
+#: fortran/lang.opt:567
msgid "-fmax-identifier-length=<n>\tMaximum identifier length."
msgstr ""
-#: fortran/lang.opt:563
+#: fortran/lang.opt:571
msgid "-fmax-subrecord-length=<n>\tMaximum length for subrecords."
msgstr ""
-#: fortran/lang.opt:567
+#: fortran/lang.opt:575
msgid ""
"-fmax-stack-var-size=<n>\tSize in bytes of the largest array that will be "
"put on the stack."
msgstr ""
-#: fortran/lang.opt:571
+#: fortran/lang.opt:579
msgid "Put all local arrays on stack."
msgstr ""
-#: fortran/lang.opt:575
+#: fortran/lang.opt:583
msgid "Set default accessibility of module entities to PRIVATE."
msgstr ""
-#: fortran/lang.opt:595
+#: fortran/lang.opt:603
msgid "Try to lay out derived types as compactly as possible."
msgstr ""
-#: fortran/lang.opt:603
+#: fortran/lang.opt:611
msgid "Protect parentheses in expressions."
msgstr ""
-#: fortran/lang.opt:607
+#: fortran/lang.opt:615
msgid "Enable range checking during compilation."
msgstr ""
-#: fortran/lang.opt:611
+#: fortran/lang.opt:619
msgid "Interpret any REAL(4) as a REAL(8)."
msgstr ""
-#: fortran/lang.opt:615
+#: fortran/lang.opt:623
msgid "Interpret any REAL(4) as a REAL(10)."
msgstr ""
-#: fortran/lang.opt:619
+#: fortran/lang.opt:627
msgid "Interpret any REAL(4) as a REAL(16)."
msgstr ""
-#: fortran/lang.opt:623
+#: fortran/lang.opt:631
msgid "Interpret any REAL(8) as a REAL(4)."
msgstr ""
-#: fortran/lang.opt:627
+#: fortran/lang.opt:635
msgid "Interpret any REAL(8) as a REAL(10)."
msgstr ""
-#: fortran/lang.opt:631
+#: fortran/lang.opt:639
msgid "Interpret any REAL(8) as a REAL(16)."
msgstr ""
-#: fortran/lang.opt:635
+#: fortran/lang.opt:643
msgid "Reallocate the LHS in assignments."
msgstr ""
-#: fortran/lang.opt:639
+#: fortran/lang.opt:647
msgid "Use a 4-byte record marker for unformatted files."
msgstr ""
-#: fortran/lang.opt:643
+#: fortran/lang.opt:651
msgid "Use an 8-byte record marker for unformatted files."
msgstr ""
-#: fortran/lang.opt:647
+#: fortran/lang.opt:655
msgid "Allocate local variables on the stack to allow indirect recursion."
msgstr ""
-#: fortran/lang.opt:651
+#: fortran/lang.opt:659
msgid "Copy array sections into a contiguous block on procedure entry."
msgstr ""
-#: fortran/lang.opt:655
+#: fortran/lang.opt:663
msgid ""
"-fcoarray=<none|single|lib>\tSpecify which coarray parallelization should be "
"used."
msgstr ""
-#: fortran/lang.opt:658
+#: fortran/lang.opt:666
#, c-format
msgid "Unrecognized option: %qs"
msgstr ""
-#: fortran/lang.opt:671
+#: fortran/lang.opt:679
msgid "-fcheck=[...]\tSpecify which runtime checks are to be performed."
msgstr ""
-#: fortran/lang.opt:675
+#: fortran/lang.opt:683
msgid "Append a second underscore if the name already contains an underscore."
msgstr ""
-#: fortran/lang.opt:683
+#: fortran/lang.opt:691
msgid "Apply negative sign to zero values."
msgstr ""
-#: fortran/lang.opt:687
+#: fortran/lang.opt:695
msgid "Append underscores to externally visible names."
msgstr ""
-#: fortran/lang.opt:691 c-family/c.opt:1155 c-family/c.opt:1179
+#: fortran/lang.opt:699 c-family/c.opt:1155 c-family/c.opt:1179
#: c-family/c.opt:1409 config/pa/pa.opt:42 config/pa/pa.opt:66
#: config/sh/sh.opt:213 common.opt:1074 common.opt:1301 common.opt:1653
#: common.opt:1999 common.opt:2035 common.opt:2124 common.opt:2128
msgid "Does nothing. Preserved for backward compatibility."
msgstr ""
-#: fortran/lang.opt:731
+#: fortran/lang.opt:739
msgid "Statically link the GNU Fortran helper library (libgfortran)."
msgstr ""
-#: fortran/lang.opt:735
+#: fortran/lang.opt:743
msgid "Conform to the ISO Fortran 2003 standard."
msgstr ""
-#: fortran/lang.opt:739
+#: fortran/lang.opt:747
msgid "Conform to the ISO Fortran 2008 standard."
msgstr ""
-#: fortran/lang.opt:743
+#: fortran/lang.opt:751
msgid "Conform to the ISO Fortran 2008 standard including TS 29113."
msgstr ""
-#: fortran/lang.opt:747
+#: fortran/lang.opt:755
msgid "Conform to the ISO Fortran 95 standard."
msgstr ""
-#: fortran/lang.opt:751
+#: fortran/lang.opt:759
msgid "Conform to nothing in particular."
msgstr ""
-#: fortran/lang.opt:755
+#: fortran/lang.opt:763
msgid "Accept extensions to support legacy code."
msgstr ""
msgstr ""
#: config/ia64/ia64.opt:122 config/spu/spu.opt:84 config/i386/i386.opt:504
-#: config/s390/s390.opt:170 config/sparc/sparc.opt:126
+#: config/s390/s390.opt:170 config/sparc/sparc.opt:130
#: config/visium/visium.opt:49
msgid "Schedule code for given CPU."
msgstr ""
msgid "target the software simulator."
msgstr ""
-#: config/ft32/ft32.opt:27 config/s390/s390.opt:201
-#: config/rs6000/rs6000.opt:474 config/mips/mips.opt:385
+#: config/ft32/ft32.opt:27 config/s390/s390.opt:201 config/mips/mips.opt:385
msgid "Use LRA instead of reload."
msgstr ""
msgstr ""
#: config/sparc/sparc.opt:78
-msgid "Use UltraSPARC Compare-and-Branch extensions."
+msgid "Use UltraSPARC Visual Instruction Set version 4.0 extensions."
msgstr ""
#: config/sparc/sparc.opt:82
-msgid "Use UltraSPARC Fused Multiply-Add extensions."
+msgid "Use UltraSPARC Compare-and-Branch extensions."
msgstr ""
#: config/sparc/sparc.opt:86
-msgid "Use UltraSPARC Population-Count instruction."
+msgid "Use UltraSPARC Fused Multiply-Add extensions."
msgstr ""
#: config/sparc/sparc.opt:90
-msgid "Pointers are 64-bit."
+msgid "Use UltraSPARC Population-Count instruction."
msgstr ""
#: config/sparc/sparc.opt:94
-msgid "Pointers are 32-bit."
+msgid "Pointers are 64-bit."
msgstr ""
#: config/sparc/sparc.opt:98
-msgid "Use 64-bit ABI."
+msgid "Pointers are 32-bit."
msgstr ""
#: config/sparc/sparc.opt:102
-msgid "Use 32-bit ABI."
+msgid "Use 64-bit ABI."
msgstr ""
#: config/sparc/sparc.opt:106
-msgid "Use stack bias."
+msgid "Use 32-bit ABI."
msgstr ""
#: config/sparc/sparc.opt:110
-msgid "Use structs on stronger alignment for double-word copies."
+msgid "Use stack bias."
msgstr ""
#: config/sparc/sparc.opt:114
-msgid "Optimize tail call instructions in assembler and linker."
+msgid "Use structs on stronger alignment for double-word copies."
msgstr ""
#: config/sparc/sparc.opt:118
+msgid "Optimize tail call instructions in assembler and linker."
+msgstr ""
+
+#: config/sparc/sparc.opt:122
msgid "Do not generate code that can only run in supervisor mode (default)."
msgstr ""
-#: config/sparc/sparc.opt:122 config/visium/visium.opt:45
+#: config/sparc/sparc.opt:126 config/visium/visium.opt:45
msgid "Use features of and schedule code for given CPU."
msgstr ""
-#: config/sparc/sparc.opt:199
+#: config/sparc/sparc.opt:206
msgid "Use given SPARC-V9 code model."
msgstr ""
-#: config/sparc/sparc.opt:203
+#: config/sparc/sparc.opt:210
msgid "Enable debug output."
msgstr ""
-#: config/sparc/sparc.opt:207
+#: config/sparc/sparc.opt:214
msgid "Enable strict 32-bit psABI struct return checking."
msgstr ""
-#: config/sparc/sparc.opt:211
+#: config/sparc/sparc.opt:218
msgid "Enable workaround for single erratum of AT697F processor"
msgstr ""
-#: config/sparc/sparc.opt:216
+#: config/sparc/sparc.opt:223
msgid "Enable workarounds for the errata of the UT699 processor."
msgstr ""
-#: config/sparc/sparc.opt:245
+#: config/sparc/sparc.opt:252
msgid "Specify the memory model in effect for the program."
msgstr ""
msgid "-mlong-double-<n>\tSpecify size of long double (64 or 128 bits)."
msgstr ""
+#: config/rs6000/rs6000.opt:474
+msgid "Enable Local Register Allocation."
+msgstr ""
+
#: config/rs6000/rs6000.opt:478
msgid "Determine which dependences between insns are considered costly."
msgstr ""
msgid "Fuse certain operations together for better performance on power9."
msgstr ""
-#: config/rs6000/rs6000.opt:610 config/rs6000/rs6000.opt:614
-msgid "Use/do not use vector and scalar instructions added in ISA 3.0."
+#: config/rs6000/rs6000.opt:610
+msgid "Use/do not use certain scalar instructions added in ISA 3.0."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:614
+msgid "Use/do not use vector instructions added in ISA 3.0."
msgstr ""
#: config/rs6000/rs6000.opt:618
-msgid "Use/do not use the new min/max instructions defined in ISA 3.0."
+msgid ""
+"Use/do not use scalar register+offset memory instructions added in ISA 3.0."
msgstr ""
#: config/rs6000/rs6000.opt:622
msgid ""
-"Fuse medium/large code model toc references with the memory instruction."
+"Use/do not use vector register+offset memory instructions added in ISA 3.0."
msgstr ""
#: config/rs6000/rs6000.opt:626
-msgid "Generate the integer modulo instructions."
+msgid "Use/do not use register+offset memory instructions added in ISA 3.0."
msgstr ""
#: config/rs6000/rs6000.opt:630
-msgid "Enable/disable IEEE 128-bit floating point via the __float128 keyword."
+msgid "Use/do not use the new min/max instructions defined in ISA 3.0."
msgstr ""
#: config/rs6000/rs6000.opt:634
-msgid "Enable/disable using IEEE 128-bit floating point instructions."
+msgid ""
+"Fuse medium/large code model toc references with the memory instruction."
msgstr ""
#: config/rs6000/rs6000.opt:638
+msgid "Generate the integer modulo instructions."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:642
+msgid "Enable/disable IEEE 128-bit floating point via the __float128 keyword."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:646
+msgid "Enable/disable using IEEE 128-bit floating point instructions."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:650
msgid "Enable/disable default conversions between __float128 & long double."
msgstr ""
msgid "expected boolean type"
msgstr ""
-#: go/gofrontend/expressions.cc:4015 c/c-parser.c:12595 c/c-parser.c:12602
-#: cp/parser.c:31676 cp/parser.c:31683
+#: go/gofrontend/expressions.cc:4015 c/c-parser.c:12578 c/c-parser.c:12585
+#: cp/parser.c:31735 cp/parser.c:31742
#, gcc-internal-format
msgid "expected integer"
msgstr ""
msgid "type attributes ignored after type is already defined"
msgstr ""
-#: auto-profile.c:348
+#: auto-profile.c:345
#, gcc-internal-format
msgid "Offset exceeds 16 bytes."
msgstr ""
-#: auto-profile.c:825
+#: auto-profile.c:822
#, gcc-internal-format
msgid "Not expected TAG."
msgstr ""
-#: auto-profile.c:890
+#: auto-profile.c:887
#, gcc-internal-format, gfc-internal-format
msgid "Cannot open profile file %s."
msgstr ""
-#: auto-profile.c:893
+#: auto-profile.c:890
#, gcc-internal-format
msgid "AutoFDO profile magic number does not mathch."
msgstr ""
-#: auto-profile.c:898
+#: auto-profile.c:895
#, gcc-internal-format, gfc-internal-format
msgid "AutoFDO profile version %u does match %u."
msgstr ""
-#: auto-profile.c:907
+#: auto-profile.c:904
#, gcc-internal-format, gfc-internal-format
msgid "Cannot read string table from %s."
msgstr ""
-#: auto-profile.c:912
+#: auto-profile.c:909
#, gcc-internal-format, gfc-internal-format
msgid "Cannot read function profile from %s."
msgstr ""
-#: auto-profile.c:919
+#: auto-profile.c:916
#, gcc-internal-format, gfc-internal-format
msgid "Cannot read working set from %s."
msgstr ""
msgid "%Kattempt to free a non-heap object"
msgstr ""
-#: calls.c:2491
+#: calls.c:2501
#, gcc-internal-format
msgid "function call has aggregate value"
msgstr ""
-#: calls.c:3187
+#: calls.c:3197
#, gcc-internal-format
msgid "passing too large argument on stack"
msgstr ""
msgid "%d exits recorded for loop %d (having %d exits)"
msgstr ""
-#: cfgrtl.c:2326
+#: cfgrtl.c:2328
#, gcc-internal-format, gfc-internal-format
msgid "non-cold basic block %d dominated by a block in the cold partition (%d)"
msgstr ""
-#: cfgrtl.c:2403
+#: cfgrtl.c:2405
#, gcc-internal-format, gfc-internal-format
msgid "multiple hot/cold transitions found (bb %i)"
msgstr ""
-#: cfgrtl.c:2411
+#: cfgrtl.c:2413
#, gcc-internal-format
msgid "partition found but function partition flag not set"
msgstr ""
-#: cfgrtl.c:2449
+#: cfgrtl.c:2451
#, gcc-internal-format, gfc-internal-format
msgid "verify_flow_info: REG_BR_PROB does not match cfg %i %i"
msgstr ""
-#: cfgrtl.c:2470
+#: cfgrtl.c:2472
#, gcc-internal-format
msgid "EDGE_CROSSING incorrectly set across same section"
msgstr ""
-#: cfgrtl.c:2475
+#: cfgrtl.c:2477
#, gcc-internal-format, gfc-internal-format
msgid "fallthru edge crosses section boundary in bb %i"
msgstr ""
-#: cfgrtl.c:2481
+#: cfgrtl.c:2483
#, gcc-internal-format, gfc-internal-format
msgid "EH edge crosses section boundary in bb %i"
msgstr ""
-#: cfgrtl.c:2487
+#: cfgrtl.c:2489
#, gcc-internal-format, gfc-internal-format
msgid "No region crossing jump at section boundary in bb %i"
msgstr ""
-#: cfgrtl.c:2494
+#: cfgrtl.c:2496
#, gcc-internal-format
msgid "EDGE_CROSSING missing across section boundary"
msgstr ""
-#: cfgrtl.c:2524
+#: cfgrtl.c:2526
#, gcc-internal-format, gfc-internal-format
msgid "Region crossing jump across same section in bb %i"
msgstr ""
-#: cfgrtl.c:2531
+#: cfgrtl.c:2533
#, gcc-internal-format, gfc-internal-format
msgid "missing REG_EH_REGION note at the end of bb %i"
msgstr ""
-#: cfgrtl.c:2536
+#: cfgrtl.c:2538
#, gcc-internal-format, gfc-internal-format
msgid "too many exception handling edges in bb %i"
msgstr ""
-#: cfgrtl.c:2544
+#: cfgrtl.c:2546
#, gcc-internal-format, gfc-internal-format
msgid "too many outgoing branch edges from bb %i"
msgstr ""
-#: cfgrtl.c:2549
+#: cfgrtl.c:2551
#, gcc-internal-format, gfc-internal-format
msgid "fallthru edge after unconditional jump in bb %i"
msgstr ""
-#: cfgrtl.c:2554
+#: cfgrtl.c:2556
#, gcc-internal-format, gfc-internal-format
msgid "wrong number of branch edges after unconditional jump in bb %i"
msgstr ""
-#: cfgrtl.c:2561
+#: cfgrtl.c:2563
#, gcc-internal-format, gfc-internal-format
msgid "wrong amount of branch edges after conditional jump in bb %i"
msgstr ""
-#: cfgrtl.c:2567
+#: cfgrtl.c:2569
#, gcc-internal-format, gfc-internal-format
msgid "abnormal call edges for non-call insn in bb %i"
msgstr ""
-#: cfgrtl.c:2572
+#: cfgrtl.c:2574
#, gcc-internal-format, gfc-internal-format
msgid "sibcall edges for non-call insn in bb %i"
msgstr ""
-#: cfgrtl.c:2582
+#: cfgrtl.c:2584
#, gcc-internal-format, gfc-internal-format
msgid "abnormal edges for no purpose in bb %i"
msgstr ""
-#: cfgrtl.c:2620 cfgrtl.c:2630
+#: cfgrtl.c:2622 cfgrtl.c:2632
#, gcc-internal-format, gfc-internal-format
msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
msgstr ""
-#: cfgrtl.c:2643
+#: cfgrtl.c:2645
#, gcc-internal-format, gfc-internal-format
msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d"
msgstr ""
-#: cfgrtl.c:2653
+#: cfgrtl.c:2655
#, gcc-internal-format, gfc-internal-format
msgid "in basic block %d:"
msgstr ""
-#: cfgrtl.c:2679
+#: cfgrtl.c:2681
#, gcc-internal-format, gfc-internal-format
msgid "BB_RTL flag not set for block %d"
msgstr ""
-#: cfgrtl.c:2686
+#: cfgrtl.c:2688
#, gcc-internal-format, gfc-internal-format
msgid "insn %d basic block pointer is %d, should be %d"
msgstr ""
-#: cfgrtl.c:2697
+#: cfgrtl.c:2699
#, gcc-internal-format, gfc-internal-format
msgid "insn %d in header of bb %d has non-NULL basic block"
msgstr ""
-#: cfgrtl.c:2705
+#: cfgrtl.c:2707
#, gcc-internal-format, gfc-internal-format
msgid "insn %d in footer of bb %d has non-NULL basic block"
msgstr ""
-#: cfgrtl.c:2778 cfgrtl.c:2826
+#: cfgrtl.c:2780 cfgrtl.c:2828
#, gcc-internal-format, gfc-internal-format
msgid "insn %d outside of basic blocks has non-NULL bb field"
msgstr ""
-#: cfgrtl.c:2786
+#: cfgrtl.c:2788
#, gcc-internal-format, gfc-internal-format
msgid "end insn %d for block %d not found in the insn stream"
msgstr ""
-#: cfgrtl.c:2799
+#: cfgrtl.c:2801
#, gcc-internal-format, gfc-internal-format
msgid "insn %d is in multiple basic blocks (%d and %d)"
msgstr ""
-#: cfgrtl.c:2811
+#: cfgrtl.c:2813
#, gcc-internal-format, gfc-internal-format
msgid "head insn %d for block %d not found in the insn stream"
msgstr ""
-#: cfgrtl.c:2859
+#: cfgrtl.c:2861
#, gcc-internal-format, gfc-internal-format
msgid "missing barrier after block %i"
msgstr ""
-#: cfgrtl.c:2875
+#: cfgrtl.c:2877
#, gcc-internal-format, gfc-internal-format
msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i"
msgstr ""
-#: cfgrtl.c:2884
+#: cfgrtl.c:2886
#, gcc-internal-format, gfc-internal-format
msgid "verify_flow_info: Incorrect fallthru %i->%i"
msgstr ""
-#: cfgrtl.c:2920
+#: cfgrtl.c:2922
#, gcc-internal-format
msgid "basic blocks not laid down consecutively"
msgstr ""
-#: cfgrtl.c:2958
+#: cfgrtl.c:2960
#, gcc-internal-format, gfc-internal-format
msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
msgstr ""
-#: cgraph.c:2728
+#: cgraph.c:2739
#, gcc-internal-format
msgid "caller edge count is negative"
msgstr ""
-#: cgraph.c:2733
+#: cgraph.c:2744
#, gcc-internal-format
msgid "caller edge frequency is negative"
msgstr ""
-#: cgraph.c:2738
+#: cgraph.c:2749
#, gcc-internal-format
msgid "caller edge frequency is too large"
msgstr ""
-#: cgraph.c:2822
+#: cgraph.c:2833
#, gcc-internal-format, gfc-internal-format
msgid "aux field set for edge %s->%s"
msgstr ""
-#: cgraph.c:2829
+#: cgraph.c:2840
#, gcc-internal-format
msgid "execution count is negative"
msgstr ""
-#: cgraph.c:2834
+#: cgraph.c:2845
#, gcc-internal-format
msgid "inline clone in same comdat group list"
msgstr ""
-#: cgraph.c:2839
+#: cgraph.c:2850
#, gcc-internal-format
msgid "local symbols must be defined"
msgstr ""
-#: cgraph.c:2844
+#: cgraph.c:2855
#, gcc-internal-format
msgid "externally visible inline clone"
msgstr ""
-#: cgraph.c:2849
+#: cgraph.c:2860
#, gcc-internal-format
msgid "inline clone with address taken"
msgstr ""
-#: cgraph.c:2854
+#: cgraph.c:2865
#, gcc-internal-format
msgid "inline clone is forced to output"
msgstr ""
-#: cgraph.c:2861
+#: cgraph.c:2872
#, gcc-internal-format, gfc-internal-format
msgid "aux field set for indirect edge from %s"
msgstr ""
-#: cgraph.c:2868
+#: cgraph.c:2879
#, gcc-internal-format, gfc-internal-format
msgid ""
"An indirect edge from %s is not marked as indirect or has associated "
"indirect_info, the corresponding statement is: "
msgstr ""
-#: cgraph.c:2883
+#: cgraph.c:2894
#, gcc-internal-format, gfc-internal-format
msgid "comdat-local function called by %s outside its comdat"
msgstr ""
-#: cgraph.c:2893
+#: cgraph.c:2904
#, gcc-internal-format
msgid "inlined_to pointer is wrong"
msgstr ""
-#: cgraph.c:2898
+#: cgraph.c:2909
#, gcc-internal-format
msgid "multiple inline callers"
msgstr ""
-#: cgraph.c:2905
+#: cgraph.c:2916
#, gcc-internal-format
msgid "inlined_to pointer set for noninline callers"
msgstr ""
-#: cgraph.c:2924
+#: cgraph.c:2935
#, gcc-internal-format, gfc-internal-format
msgid "caller edge frequency %i does not match BB frequency %i"
msgstr ""
-#: cgraph.c:2942
+#: cgraph.c:2953
#, gcc-internal-format, gfc-internal-format
msgid "indirect call frequency %i does not match BB frequency %i"
msgstr ""
-#: cgraph.c:2951
+#: cgraph.c:2962
#, gcc-internal-format
msgid "inlined_to pointer is set but no predecessors found"
msgstr ""
-#: cgraph.c:2956
+#: cgraph.c:2967
#, gcc-internal-format
msgid "inlined_to pointer refers to itself"
msgstr ""
-#: cgraph.c:2968
+#: cgraph.c:2979
#, gcc-internal-format
msgid "cgraph_node has wrong clone_of"
msgstr ""
-#: cgraph.c:2980
+#: cgraph.c:2991
#, gcc-internal-format
msgid "cgraph_node has wrong clone list"
msgstr ""
-#: cgraph.c:2986
+#: cgraph.c:2997
#, gcc-internal-format
msgid "cgraph_node is in clone list but it is not clone"
msgstr ""
-#: cgraph.c:2991
+#: cgraph.c:3002
#, gcc-internal-format
msgid "cgraph_node has wrong prev_clone pointer"
msgstr ""
-#: cgraph.c:2996
+#: cgraph.c:3007
#, gcc-internal-format
msgid "double linked list of clones corrupted"
msgstr ""
-#: cgraph.c:3008
+#: cgraph.c:3019
#, gcc-internal-format
msgid "Alias has call edges"
msgstr ""
-#: cgraph.c:3016
+#: cgraph.c:3027
#, gcc-internal-format
msgid "Alias has non-alias reference"
msgstr ""
-#: cgraph.c:3021
+#: cgraph.c:3032
#, gcc-internal-format
msgid "Alias has more than one alias reference"
msgstr ""
-#: cgraph.c:3028
+#: cgraph.c:3039
#, gcc-internal-format
msgid "Analyzed alias has no reference"
msgstr ""
-#: cgraph.c:3037
+#: cgraph.c:3048
#, gcc-internal-format
msgid "Instrumentation clone does not reference original node"
msgstr ""
-#: cgraph.c:3044
+#: cgraph.c:3055
#, gcc-internal-format
msgid "Not instrumented node has non-NULL original declaration"
msgstr ""
-#: cgraph.c:3054
+#: cgraph.c:3065
#, gcc-internal-format
msgid "Instrumented node has wrong original declaration"
msgstr ""
-#: cgraph.c:3072
+#: cgraph.c:3083
#, gcc-internal-format
msgid "Node has more than one chkp reference"
msgstr ""
-#: cgraph.c:3077
+#: cgraph.c:3088
#, gcc-internal-format
msgid "Wrong node is referenced with chkp reference"
msgstr ""
-#: cgraph.c:3085
+#: cgraph.c:3096
#, gcc-internal-format
msgid "Analyzed node has no reference to instrumented version"
msgstr ""
-#: cgraph.c:3099
+#: cgraph.c:3110
#, gcc-internal-format
msgid "Alias chain for instrumented node is broken"
msgstr ""
-#: cgraph.c:3108
+#: cgraph.c:3119
#, gcc-internal-format
msgid "No edge out of thunk node"
msgstr ""
-#: cgraph.c:3113
+#: cgraph.c:3124
#, gcc-internal-format
msgid "More than one edge out of thunk node"
msgstr ""
-#: cgraph.c:3118
+#: cgraph.c:3129
#, gcc-internal-format
msgid "Thunk is not supposed to have body"
msgstr ""
-#: cgraph.c:3124
+#: cgraph.c:3135
#, gcc-internal-format
msgid "Instrumentation thunk has wrong edge callee"
msgstr ""
-#: cgraph.c:3160
+#: cgraph.c:3171
#, gcc-internal-format
msgid "shared call_stmt:"
msgstr ""
-#: cgraph.c:3168
+#: cgraph.c:3179
#, gcc-internal-format
msgid "edge points to wrong declaration:"
msgstr ""
-#: cgraph.c:3177
+#: cgraph.c:3188
#, gcc-internal-format
msgid ""
"an indirect edge with unknown callee corresponding to a call_stmt with a "
"known declaration:"
msgstr ""
-#: cgraph.c:3187
+#: cgraph.c:3198
#, gcc-internal-format
msgid "missing callgraph edge for call stmt:"
msgstr ""
-#: cgraph.c:3197
+#: cgraph.c:3208
#, gcc-internal-format
msgid "reference to dead statement"
msgstr ""
-#: cgraph.c:3210
+#: cgraph.c:3221
#, gcc-internal-format, gfc-internal-format
msgid "edge %s->%s has no corresponding call_stmt"
msgstr ""
-#: cgraph.c:3222
+#: cgraph.c:3233
#, gcc-internal-format, gfc-internal-format
msgid "an indirect edge from %s has no corresponding call_stmt"
msgstr ""
-#: cgraph.c:3233
+#: cgraph.c:3244
#, gcc-internal-format
msgid "verify_cgraph_node failed"
msgstr ""
-#: cgraph.c:3332 varpool.c:304
+#: cgraph.c:3343 varpool.c:304
#, gcc-internal-format, gfc-internal-format
msgid "%s: section %s is missing"
msgstr ""
msgstr ""
#. include_self=
-#: cgraphunit.c:936 c/c-decl.c:10760
+#: cgraphunit.c:936 c/c-decl.c:10762
#, gcc-internal-format
msgid "%q+F used but never defined"
msgstr ""
-#: cgraphunit.c:938 c/c-decl.c:10769 cp/decl.c:918
+#: cgraphunit.c:938 c/c-decl.c:10771 cp/decl.c:918
#, gcc-internal-format
msgid "%q+F declared %<static%> but never defined"
msgstr ""
msgid "cannot find '%s'"
msgstr ""
-#: collect-utils.c:183 collect2.c:2361 collect2.c:2560 gcc.c:3060 gcc.c:6729
+#: collect-utils.c:183 collect2.c:2361 collect2.c:2560 gcc.c:3060 gcc.c:6730
#, gcc-internal-format
msgid "pex_init failed: %m"
msgstr ""
-#: collect-utils.c:192 collect2.c:2370 collect2.c:2568 gcc.c:8345
+#: collect-utils.c:192 collect2.c:2370 collect2.c:2568 gcc.c:8349
#, gcc-internal-format
msgid "%s: %m"
msgstr ""
msgid "COLLECT_LTO_WRAPPER must be set"
msgstr ""
-#: collect2.c:966 gcc.c:7255 lto-wrapper.c:1479
+#: collect2.c:966 gcc.c:7256 lto-wrapper.c:1479
#: config/i386/intelmic-mkoffload.c:554 config/nvptx/mkoffload.c:403
#, gcc-internal-format
msgid "atexit failed"
msgid "global constructors not supported on this target"
msgstr ""
-#: diagnostic.c:1329
+#: diagnostic.c:1327
#, gcc-internal-format, gfc-internal-format
msgid "in %s, at %s:%d"
msgstr ""
"cfi_personality directive"
msgstr ""
-#: dwarf2out.c:12431
+#: dwarf2out.c:12435
#, gcc-internal-format, gfc-internal-format
msgid "non-delegitimized UNSPEC %s (%d) found in variable location"
msgstr ""
-#: dwarf2out.c:25296
+#: dwarf2out.c:25399
#, gcc-internal-format
msgid "-feliminate-dwarf2-dups is broken for C++, ignoring"
msgstr ""
msgid "the frame size of %wd bytes is larger than %wd bytes"
msgstr ""
-#: final.c:4589 toplev.c:1374 tree-cfgcleanup.c:1122
+#: final.c:4589 toplev.c:1372 tree-cfgcleanup.c:1122
#, gcc-internal-format
msgid "could not open final insn dump file %qs: %m"
msgstr ""
msgid "large fixed-point constant implicitly truncated to fixed-point type"
msgstr ""
-#: fold-const.c:3943 fold-const.c:3953
+#: fold-const.c:3945 fold-const.c:3955
#, gcc-internal-format, gfc-internal-format
msgid "comparison is always %d due to width of bit-field"
msgstr ""
-#: fold-const.c:5316 tree-ssa-reassoc.c:2144
+#: fold-const.c:5321 tree-ssa-reassoc.c:2144
#, gcc-internal-format
msgid "assuming signed overflow does not occur when simplifying range test"
msgstr ""
-#: fold-const.c:5765 fold-const.c:5779
+#: fold-const.c:5770 fold-const.c:5784
#, gcc-internal-format, gfc-internal-format
msgid "comparison is always %d"
msgstr ""
-#: fold-const.c:5914
+#: fold-const.c:5921
#, gcc-internal-format
msgid "%<or%> of unmatched not-equal tests is always 1"
msgstr ""
-#: fold-const.c:5919
+#: fold-const.c:5926
#, gcc-internal-format
msgid "%<and%> of mutually exclusive equal-tests is always 0"
msgstr ""
-#: fold-const.c:8267
+#: fold-const.c:8277
#, gcc-internal-format
msgid ""
"assuming signed overflow does not occur when reducing constant in comparison"
msgstr ""
-#: fold-const.c:8437
+#: fold-const.c:8447
#, gcc-internal-format
msgid ""
"assuming signed overflow does not occur when changing X +- C1 cmp C2 to X "
"cmp C2 -+ C1"
msgstr ""
-#: fold-const.c:8708
+#: fold-const.c:8719
#, gcc-internal-format
msgid ""
"assuming signed overflow does not occur when combining constants around a "
"comparison"
msgstr ""
-#: fold-const.c:12274
+#: fold-const.c:12289
#, gcc-internal-format
msgid "fold check: original tree changed by fold"
msgstr ""
msgid "impossible constraint in %<asm%>"
msgstr ""
-#: function.c:4376
+#: function.c:4379
#, gcc-internal-format
msgid "variable %q+D might be clobbered by %<longjmp%> or %<vfork%>"
msgstr ""
-#: function.c:4397
+#: function.c:4400
#, gcc-internal-format
msgid "argument %q+D might be clobbered by %<longjmp%> or %<vfork%>"
msgstr ""
-#: function.c:5042
+#: function.c:5045
#, gcc-internal-format
msgid "function returns an aggregate"
msgstr ""
msgid "%s (program %s)"
msgstr ""
-#: gcc.c:3585 opts-common.c:1158 opts-common.c:1182 opts-global.c:136
+#: gcc.c:3585 opts-common.c:1164 opts-common.c:1188 opts-global.c:136
#, gcc-internal-format
msgid "unrecognized command line option %qs"
msgstr ""
msgid "%qs is an unknown -save-temps option"
msgstr ""
-#: gcc.c:4414 toplev.c:893
+#: gcc.c:4414 toplev.c:891
#, gcc-internal-format
msgid "input file %qs is the same as output file"
msgstr ""
msgid "spec %qs has invalid %<%%0%c%>"
msgstr ""
-#: gcc.c:5619
+#: gcc.c:5620
#, gcc-internal-format
msgid "spec %qs has invalid %<%%W%c%>"
msgstr ""
-#: gcc.c:5642
+#: gcc.c:5643
#, gcc-internal-format
msgid "spec %qs has invalid %<%%x%c%>"
msgstr ""
#. Catch the case where a spec string contains something like
#. '%{foo:%*}'. i.e. there is no * in the pattern on the left
#. hand side of the :.
-#: gcc.c:5853
+#: gcc.c:5854
#, gcc-internal-format
msgid "spec failure: %<%%*%> has not been initialized by pattern match"
msgstr ""
-#: gcc.c:5896
+#: gcc.c:5897
#, gcc-internal-format
msgid "spec failure: unrecognized spec option %qc"
msgstr ""
-#: gcc.c:5958
+#: gcc.c:5959
#, gcc-internal-format
msgid "unknown spec function %qs"
msgstr ""
-#: gcc.c:5988
+#: gcc.c:5989
#, gcc-internal-format
msgid "error in args to spec function %qs"
msgstr ""
-#: gcc.c:6042
+#: gcc.c:6043
#, gcc-internal-format
msgid "malformed spec function name"
msgstr ""
#. )
-#: gcc.c:6045
+#: gcc.c:6046
#, gcc-internal-format
msgid "no arguments for spec function"
msgstr ""
-#: gcc.c:6064
+#: gcc.c:6065
#, gcc-internal-format
msgid "malformed spec function arguments"
msgstr ""
-#: gcc.c:6338
+#: gcc.c:6339
#, gcc-internal-format
msgid "braced spec %qs is invalid at %qc"
msgstr ""
-#: gcc.c:6433
+#: gcc.c:6434
#, gcc-internal-format
msgid "braced spec body %qs is invalid"
msgstr ""
-#: gcc.c:7039
+#: gcc.c:7040
#, gcc-internal-format, gfc-internal-format
msgid "%s: could not determine length of compare-debug file %s"
msgstr ""
-#: gcc.c:7050
+#: gcc.c:7051
#, gcc-internal-format, gfc-internal-format
msgid "%s: -fcompare-debug failure (length)"
msgstr ""
-#: gcc.c:7060 gcc.c:7101
+#: gcc.c:7061 gcc.c:7102
#, gcc-internal-format, gfc-internal-format
msgid "%s: could not open compare-debug file %s"
msgstr ""
-#: gcc.c:7080 gcc.c:7117
+#: gcc.c:7081 gcc.c:7118
#, gcc-internal-format, gfc-internal-format
msgid "%s: -fcompare-debug failure"
msgstr ""
-#: gcc.c:7425
+#: gcc.c:7426
#, gcc-internal-format
msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC"
msgstr ""
-#: gcc.c:7449
+#: gcc.c:7450
#, gcc-internal-format
msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC"
msgstr ""
-#: gcc.c:7740
+#: gcc.c:7744
#, gcc-internal-format
msgid "unrecognized command line option %<-%s%>; did you mean %<-%s%>?"
msgstr ""
-#: gcc.c:7744
+#: gcc.c:7748
#, gcc-internal-format
msgid "unrecognized command line option %<-%s%>"
msgstr ""
-#: gcc.c:7870
+#: gcc.c:7874
#, gcc-internal-format
msgid "not configured with sysroot headers suffix"
msgstr ""
-#: gcc.c:7931
+#: gcc.c:7935
#, gcc-internal-format
msgid "no input files"
msgstr ""
-#: gcc.c:7982
+#: gcc.c:7986
#, gcc-internal-format
msgid "cannot specify -o with -c, -S or -E with multiple files"
msgstr ""
-#: gcc.c:8023
+#: gcc.c:8027
#, gcc-internal-format, gfc-internal-format
msgid "%s: %s compiler not installed on this system"
msgstr ""
-#: gcc.c:8047
+#: gcc.c:8051
#, gcc-internal-format
msgid "recompiling with -fcompare-debug"
msgstr ""
-#: gcc.c:8063
+#: gcc.c:8067
#, gcc-internal-format
msgid "during -fcompare-debug recompilation"
msgstr ""
-#: gcc.c:8072
+#: gcc.c:8076
#, gcc-internal-format
msgid "comparing final insns dumps"
msgstr ""
-#: gcc.c:8189
+#: gcc.c:8193
#, gcc-internal-format, gfc-internal-format
msgid "-fuse-linker-plugin, but %s not found"
msgstr ""
-#: gcc.c:8222
+#: gcc.c:8226
#, gcc-internal-format, gfc-internal-format
msgid "%s: linker input file unused because linking not done"
msgstr ""
-#: gcc.c:8274
+#: gcc.c:8278
#, gcc-internal-format, gfc-internal-format
msgid "language %s not recognized"
msgstr ""
-#: gcc.c:8513
+#: gcc.c:8517
#, gcc-internal-format
msgid "multilib spec %qs is invalid"
msgstr ""
-#: gcc.c:8715
+#: gcc.c:8719
#, gcc-internal-format
msgid "multilib exclusions %qs is invalid"
msgstr ""
-#: gcc.c:8779
+#: gcc.c:8783
#, gcc-internal-format
msgid "multilib select %qs %qs is invalid"
msgstr ""
-#: gcc.c:8941
+#: gcc.c:8945
#, gcc-internal-format
msgid "multilib select %qs is invalid"
msgstr ""
-#: gcc.c:8981
+#: gcc.c:8985
#, gcc-internal-format
msgid "multilib exclusion %qs is invalid"
msgstr ""
-#: gcc.c:9196
+#: gcc.c:9200
#, gcc-internal-format
msgid "environment variable %qs not defined"
msgstr ""
-#: gcc.c:9335 gcc.c:9340
+#: gcc.c:9339 gcc.c:9344
#, gcc-internal-format
msgid "invalid version number %qs"
msgstr ""
-#: gcc.c:9383
+#: gcc.c:9387
#, gcc-internal-format, gfc-internal-format
msgid "too few arguments to %%:version-compare"
msgstr ""
-#: gcc.c:9389
+#: gcc.c:9393
#, gcc-internal-format, gfc-internal-format
msgid "too many arguments to %%:version-compare"
msgstr ""
-#: gcc.c:9431
+#: gcc.c:9435
#, gcc-internal-format
msgid "unknown operator %qs in %%:version-compare"
msgstr ""
-#: gcc.c:9555
+#: gcc.c:9559
#, gcc-internal-format, gfc-internal-format
msgid "too many arguments to %%:compare-debug-dump-opt"
msgstr ""
-#: gcc.c:9628
+#: gcc.c:9632
#, gcc-internal-format, gfc-internal-format
msgid "too many arguments to %%:compare-debug-self-opt"
msgstr ""
-#: gcc.c:9664
+#: gcc.c:9668
#, gcc-internal-format, gfc-internal-format
msgid "too few arguments to %%:compare-debug-auxbase-opt"
msgstr ""
-#: gcc.c:9668
+#: gcc.c:9672
#, gcc-internal-format, gfc-internal-format
msgid "too many arguments to %%:compare-debug-auxbase-opt"
msgstr ""
-#: gcc.c:9675
+#: gcc.c:9679
#, gcc-internal-format, gfc-internal-format
msgid "argument to %%:compare-debug-auxbase-opt does not end in .gk"
msgstr ""
-#: gcc.c:9749
+#: gcc.c:9753
#, gcc-internal-format, gfc-internal-format
msgid "too few arguments to %%:replace-extension"
msgstr ""
msgstr ""
#: gimple-ssa-isolate-paths.c:290 gimple-ssa-isolate-paths.c:447 tree.c:12589
-#: tree.c:12626 c/c-typeck.c:2847 c/c-typeck.c:2931 c/c-typeck.c:9673
-#: c/c-typeck.c:9690 cp/call.c:6152 cp/constexpr.c:757 cp/constexpr.c:1944
-#: cp/decl2.c:5114 cp/pt.c:7578 cp/semantics.c:1763 cp/typeck.c:1640
+#: tree.c:12626 c/c-typeck.c:2847 c/c-typeck.c:2931 c/c-typeck.c:9680
+#: c/c-typeck.c:9697 cp/call.c:6161 cp/constexpr.c:762 cp/constexpr.c:1969
+#: cp/decl2.c:5112 cp/pt.c:7593 cp/semantics.c:1756 cp/typeck.c:1640
#: cp/typeck.c:1833 cp/typeck.c:3660
#, gcc-internal-format
msgid "declared here"
msgid "memory input %d is not directly addressable"
msgstr ""
-#: gimplify.c:5917
+#: gimplify.c:5956
#, gcc-internal-format
msgid "threadprivate variable %qE used in target region"
msgstr ""
-#: gimplify.c:5919
+#: gimplify.c:5958
#, gcc-internal-format
msgid "enclosing target region"
msgstr ""
-#: gimplify.c:5931
+#: gimplify.c:5970
#, gcc-internal-format
msgid "threadprivate variable %qE used in untied task"
msgstr ""
-#: gimplify.c:5933
+#: gimplify.c:5972
#, gcc-internal-format
msgid "enclosing task"
msgstr ""
-#: gimplify.c:5995
+#: gimplify.c:6034
#, gcc-internal-format
msgid "%qE not specified in enclosing %s"
msgstr ""
-#: gimplify.c:5997
+#: gimplify.c:6036
#, gcc-internal-format, gfc-internal-format
msgid "enclosing %s"
msgstr ""
-#: gimplify.c:6107
+#: gimplify.c:6146
#, gcc-internal-format
msgid "%qE not specified in enclosing OpenACC %qs construct"
msgstr ""
-#: gimplify.c:6109
+#: gimplify.c:6148
#, gcc-internal-format
msgid "enclosing OpenACC %qs construct"
msgstr ""
-#: gimplify.c:6160
+#: gimplify.c:6199
#, gcc-internal-format
msgid "%qE with %<link%> clause used in %<routine%> function"
msgstr ""
-#: gimplify.c:6168
+#: gimplify.c:6207
#, gcc-internal-format
msgid "%qE requires a %<declare%> directive for use in a %<routine%> function"
msgstr ""
-#: gimplify.c:6244 gimplify.c:6848
+#: gimplify.c:6283 gimplify.c:6887
#, gcc-internal-format
msgid "variable %qE declared in enclosing %<host_data%> region"
msgstr ""
-#: gimplify.c:6262
+#: gimplify.c:6301
#, gcc-internal-format
msgid "%qD referenced in target region does not have a mappable type"
msgstr ""
-#: gimplify.c:6380 gimplify.c:6412
+#: gimplify.c:6419 gimplify.c:6451
#, gcc-internal-format
msgid "iteration variable %qE is predetermined linear"
msgstr ""
-#: gimplify.c:6383
+#: gimplify.c:6422
#, gcc-internal-format
msgid "iteration variable %qE should be private"
msgstr ""
-#: gimplify.c:6397
+#: gimplify.c:6436
#, gcc-internal-format
msgid "iteration variable %qE should not be firstprivate"
msgstr ""
-#: gimplify.c:6400
+#: gimplify.c:6439
#, gcc-internal-format
msgid "iteration variable %qE should not be reduction"
msgstr ""
-#: gimplify.c:6403
+#: gimplify.c:6442
#, gcc-internal-format
msgid "iteration variable %qE should not be linear"
msgstr ""
-#: gimplify.c:6406
+#: gimplify.c:6445
#, gcc-internal-format
msgid "iteration variable %qE should not be lastprivate"
msgstr ""
-#: gimplify.c:6409
+#: gimplify.c:6448
#, gcc-internal-format
msgid "iteration variable %qE should not be private"
msgstr ""
-#: gimplify.c:6722
+#: gimplify.c:6761
#, gcc-internal-format
msgid ""
"%<linear%> clause for variable other than loop iterator specified on "
"construct combined with %<distribute%>"
msgstr ""
-#: gimplify.c:6917
+#: gimplify.c:6963
#, gcc-internal-format
msgid "mapping field %qE of variable length structure"
msgstr ""
-#: gimplify.c:7093
+#: gimplify.c:7175
#, gcc-internal-format
msgid "%qE appears more than once in map clauses"
msgstr ""
-#: gimplify.c:7385
+#: gimplify.c:7467
#, gcc-internal-format
msgid ""
"copyprivate variable %qE is not threadprivate or private in outer context"
msgstr ""
-#: gimplify.c:7405
+#: gimplify.c:7487
#, gcc-internal-format
msgid "%s variable %qE is private in outer context"
msgstr ""
-#: gimplify.c:7431
+#: gimplify.c:7513
#, gcc-internal-format
msgid "expected %qs %<if%> clause modifier rather than %qs"
msgstr ""
-#: gimplify.c:7933
+#: gimplify.c:8015
#, gcc-internal-format
msgid ""
"same variable used in %<firstprivate%> and %<lastprivate%> clauses on "
"%<distribute%> construct"
msgstr ""
-#: gimplify.c:8015
+#: gimplify.c:8097
#, gcc-internal-format
msgid ""
"incompatible data clause with reduction on %qE; promoting to present_or_copy"
msgstr ""
-#: gimplify.c:8159
+#: gimplify.c:8241
#, gcc-internal-format
msgid "invalid private reduction on %qE"
msgstr ""
-#: gimplify.c:9948 omp-low.c:3622
+#: gimplify.c:10047 omp-low.c:3616
#, gcc-internal-format
msgid ""
"%<ordered%> construct with %<depend%> clause must be closely nested inside a "
"loop with %<ordered%> clause with a parameter"
msgstr ""
-#: gimplify.c:9966
+#: gimplify.c:10065
#, gcc-internal-format
msgid "variable %qE is not an iteration of outermost loop %d, expected %qE"
msgstr ""
-#: gimplify.c:9979
+#: gimplify.c:10078
#, gcc-internal-format
msgid ""
"number of variables in %<depend(sink)%> clause does not match number of "
"iteration variables"
msgstr ""
-#: gimplify.c:9992
+#: gimplify.c:10091
#, gcc-internal-format
msgid "more than one %<depend(source)%> clause on an %<ordered%> construct"
msgstr ""
-#: gimplify.c:10003
+#: gimplify.c:10102
#, gcc-internal-format
msgid ""
"%<depend(source)%> clause specified together with %<depend(sink:)%> clauses "
"on the same construct"
msgstr ""
-#: gimplify.c:10931
+#: gimplify.c:11030
#, gcc-internal-format
msgid "expected %<_Cilk_spawn%> before %<_Cilk_sync%>"
msgstr ""
-#: gimplify.c:11227
+#: gimplify.c:11326
#, gcc-internal-format
msgid "gimplification failed"
msgstr ""
-#: gimplify.c:11697 c-family/c-common.c:5731 c-family/c-common.c:5804
+#: gimplify.c:11796 c-family/c-common.c:5731 c-family/c-common.c:5804
#, gcc-internal-format
msgid "first argument to %<va_arg%> not of type %<va_list%>"
msgstr ""
-#: gimplify.c:11717
+#: gimplify.c:11816
#, gcc-internal-format
msgid "%qT is promoted to %qT when passed through %<...%>"
msgstr ""
-#: gimplify.c:11722
+#: gimplify.c:11821
#, gcc-internal-format
msgid "(so you should pass %qT not %qT to %<va_arg%>)"
msgstr ""
-#: gimplify.c:11729
+#: gimplify.c:11828
#, gcc-internal-format
msgid "if this code is reached, the program will abort"
msgstr ""
msgid "could not open Go dump file %qs: %m"
msgstr ""
-#: graph.c:55 toplev.c:1491 java/jcf-parse.c:1751 java/jcf-parse.c:1890
+#: graph.c:55 toplev.c:1489 java/jcf-parse.c:1751 java/jcf-parse.c:1890
#: objc/objc-act.c:461
#, gcc-internal-format
msgid "can%'t open %s: %m"
msgid "Support for HSA does not implement immediate 16 bit FPU operands"
msgstr ""
-#: hsa-gen.c:1195
+#: hsa-gen.c:1206
#, gcc-internal-format
msgid "HSA SSA name defined by instruction that is supposed to be using it"
msgstr ""
-#: hsa-gen.c:1199 hsa-gen.c:1212
+#: hsa-gen.c:1210 hsa-gen.c:1223
#, gcc-internal-format
msgid "HSA SSA verification failed"
msgstr ""
-#: hsa-gen.c:1208
+#: hsa-gen.c:1219
#, gcc-internal-format
msgid ""
"HSA SSA name not among operands of instruction that is supposed to use it"
msgstr ""
-#: hsa-gen.c:1468
+#: hsa-gen.c:1479
#, gcc-internal-format
msgid "HSA instruction uses a register but is not among recorded register uses"
msgstr ""
-#: hsa-gen.c:1472
+#: hsa-gen.c:1483
#, gcc-internal-format
msgid "HSA instruction verification failed"
msgstr ""
msgid "token %u has y-location == %u"
msgstr ""
-#: ipa-chkp.c:661
+#: ipa-chkp.c:667
#, gcc-internal-format
msgid "function cannot be instrumented"
msgstr ""
msgid "could not emit HSAIL for function %s: function cannot be cloned"
msgstr ""
-#: ipa-inline-analysis.c:4305
+#: ipa-inline-analysis.c:4346
#, gcc-internal-format
msgid "ipa inline summary is missing in input file"
msgstr ""
msgid "attribute(target_clones(\"default\")) is not valid for current target"
msgstr ""
-#: omp-low.c:2204 omp-low.c:2372
-#, gcc-internal-format
-msgid "Clause not supported yet"
-msgstr ""
-
-#: omp-low.c:2971 omp-low.c:19383
+#: omp-low.c:2965 omp-low.c:19388
#, gcc-internal-format
msgid "%<seq%> overrides other OpenACC loop specifiers"
msgstr ""
-#: omp-low.c:2974
+#: omp-low.c:2968
#, gcc-internal-format
msgid "%<auto%> conflicts with other OpenACC loop specifiers"
msgstr ""
-#: omp-low.c:2978
+#: omp-low.c:2972
#, gcc-internal-format
msgid "inner loop uses same OpenACC parallelism as containing loop"
msgstr ""
-#: omp-low.c:3025
+#: omp-low.c:3019
#, gcc-internal-format
msgid "argument not permitted on %qs clause in OpenACC %<parallel%>"
msgstr ""
-#: omp-low.c:3251
+#: omp-low.c:3245
#, gcc-internal-format
msgid "non-OpenACC construct inside of OpenACC routine"
msgstr ""
-#: omp-low.c:3260
+#: omp-low.c:3254
#, gcc-internal-format
msgid "non-OpenACC construct inside of OpenACC region"
msgstr ""
-#: omp-low.c:3285
+#: omp-low.c:3279
#, gcc-internal-format
msgid ""
"%<ordered simd threads%> must be closely nested inside of %<for simd%> region"
msgstr ""
-#: omp-low.c:3293
+#: omp-low.c:3287
#, gcc-internal-format
msgid ""
"OpenMP constructs other than %<#pragma omp ordered simd%> may not be nested "
"inside %<simd%> region"
msgstr ""
-#: omp-low.c:3305
+#: omp-low.c:3299
#, gcc-internal-format
msgid ""
"only %<distribute%> or %<parallel%> regions are allowed to be strictly "
"nested inside %<teams%> region"
msgstr ""
-#: omp-low.c:3322
+#: omp-low.c:3316
#, gcc-internal-format
msgid ""
"%<distribute%> region must be strictly nested inside %<teams%> construct"
msgstr ""
-#: omp-low.c:3363
+#: omp-low.c:3357
#, gcc-internal-format
msgid ""
"OpenACC loop directive must be associated with an OpenACC compute region"
msgstr ""
-#: omp-low.c:3385
+#: omp-low.c:3379
#, gcc-internal-format
msgid "orphaned %qs construct"
msgstr ""
-#: omp-low.c:3414
+#: omp-low.c:3408
#, gcc-internal-format
msgid "%<#pragma omp cancel for%> inside %<nowait%> for construct"
msgstr ""
-#: omp-low.c:3419
+#: omp-low.c:3413
#, gcc-internal-format
msgid "%<#pragma omp cancel for%> inside %<ordered%> for construct"
msgstr ""
-#: omp-low.c:3439 omp-low.c:3452
+#: omp-low.c:3433 omp-low.c:3446
#, gcc-internal-format
msgid "%<#pragma omp cancel sections%> inside %<nowait%> sections construct"
msgstr ""
-#: omp-low.c:3478
+#: omp-low.c:3472
#, gcc-internal-format
msgid ""
"%<%s taskgroup%> construct not closely nested inside of %<taskgroup%> region"
msgstr ""
-#: omp-low.c:3492
+#: omp-low.c:3486
#, gcc-internal-format
msgid "invalid arguments"
msgstr ""
-#: omp-low.c:3498
+#: omp-low.c:3492
#, gcc-internal-format
msgid "%<%s %s%> construct not closely nested inside of %qs"
msgstr ""
-#: omp-low.c:3526
+#: omp-low.c:3520
#, gcc-internal-format
msgid ""
"barrier region may not be closely nested inside of work-sharing, %<critical"
"%>, %<ordered%>, %<master%>, explicit %<task%> or %<taskloop%> region"
msgstr ""
-#: omp-low.c:3533
+#: omp-low.c:3527
#, gcc-internal-format
msgid ""
"work-sharing region may not be closely nested inside of work-sharing, "
"region"
msgstr ""
-#: omp-low.c:3562
+#: omp-low.c:3556
#, gcc-internal-format
msgid ""
"%<master%> region may not be closely nested inside of work-sharing, explicit "
"%<task%> or %<taskloop%> region"
msgstr ""
-#: omp-low.c:3586 omp-low.c:3725
+#: omp-low.c:3580 omp-low.c:3719
#, gcc-internal-format
msgid "%<depend(%s)%> is only allowed in %<omp ordered%>"
msgstr ""
-#: omp-low.c:3614
+#: omp-low.c:3608
#, gcc-internal-format
msgid ""
"%<ordered%> construct with %<depend%> clause must be closely nested inside "
"an %<ordered%> loop"
msgstr ""
-#: omp-low.c:3631
+#: omp-low.c:3625
#, gcc-internal-format
msgid "invalid depend kind in omp %<ordered%> %<depend%>"
msgstr ""
-#: omp-low.c:3646
+#: omp-low.c:3640
#, gcc-internal-format
msgid "%<ordered%> %<simd%> must be closely nested inside %<simd%> region"
msgstr ""
-#: omp-low.c:3659
+#: omp-low.c:3653
#, gcc-internal-format
msgid ""
"%<ordered%> region may not be closely nested inside of %<critical%>, "
"%<ordered%>, explicit %<task%> or %<taskloop%> region"
msgstr ""
-#: omp-low.c:3670 omp-low.c:3683
+#: omp-low.c:3664 omp-low.c:3677
#, gcc-internal-format
msgid ""
"%<ordered%> region must be closely nested inside a loop region with an "
"%<ordered%> clause"
msgstr ""
-#: omp-low.c:3700
+#: omp-low.c:3694
#, gcc-internal-format
msgid ""
"%<critical%> region may not be nested inside a %<critical%> region with the "
"same name"
msgstr ""
-#: omp-low.c:3712
+#: omp-low.c:3706
#, gcc-internal-format
msgid "%<teams%> construct not closely nested inside of %<target%> construct"
msgstr ""
-#: omp-low.c:3733
+#: omp-low.c:3727
#, gcc-internal-format
msgid ""
"OpenACC region inside of OpenACC routine, nested parallelism not supported "
"yet"
msgstr ""
-#: omp-low.c:3746
+#: omp-low.c:3740
#, gcc-internal-format
msgid "OpenACC construct inside of non-OpenACC region"
msgstr ""
-#: omp-low.c:3791
+#: omp-low.c:3785
#, gcc-internal-format
msgid "%s %qs construct inside of %s %qs region"
msgstr ""
-#: omp-low.c:3804 omp-low.c:3811
+#: omp-low.c:3798 omp-low.c:3805
#, gcc-internal-format
msgid "%qs construct inside of %qs region"
msgstr ""
-#: omp-low.c:3923
+#: omp-low.c:3917
#, gcc-internal-format
msgid "setjmp/longjmp inside simd construct"
msgstr ""
-#: omp-low.c:8006
+#: omp-low.c:8002
#, gcc-internal-format
msgid "%<depend(sink)%> clause waiting for lexically later iteration"
msgstr ""
-#: omp-low.c:8093
+#: omp-low.c:8089
#, gcc-internal-format
msgid "%<depend(sink)%> refers to iteration never in the iteration space"
msgstr ""
-#: omp-low.c:12633
+#: omp-low.c:12629
#, gcc-internal-format
msgid "multiple loop axes specified for routine"
msgstr ""
-#: omp-low.c:14645
+#: omp-low.c:14650
#, gcc-internal-format
msgid ""
"ignoring sink clause with offset that is not a multiple of the loop step"
msgstr ""
-#: omp-low.c:14668
+#: omp-low.c:14673
#, gcc-internal-format
msgid "first offset must be in opposite direction of loop iterations"
msgstr ""
-#: omp-low.c:18011
+#: omp-low.c:18016
#, gcc-internal-format, gfc-internal-format
msgid "invalid exit from %s structured block"
msgstr ""
-#: omp-low.c:18013 omp-low.c:18018
+#: omp-low.c:18018 omp-low.c:18023
#, gcc-internal-format, gfc-internal-format
msgid "invalid entry to %s structured block"
msgstr ""
#. Otherwise, be vague and lazy, but efficient.
-#: omp-low.c:18022
+#: omp-low.c:18027
#, gcc-internal-format, gfc-internal-format
msgid "invalid branch to/from %s structured block"
msgstr ""
-#: omp-low.c:18823
+#: omp-low.c:18828
#, gcc-internal-format, gfc-internal-format
msgid "-fopenacc-dim operand is malformed at '%s'"
msgstr ""
-#: omp-low.c:19410
+#: omp-low.c:19415
#, gcc-internal-format, gfc-internal-format
msgid "%s uses same OpenACC parallelism as containing loop"
msgstr ""
-#: omp-low.c:19412 omp-low.c:19441
+#: omp-low.c:19417 omp-low.c:19446
#, gcc-internal-format
msgid "containing loop here"
msgstr ""
-#: omp-low.c:19416
+#: omp-low.c:19421
#, gcc-internal-format, gfc-internal-format
msgid "%s uses OpenACC parallelism disallowed by containing routine"
msgstr ""
-#: omp-low.c:19421
+#: omp-low.c:19426
#, gcc-internal-format
msgid "routine %qD declared here"
msgstr ""
-#: omp-low.c:19434
+#: omp-low.c:19439
#, gcc-internal-format
msgid "incorrectly nested OpenACC loop parallelism"
msgstr ""
-#: omp-low.c:19498
+#: omp-low.c:19503
#, gcc-internal-format
msgid "insufficient partitioning available to parallelize loop"
msgstr ""
msgid "indirect jumps are not available on this target"
msgstr ""
-#: opts-common.c:1079
+#: opts-common.c:1085
#, gcc-internal-format
msgid "command line option %qs is not supported by this configuration"
msgstr ""
-#: opts-common.c:1089
+#: opts-common.c:1095
#, gcc-internal-format
msgid "missing argument to %qs"
msgstr ""
-#: opts-common.c:1095
+#: opts-common.c:1101
#, gcc-internal-format
msgid "argument to %qs should be a non-negative integer"
msgstr ""
-#: opts-common.c:1110
+#: opts-common.c:1116
#, gcc-internal-format
msgid "unrecognized argument in option %qs"
msgstr ""
-#: opts-common.c:1128
+#: opts-common.c:1134
#, gcc-internal-format
msgid "valid arguments to %qs are: %s"
msgstr ""
msgid "register of %qD used for multiple global register variables"
msgstr ""
-#: reginfo.c:777 config/rs6000/rs6000.c:27665
+#: reginfo.c:777 config/rs6000/rs6000.c:28752
#, gcc-internal-format
msgid "conflicts with %qD"
msgstr ""
msgid "undefined named operand %qs"
msgstr ""
-#: stor-layout.c:767
+#: stor-layout.c:753
#, gcc-internal-format
msgid "size of %q+D is %d bytes"
msgstr ""
-#: stor-layout.c:769
+#: stor-layout.c:755
#, gcc-internal-format
msgid "size of %q+D is larger than %wd bytes"
msgstr ""
-#: stor-layout.c:1207
+#: stor-layout.c:1193
#, gcc-internal-format
msgid "packed attribute causes inefficient alignment for %q+D"
msgstr ""
-#: stor-layout.c:1211
+#: stor-layout.c:1197
#, gcc-internal-format
msgid "packed attribute is unnecessary for %q+D"
msgstr ""
-#: stor-layout.c:1228
+#: stor-layout.c:1214
#, gcc-internal-format
msgid "padding struct to align %q+D"
msgstr ""
-#: stor-layout.c:1289
+#: stor-layout.c:1275
#, gcc-internal-format
msgid "offset of packed bit-field %qD has changed in GCC 4.4"
msgstr ""
-#: stor-layout.c:1598
+#: stor-layout.c:1584
#, gcc-internal-format
msgid "padding struct size to alignment boundary"
msgstr ""
-#: stor-layout.c:1626
+#: stor-layout.c:1612
#, gcc-internal-format
msgid "packed attribute causes inefficient alignment for %qE"
msgstr ""
-#: stor-layout.c:1630
+#: stor-layout.c:1616
#, gcc-internal-format
msgid "packed attribute is unnecessary for %qE"
msgstr ""
-#: stor-layout.c:1636
+#: stor-layout.c:1622
#, gcc-internal-format
msgid "packed attribute causes inefficient alignment"
msgstr ""
-#: stor-layout.c:1638
+#: stor-layout.c:1624
#, gcc-internal-format
msgid "packed attribute is unnecessary"
msgstr ""
-#: stor-layout.c:2369
+#: stor-layout.c:2347
#, gcc-internal-format
msgid "alignment of array elements is greater than element size"
msgstr ""
msgid "ld returned %d exit status"
msgstr ""
-#: toplev.c:897
+#: toplev.c:895
#, gcc-internal-format
msgid "can%'t open %qs for writing: %m"
msgstr ""
-#: toplev.c:919
+#: toplev.c:917
#, gcc-internal-format
msgid "-frecord-gcc-switches is not supported by the current target"
msgstr ""
-#: toplev.c:968
+#: toplev.c:966
#, gcc-internal-format
msgid "stack usage computation not supported for this target"
msgstr ""
-#: toplev.c:1037
+#: toplev.c:1035
#, gcc-internal-format
msgid "stack usage might be unbounded"
msgstr ""
-#: toplev.c:1042
+#: toplev.c:1040
#, gcc-internal-format
msgid "stack usage might be %wd bytes"
msgstr ""
-#: toplev.c:1045
+#: toplev.c:1043
#, gcc-internal-format
msgid "stack usage is %wd bytes"
msgstr ""
-#: toplev.c:1061
+#: toplev.c:1059
#, gcc-internal-format
msgid "can%'t open %s for writing: %m"
msgstr ""
-#: toplev.c:1231
+#: toplev.c:1229
#, gcc-internal-format
msgid "this target does not support %qs"
msgstr ""
-#: toplev.c:1257
+#: toplev.c:1255
#, gcc-internal-format
msgid ""
"Graphite loop optimizations cannot be used (isl is not available)(-"
"linear)"
msgstr ""
-#: toplev.c:1268
+#: toplev.c:1266
#, gcc-internal-format
msgid "-fcheck-pointer-bounds is not supported for this target"
msgstr ""
-#: toplev.c:1275
+#: toplev.c:1273
#, gcc-internal-format
msgid "-fcheck-pointer-bounds is not supported with Address Sanitizer"
msgstr ""
-#: toplev.c:1290
+#: toplev.c:1288
#, gcc-internal-format
msgid "%<-fabi-version=1%> is no longer supported"
msgstr ""
-#: toplev.c:1318
+#: toplev.c:1316
#, gcc-internal-format
msgid "instruction scheduling not supported on this target machine"
msgstr ""
-#: toplev.c:1322
+#: toplev.c:1320
#, gcc-internal-format
msgid "this target machine does not have delayed branches"
msgstr ""
-#: toplev.c:1336
+#: toplev.c:1334
#, gcc-internal-format, gfc-internal-format
msgid "-f%sleading-underscore not supported on this target machine"
msgstr ""
-#: toplev.c:1381
+#: toplev.c:1379
#, gcc-internal-format
msgid "could not close zeroed insn dump file %qs: %m"
msgstr ""
-#: toplev.c:1418
+#: toplev.c:1416
#, gcc-internal-format
msgid "target system does not support the %qs debug format"
msgstr ""
-#: toplev.c:1431
+#: toplev.c:1429
#, gcc-internal-format
msgid "variable tracking requested, but useless unless producing debug info"
msgstr ""
-#: toplev.c:1435
+#: toplev.c:1433
#, gcc-internal-format
msgid "variable tracking requested, but not supported by this debug format"
msgstr ""
-#: toplev.c:1473
+#: toplev.c:1471
#, gcc-internal-format
msgid "var-tracking-assignments changes selective scheduling"
msgstr ""
-#: toplev.c:1499
+#: toplev.c:1497
#, gcc-internal-format
msgid "-ffunction-sections not supported for this target"
msgstr ""
-#: toplev.c:1505
+#: toplev.c:1503
#, gcc-internal-format
msgid "-fdata-sections not supported for this target"
msgstr ""
-#: toplev.c:1513
+#: toplev.c:1511
#, gcc-internal-format
msgid "-fprefetch-loop-arrays not supported for this target"
msgstr ""
-#: toplev.c:1519
+#: toplev.c:1517
#, gcc-internal-format
msgid ""
"-fprefetch-loop-arrays not supported for this target (try -march switches)"
msgstr ""
-#: toplev.c:1529
+#: toplev.c:1527
#, gcc-internal-format
msgid "-fprefetch-loop-arrays is not supported with -Os"
msgstr ""
-#: toplev.c:1541
+#: toplev.c:1539
#, gcc-internal-format
msgid "-fassociative-math disabled; other options take precedence"
msgstr ""
-#: toplev.c:1559
+#: toplev.c:1557
#, gcc-internal-format
msgid "-fstack-protector not supported for this target"
msgstr ""
-#: toplev.c:1571
+#: toplev.c:1569
#, gcc-internal-format
msgid ""
"-fsanitize=address and -fsanitize=kernel-address are not supported for this "
"target"
msgstr ""
-#: toplev.c:1580
+#: toplev.c:1578
#, gcc-internal-format
msgid "-fsanitize=address not supported for this target"
msgstr ""
-#: toplev.c:1898
+#: toplev.c:1896
#, gcc-internal-format
msgid "error writing to %s: %m"
msgstr ""
-#: toplev.c:1900 java/jcf-parse.c:1770
+#: toplev.c:1898 java/jcf-parse.c:1770
#, gcc-internal-format
msgid "error closing %s: %m"
msgstr ""
"the same number of elements as the result"
msgstr ""
-#: tree-cfg.c:4007 c/c-typeck.c:4970
+#: tree-cfg.c:4007 c/c-typeck.c:4975
#, gcc-internal-format
msgid "type mismatch in conditional expression"
msgstr ""
msgid "memory access check always fail"
msgstr ""
-#: tree-chkp.c:1982
+#: tree-chkp.c:1993
#, gcc-internal-format, gfc-internal-format
msgid "-fcheck-pointer-bounds requires '%s' name for internal usage"
msgstr ""
-#: tree-chkp.c:2760
+#: tree-chkp.c:2771
#, gcc-internal-format, gfc-internal-format
msgid "pointer bounds were lost due to unexpected expression %s"
msgstr ""
-#: tree-chkp.c:2848
+#: tree-chkp.c:2859
#, gcc-internal-format, gfc-internal-format
msgid "chkp_get_bounds_by_definition: Unexpected var of type %s"
msgstr ""
-#: tree-chkp.c:2891
+#: tree-chkp.c:2902
#, gcc-internal-format, gfc-internal-format
msgid "chkp_get_bounds_by_definition: Unexpected GIMPLE code %s"
msgstr ""
-#: tree-chkp.c:3514
+#: tree-chkp.c:3525
#, gcc-internal-format, gfc-internal-format
msgid "chkp_make_addressed_object_bounds: Unexpected tree code %s"
msgstr ""
-#: tree-chkp.c:3666
+#: tree-chkp.c:3678
#, gcc-internal-format, gfc-internal-format
msgid "chkp_find_bounds: Unexpected tree code %s"
msgstr ""
-#: tree-chkp.c:3677
+#: tree-chkp.c:3689
#, gcc-internal-format
msgid "chkp_find_bounds: Cannot find bounds for pointer"
msgstr ""
-#: tree-chkp.c:3793
+#: tree-chkp.c:3805
#, gcc-internal-format, gfc-internal-format
msgid "chkp_walk_pointer_assignments: unexpected RHS type: %s"
msgstr ""
msgid "stmt volatile flag not up-to-date"
msgstr ""
-#: tree-ssa-uninit.c:169 varasm.c:328
+#: tree-ssa-uninit.c:192 varasm.c:328
#, gcc-internal-format
msgid "%qD was declared here"
msgstr ""
-#: tree-ssa-uninit.c:201
+#: tree-ssa-uninit.c:224
#, gcc-internal-format
msgid "%qD is used uninitialized in this function"
msgstr ""
-#: tree-ssa-uninit.c:206 tree-ssa-uninit.c:2367
+#: tree-ssa-uninit.c:229 tree-ssa-uninit.c:2390
#, gcc-internal-format
msgid "%qD may be used uninitialized in this function"
msgstr ""
-#: tree-ssa-uninit.c:237
+#: tree-ssa-uninit.c:260
#, gcc-internal-format
msgid "%qE is used uninitialized in this function"
msgstr ""
-#: tree-ssa-uninit.c:242
+#: tree-ssa-uninit.c:265
#, gcc-internal-format
msgid "%qE may be used uninitialized in this function"
msgstr ""
msgid "vector shuffling operation will be expanded piecewise"
msgstr ""
-#: tree-vect-loop.c:3379
+#: tree-vect-loop.c:3383
#, gcc-internal-format
msgid "vectorization did not happen for a simd loop"
msgstr ""
#: c-family/c-common.c:9280 c-family/c-common.c:9303 c-family/c-common.c:9342
#: c-family/c-common.c:9424 c-family/c-common.c:9467 c-family/c-common.c:9604
#: config/darwin.c:2021 config/arm/arm.c:6488 config/arm/arm.c:6516
-#: config/arm/arm.c:6533 config/avr/avr.c:8971 config/h8300/h8300.c:5477
-#: config/h8300/h8300.c:5501 config/i386/i386.c:6862 config/i386/i386.c:44531
-#: config/ia64/ia64.c:756 config/rs6000/rs6000.c:31055 config/spu/spu.c:3738
-#: ada/gcc-interface/utils.c:5986 ada/gcc-interface/utils.c:6012
+#: config/arm/arm.c:6533 config/avr/avr.c:8968 config/h8300/h8300.c:5477
+#: config/h8300/h8300.c:5501 config/i386/i386.c:6862 config/i386/i386.c:44609
+#: config/ia64/ia64.c:756 config/rs6000/rs6000.c:32417 config/spu/spu.c:3738
+#: ada/gcc-interface/utils.c:6004 ada/gcc-interface/utils.c:6021
+#: ada/gcc-interface/utils.c:6037 ada/gcc-interface/utils.c:6063
#: lto/lto-lang.c:243
#, gcc-internal-format
msgid "%qE attribute ignored"
"required to support"
msgstr ""
-#: c-family/c-common.c:1126 c-family/c-common.c:1138 cp/constexpr.c:1598
-#: cp/constexpr.c:3482
+#: c-family/c-common.c:1126 c-family/c-common.c:1138 cp/constexpr.c:1619
+#: cp/constexpr.c:3520
#, gcc-internal-format
msgid "overflow in constant expression"
msgstr ""
"%<true%>"
msgstr ""
-#: c-family/c-common.c:4589 cp/semantics.c:660 cp/typeck.c:8448
+#: c-family/c-common.c:4589 cp/semantics.c:660 cp/typeck.c:8447
#, gcc-internal-format
msgid "suggest parentheses around assignment used as truth value"
msgstr ""
-#: c-family/c-common.c:4668 c/c-decl.c:4126 c/c-typeck.c:13527
+#: c-family/c-common.c:4668 c/c-decl.c:4126 c/c-typeck.c:13534
#, gcc-internal-format
msgid "invalid use of %<restrict%>"
msgstr ""
msgstr ""
#: c-family/c-common.c:6684 c-family/c-common.c:6712 c-family/c-common.c:6808
+#: ada/gcc-interface/utils.c:5995
#, gcc-internal-format
msgid "%qE attribute ignored due to conflict with attribute %qs"
msgstr ""
msgid "assume_aligned parameter not integer constant"
msgstr ""
-#: c-family/c-common.c:8508 c/c-parser.c:16459
+#: c-family/c-common.c:8508 c/c-parser.c:16444
#, gcc-internal-format
msgid ""
"%<__simd__%> attribute cannot be used in the same function marked as a Cilk "
msgid "type was previously declared %qE"
msgstr ""
-#: c-family/c-common.c:8777 cp/class.c:4625
+#: c-family/c-common.c:8777 cp/class.c:4626
#, gcc-internal-format
msgid ""
"%<transaction_safe_dynamic%> may only be specified for a virtual function"
msgid "invalid vector type for attribute %qE"
msgstr ""
-#: c-family/c-common.c:9007 ada/gcc-interface/utils.c:3766
+#: c-family/c-common.c:9007 ada/gcc-interface/utils.c:3772
#, gcc-internal-format
msgid "vector size not an integral multiple of component size"
msgstr ""
-#: c-family/c-common.c:9013 ada/gcc-interface/utils.c:3773
+#: c-family/c-common.c:9013 ada/gcc-interface/utils.c:3779
#, gcc-internal-format
msgid "zero vector size"
msgstr ""
msgid "number of components of the vector not a power of two"
msgstr ""
-#: c-family/c-common.c:9049 ada/gcc-interface/utils.c:5846
+#: c-family/c-common.c:9049 ada/gcc-interface/utils.c:5852
#, gcc-internal-format
msgid "nonnull attribute without arguments on a non-prototype"
msgstr ""
-#: c-family/c-common.c:9068 ada/gcc-interface/utils.c:5860
+#: c-family/c-common.c:9068 ada/gcc-interface/utils.c:5866
#, gcc-internal-format, gfc-internal-format
msgid "nonnull argument has invalid operand number (argument %lu)"
msgstr ""
-#: c-family/c-common.c:9090 ada/gcc-interface/utils.c:5882
+#: c-family/c-common.c:9090 ada/gcc-interface/utils.c:5888
#, gcc-internal-format, gfc-internal-format
msgid ""
"nonnull argument with out-of-range operand number (argument %lu, operand %lu)"
msgstr ""
-#: c-family/c-common.c:9098 ada/gcc-interface/utils.c:5891
+#: c-family/c-common.c:9098 ada/gcc-interface/utils.c:5897
#, gcc-internal-format, gfc-internal-format
msgid ""
"nonnull argument references non-pointer operand (argument %lu, operand %lu)"
msgid "%qE attribute only applies to variadic functions"
msgstr ""
-#: c-family/c-common.c:9382 ada/gcc-interface/utils.c:5933
+#: c-family/c-common.c:9382 ada/gcc-interface/utils.c:5939
#, gcc-internal-format
msgid "requested position is not an integer constant"
msgstr ""
-#: c-family/c-common.c:9390 ada/gcc-interface/utils.c:5940
+#: c-family/c-common.c:9390 ada/gcc-interface/utils.c:5946
#, gcc-internal-format
msgid "requested position is less than zero"
msgstr ""
msgid "function %qD used as %<asm%> output"
msgstr ""
-#: c-family/c-common.c:10454 c/c-typeck.c:4566
+#: c-family/c-common.c:10454 c/c-typeck.c:4571
#, gcc-internal-format
msgid "assignment of read-only location %qE"
msgstr ""
-#: c-family/c-common.c:10455 c/c-typeck.c:4569
+#: c-family/c-common.c:10455 c/c-typeck.c:4574
#, gcc-internal-format
msgid "increment of read-only location %qE"
msgstr ""
-#: c-family/c-common.c:10456 c/c-typeck.c:4572
+#: c-family/c-common.c:10456 c/c-typeck.c:4577
#, gcc-internal-format
msgid "decrement of read-only location %qE"
msgstr ""
msgid "invalid type argument of implicit conversion (have %qT)"
msgstr ""
-#: c-family/c-common.c:10666 cp/init.c:2782 cp/init.c:2801
+#: c-family/c-common.c:10666 cp/init.c:2801 cp/init.c:2820
#, gcc-internal-format
msgid "size of array is too large"
msgstr ""
msgid "division by zero"
msgstr ""
-#: c-family/c-common.c:11799 c/c-typeck.c:11041 c/c-typeck.c:11198
+#: c-family/c-common.c:11799 c/c-typeck.c:11048 c/c-typeck.c:11205
#: cp/typeck.c:4820
#, gcc-internal-format
msgid "comparison between types %qT and %qT"
msgstr ""
#: c-family/c-common.c:12539 c-family/c-common.c:12587
-#: c-family/c-common.c:12602 cp/call.c:4692 cp/call.c:4699
+#: c-family/c-common.c:12602 cp/call.c:4701 cp/call.c:4708
#, gcc-internal-format
msgid "conversion of scalar %qT to vector %qT involves truncation"
msgstr ""
msgid "%<#pragma omp atomic capture%> uses two different variables for memory"
msgstr ""
-#: c-family/c-omp.c:480 cp/semantics.c:8077
+#: c-family/c-omp.c:480 cp/semantics.c:8081
#, gcc-internal-format
msgid "invalid type for iteration variable %qE"
msgstr ""
msgid "%qE is not initialized"
msgstr ""
-#: c-family/c-omp.c:514 cp/semantics.c:7965
+#: c-family/c-omp.c:514 cp/semantics.c:7969
#, gcc-internal-format
msgid "missing controlling predicate"
msgstr ""
-#: c-family/c-omp.c:599 cp/semantics.c:7629
+#: c-family/c-omp.c:599 cp/semantics.c:7633
#, gcc-internal-format
msgid "invalid controlling predicate"
msgstr ""
-#: c-family/c-omp.c:606 cp/semantics.c:7971
+#: c-family/c-omp.c:606 cp/semantics.c:7975
#, gcc-internal-format
msgid "missing increment expression"
msgstr ""
-#: c-family/c-omp.c:670 cp/semantics.c:7744
+#: c-family/c-omp.c:670 cp/semantics.c:7748
#, gcc-internal-format
msgid "invalid increment expression"
msgstr ""
msgid "increment expression refers to iteration variable %qD"
msgstr ""
-#: c-family/c-omp.c:1300
+#: c-family/c-omp.c:1317
#, gcc-internal-format
msgid "expected %<parallel%> or %<target%> %<if%> clause modifier"
msgstr ""
-#: c-family/c-omp.c:1398 c-family/c-omp.c:1413
+#: c-family/c-omp.c:1427 c-family/c-omp.c:1442
#, gcc-internal-format
msgid "%qD is not an function argument"
msgstr ""
msgid "<erroneous-expression>"
msgstr ""
-#: c-family/c-pretty-print.c:1245 cp/cxx-pretty-print.c:137
+#: c-family/c-pretty-print.c:1245 cp/cxx-pretty-print.c:140
#, gcc-internal-format
msgid "<return-value>"
msgstr ""
"128, 256, or 512"
msgstr ""
-#: common/config/rs6000/rs6000-common.c:172 config/sparc/sparc.c:1320
+#: common/config/rs6000/rs6000-common.c:172 config/sparc/sparc.c:1350
#, gcc-internal-format, gfc-internal-format
msgid "unknown -mdebug-%s switch"
msgstr ""
#. coalesced sections. Weak aliases (or any other kind of aliases) are
#. not supported. Weak symbols that aren't visible outside the .s file
#. are not supported.
-#: config/darwin.h:452
+#: config/darwin.h:453
#, gcc-internal-format
msgid "alias definitions not supported in Mach-O; ignored"
msgstr ""
msgid "profiler support for VxWorks"
msgstr ""
-#: config/aarch64/aarch64-builtins.c:1003 config/arm/arm-builtins.c:2122
+#: config/aarch64/aarch64-builtins.c:1016 config/arm/arm-builtins.c:2122
#, gcc-internal-format
msgid "%Kargument %d must be a constant immediate"
msgstr ""
-#: config/aarch64/aarch64-builtins.c:1074 config/arm/arm-builtins.c:2241
+#: config/aarch64/aarch64-builtins.c:1087 config/arm/arm-builtins.c:2241
#, gcc-internal-format
msgid "%Klane index must be a constant immediate"
msgstr ""
-#: config/aarch64/aarch64-builtins.c:1077
+#: config/aarch64/aarch64-builtins.c:1090
#, gcc-internal-format
msgid "%Ktotal size and element size must be a non-zero constant immediate"
msgstr ""
msgid "malformed target %s list %qs"
msgstr ""
-#: config/aarch64/aarch64.c:10816
+#: config/aarch64/aarch64.c:10813
#, gcc-internal-format
msgid "%Klane %wd out of range %wd - %wd"
msgstr ""
-#: config/aarch64/aarch64.c:10818
+#: config/aarch64/aarch64.c:10815
#, gcc-internal-format
msgid "lane %wd out of range %wd - %wd"
msgstr ""
msgid "Thumb-1 hard-float VFP ABI"
msgstr ""
-#: config/arm/arm.c:6456 config/arm/arm.c:6474 config/avr/avr.c:8991
-#: config/avr/avr.c:9007 config/bfin/bfin.c:4672 config/bfin/bfin.c:4733
+#: config/arm/arm.c:6456 config/arm/arm.c:6474 config/avr/avr.c:8988
+#: config/avr/avr.c:9004 config/bfin/bfin.c:4672 config/bfin/bfin.c:4733
#: config/bfin/bfin.c:4762 config/epiphany/epiphany.c:472
#: config/h8300/h8300.c:5453 config/i386/i386.c:6817 config/i386/i386.c:12002
-#: config/i386/i386.c:44435 config/i386/i386.c:44485 config/i386/i386.c:44555
+#: config/i386/i386.c:44513 config/i386/i386.c:44563 config/i386/i386.c:44633
#: config/m68k/m68k.c:748 config/mcore/mcore.c:3052 config/mep/mep.c:3884
-#: config/mep/mep.c:3898 config/mep/mep.c:3972 config/nvptx/nvptx.c:3793
-#: config/rl78/rl78.c:756 config/rs6000/rs6000.c:30981 config/rx/rx.c:2695
-#: config/rx/rx.c:2721 config/s390/s390.c:1046 config/sh/sh.c:9780
+#: config/mep/mep.c:3898 config/mep/mep.c:3972 config/nvptx/nvptx.c:3794
+#: config/rl78/rl78.c:756 config/rs6000/rs6000.c:32343 config/rx/rx.c:2695
+#: config/rx/rx.c:2721 config/s390/s390.c:1061 config/sh/sh.c:9780
#: config/sh/sh.c:9798 config/sh/sh.c:9827 config/sh/sh.c:9909
#: config/sh/sh.c:9932 config/spu/spu.c:3680 config/stormy16/stormy16.c:2211
#: config/v850/v850.c:2082 config/visium/visium.c:699
msgid "%s %wd out of range %wd - %wd"
msgstr ""
-#: config/arm/arm.c:23600
+#: config/arm/arm.c:23605
#, gcc-internal-format
msgid "unable to compute real location of stacked parameter"
msgstr ""
-#: config/arm/arm.c:24211
+#: config/arm/arm.c:24216
#, gcc-internal-format
msgid "Unexpected thumb1 far jump"
msgstr ""
-#: config/arm/arm.c:24478
+#: config/arm/arm.c:24483
#, gcc-internal-format
msgid "no low registers available for popping high registers"
msgstr ""
-#: config/arm/arm.c:24722
+#: config/arm/arm.c:24731
#, gcc-internal-format
msgid "interrupt Service Routines cannot be coded in Thumb mode"
msgstr ""
-#: config/arm/arm.c:24947
+#: config/arm/arm.c:24956
#, gcc-internal-format
msgid "-fstack-check=specific for Thumb-1"
msgstr ""
-#: config/arm/arm.c:30008 config/i386/i386.c:6041 config/s390/s390.c:14519
+#: config/arm/arm.c:30017 config/i386/i386.c:6041 config/s390/s390.c:14532
#, gcc-internal-format
msgid "attribute %<target%> argument not a string"
msgstr ""
-#: config/arm/arm.c:30031
+#: config/arm/arm.c:30040
#, gcc-internal-format, gfc-internal-format
msgid "invalid fpu for attribute(target(\"%s\"))"
msgstr ""
-#: config/arm/arm.c:30037 config/i386/i386.c:6107 config/i386/i386.c:6154
-#: config/s390/s390.c:14585 config/s390/s390.c:14635 config/s390/s390.c:14652
+#: config/arm/arm.c:30046 config/i386/i386.c:6107 config/i386/i386.c:6154
+#: config/s390/s390.c:14598 config/s390/s390.c:14648 config/s390/s390.c:14665
#, gcc-internal-format, gfc-internal-format
msgid "attribute(target(\"%s\")) is unknown"
msgstr ""
-#: config/arm/freebsd.h:126
+#: config/arm/freebsd.h:129
#, gcc-internal-format
msgid "target OS does not support unaligned accesses"
msgstr ""
#. happen as options are provided by device-specs. It could be a
#. typo in a device-specs or calling the compiler proper directly
#. with -mmcu=<device>.
-#: config/avr/avr.c:369
+#: config/avr/avr.c:366
#, gcc-internal-format
msgid "unknown core architecture %qs specified with %qs"
msgstr ""
-#: config/avr/avr.c:435 config/mep/mep.c:354 config/visium/visium.c:383
+#: config/avr/avr.c:432 config/mep/mep.c:354 config/visium/visium.c:383
#, gcc-internal-format
msgid "-fpic is not supported"
msgstr ""
-#: config/avr/avr.c:437 config/mep/mep.c:356 config/visium/visium.c:385
+#: config/avr/avr.c:434 config/mep/mep.c:356 config/visium/visium.c:385
#, gcc-internal-format
msgid "-fPIC is not supported"
msgstr ""
-#: config/avr/avr.c:439
+#: config/avr/avr.c:436
#, gcc-internal-format
msgid "-fpie is not supported"
msgstr ""
-#: config/avr/avr.c:441
+#: config/avr/avr.c:438
#, gcc-internal-format
msgid "-fPIE is not supported"
msgstr ""
-#: config/avr/avr.c:713
+#: config/avr/avr.c:710
#, gcc-internal-format
msgid "function attributes %qs, %qs and %qs are mutually exclusive"
msgstr ""
-#: config/avr/avr.c:720
+#: config/avr/avr.c:717
#, gcc-internal-format
msgid "function attributes %qs and %qs have no effect on %qs function"
msgstr ""
-#: config/avr/avr.c:747
+#: config/avr/avr.c:744
#, gcc-internal-format
msgid "%qs function cannot have arguments"
msgstr ""
-#: config/avr/avr.c:750
+#: config/avr/avr.c:747
#, gcc-internal-format
msgid "%qs function cannot return a value"
msgstr ""
-#: config/avr/avr.c:757
+#: config/avr/avr.c:754
#, gcc-internal-format
msgid "%qs appears to be a misspelled %s handler"
msgstr ""
-#: config/avr/avr.c:984
+#: config/avr/avr.c:981
#, gcc-internal-format
msgid "%<builtin_return_address%> contains only 2 bytes of address"
msgstr ""
-#: config/avr/avr.c:2208
+#: config/avr/avr.c:2205
#, gcc-internal-format
msgid "pointer offset from symbol maybe incorrect"
msgstr ""
-#: config/avr/avr.c:2347
+#: config/avr/avr.c:2344
#, gcc-internal-format
msgid "accessing data memory with program memory address"
msgstr ""
-#: config/avr/avr.c:2408
+#: config/avr/avr.c:2405
#, gcc-internal-format
msgid "accessing program memory with data memory address"
msgstr ""
-#: config/avr/avr.c:2853
+#: config/avr/avr.c:2850
#, gcc-internal-format, gfc-internal-format
msgid "fixed register %s used to pass parameter to function"
msgstr ""
-#: config/avr/avr.c:3124
+#: config/avr/avr.c:3121
#, gcc-internal-format
msgid "writing to address space %qs not supported"
msgstr ""
-#: config/avr/avr.c:9024 config/bfin/bfin.c:4794 config/i386/winnt.c:58
+#: config/avr/avr.c:9021 config/bfin/bfin.c:4794 config/i386/winnt.c:58
#: config/mep/mep.c:3788 config/mep/mep.c:3926
#, gcc-internal-format
msgid "%qE attribute only applies to variables"
msgstr ""
-#: config/avr/avr.c:9035 config/mep/mep.c:3936
+#: config/avr/avr.c:9032 config/mep/mep.c:3936
#, gcc-internal-format
msgid "%qE attribute allows only an integer constant argument"
msgstr ""
-#: config/avr/avr.c:9045
+#: config/avr/avr.c:9042
#, gcc-internal-format
msgid "%qE attribute address out of range"
msgstr ""
-#: config/avr/avr.c:9058
+#: config/avr/avr.c:9055
#, gcc-internal-format
msgid "both %s and %qE attribute provide address"
msgstr ""
-#: config/avr/avr.c:9068
+#: config/avr/avr.c:9065
#, gcc-internal-format
msgid "%qE attribute on non-volatile variable"
msgstr ""
-#: config/avr/avr.c:9272
+#: config/avr/avr.c:9269
#, gcc-internal-format
msgid "%qT uses address space %qs beyond flash of %d KiB"
msgstr ""
-#: config/avr/avr.c:9275
+#: config/avr/avr.c:9272
#, gcc-internal-format
msgid "%s %q+D uses address space %qs beyond flash of %d KiB"
msgstr ""
-#: config/avr/avr.c:9281
+#: config/avr/avr.c:9278
#, gcc-internal-format
msgid "pointer targeting address space %qs must be const in %qT"
msgstr ""
-#: config/avr/avr.c:9284
+#: config/avr/avr.c:9281
#, gcc-internal-format
msgid "pointer targeting address space %qs must be const in %s %q+D"
msgstr ""
-#: config/avr/avr.c:9322
+#: config/avr/avr.c:9319
#, gcc-internal-format
msgid "variable %q+D located in address space %qs beyond flash of %d KiB"
msgstr ""
-#: config/avr/avr.c:9327
+#: config/avr/avr.c:9324
#, gcc-internal-format
msgid ""
"variable %q+D located in address space %qs which is not supported for "
"architecture %qs"
msgstr ""
-#: config/avr/avr.c:9343
+#: config/avr/avr.c:9340
#, gcc-internal-format
msgid ""
"variable %q+D must be const in order to be put into read-only section by "
"means of %qs"
msgstr ""
-#: config/avr/avr.c:9383
+#: config/avr/avr.c:9380
#, gcc-internal-format
msgid "static IO declaration for %q+D needs an address"
msgstr ""
-#: config/avr/avr.c:9415
+#: config/avr/avr.c:9412
#, gcc-internal-format
msgid "IO definition for %q+D needs an address"
msgstr ""
-#: config/avr/avr.c:9599
+#: config/avr/avr.c:9519
#, gcc-internal-format
msgid "only uninitialized variables can be placed in the .noinit section"
msgstr ""
-#: config/avr/avr.c:9640
+#: config/avr/avr.c:9560
#, gcc-internal-format
msgid "uninitialized variable %q+D put into program memory area"
msgstr ""
-#: config/avr/avr.c:9750
+#: config/avr/avr.c:9672
#, gcc-internal-format
msgid "architecture %qs supported for assembler only"
msgstr ""
-#: config/avr/avr.c:12269
+#: config/avr/avr.c:12191
#, gcc-internal-format
msgid "conversion from address space %qs to address space %qs"
msgstr ""
-#: config/avr/avr.c:13325
+#: config/avr/avr.c:13247
#, gcc-internal-format, gfc-internal-format
msgid "%s expects a compile time integer constant"
msgstr ""
-#: config/avr/avr.c:13339
+#: config/avr/avr.c:13261
#, gcc-internal-format, gfc-internal-format
msgid "%s expects a compile time long integer constant as first argument"
msgstr ""
-#: config/avr/avr.c:13367
+#: config/avr/avr.c:13289
#, 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:13376
+#: config/avr/avr.c:13298
#, gcc-internal-format
msgid "rounding result will always be 0"
msgstr ""
msgid "-mno-fentry isn%'t compatible with SEH"
msgstr ""
-#: config/i386/i386.c:5528 config/rs6000/rs6000.c:4845
+#: config/i386/i386.c:5528 config/rs6000/rs6000.c:4932
#, gcc-internal-format, gfc-internal-format
msgid "unknown option for -mrecip=%s"
msgstr ""
msgid "regparam and thiscall attributes are not compatible"
msgstr ""
-#: config/i386/i386.c:6842 config/i386/i386.c:44455
+#: config/i386/i386.c:6842 config/i386/i386.c:44533
#, gcc-internal-format
msgid "%qE attribute requires an integer constant argument"
msgstr ""
msgid "non-integer operand used with operand code 'z'"
msgstr ""
-#: config/i386/i386.c:36396
+#: config/i386/i386.c:36446
#, gcc-internal-format
msgid "No dispatcher found for the versioning attributes"
msgstr ""
-#: config/i386/i386.c:36446
+#: config/i386/i386.c:36496
#, gcc-internal-format, gfc-internal-format
msgid "No dispatcher found for %s"
msgstr ""
-#: config/i386/i386.c:36456
+#: config/i386/i386.c:36506
#, gcc-internal-format, gfc-internal-format
msgid "No dispatcher found for the versioning attributes : %s"
msgstr ""
-#: config/i386/i386.c:36704
+#: config/i386/i386.c:36754
#, gcc-internal-format
msgid ""
"Function versions cannot be marked as gnu_inline, bodies have to be generated"
msgstr ""
-#: config/i386/i386.c:36709 config/i386/i386.c:37137
+#: config/i386/i386.c:36759 config/i386/i386.c:37187
#, gcc-internal-format
msgid "Virtual function multiversioning not supported"
msgstr ""
-#: config/i386/i386.c:36772
+#: config/i386/i386.c:36822
#, gcc-internal-format
msgid "missing %<target%> attribute for multi-versioned %D"
msgstr ""
-#: config/i386/i386.c:36775
+#: config/i386/i386.c:36825
#, gcc-internal-format
msgid "previous declaration of %D"
msgstr ""
-#: config/i386/i386.c:36994
+#: config/i386/i386.c:37044
#, gcc-internal-format
msgid "multiversioning needs ifunc which is not supported on this target"
msgstr ""
-#: config/i386/i386.c:37380
+#: config/i386/i386.c:37430
#, gcc-internal-format
msgid "Parameter to builtin must be a string constant or literal"
msgstr ""
-#: config/i386/i386.c:37405 config/i386/i386.c:37455
+#: config/i386/i386.c:37455 config/i386/i386.c:37505
#, gcc-internal-format, gfc-internal-format
msgid "Parameter to builtin not valid: %s"
msgstr ""
-#: config/i386/i386.c:37866 config/i386/i386.c:39217
+#: config/i386/i386.c:37916 config/i386/i386.c:39271
#, gcc-internal-format
msgid "the last argument must be a 2-bit immediate"
msgstr ""
-#: config/i386/i386.c:38261
+#: config/i386/i386.c:38311
#, gcc-internal-format
msgid "the fifth argument must be an 8-bit immediate"
msgstr ""
-#: config/i386/i386.c:38356
+#: config/i386/i386.c:38406
#, gcc-internal-format
msgid "the third argument must be an 8-bit immediate"
msgstr ""
-#: config/i386/i386.c:39148
+#: config/i386/i386.c:39202
#, gcc-internal-format
msgid "the last argument must be an 1-bit immediate"
msgstr ""
-#: config/i386/i386.c:39163
+#: config/i386/i386.c:39217
#, gcc-internal-format
msgid "the last argument must be a 3-bit immediate"
msgstr ""
-#: config/i386/i386.c:39196
+#: config/i386/i386.c:39250
#, gcc-internal-format
msgid "the last argument must be a 4-bit immediate"
msgstr ""
-#: config/i386/i386.c:39236
+#: config/i386/i386.c:39290
#, gcc-internal-format
msgid "the last argument must be a 1-bit immediate"
msgstr ""
-#: config/i386/i386.c:39249
+#: config/i386/i386.c:39303
#, gcc-internal-format
msgid "the last argument must be a 5-bit immediate"
msgstr ""
-#: config/i386/i386.c:39259
+#: config/i386/i386.c:39313
#, gcc-internal-format
msgid "the next to last argument must be an 8-bit immediate"
msgstr ""
-#: config/i386/i386.c:39263 config/i386/i386.c:40027
+#: config/i386/i386.c:39317 config/i386/i386.c:40083
#, gcc-internal-format
msgid "the last argument must be an 8-bit immediate"
msgstr ""
-#: config/i386/i386.c:39430
+#: config/i386/i386.c:39485
#, gcc-internal-format
msgid "the third argument must be comparison constant"
msgstr ""
-#: config/i386/i386.c:39435
+#: config/i386/i386.c:39490
#, gcc-internal-format
msgid "incorrect comparison mode"
msgstr ""
-#: config/i386/i386.c:39441 config/i386/i386.c:39642
+#: config/i386/i386.c:39496 config/i386/i386.c:39697
#, gcc-internal-format
msgid "incorrect rounding operand"
msgstr ""
-#: config/i386/i386.c:39624
+#: config/i386/i386.c:39679
#, gcc-internal-format
msgid "the immediate argument must be a 4-bit immediate"
msgstr ""
-#: config/i386/i386.c:39630
+#: config/i386/i386.c:39685
#, gcc-internal-format
msgid "the immediate argument must be a 5-bit immediate"
msgstr ""
-#: config/i386/i386.c:39633
+#: config/i386/i386.c:39688
#, gcc-internal-format
msgid "the immediate argument must be an 8-bit immediate"
msgstr ""
-#: config/i386/i386.c:40025
+#: config/i386/i386.c:40081
#, gcc-internal-format
msgid "the last argument must be a 32-bit immediate"
msgstr ""
-#: config/i386/i386.c:40107 config/rs6000/rs6000.c:13967
+#: config/i386/i386.c:40163 config/rs6000/rs6000.c:14475
#, gcc-internal-format
msgid "selector must be an integer constant in the range 0..%wi"
msgstr ""
-#: config/i386/i386.c:40301
+#: config/i386/i386.c:40357
#, gcc-internal-format
msgid "%qE needs unknown isa option"
msgstr ""
-#: config/i386/i386.c:40305
+#: config/i386/i386.c:40361
#, gcc-internal-format
msgid "%qE needs isa option %s"
msgstr ""
-#: config/i386/i386.c:41067
+#: config/i386/i386.c:41123
#, gcc-internal-format
msgid "last argument must be an immediate"
msgstr ""
-#: config/i386/i386.c:41676 config/i386/i386.c:41858
+#: config/i386/i386.c:41732 config/i386/i386.c:41914
#, gcc-internal-format
msgid "the last argument must be scale 1, 2, 4, 8"
msgstr ""
-#: config/i386/i386.c:41911
+#: config/i386/i386.c:41967
#, gcc-internal-format
msgid "the forth argument must be scale 1, 2, 4, 8"
msgstr ""
-#: config/i386/i386.c:41917
+#: config/i386/i386.c:41973
#, gcc-internal-format
msgid "incorrect hint operand"
msgstr ""
-#: config/i386/i386.c:41936
+#: config/i386/i386.c:41992
#, gcc-internal-format
msgid "the xabort's argument must be an 8-bit immediate"
msgstr ""
-#: config/i386/i386.c:44442
+#: config/i386/i386.c:44520
#, gcc-internal-format
msgid "%qE attribute only available for 32-bit"
msgstr ""
-#: config/i386/i386.c:44463
+#: config/i386/i386.c:44541
#, gcc-internal-format
msgid "argument to %qE attribute is neither zero, nor one"
msgstr ""
-#: config/i386/i386.c:44496 config/i386/i386.c:44505
+#: config/i386/i386.c:44574 config/i386/i386.c:44583
#, gcc-internal-format
msgid "ms_abi and sysv_abi attributes are not compatible"
msgstr ""
-#: config/i386/i386.c:44541 config/rs6000/rs6000.c:31064
+#: config/i386/i386.c:44619 config/rs6000/rs6000.c:32426
#, gcc-internal-format
msgid "%qE incompatible attribute ignored"
msgstr ""
-#: config/i386/i386.c:47478
+#: config/i386/i386.c:47556
#, gcc-internal-format
msgid "alternatives not allowed in asm flag output"
msgstr ""
-#: config/i386/i386.c:47542
+#: config/i386/i386.c:47620
#, gcc-internal-format
msgid "unknown asm flag output %qs"
msgstr ""
-#: config/i386/i386.c:47571
+#: config/i386/i386.c:47649
#, gcc-internal-format
msgid "invalid type for asm flag output"
msgstr ""
-#: config/i386/i386.c:53731
+#: config/i386/i386.c:53809
#, gcc-internal-format
msgid "Unknown architecture specific memory model"
msgstr ""
-#: config/i386/i386.c:53738
+#: config/i386/i386.c:53816
#, gcc-internal-format
msgid "HLE_ACQUIRE not used with ACQUIRE or stronger memory model"
msgstr ""
-#: config/i386/i386.c:53744
+#: config/i386/i386.c:53822
#, gcc-internal-format
msgid "HLE_RELEASE not used with RELEASE or stronger memory model"
msgstr ""
-#: config/i386/i386.c:53768 config/i386/i386.c:53889
+#: config/i386/i386.c:53846 config/i386/i386.c:53967
#, gcc-internal-format, gfc-internal-format
msgid "unsupported simdlen %d"
msgstr ""
-#: config/i386/i386.c:53787
+#: config/i386/i386.c:53865
#, gcc-internal-format
msgid "unsupported return type %qT for simd\n"
msgstr ""
-#: config/i386/i386.c:53809
+#: config/i386/i386.c:53887
#, gcc-internal-format
msgid "unsupported argument type %qT for simd\n"
msgstr ""
-#: config/i386/i386.c:54136
+#: config/i386/i386.c:54214
#, gcc-internal-format
msgid ""
"Pointer Checker requires MPX support on this target. Use -mmpx options to "
msgid "interrupt_thread is available only on fido"
msgstr ""
-#: config/m68k/m68k.c:1096 config/rs6000/rs6000.c:24299
+#: config/m68k/m68k.c:1096 config/rs6000/rs6000.c:25350
#, gcc-internal-format
msgid "stack limit expression is not supported"
msgstr ""
msgid "argument %d of %qE must be a multiple of %d"
msgstr ""
-#: config/mep/mep.c:6144 c/c-typeck.c:6625
+#: config/mep/mep.c:6144 c/c-typeck.c:6630
#, gcc-internal-format
msgid "incompatible type for argument %d of %qE"
msgstr ""
msgid "cannot open intermediate ptx file"
msgstr ""
-#: config/nvptx/nvptx.c:1545
+#: config/nvptx/nvptx.c:1546
#, gcc-internal-format
msgid "cannot emit unaligned pointers in ptx assembly"
msgstr ""
-#: config/nvptx/nvptx.c:3798
+#: config/nvptx/nvptx.c:3799
#, gcc-internal-format
msgid "%qE attribute requires a void return type"
msgstr ""
-#: config/nvptx/nvptx.c:4142
+#: config/nvptx/nvptx.c:4143
#, gcc-internal-format, gfc-internal-format
msgid "using vector_length (%d), ignoring %d"
msgstr ""
-#: config/nvptx/nvptx.c:4153
+#: config/nvptx/nvptx.c:4154
#, gcc-internal-format, gfc-internal-format
msgid "using num_workers (%d), ignoring %d"
msgstr ""
msgid "-g option disabled"
msgstr ""
-#: config/pa/pa.c:8699
+#: config/pa/pa.c:8718
#, gcc-internal-format, gfc-internal-format
msgid ""
"alignment (%u) for %s exceeds maximum alignment for global common data. "
msgid "junk at end of #pragma longcall"
msgstr ""
-#: config/rs6000/rs6000-c.c:4512
+#: config/rs6000/rs6000-c.c:4746
#, gcc-internal-format
msgid ""
"vec_lvsl is deprecated for little endian; use assignment for unaligned loads "
"and stores"
msgstr ""
-#: config/rs6000/rs6000-c.c:4515
+#: config/rs6000/rs6000-c.c:4749
#, gcc-internal-format
msgid ""
"vec_lvsr is deprecated for little endian; use assignment for unaligned loads "
"and stores"
msgstr ""
-#: config/rs6000/rs6000-c.c:4531
+#: config/rs6000/rs6000-c.c:4765
#, gcc-internal-format, gfc-internal-format
msgid "%s only accepts %d arguments"
msgstr ""
-#: config/rs6000/rs6000-c.c:4536
+#: config/rs6000/rs6000-c.c:4770
#, gcc-internal-format, gfc-internal-format
msgid "%s only accepts 1 argument"
msgstr ""
-#: config/rs6000/rs6000-c.c:4541
+#: config/rs6000/rs6000-c.c:4775
#, gcc-internal-format, gfc-internal-format
msgid "%s only accepts 2 arguments"
msgstr ""
-#: config/rs6000/rs6000-c.c:4607
+#: config/rs6000/rs6000-c.c:4841
#, gcc-internal-format
msgid "vec_extract only accepts 2 arguments"
msgstr ""
-#: config/rs6000/rs6000-c.c:4709
+#: config/rs6000/rs6000-c.c:4943
#, gcc-internal-format
msgid "vec_insert only accepts 3 arguments"
msgstr ""
-#: config/rs6000/rs6000-c.c:4841
+#: config/rs6000/rs6000-c.c:5075
#, gcc-internal-format
msgid "passing arg %d of %qE discards qualifiers frompointer target type"
msgstr ""
-#: config/rs6000/rs6000-c.c:4885
+#: config/rs6000/rs6000-c.c:5119
#, gcc-internal-format
msgid "invalid parameter combination for AltiVec intrinsic"
msgstr ""
-#: config/rs6000/rs6000.c:3465
+#: config/rs6000/rs6000.c:3512
#, gcc-internal-format
msgid "-mrecip requires -ffinite-math or -ffast-math"
msgstr ""
-#: config/rs6000/rs6000.c:3467
+#: config/rs6000/rs6000.c:3514
#, gcc-internal-format
msgid "-mrecip requires -fno-trapping-math or -ffast-math"
msgstr ""
-#: config/rs6000/rs6000.c:3469
+#: config/rs6000/rs6000.c:3516
#, gcc-internal-format
msgid "-mrecip requires -freciprocal-math or -ffast-math"
msgstr ""
-#: config/rs6000/rs6000.c:3569
+#: config/rs6000/rs6000.c:3616
#, gcc-internal-format
msgid "-m64 requires PowerPC64 architecture, enabling"
msgstr ""
-#: config/rs6000/rs6000.c:3682
+#: config/rs6000/rs6000.c:3734
#, gcc-internal-format
msgid ""
"-malign-power is not supported for 64-bit Darwin; it is incompatible with "
"the installed C and C++ libraries"
msgstr ""
-#: config/rs6000/rs6000.c:3844
+#: config/rs6000/rs6000.c:3881
#, gcc-internal-format
msgid "not configured for SPE ABI"
msgstr ""
-#: config/rs6000/rs6000.c:3849
+#: config/rs6000/rs6000.c:3886
#, gcc-internal-format
msgid "not configured for SPE instruction set"
msgstr ""
-#: config/rs6000/rs6000.c:3855
+#: config/rs6000/rs6000.c:3892
#, gcc-internal-format
msgid "target attribute or pragma changes SPE ABI"
msgstr ""
-#: config/rs6000/rs6000.c:3862
+#: config/rs6000/rs6000.c:3899
#, gcc-internal-format
msgid "AltiVec not supported in this target"
msgstr ""
-#: config/rs6000/rs6000.c:3864 config/rs6000/rs6000.c:3869
+#: config/rs6000/rs6000.c:3901 config/rs6000/rs6000.c:3906
#, gcc-internal-format
msgid "SPE not supported in this target"
msgstr ""
-#: config/rs6000/rs6000.c:3897
+#: config/rs6000/rs6000.c:3934
#, gcc-internal-format
msgid "-mmultiple is not supported on little endian systems"
msgstr ""
-#: config/rs6000/rs6000.c:3904
+#: config/rs6000/rs6000.c:3941
#, gcc-internal-format
msgid "-mstring is not supported on little endian systems"
msgstr ""
-#: config/rs6000/rs6000.c:3999
+#: config/rs6000/rs6000.c:4037
#, gcc-internal-format
msgid "-mcrypto requires -maltivec"
msgstr ""
-#: config/rs6000/rs6000.c:4006
+#: config/rs6000/rs6000.c:4044
#, gcc-internal-format
msgid "-mdirect-move requires -mvsx"
msgstr ""
-#: config/rs6000/rs6000.c:4013
+#: config/rs6000/rs6000.c:4051
#, gcc-internal-format
msgid "-mpower8-vector requires -maltivec"
msgstr ""
-#: config/rs6000/rs6000.c:4020
+#: config/rs6000/rs6000.c:4058
#, gcc-internal-format
msgid "-mpower8-vector requires -mvsx"
msgstr ""
-#: config/rs6000/rs6000.c:4027
+#: config/rs6000/rs6000.c:4065
#, gcc-internal-format
msgid "-mvsx-timode requires -mvsx"
msgstr ""
-#: config/rs6000/rs6000.c:4034
+#: config/rs6000/rs6000.c:4072
#, gcc-internal-format
msgid "-mhard-dfp requires -mhard-float"
msgstr ""
-#: config/rs6000/rs6000.c:4075
+#: config/rs6000/rs6000.c:4113
#, gcc-internal-format
msgid "-mupper-regs-df requires -mvsx"
msgstr ""
-#: config/rs6000/rs6000.c:4082
+#: config/rs6000/rs6000.c:4120
#, gcc-internal-format
msgid "-mupper-regs-sf requires -mpower8-vector"
msgstr ""
-#: config/rs6000/rs6000.c:4131
+#: config/rs6000/rs6000.c:4169
#, gcc-internal-format
msgid "-mpower8-fusion-sign requires -mpower8-fusion"
msgstr ""
-#: config/rs6000/rs6000.c:4134
+#: config/rs6000/rs6000.c:4172
#, gcc-internal-format
msgid "-mtoc-fusion requires -mpower8-fusion"
msgstr ""
-#: config/rs6000/rs6000.c:4147
+#: config/rs6000/rs6000.c:4185
#, gcc-internal-format
msgid "-mpower9-fusion requires -mpower8-fusion"
msgstr ""
-#: config/rs6000/rs6000.c:4195
+#: config/rs6000/rs6000.c:4233
+#, gcc-internal-format
+msgid "-mpower9-vector requires -mpower8-vector"
+msgstr ""
+
+#: config/rs6000/rs6000.c:4260
#, gcc-internal-format
msgid "-mpower9-dform requires -mpower9-vector"
msgstr ""
-#: config/rs6000/rs6000.c:4202
+#: config/rs6000/rs6000.c:4268
#, gcc-internal-format
msgid "-mpower9-dform requires -mupper-regs-df"
msgstr ""
-#: config/rs6000/rs6000.c:4209
+#: config/rs6000/rs6000.c:4275
#, gcc-internal-format
msgid "-mpower9-dform requires -mupper-regs-sf"
msgstr ""
-#: config/rs6000/rs6000.c:4217
+#: config/rs6000/rs6000.c:4291
#, gcc-internal-format
-msgid "-mpower9-vector requires -mpower8-vector"
+msgid "-mvsx-timode might need -mlra"
msgstr ""
-#: config/rs6000/rs6000.c:4232
+#: config/rs6000/rs6000.c:4316
#, gcc-internal-format
msgid "-mallow-movmisalign requires -mvsx"
msgstr ""
-#: config/rs6000/rs6000.c:4247
+#: config/rs6000/rs6000.c:4331
#, gcc-internal-format
msgid "-mefficient-unaligned-vsx requires -mvsx"
msgstr ""
-#: config/rs6000/rs6000.c:4255
+#: config/rs6000/rs6000.c:4339
#, gcc-internal-format
msgid "-mefficient-unaligned-vsx requires -mallow-movmisalign"
msgstr ""
-#: config/rs6000/rs6000.c:4265
+#: config/rs6000/rs6000.c:4349
#, gcc-internal-format
msgid "-mfloat128 requires VSX support"
msgstr ""
-#: config/rs6000/rs6000.c:4279
+#: config/rs6000/rs6000.c:4371
#, gcc-internal-format
msgid "-mfloat128-hardware requires full ISA 3.0 support"
msgstr ""
-#: config/rs6000/rs6000.c:4346
+#: config/rs6000/rs6000.c:4434
#, gcc-internal-format, gfc-internal-format
msgid "unknown vectorization library ABI type (%s) for -mveclibabi= switch"
msgstr ""
-#: config/rs6000/rs6000.c:4358
+#: config/rs6000/rs6000.c:4446
#, gcc-internal-format
msgid "target attribute or pragma changes long double size"
msgstr ""
-#: config/rs6000/rs6000.c:4381 config/rs6000/rs6000.c:4396
+#: config/rs6000/rs6000.c:4469 config/rs6000/rs6000.c:4484
#, gcc-internal-format
msgid "target attribute or pragma changes AltiVec ABI"
msgstr ""
-#: config/rs6000/rs6000.c:4409
+#: config/rs6000/rs6000.c:4497
#, gcc-internal-format
msgid "target attribute or pragma changes darwin64 ABI"
msgstr ""
-#: config/rs6000/rs6000.c:4475
+#: config/rs6000/rs6000.c:4563
#, gcc-internal-format
msgid "target attribute or pragma changes single precision floating point"
msgstr ""
-#: config/rs6000/rs6000.c:4478
+#: config/rs6000/rs6000.c:4566
#, gcc-internal-format
msgid "target attribute or pragma changes double precision floating point"
msgstr ""
-#: config/rs6000/rs6000.c:6738
+#: config/rs6000/rs6000.c:7010
#, gcc-internal-format, gfc-internal-format
msgid ""
"the layout of aggregates containing vectors with %d-byte alignment has "
"changed in GCC 5"
msgstr ""
-#: config/rs6000/rs6000.c:9844
+#: config/rs6000/rs6000.c:10258
#, gcc-internal-format
msgid ""
"GCC vector returned by reference: non-standard ABI extension with no "
"compatibility guarantee"
msgstr ""
-#: config/rs6000/rs6000.c:9997
+#: config/rs6000/rs6000.c:10411
#, gcc-internal-format
msgid ""
"cannot return value in vector register because altivec instructions are "
"disabled, use -maltivec to enable them"
msgstr ""
-#: config/rs6000/rs6000.c:10167
+#: config/rs6000/rs6000.c:10611
#, gcc-internal-format, gfc-internal-format
msgid ""
"the ABI of passing aggregates with %d-byte alignment has changed in GCC 5"
msgstr ""
-#: config/rs6000/rs6000.c:10429
+#: config/rs6000/rs6000.c:10873
#, gcc-internal-format
msgid ""
"cannot pass argument in vector register because altivec instructions are "
"disabled, use -maltivec to enable them"
msgstr ""
-#: config/rs6000/rs6000.c:11289
+#: config/rs6000/rs6000.c:11725
#, gcc-internal-format
msgid "the ABI of passing homogeneous float aggregates has changed in GCC 5"
msgstr ""
-#: config/rs6000/rs6000.c:11464
+#: config/rs6000/rs6000.c:11900
#, gcc-internal-format
msgid ""
"GCC vector passed by reference: non-standard ABI extension with no "
"compatibility guarantee"
msgstr ""
-#: config/rs6000/rs6000.c:12252
+#: config/rs6000/rs6000.c:12684
#, gcc-internal-format, gfc-internal-format
msgid "internal error: builtin function %s already processed"
msgstr ""
-#: config/rs6000/rs6000.c:12694
+#: config/rs6000/rs6000.c:13182
#, gcc-internal-format
msgid "argument 1 must be an 8-bit field value"
msgstr ""
-#: config/rs6000/rs6000.c:12741
+#: config/rs6000/rs6000.c:13229
#, gcc-internal-format
msgid "argument 1 must be a 5-bit signed literal"
msgstr ""
-#: config/rs6000/rs6000.c:12844 config/rs6000/rs6000.c:14430
+#: config/rs6000/rs6000.c:13332 config/rs6000/rs6000.c:15019
#, gcc-internal-format
msgid "argument 2 must be a 5-bit unsigned literal"
msgstr ""
-#: config/rs6000/rs6000.c:12883
+#: config/rs6000/rs6000.c:13350
+#, gcc-internal-format
+msgid "argument 1 must be a 6-bit unsigned literal"
+msgstr ""
+
+#: config/rs6000/rs6000.c:13389
#, gcc-internal-format
msgid "argument 1 of __builtin_altivec_predicate must be a constant"
msgstr ""
-#: config/rs6000/rs6000.c:12935
+#: config/rs6000/rs6000.c:13441
#, gcc-internal-format
msgid "argument 1 of __builtin_altivec_predicate is out of range"
msgstr ""
-#: config/rs6000/rs6000.c:13309
+#: config/rs6000/rs6000.c:13815
#, gcc-internal-format, gfc-internal-format
msgid "builtin %s is only valid in 64-bit mode"
msgstr ""
-#: config/rs6000/rs6000.c:13358
+#: config/rs6000/rs6000.c:13864
#, gcc-internal-format, gfc-internal-format
msgid "argument %d must be an unsigned literal"
msgstr ""
-#: config/rs6000/rs6000.c:13360
+#: config/rs6000/rs6000.c:13866
#, gcc-internal-format, gfc-internal-format
msgid "argument %d is an unsigned literal that is out of range"
msgstr ""
-#: config/rs6000/rs6000.c:13498
+#: config/rs6000/rs6000.c:14004
#, gcc-internal-format, gfc-internal-format
msgid "builtin %s only accepts a string argument"
msgstr ""
#. Invalid CPU argument.
-#: config/rs6000/rs6000.c:13517
+#: config/rs6000/rs6000.c:14023
#, gcc-internal-format, gfc-internal-format
msgid "cpu %s is an invalid argument to builtin %s"
msgstr ""
#. Invalid HWCAP argument.
-#: config/rs6000/rs6000.c:13545
+#: config/rs6000/rs6000.c:14051
#, gcc-internal-format, gfc-internal-format
msgid "hwcap %s is an invalid argument to builtin %s"
msgstr ""
-#: config/rs6000/rs6000.c:13618
+#: config/rs6000/rs6000.c:14124
#, gcc-internal-format
msgid "argument 3 must be a 4-bit unsigned literal"
msgstr ""
-#: config/rs6000/rs6000.c:13636
+#: config/rs6000/rs6000.c:14142
#, gcc-internal-format
msgid "argument 3 must be a 2-bit unsigned literal"
msgstr ""
-#: config/rs6000/rs6000.c:13656
+#: config/rs6000/rs6000.c:14162
#, gcc-internal-format
msgid "argument 3 must be a 1-bit unsigned literal"
msgstr ""
-#: config/rs6000/rs6000.c:13668
+#: config/rs6000/rs6000.c:14174
#, gcc-internal-format
msgid "argument 1 must be 0 or 2"
msgstr ""
-#: config/rs6000/rs6000.c:13680
+#: config/rs6000/rs6000.c:14186
#, gcc-internal-format
msgid "argument 1 must be a 1-bit unsigned literal"
msgstr ""
-#: config/rs6000/rs6000.c:13694
+#: config/rs6000/rs6000.c:14200
#, gcc-internal-format
msgid "argument 2 must be a 6-bit unsigned literal"
msgstr ""
-#: config/rs6000/rs6000.c:13706
+#: config/rs6000/rs6000.c:14212
#, gcc-internal-format
msgid "argument 2 must be 0 or 1"
msgstr ""
-#: config/rs6000/rs6000.c:13713
+#: config/rs6000/rs6000.c:14219
#, gcc-internal-format
msgid "argument 3 must be in the range 0..15"
msgstr ""
-#: config/rs6000/rs6000.c:13900
+#: config/rs6000/rs6000.c:14408
#, gcc-internal-format
msgid "argument to %qs must be a 2-bit unsigned literal"
msgstr ""
-#: config/rs6000/rs6000.c:14053
+#: config/rs6000/rs6000.c:14561
#, gcc-internal-format
msgid "unresolved overload for Altivec builtin %qF"
msgstr ""
-#: config/rs6000/rs6000.c:14183
+#: config/rs6000/rs6000.c:14732
#, gcc-internal-format
msgid "argument to dss must be a 2-bit unsigned literal"
msgstr ""
-#: config/rs6000/rs6000.c:14550
+#: config/rs6000/rs6000.c:15139
#, gcc-internal-format
msgid "argument 1 of __builtin_paired_predicate must be a constant"
msgstr ""
-#: config/rs6000/rs6000.c:14597
+#: config/rs6000/rs6000.c:15186
#, gcc-internal-format
msgid "argument 1 of __builtin_paired_predicate is out of range"
msgstr ""
-#: config/rs6000/rs6000.c:14622
+#: config/rs6000/rs6000.c:15211
#, gcc-internal-format
msgid "argument 1 of __builtin_spe_predicate must be a constant"
msgstr ""
-#: config/rs6000/rs6000.c:14694
+#: config/rs6000/rs6000.c:15283
#, gcc-internal-format
msgid "argument 1 of __builtin_spe_predicate is out of range"
msgstr ""
-#: config/rs6000/rs6000.c:14776
+#: config/rs6000/rs6000.c:15365
#, gcc-internal-format, gfc-internal-format
msgid "Builtin function %s is only valid for the cell processor"
msgstr ""
-#: config/rs6000/rs6000.c:14778
+#: config/rs6000/rs6000.c:15367
#, gcc-internal-format, gfc-internal-format
msgid "Builtin function %s requires the -mvsx option"
msgstr ""
-#: config/rs6000/rs6000.c:14780
+#: config/rs6000/rs6000.c:15369
#, gcc-internal-format, gfc-internal-format
msgid "Builtin function %s requires the -mhtm option"
msgstr ""
-#: config/rs6000/rs6000.c:14782
+#: config/rs6000/rs6000.c:15371
#, gcc-internal-format, gfc-internal-format
msgid "Builtin function %s requires the -maltivec option"
msgstr ""
-#: config/rs6000/rs6000.c:14784
+#: config/rs6000/rs6000.c:15373
#, gcc-internal-format, gfc-internal-format
msgid "Builtin function %s requires the -mpaired option"
msgstr ""
-#: config/rs6000/rs6000.c:14786
+#: config/rs6000/rs6000.c:15375
#, gcc-internal-format, gfc-internal-format
msgid "Builtin function %s requires the -mspe option"
msgstr ""
-#: config/rs6000/rs6000.c:14789
+#: config/rs6000/rs6000.c:15378
#, gcc-internal-format, gfc-internal-format
msgid "Builtin function %s requires the -mhard-dfp and -mpower8-vector options"
msgstr ""
-#: config/rs6000/rs6000.c:14792
+#: config/rs6000/rs6000.c:15381
#, gcc-internal-format, gfc-internal-format
msgid "Builtin function %s requires the -mhard-dfp option"
msgstr ""
-#: config/rs6000/rs6000.c:14794
+#: config/rs6000/rs6000.c:15383
#, gcc-internal-format, gfc-internal-format
msgid "Builtin function %s requires the -mpower8-vector option"
msgstr ""
-#: config/rs6000/rs6000.c:14797
+#: config/rs6000/rs6000.c:15385
+#, gcc-internal-format, gfc-internal-format
+msgid "Builtin function %s requires the -mpower9-vector option"
+msgstr ""
+
+#: config/rs6000/rs6000.c:15388
+#, gcc-internal-format, gfc-internal-format
+msgid "Builtin function %s requires the -mpower9-misc and -m64 options"
+msgstr ""
+
+#: config/rs6000/rs6000.c:15391
+#, gcc-internal-format, gfc-internal-format
+msgid "Builtin function %s requires the -mpower9-misc option"
+msgstr ""
+
+#: config/rs6000/rs6000.c:15394
#, gcc-internal-format, gfc-internal-format
msgid ""
"Builtin function %s requires the -mhard-float and -mlong-double-128 options"
msgstr ""
-#: config/rs6000/rs6000.c:14800
+#: config/rs6000/rs6000.c:15397
#, gcc-internal-format, gfc-internal-format
msgid "Builtin function %s requires the -mhard-float option"
msgstr ""
-#: config/rs6000/rs6000.c:14802
+#: config/rs6000/rs6000.c:15399
#, gcc-internal-format, gfc-internal-format
-msgid "Builtin function %s is not supported with the current options"
+msgid "Builtin function %s requires the -mfloat128 option"
msgstr ""
-#: config/rs6000/rs6000.c:16356
+#: config/rs6000/rs6000.c:15401
#, gcc-internal-format, gfc-internal-format
-msgid "internal error: builtin function %s had no type"
+msgid "Builtin function %s is not supported with the current options"
msgstr ""
-#: config/rs6000/rs6000.c:16364
+#: config/rs6000/rs6000.c:17064
#, gcc-internal-format, gfc-internal-format
msgid "internal error: builtin function %s had an unexpected return type %s"
msgstr ""
-#: config/rs6000/rs6000.c:16381
+#: config/rs6000/rs6000.c:17081
#, gcc-internal-format, gfc-internal-format
msgid ""
"internal error: builtin function %s, argument %d had unexpected argument "
"type %s"
msgstr ""
-#: config/rs6000/rs6000.c:24269
+#: config/rs6000/rs6000.c:25320
#, gcc-internal-format
msgid "stack frame too large"
msgstr ""
-#: config/rs6000/rs6000.c:27663
+#: config/rs6000/rs6000.c:28750
#, gcc-internal-format
msgid "-fsplit-stack uses register r29"
msgstr ""
-#: config/rs6000/rs6000.c:27671
+#: config/rs6000/rs6000.c:28758
#, gcc-internal-format
msgid "Stack frame larger than 2G is not supported for -fsplit-stack"
msgstr ""
-#: config/rs6000/rs6000.c:28669
+#: config/rs6000/rs6000.c:29761
#, gcc-internal-format
msgid "no profiling of 64-bit code for this ABI"
msgstr ""
-#: config/rs6000/rs6000.c:30751
+#: config/rs6000/rs6000.c:32113
#, gcc-internal-format
msgid ""
"You cannot take the address of a nested function if you use the -mno-"
"pointers-to-nested-functions option."
msgstr ""
-#: config/rs6000/rs6000.c:30833
+#: config/rs6000/rs6000.c:32195
#, gcc-internal-format
msgid "use of %<long double%> in AltiVec types is invalid"
msgstr ""
-#: config/rs6000/rs6000.c:30835
+#: config/rs6000/rs6000.c:32197
#, gcc-internal-format
msgid "use of boolean types in AltiVec types is invalid"
msgstr ""
-#: config/rs6000/rs6000.c:30837
+#: config/rs6000/rs6000.c:32199
#, gcc-internal-format
msgid "use of %<complex%> in AltiVec types is invalid"
msgstr ""
-#: config/rs6000/rs6000.c:30839
+#: config/rs6000/rs6000.c:32201
#, gcc-internal-format
msgid "use of decimal floating point types in AltiVec types is invalid"
msgstr ""
-#: config/rs6000/rs6000.c:30845
+#: config/rs6000/rs6000.c:32207
#, gcc-internal-format
msgid ""
"use of %<long%> in AltiVec types is invalid for 64-bit code without -mvsx"
msgstr ""
-#: config/rs6000/rs6000.c:30848
+#: config/rs6000/rs6000.c:32210
#, gcc-internal-format
msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
msgstr ""
-#: config/rs6000/rs6000.c:30853
+#: config/rs6000/rs6000.c:32215
#, gcc-internal-format
msgid "use of %<long long%> in AltiVec types is invalid without -mvsx"
msgstr ""
-#: config/rs6000/rs6000.c:30856
+#: config/rs6000/rs6000.c:32218
#, gcc-internal-format
msgid "use of %<double%> in AltiVec types is invalid without -mvsx"
msgstr ""
-#: config/rs6000/rs6000.c:34364
+#: config/rs6000/rs6000.c:35741
#, gcc-internal-format, gfc-internal-format
msgid "emitting microcode insn %s\t[%s] #%d"
msgstr ""
-#: config/rs6000/rs6000.c:34368
+#: config/rs6000/rs6000.c:35745
#, gcc-internal-format, gfc-internal-format
msgid "emitting conditional microcode insn %s\t[%s] #%d"
msgstr ""
-#: config/rs6000/rs6000.c:34668
+#: config/rs6000/rs6000.c:36050
#, gcc-internal-format, gfc-internal-format
msgid "invalid cpu \"%s\" for %s\"%s\"%s"
msgstr ""
-#: config/rs6000/rs6000.c:34671
+#: config/rs6000/rs6000.c:36053
#, gcc-internal-format, gfc-internal-format
msgid "%s\"%s\"%s is not allowed"
msgstr ""
-#: config/rs6000/rs6000.c:34673
+#: config/rs6000/rs6000.c:36055
#, gcc-internal-format, gfc-internal-format
msgid "%s\"%s\"%s is invalid"
msgstr ""
msgid "bad builtin icode"
msgstr ""
-#: config/s390/s390.c:891
+#: config/s390/s390.c:892
#, gcc-internal-format
msgid "constant value required for builtin %qF argument %d"
msgstr ""
-#: config/s390/s390.c:968
+#: config/s390/s390.c:983
#, gcc-internal-format
msgid "Invalid argument %d for builtin %qF"
msgstr ""
-#: config/s390/s390.c:1069
+#: config/s390/s390.c:1084
#, gcc-internal-format
msgid ""
"requested %qE attribute is not a comma separated pair of non-negative "
"integer constants or too large (max. %d)"
msgstr ""
-#: config/s390/s390.c:9641
+#: config/s390/s390.c:9662
#, gcc-internal-format
msgid "total size of local variables exceeds architecture limit"
msgstr ""
-#: config/s390/s390.c:10747
+#: config/s390/s390.c:10768
#, gcc-internal-format
msgid ""
"frame size of function %qs is %wd bytes exceeding user provided stack limit "
"of %d bytes. An unconditional trap is added."
msgstr ""
-#: config/s390/s390.c:10763
+#: config/s390/s390.c:10784
#, gcc-internal-format
msgid ""
"frame size of function %qs is %wd bytes which is more than half the stack "
"function."
msgstr ""
-#: config/s390/s390.c:10791
+#: config/s390/s390.c:10812
#, gcc-internal-format
msgid "frame size of %qs is %wd bytes"
msgstr ""
-#: config/s390/s390.c:10795
+#: config/s390/s390.c:10816
#, gcc-internal-format
msgid "%qs uses dynamic stack allocation"
msgstr ""
-#: config/s390/s390.c:11173
+#: config/s390/s390.c:11194
#, gcc-internal-format
msgid "CPUs older than z900 are not supported for -fsplit-stack"
msgstr ""
-#: config/s390/s390.c:14172
+#: config/s390/s390.c:14185
#, gcc-internal-format, gfc-internal-format
msgid ""
"%sarch=%s%s is deprecated and will be removed in future releases; use at "
"least %sarch=z900%s"
msgstr ""
-#: config/s390/s390.c:14184
+#: config/s390/s390.c:14197
#, gcc-internal-format, gfc-internal-format
msgid ""
"%stune=%s%s is deprecated and will be removed in future releases; use at "
"least %stune=z900%s"
msgstr ""
-#: config/s390/s390.c:14196
+#: config/s390/s390.c:14209
#, gcc-internal-format, gfc-internal-format
msgid "z/Architecture mode not supported on %s"
msgstr ""
-#: config/s390/s390.c:14199
+#: config/s390/s390.c:14212
#, gcc-internal-format
msgid "64-bit ABI not supported in ESA/390 mode"
msgstr ""
-#: config/s390/s390.c:14216
+#: config/s390/s390.c:14229
#, gcc-internal-format, gfc-internal-format
msgid "hardware vector support not available on %s"
msgstr ""
-#: config/s390/s390.c:14219
+#: config/s390/s390.c:14232
#, gcc-internal-format
msgid "hardware vector support not available with -msoft-float"
msgstr ""
-#: config/s390/s390.c:14247
+#: config/s390/s390.c:14260
#, gcc-internal-format, gfc-internal-format
msgid "hardware decimal floating point instructions not available on %s"
msgstr ""
-#: config/s390/s390.c:14251
+#: config/s390/s390.c:14264
#, gcc-internal-format
msgid ""
"hardware decimal floating point instructions not available in ESA/390 mode"
msgstr ""
-#: config/s390/s390.c:14263
+#: config/s390/s390.c:14276
#, gcc-internal-format
msgid "-mhard-dfp can%'t be used in conjunction with -msoft-float"
msgstr ""
-#: config/s390/s390.c:14271
+#: config/s390/s390.c:14284
#, gcc-internal-format
msgid ""
"-mbackchain -mpacked-stack -mhard-float are not supported in combination"
msgstr ""
-#: config/s390/s390.c:14277
+#: config/s390/s390.c:14290
#, gcc-internal-format
msgid "stack size must be greater than the stack guard value"
msgstr ""
-#: config/s390/s390.c:14279
+#: config/s390/s390.c:14292
#, gcc-internal-format
msgid "stack size must not be greater than 64k"
msgstr ""
-#: config/s390/s390.c:14282
+#: config/s390/s390.c:14295
#, gcc-internal-format
msgid "-mstack-guard implies use of -mstack-size"
msgstr ""
#. argument is not a plain number
-#: config/s390/s390.c:14376
+#: config/s390/s390.c:14389
#, gcc-internal-format
msgid "arguments to %qs should be non-negative integers"
msgstr ""
-#: config/s390/s390.c:14383
+#: config/s390/s390.c:14396
#, gcc-internal-format
msgid "argument to %qs is too large (max. %d)"
msgstr ""
#. Value is not allowed for the target attribute.
-#: config/s390/s390.c:14591
+#: config/s390/s390.c:14604
#, gcc-internal-format
msgid "Value %qs is not supported by attribute %<target%>"
msgstr ""
msgid "-mrelax is only supported for RTP PIC"
msgstr ""
-#: config/sparc/sparc.c:1342
+#: config/sparc/sparc.c:1372
#, gcc-internal-format, gfc-internal-format
msgid "%s is not supported by this configuration"
msgstr ""
-#: config/sparc/sparc.c:1349
+#: config/sparc/sparc.c:1379
#, gcc-internal-format
msgid "-mlong-double-64 not allowed with -m64"
msgstr ""
-#: config/sparc/sparc.c:1369
+#: config/sparc/sparc.c:1399
#, gcc-internal-format, gfc-internal-format
msgid "bad value (%s) for -mcmodel= switch"
msgstr ""
-#: config/sparc/sparc.c:1374
+#: config/sparc/sparc.c:1404
#, gcc-internal-format
msgid "-mcmodel= is not supported on 32 bit systems"
msgstr ""
-#: config/sparc/sparc.c:1381
+#: config/sparc/sparc.c:1411
#, gcc-internal-format
msgid "-fcall-saved-REG is not supported for out registers"
msgstr ""
msgid "subprogram %q+F not marked Inline"
msgstr ""
-#: ada/gcc-interface/trans.c:6241
+#: ada/gcc-interface/trans.c:6248
#, gcc-internal-format
msgid "out-of-bounds access may be optimized away"
msgstr ""
-#: ada/gcc-interface/trans.c:6243
+#: ada/gcc-interface/trans.c:6250
#, gcc-internal-format
msgid "containing loop"
msgstr ""
-#: ada/gcc-interface/utils.c:3757
+#: ada/gcc-interface/utils.c:3763
#, gcc-internal-format
msgid "invalid element type for attribute %qs"
msgstr ""
-#: ada/gcc-interface/utils.c:3781
+#: ada/gcc-interface/utils.c:3787
#, gcc-internal-format
msgid "number of components of vector not a power of two"
msgstr ""
-#: ada/gcc-interface/utils.c:5795 ada/gcc-interface/utils.c:5969
-#: ada/gcc-interface/utils.c:6031
+#: ada/gcc-interface/utils.c:5801 ada/gcc-interface/utils.c:5975
+#: ada/gcc-interface/utils.c:6082
#, gcc-internal-format
msgid "%qs attribute ignored"
msgstr ""
-#: ada/gcc-interface/utils.c:5912
+#: ada/gcc-interface/utils.c:5918
#, gcc-internal-format
msgid "%qs attribute requires prototypes with named arguments"
msgstr ""
-#: ada/gcc-interface/utils.c:5921
+#: ada/gcc-interface/utils.c:5927
#, gcc-internal-format
msgid "%qs attribute only applies to variadic functions"
msgstr ""
-#: ada/gcc-interface/utils.c:5991
+#: ada/gcc-interface/utils.c:6042
#, gcc-internal-format
msgid "%qE attribute has no effect"
msgstr ""
-#: ada/gcc-interface/utils.c:6115
+#: ada/gcc-interface/utils.c:6166
#, gcc-internal-format
msgid "attribute %qs applies to array types only"
msgstr ""
-#: c/c-array-notation.c:217 c/c-array-notation.c:246 cp/call.c:7795
+#: c/c-array-notation.c:217 c/c-array-notation.c:246 cp/call.c:7806
#: cp/cp-array-notation.c:250
#, gcc-internal-format
msgid "Invalid builtin arguments"
"dimension greater than 1"
msgstr ""
-#: c/c-array-notation.c:718 c/c-array-notation.c:724
-#: cp/cp-array-notation.c:606
+#: c/c-array-notation.c:718 c/c-array-notation.c:724 cp/cp-array-notation.c:606
#, gcc-internal-format
msgid "%qE cannot be scalar when %qE is not"
msgstr ""
#. an unprototyped function, it is compile-time undefined;
#. making it a constraint in that case was rejected in
#. DR#252.
-#: c/c-convert.c:98 c/c-typeck.c:2116 c/c-typeck.c:6132 c/c-typeck.c:11648
-#: cp/typeck.c:1956 cp/typeck.c:7558 cp/typeck.c:8285
+#: c/c-convert.c:98 c/c-typeck.c:2116 c/c-typeck.c:6137 c/c-typeck.c:11655
+#: cp/typeck.c:1956 cp/typeck.c:7557 cp/typeck.c:8284
#, gcc-internal-format
msgid "void value not ignored as it ought to be"
msgstr ""
msgid "type of array %q+D completed incompatibly with implicit initialization"
msgstr ""
-#: c/c-decl.c:1559 c/c-decl.c:6391 c/c-decl.c:7263 c/c-decl.c:8002
+#: c/c-decl.c:1559 c/c-decl.c:6391 c/c-decl.c:7265 c/c-decl.c:8004
#, gcc-internal-format
msgid "originally defined here"
msgstr ""
"appears in"
msgstr ""
-#: c/c-decl.c:3503 cp/decl.c:2951
+#: c/c-decl.c:3503 cp/decl.c:2959
#, gcc-internal-format
msgid "label %qE referenced outside of any function"
msgstr ""
msgid "label %qD defined here"
msgstr ""
-#: c/c-decl.c:3544 c/c-decl.c:3815 c/c-typeck.c:7879 cp/class.c:1438
-#: cp/class.c:3303 cp/decl.c:3787 cp/friend.c:340 cp/friend.c:349
+#: c/c-decl.c:3544 c/c-decl.c:3815 c/c-typeck.c:7884 cp/class.c:1438
+#: cp/class.c:3303 cp/decl.c:3795 cp/friend.c:340 cp/friend.c:349
#: cp/parser.c:3146 cp/parser.c:3227 cp/parser.c:3255 cp/parser.c:5994
#, gcc-internal-format
msgid "%qD declared here"
msgid "duplicate label declaration %qE"
msgstr ""
-#: c/c-decl.c:3717 cp/decl.c:3329
+#: c/c-decl.c:3717 cp/decl.c:3337
#, gcc-internal-format
msgid "duplicate label %qD"
msgstr ""
#. C99 6.7.5.2p4
#. A function definition isn't function prototype scope C99 6.2.1p4.
#. C99 6.7.5.2p4
-#: c/c-decl.c:4349 c/c-decl.c:6831
+#: c/c-decl.c:4349 c/c-decl.c:6833
#, gcc-internal-format
msgid "%<[*]%> not allowed in other than function prototype scope"
msgstr ""
#. of VLAs themselves count as VLAs, it does not make
#. sense to permit them to be initialized given that
#. ordinary VLAs may not be initialized.
-#: c/c-decl.c:4524 c/c-decl.c:4539 c/c-typeck.c:7186
+#: c/c-decl.c:4524 c/c-decl.c:4539 c/c-typeck.c:7191
#, gcc-internal-format
msgid "variable-sized object may not be initialized"
msgstr ""
msgid "storage class specified for unnamed parameter"
msgstr ""
-#: c/c-decl.c:5621 cp/decl.c:9939
+#: c/c-decl.c:5621 cp/decl.c:9953
#, gcc-internal-format
msgid "storage class specified for typename"
msgstr ""
msgid "declaration of type name as array of functions"
msgstr ""
-#: c/c-decl.c:5774 c/c-decl.c:7757
+#: c/c-decl.c:5774 c/c-decl.c:7759
#, gcc-internal-format
msgid "invalid use of structure with flexible array member"
msgstr ""
msgid "function definition has qualified void return type"
msgstr ""
-#: c/c-decl.c:6144 cp/decl.c:10069
+#: c/c-decl.c:6144 cp/decl.c:10083
#, gcc-internal-format
msgid "type qualifiers ignored on function return type"
msgstr ""
#: c/c-decl.c:6173 c/c-decl.c:6357 c/c-decl.c:6411 c/c-decl.c:6495
-#: c/c-decl.c:6611 c/c-parser.c:2586
+#: c/c-decl.c:6613 c/c-parser.c:2586
#, gcc-internal-format
msgid "%<_Atomic%>-qualified function type"
msgstr ""
-#: c/c-decl.c:6179 c/c-decl.c:6363 c/c-decl.c:6500 c/c-decl.c:6616
+#: c/c-decl.c:6179 c/c-decl.c:6363 c/c-decl.c:6500 c/c-decl.c:6618
#, gcc-internal-format
msgid "ISO C forbids qualified function types"
msgstr ""
msgid "a member of a structure or union cannot have a variably modified type"
msgstr ""
-#: c/c-decl.c:6445 cp/decl.c:9144
+#: c/c-decl.c:6445 cp/decl.c:9158
#, gcc-internal-format
msgid "variable or field %qE declared void"
msgstr ""
msgid "unnamed field has incomplete type"
msgstr ""
-#: c/c-decl.c:6582 c/c-decl.c:6593 c/c-decl.c:6596
+#: c/c-decl.c:6584 c/c-decl.c:6595 c/c-decl.c:6598
#, gcc-internal-format
msgid "invalid storage class for function %qE"
msgstr ""
-#: c/c-decl.c:6653
+#: c/c-decl.c:6655
#, gcc-internal-format
msgid "cannot inline function %<main%>"
msgstr ""
-#: c/c-decl.c:6655
+#: c/c-decl.c:6657
#, gcc-internal-format
msgid "%<main%> declared %<_Noreturn%>"
msgstr ""
-#: c/c-decl.c:6666
+#: c/c-decl.c:6668
#, gcc-internal-format
msgid "ISO C99 does not support %<_Noreturn%>"
msgstr ""
-#: c/c-decl.c:6669
+#: c/c-decl.c:6671
#, gcc-internal-format
msgid "ISO C90 does not support %<_Noreturn%>"
msgstr ""
-#: c/c-decl.c:6698
+#: c/c-decl.c:6700
#, gcc-internal-format
msgid "variable previously declared %<static%> redeclared %<extern%>"
msgstr ""
-#: c/c-decl.c:6708
+#: c/c-decl.c:6710
#, gcc-internal-format
msgid "variable %q+D declared %<inline%>"
msgstr ""
-#: c/c-decl.c:6710
+#: c/c-decl.c:6712
#, gcc-internal-format
msgid "variable %q+D declared %<_Noreturn%>"
msgstr ""
-#: c/c-decl.c:6745
+#: c/c-decl.c:6747
#, gcc-internal-format
msgid "non-nested function with variably modified type"
msgstr ""
-#: c/c-decl.c:6747
+#: c/c-decl.c:6749
#, gcc-internal-format
msgid "object with variably modified type must have no linkage"
msgstr ""
-#: c/c-decl.c:6837 c/c-decl.c:8442
+#: c/c-decl.c:6839 c/c-decl.c:8444
#, gcc-internal-format
msgid "function declaration isn%'t a prototype"
msgstr ""
-#: c/c-decl.c:6846
+#: c/c-decl.c:6848
#, gcc-internal-format
msgid "parameter names (without types) in function declaration"
msgstr ""
-#: c/c-decl.c:6884
+#: c/c-decl.c:6886
#, gcc-internal-format
msgid "parameter %u (%q+D) has incomplete type"
msgstr ""
-#: c/c-decl.c:6888
+#: c/c-decl.c:6890
#, gcc-internal-format, gfc-internal-format
msgid "parameter %u has incomplete type"
msgstr ""
-#: c/c-decl.c:6899
+#: c/c-decl.c:6901
#, gcc-internal-format
msgid "parameter %u (%q+D) has void type"
msgstr ""
-#: c/c-decl.c:6903
+#: c/c-decl.c:6905
#, gcc-internal-format, gfc-internal-format
msgid "parameter %u has void type"
msgstr ""
-#: c/c-decl.c:6986
+#: c/c-decl.c:6988
#, gcc-internal-format
msgid "%<void%> as only parameter may not be qualified"
msgstr ""
-#: c/c-decl.c:6990 c/c-decl.c:7026
+#: c/c-decl.c:6992 c/c-decl.c:7028
#, gcc-internal-format
msgid "%<void%> must be the only parameter"
msgstr ""
-#: c/c-decl.c:7020
+#: c/c-decl.c:7022
#, gcc-internal-format
msgid "parameter %q+D has just a forward declaration"
msgstr ""
-#: c/c-decl.c:7066
+#: c/c-decl.c:7068
#, gcc-internal-format
msgid ""
"%<%s %E%> declared inside parameter list will not be visible outside of this "
"definition or declaration"
msgstr ""
-#: c/c-decl.c:7072
+#: c/c-decl.c:7074
#, gcc-internal-format, gfc-internal-format
msgid ""
"anonymous %s declared inside parameter list will not be visible outside of "
"this definition or declaration"
msgstr ""
-#: c/c-decl.c:7174
+#: c/c-decl.c:7176
#, gcc-internal-format
msgid "enum type defined here"
msgstr ""
-#: c/c-decl.c:7180
+#: c/c-decl.c:7182
#, gcc-internal-format
msgid "struct defined here"
msgstr ""
-#: c/c-decl.c:7186
+#: c/c-decl.c:7188
#, gcc-internal-format
msgid "union defined here"
msgstr ""
-#: c/c-decl.c:7259
+#: c/c-decl.c:7261
#, gcc-internal-format
msgid "redefinition of %<union %E%>"
msgstr ""
-#: c/c-decl.c:7261
+#: c/c-decl.c:7263
#, gcc-internal-format
msgid "redefinition of %<struct %E%>"
msgstr ""
-#: c/c-decl.c:7270
+#: c/c-decl.c:7272
#, gcc-internal-format
msgid "nested redefinition of %<union %E%>"
msgstr ""
-#: c/c-decl.c:7272
+#: c/c-decl.c:7274
#, gcc-internal-format
msgid "nested redefinition of %<struct %E%>"
msgstr ""
-#: c/c-decl.c:7305 c/c-decl.c:8021
+#: c/c-decl.c:7307 c/c-decl.c:8023
#, gcc-internal-format
msgid "defining type in %qs expression is invalid in C++"
msgstr ""
-#: c/c-decl.c:7373 cp/decl.c:4608
+#: c/c-decl.c:7375 cp/decl.c:4616
#, gcc-internal-format
msgid "declaration does not declare anything"
msgstr ""
-#: c/c-decl.c:7378
+#: c/c-decl.c:7380
#, gcc-internal-format
msgid "ISO C99 doesn%'t support unnamed structs/unions"
msgstr ""
-#: c/c-decl.c:7381
+#: c/c-decl.c:7383
#, gcc-internal-format
msgid "ISO C90 doesn%'t support unnamed structs/unions"
msgstr ""
-#: c/c-decl.c:7472 c/c-decl.c:7490 c/c-decl.c:7551
+#: c/c-decl.c:7474 c/c-decl.c:7492 c/c-decl.c:7553
#, gcc-internal-format
msgid "duplicate member %q+D"
msgstr ""
-#: c/c-decl.c:7577
+#: c/c-decl.c:7579
#, gcc-internal-format
msgid "empty struct has size 0 in C, size 1 in C++"
msgstr ""
-#: c/c-decl.c:7580
+#: c/c-decl.c:7582
#, gcc-internal-format
msgid "empty union has size 0 in C, size 1 in C++"
msgstr ""
-#: c/c-decl.c:7666
+#: c/c-decl.c:7668
#, gcc-internal-format
msgid "union has no named members"
msgstr ""
-#: c/c-decl.c:7668
+#: c/c-decl.c:7670
#, gcc-internal-format
msgid "union has no members"
msgstr ""
-#: c/c-decl.c:7673
+#: c/c-decl.c:7675
#, gcc-internal-format
msgid "struct has no named members"
msgstr ""
-#: c/c-decl.c:7675
+#: c/c-decl.c:7677
#, gcc-internal-format
msgid "struct has no members"
msgstr ""
-#: c/c-decl.c:7737 cp/decl.c:11018
+#: c/c-decl.c:7739 cp/decl.c:11032
#, gcc-internal-format
msgid "flexible array member in union"
msgstr ""
-#: c/c-decl.c:7743
+#: c/c-decl.c:7745
#, gcc-internal-format
msgid "flexible array member not at end of struct"
msgstr ""
-#: c/c-decl.c:7749
+#: c/c-decl.c:7751
#, gcc-internal-format
msgid "flexible array member in otherwise empty struct"
msgstr ""
-#: c/c-decl.c:7779
+#: c/c-decl.c:7781
#, gcc-internal-format
msgid "type %qT is too large"
msgstr ""
-#: c/c-decl.c:7902
+#: c/c-decl.c:7904
#, gcc-internal-format
msgid "union cannot be made transparent"
msgstr ""
-#: c/c-decl.c:7993
+#: c/c-decl.c:7995
#, gcc-internal-format
msgid "nested redefinition of %<enum %E%>"
msgstr ""
#. This enum is a named one that has been declared already.
-#: c/c-decl.c:8000
+#: c/c-decl.c:8002
#, gcc-internal-format
msgid "redeclaration of %<enum %E%>"
msgstr ""
-#: c/c-decl.c:8079
+#: c/c-decl.c:8081 cp/decl.c:13403
#, gcc-internal-format
msgid "specified mode too small for enumeral values"
msgstr ""
-#: c/c-decl.c:8094
+#: c/c-decl.c:8096
#, gcc-internal-format
msgid "enumeration values exceed range of largest integer"
msgstr ""
-#: c/c-decl.c:8208 c/c-decl.c:8224
+#: c/c-decl.c:8210 c/c-decl.c:8226
#, gcc-internal-format
msgid "enumerator value for %qE is not an integer constant"
msgstr ""
-#: c/c-decl.c:8219
+#: c/c-decl.c:8221
#, gcc-internal-format
msgid "enumerator value for %qE is not an integer constant expression"
msgstr ""
-#: c/c-decl.c:8243
+#: c/c-decl.c:8245
#, gcc-internal-format
msgid "overflow in enumeration values"
msgstr ""
-#: c/c-decl.c:8251
+#: c/c-decl.c:8253
#, gcc-internal-format
msgid "ISO C restricts enumerator values to range of %<int%>"
msgstr ""
-#: c/c-decl.c:8337 cp/decl.c:4910 cp/decl.c:13873
+#: c/c-decl.c:8339 cp/decl.c:4918 cp/decl.c:13899
#, gcc-internal-format
msgid "inline function %qD given attribute noinline"
msgstr ""
-#: c/c-decl.c:8355
+#: c/c-decl.c:8357
#, gcc-internal-format
msgid "return type is an incomplete type"
msgstr ""
-#: c/c-decl.c:8366
+#: c/c-decl.c:8368
#, gcc-internal-format
msgid "return type defaults to %<int%>"
msgstr ""
-#: c/c-decl.c:8392
+#: c/c-decl.c:8394
#, gcc-internal-format
msgid "%q+D defined as variadic function without prototype"
msgstr ""
-#: c/c-decl.c:8451
+#: c/c-decl.c:8453
#, gcc-internal-format
msgid "no previous prototype for %qD"
msgstr ""
-#: c/c-decl.c:8460
+#: c/c-decl.c:8462
#, gcc-internal-format
msgid "%qD was used with no prototype before its definition"
msgstr ""
-#: c/c-decl.c:8468 cp/decl.c:14016
+#: c/c-decl.c:8470 cp/decl.c:14042
#, gcc-internal-format
msgid "no previous declaration for %qD"
msgstr ""
-#: c/c-decl.c:8478
+#: c/c-decl.c:8480
#, gcc-internal-format
msgid "%qD was used with no declaration before its definition"
msgstr ""
-#: c/c-decl.c:8497
+#: c/c-decl.c:8499
#, gcc-internal-format
msgid "return type of %qD is not %<int%>"
msgstr ""
-#: c/c-decl.c:8499
+#: c/c-decl.c:8501
#, gcc-internal-format
msgid "%<_Atomic%>-qualified return type of %qD"
msgstr ""
-#: c/c-decl.c:8506
+#: c/c-decl.c:8508
#, gcc-internal-format
msgid "%qD is normally a non-static function"
msgstr ""
-#: c/c-decl.c:8543
+#: c/c-decl.c:8545
#, gcc-internal-format
msgid "old-style parameter declarations in prototyped function definition"
msgstr ""
-#: c/c-decl.c:8558
+#: c/c-decl.c:8560
#, gcc-internal-format
msgid "traditional C rejects ISO C style function definitions"
msgstr ""
-#: c/c-decl.c:8574
+#: c/c-decl.c:8576
#, gcc-internal-format
msgid "parameter name omitted"
msgstr ""
-#: c/c-decl.c:8611
+#: c/c-decl.c:8613
#, gcc-internal-format
msgid "old-style function definition"
msgstr ""
-#: c/c-decl.c:8620
+#: c/c-decl.c:8622
#, gcc-internal-format
msgid "parameter name missing from parameter list"
msgstr ""
-#: c/c-decl.c:8635
+#: c/c-decl.c:8637
#, gcc-internal-format
msgid "%qD declared as a non-parameter"
msgstr ""
-#: c/c-decl.c:8641
+#: c/c-decl.c:8643
#, gcc-internal-format
msgid "multiple parameters named %qD"
msgstr ""
-#: c/c-decl.c:8650
+#: c/c-decl.c:8652
#, gcc-internal-format
msgid "parameter %qD declared with void type"
msgstr ""
-#: c/c-decl.c:8679 c/c-decl.c:8684
+#: c/c-decl.c:8681 c/c-decl.c:8686
#, gcc-internal-format
msgid "type of %qD defaults to %<int%>"
msgstr ""
-#: c/c-decl.c:8704
+#: c/c-decl.c:8706
#, gcc-internal-format
msgid "parameter %qD has incomplete type"
msgstr ""
-#: c/c-decl.c:8711
+#: c/c-decl.c:8713
#, gcc-internal-format
msgid "declaration for parameter %qD but no such parameter"
msgstr ""
-#: c/c-decl.c:8761
+#: c/c-decl.c:8763
#, gcc-internal-format
msgid "number of arguments doesn%'t match built-in prototype"
msgstr ""
-#: c/c-decl.c:8772
+#: c/c-decl.c:8774
#, gcc-internal-format
msgid "number of arguments doesn%'t match prototype"
msgstr ""
-#: c/c-decl.c:8775 c/c-decl.c:8822 c/c-decl.c:8836
+#: c/c-decl.c:8777 c/c-decl.c:8824 c/c-decl.c:8838
#, gcc-internal-format
msgid "prototype declaration"
msgstr ""
-#: c/c-decl.c:8814
+#: c/c-decl.c:8816
#, gcc-internal-format
msgid "promoted argument %qD doesn%'t match built-in prototype"
msgstr ""
-#: c/c-decl.c:8819
+#: c/c-decl.c:8821
#, gcc-internal-format
msgid "promoted argument %qD doesn%'t match prototype"
msgstr ""
-#: c/c-decl.c:8829
+#: c/c-decl.c:8831
#, gcc-internal-format
msgid "argument %qD doesn%'t match built-in prototype"
msgstr ""
-#: c/c-decl.c:8834
+#: c/c-decl.c:8836
#, gcc-internal-format
msgid "argument %qD doesn%'t match prototype"
msgstr ""
-#: c/c-decl.c:9091 cp/decl.c:14770
+#: c/c-decl.c:9093 cp/decl.c:14796
#, gcc-internal-format
msgid "no return statement in function returning non-void"
msgstr ""
-#: c/c-decl.c:9111 cp/decl.c:14802
+#: c/c-decl.c:9113 cp/decl.c:14828
#, gcc-internal-format
msgid "parameter %qD set but not used"
msgstr ""
#. If we get here, declarations have been used in a for loop without
#. the C99 for loop scope. This doesn't make much sense, so don't
#. allow it.
-#: c/c-decl.c:9205
+#: c/c-decl.c:9207
#, gcc-internal-format
msgid "%<for%> loop initial declarations are only allowed in C99 or C11 mode"
msgstr ""
-#: c/c-decl.c:9210
+#: c/c-decl.c:9212
#, gcc-internal-format
msgid ""
"use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code"
msgstr ""
-#: c/c-decl.c:9245
+#: c/c-decl.c:9247
#, gcc-internal-format
msgid "declaration of static variable %qD in %<for%> loop initial declaration"
msgstr ""
-#: c/c-decl.c:9249
+#: c/c-decl.c:9251
#, gcc-internal-format
msgid ""
"declaration of %<extern%> variable %qD in %<for%> loop initial declaration"
msgstr ""
-#: c/c-decl.c:9256
+#: c/c-decl.c:9258
#, gcc-internal-format
msgid "%<struct %E%> declared in %<for%> loop initial declaration"
msgstr ""
-#: c/c-decl.c:9261
+#: c/c-decl.c:9263
#, gcc-internal-format
msgid "%<union %E%> declared in %<for%> loop initial declaration"
msgstr ""
-#: c/c-decl.c:9265
+#: c/c-decl.c:9267
#, gcc-internal-format
msgid "%<enum %E%> declared in %<for%> loop initial declaration"
msgstr ""
-#: c/c-decl.c:9269
+#: c/c-decl.c:9271
#, gcc-internal-format
msgid "declaration of non-variable %qD in %<for%> loop initial declaration"
msgstr ""
-#: c/c-decl.c:9517
+#: c/c-decl.c:9519
#, gcc-internal-format
msgid "incompatible address space qualifiers %qs and %qs"
msgstr ""
-#: c/c-decl.c:9567 c/c-decl.c:9924 c/c-decl.c:10414
+#: c/c-decl.c:9569 c/c-decl.c:9926 c/c-decl.c:10416
#, gcc-internal-format
msgid "duplicate %qE"
msgstr ""
-#: c/c-decl.c:9593 c/c-decl.c:9936 c/c-decl.c:10257
+#: c/c-decl.c:9595 c/c-decl.c:9938 c/c-decl.c:10259
#, gcc-internal-format
msgid "two or more data types in declaration specifiers"
msgstr ""
-#: c/c-decl.c:9605 cp/parser.c:26733
+#: c/c-decl.c:9607 cp/parser.c:26808
#, gcc-internal-format
msgid "%<long long long%> is too long for GCC"
msgstr ""
-#: c/c-decl.c:9618
+#: c/c-decl.c:9620
#, gcc-internal-format
msgid "ISO C90 does not support %<long long%>"
msgstr ""
-#: c/c-decl.c:9815 c/c-parser.c:7943
+#: c/c-decl.c:9817 c/c-parser.c:7943
#, gcc-internal-format
msgid "ISO C90 does not support complex types"
msgstr ""
-#: c/c-decl.c:9861
+#: c/c-decl.c:9863
#, gcc-internal-format
msgid "ISO C does not support saturating types"
msgstr ""
-#: c/c-decl.c:9979
+#: c/c-decl.c:9981
#, gcc-internal-format
msgid "ISO C does not support %<__int%d%> types"
msgstr ""
-#: c/c-decl.c:9999
+#: c/c-decl.c:10001
#, gcc-internal-format
msgid "%<__int%d%> is not supported on this target"
msgstr ""
-#: c/c-decl.c:10041
+#: c/c-decl.c:10043
#, gcc-internal-format
msgid "ISO C90 does not support boolean types"
msgstr ""
-#: c/c-decl.c:10215
+#: c/c-decl.c:10217
#, gcc-internal-format
msgid "ISO C does not support decimal floating point"
msgstr ""
-#: c/c-decl.c:10238 c/c-decl.c:10504 c/c-parser.c:7446
+#: c/c-decl.c:10240 c/c-decl.c:10506 c/c-parser.c:7446
#, gcc-internal-format
msgid "fixed-point types not supported for this target"
msgstr ""
-#: c/c-decl.c:10240
+#: c/c-decl.c:10242
#, gcc-internal-format
msgid "ISO C does not support fixed-point types"
msgstr ""
-#: c/c-decl.c:10275
+#: c/c-decl.c:10277
#, gcc-internal-format
msgid "C++ lookup of %qD would return a field, not a type"
msgstr ""
-#: c/c-decl.c:10288
+#: c/c-decl.c:10290
#, gcc-internal-format
msgid "%qE fails to be a typedef or built in type"
msgstr ""
-#: c/c-decl.c:10336
+#: c/c-decl.c:10338
#, gcc-internal-format
msgid "%qE is not at beginning of declaration"
msgstr ""
-#: c/c-decl.c:10357
+#: c/c-decl.c:10359
#, gcc-internal-format
msgid "%qE used with %<auto%>"
msgstr ""
-#: c/c-decl.c:10359
+#: c/c-decl.c:10361
#, gcc-internal-format
msgid "%qE used with %<register%>"
msgstr ""
-#: c/c-decl.c:10361
+#: c/c-decl.c:10363
#, gcc-internal-format
msgid "%qE used with %<typedef%>"
msgstr ""
-#: c/c-decl.c:10375 c/c-parser.c:7023
+#: c/c-decl.c:10377 c/c-parser.c:7023
#, gcc-internal-format
msgid "ISO C99 does not support %qE"
msgstr ""
-#: c/c-decl.c:10378 c/c-parser.c:7026
+#: c/c-decl.c:10380 c/c-parser.c:7026
#, gcc-internal-format
msgid "ISO C90 does not support %qE"
msgstr ""
-#: c/c-decl.c:10390
+#: c/c-decl.c:10392
#, gcc-internal-format
msgid "%<__thread%> before %<extern%>"
msgstr ""
-#: c/c-decl.c:10399
+#: c/c-decl.c:10401
#, gcc-internal-format
msgid "%<__thread%> before %<static%>"
msgstr ""
-#: c/c-decl.c:10412
+#: c/c-decl.c:10414
#, gcc-internal-format
msgid "duplicate %<_Thread_local%> or %<__thread%>"
msgstr ""
-#: c/c-decl.c:10420
+#: c/c-decl.c:10422
#, gcc-internal-format
msgid "multiple storage classes in declaration specifiers"
msgstr ""
-#: c/c-decl.c:10428
+#: c/c-decl.c:10430
#, gcc-internal-format
msgid "%qs used with %qE"
msgstr ""
-#: c/c-decl.c:10501
+#: c/c-decl.c:10503
#, gcc-internal-format
msgid "%<_Sat%> is used without %<_Fract%> or %<_Accum%>"
msgstr ""
-#: c/c-decl.c:10516
+#: c/c-decl.c:10518
#, gcc-internal-format
msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
msgstr ""
-#: c/c-decl.c:10567 c/c-decl.c:10580 c/c-decl.c:10606
+#: c/c-decl.c:10569 c/c-decl.c:10582 c/c-decl.c:10608
#, gcc-internal-format
msgid "ISO C does not support complex integer types"
msgstr ""
-#: c/c-decl.c:11004 cp/semantics.c:5300
+#: c/c-decl.c:11006 cp/semantics.c:5297
#, gcc-internal-format
msgid ""
"%<#pragma omp declare reduction%> combiner refers to variable %qD which is "
"not %<omp_out%> nor %<omp_in%>"
msgstr ""
-#: c/c-decl.c:11008 cp/semantics.c:5304
+#: c/c-decl.c:11010 cp/semantics.c:5301
#, gcc-internal-format
msgid ""
"%<#pragma omp declare reduction%> initializer refers to variable %qD which "
"is not %<omp_priv%> nor %<omp_orig%>"
msgstr ""
-#: c/c-fold.c:319 c/c-typeck.c:10981 cp/typeck.c:4465
+#: c/c-fold.c:319 c/c-typeck.c:10988 cp/typeck.c:4465
#, gcc-internal-format
msgid "left shift of negative value"
msgstr ""
-#: c/c-fold.c:331 c/c-typeck.c:10990 cp/typeck.c:4473
+#: c/c-fold.c:331 c/c-typeck.c:10997 cp/typeck.c:4473
#, gcc-internal-format
msgid "left shift count is negative"
msgstr ""
-#: c/c-fold.c:332 c/c-typeck.c:10929 cp/typeck.c:4419
+#: c/c-fold.c:332 c/c-typeck.c:10936 cp/typeck.c:4419
#, gcc-internal-format
msgid "right shift count is negative"
msgstr ""
-#: c/c-fold.c:338 c/c-typeck.c:10997 cp/typeck.c:4481
+#: c/c-fold.c:338 c/c-typeck.c:11004 cp/typeck.c:4481
#, gcc-internal-format
msgid "left shift count >= width of type"
msgstr ""
-#: c/c-fold.c:339 c/c-typeck.c:10941 cp/typeck.c:4427
+#: c/c-fold.c:339 c/c-typeck.c:10948 cp/typeck.c:4427
#, gcc-internal-format
msgid "right shift count >= width of type"
msgstr ""
msgid "version control conflict marker in file"
msgstr ""
-#: c/c-parser.c:1086 cp/parser.c:26940
+#: c/c-parser.c:1086 cp/parser.c:27015
#, gcc-internal-format
msgid "expected end of line"
msgstr ""
msgid "use %<enum%> keyword to refer to the type"
msgstr ""
-#: c/c-parser.c:1686 c/c-parser.c:10203 c/c-parser.c:15197 c/c-parser.c:16092
-#: cp/parser.c:33989 cp/parser.c:34887 cp/parser.c:37412
+#: c/c-parser.c:1686 c/c-parser.c:10203 c/c-parser.c:15182 c/c-parser.c:16077
+#: cp/parser.c:34050 cp/parser.c:34949 cp/parser.c:37474
#, gcc-internal-format
msgid "expected declaration specifiers"
msgstr ""
msgid "expected %<;%>, identifier or %<(%>"
msgstr ""
-#: c/c-parser.c:1735 cp/parser.c:28588 cp/parser.c:28662
+#: c/c-parser.c:1735 cp/parser.c:28663 cp/parser.c:28737
#, gcc-internal-format
msgid "prefix attributes are ignored for methods"
msgstr ""
msgid "%<__auto_type%> may only be used with a single declarator"
msgstr ""
-#: c/c-parser.c:2036 cp/parser.c:12447
+#: c/c-parser.c:2036 cp/parser.c:12465
#, gcc-internal-format
msgid "expected %<,%> or %<;%>"
msgstr ""
msgid "ISO C90 does not support %<_Static_assert%>"
msgstr ""
-#: c/c-parser.c:2209 c/c-parser.c:3877 c/c-parser.c:10261 cp/parser.c:37117
+#: c/c-parser.c:2209 c/c-parser.c:3877 c/c-parser.c:10261 cp/parser.c:37179
#, gcc-internal-format
msgid "expected string literal"
msgstr ""
#: c/c-parser.c:8877 c/c-parser.c:8885 c/c-parser.c:8914 c/c-parser.c:8927
#: c/c-parser.c:9232 c/c-parser.c:9356 c/c-parser.c:9796 c/c-parser.c:9831
#: c/c-parser.c:9884 c/c-parser.c:9937 c/c-parser.c:9953 c/c-parser.c:9999
-#: c/c-parser.c:10575 c/c-parser.c:10614 c/c-parser.c:12563 c/c-parser.c:12797
-#: c/c-parser.c:14596 c/c-parser.c:17371 c/c-parser.c:17700 cp/parser.c:26943
-#: cp/parser.c:29431 cp/parser.c:29461 cp/parser.c:29531 cp/parser.c:31642
-#: cp/parser.c:36831 cp/parser.c:37556
+#: c/c-parser.c:10575 c/c-parser.c:10616 c/c-parser.c:12546 c/c-parser.c:12780
+#: c/c-parser.c:14579 c/c-parser.c:17356 c/c-parser.c:17685 cp/parser.c:27018
+#: cp/parser.c:29506 cp/parser.c:29536 cp/parser.c:29606 cp/parser.c:31701
+#: cp/parser.c:36893 cp/parser.c:37618
#, gcc-internal-format
msgid "expected identifier"
msgstr ""
-#: c/c-parser.c:2745 cp/parser.c:17358
+#: c/c-parser.c:2745 cp/parser.c:17380
#, gcc-internal-format
msgid "comma at end of enumerator list"
msgstr ""
msgid "expected %<}%> before %<else%>"
msgstr ""
-#: c/c-parser.c:4847 cp/parser.c:10801
+#: c/c-parser.c:4847 cp/parser.c:10803
#, gcc-internal-format
msgid "%<else%> without a previous %<if%>"
msgstr ""
"a label can only be part of a statement and a declaration is not a statement"
msgstr ""
-#: c/c-parser.c:5156 cp/parser.c:10402
+#: c/c-parser.c:5156 cp/parser.c:10404
#, gcc-internal-format
msgid "-fcilkplus must be enabled to use %<_Cilk_for%>"
msgstr ""
-#: c/c-parser.c:5166 cp/parser.c:10428
+#: c/c-parser.c:5166 cp/parser.c:10430
#, gcc-internal-format
msgid "-fcilkplus must be enabled to use %<_Cilk_sync%>"
msgstr ""
#. c_parser_skip_until_found stops at a closing nesting
#. delimiter without consuming it, but here we need to consume
#. it to proceed further.
-#: c/c-parser.c:5276 cp/parser.c:10506
+#: c/c-parser.c:5276 cp/parser.c:10508
#, gcc-internal-format
msgid "expected statement"
msgstr ""
-#: c/c-parser.c:5380 cp/parser.c:11907
+#: c/c-parser.c:5380 cp/parser.c:11918
#, gcc-internal-format
msgid "suggest braces around empty body in an %<if%> statement"
msgstr ""
-#: c/c-parser.c:5414 cp/parser.c:11910
+#: c/c-parser.c:5414 cp/parser.c:11921
#, gcc-internal-format
msgid "suggest braces around empty body in an %<else%> statement"
msgstr ""
msgid "if statement cannot contain %<Cilk_spawn%>"
msgstr ""
-#: c/c-parser.c:5509 cp/parser.c:10955
+#: c/c-parser.c:5509 cp/parser.c:10957
#, gcc-internal-format
msgid "suggest explicit braces to avoid ambiguous %<else%>"
msgstr ""
msgid "invalid iterating variable in fast enumeration"
msgstr ""
-#: c/c-parser.c:5852 cp/parser.c:11156
+#: c/c-parser.c:5852 cp/parser.c:11158
#, gcc-internal-format
msgid "missing loop condition in loop with %<GCC ivdep%> pragma"
msgstr ""
msgid "no type or storage class may be specified here,"
msgstr ""
-#: c/c-parser.c:9800 c/c-parser.c:9857 cp/parser.c:29491
+#: c/c-parser.c:9800 c/c-parser.c:9857 cp/parser.c:29566
#, gcc-internal-format
msgid "unknown property attribute"
msgstr ""
-#: c/c-parser.c:9821 cp/parser.c:29451
+#: c/c-parser.c:9821 cp/parser.c:29526
#, gcc-internal-format
msgid "missing %<=%> (after %<getter%> attribute)"
msgstr ""
-#: c/c-parser.c:9824 cp/parser.c:29454
+#: c/c-parser.c:9824 cp/parser.c:29529
#, gcc-internal-format
msgid "missing %<=%> (after %<setter%> attribute)"
msgstr ""
-#: c/c-parser.c:9838 cp/parser.c:29469
+#: c/c-parser.c:9838 cp/parser.c:29544
#, gcc-internal-format
msgid "the %<setter%> attribute may only be specified once"
msgstr ""
-#: c/c-parser.c:9843 cp/parser.c:29475
+#: c/c-parser.c:9843 cp/parser.c:29550
#, gcc-internal-format
msgid "setter name must terminate with %<:%>"
msgstr ""
-#: c/c-parser.c:9850 cp/parser.c:29483
+#: c/c-parser.c:9850 cp/parser.c:29558
#, gcc-internal-format
msgid "the %<getter%> attribute may only be specified once"
msgstr ""
msgid "%<#pragma acc update%> may only be used in compound statements"
msgstr ""
-#: c/c-parser.c:10063 cp/parser.c:37195
+#: c/c-parser.c:10063 cp/parser.c:37257
#, gcc-internal-format
msgid "%<#pragma omp barrier%> may only be used in compound statements"
msgstr ""
-#: c/c-parser.c:10074 cp/parser.c:37210
+#: c/c-parser.c:10074 cp/parser.c:37272
#, gcc-internal-format
msgid "%<#pragma omp flush%> may only be used in compound statements"
msgstr ""
-#: c/c-parser.c:10085 cp/parser.c:37226
+#: c/c-parser.c:10085 cp/parser.c:37288
#, gcc-internal-format
msgid "%<#pragma omp taskwait%> may only be used in compound statements"
msgstr ""
-#: c/c-parser.c:10096 cp/parser.c:37242
+#: c/c-parser.c:10096 cp/parser.c:37304
#, gcc-internal-format
msgid "%<#pragma omp taskyield%> may only be used in compound statements"
msgstr ""
-#: c/c-parser.c:10107 cp/parser.c:37258
+#: c/c-parser.c:10107 cp/parser.c:37320
#, gcc-internal-format
msgid "%<#pragma omp cancel%> may only be used in compound statements"
msgstr ""
-#: c/c-parser.c:10118 cp/parser.c:37274
+#: c/c-parser.c:10118 cp/parser.c:37336
#, gcc-internal-format
msgid ""
"%<#pragma omp cancellation point%> may only be used in compound statements"
msgstr ""
-#: c/c-parser.c:10138 cp/parser.c:37347
+#: c/c-parser.c:10138 cp/parser.c:37409
#, gcc-internal-format
msgid ""
"%<#pragma omp section%> may only be used in %<#pragma omp sections%> "
"construct"
msgstr ""
-#: c/c-parser.c:10157 cp/parser.c:37366
+#: c/c-parser.c:10157 cp/parser.c:37428
#, gcc-internal-format
msgid "for, while or do statement expected"
msgstr ""
-#: c/c-parser.c:10169 cp/parser.c:37185
+#: c/c-parser.c:10169 cp/parser.c:37247
#, gcc-internal-format
msgid "%<#pragma GCC pch_preprocess%> must be first"
msgstr ""
msgid "%<#pragma grainsize%> must be inside a function"
msgstr ""
-#: c/c-parser.c:10501 cp/parser.c:29881
+#: c/c-parser.c:10501 cp/parser.c:29956
#, gcc-internal-format
msgid "too many %qs clauses"
msgstr ""
-#: c/c-parser.c:10522 cp/parser.c:30426
+#: c/c-parser.c:10522 cp/parser.c:30485
#, gcc-internal-format
msgid "expected integer expression before ')'"
msgstr ""
msgid "expression must be integral"
msgstr ""
-#: c/c-parser.c:10666 c/c-parser.c:10674 cp/parser.c:30009 cp/parser.c:30017
-#, gcc-internal-format
-msgid "%qD is not a constant"
-msgstr ""
-
-#: c/c-parser.c:10826 c/c-parser.c:17232
+#: c/c-parser.c:10809 c/c-parser.c:17217
#, gcc-internal-format
msgid "%qD is not a variable"
msgstr ""
-#: c/c-parser.c:10830 cp/semantics.c:6715
+#: c/c-parser.c:10813 cp/semantics.c:6719
#, gcc-internal-format
msgid "%qD is not a pointer variable"
msgstr ""
-#: c/c-parser.c:10870 cp/parser.c:30504
+#: c/c-parser.c:10853 cp/parser.c:30563
#, gcc-internal-format
msgid "collapse argument needs positive constant integer expression"
msgstr ""
-#: c/c-parser.c:10940 cp/parser.c:30560
+#: c/c-parser.c:10923 cp/parser.c:30619
#, gcc-internal-format
msgid "expected %<none%>"
msgstr ""
-#: c/c-parser.c:10942 cp/parser.c:30562
+#: c/c-parser.c:10925 cp/parser.c:30621
#, gcc-internal-format
msgid "expected %<none%> or %<shared%>"
msgstr ""
-#: c/c-parser.c:11042 cp/parser.c:30662
+#: c/c-parser.c:11025 cp/parser.c:30721
#, gcc-internal-format
msgid "expected %<data%>, %<update%>, %<enter%> or %<exit%>"
msgstr ""
-#: c/c-parser.c:11062 c/c-parser.c:15921 c/c-parser.c:16006 cp/parser.c:30680
-#: cp/parser.c:34671 cp/parser.c:34759
+#: c/c-parser.c:11045 c/c-parser.c:15906 c/c-parser.c:15991 cp/parser.c:30739
+#: cp/parser.c:34733 cp/parser.c:34821
#, gcc-internal-format
msgid "expected %<data%>"
msgstr ""
-#: c/c-parser.c:11109 cp/parser.c:30733
+#: c/c-parser.c:11092 cp/parser.c:30792
#, gcc-internal-format
msgid "too many %<if%> clauses with %qs modifier"
msgstr ""
-#: c/c-parser.c:11116 cp/parser.c:30740
+#: c/c-parser.c:11099 cp/parser.c:30799
#, gcc-internal-format
msgid "too many %<if%> clauses"
msgstr ""
-#: c/c-parser.c:11118 cp/parser.c:30742
+#: c/c-parser.c:11101 cp/parser.c:30801
#, gcc-internal-format
msgid "too many %<if%> clauses without modifier"
msgstr ""
-#: c/c-parser.c:11124 cp/parser.c:30748
+#: c/c-parser.c:11107 cp/parser.c:30807
#, gcc-internal-format
msgid ""
"if any %<if%> clause has modifier, then all %<if%> clauses have to use "
"modifier"
msgstr ""
-#: c/c-parser.c:11198 c/c-parser.c:11242 c/c-parser.c:11286 c/c-parser.c:11330
-#: c/c-parser.c:11374 c/c-parser.c:11418 c/c-parser.c:11522 c/c-parser.c:11648
-#: c/c-parser.c:11729 c/c-parser.c:12127 c/c-parser.c:12194 c/c-parser.c:12297
-#: c/c-parser.c:12340 c/c-parser.c:12849
+#: c/c-parser.c:11181 c/c-parser.c:11225 c/c-parser.c:11269 c/c-parser.c:11313
+#: c/c-parser.c:11357 c/c-parser.c:11401 c/c-parser.c:11505 c/c-parser.c:11631
+#: c/c-parser.c:11712 c/c-parser.c:12110 c/c-parser.c:12177 c/c-parser.c:12280
+#: c/c-parser.c:12323 c/c-parser.c:12832
#, gcc-internal-format
msgid "expected integer expression"
msgstr ""
-#: c/c-parser.c:11209
+#: c/c-parser.c:11192
#, gcc-internal-format
msgid "%<num_gangs%> value must be positive"
msgstr ""
-#: c/c-parser.c:11253
+#: c/c-parser.c:11236
#, gcc-internal-format
msgid "%<num_threads%> value must be positive"
msgstr ""
-#: c/c-parser.c:11297
+#: c/c-parser.c:11280
#, gcc-internal-format
msgid "%<num_tasks%> value must be positive"
msgstr ""
-#: c/c-parser.c:11341 cp/semantics.c:6891
+#: c/c-parser.c:11324 cp/semantics.c:6895
#, gcc-internal-format
msgid "%<grainsize%> value must be positive"
msgstr ""
-#: c/c-parser.c:11386 cp/semantics.c:6920
+#: c/c-parser.c:11369 cp/semantics.c:6924
#, gcc-internal-format
msgid "%<priority%> value must be non-negative"
msgstr ""
-#: c/c-parser.c:11447 c/c-parser.c:11453 cp/parser.c:30959 cp/parser.c:30966
+#: c/c-parser.c:11430 c/c-parser.c:11436 cp/parser.c:31018 cp/parser.c:31025
#, gcc-internal-format
msgid "expected %<tofrom%>"
msgstr ""
-#: c/c-parser.c:11461 c/c-parser.c:11467 cp/parser.c:30975 cp/parser.c:30982
+#: c/c-parser.c:11444 c/c-parser.c:11450 cp/parser.c:31034 cp/parser.c:31041
#, gcc-internal-format
msgid "expected %<scalar%>"
msgstr ""
-#: c/c-parser.c:11533
+#: c/c-parser.c:11516
#, gcc-internal-format
msgid "%<num_workers%> value must be positive"
msgstr ""
-#: c/c-parser.c:11597 cp/parser.c:30288
+#: c/c-parser.c:11580 cp/parser.c:30347
#, gcc-internal-format
msgid "too many %<static%> arguments"
msgstr ""
-#: c/c-parser.c:11631 cp/parser.c:30321
+#: c/c-parser.c:11614 cp/parser.c:30380
#, gcc-internal-format
msgid "unexpected argument"
msgstr ""
-#: c/c-parser.c:11657
+#: c/c-parser.c:11640
#, gcc-internal-format
msgid "%<%s%> value must be positive"
msgstr ""
-#: c/c-parser.c:11786 cp/semantics.c:7004
+#: c/c-parser.c:11769 cp/semantics.c:7008
#, gcc-internal-format
msgid "%<tile%> value must be integral"
msgstr ""
-#: c/c-parser.c:11799 cp/semantics.c:7018
+#: c/c-parser.c:11782 cp/semantics.c:7022
#, gcc-internal-format
msgid "%<tile%> value must be positive"
msgstr ""
-#: c/c-parser.c:11865 cp/parser.c:31039
+#: c/c-parser.c:11848 cp/parser.c:31098
#, gcc-internal-format
msgid "ordered argument needs positive constant integer expression"
msgstr ""
-#: c/c-parser.c:11956
+#: c/c-parser.c:11939
#, gcc-internal-format
msgid ""
"expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%>, %<min%> "
"or %<max%>"
msgstr ""
-#: c/c-parser.c:12065 cp/parser.c:31252
+#: c/c-parser.c:12048 cp/parser.c:31311
#, gcc-internal-format
msgid "both %<monotonic%> and %<nonmonotonic%> modifiers specified"
msgstr ""
-#: c/c-parser.c:12118 cp/parser.c:31268
+#: c/c-parser.c:12101 cp/parser.c:31327
#, gcc-internal-format
msgid "schedule %<runtime%> does not take a %<chunk_size%> parameter"
msgstr ""
-#: c/c-parser.c:12122 cp/parser.c:31271
+#: c/c-parser.c:12105 cp/parser.c:31330
#, gcc-internal-format
msgid "schedule %<auto%> does not take a %<chunk_size%> parameter"
msgstr ""
-#: c/c-parser.c:12144 cp/parser.c:31291
+#: c/c-parser.c:12127 cp/parser.c:31350
#, gcc-internal-format
msgid "invalid schedule kind"
msgstr ""
-#: c/c-parser.c:12205
+#: c/c-parser.c:12188
#, gcc-internal-format
msgid "%<vector_length%> value must be positive"
msgstr ""
-#: c/c-parser.c:12307
+#: c/c-parser.c:12290
#, gcc-internal-format
msgid "%<num_teams%> value must be positive"
msgstr ""
-#: c/c-parser.c:12350 cp/semantics.c:6395
+#: c/c-parser.c:12333 cp/semantics.c:6393
#, gcc-internal-format
msgid "%<thread_limit%> value must be positive"
msgstr ""
-#: c/c-parser.c:12392 cp/semantics.c:6505
+#: c/c-parser.c:12375 cp/semantics.c:6503
#, gcc-internal-format
msgid ""
"%<aligned%> clause alignment expression must be positive constant integer "
"expression"
msgstr ""
-#: c/c-parser.c:12453 cp/parser.c:31549
+#: c/c-parser.c:12436 cp/parser.c:31608
#, gcc-internal-format
msgid "using parameters for %<linear%> step is not supported yet"
msgstr ""
-#: c/c-parser.c:12458
+#: c/c-parser.c:12441
#, gcc-internal-format
msgid "%<linear%> clause step expression must be integral"
msgstr ""
-#: c/c-parser.c:12496
+#: c/c-parser.c:12479
#, gcc-internal-format
msgid ""
"%<safelen%> clause expression must be positive constant integer expression"
msgstr ""
-#: c/c-parser.c:12532
+#: c/c-parser.c:12515
#, gcc-internal-format
msgid ""
"%<simdlen%> clause expression must be positive constant integer expression"
msgstr ""
-#: c/c-parser.c:12701 cp/parser.c:31785 cp/parser.c:32008
+#: c/c-parser.c:12684 cp/parser.c:31844 cp/parser.c:32067
#, gcc-internal-format
msgid "invalid depend kind"
msgstr ""
-#: c/c-parser.c:12785 cp/parser.c:31858
+#: c/c-parser.c:12768 cp/parser.c:31917
#, gcc-internal-format
msgid "invalid map kind"
msgstr ""
-#: c/c-parser.c:12879 cp/parser.c:31955
+#: c/c-parser.c:12862 cp/parser.c:32014
#, gcc-internal-format
msgid "invalid dist_schedule kind"
msgstr ""
-#: c/c-parser.c:12948
+#: c/c-parser.c:12931
#, gcc-internal-format
msgid "invalid proc_bind kind"
msgstr ""
-#: c/c-parser.c:13161 cp/parser.c:32233
+#: c/c-parser.c:13144 cp/parser.c:32292
#, gcc-internal-format
msgid "expected %<#pragma acc%> clause"
msgstr ""
-#: c/c-parser.c:13172 c/c-parser.c:13455 cp/parser.c:32244 cp/parser.c:32560
+#: c/c-parser.c:13155 c/c-parser.c:13438 cp/parser.c:32303 cp/parser.c:32619
#, gcc-internal-format
msgid "%qs is not valid for %qs"
msgstr ""
-#: c/c-parser.c:13318 cp/parser.c:32420
+#: c/c-parser.c:13301 cp/parser.c:32479
#, gcc-internal-format
msgid "%qs must be the first clause of %qs"
msgstr ""
-#: c/c-parser.c:13444 cp/parser.c:32549
+#: c/c-parser.c:13427 cp/parser.c:32608
#, gcc-internal-format
msgid "expected %<#pragma omp%> clause"
msgstr ""
-#: c/c-parser.c:13582 cp/parser.c:35185
+#: c/c-parser.c:13565 cp/parser.c:35247
#, gcc-internal-format
msgid "no valid clauses specified in %<#pragma acc declare%>"
msgstr ""
-#: c/c-parser.c:13592 cp/parser.c:35195
+#: c/c-parser.c:13575 cp/parser.c:35257
#, gcc-internal-format
msgid "array section in %<#pragma acc declare%>"
msgstr ""
-#: c/c-parser.c:13616 cp/parser.c:35219
+#: c/c-parser.c:13599 cp/parser.c:35281
#, gcc-internal-format
msgid "%qD must be a global variable in%<#pragma acc declare link%>"
msgstr ""
-#: c/c-parser.c:13627 cp/parser.c:35230
+#: c/c-parser.c:13610 cp/parser.c:35292
#, gcc-internal-format
msgid "invalid OpenACC clause at file scope"
msgstr ""
-#: c/c-parser.c:13634 cp/parser.c:35237
+#: c/c-parser.c:13617 cp/parser.c:35299
#, gcc-internal-format
msgid "invalid use of %<extern%> variable %qD in %<#pragma acc declare%>"
msgstr ""
-#: c/c-parser.c:13642 cp/parser.c:35245
+#: c/c-parser.c:13625 cp/parser.c:35307
#, gcc-internal-format
msgid "invalid use of %<global%> variable %qD in %<#pragma acc declare%>"
msgstr ""
-#: c/c-parser.c:13654 cp/parser.c:35257
+#: c/c-parser.c:13637 cp/parser.c:35319
#, gcc-internal-format
msgid "variable %qD used more than once with %<#pragma acc declare%>"
msgstr ""
-#: c/c-parser.c:13740 cp/parser.c:35340
+#: c/c-parser.c:13723 cp/parser.c:35402
#, gcc-internal-format
msgid "expected %<data%> in %<#pragma acc enter data%>"
msgstr ""
-#: c/c-parser.c:13749 cp/parser.c:35350
+#: c/c-parser.c:13732 cp/parser.c:35412
#, gcc-internal-format
msgid "invalid pragma"
msgstr ""
-#: c/c-parser.c:13766 cp/parser.c:35367
+#: c/c-parser.c:13749 cp/parser.c:35429
#, gcc-internal-format
msgid "%<#pragma acc enter data%> has no data movement clause"
msgstr ""
-#: c/c-parser.c:13970 cp/parser.c:36451
+#: c/c-parser.c:13953 cp/parser.c:36513
#, gcc-internal-format
msgid "%<#pragma acc routine%> not at file scope"
msgstr ""
-#: c/c-parser.c:13987 cp/parser.c:2829
+#: c/c-parser.c:13970 cp/parser.c:2829
#, gcc-internal-format
msgid "%qE has not been declared"
msgstr ""
-#: c/c-parser.c:13993
+#: c/c-parser.c:13976
#, gcc-internal-format
msgid "expected function name"
msgstr ""
-#: c/c-parser.c:14032
+#: c/c-parser.c:14015
#, gcc-internal-format
msgid "%<#pragma acc routine%> %s"
msgstr ""
-#: c/c-parser.c:14039 cp/parser.c:36664
+#: c/c-parser.c:14022 cp/parser.c:36726
#, gcc-internal-format
msgid "%<#pragma acc routine%> already applied to %D"
msgstr ""
-#: c/c-parser.c:14042 cp/parser.c:36671
+#: c/c-parser.c:14025 cp/parser.c:36733
#, gcc-internal-format
msgid "%<#pragma acc routine%> must be applied before %s"
msgstr ""
-#: c/c-parser.c:14079 cp/parser.c:35541
+#: c/c-parser.c:14062 cp/parser.c:35603
#, gcc-internal-format
msgid ""
"%<#pragma acc update%> must contain at least one %<device%> or %<host%> or "
"%<self%> clause"
msgstr ""
-#: c/c-parser.c:14487 cp/parser.c:32931 cp/parser.c:32957
+#: c/c-parser.c:14470 cp/parser.c:32990 cp/parser.c:33016
#, gcc-internal-format
msgid "invalid form of %<#pragma omp atomic%>"
msgstr ""
-#: c/c-parser.c:14491 cp/parser.c:32988 cp/parser.c:33004
+#: c/c-parser.c:14474 cp/parser.c:33047 cp/parser.c:33063
#, gcc-internal-format
msgid "invalid operator for %<#pragma omp atomic%>"
msgstr ""
-#: c/c-parser.c:14540 cp/semantics.c:8405 cp/semantics.c:8415
+#: c/c-parser.c:14523 cp/semantics.c:8409 cp/semantics.c:8419
#, gcc-internal-format
msgid ""
"%<#pragma omp atomic capture%> uses two different expressions for memory"
msgstr ""
-#: c/c-parser.c:14605 c/c-parser.c:14627
+#: c/c-parser.c:14588 c/c-parser.c:14610
#, gcc-internal-format
msgid "expected %<(%> or end of line"
msgstr ""
-#: c/c-parser.c:14665 cp/parser.c:33502
+#: c/c-parser.c:14648 cp/parser.c:33561
#, gcc-internal-format
msgid "%<ordered%> clause parameter is less than %<collapse%>"
msgstr ""
-#: c/c-parser.c:14676 cp/parser.c:33513
+#: c/c-parser.c:14659 cp/parser.c:33572
#, gcc-internal-format
msgid ""
"%<linear%> clause may not be specified together with %<ordered%> clause with "
"a parameter"
msgstr ""
-#: c/c-parser.c:14695 cp/parser.c:33540 cp/parser.c:37733
+#: c/c-parser.c:14678 cp/parser.c:33599 cp/parser.c:37795
#, gcc-internal-format
msgid "for statement expected"
msgstr ""
-#: c/c-parser.c:14701 cp/parser.c:33546
+#: c/c-parser.c:14684 cp/parser.c:33605
#, gcc-internal-format
msgid "_Cilk_for statement expected"
msgstr ""
-#: c/c-parser.c:14770 cp/semantics.c:7955 cp/semantics.c:8042
+#: c/c-parser.c:14753 cp/semantics.c:7959 cp/semantics.c:8046
#, gcc-internal-format
msgid "expected iteration declaration or initialization"
msgstr ""
-#: c/c-parser.c:14855
+#: c/c-parser.c:14838
#, gcc-internal-format
msgid "not enough perfectly nested loops"
msgstr ""
-#: c/c-parser.c:14914 cp/parser.c:33773
+#: c/c-parser.c:14897 cp/parser.c:33832
#, gcc-internal-format
msgid "collapsed loops not perfectly nested"
msgstr ""
-#: c/c-parser.c:14961 cp/parser.c:33589 cp/parser.c:33631 cp/pt.c:14951
+#: c/c-parser.c:14944 cp/parser.c:33648 cp/parser.c:33690 cp/pt.c:15026
#, gcc-internal-format
msgid "iteration variable %qD should not be firstprivate"
msgstr ""
-#: c/c-parser.c:15052 cp/parser.c:33840
+#: c/c-parser.c:15035 cp/parser.c:33899
#, gcc-internal-format
msgid "%<ordered%> clause with parameter may not be specified on %qs construct"
msgstr ""
-#: c/c-parser.c:15211
+#: c/c-parser.c:15196
#, gcc-internal-format
msgid ""
"%<#pragma omp ordered%> with %<depend> clause may only be used in compound "
"statements"
msgstr ""
-#: c/c-parser.c:15414 cp/parser.c:34196
+#: c/c-parser.c:15399 cp/parser.c:34257
#, gcc-internal-format
msgid "expected %<for%> after %qs"
msgstr ""
-#: c/c-parser.c:15613 cp/parser.c:34390
+#: c/c-parser.c:15598 cp/parser.c:34452
#, gcc-internal-format
msgid "expected %<point%>"
msgstr ""
-#: c/c-parser.c:15821 cp/parser.c:34613
+#: c/c-parser.c:15806 cp/parser.c:34675
#, gcc-internal-format
msgid ""
"%<#pragma omp target data%> with map-type other than %<to%>, %<from%>, "
"%<tofrom%> or %<alloc%> on %<map%> clause"
msgstr ""
-#: c/c-parser.c:15834 cp/parser.c:34626
+#: c/c-parser.c:15819 cp/parser.c:34688
#, gcc-internal-format
msgid "%<#pragma omp target data%> must contain at least one %<map%> clause"
msgstr ""
-#: c/c-parser.c:15869 cp/parser.c:34838
+#: c/c-parser.c:15854 cp/parser.c:34900
#, gcc-internal-format
msgid "%<#pragma omp target update%> may only be used in compound statements"
msgstr ""
-#: c/c-parser.c:15882 cp/parser.c:34851
+#: c/c-parser.c:15867 cp/parser.c:34913
#, gcc-internal-format
msgid ""
"%<#pragma omp target update%> must contain at least one %<from%> or %<to%> "
"clauses"
msgstr ""
-#: c/c-parser.c:15929 cp/parser.c:34679
+#: c/c-parser.c:15914 cp/parser.c:34741
#, gcc-internal-format
msgid ""
"%<#pragma omp target enter data%> may only be used in compound statements"
msgstr ""
-#: c/c-parser.c:15955 cp/parser.c:34706
+#: c/c-parser.c:15940 cp/parser.c:34768
#, gcc-internal-format
msgid ""
"%<#pragma omp target enter data%> with map-type other than %<to%> or %<alloc"
"%> on %<map%> clause"
msgstr ""
-#: c/c-parser.c:15967 cp/parser.c:34718
+#: c/c-parser.c:15952 cp/parser.c:34780
#, gcc-internal-format
msgid ""
"%<#pragma omp target enter data%> must contain at least one %<map%> clause"
msgstr ""
-#: c/c-parser.c:16014 cp/parser.c:34767
+#: c/c-parser.c:15999 cp/parser.c:34829
#, gcc-internal-format
msgid ""
"%<#pragma omp target exit data%> may only be used in compound statements"
msgstr ""
-#: c/c-parser.c:16042
+#: c/c-parser.c:16027
#, gcc-internal-format
msgid ""
"%<#pragma omp target exit data%> with map-type other than %<from%>, "
"%<release> or %<delete%> on %<map%> clause"
msgstr ""
-#: c/c-parser.c:16055 cp/parser.c:34808
+#: c/c-parser.c:16040 cp/parser.c:34870
#, gcc-internal-format
msgid ""
"%<#pragma omp target exit data%> must contain at least one %<map%> clause"
msgstr ""
-#: c/c-parser.c:16264 cp/parser.c:35062
+#: c/c-parser.c:16249 cp/parser.c:35124
#, gcc-internal-format
msgid ""
"%<#pragma omp target%> with map-type other than %<to%>, %<from%>, %<tofrom%> "
"or %<alloc%> on %<map%> clause"
msgstr ""
-#: c/c-parser.c:16315
+#: c/c-parser.c:16300
#, gcc-internal-format
msgid ""
"%<#pragma omp declare simd%> must be followed by function declaration or "
"definition or another %<#pragma omp declare simd%>"
msgstr ""
-#: c/c-parser.c:16366 c/c-parser.c:16394
+#: c/c-parser.c:16351 c/c-parser.c:16379
#, gcc-internal-format
msgid ""
"%<#pragma omp declare simd%> must be followed by function declaration or "
"definition"
msgstr ""
-#: c/c-parser.c:16415
+#: c/c-parser.c:16400
#, gcc-internal-format
msgid ""
"%<#pragma omp declare simd%> or %<simd%> attribute cannot be used in the "
"same function marked as a Cilk Plus SIMD-enabled function"
msgstr ""
-#: c/c-parser.c:16429
+#: c/c-parser.c:16414
#, gcc-internal-format
msgid ""
"%<#pragma omp declare simd%> not immediately followed by a function "
"declaration or definition"
msgstr ""
-#: c/c-parser.c:16437 cp/parser.c:35717
+#: c/c-parser.c:16422 cp/parser.c:35779
#, gcc-internal-format
msgid ""
"%<#pragma omp declare simd%> not immediately followed by a single function "
"declaration or definition"
msgstr ""
-#: c/c-parser.c:16553 cp/parser.c:35788
+#: c/c-parser.c:16538 cp/parser.c:35850
#, gcc-internal-format
msgid ""
"%<#pragma omp declare target%> with clauses in between %<#pragma omp declare "
"target%> without clauses and %<#pragma omp end declare target%>"
msgstr ""
-#: c/c-parser.c:16572 cp/parser.c:35807
+#: c/c-parser.c:16557 cp/parser.c:35869
#, gcc-internal-format
msgid "%qD specified both in declare target %<link%> and %<to%> clauses"
msgstr ""
-#: c/c-parser.c:16610 cp/parser.c:35851
+#: c/c-parser.c:16595 cp/parser.c:35913
#, gcc-internal-format
msgid "expected %<target%>"
msgstr ""
-#: c/c-parser.c:16617 cp/parser.c:35858
+#: c/c-parser.c:16602 cp/parser.c:35920
#, gcc-internal-format
msgid "expected %<declare%>"
msgstr ""
-#: c/c-parser.c:16623 cp/parser.c:35865
+#: c/c-parser.c:16608 cp/parser.c:35927
#, gcc-internal-format
msgid ""
"%<#pragma omp end declare target%> without corresponding %<#pragma omp "
"declare target%>"
msgstr ""
-#: c/c-parser.c:16651
+#: c/c-parser.c:16636
#, gcc-internal-format
msgid "%<#pragma omp declare reduction%> not at file or block scope"
msgstr ""
-#: c/c-parser.c:16701
+#: c/c-parser.c:16686
#, gcc-internal-format
msgid ""
"expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%>, %<min%> "
"or identifier"
msgstr ""
-#: c/c-parser.c:16728
+#: c/c-parser.c:16713
#, gcc-internal-format
msgid "predeclared arithmetic type in %<#pragma omp declare reduction%>"
msgstr ""
-#: c/c-parser.c:16732
+#: c/c-parser.c:16717
#, gcc-internal-format
msgid "function or array type in %<#pragma omp declare reduction%>"
msgstr ""
-#: c/c-parser.c:16735
+#: c/c-parser.c:16720
#, gcc-internal-format
msgid ""
"const, volatile or restrict qualified type in %<#pragma omp declare reduction"
"%>"
msgstr ""
-#: c/c-parser.c:16743
+#: c/c-parser.c:16728
#, gcc-internal-format
msgid "redeclaration of %qs %<#pragma omp declare reduction%> for type %qT"
msgstr ""
-#: c/c-parser.c:16752
+#: c/c-parser.c:16737
#, gcc-internal-format
msgid "previous %<#pragma omp declare reduction%>"
msgstr ""
-#: c/c-parser.c:16869
+#: c/c-parser.c:16854
#, gcc-internal-format
msgid "expected %<omp_priv%> or function-name"
msgstr ""
-#: c/c-parser.c:16880
+#: c/c-parser.c:16865
#, gcc-internal-format
msgid "expected function-name %<(%>"
msgstr ""
-#: c/c-parser.c:16899
+#: c/c-parser.c:16884
#, gcc-internal-format
msgid "one of the initializer call arguments should be %<&omp_priv%>"
msgstr ""
-#: c/c-parser.c:17019 cp/parser.c:36310
+#: c/c-parser.c:17004 cp/parser.c:36372
#, gcc-internal-format
msgid "expected %<simd%> or %<reduction%> or %<target%>"
msgstr ""
-#: c/c-parser.c:17234 cp/semantics.c:7428
+#: c/c-parser.c:17219 cp/semantics.c:7432
#, gcc-internal-format
msgid "%qE declared %<threadprivate%> after first use"
msgstr ""
-#: c/c-parser.c:17236 cp/semantics.c:7430
+#: c/c-parser.c:17221 cp/semantics.c:7434
#, gcc-internal-format
msgid "automatic variable %qE cannot be %<threadprivate%>"
msgstr ""
-#: c/c-parser.c:17240 cp/semantics.c:7432
+#: c/c-parser.c:17225 cp/semantics.c:7436
#, gcc-internal-format
msgid "%<threadprivate%> %qE has incomplete type"
msgstr ""
-#: c/c-parser.c:17271
+#: c/c-parser.c:17256
#, gcc-internal-format
msgid "pragma simd ignored because -fcilkplus is not enabled"
msgstr ""
-#: c/c-parser.c:17277
+#: c/c-parser.c:17262
#, gcc-internal-format
msgid "pragma simd must be inside a function"
msgstr ""
-#: c/c-parser.c:17321 cp/parser.c:37504
+#: c/c-parser.c:17306 cp/parser.c:37566
#, gcc-internal-format
msgid "vectorlength must be an integer constant"
msgstr ""
-#: c/c-parser.c:17323 cp/parser.c:37507
+#: c/c-parser.c:17308 cp/parser.c:37569
#, gcc-internal-format
msgid "vectorlength must be a power of 2"
msgstr ""
-#: c/c-parser.c:17406 cp/parser.c:37614
+#: c/c-parser.c:17391 cp/parser.c:37676
#, gcc-internal-format
msgid "step size must be an integer constant expression or an integer variable"
msgstr ""
-#: c/c-parser.c:17505 cp/parser.c:37707
+#: c/c-parser.c:17490 cp/parser.c:37769
#, gcc-internal-format
msgid "expected %<#pragma simd%> clause"
msgstr ""
-#: c/c-parser.c:17549 cp/parser.c:37156
+#: c/c-parser.c:17534 cp/parser.c:37218
#, gcc-internal-format
msgid "%<#pragma cilk grainsize%> is not followed by %<_Cilk_for%>"
msgstr ""
-#: c/c-parser.c:17849 cp/parser.c:37048
+#: c/c-parser.c:17834 cp/parser.c:37110
#, gcc-internal-format
msgid "%<__transaction_cancel%> without transactional memory support enabled"
msgstr ""
-#: c/c-parser.c:17855 cp/parser.c:37054
+#: c/c-parser.c:17840 cp/parser.c:37116
#, gcc-internal-format
msgid "%<__transaction_cancel%> within a %<__transaction_relaxed%>"
msgstr ""
-#: c/c-parser.c:17864 cp/parser.c:37063
+#: c/c-parser.c:17849 cp/parser.c:37125
#, gcc-internal-format
msgid ""
"outer %<__transaction_cancel%> not within outer %<__transaction_atomic%>"
msgstr ""
-#: c/c-parser.c:17866 cp/parser.c:37066
+#: c/c-parser.c:17851 cp/parser.c:37128
#, gcc-internal-format
msgid " or a %<transaction_may_cancel_outer%> function"
msgstr ""
-#: c/c-parser.c:17872 cp/parser.c:37072
+#: c/c-parser.c:17857 cp/parser.c:37134
#, gcc-internal-format
msgid "%<__transaction_cancel%> not within %<__transaction_atomic%>"
msgstr ""
-#: c/c-parser.c:17940 cp/cp-array-notation.c:1407
+#: c/c-parser.c:17925 cp/cp-array-notation.c:1407
#, gcc-internal-format
msgid "base of array section must be pointer or array type"
msgstr ""
-#: c/c-parser.c:17949 cp/parser.c:7013
+#: c/c-parser.c:17934 cp/parser.c:7013
#, gcc-internal-format
msgid "expected %<:%> or numeral"
msgstr ""
-#: c/c-parser.c:17960
+#: c/c-parser.c:17945
#, gcc-internal-format
msgid ""
"start-index and length fields necessary for using array notations in pointers"
msgstr ""
-#: c/c-parser.c:17967 c/c-parser.c:18010
+#: c/c-parser.c:17952 c/c-parser.c:17995
#, gcc-internal-format
msgid "array notations cannot be used with function type"
msgstr ""
-#: c/c-parser.c:17976
+#: c/c-parser.c:17961
#, gcc-internal-format
msgid ""
"start-index and length fields necessary for using array notations in "
"dimensionless arrays"
msgstr ""
-#: c/c-parser.c:17988
+#: c/c-parser.c:17973
#, gcc-internal-format
msgid ""
"start-index and length fields necessary for using array notations in "
"variable-length arrays"
msgstr ""
-#: c/c-parser.c:18038 c/c-parser.c:18041
+#: c/c-parser.c:18023 c/c-parser.c:18026
#, gcc-internal-format
msgid "expected array notation expression"
msgstr ""
msgid "%qD has an incomplete type %qT"
msgstr ""
-#: c/c-typeck.c:231 c/c-typeck.c:9501 c/c-typeck.c:9543 cp/call.c:3970
+#: c/c-typeck.c:231 c/c-typeck.c:9508 c/c-typeck.c:9550 cp/call.c:3976
#, gcc-internal-format
msgid "invalid use of void expression"
msgstr ""
msgid "passing argument %d of %qE as signed due to prototype"
msgstr ""
-#: c/c-typeck.c:3423 cp/call.c:6769
+#: c/c-typeck.c:3423 cp/call.c:6779
#, gcc-internal-format
msgid "implicit conversion from %qT to %qT when passing argument to function"
msgstr ""
-#: c/c-typeck.c:3617 c/c-typeck.c:3622 cp/typeck.c:4534 cp/typeck.c:4776
+#: c/c-typeck.c:3622 c/c-typeck.c:3627 cp/typeck.c:4534 cp/typeck.c:4776
#, gcc-internal-format
msgid "comparison with string literal results in unspecified behavior"
msgstr ""
-#: c/c-typeck.c:3636
+#: c/c-typeck.c:3641
#, gcc-internal-format
msgid "comparison between %qT and %qT"
msgstr ""
-#: c/c-typeck.c:3685
+#: c/c-typeck.c:3690
#, gcc-internal-format
msgid "pointer of type %<void *%> used in subtraction"
msgstr ""
-#: c/c-typeck.c:3688
+#: c/c-typeck.c:3693
#, gcc-internal-format
msgid "pointer to a function used in subtraction"
msgstr ""
-#: c/c-typeck.c:3700
+#: c/c-typeck.c:3705
#, gcc-internal-format
msgid "arithmetic on pointer to an incomplete type"
msgstr ""
-#: c/c-typeck.c:3705 cp/typeck.c:5293
+#: c/c-typeck.c:3710 cp/typeck.c:5293
#, gcc-internal-format
msgid "arithmetic on pointer to an empty aggregate"
msgstr ""
-#: c/c-typeck.c:4113
+#: c/c-typeck.c:4118
#, gcc-internal-format
msgid "ISO C does not support %<~%> for complex conjugation"
msgstr ""
-#: c/c-typeck.c:4152
+#: c/c-typeck.c:4157
#, gcc-internal-format
msgid "wrong type argument to unary exclamation mark"
msgstr ""
-#: c/c-typeck.c:4209
+#: c/c-typeck.c:4214
#, gcc-internal-format
msgid "increment of enumeration value is invalid in C++"
msgstr ""
-#: c/c-typeck.c:4212
+#: c/c-typeck.c:4217
#, gcc-internal-format
msgid "decrement of enumeration value is invalid in C++"
msgstr ""
-#: c/c-typeck.c:4228
+#: c/c-typeck.c:4233
#, gcc-internal-format
msgid "ISO C does not support %<++%> and %<--%> on complex types"
msgstr ""
-#: c/c-typeck.c:4251 c/c-typeck.c:4285
+#: c/c-typeck.c:4256 c/c-typeck.c:4290
#, gcc-internal-format
msgid "wrong type argument to increment"
msgstr ""
-#: c/c-typeck.c:4253 c/c-typeck.c:4288
+#: c/c-typeck.c:4258 c/c-typeck.c:4293
#, gcc-internal-format
msgid "wrong type argument to decrement"
msgstr ""
-#: c/c-typeck.c:4273
+#: c/c-typeck.c:4278
#, gcc-internal-format
msgid "increment of pointer to an incomplete type %qT"
msgstr ""
-#: c/c-typeck.c:4277
+#: c/c-typeck.c:4282
#, gcc-internal-format
msgid "decrement of pointer to an incomplete type %qT"
msgstr ""
-#: c/c-typeck.c:4381
+#: c/c-typeck.c:4386
#, gcc-internal-format
msgid "taking address of expression of type %<void%>"
msgstr ""
-#: c/c-typeck.c:4439
+#: c/c-typeck.c:4444
#, gcc-internal-format
msgid "cannot take address of bit-field %qD"
msgstr ""
-#: c/c-typeck.c:4452
+#: c/c-typeck.c:4457
#, gcc-internal-format
msgid "cannot take address of scalar with reverse storage order"
msgstr ""
-#: c/c-typeck.c:4460
+#: c/c-typeck.c:4465
#, gcc-internal-format
msgid "address of array with reverse scalar storage order requested"
msgstr ""
-#: c/c-typeck.c:4632
+#: c/c-typeck.c:4637
#, gcc-internal-format
msgid "global register variable %qD used in nested function"
msgstr ""
-#: c/c-typeck.c:4635
+#: c/c-typeck.c:4640
#, gcc-internal-format
msgid "register variable %qD used in nested function"
msgstr ""
-#: c/c-typeck.c:4640
+#: c/c-typeck.c:4645
#, gcc-internal-format
msgid "address of global register variable %qD requested"
msgstr ""
-#: c/c-typeck.c:4642
+#: c/c-typeck.c:4647
#, gcc-internal-format
msgid "address of register variable %qD requested"
msgstr ""
-#: c/c-typeck.c:4743
+#: c/c-typeck.c:4748
#, gcc-internal-format
msgid "non-lvalue array in conditional expression"
msgstr ""
-#: c/c-typeck.c:4799 cp/call.c:5089
+#: c/c-typeck.c:4804 cp/call.c:5098
#, gcc-internal-format
msgid ""
"implicit conversion from %qT to %qT to match other result of conditional"
msgstr ""
-#: c/c-typeck.c:4873
+#: c/c-typeck.c:4878
#, gcc-internal-format
msgid "ISO C forbids conditional expr with only one void side"
msgstr ""
-#: c/c-typeck.c:4890
+#: c/c-typeck.c:4895
#, gcc-internal-format
msgid "pointers to disjoint address spaces used in conditional expression"
msgstr ""
-#: c/c-typeck.c:4901 c/c-typeck.c:4918
+#: c/c-typeck.c:4906 c/c-typeck.c:4923
#, gcc-internal-format
msgid "pointer to array loses qualifier in conditional expression"
msgstr ""
-#: c/c-typeck.c:4906 c/c-typeck.c:4923
+#: c/c-typeck.c:4911 c/c-typeck.c:4928
#, gcc-internal-format
msgid "ISO C forbids conditional expr between %<void *%> and function pointer"
msgstr ""
-#: c/c-typeck.c:4936
+#: c/c-typeck.c:4941
#, gcc-internal-format
msgid "pointer type mismatch in conditional expression"
msgstr ""
-#: c/c-typeck.c:4945 c/c-typeck.c:4956
+#: c/c-typeck.c:4950 c/c-typeck.c:4961
#, gcc-internal-format
msgid "pointer/integer type mismatch in conditional expression"
msgstr ""
-#: c/c-typeck.c:5059 cp/typeck.c:6436
+#: c/c-typeck.c:5064 cp/typeck.c:6435
#, gcc-internal-format
msgid "spawned function call cannot be part of a comma expression"
msgstr ""
-#: c/c-typeck.c:5093
+#: c/c-typeck.c:5098
#, gcc-internal-format
msgid "left-hand operand of comma expression has no effect"
msgstr ""
-#: c/c-typeck.c:5111 c/c-typeck.c:10192
+#: c/c-typeck.c:5116 c/c-typeck.c:10199
#, gcc-internal-format
msgid "right-hand operand of comma expression has no effect"
msgstr ""
-#: c/c-typeck.c:5180
+#: c/c-typeck.c:5185
msgid "cast adds %q#v qualifier to function type"
msgstr ""
-#: c/c-typeck.c:5186
+#: c/c-typeck.c:5191
msgid "cast discards %qv qualifier from pointer target type"
msgstr ""
-#: c/c-typeck.c:5221
+#: c/c-typeck.c:5226
#, gcc-internal-format
msgid ""
"to be safe all intermediate pointers in cast from %qT to %qT must be %<const"
"%> qualified"
msgstr ""
-#: c/c-typeck.c:5258
+#: c/c-typeck.c:5263
#, gcc-internal-format
msgid "cast specifies array type"
msgstr ""
-#: c/c-typeck.c:5264
+#: c/c-typeck.c:5269
#, gcc-internal-format
msgid "cast specifies function type"
msgstr ""
-#: c/c-typeck.c:5279
+#: c/c-typeck.c:5284
#, gcc-internal-format
msgid "ISO C forbids casting nonscalar to the same type"
msgstr ""
-#: c/c-typeck.c:5299
+#: c/c-typeck.c:5304
#, gcc-internal-format
msgid "ISO C forbids casts to union type"
msgstr ""
-#: c/c-typeck.c:5309
+#: c/c-typeck.c:5314
#, gcc-internal-format
msgid "cast to union type from type not present in union"
msgstr ""
-#: c/c-typeck.c:5344
+#: c/c-typeck.c:5349
#, gcc-internal-format, gfc-internal-format
msgid ""
"cast to %s address space pointer from disjoint generic address space pointer"
msgstr ""
-#: c/c-typeck.c:5349
+#: c/c-typeck.c:5354
#, gcc-internal-format, gfc-internal-format
msgid ""
"cast to generic address space pointer from disjoint %s address space pointer"
msgstr ""
-#: c/c-typeck.c:5354
+#: c/c-typeck.c:5359
#, gcc-internal-format, gfc-internal-format
msgid "cast to %s address space pointer from disjoint %s address space pointer"
msgstr ""
-#: c/c-typeck.c:5373
+#: c/c-typeck.c:5378
#, gcc-internal-format
msgid "cast increases required alignment of target type"
msgstr ""
-#: c/c-typeck.c:5384
+#: c/c-typeck.c:5389
#, gcc-internal-format
msgid "cast from pointer to integer of different size"
msgstr ""
-#: c/c-typeck.c:5389
+#: c/c-typeck.c:5394
#, gcc-internal-format
msgid "cast from function call of type %qT to non-matching type %qT"
msgstr ""
-#: c/c-typeck.c:5398 cp/typeck.c:7407
+#: c/c-typeck.c:5403 cp/typeck.c:7406
#, gcc-internal-format
msgid "cast to pointer from integer of different size"
msgstr ""
-#: c/c-typeck.c:5412
+#: c/c-typeck.c:5417
#, gcc-internal-format
msgid "ISO C forbids conversion of function pointer to object pointer type"
msgstr ""
-#: c/c-typeck.c:5421
+#: c/c-typeck.c:5426
#, gcc-internal-format
msgid "ISO C forbids conversion of object pointer to function pointer type"
msgstr ""
-#: c/c-typeck.c:5508
+#: c/c-typeck.c:5513
#, gcc-internal-format
msgid "defining a type in a cast is invalid in C++"
msgstr ""
-#: c/c-typeck.c:5550
+#: c/c-typeck.c:5555
#, gcc-internal-format
msgid "assignment to expression with array type"
msgstr ""
-#: c/c-typeck.c:5673 c/c-typeck.c:6113
+#: c/c-typeck.c:5678 c/c-typeck.c:6118
#, gcc-internal-format
msgid "enum conversion in assignment is invalid in C++"
msgstr ""
-#: c/c-typeck.c:5865 c/c-typeck.c:5883 c/c-typeck.c:5902
+#: c/c-typeck.c:5870 c/c-typeck.c:5888 c/c-typeck.c:5907
#, gcc-internal-format
msgid "(near initialization for %qs)"
msgstr ""
-#: c/c-typeck.c:5917
+#: c/c-typeck.c:5922
#, gcc-internal-format
msgid "array initialized from parenthesized string constant"
msgstr ""
#. strings are complete sentences, visible to gettext and checked at
#. compile time. It is the same as PEDWARN_FOR_QUALIFIERS but uses
#. warning_at instead of pedwarn.
-#: c/c-typeck.c:5993 c/c-typeck.c:6022 c/c-typeck.c:6051 c/c-typeck.c:6629
+#: c/c-typeck.c:5998 c/c-typeck.c:6027 c/c-typeck.c:6056 c/c-typeck.c:6634
#, gcc-internal-format
msgid "expected %qT but argument is of type %qT"
msgstr ""
-#: c/c-typeck.c:6111
+#: c/c-typeck.c:6116
#, gcc-internal-format
msgid "enum conversion when passing argument %d of %qE is invalid in C++"
msgstr ""
-#: c/c-typeck.c:6115 c/c-typeck.c:8711
+#: c/c-typeck.c:6120 c/c-typeck.c:8718
#, gcc-internal-format
msgid "enum conversion in initialization is invalid in C++"
msgstr ""
-#: c/c-typeck.c:6117
+#: c/c-typeck.c:6122
#, gcc-internal-format
msgid "enum conversion in return is invalid in C++"
msgstr ""
-#: c/c-typeck.c:6148
+#: c/c-typeck.c:6153
#, gcc-internal-format
msgid "cannot pass rvalue to reference parameter"
msgstr ""
-#: c/c-typeck.c:6281 c/c-typeck.c:6546
+#: c/c-typeck.c:6286 c/c-typeck.c:6551
msgid ""
"passing argument %d of %qE makes %q#v qualified function pointer from "
"unqualified"
msgstr ""
-#: c/c-typeck.c:6284 c/c-typeck.c:6549
+#: c/c-typeck.c:6289 c/c-typeck.c:6554
msgid "assignment makes %q#v qualified function pointer from unqualified"
msgstr ""
-#: c/c-typeck.c:6287 c/c-typeck.c:6551
+#: c/c-typeck.c:6292 c/c-typeck.c:6556
msgid "initialization makes %q#v qualified function pointer from unqualified"
msgstr ""
-#: c/c-typeck.c:6290 c/c-typeck.c:6553
+#: c/c-typeck.c:6295 c/c-typeck.c:6558
msgid "return makes %q#v qualified function pointer from unqualified"
msgstr ""
-#: c/c-typeck.c:6298 c/c-typeck.c:6465 c/c-typeck.c:6508
+#: c/c-typeck.c:6303 c/c-typeck.c:6470 c/c-typeck.c:6513
msgid ""
"passing argument %d of %qE discards %qv qualifier from pointer target type"
msgstr ""
-#: c/c-typeck.c:6300 c/c-typeck.c:6467 c/c-typeck.c:6510
+#: c/c-typeck.c:6305 c/c-typeck.c:6472 c/c-typeck.c:6515
msgid "assignment discards %qv qualifier from pointer target type"
msgstr ""
-#: c/c-typeck.c:6302 c/c-typeck.c:6469 c/c-typeck.c:6512
+#: c/c-typeck.c:6307 c/c-typeck.c:6474 c/c-typeck.c:6517
msgid "initialization discards %qv qualifier from pointer target type"
msgstr ""
-#: c/c-typeck.c:6304 c/c-typeck.c:6471 c/c-typeck.c:6514
+#: c/c-typeck.c:6309 c/c-typeck.c:6476 c/c-typeck.c:6519
msgid "return discards %qv qualifier from pointer target type"
msgstr ""
-#: c/c-typeck.c:6313
+#: c/c-typeck.c:6318
#, gcc-internal-format
msgid "ISO C prohibits argument conversion to union type"
msgstr ""
-#: c/c-typeck.c:6375
+#: c/c-typeck.c:6380
#, gcc-internal-format
msgid "request for implicit conversion from %qT to %qT not permitted in C++"
msgstr ""
-#: c/c-typeck.c:6387
+#: c/c-typeck.c:6392
#, gcc-internal-format
msgid "passing argument %d of %qE from pointer to non-enclosed address space"
msgstr ""
-#: c/c-typeck.c:6391
+#: c/c-typeck.c:6396
#, gcc-internal-format
msgid "assignment from pointer to non-enclosed address space"
msgstr ""
-#: c/c-typeck.c:6395
+#: c/c-typeck.c:6400
#, gcc-internal-format
msgid "initialization from pointer to non-enclosed address space"
msgstr ""
-#: c/c-typeck.c:6399
+#: c/c-typeck.c:6404
#, gcc-internal-format
msgid "return from pointer to non-enclosed address space"
msgstr ""
-#: c/c-typeck.c:6417
+#: c/c-typeck.c:6422
#, gcc-internal-format
msgid "argument %d of %qE might be a candidate for a format attribute"
msgstr ""
-#: c/c-typeck.c:6423
+#: c/c-typeck.c:6428
#, gcc-internal-format
msgid "assignment left-hand side might be a candidate for a format attribute"
msgstr ""
-#: c/c-typeck.c:6428
+#: c/c-typeck.c:6433
#, gcc-internal-format
msgid ""
"initialization left-hand side might be a candidate for a format attribute"
msgstr ""
-#: c/c-typeck.c:6433 cp/typeck.c:8423
+#: c/c-typeck.c:6438 cp/typeck.c:8422
#, gcc-internal-format
msgid "return type might be a candidate for a format attribute"
msgstr ""
-#: c/c-typeck.c:6482
+#: c/c-typeck.c:6487
#, gcc-internal-format
msgid ""
"ISO C forbids passing argument %d of %qE between function pointer and %<void "
"*%>"
msgstr ""
-#: c/c-typeck.c:6485
+#: c/c-typeck.c:6490
#, gcc-internal-format
msgid "ISO C forbids assignment between function pointer and %<void *%>"
msgstr ""
-#: c/c-typeck.c:6487
+#: c/c-typeck.c:6492
#, gcc-internal-format
msgid "ISO C forbids initialization between function pointer and %<void *%>"
msgstr ""
-#: c/c-typeck.c:6489
+#: c/c-typeck.c:6494
#, gcc-internal-format
msgid "ISO C forbids return between function pointer and %<void *%>"
msgstr ""
-#: c/c-typeck.c:6526
+#: c/c-typeck.c:6531
#, gcc-internal-format
msgid "pointer targets in passing argument %d of %qE differ in signedness"
msgstr ""
-#: c/c-typeck.c:6528
+#: c/c-typeck.c:6533
#, gcc-internal-format
msgid "pointer targets in assignment differ in signedness"
msgstr ""
-#: c/c-typeck.c:6530
+#: c/c-typeck.c:6535
#, gcc-internal-format
msgid "pointer targets in initialization differ in signedness"
msgstr ""
-#: c/c-typeck.c:6532
+#: c/c-typeck.c:6537
#, gcc-internal-format
msgid "pointer targets in return differ in signedness"
msgstr ""
-#: c/c-typeck.c:6563
+#: c/c-typeck.c:6568
#, gcc-internal-format
msgid "passing argument %d of %qE from incompatible pointer type"
msgstr ""
-#: c/c-typeck.c:6565
+#: c/c-typeck.c:6570
#, gcc-internal-format
msgid "assignment from incompatible pointer type"
msgstr ""
-#: c/c-typeck.c:6566
+#: c/c-typeck.c:6571
#, gcc-internal-format
msgid "initialization from incompatible pointer type"
msgstr ""
-#: c/c-typeck.c:6568
+#: c/c-typeck.c:6573
#, gcc-internal-format
msgid "return from incompatible pointer type"
msgstr ""
#. ??? This should not be an error when inlining calls to
#. unprototyped functions.
-#: c/c-typeck.c:6576 c/c-typeck.c:7070 cp/typeck.c:1992
+#: c/c-typeck.c:6581 c/c-typeck.c:7075 cp/typeck.c:1992
#, gcc-internal-format
msgid "invalid use of non-lvalue array"
msgstr ""
-#: c/c-typeck.c:6587
+#: c/c-typeck.c:6592
#, gcc-internal-format
msgid "passing argument %d of %qE makes pointer from integer without a cast"
msgstr ""
-#: c/c-typeck.c:6589
+#: c/c-typeck.c:6594
#, gcc-internal-format
msgid "assignment makes pointer from integer without a cast"
msgstr ""
-#: c/c-typeck.c:6591
+#: c/c-typeck.c:6596
#, gcc-internal-format
msgid "initialization makes pointer from integer without a cast"
msgstr ""
-#: c/c-typeck.c:6593
+#: c/c-typeck.c:6598
#, gcc-internal-format
msgid "return makes pointer from integer without a cast"
msgstr ""
-#: c/c-typeck.c:6602
+#: c/c-typeck.c:6607
#, gcc-internal-format
msgid "passing argument %d of %qE makes integer from pointer without a cast"
msgstr ""
-#: c/c-typeck.c:6604
+#: c/c-typeck.c:6609
#, gcc-internal-format
msgid "assignment makes integer from pointer without a cast"
msgstr ""
-#: c/c-typeck.c:6606
+#: c/c-typeck.c:6611
#, gcc-internal-format
msgid "initialization makes integer from pointer without a cast"
msgstr ""
-#: c/c-typeck.c:6608
+#: c/c-typeck.c:6613
#, gcc-internal-format
msgid "return makes integer from pointer without a cast"
msgstr ""
-#: c/c-typeck.c:6632
+#: c/c-typeck.c:6637
#, gcc-internal-format
msgid "incompatible types when assigning to type %qT from type %qT"
msgstr ""
-#: c/c-typeck.c:6637
+#: c/c-typeck.c:6642
#, gcc-internal-format
msgid "incompatible types when initializing type %qT using type %qT"
msgstr ""
-#: c/c-typeck.c:6642
+#: c/c-typeck.c:6647
#, gcc-internal-format
msgid "incompatible types when returning type %qT but %qT was expected"
msgstr ""
-#: c/c-typeck.c:6706
+#: c/c-typeck.c:6711
#, gcc-internal-format
msgid "traditional C rejects automatic aggregate initialization"
msgstr ""
-#: c/c-typeck.c:6943 c/c-typeck.c:7822 cp/typeck2.c:1020
+#: c/c-typeck.c:6948 c/c-typeck.c:7827 cp/typeck2.c:1023
#, gcc-internal-format
msgid "initialization of a flexible array member"
msgstr ""
-#: c/c-typeck.c:6953 cp/typeck2.c:1035
+#: c/c-typeck.c:6958 cp/typeck2.c:1038
#, gcc-internal-format
msgid "char-array initialized from wide string"
msgstr ""
-#: c/c-typeck.c:6962
+#: c/c-typeck.c:6967
#, gcc-internal-format
msgid "wide character array initialized from non-wide string"
msgstr ""
-#: c/c-typeck.c:6968
+#: c/c-typeck.c:6973
#, gcc-internal-format
msgid "wide character array initialized from incompatible wide string"
msgstr ""
-#: c/c-typeck.c:7002
+#: c/c-typeck.c:7007
#, gcc-internal-format
msgid "array of inappropriate type initialized from string constant"
msgstr ""
-#: c/c-typeck.c:7089 c/c-typeck.c:7113 c/c-typeck.c:7116 c/c-typeck.c:7124
-#: c/c-typeck.c:7164 c/c-typeck.c:8650 c/c-typeck.c:8684
+#: c/c-typeck.c:7094 c/c-typeck.c:7118 c/c-typeck.c:7121 c/c-typeck.c:7129
+#: c/c-typeck.c:7169 c/c-typeck.c:8657 c/c-typeck.c:8691
#, gcc-internal-format
msgid "initializer element is not constant"
msgstr ""
-#: c/c-typeck.c:7098
+#: c/c-typeck.c:7103
#, gcc-internal-format
msgid "array initialized from non-constant array expression"
msgstr ""
-#: c/c-typeck.c:7129 c/c-typeck.c:7177 c/c-typeck.c:8694
+#: c/c-typeck.c:7134 c/c-typeck.c:7182 c/c-typeck.c:8701
#, gcc-internal-format
msgid "initializer element is not a constant expression"
msgstr ""
-#: c/c-typeck.c:7171 c/c-typeck.c:8689
+#: c/c-typeck.c:7176 c/c-typeck.c:8696
#, gcc-internal-format
msgid "initializer element is not computable at load time"
msgstr ""
-#: c/c-typeck.c:7190
+#: c/c-typeck.c:7195
#, gcc-internal-format
msgid "invalid initializer"
msgstr ""
-#: c/c-typeck.c:7465 cp/decl.c:6108
+#: c/c-typeck.c:7470 cp/decl.c:6115
#, gcc-internal-format
msgid "opaque vector types cannot be initialized"
msgstr ""
-#: c/c-typeck.c:7681
+#: c/c-typeck.c:7686
#, gcc-internal-format
msgid "extra brace group at end of initializer"
msgstr ""
-#: c/c-typeck.c:7759
+#: c/c-typeck.c:7764
#, gcc-internal-format
msgid "braces around scalar initializer"
msgstr ""
-#: c/c-typeck.c:7819 c/c-typeck.c:9123
+#: c/c-typeck.c:7824 c/c-typeck.c:9130
#, gcc-internal-format
msgid "initialization of flexible array member in a nested context"
msgstr ""
-#: c/c-typeck.c:7853
+#: c/c-typeck.c:7858
#, gcc-internal-format
msgid "missing braces around initializer"
msgstr ""
-#: c/c-typeck.c:7875
+#: c/c-typeck.c:7880
#, gcc-internal-format
msgid "missing initializer for field %qD of %qT"
msgstr ""
-#: c/c-typeck.c:7899
+#: c/c-typeck.c:7904
#, gcc-internal-format
msgid "empty scalar initializer"
msgstr ""
-#: c/c-typeck.c:7904
+#: c/c-typeck.c:7909
#, gcc-internal-format
msgid "extra elements in scalar initializer"
msgstr ""
-#: c/c-typeck.c:8016 c/c-typeck.c:8098
+#: c/c-typeck.c:8021 c/c-typeck.c:8103
#, gcc-internal-format
msgid "array index in non-array initializer"
msgstr ""
-#: c/c-typeck.c:8021 c/c-typeck.c:8160
+#: c/c-typeck.c:8026 c/c-typeck.c:8165
#, gcc-internal-format
msgid "field name not in record or union initializer"
msgstr ""
-#: c/c-typeck.c:8071
+#: c/c-typeck.c:8076
#, gcc-internal-format
msgid "array index in initializer not of integer type"
msgstr ""
-#: c/c-typeck.c:8080 c/c-typeck.c:8089
+#: c/c-typeck.c:8085 c/c-typeck.c:8094
#, gcc-internal-format
msgid "array index in initializer is not an integer constant expression"
msgstr ""
-#: c/c-typeck.c:8094 c/c-typeck.c:8096
+#: c/c-typeck.c:8099 c/c-typeck.c:8101
#, gcc-internal-format
msgid "nonconstant array index in initializer"
msgstr ""
-#: c/c-typeck.c:8100 c/c-typeck.c:8103
+#: c/c-typeck.c:8105 c/c-typeck.c:8108
#, gcc-internal-format
msgid "array index in initializer exceeds array bounds"
msgstr ""
-#: c/c-typeck.c:8122
+#: c/c-typeck.c:8127
#, gcc-internal-format
msgid "empty index range in initializer"
msgstr ""
-#: c/c-typeck.c:8131
+#: c/c-typeck.c:8136
#, gcc-internal-format
msgid "array index range in initializer exceeds array bounds"
msgstr ""
-#: c/c-typeck.c:8167
+#: c/c-typeck.c:8172
#, gcc-internal-format
msgid "unknown field %qE specified in initializer"
msgstr ""
-#: c/c-typeck.c:8220 c/c-typeck.c:8250 c/c-typeck.c:8784
+#: c/c-typeck.c:8225 c/c-typeck.c:8255 c/c-typeck.c:8791
#, gcc-internal-format
msgid "initialized field with side-effects overwritten"
msgstr ""
-#: c/c-typeck.c:8224 c/c-typeck.c:8254 c/c-typeck.c:8787
+#: c/c-typeck.c:8229 c/c-typeck.c:8259 c/c-typeck.c:8794
#, gcc-internal-format
msgid "initialized field overwritten"
msgstr ""
-#: c/c-typeck.c:9006
+#: c/c-typeck.c:9013
#, gcc-internal-format
msgid "excess elements in char array initializer"
msgstr ""
-#: c/c-typeck.c:9013 c/c-typeck.c:9082
+#: c/c-typeck.c:9020 c/c-typeck.c:9089
#, gcc-internal-format
msgid "excess elements in struct initializer"
msgstr ""
-#: c/c-typeck.c:9028
+#: c/c-typeck.c:9035
#, gcc-internal-format
msgid ""
"positional initialization of field in %<struct%> declared with "
"%<designated_init%> attribute"
msgstr ""
-#: c/c-typeck.c:9097
+#: c/c-typeck.c:9104
#, gcc-internal-format
msgid "non-static initialization of a flexible array member"
msgstr ""
-#: c/c-typeck.c:9196
+#: c/c-typeck.c:9203
#, gcc-internal-format
msgid "excess elements in union initializer"
msgstr ""
-#: c/c-typeck.c:9218
+#: c/c-typeck.c:9225
#, gcc-internal-format
msgid "traditional C rejects initialization of unions"
msgstr ""
-#: c/c-typeck.c:9286
+#: c/c-typeck.c:9293
#, gcc-internal-format
msgid "excess elements in array initializer"
msgstr ""
-#: c/c-typeck.c:9320
+#: c/c-typeck.c:9327
#, gcc-internal-format
msgid "excess elements in vector initializer"
msgstr ""
-#: c/c-typeck.c:9352
+#: c/c-typeck.c:9359
#, gcc-internal-format
msgid "excess elements in scalar initializer"
msgstr ""
-#: c/c-typeck.c:9592
+#: c/c-typeck.c:9599
#, gcc-internal-format
msgid "ISO C forbids %<goto *expr;%>"
msgstr ""
-#: c/c-typeck.c:9620 cp/typeck.c:8652
+#: c/c-typeck.c:9627 cp/typeck.c:8651
#, gcc-internal-format
msgid "function declared %<noreturn%> has a %<return%> statement"
msgstr ""
-#: c/c-typeck.c:9630 cp/cp-array-notation.c:1087
+#: c/c-typeck.c:9637 cp/cp-array-notation.c:1087
#, gcc-internal-format
msgid "array notation expression cannot be used as a return value"
msgstr ""
-#: c/c-typeck.c:9637 cp/typeck.c:8643
+#: c/c-typeck.c:9644 cp/typeck.c:8642
#, gcc-internal-format
msgid "use of %<_Cilk_spawn%> in a return statement is not allowed"
msgstr ""
-#: c/c-typeck.c:9665 c/c-typeck.c:9669
+#: c/c-typeck.c:9672 c/c-typeck.c:9676
#, gcc-internal-format
msgid "%<return%> with no value, in function returning non-void"
msgstr ""
-#: c/c-typeck.c:9683
+#: c/c-typeck.c:9690
#, gcc-internal-format
msgid "%<return%> with a value, in function returning void"
msgstr ""
-#: c/c-typeck.c:9686
+#: c/c-typeck.c:9693
#, gcc-internal-format
msgid "ISO C forbids %<return%> with expression, in function returning void"
msgstr ""
-#: c/c-typeck.c:9762
+#: c/c-typeck.c:9769
#, gcc-internal-format
msgid "function returns address of label"
msgstr ""
-#: c/c-typeck.c:9853 cp/semantics.c:1146
+#: c/c-typeck.c:9860 cp/semantics.c:1146
#, gcc-internal-format
msgid "switch quantity not an integer"
msgstr ""
-#: c/c-typeck.c:9878
+#: c/c-typeck.c:9885
#, gcc-internal-format
msgid "%<long%> switch expression not converted to %<int%> in ISO C"
msgstr ""
-#: c/c-typeck.c:9916 c/c-typeck.c:9924
+#: c/c-typeck.c:9923 c/c-typeck.c:9931
#, gcc-internal-format
msgid "case label is not an integer constant expression"
msgstr ""
-#: c/c-typeck.c:9930 cp/parser.c:10624
+#: c/c-typeck.c:9937 cp/parser.c:10626
#, gcc-internal-format
msgid "case label not within a switch statement"
msgstr ""
-#: c/c-typeck.c:9932
+#: c/c-typeck.c:9939
#, gcc-internal-format
msgid "%<default%> label not within a switch statement"
msgstr ""
-#: c/c-typeck.c:10003
+#: c/c-typeck.c:10010
#, gcc-internal-format
msgid "rank-mismatch between if-statement%'s condition and the then-block"
msgstr ""
-#: c/c-typeck.c:10009
+#: c/c-typeck.c:10016
#, gcc-internal-format
msgid "rank-mismatch between if-statement%'s condition and the else-block"
msgstr ""
-#: c/c-typeck.c:10134 cp/parser.c:11745
+#: c/c-typeck.c:10141 cp/parser.c:11756
#, gcc-internal-format
msgid "break statement not within loop or switch"
msgstr ""
-#: c/c-typeck.c:10136 cp/parser.c:11771
+#: c/c-typeck.c:10143 cp/parser.c:11782
#, gcc-internal-format
msgid "continue statement not within a loop"
msgstr ""
-#: c/c-typeck.c:10141 cp/parser.c:11758
+#: c/c-typeck.c:10148 cp/parser.c:11769
#, gcc-internal-format
msgid "break statement used with OpenMP for loop"
msgstr ""
-#: c/c-typeck.c:10146
+#: c/c-typeck.c:10153
#, gcc-internal-format
msgid "break statement within %<#pragma simd%> loop body"
msgstr ""
-#: c/c-typeck.c:10148 cp/parser.c:11775
+#: c/c-typeck.c:10155 cp/parser.c:11786
#, gcc-internal-format
msgid "continue statement within %<#pragma simd%> loop body"
msgstr ""
-#: c/c-typeck.c:10174 cp/cp-gimplify.c:444
+#: c/c-typeck.c:10181 cp/cp-gimplify.c:444
#, gcc-internal-format
msgid "statement with no effect"
msgstr ""
-#: c/c-typeck.c:10218
+#: c/c-typeck.c:10225
#, gcc-internal-format
msgid "expression statement has incomplete type"
msgstr ""
-#: c/c-typeck.c:11019 c/c-typeck.c:11176 cp/typeck.c:4790
+#: c/c-typeck.c:11026 c/c-typeck.c:11183 cp/typeck.c:4790
#, gcc-internal-format
msgid "comparing vectors with different element types"
msgstr ""
-#: c/c-typeck.c:11026 c/c-typeck.c:11183 cp/typeck.c:4802
+#: c/c-typeck.c:11033 c/c-typeck.c:11190 cp/typeck.c:4802
#, gcc-internal-format
msgid "comparing vectors with different number of elements"
msgstr ""
-#: c/c-typeck.c:11057 cp/typeck.c:4528
+#: c/c-typeck.c:11064 cp/typeck.c:4528
#, gcc-internal-format
msgid "comparing floating point with == or != is unsafe"
msgstr ""
-#: c/c-typeck.c:11074 c/c-typeck.c:11094
+#: c/c-typeck.c:11081 c/c-typeck.c:11101
#, gcc-internal-format
msgid ""
"the comparison will always evaluate as %<false%> for the address of %qD will "
"never be NULL"
msgstr ""
-#: c/c-typeck.c:11080 c/c-typeck.c:11100
+#: c/c-typeck.c:11087 c/c-typeck.c:11107
#, gcc-internal-format
msgid ""
"the comparison will always evaluate as %<true%> for the address of %qD will "
"never be NULL"
msgstr ""
-#: c/c-typeck.c:11121 c/c-typeck.c:11241
+#: c/c-typeck.c:11128 c/c-typeck.c:11248
#, gcc-internal-format
msgid "comparison of pointers to disjoint address spaces"
msgstr ""
-#: c/c-typeck.c:11128 c/c-typeck.c:11134
+#: c/c-typeck.c:11135 c/c-typeck.c:11141
#, gcc-internal-format
msgid "ISO C forbids comparison of %<void *%> with function pointer"
msgstr ""
-#: c/c-typeck.c:11141 c/c-typeck.c:11251
+#: c/c-typeck.c:11148 c/c-typeck.c:11258
#, gcc-internal-format
msgid "comparison of distinct pointer types lacks a cast"
msgstr ""
-#: c/c-typeck.c:11153 c/c-typeck.c:11158 c/c-typeck.c:11277 c/c-typeck.c:11282
+#: c/c-typeck.c:11160 c/c-typeck.c:11165 c/c-typeck.c:11284 c/c-typeck.c:11289
#, gcc-internal-format
msgid "comparison between pointer and integer"
msgstr ""
-#: c/c-typeck.c:11229
+#: c/c-typeck.c:11236
#, gcc-internal-format
msgid "comparison of complete and incomplete pointers"
msgstr ""
-#: c/c-typeck.c:11231
+#: c/c-typeck.c:11238
#, gcc-internal-format
msgid "ISO C forbids ordered comparisons of pointers to functions"
msgstr ""
-#: c/c-typeck.c:11236
+#: c/c-typeck.c:11243
#, gcc-internal-format
msgid "ordered comparison of pointer with null pointer"
msgstr ""
-#: c/c-typeck.c:11259 c/c-typeck.c:11262 c/c-typeck.c:11269 c/c-typeck.c:11272
+#: c/c-typeck.c:11266 c/c-typeck.c:11269 c/c-typeck.c:11276 c/c-typeck.c:11279
#: cp/typeck.c:4853 cp/typeck.c:4860
#, gcc-internal-format
msgid "ordered comparison of pointer with integer zero"
msgstr ""
-#: c/c-typeck.c:11323 cp/typeck.c:4939
+#: c/c-typeck.c:11330 cp/typeck.c:4939
#, gcc-internal-format
msgid ""
"implicit conversion from %qT to %qT to match other operand of binary "
"expression"
msgstr ""
-#: c/c-typeck.c:11636
+#: c/c-typeck.c:11643
#, gcc-internal-format
msgid "used array that cannot be converted to pointer where scalar is required"
msgstr ""
-#: c/c-typeck.c:11640
+#: c/c-typeck.c:11647
#, gcc-internal-format
msgid "used struct type value where scalar is required"
msgstr ""
-#: c/c-typeck.c:11644
+#: c/c-typeck.c:11651
#, gcc-internal-format
msgid "used union type value where scalar is required"
msgstr ""
-#: c/c-typeck.c:11660
+#: c/c-typeck.c:11667
#, gcc-internal-format
msgid "used vector type where scalar is required"
msgstr ""
-#: c/c-typeck.c:11850 cp/semantics.c:8512
+#: c/c-typeck.c:11857 cp/semantics.c:8516
#, gcc-internal-format
msgid ""
"%<#pragma omp cancel must specify one of %<parallel%>, %<for%>, %<sections%> "
"or %<taskgroup%> clauses"
msgstr ""
-#: c/c-typeck.c:11889 cp/semantics.c:8549
+#: c/c-typeck.c:11896 cp/semantics.c:8553
#, gcc-internal-format
msgid ""
"%<#pragma omp cancellation point must specify one of %<parallel%>, %<for%>, "
"%<sections%> or %<taskgroup%> clauses"
msgstr ""
-#: c/c-typeck.c:11939 c/c-typeck.c:13045 cp/semantics.c:4513
-#: cp/semantics.c:6627
+#: c/c-typeck.c:11946 c/c-typeck.c:13052 cp/semantics.c:4507
+#: cp/semantics.c:6628
#, gcc-internal-format
msgid "bit-field %qE in %qs clause"
msgstr ""
-#: c/c-typeck.c:11948 c/c-typeck.c:13062 cp/semantics.c:4522
-#: cp/semantics.c:6644
+#: c/c-typeck.c:11955 c/c-typeck.c:13069 cp/semantics.c:4517
+#: cp/semantics.c:6646
#, gcc-internal-format
msgid "%qE is a member of a union"
msgstr ""
-#: c/c-typeck.c:11958 cp/semantics.c:4534 cp/semantics.c:6667
+#: c/c-typeck.c:11965 cp/semantics.c:4531 cp/semantics.c:6671
#, gcc-internal-format
msgid "%qD is not a variable in %qs clause"
msgstr ""
-#: c/c-typeck.c:11962 c/c-typeck.c:13079 cp/semantics.c:4538
-#: cp/semantics.c:6670
+#: c/c-typeck.c:11969 c/c-typeck.c:13086 cp/semantics.c:4535
+#: cp/semantics.c:6674
#, gcc-internal-format
msgid "%qE is not a variable in %qs clause"
msgstr ""
-#: c/c-typeck.c:11970 c/c-typeck.c:13086 c/c-typeck.c:13171
-#: cp/semantics.c:4555 cp/semantics.c:6676 cp/semantics.c:6830
+#: c/c-typeck.c:11977 c/c-typeck.c:13093 c/c-typeck.c:13178 cp/semantics.c:4552
+#: cp/semantics.c:6680 cp/semantics.c:6834
#, gcc-internal-format
msgid "%qD is threadprivate variable in %qs clause"
msgstr ""
-#: c/c-typeck.c:11992 cp/semantics.c:4586
+#: c/c-typeck.c:11999 cp/semantics.c:4583
#, gcc-internal-format
msgid "low bound %qE of array section does not have integral type"
msgstr ""
-#: c/c-typeck.c:11999 cp/semantics.c:4593
+#: c/c-typeck.c:12006 cp/semantics.c:4590
#, gcc-internal-format
msgid "length %qE of array section does not have integral type"
msgstr ""
-#: c/c-typeck.c:12026 c/c-typeck.c:12090 c/c-typeck.c:12348
-#: cp/semantics.c:4629 cp/semantics.c:4693
+#: c/c-typeck.c:12033 c/c-typeck.c:12097 c/c-typeck.c:12355 cp/semantics.c:4626
+#: cp/semantics.c:4690
#, gcc-internal-format
msgid "zero length array section in %qs clause"
msgstr ""
-#: c/c-typeck.c:12045 cp/semantics.c:4648
+#: c/c-typeck.c:12052 cp/semantics.c:4645
#, gcc-internal-format
msgid "for unknown bound array type length expression must be specified"
msgstr ""
-#: c/c-typeck.c:12053 cp/semantics.c:4656
+#: c/c-typeck.c:12060 cp/semantics.c:4653
#, gcc-internal-format
msgid "negative low bound in array section in %qs clause"
msgstr ""
-#: c/c-typeck.c:12062 c/c-typeck.c:12172 cp/semantics.c:4665
-#: cp/semantics.c:4775
+#: c/c-typeck.c:12069 c/c-typeck.c:12179 cp/semantics.c:4662
+#: cp/semantics.c:4772
#, gcc-internal-format
msgid "negative length in array section in %qs clause"
msgstr ""
-#: c/c-typeck.c:12079 cp/semantics.c:4682
+#: c/c-typeck.c:12086 cp/semantics.c:4679
#, gcc-internal-format
msgid "low bound %qE above array section size in %qs clause"
msgstr ""
-#: c/c-typeck.c:12116 cp/semantics.c:4719
+#: c/c-typeck.c:12123 cp/semantics.c:4716
#, gcc-internal-format
msgid "length %qE above array section size in %qs clause"
msgstr ""
-#: c/c-typeck.c:12131 cp/semantics.c:4734
+#: c/c-typeck.c:12138 cp/semantics.c:4731
#, gcc-internal-format
msgid "high bound %qE above array section size in %qs clause"
msgstr ""
-#: c/c-typeck.c:12164 cp/semantics.c:4767
+#: c/c-typeck.c:12171 cp/semantics.c:4764
#, gcc-internal-format
msgid "for pointer type length expression must be specified"
msgstr ""
-#: c/c-typeck.c:12182 c/c-typeck.c:12291 cp/semantics.c:4785
-#: cp/semantics.c:4897
+#: c/c-typeck.c:12189 c/c-typeck.c:12298 cp/semantics.c:4782
+#: cp/semantics.c:4894
#, gcc-internal-format
msgid "array section is not contiguous in %qs clause"
msgstr ""
-#: c/c-typeck.c:12190 cp/semantics.c:4793
+#: c/c-typeck.c:12197 cp/semantics.c:4790
#, gcc-internal-format
msgid "%qE does not have pointer or array type"
msgstr ""
-#: c/c-typeck.c:12568 c/c-typeck.c:12578
+#: c/c-typeck.c:12575 c/c-typeck.c:12585
#, gcc-internal-format
msgid "%qD in %<reduction%> clause is a zero size array"
msgstr ""
-#: c/c-typeck.c:12636
+#: c/c-typeck.c:12643
#, gcc-internal-format
msgid "%qE has invalid type for %<reduction(%s)%>"
msgstr ""
-#: c/c-typeck.c:12645 cp/semantics.c:5704
+#: c/c-typeck.c:12652 cp/semantics.c:5701
#, gcc-internal-format
msgid "user defined reduction not found for %qE"
msgstr ""
-#: c/c-typeck.c:12733
+#: c/c-typeck.c:12740
#, gcc-internal-format
msgid "variable length element type in array %<reduction%> clause"
msgstr ""
-#: c/c-typeck.c:12751 c/c-typeck.c:13229 cp/semantics.c:7146
+#: c/c-typeck.c:12758 c/c-typeck.c:13236 cp/semantics.c:7150
#, gcc-internal-format
msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
msgstr ""
-#: c/c-typeck.c:12763 cp/semantics.c:7186
+#: c/c-typeck.c:12770 cp/semantics.c:7190
#, gcc-internal-format
msgid "%qE must be %<threadprivate%> for %<copyin%>"
msgstr ""
-#: c/c-typeck.c:12777 cp/semantics.c:5866
+#: c/c-typeck.c:12784 cp/semantics.c:5863
#, gcc-internal-format
msgid ""
"modifier should not be specified in %<linear%> clause on %<simd%> or %<for%> "
"constructs"
msgstr ""
-#: c/c-typeck.c:12785
+#: c/c-typeck.c:12792
#, gcc-internal-format
msgid ""
"linear clause applied to non-integral non-pointer variable with type %qT"
msgstr ""
-#: c/c-typeck.c:12805 cp/semantics.c:5933
+#: c/c-typeck.c:12812 cp/semantics.c:5931
#, gcc-internal-format
msgid "%<linear%> clause step %qE is neither constant nor a parameter"
msgstr ""
-#: c/c-typeck.c:12835 c/c-typeck.c:13164 cp/semantics.c:6017
-#: cp/semantics.c:6823
+#: c/c-typeck.c:12842 c/c-typeck.c:13171 cp/semantics.c:6015
+#: cp/semantics.c:6827
#, gcc-internal-format
msgid "%qE is not a variable in clause %qs"
msgstr ""
-#: c/c-typeck.c:12844 c/c-typeck.c:12871 c/c-typeck.c:12897
+#: c/c-typeck.c:12851 c/c-typeck.c:12878 c/c-typeck.c:12904
#, gcc-internal-format
msgid "%qE appears more than once in data clauses"
msgstr ""
-#: c/c-typeck.c:12850 c/c-typeck.c:12876 c/c-typeck.c:13120 c/c-typeck.c:13137
-#: cp/semantics.c:6031 cp/semantics.c:6083 cp/semantics.c:6729
-#: cp/semantics.c:6746
+#: c/c-typeck.c:12857 c/c-typeck.c:12883 c/c-typeck.c:13127 c/c-typeck.c:13144
+#: cp/semantics.c:6029 cp/semantics.c:6081 cp/semantics.c:6733
+#: cp/semantics.c:6750
#, gcc-internal-format
msgid "%qD appears both in data and map clauses"
msgstr ""
-#: c/c-typeck.c:12864 cp/semantics.c:6072
+#: c/c-typeck.c:12871 cp/semantics.c:6070
#, gcc-internal-format
msgid "%qE is not a variable in clause %<firstprivate%>"
msgstr ""
-#: c/c-typeck.c:12890 cp/semantics.c:6111
+#: c/c-typeck.c:12897 cp/semantics.c:6109
#, gcc-internal-format
msgid "%qE is not a variable in clause %<lastprivate%>"
msgstr ""
-#: c/c-typeck.c:12909 cp/semantics.c:6461
+#: c/c-typeck.c:12916 cp/semantics.c:6459
#, gcc-internal-format
msgid "%qE is not a variable in %<aligned%> clause"
msgstr ""
-#: c/c-typeck.c:12916
+#: c/c-typeck.c:12923
#, gcc-internal-format
msgid "%qE in %<aligned%> clause is neither a pointer nor an array"
msgstr ""
-#: c/c-typeck.c:12923
+#: c/c-typeck.c:12930
#, gcc-internal-format
msgid "%qE appears more than once in %<aligned%> clauses"
msgstr ""
-#: c/c-typeck.c:12978 cp/semantics.c:6543
+#: c/c-typeck.c:12985 cp/semantics.c:6541
#, gcc-internal-format
msgid "%qE is not a variable in %<depend%> clause"
msgstr ""
-#: c/c-typeck.c:13000 cp/semantics.c:6574
+#: c/c-typeck.c:13007 cp/semantics.c:6572
#, gcc-internal-format
msgid "array section does not have mappable type in %qs clause"
msgstr ""
-#: c/c-typeck.c:13017 c/c-typeck.c:13129 cp/semantics.c:6591
-#: cp/semantics.c:6738
+#: c/c-typeck.c:13024 c/c-typeck.c:13136 cp/semantics.c:6591
+#: cp/semantics.c:6742
#, gcc-internal-format
msgid "%qD appears more than once in motion clauses"
msgstr ""
-#: c/c-typeck.c:13020 c/c-typeck.c:13131 cp/semantics.c:6594
-#: cp/semantics.c:6740
+#: c/c-typeck.c:13027 c/c-typeck.c:13138 cp/semantics.c:6594
+#: cp/semantics.c:6744
#, gcc-internal-format
msgid "%qD appears more than once in map clauses"
msgstr ""
-#: c/c-typeck.c:13052 cp/semantics.c:6634
+#: c/c-typeck.c:13059 cp/semantics.c:6635
#, gcc-internal-format
msgid "%qE does not have a mappable type in %qs clause"
msgstr ""
-#: c/c-typeck.c:13105 c/c-typeck.c:13178 cp/semantics.c:6706
-#: cp/semantics.c:6837
+#: c/c-typeck.c:13112 c/c-typeck.c:13185 cp/semantics.c:6710
+#: cp/semantics.c:6841
#, gcc-internal-format
msgid "%qD does not have a mappable type in %qs clause"
msgstr ""
-#: c/c-typeck.c:13115 cp/semantics.c:6025 cp/semantics.c:6078
-#: cp/semantics.c:6117 cp/semantics.c:6724
+#: c/c-typeck.c:13122 cp/semantics.c:6023 cp/semantics.c:6076
+#: cp/semantics.c:6115 cp/semantics.c:6728
#, gcc-internal-format
msgid "%qD appears more than once in data clauses"
msgstr ""
-#: c/c-typeck.c:13159 cp/semantics.c:6817
+#: c/c-typeck.c:13166 cp/semantics.c:6821
#, gcc-internal-format
msgid "%qE is neither a variable nor a function name in clause %qs"
msgstr ""
-#: c/c-typeck.c:13187 cp/semantics.c:6846
+#: c/c-typeck.c:13194 cp/semantics.c:6850
#, gcc-internal-format
msgid "%qE appears more than once on the same %<declare target%> directive"
msgstr ""
-#: c/c-typeck.c:13201 cp/semantics.c:6861
+#: c/c-typeck.c:13208 cp/semantics.c:6865
#, gcc-internal-format
msgid "%qD is not an argument in %<uniform%> clause"
msgstr ""
-#: c/c-typeck.c:13204 cp/semantics.c:6863
+#: c/c-typeck.c:13211 cp/semantics.c:6867
#, gcc-internal-format
msgid "%qE is not an argument in %<uniform%> clause"
msgstr ""
-#: c/c-typeck.c:13219
+#: c/c-typeck.c:13226
#, gcc-internal-format
msgid "%qs variable is neither a pointer nor an array"
msgstr ""
-#: c/c-typeck.c:13294 cp/semantics.c:6271
+#: c/c-typeck.c:13301 cp/semantics.c:6269
#, gcc-internal-format
msgid "%<nonmonotonic%> modifier specified for %qs schedule kind"
msgstr ""
-#: c/c-typeck.c:13325 cp/semantics.c:7038
+#: c/c-typeck.c:13332 cp/semantics.c:7042
#, gcc-internal-format
msgid "%<inbranch%> clause is incompatible with %<notinbranch%>"
msgstr ""
-#: c/c-typeck.c:13375 cp/semantics.c:7229
+#: c/c-typeck.c:13382 cp/semantics.c:7233
#, gcc-internal-format
msgid "%qE is predetermined %qs for %qs"
msgstr ""
-#: c/c-typeck.c:13395 cp/semantics.c:7120
+#: c/c-typeck.c:13402 cp/semantics.c:7124
#, gcc-internal-format
msgid "%<simdlen%> clause value is bigger than %<safelen%> clause value"
msgstr ""
-#: c/c-typeck.c:13407 cp/semantics.c:7133
+#: c/c-typeck.c:13414 cp/semantics.c:7137
#, gcc-internal-format
msgid ""
"%<nonmonotonic%> schedule modifier specified together with %<ordered%> clause"
msgstr ""
-#: c/c-typeck.c:13425 cp/semantics.c:7100
+#: c/c-typeck.c:13432 cp/semantics.c:7104
#, gcc-internal-format
msgid ""
"%<linear%> clause step is a parameter %qD not specified in %<uniform%> clause"
msgstr ""
-#: c/c-typeck.c:13553
+#: c/c-typeck.c:13561
#, gcc-internal-format
msgid "cannot use %<va_arg%> with reverse storage order"
msgstr ""
-#: c/c-typeck.c:13558
+#: c/c-typeck.c:13566
#, gcc-internal-format
msgid "second argument to %<va_arg%> is of incomplete type %qT"
msgstr ""
-#: c/c-typeck.c:13564
+#: c/c-typeck.c:13572
#, gcc-internal-format
msgid "C++ requires promoted type, not enum type, in %<va_arg%>"
msgstr ""
#. A bad conversion for 'this' must be discarding cv-quals.
-#: cp/call.c:3313
+#: cp/call.c:3319
#, gcc-internal-format
msgid " passing %qT as %<this%> argument discards qualifiers"
msgstr ""
-#: cp/call.c:3317
+#: cp/call.c:3323
#, gcc-internal-format
msgid " no known conversion for implicit %<this%> parameter from %qT to %qT"
msgstr ""
-#: cp/call.c:3324
+#: cp/call.c:3330
#, gcc-internal-format, gfc-internal-format
msgid " conversion of argument %d would be ill-formed:"
msgstr ""
#. Conversion of conversion function return value failed.
-#: cp/call.c:3331
+#: cp/call.c:3337
#, gcc-internal-format
msgid " no known conversion from %qT to %qT"
msgstr ""
-#: cp/call.c:3334
+#: cp/call.c:3340
#, gcc-internal-format
msgid " no known conversion for argument %d from %qT to %qT"
msgstr ""
-#: cp/call.c:3345 cp/pt.c:6094
+#: cp/call.c:3351 cp/pt.c:6108
#, gcc-internal-format, gfc-internal-format
msgid " candidate expects %d argument, %d provided"
msgid_plural " candidate expects %d arguments, %d provided"
msgstr[0] ""
msgstr[1] ""
-#: cp/call.c:3370
+#: cp/call.c:3376
#, gcc-internal-format
msgid "%s%D(%T, %T, %T) <built-in>"
msgstr ""
-#: cp/call.c:3375
+#: cp/call.c:3381
#, gcc-internal-format
msgid "%s%D(%T, %T) <built-in>"
msgstr ""
-#: cp/call.c:3379
+#: cp/call.c:3385
#, gcc-internal-format
msgid "%s%D(%T) <built-in>"
msgstr ""
-#: cp/call.c:3383
+#: cp/call.c:3389
#, gcc-internal-format
msgid "%s%T <conversion>"
msgstr ""
-#: cp/call.c:3385
+#: cp/call.c:3391
#, gcc-internal-format
msgid "%s%#D <near match>"
msgstr ""
-#: cp/call.c:3387
+#: cp/call.c:3393
#, gcc-internal-format
msgid "%s%#D <deleted>"
msgstr ""
-#: cp/call.c:3389
+#: cp/call.c:3395
#, gcc-internal-format
msgid "%s%#D"
msgstr ""
-#: cp/call.c:3408
+#: cp/call.c:3414
#, gcc-internal-format
msgid ""
" return type %qT of explicit conversion function cannot be converted to %qT "
"with a qualification conversion"
msgstr ""
-#: cp/call.c:3414
+#: cp/call.c:3420
#, gcc-internal-format
msgid ""
" conversion from return type %qT of template conversion function "
"specialization to %qT is not an exact match"
msgstr ""
-#: cp/call.c:3425
+#: cp/call.c:3431
#, gcc-internal-format
msgid ""
" substitution of deduced template arguments resulted in errors seen above"
msgstr ""
#. Re-run template unification with diagnostics.
-#: cp/call.c:3430
+#: cp/call.c:3436
#, gcc-internal-format
msgid " template argument deduction/substitution failed:"
msgstr ""
-#: cp/call.c:3444
+#: cp/call.c:3450
#, gcc-internal-format
msgid ""
" a constructor taking a single argument of its own class type is invalid"
msgstr ""
-#: cp/call.c:3808
+#: cp/call.c:3814
#, gcc-internal-format
msgid "conversion from %qT to %qT is ambiguous"
msgstr ""
-#: cp/call.c:3935
+#: cp/call.c:3941
#, gcc-internal-format
msgid ""
"conversion from %qT to %qT not considered for non-type template argument"
msgstr ""
-#: cp/call.c:4053
+#: cp/call.c:4059
#, gcc-internal-format
msgid "no matching function for call to %<%D(%A)%>"
msgstr ""
-#: cp/call.c:4056
+#: cp/call.c:4062
#, gcc-internal-format
msgid "call of overloaded %<%D(%A)%> is ambiguous"
msgstr ""
#. It's no good looking for an overloaded operator() on a
#. pointer-to-member-function.
-#: cp/call.c:4291
+#: cp/call.c:4297
#, gcc-internal-format
msgid ""
"pointer-to-member function %E cannot be called without an object; consider "
"using .* or ->*"
msgstr ""
-#: cp/call.c:4362
+#: cp/call.c:4368
#, gcc-internal-format
msgid "no match for call to %<(%T) (%A)%>"
msgstr ""
-#: cp/call.c:4375
+#: cp/call.c:4381
#, gcc-internal-format
msgid "call of %<(%T) (%A)%> is ambiguous"
msgstr ""
-#: cp/call.c:4423
+#: cp/call.c:4432
#, gcc-internal-format
msgid "ambiguous overload for "
msgstr ""
-#: cp/call.c:4424
+#: cp/call.c:4433
#, gcc-internal-format
msgid "no match for "
msgstr ""
-#: cp/call.c:4427
+#: cp/call.c:4436
#, gcc-internal-format
msgid " (operand types are %qT, %qT, and %qT)"
msgstr ""
-#: cp/call.c:4429
+#: cp/call.c:4438
#, gcc-internal-format
msgid " (operand types are %qT and %qT)"
msgstr ""
-#: cp/call.c:4431
+#: cp/call.c:4440
#, gcc-internal-format
msgid " (operand type is %qT)"
msgstr ""
-#: cp/call.c:4451
+#: cp/call.c:4460
#, gcc-internal-format
msgid "ternary %<operator?:%>"
msgstr ""
-#: cp/call.c:4455
+#: cp/call.c:4464
#, gcc-internal-format
msgid "ternary %<operator?:%> in %<%E ? %E : %E%>"
msgstr ""
-#: cp/call.c:4464 cp/call.c:4495 cp/call.c:4504
+#: cp/call.c:4473 cp/call.c:4504 cp/call.c:4513
#, gcc-internal-format
msgid "%<operator%s%>"
msgstr ""
-#: cp/call.c:4467
+#: cp/call.c:4476
#, gcc-internal-format
msgid "%<operator%s%> in %<%E%s%>"
msgstr ""
-#: cp/call.c:4474
+#: cp/call.c:4483
#, gcc-internal-format
msgid "%<operator[]%>"
msgstr ""
-#: cp/call.c:4477
+#: cp/call.c:4486
#, gcc-internal-format
msgid "%<operator[]%> in %<%E[%E]%>"
msgstr ""
-#: cp/call.c:4485
+#: cp/call.c:4494
#, gcc-internal-format
msgid "%qs"
msgstr ""
-#: cp/call.c:4488
+#: cp/call.c:4497
#, gcc-internal-format
msgid "%qs in %<%s %E%>"
msgstr ""
-#: cp/call.c:4498
+#: cp/call.c:4507
#, gcc-internal-format
msgid "%<operator%s%> in %<%E %s %E%>"
msgstr ""
-#: cp/call.c:4507
+#: cp/call.c:4516
#, gcc-internal-format
msgid "%<operator%s%> in %<%s%E%>"
msgstr ""
-#: cp/call.c:4616
+#: cp/call.c:4625
#, gcc-internal-format
msgid "ISO C++ forbids omitting the middle term of a ?: expression"
msgstr ""
-#: cp/call.c:4675
+#: cp/call.c:4684
#, gcc-internal-format
msgid ""
"inferred scalar type %qT is not an integer or floating point type of the "
"same size as %qT"
msgstr ""
-#: cp/call.c:4752
+#: cp/call.c:4761
#, gcc-internal-format
msgid "incompatible vector types in conditional expression: %qT, %qT and %qT"
msgstr ""
-#: cp/call.c:4842
+#: cp/call.c:4851
#, gcc-internal-format
msgid ""
"second operand to the conditional operator is of type %<void%>, but the "
"third operand is neither a throw-expression nor of type %<void%>"
msgstr ""
-#: cp/call.c:4847
+#: cp/call.c:4856
#, gcc-internal-format
msgid ""
"third operand to the conditional operator is of type %<void%>, but the "
"second operand is neither a throw-expression nor of type %<void%>"
msgstr ""
-#: cp/call.c:4898 cp/call.c:5014 cp/call.c:5157
+#: cp/call.c:4907 cp/call.c:5023 cp/call.c:5166
#, gcc-internal-format
msgid "operands to ?: have different types %qT and %qT"
msgstr ""
-#: cp/call.c:4901
+#: cp/call.c:4910
#, gcc-internal-format
msgid " and each type can be converted to the other"
msgstr ""
-#: cp/call.c:5102
+#: cp/call.c:5111
#, gcc-internal-format
msgid "enumeral mismatch in conditional expression: %qT vs %qT"
msgstr ""
-#: cp/call.c:5114
+#: cp/call.c:5123
#, gcc-internal-format
msgid "enumeral and non-enumeral type in conditional expression"
msgstr ""
-#: cp/call.c:5577
+#: cp/call.c:5586
#, gcc-internal-format
msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
msgstr ""
-#: cp/call.c:5579
+#: cp/call.c:5588
#, gcc-internal-format
msgid "no %<%D(int)%> declared for postfix %qs"
msgstr ""
-#: cp/call.c:5685
+#: cp/call.c:5694
#, gcc-internal-format
msgid "comparison between %q#T and %q#T"
msgstr ""
-#: cp/call.c:5956
+#: cp/call.c:5965
#, gcc-internal-format
msgid ""
"exception cleanup for this placement new selects non-placement operator "
"delete"
msgstr ""
-#: cp/call.c:5959
+#: cp/call.c:5968
#, gcc-internal-format
msgid ""
"%qD is a usual (non-placement) deallocation function in C++14 (or with -"
"fsized-deallocation)"
msgstr ""
-#: cp/call.c:5994
+#: cp/call.c:6003
#, gcc-internal-format
msgid "%qD is a usual (non-placement) deallocation function"
msgstr ""
-#: cp/call.c:6111
+#: cp/call.c:6120
#, gcc-internal-format
msgid "no corresponding deallocation function for %qD"
msgstr ""
-#: cp/call.c:6117
+#: cp/call.c:6126
#, gcc-internal-format
msgid "no suitable %<operator %s%> for %qT"
msgstr ""
-#: cp/call.c:6139
+#: cp/call.c:6148
#, gcc-internal-format
msgid "%q#D is private within this context"
msgstr ""
-#: cp/call.c:6141
+#: cp/call.c:6150
#, gcc-internal-format
msgid "declared private here"
msgstr ""
-#: cp/call.c:6145
+#: cp/call.c:6154
#, gcc-internal-format
msgid "%q#D is protected within this context"
msgstr ""
-#: cp/call.c:6147
+#: cp/call.c:6156
#, gcc-internal-format
msgid "declared protected here"
msgstr ""
-#: cp/call.c:6151
+#: cp/call.c:6160
#, gcc-internal-format
msgid "%q#D is inaccessible within this context"
msgstr ""
-#: cp/call.c:6204
+#: cp/call.c:6213
#, gcc-internal-format
msgid "passing NULL to non-pointer argument %P of %qD"
msgstr ""
-#: cp/call.c:6208
+#: cp/call.c:6217
#, gcc-internal-format
msgid "converting to non-pointer type %qT from NULL"
msgstr ""
-#: cp/call.c:6217
+#: cp/call.c:6226
#, gcc-internal-format
msgid "converting %<false%> to pointer type for argument %P of %qD"
msgstr ""
-#: cp/call.c:6221
+#: cp/call.c:6230
#, gcc-internal-format
msgid "converting %<false%> to pointer type %qT"
msgstr ""
-#: cp/call.c:6284
+#: cp/call.c:6293
#, gcc-internal-format
msgid "too many braces around initializer for %qT"
msgstr ""
-#: cp/call.c:6295
+#: cp/call.c:6304
#, gcc-internal-format
msgid "converting to %qT from %qT requires direct-initialization"
msgstr ""
-#: cp/call.c:6303
+#: cp/call.c:6312
#, gcc-internal-format
msgid "invalid user-defined conversion from %qT to %qT"
msgstr ""
-#: cp/call.c:6320 cp/call.c:6344 cp/call.c:6462 cp/call.c:6554 cp/call.c:6596
-#: cp/call.c:6624
+#: cp/call.c:6329 cp/call.c:6353 cp/call.c:6472 cp/call.c:6564 cp/call.c:6606
+#: cp/call.c:6634
#, gcc-internal-format
msgid " initializing argument %P of %qD"
msgstr ""
-#: cp/call.c:6340 cp/cvt.c:224
+#: cp/call.c:6349 cp/cvt.c:224
#, gcc-internal-format
msgid "invalid conversion from %qT to %qT"
msgstr ""
-#: cp/call.c:6374 cp/call.c:6381
+#: cp/call.c:6384 cp/call.c:6391
#, gcc-internal-format
msgid ""
"converting to %qT from initializer list would use explicit constructor %qD"
msgstr ""
-#: cp/call.c:6377
+#: cp/call.c:6387
#, gcc-internal-format
msgid "in C++11 and above a default constructor can be explicit"
msgstr ""
-#: cp/call.c:6610
+#: cp/call.c:6620
#, gcc-internal-format
msgid "cannot bind %qT lvalue to %qT"
msgstr ""
-#: cp/call.c:6614 cp/call.c:9945
+#: cp/call.c:6624 cp/call.c:9956
#, gcc-internal-format
msgid ""
"invalid initialization of non-const reference of type %qT from an rvalue of "
"type %qT"
msgstr ""
-#: cp/call.c:6617
+#: cp/call.c:6627
#, gcc-internal-format
msgid "binding %qT to reference of type %qT discards qualifiers"
msgstr ""
-#: cp/call.c:6653
+#: cp/call.c:6663
#, gcc-internal-format
msgid "cannot bind bitfield %qE to %qT"
msgstr ""
-#: cp/call.c:6656 cp/call.c:6673
+#: cp/call.c:6666 cp/call.c:6683
#, gcc-internal-format
msgid "cannot bind packed field %qE to %qT"
msgstr ""
-#: cp/call.c:6659
+#: cp/call.c:6669
#, gcc-internal-format
msgid "cannot bind rvalue %qE to %qT"
msgstr ""
-#: cp/call.c:6786 cp/cvt.c:1738
+#: cp/call.c:6796 cp/cvt.c:1738
#, gcc-internal-format
msgid ""
"scoped enum %qT passed through ... as %qT before -fabi-version=6, %qT after"
msgstr ""
-#: cp/call.c:6827
+#: cp/call.c:6837
#, gcc-internal-format
msgid ""
"passing objects of non-trivially-copyable type %q#T through %<...%> is "
"conditionally supported"
msgstr ""
-#: cp/call.c:6858
+#: cp/call.c:6868
#, gcc-internal-format
msgid "cannot receive reference type %qT through %<...%>"
msgstr ""
-#: cp/call.c:6868
+#: cp/call.c:6878
#, gcc-internal-format
msgid ""
"receiving objects of non-trivially-copyable type %q#T through %<...%> is "
"conditionally-supported"
msgstr ""
-#: cp/call.c:6928
+#: cp/call.c:6938
#, gcc-internal-format
msgid "recursive evaluation of default argument for %q#D"
msgstr ""
-#: cp/call.c:6937
+#: cp/call.c:6947
#, gcc-internal-format
msgid ""
"call to %qD uses the default argument for parameter %P, which is not yet "
"defined"
msgstr ""
-#: cp/call.c:7039
+#: cp/call.c:7049
#, gcc-internal-format
msgid "argument of function call might be a candidate for a format attribute"
msgstr ""
-#: cp/call.c:7088
+#: cp/call.c:7098
#, gcc-internal-format
msgid "use of multiversioned function without a default"
msgstr ""
-#: cp/call.c:7369
+#: cp/call.c:7380
#, gcc-internal-format
msgid "passing %qT as %<this%> argument discards qualifiers"
msgstr ""
-#: cp/call.c:7372 cp/call.c:7488 cp/call.c:9175 cp/name-lookup.c:5728
+#: cp/call.c:7383 cp/call.c:7499 cp/call.c:9186 cp/name-lookup.c:5728
#, gcc-internal-format
msgid " in call to %qD"
msgstr ""
-#: cp/call.c:7402
+#: cp/call.c:7413
#, gcc-internal-format
msgid "%qT is not an accessible base of %qT"
msgstr ""
-#: cp/call.c:7484
+#: cp/call.c:7495
#, gcc-internal-format
msgid "deducing %qT as %qT"
msgstr ""
-#: cp/call.c:7490
+#: cp/call.c:7501
#, gcc-internal-format
msgid " (you can disable this with -fno-deduce-init-list)"
msgstr ""
-#: cp/call.c:7866
+#: cp/call.c:7877
#, gcc-internal-format
msgid "could not find class$ field in java interface type %qT"
msgstr ""
-#: cp/call.c:8037
+#: cp/call.c:8048
#, gcc-internal-format
msgid "constructor delegates to itself"
msgstr ""
-#: cp/call.c:8127
+#: cp/call.c:8138
#, gcc-internal-format
msgid "call to non-function %qD"
msgstr ""
-#: cp/call.c:8173 cp/pt.c:13652 cp/typeck.c:2783
+#: cp/call.c:8184 cp/pt.c:13718 cp/typeck.c:2783
#, gcc-internal-format
msgid "cannot call constructor %<%T::%D%> directly"
msgstr ""
-#: cp/call.c:8175
+#: cp/call.c:8186
#, gcc-internal-format
msgid "for a function-style cast, remove the redundant %<::%D%>"
msgstr ""
-#: cp/call.c:8305
+#: cp/call.c:8316
#, gcc-internal-format
msgid "no matching function for call to %<%T::operator %T(%A)%#V%>"
msgstr ""
-#: cp/call.c:8318
+#: cp/call.c:8329
#, gcc-internal-format
msgid "no matching function for call to %<%T::%s(%A)%#V%>"
msgstr ""
-#: cp/call.c:8344
+#: cp/call.c:8355
#, gcc-internal-format
msgid "no matching function for call to %<%s(%A)%>"
msgstr ""
-#: cp/call.c:8347
+#: cp/call.c:8358
#, gcc-internal-format
msgid "call of overloaded %<%s(%A)%> is ambiguous"
msgstr ""
-#: cp/call.c:8368
+#: cp/call.c:8379
#, gcc-internal-format
msgid "pure virtual %q#D called from non-static data member initializer"
msgstr ""
-#: cp/call.c:8394
+#: cp/call.c:8405
#, gcc-internal-format
msgid "cannot call member function %qD without object"
msgstr ""
-#: cp/call.c:9173
+#: cp/call.c:9184
#, gcc-internal-format
msgid "passing %qT chooses %qT over %qT"
msgstr ""
-#: cp/call.c:9233
+#: cp/call.c:9244
#, gcc-internal-format
msgid "choosing %qD over %qD"
msgstr ""
-#: cp/call.c:9234
+#: cp/call.c:9245
#, gcc-internal-format
msgid " for conversion from %qT to %qT"
msgstr ""
-#: cp/call.c:9237
+#: cp/call.c:9248
#, gcc-internal-format
msgid " because conversion sequence for the argument is better"
msgstr ""
-#: cp/call.c:9399
+#: cp/call.c:9410
#, gcc-internal-format
msgid "default argument mismatch in overload resolution"
msgstr ""
-#: cp/call.c:9403
+#: cp/call.c:9414
#, gcc-internal-format
msgid " candidate 1: %q+#F"
msgstr ""
-#: cp/call.c:9405
+#: cp/call.c:9416
#, gcc-internal-format
msgid " candidate 2: %q+#F"
msgstr ""
-#: cp/call.c:9450
+#: cp/call.c:9461
#, 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:9628
+#: cp/call.c:9639
#, gcc-internal-format
msgid "could not convert %qE from %qT to %qT"
msgstr ""
-#: cp/call.c:9822
+#: cp/call.c:9833
#, gcc-internal-format
msgid "a temporary bound to %qD only persists until the constructor exits"
msgstr ""
-#: cp/call.c:9949
+#: cp/call.c:9960
#, gcc-internal-format
msgid ""
"invalid initialization of reference of type %qT from expression of type %qT"
msgid " but does not override %<operator=(const %T&)%>"
msgstr ""
-#: cp/class.c:4351
+#: cp/class.c:4352
#, gcc-internal-format
msgid "alignment of %qD increased in -fabi-version=9 (GCC 5.2)"
msgstr ""
-#: cp/class.c:4354
+#: cp/class.c:4355
#, gcc-internal-format
msgid "alignment of %qD will increase in -fabi-version=9"
msgstr ""
-#: cp/class.c:4608
+#: cp/class.c:4609
#, gcc-internal-format
msgid "initializer specified for non-virtual method %q+D"
msgstr ""
-#: cp/class.c:5045
+#: cp/class.c:5046
#, gcc-internal-format
msgid "method overrides both %<transaction_pure%> and %qE methods"
msgstr ""
-#: cp/class.c:5066
+#: cp/class.c:5067
#, gcc-internal-format
msgid "method declared %qE overriding %qE method"
msgstr ""
-#: cp/class.c:5660 cp/constexpr.c:217
+#: cp/class.c:5661 cp/constexpr.c:217
#, gcc-internal-format
msgid ""
"enclosing class of constexpr non-static member function %q+#D is not a "
"literal type"
msgstr ""
-#: cp/class.c:5685
+#: cp/class.c:5686
#, gcc-internal-format
msgid "%q+T is not literal because:"
msgstr ""
-#: cp/class.c:5687
+#: cp/class.c:5688
#, gcc-internal-format
msgid " %q+T has a non-trivial destructor"
msgstr ""
-#: cp/class.c:5692
+#: cp/class.c:5693
#, 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:5727
+#: cp/class.c:5728
#, gcc-internal-format
msgid " base class %qT of %q+T is non-literal"
msgstr ""
-#: cp/class.c:5742
+#: cp/class.c:5743
#, gcc-internal-format
msgid " non-static data member %qD has non-literal type"
msgstr ""
-#: cp/class.c:5749
+#: cp/class.c:5750
#, gcc-internal-format
msgid " non-static data member %qD has volatile type"
msgstr ""
-#: cp/class.c:5867
+#: cp/class.c:5868
#, gcc-internal-format
msgid "base class %q#T has accessible non-virtual destructor"
msgstr ""
-#: cp/class.c:5896
+#: cp/class.c:5897
#, gcc-internal-format
msgid "non-static reference %q#D in class without a constructor"
msgstr ""
-#: cp/class.c:5902
+#: cp/class.c:5903
#, gcc-internal-format
msgid "non-static const member %q#D in class without a constructor"
msgstr ""
#. If the function is defaulted outside the class, we just
#. give the synthesis error.
-#: cp/class.c:5928
+#: cp/class.c:5929
#, gcc-internal-format
msgid ""
"%q+D declared to take const reference, but implicit declaration would take "
"non-const"
msgstr ""
-#: cp/class.c:6205
+#: cp/class.c:6206
#, gcc-internal-format
msgid "direct base %qT inaccessible in %qT due to ambiguity"
msgstr ""
-#: cp/class.c:6217
+#: cp/class.c:6218
#, gcc-internal-format
msgid "virtual base %qT inaccessible in %qT due to ambiguity"
msgstr ""
-#: cp/class.c:6445
+#: cp/class.c:6446
#, gcc-internal-format
msgid ""
"offset of %qD is not ABI-compliant and may change in a future version of GCC"
msgstr ""
-#: cp/class.c:6600
+#: cp/class.c:6601
#, gcc-internal-format
msgid "size of type %qT is too large (%qE bytes)"
msgstr ""
-#: cp/class.c:6805
+#: cp/class.c:6806
#, gcc-internal-format
msgid "zero-size array member %qD not at end of %q#T"
msgstr ""
-#: cp/class.c:6807
+#: cp/class.c:6808
#, gcc-internal-format
msgid "zero-size array member %qD in an otherwise empty %q#T"
msgstr ""
-#: cp/class.c:6812 cp/class.c:6835
+#: cp/class.c:6813 cp/class.c:6836
#, gcc-internal-format
msgid "in the definition of %q#T"
msgstr ""
-#: cp/class.c:6817
+#: cp/class.c:6818
#, gcc-internal-format
msgid "flexible array member %qD not at end of %q#T"
msgstr ""
-#: cp/class.c:6819
+#: cp/class.c:6820
#, gcc-internal-format
msgid "flexible array member %qD in an otherwise empty %q#T"
msgstr ""
-#: cp/class.c:6832
+#: cp/class.c:6833
#, gcc-internal-format
msgid "next member %q#D declared here"
msgstr ""
-#: cp/class.c:6929 cp/decl.c:12941 cp/parser.c:21981
+#: cp/class.c:6930 cp/decl.c:12954 cp/parser.c:22003
#, gcc-internal-format
msgid "redefinition of %q#T"
msgstr ""
-#: cp/class.c:7075
+#: cp/class.c:7076
#, gcc-internal-format
msgid "%q#T has virtual functions and accessible non-virtual destructor"
msgstr ""
-#: cp/class.c:7103
+#: cp/class.c:7104
#, gcc-internal-format
msgid "type transparent %q#T does not have any fields"
msgstr ""
-#: cp/class.c:7109
+#: cp/class.c:7110
#, gcc-internal-format
msgid "type transparent class %qT has base classes"
msgstr ""
-#: cp/class.c:7113
+#: cp/class.c:7114
#, gcc-internal-format
msgid "type transparent class %qT has virtual functions"
msgstr ""
-#: cp/class.c:7119
+#: cp/class.c:7120
#, 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:7283
+#: cp/class.c:7284
#, gcc-internal-format
msgid ""
"definition of std::initializer_list does not match #include "
"<initializer_list>"
msgstr ""
-#: cp/class.c:7294
+#: cp/class.c:7295
#, gcc-internal-format
msgid "trying to finish struct, but kicked out due to previous parse errors"
msgstr ""
-#: cp/class.c:7830
+#: cp/class.c:7831
#, gcc-internal-format
msgid "language string %<\"%E\"%> not recognized"
msgstr ""
-#: cp/class.c:7920
+#: cp/class.c:7921
#, gcc-internal-format
msgid "cannot resolve overloaded function %qD based on conversion to type %qT"
msgstr ""
-#: cp/class.c:8067
+#: cp/class.c:8068
#, gcc-internal-format
msgid "no matches converting function %qD to type %q#T"
msgstr ""
-#: cp/class.c:8095
+#: cp/class.c:8096
#, gcc-internal-format
msgid "converting overloaded function %qD to type %q#T is ambiguous"
msgstr ""
-#: cp/class.c:8122
+#: cp/class.c:8123
#, gcc-internal-format
msgid "assuming pointer to member %qD"
msgstr ""
-#: cp/class.c:8125
+#: cp/class.c:8126
#, gcc-internal-format
msgid "(a pointer to member can only be formed with %<&%E%>)"
msgstr ""
-#: cp/class.c:8200 cp/class.c:8235
+#: cp/class.c:8201 cp/class.c:8236
#, gcc-internal-format
msgid "not enough type information"
msgstr ""
-#: cp/class.c:8218 cp/cvt.c:171 cp/cvt.c:198 cp/cvt.c:247
+#: cp/class.c:8219 cp/cvt.c:171 cp/cvt.c:198 cp/cvt.c:247
#, gcc-internal-format
msgid "cannot convert %qE from type %qT to type %qT"
msgstr ""
#. A name N used in a class S shall refer to the same declaration
#. in its context and when re-evaluated in the completed scope of
#. S.
-#: cp/class.c:8499
+#: cp/class.c:8500
#, gcc-internal-format
msgid "declaration of %q#D"
msgstr ""
-#: cp/class.c:8501
+#: cp/class.c:8502
#, gcc-internal-format
msgid "changes meaning of %qD from %q#D"
msgstr ""
msgid "%q#T has virtual base classes"
msgstr ""
-#: cp/constexpr.c:478
+#: cp/constexpr.c:483
#, gcc-internal-format
msgid "constexpr constructor does not have empty body"
msgstr ""
-#: cp/constexpr.c:584
+#: cp/constexpr.c:589
#, gcc-internal-format
msgid "body of %<constexpr%> constructor cannot be a function-try-block"
msgstr ""
-#: cp/constexpr.c:715
+#: cp/constexpr.c:720
#, gcc-internal-format
msgid ""
"%<constexpr%> constructor for union %qT must initialize exactly one non-"
"static data member"
msgstr ""
-#: cp/constexpr.c:755
+#: cp/constexpr.c:760
#, gcc-internal-format
msgid ""
"member %qD must be initialized by mem-initializer in %<constexpr%> "
"constructor"
msgstr ""
-#: cp/constexpr.c:787
+#: cp/constexpr.c:792
#, gcc-internal-format
msgid "body of constexpr function %qD not a return-statement"
msgstr ""
-#: cp/constexpr.c:841
+#: cp/constexpr.c:846
#, gcc-internal-format
msgid "%qD is not usable as a constexpr function because:"
msgstr ""
-#: cp/constexpr.c:1281 cp/constexpr.c:4572
+#: cp/constexpr.c:1286 cp/constexpr.c:4623
#, gcc-internal-format
msgid "call to internal function"
msgstr ""
-#: cp/constexpr.c:1299
+#: cp/constexpr.c:1304
#, gcc-internal-format
msgid "expression %qE does not designate a constexpr function"
msgstr ""
-#: cp/constexpr.c:1317 cp/constexpr.c:4589
+#: cp/constexpr.c:1322 cp/constexpr.c:4640
#, gcc-internal-format
msgid "call to non-constexpr function %qD"
msgstr ""
-#: cp/constexpr.c:1379
+#: cp/constexpr.c:1390
#, gcc-internal-format
msgid "%qD called in a constant expression before its definition is complete"
msgstr ""
#. The definition of fun was somehow unsuitable.
-#: cp/constexpr.c:1384
+#: cp/constexpr.c:1395
#, gcc-internal-format
msgid "%qD called in a constant expression"
msgstr ""
-#: cp/constexpr.c:1388
+#: cp/constexpr.c:1399
#, gcc-internal-format
msgid "%qD used before its definition"
msgstr ""
-#: cp/constexpr.c:1428
+#: cp/constexpr.c:1439
#, gcc-internal-format
msgid "call has circular dependency"
msgstr ""
-#: cp/constexpr.c:1439
+#: cp/constexpr.c:1450
#, gcc-internal-format, gfc-internal-format
msgid ""
"constexpr evaluation depth exceeds maximum of %d (use -fconstexpr-depth= to "
"increase the maximum)"
msgstr ""
-#: cp/constexpr.c:1511
+#: cp/constexpr.c:1532
#, gcc-internal-format
msgid "constexpr call flows off the end of the function"
msgstr ""
-#: cp/constexpr.c:1591
+#: cp/constexpr.c:1612
#, gcc-internal-format
msgid "%q+E is not a constant expression"
msgstr ""
-#: cp/constexpr.c:1631
+#: cp/constexpr.c:1652
#, gcc-internal-format
msgid "right operand of shift expression %q+E is negative"
msgstr ""
-#: cp/constexpr.c:1638
+#: cp/constexpr.c:1659
#, gcc-internal-format
msgid ""
"right operand of shift expression %q+E is >= than the precision of the left "
"operand"
msgstr ""
-#: cp/constexpr.c:1656
+#: cp/constexpr.c:1677
#, gcc-internal-format
msgid "left operand of shift expression %q+E is negative"
msgstr ""
-#: cp/constexpr.c:1675
+#: cp/constexpr.c:1696
#, gcc-internal-format
msgid "shift expression %q+E overflows"
msgstr ""
-#: cp/constexpr.c:1942
+#: cp/constexpr.c:1967
#, gcc-internal-format
msgid ""
"array subscript value %qE is outside the bounds of array %qD of type %qT"
msgstr ""
-#: cp/constexpr.c:1947
+#: cp/constexpr.c:1972
#, gcc-internal-format
msgid "array subscript value %qE is outside the bounds of array type %qT"
msgstr ""
-#: cp/constexpr.c:2036
+#: cp/constexpr.c:2083
#, gcc-internal-format
msgid "accessing uninitialized array element"
msgstr ""
-#: cp/constexpr.c:2091 cp/constexpr.c:2175 cp/constexpr.c:3549
+#: cp/constexpr.c:2123 cp/constexpr.c:2207 cp/constexpr.c:3587
#, gcc-internal-format
msgid "%qE is not a constant expression"
msgstr ""
-#: cp/constexpr.c:2097
+#: cp/constexpr.c:2129
#, gcc-internal-format
msgid "mutable %qD is not usable in a constant expression"
msgstr ""
-#: cp/constexpr.c:2118
+#: cp/constexpr.c:2150
#, gcc-internal-format
msgid ""
"accessing %qD member instead of initialized %qD member in constant expression"
msgstr ""
-#: cp/constexpr.c:2135
+#: cp/constexpr.c:2167
#, gcc-internal-format
msgid "accessing uninitialized member %qD"
msgstr ""
-#: cp/constexpr.c:2853
+#: cp/constexpr.c:2885
#, gcc-internal-format
msgid "accessing value of %qE through a %qT glvalue in a constant expression"
msgstr ""
-#: cp/constexpr.c:2894
+#: cp/constexpr.c:2926
#, gcc-internal-format
msgid "the value of %qD is not usable in a constant expression"
msgstr ""
-#: cp/constexpr.c:2901
+#: cp/constexpr.c:2933
#, gcc-internal-format
msgid "%qD used in its own initializer"
msgstr ""
-#: cp/constexpr.c:2906
+#: cp/constexpr.c:2938
#, gcc-internal-format
msgid "%q#D is not const"
msgstr ""
-#: cp/constexpr.c:2909
+#: cp/constexpr.c:2941
#, gcc-internal-format
msgid "%q#D is volatile"
msgstr ""
-#: cp/constexpr.c:2914
+#: cp/constexpr.c:2946
#, gcc-internal-format
msgid "%qD was not initialized with a constant expression"
msgstr ""
-#: cp/constexpr.c:2923
+#: cp/constexpr.c:2955
#, gcc-internal-format
msgid "%qD was not declared %<constexpr%>"
msgstr ""
-#: cp/constexpr.c:2926
+#: cp/constexpr.c:2958
#, gcc-internal-format
msgid "%qD does not have integral or enumeration type"
msgstr ""
-#: cp/constexpr.c:3034
+#: cp/constexpr.c:3066
#, gcc-internal-format
msgid "modification of %qE is not a constant-expression"
msgstr ""
-#: cp/constexpr.c:3595 cp/constexpr.c:4941
+#: cp/constexpr.c:3633 cp/constexpr.c:4994
#, gcc-internal-format
msgid "temporary of non-literal type %qT in a constant expression"
msgstr ""
-#: cp/constexpr.c:3919
+#: cp/constexpr.c:3970
#, gcc-internal-format
msgid "a reinterpret_cast is not a constant-expression"
msgstr ""
-#: cp/constexpr.c:3930 cp/constexpr.c:4679
+#: cp/constexpr.c:3981 cp/constexpr.c:4730
#, gcc-internal-format
msgid "reinterpret_cast from integer to pointer"
msgstr ""
-#: cp/constexpr.c:3990 cp/constexpr.c:4830 cp/constexpr.c:5117
+#: cp/constexpr.c:4041 cp/constexpr.c:4881 cp/constexpr.c:5170
#, gcc-internal-format
msgid "expression %qE is not a constant-expression"
msgstr ""
-#: cp/constexpr.c:4060
+#: cp/constexpr.c:4111
#, gcc-internal-format
msgid "statement is not a constant-expression"
msgstr ""
-#: cp/constexpr.c:4063
+#: cp/constexpr.c:4114
#, gcc-internal-format
msgid "unexpected expression %qE of kind %s"
msgstr ""
-#: cp/constexpr.c:4133
+#: cp/constexpr.c:4184
#, gcc-internal-format
msgid ""
"%qE is not a constant expression because it refers to mutable subobjects of "
"%qT"
msgstr ""
-#: cp/constexpr.c:4146
+#: cp/constexpr.c:4197
#, gcc-internal-format
msgid ""
"conversion from pointer type %qT to arithmetic type %qT in a constant-"
"expression"
msgstr ""
-#: cp/constexpr.c:4508
+#: cp/constexpr.c:4559
#, gcc-internal-format
msgid "expression %qE has side-effects"
msgstr ""
-#: cp/constexpr.c:4705
+#: cp/constexpr.c:4756
#, gcc-internal-format
msgid ""
"address-of an object %qE with thread local or automatic storage is not a "
"constant expression"
msgstr ""
-#: cp/constexpr.c:4737
+#: cp/constexpr.c:4788
#, gcc-internal-format
msgid "use of %<this%> in a constant expression"
msgstr ""
-#: cp/constexpr.c:4842
+#: cp/constexpr.c:4893
#, gcc-internal-format
msgid ""
"typeid-expression is not a constant expression because %qE is of polymorphic "
"type"
msgstr ""
-#: cp/constexpr.c:4904
+#: cp/constexpr.c:4955
#, gcc-internal-format
msgid "cast to non-integral type %qT in a constant expression"
msgstr ""
-#: cp/constexpr.c:4989
+#: cp/constexpr.c:5042
#, gcc-internal-format
msgid "division by zero is not a constant-expression"
msgstr ""
-#: cp/constexpr.c:5094
+#: cp/constexpr.c:5147
#, gcc-internal-format
msgid "%<delete[]%> is not a constant-expression"
msgstr ""
-#: cp/constexpr.c:5125
+#: cp/constexpr.c:5178
#, gcc-internal-format
msgid "non-constant array initialization"
msgstr ""
-#: cp/constexpr.c:5142
+#: cp/constexpr.c:5198
+#, gcc-internal-format
+msgid "%<goto%> is not a constant-expression"
+msgstr ""
+
+#: cp/constexpr.c:5206
#, gcc-internal-format, gfc-internal-format
msgid "unexpected AST of kind %s"
msgstr ""
msgid "try statements are not allowed inside loops marked with #pragma simd"
msgstr ""
-#: cp/cp-gimplify.c:1350
+#: cp/cp-gimplify.c:1372
#, gcc-internal-format
msgid "throw will always call terminate()"
msgstr ""
-#: cp/cp-gimplify.c:1353
+#: cp/cp-gimplify.c:1375
#, gcc-internal-format
msgid "in C++11 destructors default to noexcept"
msgstr ""
-#: cp/cp-gimplify.c:1364
+#: cp/cp-gimplify.c:1386
#, gcc-internal-format
msgid ""
"in C++11 this throw will terminate because destructors default to noexcept"
msgid "conversion from %qT to %qT discards qualifiers"
msgstr ""
-#: cp/cvt.c:489 cp/typeck.c:6986
+#: cp/cvt.c:489 cp/typeck.c:6985
#, gcc-internal-format
msgid "casting %qT to %qT does not dereference pointer"
msgstr ""
msgid " candidate conversions include %qD and %qD"
msgstr ""
-#: cp/cxx-pretty-print.c:2189
+#: cp/cxx-pretty-print.c:2206
#, gcc-internal-format
msgid "template-parameter-"
msgstr ""
msgid "%qD was declared %<extern%> and later %<static%>"
msgstr ""
-#: cp/decl.c:1202 cp/decl.c:1926 cp/decl.c:1936 cp/decl.c:2475
+#: cp/decl.c:1202 cp/decl.c:1926 cp/decl.c:1936 cp/decl.c:2483
#, gcc-internal-format
msgid "previous declaration of %qD"
msgstr ""
#. that specialization that would cause an implicit
#. instantiation to take place, in every translation unit in
#. which such a use occurs.
-#: cp/decl.c:2341
+#: cp/decl.c:2349
#, gcc-internal-format
msgid "explicit specialization of %qD after first use"
msgstr ""
-#: cp/decl.c:2472
+#: cp/decl.c:2480
#, gcc-internal-format
msgid ""
"%qD: visibility attribute ignored because it conflicts with previous "
msgstr ""
#. Reject two definitions.
-#: cp/decl.c:2722 cp/decl.c:2751 cp/decl.c:2784 cp/decl.c:2801 cp/decl.c:2874
+#: cp/decl.c:2730 cp/decl.c:2759 cp/decl.c:2792 cp/decl.c:2809 cp/decl.c:2882
#, gcc-internal-format
msgid "redefinition of %q#D"
msgstr ""
-#: cp/decl.c:2738
+#: cp/decl.c:2746
#, gcc-internal-format
msgid "%qD conflicts with used function"
msgstr ""
-#: cp/decl.c:2748
+#: cp/decl.c:2756
#, gcc-internal-format
msgid "%q#D not declared in class"
msgstr ""
-#: cp/decl.c:2762 cp/decl.c:2811
+#: cp/decl.c:2770 cp/decl.c:2819
#, gcc-internal-format
msgid "%q+D redeclared inline with %<gnu_inline%> attribute"
msgstr ""
-#: cp/decl.c:2765 cp/decl.c:2814
+#: cp/decl.c:2773 cp/decl.c:2822
#, gcc-internal-format
msgid "%q+D redeclared inline without %<gnu_inline%> attribute"
msgstr ""
#. is_primary=
#. is_partial=
#. is_friend_decl=
-#: cp/decl.c:2831
+#: cp/decl.c:2839
#, gcc-internal-format
msgid "redeclaration of friend %q#D may not have default template arguments"
msgstr ""
-#: cp/decl.c:2845
+#: cp/decl.c:2853
#, gcc-internal-format
msgid "thread-local declaration of %q#D follows non-thread-local declaration"
msgstr ""
-#: cp/decl.c:2848
+#: cp/decl.c:2856
#, gcc-internal-format
msgid "non-thread-local declaration of %q#D follows thread-local declaration"
msgstr ""
-#: cp/decl.c:2863 cp/decl.c:2882 cp/name-lookup.c:582 cp/name-lookup.c:1166
+#: cp/decl.c:2871 cp/decl.c:2890 cp/name-lookup.c:582 cp/name-lookup.c:1166
#: cp/name-lookup.c:1189
#, gcc-internal-format
msgid "redeclaration of %q#D"
msgstr ""
-#: cp/decl.c:3031
+#: cp/decl.c:3039
#, gcc-internal-format
msgid "jump to label %qD"
msgstr ""
-#: cp/decl.c:3032
+#: cp/decl.c:3040
#, gcc-internal-format
msgid "jump to case label"
msgstr ""
-#: cp/decl.c:3034
+#: cp/decl.c:3042
#, gcc-internal-format
msgid " from here"
msgstr ""
-#: cp/decl.c:3057 cp/decl.c:3276
+#: cp/decl.c:3065 cp/decl.c:3284
#, gcc-internal-format
msgid " exits OpenMP structured block"
msgstr ""
-#: cp/decl.c:3084
+#: cp/decl.c:3092
#, gcc-internal-format
msgid " crosses initialization of %q#D"
msgstr ""
-#: cp/decl.c:3087 cp/decl.c:3239
+#: cp/decl.c:3095 cp/decl.c:3247
#, gcc-internal-format
msgid " enters scope of %q#D which has non-trivial destructor"
msgstr ""
-#: cp/decl.c:3105 cp/decl.c:3247
+#: cp/decl.c:3113 cp/decl.c:3255
#, gcc-internal-format
msgid " enters try block"
msgstr ""
-#: cp/decl.c:3107 cp/decl.c:3229 cp/decl.c:3249
+#: cp/decl.c:3115 cp/decl.c:3237 cp/decl.c:3257
#, gcc-internal-format
msgid " enters catch block"
msgstr ""
-#: cp/decl.c:3120 cp/decl.c:3257
+#: cp/decl.c:3128 cp/decl.c:3265
#, gcc-internal-format
msgid " enters OpenMP structured block"
msgstr ""
-#: cp/decl.c:3133 cp/decl.c:3251
+#: cp/decl.c:3141 cp/decl.c:3259
#, gcc-internal-format
msgid " enters synchronized or atomic statement"
msgstr ""
-#: cp/decl.c:3236
+#: cp/decl.c:3244
#, gcc-internal-format
msgid " skips initialization of %q#D"
msgstr ""
-#: cp/decl.c:3293 cp/parser.c:11755 cp/parser.c:11782
+#: cp/decl.c:3301 cp/parser.c:11766 cp/parser.c:11793
#, gcc-internal-format
msgid "invalid exit from OpenMP structured block"
msgstr ""
-#: cp/decl.c:3325
+#: cp/decl.c:3333
#, gcc-internal-format
msgid "label named wchar_t"
msgstr ""
-#: cp/decl.c:3644
+#: cp/decl.c:3652
#, gcc-internal-format
msgid "%qD is not a type"
msgstr ""
-#: cp/decl.c:3651 cp/parser.c:6033
+#: cp/decl.c:3659 cp/parser.c:6033
#, gcc-internal-format
msgid "%qD used without template parameters"
msgstr ""
-#: cp/decl.c:3660
+#: cp/decl.c:3668
#, gcc-internal-format
msgid "%q#T is not a class"
msgstr ""
-#: cp/decl.c:3684 cp/decl.c:3776
+#: cp/decl.c:3692 cp/decl.c:3784
#, gcc-internal-format
msgid "no class template named %q#T in %q#T"
msgstr ""
-#: cp/decl.c:3685
+#: cp/decl.c:3693
#, gcc-internal-format
msgid "no type named %q#T in %q#T"
msgstr ""
-#: cp/decl.c:3697
+#: cp/decl.c:3705
#, gcc-internal-format
msgid "lookup of %qT in %qT is ambiguous"
msgstr ""
-#: cp/decl.c:3706
+#: cp/decl.c:3714
#, gcc-internal-format
msgid "%<typename %T::%D%> names %q#T, which is not a class template"
msgstr ""
-#: cp/decl.c:3713
+#: cp/decl.c:3721
#, gcc-internal-format
msgid "%<typename %T::%D%> names %q#T, which is not a type"
msgstr ""
-#: cp/decl.c:3785
+#: cp/decl.c:3793
#, gcc-internal-format
msgid "template parameters do not match template %qD"
msgstr ""
-#: cp/decl.c:4518
+#: cp/decl.c:4526
#, gcc-internal-format
msgid "an anonymous struct cannot have function members"
msgstr ""
-#: cp/decl.c:4521
+#: cp/decl.c:4529
#, gcc-internal-format
msgid "an anonymous union cannot have function members"
msgstr ""
-#: cp/decl.c:4539
+#: cp/decl.c:4547
#, gcc-internal-format
msgid "member %q+#D with constructor not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:4542
+#: cp/decl.c:4550
#, gcc-internal-format
msgid "member %q+#D with destructor not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:4545
+#: cp/decl.c:4553
#, gcc-internal-format
msgid ""
"member %q+#D with copy assignment operator not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:4563
+#: cp/decl.c:4571
#, gcc-internal-format
msgid "attribute ignored in declaration of %q#T"
msgstr ""
-#: cp/decl.c:4566
+#: cp/decl.c:4574
#, gcc-internal-format
msgid "attribute for %q#T must follow the %qs keyword"
msgstr ""
-#: cp/decl.c:4589
+#: cp/decl.c:4597
#, gcc-internal-format
msgid "multiple types in one declaration"
msgstr ""
-#: cp/decl.c:4594
+#: cp/decl.c:4602
#, gcc-internal-format
msgid "redeclaration of C++ built-in type %qT"
msgstr ""
-#: cp/decl.c:4612
+#: cp/decl.c:4620
#, gcc-internal-format
msgid "%<auto%> can only be specified for variables or function declarations"
msgstr ""
-#: cp/decl.c:4638
+#: cp/decl.c:4646
#, gcc-internal-format
msgid "missing type-name in typedef-declaration"
msgstr ""
-#: cp/decl.c:4646
+#: cp/decl.c:4654
#, gcc-internal-format
msgid "ISO C++ prohibits anonymous structs"
msgstr ""
-#: cp/decl.c:4653
+#: cp/decl.c:4661
#, gcc-internal-format
msgid "%<inline%> can only be specified for functions"
msgstr ""
-#: cp/decl.c:4656
+#: cp/decl.c:4664
#, gcc-internal-format
msgid "%<virtual%> can only be specified for functions"
msgstr ""
-#: cp/decl.c:4661
+#: cp/decl.c:4669
#, gcc-internal-format
msgid "%<friend%> can only be specified inside a class"
msgstr ""
-#: cp/decl.c:4664
+#: cp/decl.c:4672
#, gcc-internal-format
msgid "%<explicit%> can only be specified for constructors"
msgstr ""
-#: cp/decl.c:4667
+#: cp/decl.c:4675
#, gcc-internal-format
msgid "a storage class can only be specified for objects and functions"
msgstr ""
-#: cp/decl.c:4671
+#: cp/decl.c:4679
#, gcc-internal-format
msgid "%<const%> can only be specified for objects and functions"
msgstr ""
-#: cp/decl.c:4675
+#: cp/decl.c:4683
#, gcc-internal-format
msgid "%<volatile%> can only be specified for objects and functions"
msgstr ""
-#: cp/decl.c:4679
+#: cp/decl.c:4687
#, gcc-internal-format
msgid "%<__restrict%> can only be specified for objects and functions"
msgstr ""
-#: cp/decl.c:4683
+#: cp/decl.c:4691
#, gcc-internal-format
msgid "%<__thread%> can only be specified for objects and functions"
msgstr ""
-#: cp/decl.c:4687
+#: cp/decl.c:4695
#, gcc-internal-format
msgid "%<typedef%> was ignored in this declaration"
msgstr ""
-#: cp/decl.c:4690
+#: cp/decl.c:4698
#, gcc-internal-format
msgid "%<constexpr%> cannot be used for type declarations"
msgstr ""
-#: cp/decl.c:4712
+#: cp/decl.c:4720
#, gcc-internal-format
msgid "attribute ignored in explicit instantiation %q#T"
msgstr ""
-#: cp/decl.c:4715
+#: cp/decl.c:4723
#, gcc-internal-format
msgid "no attribute can be applied to an explicit instantiation"
msgstr ""
-#: cp/decl.c:4787
+#: cp/decl.c:4795
#, gcc-internal-format
msgid "ignoring attributes applied to class type %qT outside of definition"
msgstr ""
#. A template type parameter or other dependent type.
-#: cp/decl.c:4791
+#: cp/decl.c:4799
#, gcc-internal-format
msgid ""
"ignoring attributes applied to dependent type %qT without an associated "
"declaration"
msgstr ""
-#: cp/decl.c:4860 cp/decl2.c:889
+#: cp/decl.c:4868 cp/decl2.c:889
#, gcc-internal-format
msgid "typedef %qD is initialized (use decltype instead)"
msgstr ""
-#: cp/decl.c:4868
+#: cp/decl.c:4876
#, gcc-internal-format
msgid "declaration of %q#D has %<extern%> and is initialized"
msgstr ""
-#: cp/decl.c:4897
+#: cp/decl.c:4905
#, gcc-internal-format
msgid "definition of %q#D is marked %<dllimport%>"
msgstr ""
-#: cp/decl.c:4921
+#: cp/decl.c:4929
#, gcc-internal-format
msgid "%q+#D is not a static data member of %q#T"
msgstr ""
-#: cp/decl.c:4930
+#: cp/decl.c:4938
#, gcc-internal-format
msgid "non-member-template declaration of %qD"
msgstr ""
-#: cp/decl.c:4931
+#: cp/decl.c:4939
#, gcc-internal-format
msgid "does not match member template declaration here"
msgstr ""
-#: cp/decl.c:4944
+#: cp/decl.c:4952
#, gcc-internal-format
msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
msgstr ""
-#: cp/decl.c:4956
+#: cp/decl.c:4964
#, gcc-internal-format
msgid "duplicate initialization of %qD"
msgstr ""
-#: cp/decl.c:4961
+#: cp/decl.c:4969
#, gcc-internal-format
msgid "%qD declared %<constexpr%> outside its class"
msgstr ""
-#: cp/decl.c:5004
+#: cp/decl.c:5012
#, gcc-internal-format
msgid "declaration of %q#D outside of class is not definition"
msgstr ""
-#: cp/decl.c:5037
+#: cp/decl.c:5045
#, gcc-internal-format
msgid "%qD declared %<thread_local%> in %<constexpr%> function"
msgstr ""
-#: cp/decl.c:5040
+#: cp/decl.c:5048
#, gcc-internal-format
msgid "%qD declared %<static%> in %<constexpr%> function"
msgstr ""
-#: cp/decl.c:5105
+#: cp/decl.c:5113
#, gcc-internal-format
msgid "variable %q#D has initializer but incomplete type"
msgstr ""
-#: cp/decl.c:5111 cp/decl.c:5975
+#: cp/decl.c:5119 cp/decl.c:5982
#, gcc-internal-format
msgid "elements of array %q#D have incomplete type"
msgstr ""
-#: cp/decl.c:5118 cp/decl.c:6621
+#: cp/decl.c:5126 cp/decl.c:6628
#, gcc-internal-format
msgid "declaration of %q#D has no initializer"
msgstr ""
-#: cp/decl.c:5120
+#: cp/decl.c:5128
#, gcc-internal-format
msgid "aggregate %q#D has incomplete type and cannot be defined"
msgstr ""
-#: cp/decl.c:5154
+#: cp/decl.c:5162
#, gcc-internal-format
msgid "%qD declared as reference but not initialized"
msgstr ""
-#: cp/decl.c:5211
+#: cp/decl.c:5219
#, gcc-internal-format
msgid "name used in a GNU-style designated initializer for an array"
msgstr ""
-#: cp/decl.c:5217
+#: cp/decl.c:5225
#, gcc-internal-format
msgid "name %qD used in a GNU-style designated initializer for an array"
msgstr ""
-#: cp/decl.c:5233 cp/typeck2.c:1281 cp/typeck2.c:1391
+#: cp/decl.c:5241 cp/typeck2.c:1284 cp/typeck2.c:1394
#, gcc-internal-format
msgid "non-trivial designated initializers not supported"
msgstr ""
-#: cp/decl.c:5236
+#: cp/decl.c:5244
#, gcc-internal-format
msgid "C99 designator %qE is not an integral constant-expression"
msgstr ""
-#: cp/decl.c:5284
+#: cp/decl.c:5292
#, gcc-internal-format
msgid "initializer fails to determine size of %qD"
msgstr ""
-#: cp/decl.c:5290
+#: cp/decl.c:5298
#, gcc-internal-format
msgid "array size missing in %qD"
msgstr ""
-#: cp/decl.c:5301
+#: cp/decl.c:5309
#, gcc-internal-format
msgid "zero-size array %qD"
msgstr ""
#. An automatic variable with an incomplete type: that is an error.
#. Don't talk about array types here, since we took care of that
#. message in grokdeclarator.
-#: cp/decl.c:5343
+#: cp/decl.c:5348
#, gcc-internal-format
msgid "storage size of %qD isn%'t known"
msgstr ""
-#: cp/decl.c:5366
+#: cp/decl.c:5371
#, gcc-internal-format
msgid "storage size of %qD isn%'t constant"
msgstr ""
-#: cp/decl.c:5412
+#: cp/decl.c:5417
#, gcc-internal-format
msgid ""
"sorry: semantics of inline function static data %q#D are wrong (you%'ll wind "
"up with multiple copies)"
msgstr ""
-#: cp/decl.c:5416
+#: cp/decl.c:5421
#, gcc-internal-format
msgid "you can work around this by removing the initializer"
msgstr ""
-#: cp/decl.c:5443
+#: cp/decl.c:5448
#, gcc-internal-format
msgid "uninitialized const %qD"
msgstr ""
-#: cp/decl.c:5447
+#: cp/decl.c:5452
#, gcc-internal-format
msgid "uninitialized variable %qD in %<constexpr%> function"
msgstr ""
-#: cp/decl.c:5457
+#: cp/decl.c:5462
#, gcc-internal-format
msgid "%q#T has no user-provided default constructor"
msgstr ""
-#: cp/decl.c:5461
+#: cp/decl.c:5466
#, gcc-internal-format
msgid ""
"constructor is not user-provided because it is explicitly defaulted in the "
"class body"
msgstr ""
-#: cp/decl.c:5464
+#: cp/decl.c:5469
#, gcc-internal-format
msgid "and the implicitly-defined constructor does not initialize %q#D"
msgstr ""
-#: cp/decl.c:5587
+#: cp/decl.c:5592
#, gcc-internal-format
msgid "invalid type %qT as initializer for a vector of type %qT"
msgstr ""
-#: cp/decl.c:5628
+#: cp/decl.c:5633
#, gcc-internal-format
msgid "initializer for %qT must be brace-enclosed"
msgstr ""
-#: cp/decl.c:5654
+#: cp/decl.c:5659
#, gcc-internal-format
msgid "%<[%E] =%> used in a GNU-style designated initializer for class %qT"
msgstr ""
-#: cp/decl.c:5662
+#: cp/decl.c:5667
#, gcc-internal-format
msgid "%qT has no non-static data member named %qD"
msgstr ""
-#: cp/decl.c:5682
+#: cp/decl.c:5687
#, gcc-internal-format
msgid "invalid initializer for %q#D"
msgstr ""
-#: cp/decl.c:5712
+#: cp/decl.c:5717
#, gcc-internal-format
msgid "C99 designator %qE outside aggregate initializer"
msgstr ""
-#: cp/decl.c:5749 cp/decl.c:5954 cp/typeck2.c:1268 cp/typeck2.c:1477
-#: cp/typeck2.c:1521 cp/typeck2.c:1568
+#: cp/decl.c:5754 cp/decl.c:5961 cp/typeck2.c:1271 cp/typeck2.c:1480
+#: cp/typeck2.c:1524 cp/typeck2.c:1571
#, gcc-internal-format
msgid "too many initializers for %qT"
msgstr ""
-#: cp/decl.c:5788
+#: cp/decl.c:5793
#, gcc-internal-format
msgid "braces around scalar initializer for type %qT"
msgstr ""
-#: cp/decl.c:5895
+#: cp/decl.c:5902
#, gcc-internal-format
msgid "missing braces around initializer for %qT"
msgstr ""
-#: cp/decl.c:5977
+#: cp/decl.c:5984
#, gcc-internal-format
msgid "elements of array %q#T have incomplete type"
msgstr ""
-#: cp/decl.c:5985
+#: cp/decl.c:5992
#, gcc-internal-format
msgid "variable-sized compound literal"
msgstr ""
-#: cp/decl.c:6039
+#: cp/decl.c:6046
#, gcc-internal-format
msgid "%q#D has incomplete type"
msgstr ""
-#: cp/decl.c:6059
+#: cp/decl.c:6066
#, gcc-internal-format
msgid "scalar object %qD requires one element in initializer"
msgstr ""
-#: cp/decl.c:6102
+#: cp/decl.c:6109
#, gcc-internal-format
msgid "in C++98 %qD must be initialized by constructor, not by %<{...}%>"
msgstr ""
-#: cp/decl.c:6196
+#: cp/decl.c:6203
#, gcc-internal-format
msgid "array %qD initialized by parenthesized string literal %qE"
msgstr ""
-#: cp/decl.c:6227
+#: cp/decl.c:6234
#, gcc-internal-format
msgid "initializer invalid for static member with constructor"
msgstr ""
-#: cp/decl.c:6229
+#: cp/decl.c:6236
#, gcc-internal-format
msgid "non-constant in-class initialization invalid for static member %qD"
msgstr ""
-#: cp/decl.c:6234
+#: cp/decl.c:6241
#, gcc-internal-format
msgid "(an out of class initialization is required)"
msgstr ""
-#: cp/decl.c:6411
+#: cp/decl.c:6418
#, gcc-internal-format
msgid "reference %qD is initialized with itself"
msgstr ""
-#: cp/decl.c:6580
+#: cp/decl.c:6587
#, gcc-internal-format
msgid "assignment (not initialization) in declaration"
msgstr ""
-#: cp/decl.c:6732
+#: cp/decl.c:6645
+#, gcc-internal-format
+msgid ""
+"initializer for %<decltype(auto) %D%> has function type (did you forget the "
+"%<()%> ?)"
+msgstr ""
+
+#: cp/decl.c:6746
#, gcc-internal-format
msgid "variable concept has no initializer"
msgstr ""
-#: cp/decl.c:6760
+#: cp/decl.c:6774
#, gcc-internal-format
msgid "shadowing previous type declaration of %q#D"
msgstr ""
-#: cp/decl.c:6834
+#: cp/decl.c:6848
#, gcc-internal-format
msgid "Java object %qD not allocated with %<new%>"
msgstr ""
-#: cp/decl.c:6882
+#: cp/decl.c:6896
#, gcc-internal-format
msgid "non-static data member %qD has Java class type"
msgstr ""
-#: cp/decl.c:6963
+#: cp/decl.c:6977
#, gcc-internal-format
msgid "function %q#D is initialized like a variable"
msgstr ""
-#: cp/decl.c:7397
+#: cp/decl.c:7411
#, gcc-internal-format
msgid ""
"non-local variable %qD declared %<__thread%> needs dynamic initialization"
msgstr ""
-#: cp/decl.c:7400
+#: cp/decl.c:7414
#, gcc-internal-format
msgid ""
"non-local variable %qD declared %<__thread%> has a non-trivial destructor"
msgstr ""
-#: cp/decl.c:7406
+#: cp/decl.c:7420
#, gcc-internal-format
msgid "C++11 %<thread_local%> allows dynamic initialization and destruction"
msgstr ""
-#: cp/decl.c:7633
+#: cp/decl.c:7647
#, gcc-internal-format
msgid "initializer fails to determine size of %qT"
msgstr ""
-#: cp/decl.c:7637
+#: cp/decl.c:7651
#, gcc-internal-format
msgid "array size missing in %qT"
msgstr ""
-#: cp/decl.c:7640
+#: cp/decl.c:7654
#, gcc-internal-format
msgid "zero-size array %qT"
msgstr ""
-#: cp/decl.c:7656
+#: cp/decl.c:7670
#, gcc-internal-format
msgid "destructor for alien class %qT cannot be a member"
msgstr ""
-#: cp/decl.c:7658
+#: cp/decl.c:7672
#, gcc-internal-format
msgid "constructor for alien class %qT cannot be a member"
msgstr ""
-#: cp/decl.c:7682
+#: cp/decl.c:7696
#, gcc-internal-format
msgid "%qD declared as a %<virtual%> variable"
msgstr ""
-#: cp/decl.c:7684
+#: cp/decl.c:7698
#, gcc-internal-format
msgid "%qD declared as an %<inline%> variable"
msgstr ""
-#: cp/decl.c:7686
+#: cp/decl.c:7700
#, gcc-internal-format
msgid ""
"%<const%> and %<volatile%> function specifiers on %qD invalid in variable "
"declaration"
msgstr ""
-#: cp/decl.c:7691
+#: cp/decl.c:7705
#, gcc-internal-format
msgid "%qD declared as a %<virtual%> parameter"
msgstr ""
-#: cp/decl.c:7693
+#: cp/decl.c:7707
#, gcc-internal-format
msgid "%qD declared as an %<inline%> parameter"
msgstr ""
-#: cp/decl.c:7695
+#: cp/decl.c:7709
#, gcc-internal-format
msgid ""
"%<const%> and %<volatile%> function specifiers on %qD invalid in parameter "
"declaration"
msgstr ""
-#: cp/decl.c:7700
+#: cp/decl.c:7714
#, gcc-internal-format
msgid "%qD declared as a %<virtual%> type"
msgstr ""
-#: cp/decl.c:7702
+#: cp/decl.c:7716
#, gcc-internal-format
msgid "%qD declared as an %<inline%> type"
msgstr ""
-#: cp/decl.c:7704
+#: cp/decl.c:7718
#, gcc-internal-format
msgid ""
"%<const%> and %<volatile%> function specifiers on %qD invalid in type "
"declaration"
msgstr ""
-#: cp/decl.c:7709
+#: cp/decl.c:7723
#, gcc-internal-format
msgid "%qD declared as a %<virtual%> field"
msgstr ""
-#: cp/decl.c:7711
+#: cp/decl.c:7725
#, gcc-internal-format
msgid "%qD declared as an %<inline%> field"
msgstr ""
-#: cp/decl.c:7713
+#: cp/decl.c:7727
#, gcc-internal-format
msgid ""
"%<const%> and %<volatile%> function specifiers on %qD invalid in field "
"declaration"
msgstr ""
-#: cp/decl.c:7720
+#: cp/decl.c:7734
#, gcc-internal-format
msgid "%q+D declared as a friend"
msgstr ""
-#: cp/decl.c:7726
+#: cp/decl.c:7740
#, gcc-internal-format
msgid "%q+D declared with an exception specification"
msgstr ""
-#: cp/decl.c:7759
+#: cp/decl.c:7773
#, gcc-internal-format
msgid "definition of %qD is not in namespace enclosing %qT"
msgstr ""
-#: cp/decl.c:7799
+#: cp/decl.c:7813
#, gcc-internal-format
msgid "static member function %q#D declared with type qualifiers"
msgstr ""
-#: cp/decl.c:7809
+#: cp/decl.c:7823
#, gcc-internal-format
msgid "concept %q#D declared with function parameters"
msgstr ""
-#: cp/decl.c:7815
+#: cp/decl.c:7829
#, gcc-internal-format
msgid "concept %q#D declared with a deduced return type"
msgstr ""
-#: cp/decl.c:7817
+#: cp/decl.c:7831
#, gcc-internal-format
msgid "concept %q#D with non-%<bool%> return type %qT"
msgstr ""
-#: cp/decl.c:7888
+#: cp/decl.c:7902
#, gcc-internal-format
msgid "concept %qD has no definition"
msgstr ""
-#: cp/decl.c:7956
+#: cp/decl.c:7970
#, gcc-internal-format
msgid "defining explicit specialization %qD in friend declaration"
msgstr ""
#. Something like `template <class T> friend void f<T>()'.
-#: cp/decl.c:7966
+#: cp/decl.c:7980
#, gcc-internal-format
msgid "invalid use of template-id %qD in declaration of primary template"
msgstr ""
-#: cp/decl.c:7984
+#: cp/decl.c:7998
#, gcc-internal-format
msgid ""
"default arguments are not allowed in declaration of friend template "
"specialization %qD"
msgstr ""
-#: cp/decl.c:7992
+#: cp/decl.c:8006
#, gcc-internal-format
msgid ""
"%<inline%> is not allowed in declaration of friend template specialization "
"%qD"
msgstr ""
-#: cp/decl.c:8039
+#: cp/decl.c:8053
#, gcc-internal-format
msgid "cannot declare %<::main%> to be a template"
msgstr ""
-#: cp/decl.c:8041
+#: cp/decl.c:8055
#, gcc-internal-format
msgid "cannot declare %<::main%> to be inline"
msgstr ""
-#: cp/decl.c:8043
+#: cp/decl.c:8057
#, gcc-internal-format
msgid "cannot declare %<::main%> to be constexpr"
msgstr ""
-#: cp/decl.c:8045
+#: cp/decl.c:8059
#, gcc-internal-format
msgid "cannot declare %<::main%> to be static"
msgstr ""
-#: cp/decl.c:8102
+#: cp/decl.c:8116
#, gcc-internal-format
msgid "static member function %qD cannot have cv-qualifier"
msgstr ""
-#: cp/decl.c:8103
+#: cp/decl.c:8117
#, gcc-internal-format
msgid "non-member function %qD cannot have cv-qualifier"
msgstr ""
-#: cp/decl.c:8111
+#: cp/decl.c:8125
#, gcc-internal-format
msgid "static member function %qD cannot have ref-qualifier"
msgstr ""
-#: cp/decl.c:8112
+#: cp/decl.c:8126
#, gcc-internal-format
msgid "non-member function %qD cannot have ref-qualifier"
msgstr ""
-#: cp/decl.c:8129
+#: cp/decl.c:8143
#, gcc-internal-format
msgid "literal operator with C linkage"
msgstr ""
-#: cp/decl.c:8138
+#: cp/decl.c:8152
#, gcc-internal-format
msgid "%qD has invalid argument list"
msgstr ""
-#: cp/decl.c:8146
+#: cp/decl.c:8160
#, gcc-internal-format
msgid "integer suffix %<%s%> shadowed by implementation"
msgstr ""
-#: cp/decl.c:8152
+#: cp/decl.c:8166
#, gcc-internal-format
msgid "floating point suffix %<%s%> shadowed by implementation"
msgstr ""
-#: cp/decl.c:8158
+#: cp/decl.c:8172
#, gcc-internal-format
msgid "%qD must be a non-member function"
msgstr ""
-#: cp/decl.c:8237
+#: cp/decl.c:8251
#, gcc-internal-format
msgid "%<::main%> must return %<int%>"
msgstr ""
-#: cp/decl.c:8279
+#: cp/decl.c:8293
#, gcc-internal-format
msgid "definition of implicitly-declared %qD"
msgstr ""
-#: cp/decl.c:8284
+#: cp/decl.c:8298
#, gcc-internal-format
msgid "definition of explicitly-defaulted %q+D"
msgstr ""
-#: cp/decl.c:8285
+#: cp/decl.c:8299
#, gcc-internal-format
msgid "%q+#D explicitly defaulted here"
msgstr ""
-#: cp/decl.c:8302 cp/decl2.c:787
+#: cp/decl.c:8316 cp/decl2.c:787
#, gcc-internal-format
msgid "no %q#D member function declared in class %qT"
msgstr ""
-#: cp/decl.c:8486
+#: cp/decl.c:8500
#, gcc-internal-format
msgid "cannot declare %<::main%> to be a global variable"
msgstr ""
-#: cp/decl.c:8494
+#: cp/decl.c:8508
#, gcc-internal-format
msgid "a non-template variable cannot be %<concept%>"
msgstr ""
-#: cp/decl.c:8501
+#: cp/decl.c:8515
#, gcc-internal-format
msgid "concept must have type %<bool%>"
msgstr ""
-#: cp/decl.c:8614
+#: cp/decl.c:8628
#, gcc-internal-format
msgid "in-class initialization of static data member %q#D of incomplete type"
msgstr ""
-#: cp/decl.c:8618
+#: cp/decl.c:8632
#, gcc-internal-format
msgid ""
"%<constexpr%> needed for in-class initialization of static data member %q#D "
"of non-integral type"
msgstr ""
-#: cp/decl.c:8621
+#: cp/decl.c:8635
#, gcc-internal-format
msgid "in-class initialization of static data member %q#D of non-literal type"
msgstr ""
-#: cp/decl.c:8634
+#: cp/decl.c:8648
#, gcc-internal-format
msgid ""
"invalid in-class initialization of static data member of non-integral type "
"%qT"
msgstr ""
-#: cp/decl.c:8640
+#: cp/decl.c:8654
#, gcc-internal-format
msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
msgstr ""
-#: cp/decl.c:8644
+#: cp/decl.c:8658
#, gcc-internal-format
msgid ""
"ISO C++ forbids initialization of member constant %qD of non-integral type "
"%qT"
msgstr ""
-#: cp/decl.c:8739 cp/decl.c:8766
+#: cp/decl.c:8753 cp/decl.c:8780
#, gcc-internal-format
msgid "size of array %qD has non-integral type %qT"
msgstr ""
-#: cp/decl.c:8742 cp/decl.c:8768
+#: cp/decl.c:8756 cp/decl.c:8782
#, gcc-internal-format
msgid "size of array has non-integral type %qT"
msgstr ""
-#: cp/decl.c:8799 cp/decl.c:8852
+#: cp/decl.c:8813 cp/decl.c:8866
#, gcc-internal-format
msgid "size of array is not an integral constant-expression"
msgstr ""
-#: cp/decl.c:8818
+#: cp/decl.c:8832
#, gcc-internal-format
msgid "size of array %qD is negative"
msgstr ""
-#: cp/decl.c:8820 cp/init.c:3418
+#: cp/decl.c:8834 cp/init.c:3437
#, gcc-internal-format
msgid "size of array is negative"
msgstr ""
-#: cp/decl.c:8834
+#: cp/decl.c:8848
#, gcc-internal-format
msgid "ISO C++ forbids zero-size array %qD"
msgstr ""
-#: cp/decl.c:8836
+#: cp/decl.c:8850
#, gcc-internal-format
msgid "ISO C++ forbids zero-size array"
msgstr ""
-#: cp/decl.c:8849
+#: cp/decl.c:8863
#, gcc-internal-format
msgid "size of array %qD is not an integral constant-expression"
msgstr ""
-#: cp/decl.c:8858
+#: cp/decl.c:8872
#, gcc-internal-format
msgid "ISO C++ forbids variable length array %qD"
msgstr ""
-#: cp/decl.c:8860
+#: cp/decl.c:8874
#, gcc-internal-format
msgid "ISO C++ forbids variable length array"
msgstr ""
-#: cp/decl.c:8866
+#: cp/decl.c:8880
#, gcc-internal-format
msgid "variable length array %qD is used"
msgstr ""
-#: cp/decl.c:8869
+#: cp/decl.c:8883
#, gcc-internal-format
msgid "variable length array is used"
msgstr ""
-#: cp/decl.c:8920
+#: cp/decl.c:8934
#, gcc-internal-format
msgid "overflow in array dimension"
msgstr ""
-#: cp/decl.c:8973
+#: cp/decl.c:8987
#, gcc-internal-format
msgid "%qD declared as array of %qT"
msgstr ""
-#: cp/decl.c:8983
+#: cp/decl.c:8997
#, gcc-internal-format
msgid "declaration of %qD as array of void"
msgstr ""
-#: cp/decl.c:8985
+#: cp/decl.c:8999
#, gcc-internal-format
msgid "creating array of void"
msgstr ""
-#: cp/decl.c:8990
+#: cp/decl.c:9004
#, gcc-internal-format
msgid "declaration of %qD as array of functions"
msgstr ""
-#: cp/decl.c:8992
+#: cp/decl.c:9006
#, gcc-internal-format
msgid "creating array of functions"
msgstr ""
-#: cp/decl.c:8997
+#: cp/decl.c:9011
#, gcc-internal-format
msgid "declaration of %qD as array of references"
msgstr ""
-#: cp/decl.c:8999
+#: cp/decl.c:9013
#, gcc-internal-format
msgid "creating array of references"
msgstr ""
-#: cp/decl.c:9004
+#: cp/decl.c:9018
#, gcc-internal-format
msgid "declaration of %qD as array of function members"
msgstr ""
-#: cp/decl.c:9006
+#: cp/decl.c:9020
#, gcc-internal-format
msgid "creating array of function members"
msgstr ""
-#: cp/decl.c:9020
+#: cp/decl.c:9034
#, gcc-internal-format
msgid ""
"declaration of %qD as multidimensional array must have bounds for all "
"dimensions except the first"
msgstr ""
-#: cp/decl.c:9024
+#: cp/decl.c:9038
#, gcc-internal-format
msgid ""
"multidimensional array must have bounds for all dimensions except the first"
msgstr ""
-#: cp/decl.c:9083
+#: cp/decl.c:9097
#, gcc-internal-format
msgid "return type specification for constructor invalid"
msgstr ""
-#: cp/decl.c:9086
+#: cp/decl.c:9100
#, gcc-internal-format
msgid "qualifiers are not allowed on constructor declaration"
msgstr ""
-#: cp/decl.c:9096
+#: cp/decl.c:9110
#, gcc-internal-format
msgid "return type specification for destructor invalid"
msgstr ""
-#: cp/decl.c:9099
+#: cp/decl.c:9113
#, gcc-internal-format
msgid "qualifiers are not allowed on destructor declaration"
msgstr ""
-#: cp/decl.c:9113
+#: cp/decl.c:9127
#, gcc-internal-format
msgid "return type specified for %<operator %T%>"
msgstr ""
-#: cp/decl.c:9116
+#: cp/decl.c:9130
#, gcc-internal-format
msgid "qualifiers are not allowed on declaration of %<operator %T%>"
msgstr ""
-#: cp/decl.c:9140
+#: cp/decl.c:9154
#, gcc-internal-format
msgid "unnamed variable or field declared void"
msgstr ""
-#: cp/decl.c:9147
+#: cp/decl.c:9161
#, gcc-internal-format
msgid "variable or field declared void"
msgstr ""
-#: cp/decl.c:9351
+#: cp/decl.c:9365
#, gcc-internal-format
msgid "invalid use of qualified-name %<::%D%>"
msgstr ""
-#: cp/decl.c:9354 cp/decl.c:9374
+#: cp/decl.c:9368 cp/decl.c:9388
#, gcc-internal-format
msgid "invalid use of qualified-name %<%T::%D%>"
msgstr ""
-#: cp/decl.c:9357
+#: cp/decl.c:9371
#, gcc-internal-format
msgid "invalid use of qualified-name %<%D::%D%>"
msgstr ""
-#: cp/decl.c:9366
+#: cp/decl.c:9380
#, gcc-internal-format
msgid "%q#T is not a class or a namespace"
msgstr ""
-#: cp/decl.c:9390 cp/decl.c:9487 cp/decl.c:9496 cp/decl.c:10927
+#: cp/decl.c:9404 cp/decl.c:9501 cp/decl.c:9510 cp/decl.c:10941
#, gcc-internal-format
msgid "declaration of %qD as non-function"
msgstr ""
-#: cp/decl.c:9396
+#: cp/decl.c:9410
#, gcc-internal-format
msgid "declaration of %qD as non-member"
msgstr ""
-#: cp/decl.c:9432
+#: cp/decl.c:9446
#, gcc-internal-format
msgid "declarator-id missing; using reserved word %qD"
msgstr ""
-#: cp/decl.c:9479
+#: cp/decl.c:9493
#, gcc-internal-format
msgid "function definition does not declare parameters"
msgstr ""
-#: cp/decl.c:9504
+#: cp/decl.c:9518
#, gcc-internal-format
msgid "declaration of %qD as %<typedef%>"
msgstr ""
-#: cp/decl.c:9509
+#: cp/decl.c:9523
#, gcc-internal-format
msgid "declaration of %qD as parameter"
msgstr ""
-#: cp/decl.c:9542
+#: cp/decl.c:9556
#, gcc-internal-format
msgid "%<concept%> cannot appear in a typedef declaration"
msgstr ""
-#: cp/decl.c:9548
+#: cp/decl.c:9562
#, gcc-internal-format
msgid "%<constexpr%> cannot appear in a typedef declaration"
msgstr ""
-#: cp/decl.c:9556
+#: cp/decl.c:9570
#, gcc-internal-format
msgid "two or more data types in declaration of %qs"
msgstr ""
-#: cp/decl.c:9562
+#: cp/decl.c:9576
#, gcc-internal-format
msgid "conflicting specifiers in declaration of %qs"
msgstr ""
-#: cp/decl.c:9603
+#: cp/decl.c:9617
#, gcc-internal-format
msgid "ISO C++ does not support plain %<complex%> meaning %<double complex%>"
msgstr ""
-#: cp/decl.c:9651 cp/decl.c:9654 cp/decl.c:9657
+#: cp/decl.c:9665 cp/decl.c:9668 cp/decl.c:9671
#, gcc-internal-format
msgid "ISO C++ forbids declaration of %qs with no type"
msgstr ""
-#: cp/decl.c:9673
+#: cp/decl.c:9687
#, gcc-internal-format
msgid "%<__int%d%> is not supported by this target"
msgstr ""
-#: cp/decl.c:9679
+#: cp/decl.c:9693
#, gcc-internal-format
msgid "ISO C++ does not support %<__int%d%> for %qs"
msgstr ""
-#: cp/decl.c:9701 cp/decl.c:9721
+#: cp/decl.c:9715 cp/decl.c:9735
#, gcc-internal-format
msgid "%<signed%> or %<unsigned%> invalid for %qs"
msgstr ""
-#: cp/decl.c:9703
+#: cp/decl.c:9717
#, gcc-internal-format
msgid "%<signed%> and %<unsigned%> specified together for %qs"
msgstr ""
-#: cp/decl.c:9705
+#: cp/decl.c:9719
#, gcc-internal-format
msgid "%<long long%> invalid for %qs"
msgstr ""
-#: cp/decl.c:9707
+#: cp/decl.c:9721
#, gcc-internal-format
msgid "%<long%> invalid for %qs"
msgstr ""
-#: cp/decl.c:9709
+#: cp/decl.c:9723
#, gcc-internal-format
msgid "%<short%> invalid for %qs"
msgstr ""
-#: cp/decl.c:9711
+#: cp/decl.c:9725
#, gcc-internal-format
msgid "%<long%> or %<short%> invalid for %qs"
msgstr ""
-#: cp/decl.c:9713
+#: cp/decl.c:9727
#, gcc-internal-format
msgid "%<long%>, %<int%>, %<short%>, or %<char%> invalid for %qs"
msgstr ""
-#: cp/decl.c:9715
+#: cp/decl.c:9729
#, gcc-internal-format
msgid "%<long%> or %<short%> specified with char for %qs"
msgstr ""
-#: cp/decl.c:9717
+#: cp/decl.c:9731
#, gcc-internal-format
msgid "%<long%> and %<short%> specified together for %qs"
msgstr ""
-#: cp/decl.c:9723
+#: cp/decl.c:9737
#, gcc-internal-format
msgid "%<short%> or %<long%> invalid for %qs"
msgstr ""
-#: cp/decl.c:9731
+#: cp/decl.c:9745
#, gcc-internal-format
msgid "long, short, signed or unsigned used invalidly for %qs"
msgstr ""
-#: cp/decl.c:9799
+#: cp/decl.c:9813
#, gcc-internal-format
msgid "complex invalid for %qs"
msgstr ""
-#: cp/decl.c:9846
+#: cp/decl.c:9860
#, gcc-internal-format
msgid "member %qD cannot be declared both %<virtual%> and %<static%>"
msgstr ""
-#: cp/decl.c:9852
+#: cp/decl.c:9866
#, gcc-internal-format
msgid "member %qD cannot be declared both %<virtual%> and %<constexpr%>"
msgstr ""
-#: cp/decl.c:9862
+#: cp/decl.c:9876
#, gcc-internal-format
msgid "typedef declaration invalid in parameter declaration"
msgstr ""
-#: cp/decl.c:9867
+#: cp/decl.c:9881
#, gcc-internal-format
msgid "storage class specified for template parameter %qs"
msgstr ""
-#: cp/decl.c:9873
+#: cp/decl.c:9887
#, gcc-internal-format
msgid "storage class specifiers invalid in parameter declarations"
msgstr ""
-#: cp/decl.c:9877
+#: cp/decl.c:9891
#, gcc-internal-format
msgid "a parameter cannot be declared %<concept%>"
msgstr ""
-#: cp/decl.c:9882
+#: cp/decl.c:9896
#, gcc-internal-format
msgid "a parameter cannot be declared %<constexpr%>"
msgstr ""
-#: cp/decl.c:9892
+#: cp/decl.c:9906
#, gcc-internal-format
msgid "%<virtual%> outside class declaration"
msgstr ""
-#: cp/decl.c:9910
+#: cp/decl.c:9924
#, gcc-internal-format
msgid "multiple storage classes in declaration of %qs"
msgstr ""
-#: cp/decl.c:9933
+#: cp/decl.c:9947
#, gcc-internal-format
msgid "storage class specified for %qs"
msgstr ""
-#: cp/decl.c:9937
+#: cp/decl.c:9951
#, gcc-internal-format
msgid "storage class specified for parameter %qs"
msgstr ""
-#: cp/decl.c:9950
+#: cp/decl.c:9964
#, gcc-internal-format
msgid "nested function %qs declared %<extern%>"
msgstr ""
-#: cp/decl.c:9954
+#: cp/decl.c:9968
#, gcc-internal-format
msgid "top-level declaration of %qs specifies %<auto%>"
msgstr ""
-#: cp/decl.c:9961
+#: cp/decl.c:9975
#, gcc-internal-format
msgid "function-scope %qs implicitly auto and declared %<__thread%>"
msgstr ""
-#: cp/decl.c:9973
+#: cp/decl.c:9987
#, gcc-internal-format
msgid "storage class specifiers invalid in friend function declarations"
msgstr ""
-#: cp/decl.c:10085
+#: cp/decl.c:10099
#, gcc-internal-format
msgid "%qs declared as function returning a function"
msgstr ""
-#: cp/decl.c:10090
+#: cp/decl.c:10104
#, gcc-internal-format
msgid "%qs declared as function returning an array"
msgstr ""
-#: cp/decl.c:10114
+#: cp/decl.c:10128
#, gcc-internal-format
msgid "requires-clause on return type"
msgstr ""
-#: cp/decl.c:10133
+#: cp/decl.c:10147
#, gcc-internal-format
msgid "%qs function uses %<auto%> type specifier without trailing return type"
msgstr ""
-#: cp/decl.c:10136
+#: cp/decl.c:10150
#, gcc-internal-format
msgid "deduced return type only available with -std=c++14 or -std=gnu++14"
msgstr ""
-#: cp/decl.c:10142
+#: cp/decl.c:10156
#, gcc-internal-format
msgid "virtual function cannot have deduced return type"
msgstr ""
-#: cp/decl.c:10149
+#: cp/decl.c:10163
#, gcc-internal-format
msgid ""
"%qs function with trailing return type has %qT as its type rather than plain "
#. Not using maybe_warn_cpp0x because this should
#. always be an error.
-#: cp/decl.c:10161
+#: cp/decl.c:10175
#, gcc-internal-format
msgid "trailing return type only available with -std=c++11 or -std=gnu++11"
msgstr ""
-#: cp/decl.c:10164
+#: cp/decl.c:10178
#, gcc-internal-format
msgid ""
"%qs function with trailing return type not declared with %<auto%> type "
"specifier"
msgstr ""
-#: cp/decl.c:10201
+#: cp/decl.c:10215
#, gcc-internal-format
msgid "destructor cannot be static member function"
msgstr ""
-#: cp/decl.c:10202
+#: cp/decl.c:10216
#, gcc-internal-format
msgid "constructor cannot be static member function"
msgstr ""
-#: cp/decl.c:10206
+#: cp/decl.c:10220
#, gcc-internal-format
msgid "destructors may not be cv-qualified"
msgstr ""
-#: cp/decl.c:10207
+#: cp/decl.c:10221
#, gcc-internal-format
msgid "constructors may not be cv-qualified"
msgstr ""
-#: cp/decl.c:10215
+#: cp/decl.c:10229
#, gcc-internal-format
msgid "destructors may not be ref-qualified"
msgstr ""
-#: cp/decl.c:10234
+#: cp/decl.c:10248
#, gcc-internal-format
msgid "constructors cannot be declared %<virtual%>"
msgstr ""
#. Cannot be both friend and virtual.
-#: cp/decl.c:10249
+#: cp/decl.c:10263
#, gcc-internal-format
msgid "virtual functions cannot be friends"
msgstr ""
-#: cp/decl.c:10253
+#: cp/decl.c:10267
#, gcc-internal-format
msgid "friend declaration not in class definition"
msgstr ""
-#: cp/decl.c:10255
+#: cp/decl.c:10269
#, gcc-internal-format
msgid "can%'t define friend function %qs in a local class definition"
msgstr ""
-#: cp/decl.c:10267
+#: cp/decl.c:10281
#, gcc-internal-format
msgid "a conversion function cannot have a trailing return type"
msgstr ""
-#: cp/decl.c:10278
+#: cp/decl.c:10292
#, gcc-internal-format
msgid "destructors may not have parameters"
msgstr ""
-#: cp/decl.c:10315
+#: cp/decl.c:10329
#, gcc-internal-format
msgid "cannot declare pointer to %q#T"
msgstr ""
-#: cp/decl.c:10328 cp/decl.c:10335
+#: cp/decl.c:10342 cp/decl.c:10349
#, gcc-internal-format
msgid "cannot declare reference to %q#T"
msgstr ""
-#: cp/decl.c:10337
+#: cp/decl.c:10351
#, gcc-internal-format
msgid "cannot declare pointer to %q#T member"
msgstr ""
-#: cp/decl.c:10366
+#: cp/decl.c:10380
#, gcc-internal-format
msgid "cannot declare reference to qualified function type %qT"
msgstr ""
-#: cp/decl.c:10367
+#: cp/decl.c:10381
#, gcc-internal-format
msgid "cannot declare pointer to qualified function type %qT"
msgstr ""
-#: cp/decl.c:10437
+#: cp/decl.c:10451
#, gcc-internal-format
msgid ""
"cannot declare reference to %q#T, which is not a typedef or a template type "
"argument"
msgstr ""
-#: cp/decl.c:10507
+#: cp/decl.c:10521
#, gcc-internal-format
msgid "template-id %qD used as a declarator"
msgstr ""
-#: cp/decl.c:10531
+#: cp/decl.c:10545
#, gcc-internal-format
msgid "member functions are implicitly friends of their class"
msgstr ""
-#: cp/decl.c:10536
+#: cp/decl.c:10550
#, gcc-internal-format
msgid "extra qualification %<%T::%> on member %qs"
msgstr ""
-#: cp/decl.c:10566
+#: cp/decl.c:10580
#, gcc-internal-format
msgid "cannot define member function %<%T::%s%> within %<%T%>"
msgstr ""
-#: cp/decl.c:10568
+#: cp/decl.c:10582
#, gcc-internal-format
msgid "cannot declare member function %<%T::%s%> within %<%T%>"
msgstr ""
-#: cp/decl.c:10576
+#: cp/decl.c:10590
#, gcc-internal-format
msgid "cannot declare member %<%T::%s%> within %qT"
msgstr ""
-#: cp/decl.c:10609
+#: cp/decl.c:10623
#, gcc-internal-format
msgid "non-parameter %qs cannot be a parameter pack"
msgstr ""
-#: cp/decl.c:10617
+#: cp/decl.c:10631
#, gcc-internal-format
msgid "data member may not have variably modified type %qT"
msgstr ""
-#: cp/decl.c:10619
+#: cp/decl.c:10633
#, gcc-internal-format
msgid "parameter may not have variably modified type %qT"
msgstr ""
-#: cp/decl.c:10630
+#: cp/decl.c:10644
#, gcc-internal-format
msgid "%<explicit%> outside class declaration"
msgstr ""
-#: cp/decl.c:10633
+#: cp/decl.c:10647
#, gcc-internal-format
msgid "%<explicit%> in friend declaration"
msgstr ""
-#: cp/decl.c:10636
+#: cp/decl.c:10650
#, gcc-internal-format
msgid ""
"only declarations of constructors and conversion operators can be %<explicit"
"%>"
msgstr ""
-#: cp/decl.c:10645
+#: cp/decl.c:10659
#, gcc-internal-format
msgid "non-member %qs cannot be declared %<mutable%>"
msgstr ""
-#: cp/decl.c:10650
+#: cp/decl.c:10664
#, gcc-internal-format
msgid "non-object member %qs cannot be declared %<mutable%>"
msgstr ""
-#: cp/decl.c:10656
+#: cp/decl.c:10670
#, gcc-internal-format
msgid "function %qs cannot be declared %<mutable%>"
msgstr ""
-#: cp/decl.c:10661
+#: cp/decl.c:10675
#, gcc-internal-format
msgid "static %qs cannot be declared %<mutable%>"
msgstr ""
-#: cp/decl.c:10666
+#: cp/decl.c:10680
#, gcc-internal-format
msgid "const %qs cannot be declared %<mutable%>"
msgstr ""
-#: cp/decl.c:10671
+#: cp/decl.c:10685
#, gcc-internal-format
msgid "reference %qs cannot be declared %<mutable%>"
msgstr ""
-#: cp/decl.c:10707
+#: cp/decl.c:10721
#, gcc-internal-format
msgid "typedef declared %<auto%>"
msgstr ""
-#: cp/decl.c:10712
+#: cp/decl.c:10726
#, gcc-internal-format
msgid "requires-clause on typedef"
msgstr ""
-#: cp/decl.c:10720
+#: cp/decl.c:10734
#, gcc-internal-format
msgid "typedef name may not be a nested-name-specifier"
msgstr ""
-#: cp/decl.c:10741
+#: cp/decl.c:10755
#, gcc-internal-format
msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
msgstr ""
-#: cp/decl.c:10857
+#: cp/decl.c:10871
#, gcc-internal-format
msgid "%<inline%> specified for friend class declaration"
msgstr ""
-#: cp/decl.c:10865
+#: cp/decl.c:10879
#, gcc-internal-format
msgid "template parameters cannot be friends"
msgstr ""
-#: cp/decl.c:10867
+#: cp/decl.c:10881
#, gcc-internal-format
msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
msgstr ""
-#: cp/decl.c:10871
+#: cp/decl.c:10885
#, gcc-internal-format
msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
msgstr ""
-#: cp/decl.c:10884
+#: cp/decl.c:10898
#, gcc-internal-format
msgid "trying to make class %qT a friend of global scope"
msgstr ""
-#: cp/decl.c:10904
+#: cp/decl.c:10918
#, gcc-internal-format
msgid "invalid qualifiers on non-member function type"
msgstr ""
-#: cp/decl.c:10908
+#: cp/decl.c:10922
#, gcc-internal-format
msgid "requires-clause on type-id"
msgstr ""
-#: cp/decl.c:10917
+#: cp/decl.c:10931
#, gcc-internal-format
msgid "abstract declarator %qT used as declaration"
msgstr ""
-#: cp/decl.c:10935
+#: cp/decl.c:10949
#, gcc-internal-format
msgid "requires-clause on declaration of non-function type %qT"
msgstr ""
-#: cp/decl.c:10953
+#: cp/decl.c:10967
#, gcc-internal-format
msgid "cannot use %<::%> in parameter declaration"
msgstr ""
-#: cp/decl.c:10958
+#: cp/decl.c:10972
#, gcc-internal-format
msgid "%<auto%> parameter not permitted in this context"
msgstr ""
-#: cp/decl.c:10960
+#: cp/decl.c:10974
#, gcc-internal-format
msgid "parameter declared %<auto%>"
msgstr ""
-#: cp/decl.c:11006
+#: cp/decl.c:11020
#, gcc-internal-format
msgid "non-static data member declared %<auto%>"
msgstr ""
#. Something like struct S { int N::j; };
-#: cp/decl.c:11037
+#: cp/decl.c:11051
#, gcc-internal-format
msgid "invalid use of %<::%>"
msgstr ""
-#: cp/decl.c:11059
+#: cp/decl.c:11073
#, gcc-internal-format
msgid "declaration of function %qD in invalid context"
msgstr ""
-#: cp/decl.c:11068
+#: cp/decl.c:11082
#, gcc-internal-format
msgid "function %qD declared %<virtual%> inside a union"
msgstr ""
-#: cp/decl.c:11077
+#: cp/decl.c:11091
#, gcc-internal-format
msgid "%qD cannot be declared %<virtual%>, since it is always static"
msgstr ""
-#: cp/decl.c:11093
+#: cp/decl.c:11107
#, gcc-internal-format
msgid "expected qualified name in friend declaration for destructor %qD"
msgstr ""
-#: cp/decl.c:11100
+#: cp/decl.c:11114
#, gcc-internal-format
msgid "declaration of %qD as member of %qT"
msgstr ""
-#: cp/decl.c:11106
+#: cp/decl.c:11120
#, gcc-internal-format
msgid "a destructor cannot be %<concept%>"
msgstr ""
-#: cp/decl.c:11111
+#: cp/decl.c:11125
#, gcc-internal-format
msgid "a destructor cannot be %<constexpr%>"
msgstr ""
-#: cp/decl.c:11117
+#: cp/decl.c:11131
#, gcc-internal-format
msgid "expected qualified name in friend declaration for constructor %qD"
msgstr ""
-#: cp/decl.c:11125
+#: cp/decl.c:11139
#, gcc-internal-format
msgid "a constructor cannot be %<concept%>"
msgstr ""
-#: cp/decl.c:11130
+#: cp/decl.c:11144
#, gcc-internal-format
msgid "a concept cannot be a member function"
msgstr ""
-#: cp/decl.c:11139
+#: cp/decl.c:11153
#, gcc-internal-format
msgid "specialization of variable template %qD declared as function"
msgstr ""
-#: cp/decl.c:11142
+#: cp/decl.c:11156
#, gcc-internal-format
msgid "variable template declared here"
msgstr ""
-#: cp/decl.c:11198
+#: cp/decl.c:11211
#, gcc-internal-format
msgid "field %qD has incomplete type %qT"
msgstr ""
-#: cp/decl.c:11203
+#: cp/decl.c:11216
#, gcc-internal-format
msgid "name %qT has incomplete type"
msgstr ""
-#: cp/decl.c:11213
+#: cp/decl.c:11226
#, gcc-internal-format
msgid "%qE is neither function nor member function; cannot be declared friend"
msgstr ""
-#: cp/decl.c:11272
+#: cp/decl.c:11285
#, gcc-internal-format
msgid "static data member %qE declared %<concept%>"
msgstr ""
-#: cp/decl.c:11276
+#: cp/decl.c:11289
#, gcc-internal-format
msgid "constexpr static data member %qD must have an initializer"
msgstr ""
-#: cp/decl.c:11284
+#: cp/decl.c:11297
#, gcc-internal-format
msgid "non-static data member %qE declared %<concept%>"
msgstr ""
-#: cp/decl.c:11288
+#: cp/decl.c:11301
#, gcc-internal-format
msgid "non-static data member %qE declared %<constexpr%>"
msgstr ""
-#: cp/decl.c:11338
+#: cp/decl.c:11351
#, gcc-internal-format
msgid "storage class %<auto%> invalid for function %qs"
msgstr ""
-#: cp/decl.c:11340
+#: cp/decl.c:11353
#, gcc-internal-format
msgid "storage class %<register%> invalid for function %qs"
msgstr ""
-#: cp/decl.c:11344
+#: cp/decl.c:11357
#, gcc-internal-format
msgid "storage class %<__thread%> invalid for function %qs"
msgstr ""
-#: cp/decl.c:11347
+#: cp/decl.c:11360
#, gcc-internal-format
msgid "storage class %<thread_local%> invalid for function %qs"
msgstr ""
-#: cp/decl.c:11352
+#: cp/decl.c:11365
#, gcc-internal-format
msgid "virt-specifiers in %qs not allowed outside a class definition"
msgstr ""
-#: cp/decl.c:11363
+#: cp/decl.c:11376
#, gcc-internal-format
msgid ""
"%<static%> specified invalid for function %qs declared out of global scope"
msgstr ""
-#: cp/decl.c:11367
+#: cp/decl.c:11380
#, gcc-internal-format
msgid ""
"%<inline%> specifier invalid for function %qs declared out of global scope"
msgstr ""
-#: cp/decl.c:11375
+#: cp/decl.c:11388
#, gcc-internal-format
msgid "virtual non-class function %qs"
msgstr ""
-#: cp/decl.c:11382
+#: cp/decl.c:11395
#, gcc-internal-format
msgid "%qs defined in a non-class scope"
msgstr ""
-#: cp/decl.c:11383
+#: cp/decl.c:11396
#, gcc-internal-format
msgid "%qs declared in a non-class scope"
msgstr ""
-#: cp/decl.c:11416
+#: cp/decl.c:11429
#, gcc-internal-format
msgid "cannot declare member function %qD to have static linkage"
msgstr ""
#. FIXME need arm citation
-#: cp/decl.c:11423
+#: cp/decl.c:11436
#, gcc-internal-format
msgid "cannot declare static function inside another function"
msgstr ""
-#: cp/decl.c:11457
+#: cp/decl.c:11470
#, gcc-internal-format
msgid ""
"%<static%> may not be used when defining (as opposed to declaring) a static "
"data member"
msgstr ""
-#: cp/decl.c:11464
+#: cp/decl.c:11477
#, gcc-internal-format
msgid "static member %qD declared %<register%>"
msgstr ""
-#: cp/decl.c:11470
+#: cp/decl.c:11483
#, gcc-internal-format
msgid "cannot explicitly declare member %q#D to have extern linkage"
msgstr ""
-#: cp/decl.c:11477
+#: cp/decl.c:11490
#, gcc-internal-format
msgid "declaration of constexpr variable %qD is not a definition"
msgstr ""
-#: cp/decl.c:11490
+#: cp/decl.c:11503
#, gcc-internal-format
msgid "%qs initialized and declared %<extern%>"
msgstr ""
-#: cp/decl.c:11494
+#: cp/decl.c:11507
#, gcc-internal-format
msgid "%qs has both %<extern%> and initializer"
msgstr ""
-#: cp/decl.c:11641
+#: cp/decl.c:11654
#, gcc-internal-format
msgid "default argument %qE uses %qD"
msgstr ""
-#: cp/decl.c:11644
+#: cp/decl.c:11657
#, gcc-internal-format
msgid "default argument %qE uses local variable %qD"
msgstr ""
-#: cp/decl.c:11729
+#: cp/decl.c:11742
#, gcc-internal-format
msgid "invalid use of cv-qualified type %qT in parameter declaration"
msgstr ""
-#: cp/decl.c:11733
+#: cp/decl.c:11746
#, gcc-internal-format
msgid "invalid use of type %<void%> in parameter declaration"
msgstr ""
-#: cp/decl.c:11746
+#: cp/decl.c:11759
#, gcc-internal-format
msgid "parameter %qD has Java class type"
msgstr ""
-#: cp/decl.c:11774
+#: cp/decl.c:11787
#, gcc-internal-format
msgid "parameter %qD invalidly declared method type"
msgstr ""
-#: cp/decl.c:11799
+#: cp/decl.c:11812
#, gcc-internal-format
msgid "parameter %qD includes pointer to array of unknown bound %qT"
msgstr ""
-#: cp/decl.c:11801
+#: cp/decl.c:11814
#, gcc-internal-format
msgid "parameter %qD includes reference to array of unknown bound %qT"
msgstr ""
#. or implicitly defined), there's no need to worry about their
#. existence. Theoretically, they should never even be
#. instantiated, but that's hard to forestall.
-#: cp/decl.c:12051
+#: cp/decl.c:12064
#, gcc-internal-format
msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
msgstr ""
-#: cp/decl.c:12173
+#: cp/decl.c:12186
#, gcc-internal-format
msgid "%qD may not be declared within a namespace"
msgstr ""
-#: cp/decl.c:12178
+#: cp/decl.c:12191
#, gcc-internal-format
msgid "%qD may not be declared as static"
msgstr ""
-#: cp/decl.c:12204
+#: cp/decl.c:12217
#, gcc-internal-format
msgid "%qD must be a nonstatic member function"
msgstr ""
-#: cp/decl.c:12213
+#: cp/decl.c:12226
#, gcc-internal-format
msgid ""
"%qD must be either a non-static member function or a non-member function"
msgstr ""
-#: cp/decl.c:12235
+#: cp/decl.c:12248
#, gcc-internal-format
msgid "%qD must have an argument of class or enumerated type"
msgstr ""
-#: cp/decl.c:12264
+#: cp/decl.c:12277
#, gcc-internal-format
msgid ""
"conversion to a reference to void will never use a type conversion operator"
msgstr ""
-#: cp/decl.c:12266
+#: cp/decl.c:12279
#, gcc-internal-format
msgid "conversion to void will never use a type conversion operator"
msgstr ""
-#: cp/decl.c:12273
+#: cp/decl.c:12286
#, gcc-internal-format
msgid ""
"conversion to a reference to the same type will never use a type conversion "
"operator"
msgstr ""
-#: cp/decl.c:12275
+#: cp/decl.c:12288
#, gcc-internal-format
msgid "conversion to the same type will never use a type conversion operator"
msgstr ""
-#: cp/decl.c:12283
+#: cp/decl.c:12296
#, gcc-internal-format
msgid ""
"conversion to a reference to a base class will never use a type conversion "
"operator"
msgstr ""
-#: cp/decl.c:12285
+#: cp/decl.c:12298
#, gcc-internal-format
msgid "conversion to a base class will never use a type conversion operator"
msgstr ""
#. 13.4.0.3
-#: cp/decl.c:12294
+#: cp/decl.c:12307
#, gcc-internal-format
msgid "ISO C++ prohibits overloading operator ?:"
msgstr ""
-#: cp/decl.c:12299
+#: cp/decl.c:12312
#, gcc-internal-format
msgid "%qD must not have variable number of arguments"
msgstr ""
-#: cp/decl.c:12350
+#: cp/decl.c:12363
#, gcc-internal-format
msgid "postfix %qD must take %<int%> as its argument"
msgstr ""
-#: cp/decl.c:12353
+#: cp/decl.c:12366
#, gcc-internal-format
msgid "postfix %qD must take %<int%> as its second argument"
msgstr ""
-#: cp/decl.c:12361
+#: cp/decl.c:12374
#, gcc-internal-format
msgid "%qD must take either zero or one argument"
msgstr ""
-#: cp/decl.c:12363
+#: cp/decl.c:12376
#, gcc-internal-format
msgid "%qD must take either one or two arguments"
msgstr ""
-#: cp/decl.c:12385
+#: cp/decl.c:12398
#, gcc-internal-format
msgid "prefix %qD should return %qT"
msgstr ""
-#: cp/decl.c:12391
+#: cp/decl.c:12404
#, gcc-internal-format
msgid "postfix %qD should return %qT"
msgstr ""
-#: cp/decl.c:12400
+#: cp/decl.c:12413
#, gcc-internal-format
msgid "%qD must take %<void%>"
msgstr ""
-#: cp/decl.c:12402 cp/decl.c:12411
+#: cp/decl.c:12415 cp/decl.c:12424
#, gcc-internal-format
msgid "%qD must take exactly one argument"
msgstr ""
-#: cp/decl.c:12413
+#: cp/decl.c:12426
#, gcc-internal-format
msgid "%qD must take exactly two arguments"
msgstr ""
-#: cp/decl.c:12422
+#: cp/decl.c:12435
#, gcc-internal-format
msgid "user-defined %qD always evaluates both arguments"
msgstr ""
-#: cp/decl.c:12436
+#: cp/decl.c:12449
#, gcc-internal-format
msgid "%qD should return by value"
msgstr ""
-#: cp/decl.c:12447 cp/decl.c:12452
+#: cp/decl.c:12460 cp/decl.c:12465
#, gcc-internal-format
msgid "%qD cannot have default arguments"
msgstr ""
-#: cp/decl.c:12510
+#: cp/decl.c:12523
#, gcc-internal-format
msgid "using template type parameter %qT after %qs"
msgstr ""
-#: cp/decl.c:12533
+#: cp/decl.c:12546
#, gcc-internal-format
msgid "using alias template specialization %qT after %qs"
msgstr ""
-#: cp/decl.c:12536
+#: cp/decl.c:12549
#, gcc-internal-format
msgid "using typedef-name %qD after %qs"
msgstr ""
-#: cp/decl.c:12538
+#: cp/decl.c:12551
#, gcc-internal-format
msgid "%qD has a previous declaration here"
msgstr ""
-#: cp/decl.c:12546
+#: cp/decl.c:12559
#, gcc-internal-format
msgid "%qT referred to as %qs"
msgstr ""
-#: cp/decl.c:12547 cp/decl.c:12554
+#: cp/decl.c:12560 cp/decl.c:12567
#, gcc-internal-format
msgid "%q+T has a previous declaration here"
msgstr ""
-#: cp/decl.c:12553
+#: cp/decl.c:12566
#, gcc-internal-format
msgid "%qT referred to as enum"
msgstr ""
#. void f(class C); // No template header here
#.
#. then the required template argument is missing.
-#: cp/decl.c:12568
+#: cp/decl.c:12581
#, gcc-internal-format
msgid "template argument required for %<%s %T%>"
msgstr ""
-#: cp/decl.c:12622 cp/name-lookup.c:3195
+#: cp/decl.c:12635 cp/name-lookup.c:3195
#, gcc-internal-format
msgid "%qD has the same name as the class in which it is declared"
msgstr ""
-#: cp/decl.c:12652 cp/friend.c:261 cp/parser.c:2971 cp/parser.c:6092
-#: cp/pt.c:8154
+#: cp/decl.c:12665 cp/friend.c:261 cp/parser.c:2971 cp/parser.c:6092
+#: cp/pt.c:8169
#, gcc-internal-format
msgid "%qT is not a template"
msgstr ""
-#: cp/decl.c:12653 cp/friend.c:262 cp/tree.c:3713
+#: cp/decl.c:12666 cp/friend.c:262 cp/tree.c:3718
#, gcc-internal-format
msgid "previous declaration here"
msgstr ""
-#: cp/decl.c:12657
+#: cp/decl.c:12670
#, gcc-internal-format
msgid "perhaps you want to explicitly add %<%T::%>"
msgstr ""
-#: cp/decl.c:12666 cp/name-lookup.c:2685 cp/name-lookup.c:3524
-#: cp/name-lookup.c:3569 cp/parser.c:6043 cp/parser.c:24842
+#: cp/decl.c:12679 cp/name-lookup.c:2685 cp/name-lookup.c:3524
+#: cp/name-lookup.c:3569 cp/parser.c:6043 cp/parser.c:24878
#, gcc-internal-format
msgid "reference to %qD is ambiguous"
msgstr ""
-#: cp/decl.c:12787
+#: cp/decl.c:12800
#, gcc-internal-format
msgid "use of enum %q#D without previous declaration"
msgstr ""
-#: cp/decl.c:12820
+#: cp/decl.c:12833
#, gcc-internal-format
msgid "redeclaration of %qT as a non-template"
msgstr ""
-#: cp/decl.c:12821
+#: cp/decl.c:12834
#, gcc-internal-format
msgid "previous declaration %q+D"
msgstr ""
-#: cp/decl.c:12964
+#: cp/decl.c:12977
#, gcc-internal-format
msgid "derived union %qT invalid"
msgstr ""
-#: cp/decl.c:12973
+#: cp/decl.c:12986
#, gcc-internal-format
msgid "Java class %qT cannot have multiple bases"
msgstr ""
-#: cp/decl.c:12978
+#: cp/decl.c:12991
#, gcc-internal-format
msgid "%qT defined with multiple direct bases"
msgstr ""
-#: cp/decl.c:12987
+#: cp/decl.c:13000
#, gcc-internal-format
msgid "Java class %qT cannot have virtual bases"
msgstr ""
-#: cp/decl.c:12992
+#: cp/decl.c:13005
#, gcc-internal-format
msgid "%qT defined with direct virtual base"
msgstr ""
-#: cp/decl.c:13010
+#: cp/decl.c:13023
#, gcc-internal-format
msgid "base type %qT fails to be a struct or class type"
msgstr ""
-#: cp/decl.c:13043
+#: cp/decl.c:13056
#, gcc-internal-format
msgid "recursive type %qT undefined"
msgstr ""
-#: cp/decl.c:13045
+#: cp/decl.c:13058
#, gcc-internal-format
msgid "duplicate base type %qT invalid"
msgstr ""
-#: cp/decl.c:13175
+#: cp/decl.c:13188
#, gcc-internal-format
msgid "scoped/unscoped mismatch in enum %q#T"
msgstr ""
-#: cp/decl.c:13178 cp/decl.c:13186 cp/decl.c:13198 cp/parser.c:17258
+#: cp/decl.c:13191 cp/decl.c:13199 cp/decl.c:13211 cp/parser.c:17280
#, gcc-internal-format
msgid "previous definition here"
msgstr ""
-#: cp/decl.c:13183
+#: cp/decl.c:13196
#, gcc-internal-format
msgid "underlying type mismatch in enum %q#T"
msgstr ""
-#: cp/decl.c:13195
+#: cp/decl.c:13208
#, gcc-internal-format
msgid "different underlying type in enum %q#T"
msgstr ""
-#: cp/decl.c:13267
+#: cp/decl.c:13280
#, gcc-internal-format
msgid "underlying type %<%T%> of %<%T%> must be an integral type"
msgstr ""
#.
#. IF no integral type can represent all the enumerator values, the
#. enumeration is ill-formed.
-#: cp/decl.c:13401
+#: cp/decl.c:13427
#, gcc-internal-format
msgid "no integral type can represent all of the enumerator values for %qT"
msgstr ""
-#: cp/decl.c:13569
+#: cp/decl.c:13595
#, gcc-internal-format
msgid "enumerator value for %qD is not an integer constant"
msgstr ""
-#: cp/decl.c:13616
+#: cp/decl.c:13642
#, gcc-internal-format
msgid "incremented enumerator value is too large for %<unsigned long%>"
msgstr ""
-#: cp/decl.c:13628
+#: cp/decl.c:13654
#, gcc-internal-format
msgid "overflow in enumeration values at %qD"
msgstr ""
-#: cp/decl.c:13648
+#: cp/decl.c:13674
#, gcc-internal-format
msgid "enumerator value %E is outside the range of underlying type %<%T%>"
msgstr ""
-#: cp/decl.c:13741
+#: cp/decl.c:13767
#, gcc-internal-format
msgid "return type %q#T is incomplete"
msgstr ""
-#: cp/decl.c:13743
+#: cp/decl.c:13769
#, gcc-internal-format
msgid "return type has Java class type %q#T"
msgstr ""
-#: cp/decl.c:13915 cp/typeck.c:8820
+#: cp/decl.c:13941 cp/typeck.c:8819
#, gcc-internal-format
msgid "%<operator=%> should return a reference to %<*this%>"
msgstr ""
-#: cp/decl.c:14258
+#: cp/decl.c:14284
#, gcc-internal-format
msgid "invalid function declaration"
msgstr ""
-#: cp/decl.c:14340
+#: cp/decl.c:14366
#, gcc-internal-format
msgid "parameter %qD declared void"
msgstr ""
-#: cp/decl.c:14689
+#: cp/decl.c:14715
#, gcc-internal-format
msgid "no return statements in function returning %qT"
msgstr ""
-#: cp/decl.c:14691 cp/typeck.c:8701
+#: cp/decl.c:14717 cp/typeck.c:8700
#, gcc-internal-format
msgid "only plain %<auto%> return type can be deduced to %<void%>"
msgstr ""
-#: cp/decl.c:14893
+#: cp/decl.c:14919
#, gcc-internal-format
msgid "invalid member function declaration"
msgstr ""
-#: cp/decl.c:14907
+#: cp/decl.c:14933
#, gcc-internal-format
msgid "%qD is already defined in class %qT"
msgstr ""
-#: cp/decl.c:15278 cp/decl2.c:5133 cp/decl2.c:5183
+#: cp/decl.c:15305 cp/decl2.c:5131 cp/decl2.c:5181
#, gcc-internal-format
msgid "use of %qD before deduction of %<auto%>"
msgstr ""
msgid "deleting %qT is undefined"
msgstr ""
-#: cp/decl2.c:540 cp/pt.c:5174
+#: cp/decl2.c:540 cp/pt.c:5188
#, gcc-internal-format
msgid "template declaration of %q#D"
msgstr ""
#. [temp.mem]
#.
#. A destructor shall not be a member template.
-#: cp/decl2.c:673 cp/pt.c:5144
+#: cp/decl2.c:673 cp/pt.c:5158
#, gcc-internal-format
msgid "destructor %qD declared as member template"
msgstr ""
msgid "inline function %qD used but never defined"
msgstr ""
-#: cp/decl2.c:5037
+#: cp/decl2.c:5035
#, gcc-internal-format
msgid "default argument missing for parameter %P of %q+#D"
msgstr ""
#. We mark a lambda conversion op as deleted if we can't
#. generate it properly; see maybe_add_lambda_conv_op.
-#: cp/decl2.c:5105
+#: cp/decl2.c:5103
#, gcc-internal-format
msgid "converting lambda which uses %<...%> to function pointer"
msgstr ""
-#: cp/decl2.c:5112
+#: cp/decl2.c:5110
#, gcc-internal-format
msgid "use of deleted function %qD"
msgstr ""
-#: cp/error.c:1450
+#: cp/error.c:1456
#, gcc-internal-format
msgid "with"
msgstr ""
-#: cp/error.c:3581
+#: cp/error.c:3597
#, gcc-internal-format
msgid ""
"extended initializer lists only available with -std=c++11 or -std=gnu++11"
msgstr ""
-#: cp/error.c:3586
+#: cp/error.c:3602
#, gcc-internal-format
msgid ""
"explicit conversion operators only available with -std=c++11 or -std=gnu++11"
msgstr ""
-#: cp/error.c:3591
+#: cp/error.c:3607
#, gcc-internal-format
msgid "variadic templates only available with -std=c++11 or -std=gnu++11"
msgstr ""
-#: cp/error.c:3596
+#: cp/error.c:3612
#, gcc-internal-format
msgid "lambda expressions only available with -std=c++11 or -std=gnu++11"
msgstr ""
-#: cp/error.c:3601
+#: cp/error.c:3617
#, gcc-internal-format
msgid "C++11 auto only available with -std=c++11 or -std=gnu++11"
msgstr ""
-#: cp/error.c:3605
+#: cp/error.c:3621
#, gcc-internal-format
msgid "scoped enums only available with -std=c++11 or -std=gnu++11"
msgstr ""
-#: cp/error.c:3609
+#: cp/error.c:3625
#, gcc-internal-format
msgid ""
"defaulted and deleted functions only available with -std=c++11 or -std=gnu+"
"+11"
msgstr ""
-#: cp/error.c:3614
+#: cp/error.c:3630
#, gcc-internal-format
msgid "inline namespaces only available with -std=c++11 or -std=gnu++11"
msgstr ""
-#: cp/error.c:3619
+#: cp/error.c:3635
#, gcc-internal-format
msgid ""
"override controls (override/final) only available with -std=c++11 or -std=gnu"
"++11"
msgstr ""
-#: cp/error.c:3624
+#: cp/error.c:3640
#, gcc-internal-format
msgid ""
"non-static data member initializers only available with -std=c++11 or -"
"std=gnu++11"
msgstr ""
-#: cp/error.c:3629
+#: cp/error.c:3645
#, gcc-internal-format
msgid "user-defined literals only available with -std=c++11 or -std=gnu++11"
msgstr ""
-#: cp/error.c:3634
+#: cp/error.c:3650
#, gcc-internal-format
msgid "delegating constructors only available with -std=c++11 or -std=gnu++11"
msgstr ""
-#: cp/error.c:3639
+#: cp/error.c:3655
#, gcc-internal-format
msgid "inheriting constructors only available with -std=c++11 or -std=gnu++11"
msgstr ""
-#: cp/error.c:3644
+#: cp/error.c:3660
#, gcc-internal-format
msgid "c++11 attributes only available with -std=c++11 or -std=gnu++11"
msgstr ""
-#: cp/error.c:3649
+#: cp/error.c:3665
#, gcc-internal-format
msgid "ref-qualifiers only available with -std=c++11 or -std=gnu++11"
msgstr ""
-#: cp/error.c:3699
+#: cp/error.c:3715
#, gcc-internal-format
msgid "incomplete type %qT used in nested name specifier"
msgstr ""
-#: cp/error.c:3703
+#: cp/error.c:3719
#, gcc-internal-format
msgid "reference to %<%T::%D%> is ambiguous"
msgstr ""
-#: cp/error.c:3708 cp/typeck.c:2339
+#: cp/error.c:3724 cp/typeck.c:2339
#, gcc-internal-format
msgid "%qD is not a member of %qT"
msgstr ""
-#: cp/error.c:3712 cp/typeck.c:2767
+#: cp/error.c:3728 cp/typeck.c:2767
#, gcc-internal-format
msgid "%qD is not a member of %qD"
msgstr ""
-#: cp/error.c:3717
+#: cp/error.c:3733
#, gcc-internal-format
msgid "%<::%D%> has not been declared"
msgstr ""
msgid "throwing NULL, which has integral, not pointer type"
msgstr ""
-#: cp/except.c:754 cp/init.c:2864
+#: cp/except.c:754 cp/init.c:2883
#, gcc-internal-format
msgid "%qD should never be overloaded"
msgstr ""
msgid "invalid initializer for array member %q#D"
msgstr ""
-#: cp/init.c:756 cp/init.c:780 cp/init.c:2234 cp/method.c:1230
+#: cp/init.c:756 cp/init.c:780 cp/init.c:2252 cp/method.c:1232
#, gcc-internal-format
msgid "uninitialized const member in %q#T"
msgstr ""
-#: cp/init.c:758 cp/init.c:775 cp/init.c:782 cp/init.c:2219 cp/init.c:2247
-#: cp/method.c:1233 cp/method.c:1244
+#: cp/init.c:758 cp/init.c:775 cp/init.c:782 cp/init.c:2237 cp/init.c:2265
+#: cp/method.c:1235 cp/method.c:1246
#, gcc-internal-format
msgid "%q#D should be initialized"
msgstr ""
-#: cp/init.c:773 cp/init.c:2206 cp/method.c:1241
+#: cp/init.c:773 cp/init.c:2224 cp/method.c:1243
#, gcc-internal-format
msgid "uninitialized reference member in %q#T"
msgstr ""
msgid "bad array initializer"
msgstr ""
-#: cp/init.c:1864 cp/semantics.c:3194
+#: cp/init.c:1877 cp/semantics.c:3187
#, gcc-internal-format
msgid "%qT is not a class type"
msgstr ""
-#: cp/init.c:1920
+#: cp/init.c:1933
#, gcc-internal-format
msgid "incomplete type %qT does not have member %qD"
msgstr ""
-#: cp/init.c:1934
+#: cp/init.c:1947
#, gcc-internal-format
msgid "invalid pointer to bit-field %qD"
msgstr ""
-#: cp/init.c:2015 cp/typeck.c:1831
+#: cp/init.c:2028 cp/typeck.c:1831
#, gcc-internal-format
msgid "invalid use of non-static member function %qD"
msgstr ""
-#: cp/init.c:2022 cp/semantics.c:1762
+#: cp/init.c:2035 cp/semantics.c:1755
#, gcc-internal-format
msgid "invalid use of non-static data member %qD"
msgstr ""
-#: cp/init.c:2203
+#: cp/init.c:2221
#, gcc-internal-format
msgid ""
"uninitialized reference member in %q#T using %<new%> without new-initializer"
msgstr ""
-#: cp/init.c:2211
+#: cp/init.c:2229
#, gcc-internal-format
msgid ""
"uninitialized reference member in base %q#T of %q#T using %<new%> without "
"new-initializer"
msgstr ""
-#: cp/init.c:2215
+#: cp/init.c:2233
#, gcc-internal-format
msgid "uninitialized reference member in base %q#T of %q#T"
msgstr ""
-#: cp/init.c:2231
+#: cp/init.c:2249
#, gcc-internal-format
msgid ""
"uninitialized const member in %q#T using %<new%> without new-initializer"
msgstr ""
-#: cp/init.c:2239
+#: cp/init.c:2257
#, gcc-internal-format
msgid ""
"uninitialized const member in base %q#T of %q#T using %<new%> without new-"
"initializer"
msgstr ""
-#: cp/init.c:2243
+#: cp/init.c:2261
#, gcc-internal-format
msgid "uninitialized const member in base %q#T of %q#T"
msgstr ""
-#: cp/init.c:2518
+#: cp/init.c:2537
#, gcc-internal-format
msgid ""
"placement new constructing an object of type %<%T [%wu]%> and size %qwu in a "
"region of type %qT and size %qwi"
msgstr ""
-#: cp/init.c:2530
+#: cp/init.c:2549
#, gcc-internal-format
msgid ""
"placement new constructing an array of objects of type %qT and size %qwu in "
"a region of type %qT and size %qwi"
msgstr ""
-#: cp/init.c:2541
+#: cp/init.c:2560
#, gcc-internal-format
msgid ""
"placement new constructing an object of type %qT and size %qwu in a region "
"of type %qT and size %qwi"
msgstr ""
-#: cp/init.c:2655
+#: cp/init.c:2674
#, gcc-internal-format
msgid "integer overflow in array size"
msgstr ""
-#: cp/init.c:2665
+#: cp/init.c:2684
#, gcc-internal-format
msgid "array size in new-expression must be constant"
msgstr ""
-#: cp/init.c:2679
+#: cp/init.c:2698
#, gcc-internal-format
msgid "variably modified type not allowed in new-expression"
msgstr ""
-#: cp/init.c:2710
+#: cp/init.c:2729
#, gcc-internal-format
msgid "invalid type %<void%> for new"
msgstr ""
-#: cp/init.c:2753
+#: cp/init.c:2772
#, gcc-internal-format
msgid "uninitialized const in %<new%> of %q#T"
msgstr ""
-#: cp/init.c:2845
+#: cp/init.c:2864
#, gcc-internal-format
msgid "%qT isn%'t a valid Java class type"
msgstr ""
-#: cp/init.c:2858
+#: cp/init.c:2877
#, gcc-internal-format
msgid "call to Java constructor with %qs undefined"
msgstr ""
-#: cp/init.c:2873
+#: cp/init.c:2892
#, gcc-internal-format
msgid "%qD is not a function returning a pointer"
msgstr ""
-#: cp/init.c:2882
+#: cp/init.c:2901
#, gcc-internal-format
msgid "Java class %q#T object allocated using placement new"
msgstr ""
-#: cp/init.c:2926
+#: cp/init.c:2945
#, gcc-internal-format
msgid "no suitable %qD found in class %qT"
msgstr ""
-#: cp/init.c:2933 cp/search.c:1171
+#: cp/init.c:2952 cp/search.c:1172
#, gcc-internal-format
msgid "request for member %qD is ambiguous"
msgstr ""
-#: cp/init.c:3162
+#: cp/init.c:3181
#, gcc-internal-format
msgid "parenthesized initializer in array new"
msgstr ""
-#: cp/init.c:3400
+#: cp/init.c:3419
#, gcc-internal-format
msgid "size in array new must have integral type"
msgstr ""
-#: cp/init.c:3432
+#: cp/init.c:3451
#, gcc-internal-format
msgid "new cannot be applied to a reference type"
msgstr ""
-#: cp/init.c:3441
+#: cp/init.c:3460
#, gcc-internal-format
msgid "new cannot be applied to a function type"
msgstr ""
-#: cp/init.c:3485
+#: cp/init.c:3504
#, gcc-internal-format
msgid "call to Java constructor, while %<jclass%> undefined"
msgstr ""
-#: cp/init.c:3503
+#: cp/init.c:3522
#, gcc-internal-format
msgid "can%'t find %<class$%> in %qT"
msgstr ""
-#: cp/init.c:3563
+#: cp/init.c:3582
#, gcc-internal-format
msgid "possible problem detected in invocation of delete [] operator:"
msgstr ""
-#: cp/init.c:3567
+#: cp/init.c:3586
#, gcc-internal-format
msgid ""
"neither the destructor nor the class-specific operator delete [] will be "
"called, even if they are declared when the class is defined"
msgstr ""
-#: cp/init.c:4059
+#: cp/init.c:4078
#, gcc-internal-format
msgid "initializer ends prematurely"
msgstr ""
-#: cp/init.c:4144
+#: cp/init.c:4163
#, gcc-internal-format
msgid "cannot initialize multi-dimensional array with initializer"
msgstr ""
-#: cp/init.c:4351
+#: cp/init.c:4370
#, gcc-internal-format
msgid "unknown array size in delete"
msgstr ""
-#: cp/init.c:4375
+#: cp/init.c:4394
#, gcc-internal-format
msgid "possible problem detected in invocation of delete operator:"
msgstr ""
-#: cp/init.c:4380
+#: cp/init.c:4399
#, gcc-internal-format
msgid ""
"neither the destructor nor the class-specific operator delete will be "
"called, even if they are declared when the class is defined"
msgstr ""
-#: cp/init.c:4395
+#: cp/init.c:4414
#, gcc-internal-format
msgid ""
"deleting object of abstract class type %qT which has non-virtual destructor "
"will cause undefined behavior"
msgstr ""
-#: cp/init.c:4400
+#: cp/init.c:4419
#, gcc-internal-format
msgid ""
"deleting object of polymorphic class type %qT which has non-virtual "
"destructor might cause undefined behavior"
msgstr ""
-#: cp/init.c:4701
+#: cp/init.c:4720
#, gcc-internal-format
msgid "type to vector delete is neither pointer or array type"
msgstr ""
msgid "because the array element type %qT has variable size"
msgstr ""
-#: cp/lambda.c:492
+#: cp/lambda.c:494
#, gcc-internal-format
msgid "cannot capture %qE by reference"
msgstr ""
-#: cp/lambda.c:500
+#: cp/lambda.c:502
#, gcc-internal-format
msgid "capture by copy of incomplete type %qT"
msgstr ""
-#: cp/lambda.c:524
+#: cp/lambda.c:526
#, gcc-internal-format
msgid "already captured %qD in lambda expression"
msgstr ""
-#: cp/lambda.c:723
+#: cp/lambda.c:725
#, gcc-internal-format
msgid "%<this%> was not captured for this lambda function"
msgstr ""
msgid "mangling unknown fixed point type"
msgstr ""
-#: cp/mangle.c:3011
+#: cp/mangle.c:3044
#, gcc-internal-format
msgid ""
"use of built-in trait %qE in function signature; use library traits instead"
msgstr ""
-#: cp/mangle.c:3016
+#: cp/mangle.c:3049
#, gcc-internal-format, gfc-internal-format
msgid "mangling %C"
msgstr ""
-#: cp/mangle.c:3093
+#: cp/mangle.c:3126
#, gcc-internal-format
msgid "omitted middle operand to %<?:%> operand cannot be mangled"
msgstr ""
-#: cp/mangle.c:3157
+#: cp/mangle.c:3213
#, gcc-internal-format
msgid "string literal in function template signature"
msgstr ""
-#: cp/mangle.c:3640
+#: cp/mangle.c:3696
#, gcc-internal-format
msgid ""
"a later -fabi-version= (or =0) avoids this error with a change in mangling"
msgstr ""
-#: cp/mangle.c:3667
+#: cp/mangle.c:3723
#, gcc-internal-format
msgid ""
"the mangled name of %qD changed between -fabi-version=%d (%D) and -fabi-"
"version=%d (%D)"
msgstr ""
-#: cp/mangle.c:3673
+#: cp/mangle.c:3729
#, gcc-internal-format
msgid ""
"the mangled name of %qD changes between -fabi-version=%d (%D) and -fabi-"
"version=%d (%D)"
msgstr ""
-#: cp/mangle.c:3969
+#: cp/mangle.c:4025
#, gcc-internal-format
msgid ""
"the mangled name of %qD changes between -fabi-version=%d and -fabi-version=%d"
msgstr ""
-#: cp/mangle.c:3974
+#: cp/mangle.c:4030
#, gcc-internal-format
msgid ""
"the mangled name of the initialization guard variable for%qD changes between "
"-fabi-version=%d and -fabi-version=%d"
msgstr ""
-#: cp/method.c:705 cp/method.c:1186
+#: cp/method.c:707 cp/method.c:1188
#, gcc-internal-format
msgid "non-static const member %q#D, can%'t use default assignment operator"
msgstr ""
-#: cp/method.c:711 cp/method.c:1192
+#: cp/method.c:713 cp/method.c:1194
#, gcc-internal-format
msgid ""
"non-static reference member %q#D, can%'t use default assignment operator"
msgstr ""
-#: cp/method.c:829
+#: cp/method.c:831
#, gcc-internal-format
msgid "synthesized method %qD first required here "
msgstr ""
-#: cp/method.c:1135
+#: cp/method.c:1137
#, gcc-internal-format
msgid "union member %q+D with non-trivial %qD"
msgstr ""
-#: cp/method.c:1145
+#: cp/method.c:1147
#, gcc-internal-format
msgid "defaulted constructor calls non-constexpr %qD"
msgstr ""
-#: cp/method.c:1209
+#: cp/method.c:1211
#, gcc-internal-format
msgid "initializer for %q#D is invalid"
msgstr ""
-#: cp/method.c:1261
+#: cp/method.c:1263
#, gcc-internal-format
msgid "defaulted default constructor does not initialize %q#D"
msgstr ""
-#: cp/method.c:1272
+#: cp/method.c:1274
#, gcc-internal-format
msgid "copying non-static data member %q#D of rvalue reference type"
msgstr ""
#. A trivial constructor doesn't have any NSDMI.
-#: cp/method.c:1439
+#: cp/method.c:1441
#, gcc-internal-format
msgid ""
"defaulted default constructor does not initialize any non-static data member"
msgstr ""
-#: cp/method.c:1516
+#: cp/method.c:1518
#, gcc-internal-format
msgid ""
"defaulted move assignment for %qT calls a non-trivial move assignment "
"operator for virtual base %qT"
msgstr ""
-#: cp/method.c:1622
+#: cp/method.c:1624
#, gcc-internal-format
msgid "a lambda closure type has a deleted default constructor"
msgstr ""
-#: cp/method.c:1625
+#: cp/method.c:1627
#, gcc-internal-format
msgid "a lambda closure type has a deleted copy assignment operator"
msgstr ""
-#: cp/method.c:1636
+#: cp/method.c:1638
#, gcc-internal-format
msgid ""
"%q#D is implicitly declared as deleted because %qT declares a move "
"constructor or move assignment operator"
msgstr ""
-#: cp/method.c:1656
+#: cp/method.c:1658
#, gcc-internal-format
msgid ""
"%q#D is implicitly deleted because the default definition would be ill-"
"formed:"
msgstr ""
-#: cp/method.c:1665
+#: cp/method.c:1667
msgid ""
"%q#F is implicitly deleted because its exception-specification does not "
"match the implicit exception-specification %qX"
msgstr ""
-#: cp/method.c:1983
+#: cp/method.c:1985
#, gcc-internal-format
msgid "defaulted declaration %q+D"
msgstr ""
-#: cp/method.c:1985
+#: cp/method.c:1987
#, gcc-internal-format
msgid "does not match expected signature %qD"
msgstr ""
-#: cp/method.c:2017
+#: cp/method.c:2019
msgid ""
"function %q+D defaulted on its redeclaration with an exception-specification "
"that differs from the implicit exception-specification %qX"
msgstr ""
-#: cp/method.c:2039
+#: cp/method.c:2041
#, gcc-internal-format
msgid ""
"explicitly defaulted function %q+D cannot be declared as constexpr because "
"the implicit declaration is not constexpr:"
msgstr ""
-#: cp/method.c:2085
+#: cp/method.c:2087
#, gcc-internal-format
msgid "a template cannot be defaulted"
msgstr ""
-#: cp/method.c:2113
+#: cp/method.c:2115
#, gcc-internal-format
msgid "%qD cannot be defaulted"
msgstr ""
-#: cp/method.c:2122
+#: cp/method.c:2124
#, gcc-internal-format
msgid "defaulted function %q+D with default argument"
msgstr ""
msgid "LEXER_DEBUGGING_ENABLED_P is not set to true"
msgstr ""
-#: cp/parser.c:1349 cp/parser.c:35637
+#: cp/parser.c:1349 cp/parser.c:35699
#, gcc-internal-format
msgid ""
"%<#pragma omp declare simd%> not immediately followed by function "
"declaration or definition"
msgstr ""
-#: cp/parser.c:1387 cp/parser.c:36470 cp/parser.c:36575 cp/parser.c:36600
-#: cp/parser.c:36657
+#: cp/parser.c:1387 cp/parser.c:36532 cp/parser.c:36637 cp/parser.c:36662
+#: cp/parser.c:36719
#, gcc-internal-format
msgid ""
"%<#pragma acc routine%> not followed by a function declaration or definition"
msgid "request for member %qE in non-class type %qT"
msgstr ""
-#: cp/parser.c:2826 cp/parser.c:17206
+#: cp/parser.c:2826 cp/parser.c:17228
#, gcc-internal-format
msgid "%<%T::%E%> has not been declared"
msgstr ""
msgid "floating-point literal cannot appear in a constant-expression"
msgstr ""
-#: cp/parser.c:3017 cp/pt.c:16071
+#: cp/parser.c:3017 cp/pt.c:16146
#, gcc-internal-format
msgid ""
"a cast to a type other than an integral or enumeration type cannot appear in "
msgid "unable to find string literal operator %qD with %qT, %qT arguments"
msgstr ""
-#: cp/parser.c:4347 cp/parser.c:12311
+#: cp/parser.c:4347 cp/parser.c:12322
#, gcc-internal-format
msgid "expected declaration"
msgstr ""
"standardization"
msgstr ""
-#: cp/parser.c:5779 cp/parser.c:19182
+#: cp/parser.c:5779 cp/parser.c:19204
#, gcc-internal-format
msgid "expected unqualified-id"
msgstr ""
msgid "lambda-expression in template-argument"
msgstr ""
-#: cp/parser.c:9850
+#: cp/parser.c:9852
#, gcc-internal-format
msgid "expected end of capture-list"
msgstr ""
-#: cp/parser.c:9864
+#: cp/parser.c:9866
#, gcc-internal-format
msgid ""
"explicit by-copy capture of %<this%> redundant with by-copy capture default"
msgstr ""
-#: cp/parser.c:9908
+#: cp/parser.c:9910
#, gcc-internal-format
msgid ""
"lambda capture initializers only available with -std=c++14 or -std=gnu++14"
msgstr ""
-#: cp/parser.c:9915
+#: cp/parser.c:9917
#, gcc-internal-format
msgid "empty initializer for lambda init-capture"
msgstr ""
-#: cp/parser.c:9938
+#: cp/parser.c:9940
#, gcc-internal-format
msgid "capture of non-variable %qD "
msgstr ""
-#: cp/parser.c:9941 cp/parser.c:9951 cp/semantics.c:3371 cp/semantics.c:3381
+#: cp/parser.c:9943 cp/parser.c:9953 cp/semantics.c:3364 cp/semantics.c:3374
#, gcc-internal-format
msgid "%q#D declared here"
msgstr ""
-#: cp/parser.c:9947
+#: cp/parser.c:9949
#, gcc-internal-format
msgid "capture of variable %qD with non-automatic storage duration"
msgstr ""
-#: cp/parser.c:9985
+#: cp/parser.c:9987
#, gcc-internal-format
msgid "explicit by-copy capture of %qD redundant with by-copy capture default"
msgstr ""
-#: cp/parser.c:9990
+#: cp/parser.c:9992
#, gcc-internal-format
msgid ""
"explicit by-reference capture of %qD redundant with by-reference capture "
"default"
msgstr ""
-#: cp/parser.c:10037
+#: cp/parser.c:10039
#, gcc-internal-format
msgid "lambda templates are only available with -std=c++14 or -std=gnu++14"
msgstr ""
-#: cp/parser.c:10067
+#: cp/parser.c:10069
#, gcc-internal-format
msgid "default argument specified for lambda parameter"
msgstr ""
-#: cp/parser.c:10546
+#: cp/parser.c:10548
#, gcc-internal-format
msgid "attributes at the beginning of statement are ignored"
msgstr ""
-#: cp/parser.c:10574
+#: cp/parser.c:10576
#, gcc-internal-format
msgid "expected labeled-statement"
msgstr ""
-#: cp/parser.c:10612
+#: cp/parser.c:10614
#, gcc-internal-format
msgid "case label %qE not within a switch statement"
msgstr ""
-#: cp/parser.c:10697
+#: cp/parser.c:10699
#, gcc-internal-format
msgid "need %<typename%> before %qE because %qT is a dependent scope"
msgstr ""
-#: cp/parser.c:10706
+#: cp/parser.c:10708
#, gcc-internal-format
msgid "%<%T::%D%> names the constructor, not the type"
msgstr ""
-#: cp/parser.c:10753
+#: cp/parser.c:10755
#, gcc-internal-format
msgid "compound-statement in constexpr function"
msgstr ""
-#: cp/parser.c:10995 cp/parser.c:26946
+#: cp/parser.c:10997 cp/parser.c:27021
#, gcc-internal-format
msgid "expected selection-statement"
msgstr ""
-#: cp/parser.c:11028
+#: cp/parser.c:11030
#, gcc-internal-format
msgid "types may not be defined in conditions"
msgstr ""
-#: cp/parser.c:11408
+#: cp/parser.c:11419
#, gcc-internal-format
msgid "range-based %<for%> expression of type %qT has incomplete type"
msgstr ""
-#: cp/parser.c:11446
+#: cp/parser.c:11457
#, gcc-internal-format
msgid ""
"range-based %<for%> expression of type %qT has an %<end%> member but not a "
"%<begin%>"
msgstr ""
-#: cp/parser.c:11452
+#: cp/parser.c:11463
#, gcc-internal-format
msgid ""
"range-based %<for%> expression of type %qT has a %<begin%> member but not an "
"%<end%>"
msgstr ""
-#: cp/parser.c:11504
+#: cp/parser.c:11515
#, gcc-internal-format
msgid ""
"inconsistent begin/end types in range-based %<for%> statement: %qT and %qT"
msgstr ""
-#: cp/parser.c:11639 cp/parser.c:26949
+#: cp/parser.c:11650 cp/parser.c:27024
#, gcc-internal-format
msgid "expected iteration-statement"
msgstr ""
-#: cp/parser.c:11687
+#: cp/parser.c:11698
#, gcc-internal-format
msgid ""
"range-based %<for%> loops only available with -std=c++11 or -std=gnu++11"
msgstr ""
-#: cp/parser.c:11761
+#: cp/parser.c:11772
#, gcc-internal-format
msgid "break statement used with Cilk Plus for loop"
msgstr ""
-#: cp/parser.c:11818
+#: cp/parser.c:11829
#, gcc-internal-format
msgid "%<goto%> in %<constexpr%> function"
msgstr ""
#. Issue a warning about this use of a GNU extension.
-#: cp/parser.c:11826
+#: cp/parser.c:11837
#, gcc-internal-format
msgid "ISO C++ forbids computed gotos"
msgstr ""
-#: cp/parser.c:11839 cp/parser.c:26952
+#: cp/parser.c:11850 cp/parser.c:27027
#, gcc-internal-format
msgid "expected jump-statement"
msgstr ""
-#: cp/parser.c:11996 cp/parser.c:22324
+#: cp/parser.c:12007 cp/parser.c:22346
#, gcc-internal-format
msgid "extra %<;%>"
msgstr ""
-#: cp/parser.c:12236
+#: cp/parser.c:12247
#, gcc-internal-format
msgid "%<__label__%> not at the beginning of a block"
msgstr ""
-#: cp/parser.c:12398
+#: cp/parser.c:12409
#, gcc-internal-format
msgid "inconsistent deduction for %qT: %qT and then %qT"
msgstr ""
-#: cp/parser.c:12419
+#: cp/parser.c:12430
#, gcc-internal-format
msgid "mixing declarations and function-definitions is forbidden"
msgstr ""
-#: cp/parser.c:12490
+#: cp/parser.c:12454
+#, gcc-internal-format
+msgid "types may not be defined in a for-range-declaration"
+msgstr ""
+
+#: cp/parser.c:12508
#, gcc-internal-format
msgid "initializer in range-based %<for%> loop"
msgstr ""
-#: cp/parser.c:12493
+#: cp/parser.c:12511
#, gcc-internal-format
msgid "multiple declarations in range-based %<for%> loop"
msgstr ""
-#: cp/parser.c:12634
+#: cp/parser.c:12652
#, gcc-internal-format
msgid "%<friend%> used outside of class"
msgstr ""
#. Complain about `auto' as a storage specifier, if
#. we're complaining about C++0x compatibility.
-#: cp/parser.c:12698
+#: cp/parser.c:12716
#, gcc-internal-format
msgid "%<auto%> changes meaning in C++11; please remove it"
msgstr ""
-#: cp/parser.c:12734
+#: cp/parser.c:12752
#, gcc-internal-format
msgid "decl-specifier invalid in condition"
msgstr ""
-#: cp/parser.c:12826
+#: cp/parser.c:12844
#, gcc-internal-format
msgid "class definition may not be declared a friend"
msgstr ""
-#: cp/parser.c:12894 cp/parser.c:22731
+#: cp/parser.c:12912 cp/parser.c:22753
#, gcc-internal-format
msgid "templates may not be %<virtual%>"
msgstr ""
-#: cp/parser.c:12934
+#: cp/parser.c:12952
#, gcc-internal-format
msgid "invalid linkage-specification"
msgstr ""
-#: cp/parser.c:13021
+#: cp/parser.c:13039
#, gcc-internal-format
msgid ""
"static_assert without a message only available with -std=c++1z or -std=gnu+"
"+1z"
msgstr ""
-#: cp/parser.c:13215
+#: cp/parser.c:13233
#, gcc-internal-format
msgid "types may not be defined in %<decltype%> expressions"
msgstr ""
-#: cp/parser.c:13358
+#: cp/parser.c:13376
#, gcc-internal-format
msgid "types may not be defined in a conversion-type-id"
msgstr ""
-#: cp/parser.c:13385
+#: cp/parser.c:13403
#, gcc-internal-format
msgid "invalid use of %<auto%> in conversion operator"
msgstr ""
-#: cp/parser.c:13389
+#: cp/parser.c:13407
#, gcc-internal-format
msgid ""
"use of %<auto%> in member template conversion operator can never be deduced"
msgstr ""
-#: cp/parser.c:13478
+#: cp/parser.c:13496
#, gcc-internal-format
msgid "only constructors take member initializers"
msgstr ""
-#: cp/parser.c:13500
+#: cp/parser.c:13518
#, gcc-internal-format
msgid "cannot expand initializer for member %<%D%>"
msgstr ""
-#: cp/parser.c:13512
+#: cp/parser.c:13530
#, gcc-internal-format
msgid "mem-initializer for %qD follows constructor delegation"
msgstr ""
-#: cp/parser.c:13524
+#: cp/parser.c:13542
#, gcc-internal-format
msgid "constructor delegation follows mem-initializer for %qD"
msgstr ""
-#: cp/parser.c:13576
+#: cp/parser.c:13594
#, gcc-internal-format
msgid "anachronistic old-style base class initializer"
msgstr ""
-#: cp/parser.c:13646
+#: cp/parser.c:13664
#, gcc-internal-format
msgid ""
"keyword %<typename%> not allowed in this context (a qualified member "
"initializer is implicitly a type)"
msgstr ""
-#: cp/parser.c:14005
+#: cp/parser.c:14024
#, gcc-internal-format
msgid "unexpected keyword; remove space between quotes and suffix identifier"
msgstr ""
-#: cp/parser.c:14011
+#: cp/parser.c:14030
#, gcc-internal-format
msgid "expected suffix identifier"
msgstr ""
-#: cp/parser.c:14020
+#: cp/parser.c:14039
#, gcc-internal-format
msgid "expected empty string after %<operator%> keyword"
msgstr ""
-#: cp/parser.c:14026
+#: cp/parser.c:14045
#, gcc-internal-format
msgid "invalid encoding prefix in literal operator"
msgstr ""
-#: cp/parser.c:14049
+#: cp/parser.c:14068
#, gcc-internal-format
msgid "expected operator"
msgstr ""
#. Warn that we do not support `export'.
-#: cp/parser.c:14094
+#: cp/parser.c:14113
#, gcc-internal-format
msgid "keyword %<export%> not implemented, and will be ignored"
msgstr ""
-#: cp/parser.c:14264
+#: cp/parser.c:14283
#, gcc-internal-format
msgid "invalid constrained type parameter"
msgstr ""
-#: cp/parser.c:14272
+#: cp/parser.c:14291
#, gcc-internal-format
msgid "cv-qualified type parameter"
msgstr ""
-#: cp/parser.c:14357
+#: cp/parser.c:14376
#, gcc-internal-format
msgid "variadic constraint introduced without %<...%>"
msgstr ""
-#: cp/parser.c:14421
+#: cp/parser.c:14440
#, gcc-internal-format
msgid "invalid use of %<auto%> in default template argument"
msgstr ""
-#: cp/parser.c:14656 cp/parser.c:14739 cp/parser.c:20599
+#: cp/parser.c:14675 cp/parser.c:14761 cp/parser.c:20621
#, gcc-internal-format
msgid "template parameter pack %qD cannot have a default argument"
msgstr ""
-#: cp/parser.c:14660 cp/parser.c:14743
+#: cp/parser.c:14679 cp/parser.c:14765
#, gcc-internal-format
msgid "template parameter packs cannot have default arguments"
msgstr ""
-#: cp/parser.c:14809
+#: cp/parser.c:14831
#, gcc-internal-format
msgid "expected template-id"
msgstr ""
-#: cp/parser.c:14862 cp/parser.c:26910
+#: cp/parser.c:14884 cp/parser.c:26985
#, gcc-internal-format
msgid "expected %<<%>"
msgstr ""
-#: cp/parser.c:14869
+#: cp/parser.c:14891
#, gcc-internal-format
msgid "%<<::%> cannot begin a template-argument list"
msgstr ""
-#: cp/parser.c:14873
+#: cp/parser.c:14895
#, gcc-internal-format
msgid ""
"%<<:%> is an alternate spelling for %<[%>. Insert whitespace between %<<%> "
"and %<::%>"
msgstr ""
-#: cp/parser.c:14877
+#: cp/parser.c:14899
#, gcc-internal-format
msgid ""
"(if you use %<-fpermissive%> or %<-std=c++11%>, or %<-std=gnu++11%> G++ will "
"accept your code)"
msgstr ""
-#: cp/parser.c:14984
+#: cp/parser.c:15006
#, gcc-internal-format
msgid "parse error in template argument list"
msgstr ""
#. The name does not name a template.
-#: cp/parser.c:15053 cp/parser.c:15174 cp/parser.c:15389
+#: cp/parser.c:15075 cp/parser.c:15196 cp/parser.c:15411
#, gcc-internal-format
msgid "expected template-name"
msgstr ""
#. Explain what went wrong.
-#: cp/parser.c:15099
+#: cp/parser.c:15121
#, gcc-internal-format
msgid "non-template %qD used as template"
msgstr ""
-#: cp/parser.c:15101
+#: cp/parser.c:15123
#, gcc-internal-format
msgid "use %<%T::template %D%> to indicate that it is a template"
msgstr ""
-#: cp/parser.c:15241
+#: cp/parser.c:15263
#, gcc-internal-format
msgid "expected parameter pack before %<...%>"
msgstr ""
-#: cp/parser.c:15350 cp/parser.c:15368 cp/parser.c:15535
+#: cp/parser.c:15372 cp/parser.c:15390 cp/parser.c:15557
#, gcc-internal-format
msgid "expected template-argument"
msgstr ""
-#: cp/parser.c:15510
+#: cp/parser.c:15532
#, gcc-internal-format
msgid "invalid non-type template argument"
msgstr ""
-#: cp/parser.c:15637
+#: cp/parser.c:15659
#, gcc-internal-format
msgid "explicit instantiation shall not use %<inline%> specifier"
msgstr ""
-#: cp/parser.c:15641
+#: cp/parser.c:15663
#, gcc-internal-format
msgid "explicit instantiation shall not use %<constexpr%> specifier"
msgstr ""
-#: cp/parser.c:15700
+#: cp/parser.c:15722
#, gcc-internal-format
msgid "template specialization with C linkage"
msgstr ""
-#: cp/parser.c:15920
+#: cp/parser.c:15942
#, gcc-internal-format
msgid "expected type specifier"
msgstr ""
-#: cp/parser.c:16100
+#: cp/parser.c:16122
#, gcc-internal-format
msgid ""
"use of %<auto%> in lambda parameter declaration only available with -std=c+"
"+14 or -std=gnu++14"
msgstr ""
-#: cp/parser.c:16106
+#: cp/parser.c:16128
#, gcc-internal-format
msgid ""
"use of %<auto%> in parameter declaration only available with -std=c++14 or -"
"std=gnu++14"
msgstr ""
-#: cp/parser.c:16111
+#: cp/parser.c:16133
#, gcc-internal-format
msgid "ISO C++ forbids use of %<auto%> in parameter declaration"
msgstr ""
-#: cp/parser.c:16255
+#: cp/parser.c:16277
#, gcc-internal-format
msgid "expected template-id for type"
msgstr ""
-#: cp/parser.c:16282
+#: cp/parser.c:16304
#, gcc-internal-format
msgid "expected type-name"
msgstr ""
-#: cp/parser.c:16631
+#: cp/parser.c:16653
#, gcc-internal-format
msgid ""
"elaborated-type-specifier for a scoped enum must not use the %<%D%> keyword"
msgstr ""
-#: cp/parser.c:16840
+#: cp/parser.c:16862
#, gcc-internal-format
msgid "declaration %qD does not declare anything"
msgstr ""
-#: cp/parser.c:16927
+#: cp/parser.c:16949
#, gcc-internal-format
msgid "attributes ignored on uninstantiated type"
msgstr ""
-#: cp/parser.c:16931
+#: cp/parser.c:16953
#, gcc-internal-format
msgid "attributes ignored on template instantiation"
msgstr ""
-#: cp/parser.c:16936
+#: cp/parser.c:16958
#, gcc-internal-format
msgid ""
"attributes ignored on elaborated-type-specifier that is not a forward "
"declaration"
msgstr ""
-#: cp/parser.c:17070
+#: cp/parser.c:17092
#, gcc-internal-format
msgid "%qD is an enumeration template"
msgstr ""
-#: cp/parser.c:17081
+#: cp/parser.c:17103
#, gcc-internal-format
msgid "%qD does not name an enumeration in %qT"
msgstr ""
-#: cp/parser.c:17096
+#: cp/parser.c:17118
#, gcc-internal-format
msgid "anonymous scoped enum is not allowed"
msgstr ""
-#: cp/parser.c:17151
+#: cp/parser.c:17173
#, gcc-internal-format
msgid "expected %<;%> or %<{%>"
msgstr ""
-#: cp/parser.c:17200
+#: cp/parser.c:17222
#, gcc-internal-format
msgid "cannot add an enumerator list to a template instantiation"
msgstr ""
-#: cp/parser.c:17214
+#: cp/parser.c:17236
#, gcc-internal-format
msgid ""
"nested name specifier %qT for enum declaration does not name a class or "
"namespace"
msgstr ""
-#: cp/parser.c:17226 cp/parser.c:21835
+#: cp/parser.c:17248 cp/parser.c:21857
#, gcc-internal-format
msgid "declaration of %qD in namespace %qD which does not enclose %qD"
msgstr ""
-#: cp/parser.c:17231 cp/parser.c:21840
+#: cp/parser.c:17253 cp/parser.c:21862
#, gcc-internal-format
msgid "declaration of %qD in %qD which does not enclose %qD"
msgstr ""
-#: cp/parser.c:17256
+#: cp/parser.c:17278
#, gcc-internal-format
msgid "multiple definition of %q#T"
msgstr ""
-#: cp/parser.c:17269
+#: cp/parser.c:17291
#, gcc-internal-format
msgid "ISO C++ forbids empty anonymous enum"
msgstr ""
-#: cp/parser.c:17289
+#: cp/parser.c:17311
#, gcc-internal-format
msgid "opaque-enum-specifier without name"
msgstr ""
-#: cp/parser.c:17292
+#: cp/parser.c:17314
#, gcc-internal-format
msgid "opaque-enum-specifier must use a simple identifier"
msgstr ""
-#: cp/parser.c:17470
+#: cp/parser.c:17492
#, gcc-internal-format
msgid "%qD is not a namespace-name"
msgstr ""
-#: cp/parser.c:17471
+#: cp/parser.c:17493
#, gcc-internal-format
msgid "expected namespace-name"
msgstr ""
-#: cp/parser.c:17549
+#: cp/parser.c:17571
#, gcc-internal-format
msgid "a nested namespace definition cannot have attributes"
msgstr ""
-#: cp/parser.c:17552
+#: cp/parser.c:17574
#, gcc-internal-format
msgid ""
"nested namespace definitions only available with -std=c++1z or -std=gnu++1z"
msgstr ""
-#: cp/parser.c:17555
+#: cp/parser.c:17577
#, gcc-internal-format
msgid "a nested namespace definition cannot be inline"
msgstr ""
-#: cp/parser.c:17563
+#: cp/parser.c:17585
#, gcc-internal-format
msgid "nested identifier required"
msgstr ""
-#: cp/parser.c:17591
+#: cp/parser.c:17613
#, gcc-internal-format
msgid "namespace %qD entered"
msgstr ""
-#: cp/parser.c:17643
+#: cp/parser.c:17665
#, gcc-internal-format
msgid "%<namespace%> definition is not allowed here"
msgstr ""
-#: cp/parser.c:17798
+#: cp/parser.c:17820
#, gcc-internal-format
msgid "a template-id may not appear in a using-declaration"
msgstr ""
-#: cp/parser.c:17844
+#: cp/parser.c:17866
#, gcc-internal-format
msgid ""
"access declarations are deprecated in favour of using-declarations; "
"suggestion: add the %<using%> keyword"
msgstr ""
-#: cp/parser.c:17909
+#: cp/parser.c:17931
#, gcc-internal-format
msgid "types may not be defined in alias template declarations"
msgstr ""
-#: cp/parser.c:18062
+#: cp/parser.c:18084
#, gcc-internal-format
msgid "%<asm%> in %<constexpr%> function"
msgstr ""
-#: cp/parser.c:18428
+#: cp/parser.c:18450
#, gcc-internal-format
msgid "a function-definition is not allowed here"
msgstr ""
-#: cp/parser.c:18439
+#: cp/parser.c:18461
#, gcc-internal-format
msgid "an asm-specification is not allowed on a function-definition"
msgstr ""
-#: cp/parser.c:18443
+#: cp/parser.c:18465
#, gcc-internal-format
msgid "attributes are not allowed on a function-definition"
msgstr ""
-#: cp/parser.c:18494
+#: cp/parser.c:18516
#, gcc-internal-format
msgid "expected constructor, destructor, or type conversion"
msgstr ""
#. Anything else is an error.
-#: cp/parser.c:18533 cp/parser.c:20790
+#: cp/parser.c:18555 cp/parser.c:20812
#, gcc-internal-format
msgid "expected initializer"
msgstr ""
-#: cp/parser.c:18614
+#: cp/parser.c:18636
#, gcc-internal-format
msgid "initializer provided for function"
msgstr ""
-#: cp/parser.c:18648
+#: cp/parser.c:18670
#, gcc-internal-format
msgid "attributes after parenthesized initializer ignored"
msgstr ""
-#: cp/parser.c:18653
+#: cp/parser.c:18675
#, gcc-internal-format
msgid "non-function %qD declared as implicit template"
msgstr ""
-#: cp/parser.c:19102
+#: cp/parser.c:19124
#, gcc-internal-format
msgid "array bound is not an integer constant"
msgstr ""
-#: cp/parser.c:19228
+#: cp/parser.c:19250
#, gcc-internal-format
msgid "cannot define member of dependent typedef %qT"
msgstr ""
-#: cp/parser.c:19232
+#: cp/parser.c:19254
#, gcc-internal-format
msgid "%<%T::%E%> is not a type"
msgstr ""
-#: cp/parser.c:19260
+#: cp/parser.c:19282
#, gcc-internal-format
msgid "invalid use of constructor as a template"
msgstr ""
-#: cp/parser.c:19262
+#: cp/parser.c:19284
#, gcc-internal-format
msgid ""
"use %<%T::%D%> instead of %<%T::%D%> to name the constructor in a qualified "
#. here because we do not have enough
#. information about its original syntactic
#. form.
-#: cp/parser.c:19279
+#: cp/parser.c:19301
#, gcc-internal-format
msgid "invalid declarator"
msgstr ""
#. But declarations with qualified-ids can't appear in a
#. function.
-#: cp/parser.c:19349
+#: cp/parser.c:19371
#, gcc-internal-format
msgid "qualified-id in declaration"
msgstr ""
-#: cp/parser.c:19374
+#: cp/parser.c:19396
#, gcc-internal-format
msgid "expected declarator"
msgstr ""
-#: cp/parser.c:19477
+#: cp/parser.c:19499
#, gcc-internal-format
msgid "%qD is a namespace"
msgstr ""
-#: cp/parser.c:19479
+#: cp/parser.c:19501
#, gcc-internal-format
msgid "cannot form pointer to member of non-class %q#T"
msgstr ""
-#: cp/parser.c:19500
+#: cp/parser.c:19522
#, gcc-internal-format
msgid "expected ptr-operator"
msgstr ""
-#: cp/parser.c:19559
+#: cp/parser.c:19581
#, gcc-internal-format
msgid "duplicate cv-qualifier"
msgstr ""
-#: cp/parser.c:19613
+#: cp/parser.c:19635
#, gcc-internal-format
msgid "multiple ref-qualifiers"
msgstr ""
-#: cp/parser.c:19650
+#: cp/parser.c:19672
#, gcc-internal-format
msgid "%E requires %<-fgnu-tm%>"
msgstr ""
-#: cp/parser.c:19706
+#: cp/parser.c:19728
#, gcc-internal-format
msgid "duplicate virt-specifier"
msgstr ""
-#: cp/parser.c:19936 cp/typeck2.c:529 cp/typeck2.c:1950
+#: cp/parser.c:19958 cp/typeck2.c:529 cp/typeck2.c:1953
#, gcc-internal-format
msgid "invalid use of %<auto%>"
msgstr ""
-#: cp/parser.c:19957
+#: cp/parser.c:19979
#, gcc-internal-format
msgid "types may not be defined in template arguments"
msgstr ""
-#: cp/parser.c:19962
+#: cp/parser.c:19984
#, gcc-internal-format
msgid "invalid use of %<auto%> in template argument"
msgstr ""
-#: cp/parser.c:20050
+#: cp/parser.c:20072
#, gcc-internal-format
msgid "expected type-specifier"
msgstr ""
-#: cp/parser.c:20356
+#: cp/parser.c:20378
#, gcc-internal-format
msgid "expected %<,%> or %<...%>"
msgstr ""
-#: cp/parser.c:20431
+#: cp/parser.c:20453
#, gcc-internal-format
msgid "types may not be defined in parameter types"
msgstr ""
-#: cp/parser.c:20583
+#: cp/parser.c:20605
#, gcc-internal-format
msgid "default arguments are only permitted for function parameters"
msgstr ""
-#: cp/parser.c:20601
+#: cp/parser.c:20623
#, gcc-internal-format
msgid "parameter pack %qD cannot have a default argument"
msgstr ""
-#: cp/parser.c:20607
+#: cp/parser.c:20629
#, gcc-internal-format
msgid "template parameter pack cannot have a default argument"
msgstr ""
-#: cp/parser.c:20609
+#: cp/parser.c:20631
#, gcc-internal-format
msgid "parameter pack cannot have a default argument"
msgstr ""
-#: cp/parser.c:20993
+#: cp/parser.c:21015
#, gcc-internal-format
msgid "ISO C++ does not allow designated initializers"
msgstr ""
-#: cp/parser.c:21007
+#: cp/parser.c:21029
#, gcc-internal-format
msgid "ISO C++ does not allow C99 designated initializers"
msgstr ""
-#: cp/parser.c:21127 cp/parser.c:21253
+#: cp/parser.c:21149 cp/parser.c:21275
#, gcc-internal-format
msgid "expected class-name"
msgstr ""
-#: cp/parser.c:21440
+#: cp/parser.c:21462
#, gcc-internal-format
msgid "expected %<;%> after class definition"
msgstr ""
-#: cp/parser.c:21442
+#: cp/parser.c:21464
#, gcc-internal-format
msgid "expected %<;%> after struct definition"
msgstr ""
-#: cp/parser.c:21444
+#: cp/parser.c:21466
#, gcc-internal-format
msgid "expected %<;%> after union definition"
msgstr ""
-#: cp/parser.c:21783
+#: cp/parser.c:21805
#, gcc-internal-format
msgid "expected %<{%> or %<:%>"
msgstr ""
-#: cp/parser.c:21794
+#: cp/parser.c:21816
#, gcc-internal-format
msgid "cannot specify %<override%> for a class"
msgstr ""
-#: cp/parser.c:21802
+#: cp/parser.c:21824
#, gcc-internal-format
msgid "global qualification of class name is invalid"
msgstr ""
-#: cp/parser.c:21809
+#: cp/parser.c:21831
#, gcc-internal-format
msgid "qualified name does not name a class"
msgstr ""
-#: cp/parser.c:21821
+#: cp/parser.c:21843
#, gcc-internal-format
msgid "invalid class name in declaration of %qD"
msgstr ""
-#: cp/parser.c:21854
+#: cp/parser.c:21876
#, gcc-internal-format
msgid "extra qualification not allowed"
msgstr ""
-#: cp/parser.c:21866
+#: cp/parser.c:21888
#, gcc-internal-format
msgid "an explicit specialization must be preceded by %<template <>%>"
msgstr ""
-#: cp/parser.c:21896
+#: cp/parser.c:21918
#, gcc-internal-format
msgid "function template %qD redeclared as a class template"
msgstr ""
-#: cp/parser.c:21927
+#: cp/parser.c:21949
#, gcc-internal-format
msgid "could not resolve typename type"
msgstr ""
-#: cp/parser.c:21983
+#: cp/parser.c:22005
#, gcc-internal-format
msgid "previous definition of %q+#T"
msgstr ""
-#: cp/parser.c:22074 cp/parser.c:26955
+#: cp/parser.c:22096 cp/parser.c:27030
#, gcc-internal-format
msgid "expected class-key"
msgstr ""
-#: cp/parser.c:22098
+#: cp/parser.c:22120
#, gcc-internal-format
msgid ""
"ISO C++ forbids typename key in template template parameter; use -std=c++1z "
"or -std=gnu++1z"
msgstr ""
-#: cp/parser.c:22102
+#: cp/parser.c:22124
#, gcc-internal-format
msgid "expected %<class%> or %<typename%>"
msgstr ""
-#: cp/parser.c:22344
+#: cp/parser.c:22366
#, gcc-internal-format
msgid "in C++03 a class-key must be used when declaring a friend"
msgstr ""
-#: cp/parser.c:22362
+#: cp/parser.c:22384
#, gcc-internal-format
msgid "friend declaration does not name a class or function"
msgstr ""
-#: cp/parser.c:22380
+#: cp/parser.c:22402
#, gcc-internal-format
msgid "a storage class on an anonymous aggregate in class scope is not allowed"
msgstr ""
-#: cp/parser.c:22584
+#: cp/parser.c:22606
#, gcc-internal-format
msgid "pure-specifier on function-definition"
msgstr ""
-#: cp/parser.c:22639
+#: cp/parser.c:22661
#, gcc-internal-format
msgid "stray %<,%> at end of member declaration"
msgstr ""
-#: cp/parser.c:22651
+#: cp/parser.c:22673
#, gcc-internal-format
msgid "expected %<;%> at end of member declaration"
msgstr ""
-#: cp/parser.c:22725
+#: cp/parser.c:22747
#, gcc-internal-format
msgid "invalid pure specifier (only %<= 0%> is allowed)"
msgstr ""
-#: cp/parser.c:22760
+#: cp/parser.c:22782
#, gcc-internal-format
msgid "a brace-enclosed initializer is not allowed here"
msgstr ""
-#: cp/parser.c:22889
+#: cp/parser.c:22911
#, gcc-internal-format
msgid "%<virtual%> specified more than once in base-specified"
msgstr ""
-#: cp/parser.c:22909
+#: cp/parser.c:22931
#, gcc-internal-format
msgid "more than one access specifier in base-specified"
msgstr ""
-#: cp/parser.c:22933
+#: cp/parser.c:22955
#, gcc-internal-format
msgid "keyword %<typename%> not allowed outside of templates"
msgstr ""
-#: cp/parser.c:22936
+#: cp/parser.c:22958
#, gcc-internal-format
msgid ""
"keyword %<typename%> not allowed in this context (the base class is "
"implicitly a type)"
msgstr ""
-#: cp/parser.c:23029 cp/parser.c:23111
+#: cp/parser.c:23051 cp/parser.c:23133
#, gcc-internal-format
msgid "types may not be defined in an exception-specification"
msgstr ""
-#: cp/parser.c:23093
+#: cp/parser.c:23115
#, gcc-internal-format
msgid ""
"dynamic exception specifications are deprecated in C++0x; use %<noexcept%> "
"instead"
msgstr ""
-#: cp/parser.c:23153
+#: cp/parser.c:23175
#, gcc-internal-format
msgid "invalid use of %<auto%> in exception-specification"
msgstr ""
-#: cp/parser.c:23192
+#: cp/parser.c:23214
#, gcc-internal-format
msgid "%<try%> in %<constexpr%> function"
msgstr ""
-#: cp/parser.c:23305
+#: cp/parser.c:23327
#, gcc-internal-format
msgid "types may not be defined in exception-declarations"
msgstr ""
-#: cp/parser.c:23917
+#: cp/parser.c:23939
#, gcc-internal-format
msgid "expected an identifier for the attribute name"
msgstr ""
-#: cp/parser.c:23936
+#: cp/parser.c:23958
#, gcc-internal-format
msgid "%<deprecated%> is a C++14 feature; use %<gnu::deprecated%>"
msgstr ""
-#: cp/parser.c:23998
+#: cp/parser.c:24020
#, gcc-internal-format
msgid "attribute noreturn can appear at most once in an attribute-list"
msgstr ""
-#: cp/parser.c:24002
+#: cp/parser.c:24024
#, gcc-internal-format
msgid "attribute deprecated can appear at most once in an attribute-list"
msgstr ""
-#: cp/parser.c:24273
+#: cp/parser.c:24295
#, gcc-internal-format
msgid "%<requires%> only available with -fconcepts"
msgstr ""
-#: cp/parser.c:24305
+#: cp/parser.c:24327
#, gcc-internal-format
msgid "a requires expression cannot appear outside a template"
msgstr ""
-#: cp/parser.c:25001
+#: cp/parser.c:25037
#, gcc-internal-format
msgid "specializing member %<%T::%E%> requires %<template<>%> syntax"
msgstr ""
-#: cp/parser.c:25006
+#: cp/parser.c:25042
#, gcc-internal-format
msgid "invalid declaration of %<%T::%E%>"
msgstr ""
-#: cp/parser.c:25010
+#: cp/parser.c:25046
#, gcc-internal-format
msgid "too few template-parameter-lists"
msgstr ""
#. something like:
#.
#. template <class T> template <class U> void S::f();
-#: cp/parser.c:25017
+#: cp/parser.c:25053
#, gcc-internal-format
msgid "too many template-parameter-lists"
msgstr ""
-#: cp/parser.c:25343
+#: cp/parser.c:25379
#, gcc-internal-format
msgid "named return values are no longer supported"
msgstr ""
-#: cp/parser.c:25508
+#: cp/parser.c:25544
#, gcc-internal-format
msgid ""
"literal operator template %qD has invalid parameter list. Expected non-type "
"template argument pack <char...> or <typename CharT, CharT...>"
msgstr ""
-#: cp/parser.c:25513
+#: cp/parser.c:25549
#, gcc-internal-format
msgid ""
"literal operator template %qD has invalid parameter list. Expected non-type "
"template argument pack <char...>"
msgstr ""
-#: cp/parser.c:25582
+#: cp/parser.c:25618
#, gcc-internal-format
msgid "empty introduction-list"
msgstr ""
-#: cp/parser.c:25606
+#: cp/parser.c:25642
#, gcc-internal-format
msgid "no matching concept for template-introduction"
msgstr ""
-#: cp/parser.c:25628
+#: cp/parser.c:25664
#, gcc-internal-format
msgid "invalid declaration of member template in local class"
msgstr ""
-#: cp/parser.c:25637
+#: cp/parser.c:25673
#, gcc-internal-format
msgid "template with C linkage"
msgstr ""
-#: cp/parser.c:25656
+#: cp/parser.c:25692
#, gcc-internal-format
msgid "invalid explicit specialization"
msgstr ""
-#: cp/parser.c:25757
+#: cp/parser.c:25796
#, gcc-internal-format
msgid "template declaration of %<typedef%>"
msgstr ""
-#: cp/parser.c:25808
+#: cp/parser.c:25847
#, gcc-internal-format
msgid "a class template declaration must not declare anything else"
msgstr ""
-#: cp/parser.c:25854
+#: cp/parser.c:25893
#, gcc-internal-format
msgid "explicit template specialization cannot have a storage class"
msgstr ""
-#: cp/parser.c:26124
+#: cp/parser.c:26199
#, gcc-internal-format
msgid "%<>>%> should be %<> >%> within a nested template argument list"
msgstr ""
-#: cp/parser.c:26137
+#: cp/parser.c:26212
#, gcc-internal-format
msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
msgstr ""
-#: cp/parser.c:26434
+#: cp/parser.c:26509
#, gcc-internal-format
msgid "%<sizeof...%> argument must be surrounded by parentheses"
msgstr ""
-#: cp/parser.c:26590
+#: cp/parser.c:26665
#, gcc-internal-format
msgid "invalid use of %qD in linkage specification"
msgstr ""
-#: cp/parser.c:26605
+#: cp/parser.c:26680
#, gcc-internal-format
msgid "%<__thread%> before %qD"
msgstr ""
-#: cp/parser.c:26739
+#: cp/parser.c:26814
#, gcc-internal-format
msgid "ISO C++ 1998 does not support %<long long%>"
msgstr ""
-#: cp/parser.c:26747
+#: cp/parser.c:26822
#, gcc-internal-format
msgid "both %<__thread%> and %<thread_local%> specified"
msgstr ""
-#: cp/parser.c:26749
+#: cp/parser.c:26824
#, gcc-internal-format
msgid "duplicate %qD"
msgstr ""
-#: cp/parser.c:26771
+#: cp/parser.c:26846
#, gcc-internal-format
msgid "duplicate %qs"
msgstr ""
-#: cp/parser.c:26813
+#: cp/parser.c:26888
#, gcc-internal-format
msgid "expected %<new%>"
msgstr ""
-#: cp/parser.c:26816
+#: cp/parser.c:26891
#, gcc-internal-format
msgid "expected %<delete%>"
msgstr ""
-#: cp/parser.c:26819
+#: cp/parser.c:26894
#, gcc-internal-format
msgid "expected %<return%>"
msgstr ""
-#: cp/parser.c:26825
+#: cp/parser.c:26900
#, gcc-internal-format
msgid "expected %<extern%>"
msgstr ""
-#: cp/parser.c:26828
+#: cp/parser.c:26903
#, gcc-internal-format
msgid "expected %<static_assert%>"
msgstr ""
-#: cp/parser.c:26831
+#: cp/parser.c:26906
#, gcc-internal-format
msgid "expected %<decltype%>"
msgstr ""
-#: cp/parser.c:26834
+#: cp/parser.c:26909
#, gcc-internal-format
msgid "expected %<operator%>"
msgstr ""
-#: cp/parser.c:26837
+#: cp/parser.c:26912
#, gcc-internal-format
msgid "expected %<class%>"
msgstr ""
-#: cp/parser.c:26840
+#: cp/parser.c:26915
#, gcc-internal-format
msgid "expected %<template%>"
msgstr ""
-#: cp/parser.c:26843
+#: cp/parser.c:26918
#, gcc-internal-format
msgid "expected %<namespace%>"
msgstr ""
-#: cp/parser.c:26846
+#: cp/parser.c:26921
#, gcc-internal-format
msgid "expected %<using%>"
msgstr ""
-#: cp/parser.c:26849
+#: cp/parser.c:26924
#, gcc-internal-format
msgid "expected %<asm%>"
msgstr ""
-#: cp/parser.c:26852
+#: cp/parser.c:26927
#, gcc-internal-format
msgid "expected %<try%>"
msgstr ""
-#: cp/parser.c:26855
+#: cp/parser.c:26930
#, gcc-internal-format
msgid "expected %<catch%>"
msgstr ""
-#: cp/parser.c:26858
+#: cp/parser.c:26933
#, gcc-internal-format
msgid "expected %<throw%>"
msgstr ""
-#: cp/parser.c:26861
+#: cp/parser.c:26936
#, gcc-internal-format
msgid "expected %<__label__%>"
msgstr ""
-#: cp/parser.c:26864
+#: cp/parser.c:26939
#, gcc-internal-format
msgid "expected %<@try%>"
msgstr ""
-#: cp/parser.c:26867
+#: cp/parser.c:26942
#, gcc-internal-format
msgid "expected %<@synchronized%>"
msgstr ""
-#: cp/parser.c:26870
+#: cp/parser.c:26945
#, gcc-internal-format
msgid "expected %<@throw%>"
msgstr ""
-#: cp/parser.c:26873
+#: cp/parser.c:26948
#, gcc-internal-format
msgid "expected %<__transaction_atomic%>"
msgstr ""
-#: cp/parser.c:26876
+#: cp/parser.c:26951
#, gcc-internal-format
msgid "expected %<__transaction_relaxed%>"
msgstr ""
-#: cp/parser.c:26907
+#: cp/parser.c:26982
#, gcc-internal-format
msgid "expected %<::%>"
msgstr ""
-#: cp/parser.c:26919
+#: cp/parser.c:26994
#, gcc-internal-format
msgid "expected %<...%>"
msgstr ""
-#: cp/parser.c:26922
+#: cp/parser.c:26997
#, gcc-internal-format
msgid "expected %<*%>"
msgstr ""
-#: cp/parser.c:26925
+#: cp/parser.c:27000
#, gcc-internal-format
msgid "expected %<~%>"
msgstr ""
-#: cp/parser.c:26931
+#: cp/parser.c:27006
#, gcc-internal-format
msgid "expected %<:%> or %<::%>"
msgstr ""
-#: cp/parser.c:26959
+#: cp/parser.c:27034
#, gcc-internal-format
msgid "expected %<class%>, %<typename%>, or %<template%>"
msgstr ""
-#: cp/parser.c:27220
+#: cp/parser.c:27295
#, gcc-internal-format
msgid "%qs tag used in naming %q#T"
msgstr ""
-#: cp/parser.c:27225
+#: cp/parser.c:27300
#, gcc-internal-format
msgid "%q#T was previously declared here"
msgstr ""
-#: cp/parser.c:27244
+#: cp/parser.c:27319
#, gcc-internal-format
msgid "%qD redeclared with different access"
msgstr ""
-#: cp/parser.c:27265
+#: cp/parser.c:27340
#, gcc-internal-format
msgid ""
"in C++98 %<template%> (as a disambiguator) is only allowed within templates"
msgstr ""
-#: cp/parser.c:27506
+#: cp/parser.c:27581
#, gcc-internal-format
msgid "file ends in default argument"
msgstr ""
-#: cp/parser.c:27735 cp/parser.c:29044 cp/parser.c:29230
+#: cp/parser.c:27810 cp/parser.c:29119 cp/parser.c:29305
#, gcc-internal-format
msgid "misplaced %<@%D%> Objective-C++ construct"
msgstr ""
-#: cp/parser.c:27804
+#: cp/parser.c:27879
#, gcc-internal-format
msgid "objective-c++ message receiver expected"
msgstr ""
-#: cp/parser.c:27874
+#: cp/parser.c:27949
#, gcc-internal-format
msgid "objective-c++ message argument(s) are expected"
msgstr ""
-#: cp/parser.c:27904
+#: cp/parser.c:27979
#, gcc-internal-format
msgid "%<@encode%> must specify a type as an argument"
msgstr ""
-#: cp/parser.c:28310
+#: cp/parser.c:28385
#, gcc-internal-format
msgid "invalid Objective-C++ selector name"
msgstr ""
-#: cp/parser.c:28385 cp/parser.c:28403
+#: cp/parser.c:28460 cp/parser.c:28478
#, gcc-internal-format
msgid "objective-c++ method declaration is expected"
msgstr ""
-#: cp/parser.c:28397 cp/parser.c:28462
+#: cp/parser.c:28472 cp/parser.c:28537
#, gcc-internal-format
msgid "method attributes must be specified at the end"
msgstr ""
-#: cp/parser.c:28505
+#: cp/parser.c:28580
#, gcc-internal-format
msgid "stray %qs between Objective-C++ methods"
msgstr ""
-#: cp/parser.c:28711 cp/parser.c:28718 cp/parser.c:28725
+#: cp/parser.c:28786 cp/parser.c:28793 cp/parser.c:28800
#, gcc-internal-format
msgid "invalid type for instance variable"
msgstr ""
-#: cp/parser.c:28838
+#: cp/parser.c:28913
#, gcc-internal-format
msgid "identifier expected after %<@protocol%>"
msgstr ""
-#: cp/parser.c:29009
+#: cp/parser.c:29084
#, gcc-internal-format
msgid ""
"attributes may not be specified before the %<@%D%> Objective-C++ keyword"
msgstr ""
-#: cp/parser.c:29016
+#: cp/parser.c:29091
#, gcc-internal-format
msgid "prefix attributes are ignored before %<@%D%>"
msgstr ""
-#: cp/parser.c:29289 cp/parser.c:29296 cp/parser.c:29303
+#: cp/parser.c:29364 cp/parser.c:29371 cp/parser.c:29378
#, gcc-internal-format
msgid "invalid type for property"
msgstr ""
-#: cp/parser.c:30443
+#: cp/parser.c:30502
#, gcc-internal-format
msgid "%<wait%> expression must be integral"
msgstr ""
-#: cp/parser.c:31137
+#: cp/parser.c:31196
#, gcc-internal-format
msgid "invalid reduction-identifier"
msgstr ""
-#: cp/parser.c:33335
+#: cp/parser.c:33394
#, gcc-internal-format
msgid "parenthesized initialization is not allowed in OpenMP %<for%> loop"
msgstr ""
-#: cp/parser.c:33338
+#: cp/parser.c:33397
#, gcc-internal-format
msgid "parenthesized initialization is not allowed in for-loop"
msgstr ""
-#: cp/parser.c:33408
+#: cp/parser.c:33467
#, gcc-internal-format
msgid ""
"%<_Cilk_for%> allows expression instead of declaration only in C, not in C++"
msgstr ""
-#: cp/parser.c:33636 cp/pt.c:14958
+#: cp/parser.c:33695 cp/pt.c:15033
#, gcc-internal-format
msgid "iteration variable %qD should not be reduction"
msgstr ""
-#: cp/parser.c:33721
+#: cp/parser.c:33780
#, gcc-internal-format
msgid "not enough collapsed for loops"
msgstr ""
-#: cp/parser.c:34003
+#: cp/parser.c:34064
#, gcc-internal-format
msgid ""
"%<#pragma omp ordered%> with %<depend%> clause may only be used in compound "
"statements"
msgstr ""
-#: cp/parser.c:34795
+#: cp/parser.c:34857
#, gcc-internal-format
msgid ""
"%<#pragma omp target exit data%> with map-type other than %<from%>, %<release"
"%> or %<delete%> on %<map%> clause"
msgstr ""
-#: cp/parser.c:35658
+#: cp/parser.c:35720
#, gcc-internal-format
msgid ""
"%<#pragma omp declare simd%> of %<simd%> attribute cannot be used in the "
"same function marked as a Cilk Plus SIMD-enabled function"
msgstr ""
-#: cp/parser.c:35668
+#: cp/parser.c:35730
#, gcc-internal-format
msgid ""
"vector attribute not immediately followed by a single function declaration "
"or definition"
msgstr ""
-#: cp/parser.c:35962
+#: cp/parser.c:36024
#, gcc-internal-format
msgid "invalid initializer clause"
msgstr ""
-#: cp/parser.c:35990
+#: cp/parser.c:36052
#, gcc-internal-format
msgid "expected id-expression (arguments)"
msgstr ""
-#: cp/parser.c:36002
+#: cp/parser.c:36064
#, gcc-internal-format
msgid ""
"one of the initializer call arguments should be %<omp_priv%> or %<&omp_priv%>"
msgstr ""
-#: cp/parser.c:36083
+#: cp/parser.c:36145
#, gcc-internal-format
msgid ""
"expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> or "
"identifier"
msgstr ""
-#: cp/parser.c:36102
+#: cp/parser.c:36164
#, gcc-internal-format
msgid "types may not be defined in declare reduction type list"
msgstr ""
-#: cp/parser.c:36124 cp/semantics.c:5357
+#: cp/parser.c:36186 cp/semantics.c:5354
#, gcc-internal-format
msgid "predeclared arithmetic type %qT in %<#pragma omp declare reduction%>"
msgstr ""
-#: cp/parser.c:36129 cp/semantics.c:5366
+#: cp/parser.c:36191 cp/semantics.c:5363
#, gcc-internal-format
msgid "function or array type %qT in %<#pragma omp declare reduction%>"
msgstr ""
-#: cp/parser.c:36132 cp/pt.c:11838 cp/semantics.c:5372
+#: cp/parser.c:36194 cp/pt.c:11889 cp/semantics.c:5369
#, gcc-internal-format
msgid "reference type %qT in %<#pragma omp declare reduction%>"
msgstr ""
-#: cp/parser.c:36135 cp/semantics.c:5378
+#: cp/parser.c:36197 cp/semantics.c:5375
#, gcc-internal-format
msgid ""
"const, volatile or __restrict qualified type %qT in %<#pragma omp declare "
"reduction%>"
msgstr ""
-#: cp/parser.c:36517
+#: cp/parser.c:36579
#, gcc-internal-format
msgid "%<#pragma acc routine%> names a set of overloads"
msgstr ""
-#: cp/parser.c:36526
+#: cp/parser.c:36588
#, gcc-internal-format
msgid "%<#pragma acc routine%> does not refer to a namespace scope function"
msgstr ""
-#: cp/parser.c:36535
+#: cp/parser.c:36597
#, gcc-internal-format
msgid "%<#pragma acc routine%> does not refer to a function"
msgstr ""
#. cancel-and-throw is unimplemented.
-#: cp/parser.c:36873
+#: cp/parser.c:36935
#, gcc-internal-format
msgid "atomic_cancel"
msgstr ""
-#: cp/parser.c:36916 cp/semantics.c:8579
+#: cp/parser.c:36978 cp/semantics.c:8583
#, gcc-internal-format
msgid "%<__transaction_relaxed%> without transactional memory support enabled"
msgstr ""
-#: cp/parser.c:36918 cp/semantics.c:8581
+#: cp/parser.c:36980 cp/semantics.c:8585
#, gcc-internal-format
msgid "%<__transaction_atomic%> without transactional memory support enabled"
msgstr ""
-#: cp/parser.c:37114
+#: cp/parser.c:37176
#, gcc-internal-format
msgid "junk at end of %<#pragma GCC pch_preprocess%>"
msgstr ""
-#: cp/parser.c:37147
+#: cp/parser.c:37209
#, gcc-internal-format
msgid "invalid grainsize for _Cilk_for"
msgstr ""
-#: cp/parser.c:37356
+#: cp/parser.c:37418
#, gcc-internal-format
msgid "%<#pragma GCC ivdep%> must be inside a function"
msgstr ""
-#: cp/parser.c:37377
+#: cp/parser.c:37439
#, gcc-internal-format
msgid "%<#pragma simd%> must be inside a function"
msgstr ""
-#: cp/parser.c:37389
+#: cp/parser.c:37451
#, gcc-internal-format
msgid "%<#pragma cilk grainsize%> must be inside a function"
msgstr ""
-#: cp/parser.c:37401
+#: cp/parser.c:37463
#, gcc-internal-format
msgid "-fcilkplus must be enabled to use %<#pragma cilk grainsize%>"
msgstr ""
-#: cp/parser.c:37458
+#: cp/parser.c:37520
#, gcc-internal-format
msgid "inter-module optimizations not implemented for C++"
msgstr ""
-#: cp/parser.c:37568
+#: cp/parser.c:37630
#, gcc-internal-format
msgid "expected variable-name"
msgstr ""
-#: cp/parser.c:37632
+#: cp/parser.c:37694
#, gcc-internal-format
msgid "expected %<,%> or %<)%> after %qE"
msgstr ""
-#: cp/parser.c:38025
+#: cp/parser.c:38093
#, gcc-internal-format
msgid "implicit templates may not be %<virtual%>"
msgstr ""
-#: cp/pt.c:295
+#: cp/pt.c:293
#, gcc-internal-format
msgid "data member %qD cannot be a member template"
msgstr ""
-#: cp/pt.c:307
+#: cp/pt.c:305
#, gcc-internal-format
msgid "invalid member template declaration %qD"
msgstr ""
-#: cp/pt.c:686
+#: cp/pt.c:684
#, gcc-internal-format
msgid "explicit specialization in non-namespace scope %qD"
msgstr ""
-#: cp/pt.c:700
+#: cp/pt.c:698
#, gcc-internal-format
msgid "enclosing class templates are not explicitly specialized"
msgstr ""
-#: cp/pt.c:786
+#: cp/pt.c:784
#, gcc-internal-format
msgid "specialization of %qD must appear at namespace scope"
msgstr ""
-#: cp/pt.c:795
+#: cp/pt.c:793
#, gcc-internal-format
msgid "specialization of %qD in different namespace"
msgstr ""
-#: cp/pt.c:797 cp/pt.c:1024
+#: cp/pt.c:795 cp/pt.c:1022
#, gcc-internal-format
msgid " from definition of %q#D"
msgstr ""
-#: cp/pt.c:814
+#: cp/pt.c:812
#, gcc-internal-format
msgid ""
"explicit instantiation of %qD in namespace %qD (which does not enclose "
"namespace %qD)"
msgstr ""
-#: cp/pt.c:935
+#: cp/pt.c:933
#, gcc-internal-format
msgid "name of class shadows template template parameter %qD"
msgstr ""
-#: cp/pt.c:946
+#: cp/pt.c:944
#, gcc-internal-format
msgid "specialization of alias template %qD"
msgstr ""
-#: cp/pt.c:949 cp/pt.c:1086
+#: cp/pt.c:947 cp/pt.c:1084
#, gcc-internal-format
msgid "explicit specialization of non-template %qT"
msgstr ""
-#: cp/pt.c:981
+#: cp/pt.c:979
#, gcc-internal-format
msgid "specialization of %qT after instantiation"
msgstr ""
-#: cp/pt.c:1022
+#: cp/pt.c:1020
#, gcc-internal-format
msgid "specializing %q#T in different namespace"
msgstr ""
#. But if we've had an implicit instantiation, that's a
#. problem ([temp.expl.spec]/6).
-#: cp/pt.c:1064
+#: cp/pt.c:1062
#, gcc-internal-format
msgid "specialization %qT after instantiation %qT"
msgstr ""
-#: cp/pt.c:1082
+#: cp/pt.c:1080
#, gcc-internal-format
msgid "template specialization of %qD not allowed by ISO C++"
msgstr ""
-#: cp/pt.c:1544
+#: cp/pt.c:1542
#, gcc-internal-format
msgid "specialization of %qD after instantiation"
msgstr ""
-#: cp/pt.c:1943
+#: cp/pt.c:1941
#, gcc-internal-format
msgid "candidate is: %#D"
msgstr ""
-#: cp/pt.c:1950 cp/semantics.c:5226
+#: cp/pt.c:1948 cp/semantics.c:5223
#, gcc-internal-format
msgid "%s %#D"
msgstr ""
-#: cp/pt.c:2091
+#: cp/pt.c:2089
#, gcc-internal-format
msgid "%qD is not a function template"
msgstr ""
-#: cp/pt.c:2096
+#: cp/pt.c:2094
#, gcc-internal-format
msgid "%qD is not a variable template"
msgstr ""
-#: cp/pt.c:2350
+#: cp/pt.c:2348
#, gcc-internal-format
msgid "template-id %qD for %q+D does not match any template declaration"
msgstr ""
-#: cp/pt.c:2353
+#: cp/pt.c:2351
#, gcc-internal-format
msgid ""
"saw %d %<template<>%>, need %d for specializing a member function template"
msgstr ""
-#: cp/pt.c:2364
+#: cp/pt.c:2362
#, gcc-internal-format
msgid "ambiguous template specialization %qD for %q+D"
msgstr ""
-#: cp/pt.c:2574
+#: cp/pt.c:2572
#, gcc-internal-format
msgid "variable templates only available with -std=c++14 or -std=gnu++14"
msgstr ""
-#: cp/pt.c:2583
+#: cp/pt.c:2581
#, gcc-internal-format
msgid "too many template headers for %D (should be %d)"
msgstr ""
-#: cp/pt.c:2588
+#: cp/pt.c:2586
#, gcc-internal-format
msgid ""
"members of an explicitly specialized class are defined without a template "
#. This case handles bogus declarations like template <>
#. template <class T> void f<int>();
-#: cp/pt.c:2677 cp/pt.c:2736
+#: cp/pt.c:2675 cp/pt.c:2734
#, gcc-internal-format
msgid "template-id %qD in declaration of primary template"
msgstr ""
-#: cp/pt.c:2690
+#: cp/pt.c:2688
#, gcc-internal-format
msgid "template parameter list used in explicit instantiation"
msgstr ""
-#: cp/pt.c:2696
+#: cp/pt.c:2694
#, gcc-internal-format
msgid "definition provided for explicit instantiation"
msgstr ""
-#: cp/pt.c:2704
+#: cp/pt.c:2702
#, gcc-internal-format
msgid "too many template parameter lists in declaration of %qD"
msgstr ""
-#: cp/pt.c:2707
+#: cp/pt.c:2705
#, gcc-internal-format
msgid "too few template parameter lists in declaration of %qD"
msgstr ""
-#: cp/pt.c:2709
+#: cp/pt.c:2707
#, gcc-internal-format
msgid "explicit specialization of %qD must be introduced by %<template <>%>"
msgstr ""
-#: cp/pt.c:2715
+#: cp/pt.c:2713
#, gcc-internal-format
msgid "explicit specialization declared %<concept%>"
msgstr ""
-#: cp/pt.c:2746
+#: cp/pt.c:2744
#, gcc-internal-format
msgid "non-type partial specialization %qD is not allowed"
msgstr ""
-#: cp/pt.c:2749
+#: cp/pt.c:2747
#, gcc-internal-format
msgid "non-class, non-variable partial specialization %qD is not allowed"
msgstr ""
-#: cp/pt.c:2782
+#: cp/pt.c:2780
#, gcc-internal-format
msgid "default argument specified in explicit specialization"
msgstr ""
-#: cp/pt.c:2813
+#: cp/pt.c:2818
#, gcc-internal-format
msgid "%qD is not a template function"
msgstr ""
#. program is ill-formed.
#.
#. Similar language is found in [temp.explicit].
-#: cp/pt.c:2878
+#: cp/pt.c:2883
#, gcc-internal-format
msgid "specialization of implicitly-declared special member function"
msgstr ""
-#: cp/pt.c:2922
+#: cp/pt.c:2927
#, gcc-internal-format
msgid "no member function %qD declared in %qT"
msgstr ""
-#: cp/pt.c:2954
+#: cp/pt.c:2959
#, gcc-internal-format
msgid "%qD is not declared in %qD"
msgstr ""
-#: cp/pt.c:3059
+#: cp/pt.c:2965
+#, gcc-internal-format
+msgid "friend declaration %qD is not visible to explicit specialization"
+msgstr ""
+
+#: cp/pt.c:2968
+#, gcc-internal-format
+msgid "friend declaration here"
+msgstr ""
+
+#: cp/pt.c:3073
#, gcc-internal-format
msgid "explicit specialization of function concept %qD"
msgstr ""
-#: cp/pt.c:3654
+#: cp/pt.c:3668
#, gcc-internal-format
msgid "base initializer expansion %<%T%> contains no parameter packs"
msgstr ""
-#: cp/pt.c:3718
+#: cp/pt.c:3732
#, gcc-internal-format
msgid "expansion pattern %<%T%> contains no argument packs"
msgstr ""
-#: cp/pt.c:3720
+#: cp/pt.c:3734
#, gcc-internal-format
msgid "expansion pattern %<%E%> contains no argument packs"
msgstr ""
-#: cp/pt.c:3764
+#: cp/pt.c:3778
#, gcc-internal-format
msgid "parameter packs not expanded with %<...%>:"
msgstr ""
-#: cp/pt.c:3779 cp/pt.c:4513
+#: cp/pt.c:3793 cp/pt.c:4527
#, gcc-internal-format
msgid " %qD"
msgstr ""
-#: cp/pt.c:3781
+#: cp/pt.c:3795
#, gcc-internal-format
msgid " <anonymous>"
msgstr ""
-#: cp/pt.c:3905
+#: cp/pt.c:3919
#, gcc-internal-format
msgid "declaration of template parameter %q+D shadows template parameter"
msgstr ""
-#: cp/pt.c:3908
+#: cp/pt.c:3922
#, gcc-internal-format
msgid "declaration of %q+#D shadows template parameter"
msgstr ""
-#: cp/pt.c:3910
+#: cp/pt.c:3924
#, gcc-internal-format
msgid "template parameter %qD declared here"
msgstr ""
-#: cp/pt.c:4449
+#: cp/pt.c:4463
#, gcc-internal-format
msgid "specialization of variable concept %q#D"
msgstr ""
-#: cp/pt.c:4508
+#: cp/pt.c:4522
#, gcc-internal-format
msgid "template parameters not deducible in partial specialization:"
msgstr ""
-#: cp/pt.c:4532
+#: cp/pt.c:4546
#, gcc-internal-format
msgid "partial specialization %q+D does not specialize any template arguments"
msgstr ""
-#: cp/pt.c:4535
+#: cp/pt.c:4549
#, gcc-internal-format
msgid ""
"partial specialization %q+D does not specialize any template arguments and "
"is not more constrained than"
msgstr ""
-#: cp/pt.c:4537 cp/pt.c:4548
+#: cp/pt.c:4551 cp/pt.c:4562
#, gcc-internal-format
msgid "primary template here"
msgstr ""
-#: cp/pt.c:4545
+#: cp/pt.c:4559
#, gcc-internal-format
msgid ""
"partial specialization is not more specialized than the primary template "
"because it replaces multiple parameters with a pack expansion"
msgstr ""
-#: cp/pt.c:4595
+#: cp/pt.c:4609
#, gcc-internal-format
msgid ""
"parameter pack argument %qE must be at the end of the template argument list"
msgstr ""
-#: cp/pt.c:4598
+#: cp/pt.c:4612
#, gcc-internal-format
msgid ""
"parameter pack argument %qT must be at the end of the template argument list"
msgstr ""
-#: cp/pt.c:4619
+#: cp/pt.c:4633
#, gcc-internal-format
msgid "template argument %qE involves template parameter(s)"
msgstr ""
-#: cp/pt.c:4665
+#: cp/pt.c:4679
#, gcc-internal-format
msgid "type %qT of template argument %qE depends on a template parameter"
msgid_plural "type %qT of template argument %qE depends on template parameters"
msgstr[0] ""
msgstr[1] ""
-#: cp/pt.c:4718
+#: cp/pt.c:4732
#, gcc-internal-format
msgid "declaration of %qD ambiguates earlier template instantiation for %qD"
msgstr ""
-#: cp/pt.c:4722
+#: cp/pt.c:4736
#, gcc-internal-format
msgid "partial specialization of %qD after instantiation of %qD"
msgstr ""
-#: cp/pt.c:4898
+#: cp/pt.c:4912
#, gcc-internal-format
msgid "no default argument for %qD"
msgstr ""
#. A primary class template can only have one
#. parameter pack, at the end of the template
#. parameter list.
-#: cp/pt.c:4920
+#: cp/pt.c:4934
#, gcc-internal-format
msgid "parameter pack %q+D must be at the end of the template parameter list"
msgstr ""
-#: cp/pt.c:4956
+#: cp/pt.c:4970
#, gcc-internal-format
msgid ""
"default template arguments may not be used in function template friend re-"
"declaration"
msgstr ""
-#: cp/pt.c:4959
+#: cp/pt.c:4973
#, gcc-internal-format
msgid ""
"default template arguments may not be used in function template friend "
"declarations"
msgstr ""
-#: cp/pt.c:4962
+#: cp/pt.c:4976
#, gcc-internal-format
msgid ""
"default template arguments may not be used in function templates without -"
"std=c++11 or -std=gnu++11"
msgstr ""
-#: cp/pt.c:4965
+#: cp/pt.c:4979
#, gcc-internal-format
msgid "default template arguments may not be used in partial specializations"
msgstr ""
-#: cp/pt.c:4968 cp/pt.c:5026
+#: cp/pt.c:4982 cp/pt.c:5040
#, gcc-internal-format
msgid "default argument for template parameter for class enclosing %qD"
msgstr ""
-#: cp/pt.c:5122
+#: cp/pt.c:5136
#, gcc-internal-format
msgid "template %qD declared"
msgstr ""
-#: cp/pt.c:5129
+#: cp/pt.c:5143
#, gcc-internal-format
msgid "template class without a name"
msgstr ""
-#: cp/pt.c:5137
+#: cp/pt.c:5151
#, gcc-internal-format
msgid "member template %qD may not have virt-specifiers"
msgstr ""
#. An allocation function can be a function
#. template. ... Template allocation functions shall
#. have two or more parameters.
-#: cp/pt.c:5159
+#: cp/pt.c:5173
#, gcc-internal-format
msgid "invalid template declaration of %qD"
msgstr ""
-#: cp/pt.c:5288
+#: cp/pt.c:5302
#, gcc-internal-format
msgid "template definition of non-template %q#D"
msgstr ""
-#: cp/pt.c:5331
+#: cp/pt.c:5345
#, gcc-internal-format
msgid "expected %d levels of template parms for %q#D, got %d"
msgstr ""
-#: cp/pt.c:5345
+#: cp/pt.c:5359
#, gcc-internal-format
msgid "got %d template parameters for %q#D"
msgstr ""
-#: cp/pt.c:5348
+#: cp/pt.c:5362
#, gcc-internal-format
msgid "got %d template parameters for %q#T"
msgstr ""
-#: cp/pt.c:5350
+#: cp/pt.c:5364
#, gcc-internal-format, gfc-internal-format
msgid " but %d required"
msgstr ""
-#: cp/pt.c:5371
+#: cp/pt.c:5385
#, gcc-internal-format
msgid "template arguments to %qD do not match original template %qD"
msgstr ""
-#: cp/pt.c:5375
+#: cp/pt.c:5389
#, gcc-internal-format
msgid "use template<> for an explicit specialization"
msgstr ""
-#: cp/pt.c:5513
+#: cp/pt.c:5527
#, gcc-internal-format
msgid "%qT is not a template type"
msgstr ""
-#: cp/pt.c:5526
+#: cp/pt.c:5540
#, gcc-internal-format
msgid "template specifiers not specified in declaration of %qD"
msgstr ""
-#: cp/pt.c:5537
+#: cp/pt.c:5551
#, gcc-internal-format, gfc-internal-format
msgid "redeclared with %d template parameter"
msgid_plural "redeclared with %d template parameters"
msgstr[0] ""
msgstr[1] ""
-#: cp/pt.c:5541
+#: cp/pt.c:5555
#, gcc-internal-format
msgid "previous declaration %qD used %d template parameter"
msgid_plural "previous declaration %qD used %d template parameters"
msgstr[0] ""
msgstr[1] ""
-#: cp/pt.c:5578
+#: cp/pt.c:5592
#, gcc-internal-format
msgid "template parameter %q+#D"
msgstr ""
-#: cp/pt.c:5579
+#: cp/pt.c:5593
#, gcc-internal-format
msgid "redeclared here as %q#D"
msgstr ""
#.
#. A template-parameter may not be given default arguments
#. by two different declarations in the same scope.
-#: cp/pt.c:5589
+#: cp/pt.c:5603
#, gcc-internal-format
msgid "redefinition of default argument for %q#D"
msgstr ""
-#: cp/pt.c:5591
+#: cp/pt.c:5605
#, gcc-internal-format
msgid "original definition appeared here"
msgstr ""
-#: cp/pt.c:5616
+#: cp/pt.c:5630
#, gcc-internal-format
msgid "redeclaration %q#D with different constraints"
msgstr ""
-#: cp/pt.c:5619
+#: cp/pt.c:5633
#, gcc-internal-format
msgid "original declaration appeared here"
msgstr ""
-#: cp/pt.c:5872 cp/pt.c:5923
+#: cp/pt.c:5886 cp/pt.c:5937
#, gcc-internal-format
msgid "%qE is not a valid template argument for type %qT"
msgstr ""
-#: cp/pt.c:5875
+#: cp/pt.c:5889
#, gcc-internal-format
msgid "it must be the address of a function with external linkage"
msgstr ""
-#: cp/pt.c:5878
+#: cp/pt.c:5892
#, gcc-internal-format
msgid "it must be the name of a function with external linkage"
msgstr ""
-#: cp/pt.c:5890
+#: cp/pt.c:5904
#, gcc-internal-format
msgid ""
"%qE is not a valid template argument for type %qT because %qD has no linkage"
msgstr ""
-#: cp/pt.c:5894
+#: cp/pt.c:5908
#, gcc-internal-format
msgid ""
"%qE is not a valid template argument for type %qT because %qD does not have "
"external linkage"
msgstr ""
-#: cp/pt.c:5925
+#: cp/pt.c:5939
#, gcc-internal-format
msgid "it must be a pointer-to-member of the form %<&X::Y%>"
msgstr ""
-#: cp/pt.c:5976
+#: cp/pt.c:5990
#, gcc-internal-format
msgid " couldn't deduce template parameter %qD"
msgstr ""
-#: cp/pt.c:5991
+#: cp/pt.c:6005
#, gcc-internal-format
msgid " types %qT and %qT have incompatible cv-qualifiers"
msgstr ""
-#: cp/pt.c:6000
+#: cp/pt.c:6014
#, gcc-internal-format
msgid " mismatched types %qT and %qT"
msgstr ""
-#: cp/pt.c:6009
+#: cp/pt.c:6023
#, gcc-internal-format
msgid " template parameter %qD is not a parameter pack, but argument %qD is"
msgstr ""
-#: cp/pt.c:6020
+#: cp/pt.c:6034
#, gcc-internal-format
msgid " template argument %qE does not match pointer-to-member constant %qE"
msgstr ""
-#: cp/pt.c:6030
+#: cp/pt.c:6044
#, gcc-internal-format
msgid " %qE is not equivalent to %qE"
msgstr ""
-#: cp/pt.c:6039
+#: cp/pt.c:6053
#, gcc-internal-format
msgid " inconsistent parameter pack deduction with %qT and %qT"
msgstr ""
-#: cp/pt.c:6051
+#: cp/pt.c:6065
#, gcc-internal-format
msgid " deduced conflicting types for parameter %qT (%qT and %qT)"
msgstr ""
-#: cp/pt.c:6055
+#: cp/pt.c:6069
#, gcc-internal-format
msgid " deduced conflicting values for non-type parameter %qE (%qE and %qE)"
msgstr ""
-#: cp/pt.c:6066
+#: cp/pt.c:6080
#, gcc-internal-format
msgid " variable-sized array type %qT is not a valid template argument"
msgstr ""
-#: cp/pt.c:6077
+#: cp/pt.c:6091
#, gcc-internal-format
msgid " member function type %qT is not a valid template argument"
msgstr ""
-#: cp/pt.c:6089
+#: cp/pt.c:6103
#, gcc-internal-format, gfc-internal-format
msgid " candidate expects at least %d argument, %d provided"
msgid_plural " candidate expects at least %d arguments, %d provided"
msgstr[0] ""
msgstr[1] ""
-#: cp/pt.c:6120
+#: cp/pt.c:6134
#, gcc-internal-format
msgid " cannot convert %qE (type %qT) to type %qT"
msgstr ""
-#: cp/pt.c:6133
+#: cp/pt.c:6147
#, gcc-internal-format
msgid " %qT is an ambiguous base class of %qT"
msgstr ""
-#: cp/pt.c:6137
+#: cp/pt.c:6151
#, gcc-internal-format
msgid " %qT is not derived from %qT"
msgstr ""
-#: cp/pt.c:6148
+#: cp/pt.c:6162
#, gcc-internal-format
msgid ""
" template parameters of a template template argument are inconsistent with "
"other deduced template arguments"
msgstr ""
-#: cp/pt.c:6158
+#: cp/pt.c:6172
#, gcc-internal-format
msgid " can't deduce a template for %qT from non-template type %qT"
msgstr ""
-#: cp/pt.c:6168
+#: cp/pt.c:6182
#, gcc-internal-format
msgid " template argument %qE does not match %qD"
msgstr ""
-#: cp/pt.c:6177
+#: cp/pt.c:6191
#, gcc-internal-format
msgid " could not resolve address from overloaded function %qE"
msgstr ""
-#: cp/pt.c:6216
+#: cp/pt.c:6230
#, gcc-internal-format
msgid ""
"%qE is not a valid template argument for type %qT because string literals "
"can never be used in this context"
msgstr ""
-#: cp/pt.c:6379
+#: cp/pt.c:6393
#, gcc-internal-format
msgid "in template argument for type %qT "
msgstr ""
-#: cp/pt.c:6426
+#: cp/pt.c:6440
#, gcc-internal-format
msgid ""
"%qD is not a valid template argument because %qD is a variable, not the "
"address of a variable"
msgstr ""
-#: cp/pt.c:6434
+#: cp/pt.c:6448
#, gcc-internal-format
msgid ""
"%qE is not a valid template argument for %qT because it is not the address "
"of a variable"
msgstr ""
-#: cp/pt.c:6452
+#: cp/pt.c:6466
#, gcc-internal-format
msgid ""
"%qE is not a valid template argument of type %qT because %qE is not a "
"variable"
msgstr ""
-#: cp/pt.c:6459
+#: cp/pt.c:6473
#, gcc-internal-format
msgid ""
"%qE is not a valid template argument of type %qT because %qD does not have "
"external linkage"
msgstr ""
-#: cp/pt.c:6467
+#: cp/pt.c:6481
#, gcc-internal-format
msgid ""
"%qE is not a valid template argument of type %qT because %qD has no linkage"
msgstr ""
-#: cp/pt.c:6497
+#: cp/pt.c:6511
#, gcc-internal-format
msgid ""
"%qE is not a valid template argument for type %qT because of conflicts in cv-"
"qualification"
msgstr ""
-#: cp/pt.c:6505
+#: cp/pt.c:6519
#, gcc-internal-format
msgid ""
"%qE is not a valid template argument for type %qT because it is not an lvalue"
msgstr ""
-#: cp/pt.c:6523
+#: cp/pt.c:6537
#, gcc-internal-format
msgid ""
"%q#D is not a valid template argument for type %qT because a reference "
"variable does not have a constant address"
msgstr ""
-#: cp/pt.c:6533
+#: cp/pt.c:6547
#, gcc-internal-format
msgid ""
"%qE is not a valid template argument for type %qT because it is not an "
"object with linkage"
msgstr ""
-#: cp/pt.c:6544
+#: cp/pt.c:6558
#, gcc-internal-format
msgid ""
"%qE is not a valid template argument for type %qT because object %qD does "
"not have linkage"
msgstr ""
-#: cp/pt.c:6590
+#: cp/pt.c:6604
#, gcc-internal-format
msgid ""
"%qE is not a valid template argument for type %qT because it is a pointer"
msgstr ""
-#: cp/pt.c:6592
+#: cp/pt.c:6606
#, gcc-internal-format
msgid "try using %qE instead"
msgstr ""
-#: cp/pt.c:6634 cp/pt.c:6665
+#: cp/pt.c:6648 cp/pt.c:6679
#, gcc-internal-format
msgid ""
"%qE is not a valid template argument for type %qT because it is of type %qT"
msgstr ""
-#: cp/pt.c:6640
+#: cp/pt.c:6654
#, gcc-internal-format
msgid "standard conversions are not allowed in this context"
msgstr ""
-#: cp/pt.c:6952
+#: cp/pt.c:6966
#, gcc-internal-format
msgid "ignoring attributes on template argument %qT"
msgstr ""
-#: cp/pt.c:7059
+#: cp/pt.c:7073
#, gcc-internal-format
msgid "injected-class-name %qD used as template template argument"
msgstr ""
-#: cp/pt.c:7088
+#: cp/pt.c:7102
#, gcc-internal-format
msgid "invalid use of destructor %qE as a type"
msgstr ""
-#: cp/pt.c:7093
+#: cp/pt.c:7107
#, gcc-internal-format
msgid "to refer to a type member of a template parameter, use %<typename %E%>"
msgstr ""
-#: cp/pt.c:7109 cp/pt.c:7131 cp/pt.c:7184
+#: cp/pt.c:7123 cp/pt.c:7145 cp/pt.c:7198
#, gcc-internal-format
msgid "type/value mismatch at argument %d in template parameter list for %qD"
msgstr ""
-#: cp/pt.c:7114
+#: cp/pt.c:7128
#, gcc-internal-format
msgid " expected a constant of type %qT, got %qT"
msgstr ""
-#: cp/pt.c:7119
+#: cp/pt.c:7133
#, gcc-internal-format
msgid " expected a class template, got %qE"
msgstr ""
-#: cp/pt.c:7122
+#: cp/pt.c:7136
#, gcc-internal-format
msgid " expected a type, got %qE"
msgstr ""
-#: cp/pt.c:7136
+#: cp/pt.c:7150
#, gcc-internal-format
msgid " expected a type, got %qT"
msgstr ""
-#: cp/pt.c:7139
+#: cp/pt.c:7153
#, gcc-internal-format
msgid " expected a class template, got %qT"
msgstr ""
-#: cp/pt.c:7188
+#: cp/pt.c:7202
#, gcc-internal-format
msgid " expected a template of type %qD, got %qT"
msgstr ""
-#: cp/pt.c:7202
+#: cp/pt.c:7216
#, gcc-internal-format
msgid "constraint mismatch at argument %d in template parameter list for %qD"
msgstr ""
-#: cp/pt.c:7205
+#: cp/pt.c:7219
#, gcc-internal-format
msgid " expected %qD but got %qD"
msgstr ""
#. Not sure if this is reachable, but it doesn't hurt
#. to be robust.
-#: cp/pt.c:7237
+#: cp/pt.c:7251
#, gcc-internal-format
msgid "type mismatch in nontype parameter pack"
msgstr ""
-#: cp/pt.c:7263
+#: cp/pt.c:7277
#, gcc-internal-format
msgid "could not convert template argument %qE to %qT"
msgstr ""
-#: cp/pt.c:7397 cp/pt.c:7702
+#: cp/pt.c:7412 cp/pt.c:7717
#, gcc-internal-format, gfc-internal-format
msgid "template argument %d is invalid"
msgstr ""
-#: cp/pt.c:7412 cp/pt.c:7542 cp/pt.c:7727
+#: cp/pt.c:7427 cp/pt.c:7557 cp/pt.c:7742
#, gcc-internal-format, gfc-internal-format
msgid "wrong number of template arguments (%d, should be %d)"
msgstr ""
-#: cp/pt.c:7538
+#: cp/pt.c:7553
#, gcc-internal-format, gfc-internal-format
msgid "wrong number of template arguments (%d, should be at least %d)"
msgstr ""
-#: cp/pt.c:7547
+#: cp/pt.c:7562
#, gcc-internal-format
msgid "provided for %qD"
msgstr ""
-#: cp/pt.c:7572
+#: cp/pt.c:7587
#, gcc-internal-format
msgid ""
"pack expansion argument for non-pack parameter %qD of alias template %qD"
msgstr ""
-#: cp/pt.c:7576
+#: cp/pt.c:7591
#, gcc-internal-format
msgid "pack expansion argument for non-pack parameter %qD of concept %qD"
msgstr ""
-#: cp/pt.c:7668
+#: cp/pt.c:7683
#, gcc-internal-format
msgid ""
"so any instantiation with a non-empty parameter pack would be ill-formed"
msgstr ""
-#: cp/pt.c:7730
+#: cp/pt.c:7745
#, gcc-internal-format
msgid "provided for %q+D"
msgstr ""
-#: cp/pt.c:7999
+#: cp/pt.c:8014
#, gcc-internal-format
msgid "%q#D is not a function template"
msgstr ""
-#: cp/pt.c:8166
+#: cp/pt.c:8181
#, gcc-internal-format
msgid "non-template type %qT used as a template"
msgstr ""
-#: cp/pt.c:8168
+#: cp/pt.c:8183
#, gcc-internal-format
msgid "for template declaration %q+D"
msgstr ""
-#: cp/pt.c:8339
+#: cp/pt.c:8354
#, gcc-internal-format
msgid "template constraint failure"
msgstr ""
-#: cp/pt.c:8683
+#: cp/pt.c:8700
#, gcc-internal-format
-msgid "constraints for %qD not satisfied"
+msgid "use of invalid variable template %qE"
msgstr ""
-#: cp/pt.c:9075
+#: cp/pt.c:9094
#, gcc-internal-format, gfc-internal-format
msgid ""
"template instantiation depth exceeds maximum of %d (use -ftemplate-depth= to "
"increase the maximum)"
msgstr ""
-#: cp/pt.c:10655
+#: cp/pt.c:10672
#, gcc-internal-format
msgid "fold of empty expansion over %O"
msgstr ""
-#: cp/pt.c:10946
+#: cp/pt.c:10991
#, gcc-internal-format
msgid "mismatched argument pack lengths while expanding %<%T%>"
msgstr ""
-#: cp/pt.c:10950
+#: cp/pt.c:10995
#, gcc-internal-format
msgid "mismatched argument pack lengths while expanding %<%E%>"
msgstr ""
-#: cp/pt.c:11501
+#: cp/pt.c:11552
#, gcc-internal-format
msgid " when instantiating default argument for call to %D"
msgstr ""
#.
#. is an attempt to declare a variable with function
#. type.
-#: cp/pt.c:12336
+#: cp/pt.c:12395
#, gcc-internal-format
msgid "variable %qD has function type"
msgstr ""
-#: cp/pt.c:12508
+#: cp/pt.c:12567
#, gcc-internal-format
msgid "invalid parameter type %qT"
msgstr ""
-#: cp/pt.c:12510
+#: cp/pt.c:12569
#, gcc-internal-format
msgid "in declaration %q+D"
msgstr ""
-#: cp/pt.c:12621
+#: cp/pt.c:12680
#, gcc-internal-format
msgid "function returning an array"
msgstr ""
-#: cp/pt.c:12623
+#: cp/pt.c:12682
#, gcc-internal-format
msgid "function returning a function"
msgstr ""
-#: cp/pt.c:12663
+#: cp/pt.c:12722
#, gcc-internal-format
msgid "creating pointer to member function of non-class type %qT"
msgstr ""
-#: cp/pt.c:13251
+#: cp/pt.c:13317
#, gcc-internal-format
msgid "forming reference to void"
msgstr ""
-#: cp/pt.c:13253
+#: cp/pt.c:13319
#, gcc-internal-format
msgid "forming pointer to reference type %qT"
msgstr ""
-#: cp/pt.c:13255
+#: cp/pt.c:13321
#, gcc-internal-format
msgid "forming reference to reference type %qT"
msgstr ""
-#: cp/pt.c:13268
+#: cp/pt.c:13334
#, gcc-internal-format
msgid "forming pointer to qualified function type %qT"
msgstr ""
-#: cp/pt.c:13271
+#: cp/pt.c:13337
#, gcc-internal-format
msgid "forming reference to qualified function type %qT"
msgstr ""
-#: cp/pt.c:13319
+#: cp/pt.c:13385
#, gcc-internal-format
msgid "creating pointer to member of non-class type %qT"
msgstr ""
-#: cp/pt.c:13325
+#: cp/pt.c:13391
#, gcc-internal-format
msgid "creating pointer to member reference type %qT"
msgstr ""
-#: cp/pt.c:13331
+#: cp/pt.c:13397
#, gcc-internal-format
msgid "creating pointer to member of type void"
msgstr ""
-#: cp/pt.c:13397
+#: cp/pt.c:13463
#, gcc-internal-format
msgid "creating array of %qT"
msgstr ""
-#: cp/pt.c:13428
+#: cp/pt.c:13494
#, gcc-internal-format
msgid "%qT is not a class, struct, or union type"
msgstr ""
-#: cp/pt.c:13465
+#: cp/pt.c:13531
#, gcc-internal-format
msgid "%qT resolves to %qT, which is not an enumeration type"
msgstr ""
-#: cp/pt.c:13473
+#: cp/pt.c:13539
#, gcc-internal-format
msgid "%qT resolves to %qT, which is is not a class type"
msgstr ""
-#: cp/pt.c:13602
+#: cp/pt.c:13668
#, gcc-internal-format
msgid "use of %qs in template"
msgstr ""
-#: cp/pt.c:13754
+#: cp/pt.c:13829
#, gcc-internal-format
msgid "qualifying type %qT does not match destructor name ~%qT"
msgstr ""
-#: cp/pt.c:13769
+#: cp/pt.c:13844
#, gcc-internal-format
msgid ""
"dependent-name %qE is parsed as a non-type, but instantiation yields a type"
msgstr ""
-#: cp/pt.c:13771
+#: cp/pt.c:13846
#, gcc-internal-format
msgid "say %<typename %E%> if a type is meant"
msgstr ""
-#: cp/pt.c:13986
+#: cp/pt.c:14064
#, gcc-internal-format
msgid "using invalid field %qD"
msgstr ""
-#: cp/pt.c:14444 cp/pt.c:15770
+#: cp/pt.c:14519 cp/pt.c:15845
#, gcc-internal-format
msgid "invalid use of pack expansion expression"
msgstr ""
-#: cp/pt.c:14448 cp/pt.c:15774
+#: cp/pt.c:14523 cp/pt.c:15849
#, gcc-internal-format
msgid "use %<...%> to expand argument pack"
msgstr ""
-#: cp/pt.c:16549
+#: cp/pt.c:16624
#, 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:16561
+#: cp/pt.c:16636
#, gcc-internal-format
msgid "declarations in dependent base %qT are not found by unqualified lookup"
msgstr ""
-#: cp/pt.c:16566
+#: cp/pt.c:16641
#, gcc-internal-format
msgid "use %<this->%D%> instead"
msgstr ""
-#: cp/pt.c:16569
+#: cp/pt.c:16644
#, gcc-internal-format
msgid "use %<%T::%D%> instead"
msgstr ""
-#: cp/pt.c:16574
+#: cp/pt.c:16649
#, gcc-internal-format
msgid "%qD declared here, later in the translation unit"
msgstr ""
-#: cp/pt.c:16847
+#: cp/pt.c:16922
#, gcc-internal-format
msgid "%qT is not a class or namespace"
msgstr ""
-#: cp/pt.c:16850
+#: cp/pt.c:16925
#, gcc-internal-format
msgid "%qD is not a class or namespace"
msgstr ""
-#: cp/pt.c:17213
+#: cp/pt.c:17288
#, gcc-internal-format
msgid "%qT is/uses anonymous type"
msgstr ""
-#: cp/pt.c:17215
+#: cp/pt.c:17290
#, gcc-internal-format
msgid "template argument for %qD uses local type %qT"
msgstr ""
-#: cp/pt.c:17225
+#: cp/pt.c:17300
#, gcc-internal-format
msgid "%qT is a variably modified type"
msgstr ""
-#: cp/pt.c:17240
+#: cp/pt.c:17315
#, gcc-internal-format
msgid "integral expression %qE is not constant"
msgstr ""
-#: cp/pt.c:17258
+#: cp/pt.c:17333
#, gcc-internal-format
msgid " trying to instantiate %qD"
msgstr ""
-#: cp/pt.c:21035
+#: cp/pt.c:21083
#, gcc-internal-format
msgid "ambiguous template instantiation for %q#T"
msgstr ""
-#: cp/pt.c:21037
+#: cp/pt.c:21085
#, gcc-internal-format
msgid "ambiguous template instantiation for %q#D"
msgstr ""
-#: cp/pt.c:21043
+#: cp/pt.c:21091
msgid "%s %#S"
msgstr ""
-#: cp/pt.c:21067 cp/pt.c:21154
+#: cp/pt.c:21115 cp/pt.c:21202
#, gcc-internal-format
msgid "explicit instantiation of non-template %q#D"
msgstr ""
-#: cp/pt.c:21086
+#: cp/pt.c:21134
#, gcc-internal-format
msgid "%qD is not a static data member of a class template"
msgstr ""
-#: cp/pt.c:21092 cp/pt.c:21149
+#: cp/pt.c:21140 cp/pt.c:21197
#, gcc-internal-format
msgid "no matching template for %qD found"
msgstr ""
-#: cp/pt.c:21097
+#: cp/pt.c:21145
#, gcc-internal-format
msgid ""
"type %qT for explicit instantiation %qD does not match declared type %qT"
msgstr ""
-#: cp/pt.c:21105
+#: cp/pt.c:21153
#, gcc-internal-format
msgid "explicit instantiation of %q#D"
msgstr ""
-#: cp/pt.c:21141
+#: cp/pt.c:21189
#, gcc-internal-format
msgid "duplicate explicit instantiation of %q#D"
msgstr ""
-#: cp/pt.c:21164 cp/pt.c:21261
+#: cp/pt.c:21212 cp/pt.c:21309
#, gcc-internal-format
msgid "ISO C++ 1998 forbids the use of %<extern%> on explicit instantiations"
msgstr ""
-#: cp/pt.c:21169 cp/pt.c:21278
+#: cp/pt.c:21217 cp/pt.c:21326
#, gcc-internal-format
msgid "storage class %qD applied to template instantiation"
msgstr ""
-#: cp/pt.c:21237
+#: cp/pt.c:21285
#, gcc-internal-format
msgid "explicit instantiation of non-class template %qD"
msgstr ""
-#: cp/pt.c:21239
+#: cp/pt.c:21287
#, gcc-internal-format
msgid "explicit instantiation of non-template type %qT"
msgstr ""
-#: cp/pt.c:21248
+#: cp/pt.c:21296
#, gcc-internal-format
msgid "explicit instantiation of %q#T before definition of template"
msgstr ""
-#: cp/pt.c:21266
+#: cp/pt.c:21314
#, gcc-internal-format
msgid "ISO C++ forbids the use of %qE on explicit instantiations"
msgstr ""
-#: cp/pt.c:21312
+#: cp/pt.c:21360
#, gcc-internal-format
msgid "duplicate explicit instantiation of %q#T"
msgstr ""
#. 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:21851
+#: cp/pt.c:21912
#, gcc-internal-format
msgid "explicit instantiation of %qD but no definition available"
msgstr ""
-#: cp/pt.c:22083
+#: cp/pt.c:22144
#, gcc-internal-format
msgid ""
"template instantiation depth exceeds maximum of %d instantiating %q+D, "
"the maximum)"
msgstr ""
-#: cp/pt.c:22425
+#: cp/pt.c:22486
#, gcc-internal-format
msgid "invalid template non-type parameter"
msgstr ""
-#: cp/pt.c:22427
+#: cp/pt.c:22488
#, gcc-internal-format
msgid "%q#T is not a valid type for a template non-type parameter"
msgstr ""
-#: cp/pt.c:23789
+#: cp/pt.c:23854
#, gcc-internal-format
msgid ""
"deducing from brace-enclosed initializer list requires #include "
"<initializer_list>"
msgstr ""
-#: cp/pt.c:23950
+#: cp/pt.c:24018
#, gcc-internal-format
msgid "direct-list-initialization of %<auto%> requires exactly one element"
msgstr ""
-#: cp/pt.c:23953
+#: cp/pt.c:24021
#, gcc-internal-format
msgid ""
"for deduction to %<std::initializer_list%>, use copy-list-initialization (i."
"e. add %<=%> before the %<{%>)"
msgstr ""
-#: cp/pt.c:23975
+#: cp/pt.c:24045
#, gcc-internal-format
msgid "%qT as type rather than plain %<decltype(auto)%>"
msgstr ""
-#: cp/pt.c:24010
+#: cp/pt.c:24080
#, gcc-internal-format
msgid "unable to deduce lambda return type from %qE"
msgstr ""
-#: cp/pt.c:24012
+#: cp/pt.c:24082
#, gcc-internal-format
msgid "unable to deduce %qT from %qE"
msgstr ""
-#: cp/pt.c:24033
+#: cp/pt.c:24114
#, gcc-internal-format
msgid "placeholder constraints not satisfied"
msgstr ""
-#: cp/pt.c:24036
+#: cp/pt.c:24117
#, gcc-internal-format
msgid "deduced initializer does not satisfy placeholder constraints"
msgstr ""
-#: cp/pt.c:24040
+#: cp/pt.c:24121
#, gcc-internal-format
msgid "deduced return type does not satisfy placeholder constraints"
msgstr ""
-#: cp/pt.c:24044
+#: cp/pt.c:24125
#, gcc-internal-format
msgid "deduced expression type does not saatisy placeholder constraints"
msgstr ""
msgid "%qT is an inaccessible base of %qT"
msgstr ""
-#: cp/search.c:2052
+#: cp/search.c:2053
#, gcc-internal-format
msgid "invalid covariant return type for %q#D"
msgstr ""
-#: cp/search.c:2054
+#: cp/search.c:2055
#, gcc-internal-format
msgid " overriding %q#D"
msgstr ""
-#: cp/search.c:2067
+#: cp/search.c:2068
#, gcc-internal-format
msgid "invalid covariant return type for %q+#D"
msgstr ""
-#: cp/search.c:2068 cp/search.c:2073 cp/search.c:2100
+#: cp/search.c:2069 cp/search.c:2074 cp/search.c:2101
#, gcc-internal-format
msgid " overriding %q+#D"
msgstr ""
-#: cp/search.c:2072
+#: cp/search.c:2073
#, gcc-internal-format
msgid "conflicting return type specified for %q+#D"
msgstr ""
-#: cp/search.c:2087
+#: cp/search.c:2088
#, gcc-internal-format
msgid "looser throw specifier for %q+#F"
msgstr ""
-#: cp/search.c:2088
+#: cp/search.c:2089
#, gcc-internal-format
msgid " overriding %q+#F"
msgstr ""
-#: cp/search.c:2099
+#: cp/search.c:2100
#, gcc-internal-format
msgid "conflicting type attributes specified for %q+#D"
msgstr ""
-#: cp/search.c:2115
+#: cp/search.c:2116
#, gcc-internal-format
msgid "%qD declared %<transaction_safe_dynamic%>"
msgstr ""
-#: cp/search.c:2117
+#: cp/search.c:2118
#, gcc-internal-format
msgid "overriding %qD declared %<transaction_safe%>"
msgstr ""
-#: cp/search.c:2124
+#: cp/search.c:2125
#, gcc-internal-format
msgid "deleted function %q+D"
msgstr ""
-#: cp/search.c:2125
+#: cp/search.c:2126
#, gcc-internal-format
msgid "overriding non-deleted function %q+D"
msgstr ""
-#: cp/search.c:2130
+#: cp/search.c:2131
#, gcc-internal-format
msgid "non-deleted function %q+D"
msgstr ""
-#: cp/search.c:2131
+#: cp/search.c:2132
#, gcc-internal-format
msgid "overriding deleted function %q+D"
msgstr ""
-#: cp/search.c:2137
+#: cp/search.c:2138
#, gcc-internal-format
msgid "virtual function %q+D"
msgstr ""
-#: cp/search.c:2138
+#: cp/search.c:2139
#, gcc-internal-format
msgid "overriding final function %q+D"
msgstr ""
#. A static member function cannot match an inherited
#. virtual member function.
-#: cp/search.c:2234
+#: cp/search.c:2235
#, gcc-internal-format
msgid "%q+#D cannot be declared"
msgstr ""
-#: cp/search.c:2235
+#: cp/search.c:2236
#, gcc-internal-format
msgid " since %q+#D declared in base class"
msgstr ""
msgid "__label__ declarations are only allowed in function scopes"
msgstr ""
-#: cp/semantics.c:1760
+#: cp/semantics.c:1753
#, gcc-internal-format
msgid "invalid use of member %qD in static member function"
msgstr ""
-#: cp/semantics.c:2467
+#: cp/semantics.c:2460
#, gcc-internal-format
msgid "arguments to destructor are not allowed"
msgstr ""
-#: cp/semantics.c:2564
+#: cp/semantics.c:2557
#, gcc-internal-format
msgid "%<this%> is unavailable for static member functions"
msgstr ""
-#: cp/semantics.c:2566
+#: cp/semantics.c:2559
#, gcc-internal-format
msgid "invalid use of %<this%> in non-member function"
msgstr ""
-#: cp/semantics.c:2568
+#: cp/semantics.c:2561
#, gcc-internal-format
msgid "invalid use of %<this%> at top level"
msgstr ""
-#: cp/semantics.c:2590
+#: cp/semantics.c:2583
#, gcc-internal-format
msgid "invalid qualifying scope in pseudo-destructor name"
msgstr ""
-#: cp/semantics.c:2598 cp/typeck.c:2530
+#: cp/semantics.c:2591 cp/typeck.c:2530
#, gcc-internal-format
msgid "qualified type %qT does not match destructor name ~%qT"
msgstr ""
-#: cp/semantics.c:2620
+#: cp/semantics.c:2613
#, gcc-internal-format
msgid "%qE is not of type %qT"
msgstr ""
-#: cp/semantics.c:2691
+#: cp/semantics.c:2684
#, gcc-internal-format
msgid "compound literal of non-object type %qT"
msgstr ""
-#: cp/semantics.c:2808
+#: cp/semantics.c:2801
#, gcc-internal-format
msgid "template type parameters must use the keyword %<class%> or %<typename%>"
msgstr ""
-#: cp/semantics.c:2858
+#: cp/semantics.c:2851
#, gcc-internal-format
msgid ""
"invalid use of type %qT as a default value for a template template-parameter"
msgstr ""
-#: cp/semantics.c:2861
+#: cp/semantics.c:2854
#, gcc-internal-format
msgid "invalid default argument for a template template parameter"
msgstr ""
-#: cp/semantics.c:2878
+#: cp/semantics.c:2871
#, gcc-internal-format
msgid "definition of %q#T inside template parameter list"
msgstr ""
-#: cp/semantics.c:2909
+#: cp/semantics.c:2902
#, gcc-internal-format
msgid "invalid definition of qualified type %qT"
msgstr ""
-#: cp/semantics.c:3189
+#: cp/semantics.c:3182
#, gcc-internal-format
msgid "invalid base-class specification"
msgstr ""
-#: cp/semantics.c:3348
+#: cp/semantics.c:3341
#, gcc-internal-format
msgid "cannot capture member %qD of anonymous union"
msgstr ""
-#: cp/semantics.c:3361 cp/semantics.c:9260
+#: cp/semantics.c:3354 cp/semantics.c:9266
#, gcc-internal-format
msgid "%qD is not captured"
msgstr ""
-#: cp/semantics.c:3366
+#: cp/semantics.c:3359
#, gcc-internal-format
msgid "the lambda has no capture-default"
msgstr ""
-#: cp/semantics.c:3368
+#: cp/semantics.c:3361
#, gcc-internal-format
msgid ""
"lambda in local class %q+T cannot capture variables from the enclosing "
"context"
msgstr ""
-#: cp/semantics.c:3379
+#: cp/semantics.c:3372
#, gcc-internal-format
msgid "use of local variable with automatic storage from containing function"
msgstr ""
-#: cp/semantics.c:3380
+#: cp/semantics.c:3373
#, gcc-internal-format
msgid "use of parameter from containing function"
msgstr ""
-#: cp/semantics.c:3548
+#: cp/semantics.c:3541
#, gcc-internal-format
msgid ""
"template parameter %qD of type %qT is not allowed in an integral constant "
"expression because it is not of integral or enumeration type"
msgstr ""
-#: cp/semantics.c:3635
+#: cp/semantics.c:3628
#, gcc-internal-format
msgid "use of namespace %qD as expression"
msgstr ""
-#: cp/semantics.c:3640
+#: cp/semantics.c:3633
#, gcc-internal-format
msgid "use of class template %qT as expression"
msgstr ""
#. Ambiguous reference to base members.
-#: cp/semantics.c:3646
+#: cp/semantics.c:3639
#, gcc-internal-format
msgid "request for member %qD is ambiguous in multiple inheritance lattice"
msgstr ""
-#: cp/semantics.c:3672
+#: cp/semantics.c:3665
#, gcc-internal-format
msgid "%qD cannot appear in a constant-expression"
msgstr ""
-#: cp/semantics.c:3797
+#: cp/semantics.c:3790
#, gcc-internal-format
msgid "type of %qE is unknown"
msgstr ""
-#: cp/semantics.c:3825
+#: cp/semantics.c:3818
#, gcc-internal-format
msgid "%qT is not an enumeration type"
msgstr ""
#. Parameter packs can only be used in templates
-#: cp/semantics.c:3980
+#: cp/semantics.c:3973
#, gcc-internal-format
msgid "Parameter pack __bases only valid in template declaration"
msgstr ""
-#: cp/semantics.c:4009
+#: cp/semantics.c:4002
#, gcc-internal-format
msgid "cannot apply %<offsetof%> to destructor %<~%T%>"
msgstr ""
-#: cp/semantics.c:4018
+#: cp/semantics.c:4011
#, gcc-internal-format
msgid ""
"second operand of %<offsetof%> is neither a single identifier nor a sequence "
"of member accesses and array references"
msgstr ""
-#: cp/semantics.c:4026
+#: cp/semantics.c:4019
#, gcc-internal-format
msgid "cannot apply %<offsetof%> to member function %qD"
msgstr ""
-#: cp/semantics.c:4042
+#: cp/semantics.c:4035
#, gcc-internal-format
msgid "offsetof within non-standard-layout type %qT is undefined"
msgstr ""
-#: cp/semantics.c:4547 cp/semantics.c:6003 cp/semantics.c:6059
-#: cp/semantics.c:6098 cp/semantics.c:6449 cp/semantics.c:6548
-#: cp/semantics.c:6682
+#: cp/semantics.c:4544 cp/semantics.c:6001 cp/semantics.c:6057
+#: cp/semantics.c:6096 cp/semantics.c:6447 cp/semantics.c:6546
+#: cp/semantics.c:6686
#, gcc-internal-format
msgid "%<this%> allowed in OpenMP only in %<declare simd%> clauses"
msgstr ""
-#: cp/semantics.c:5223
+#: cp/semantics.c:5220
#, gcc-internal-format
msgid "user defined reduction lookup is ambiguous"
msgstr ""
-#: cp/semantics.c:5496
+#: cp/semantics.c:5493
#, gcc-internal-format
msgid "%qE in %<reduction%> clause is a zero size array"
msgstr ""
-#: cp/semantics.c:5544
+#: cp/semantics.c:5541
#, gcc-internal-format
msgid "%qE has const type for %<reduction%>"
msgstr ""
-#: cp/semantics.c:5656
+#: cp/semantics.c:5653
#, gcc-internal-format
msgid "user defined reduction with constructor initializer for base class %qT"
msgstr ""
-#: cp/semantics.c:5878
+#: cp/semantics.c:5875
#, gcc-internal-format
msgid ""
"linear clause with %qs modifier applied to non-reference variable with %qT "
"type"
msgstr ""
-#: cp/semantics.c:5890
+#: cp/semantics.c:5888
#, gcc-internal-format
msgid ""
"linear clause applied to non-integral non-pointer variable with %qT type"
msgstr ""
-#: cp/semantics.c:5911
+#: cp/semantics.c:5909
#, gcc-internal-format
msgid "linear step expression must be integral"
msgstr ""
-#: cp/semantics.c:6014
+#: cp/semantics.c:6012
#, gcc-internal-format
msgid "%qD is not a variable in clause %qs"
msgstr ""
-#: cp/semantics.c:6070
+#: cp/semantics.c:6068
#, gcc-internal-format
msgid "%qD is not a variable in clause %<firstprivate%>"
msgstr ""
-#: cp/semantics.c:6109
+#: cp/semantics.c:6107
#, gcc-internal-format
msgid "%qD is not a variable in clause %<lastprivate%>"
msgstr ""
-#: cp/semantics.c:6154
+#: cp/semantics.c:6152
#, gcc-internal-format
msgid "%<gang%> static expression must be integral"
msgstr ""
-#: cp/semantics.c:6168
+#: cp/semantics.c:6166
#, gcc-internal-format
msgid "%<gang%> static value must bepositive"
msgstr ""
-#: cp/semantics.c:6200
+#: cp/semantics.c:6198
#, gcc-internal-format
msgid "%<gang%> num expression must be integral"
msgstr ""
-#: cp/semantics.c:6203
+#: cp/semantics.c:6201
#, gcc-internal-format
msgid "%<vector%> length expression must be integral"
msgstr ""
-#: cp/semantics.c:6207
+#: cp/semantics.c:6205
#, gcc-internal-format
msgid "%<worker%> num expression must be integral"
msgstr ""
-#: cp/semantics.c:6211
+#: cp/semantics.c:6209
#, gcc-internal-format
msgid "%qs expression must be integral"
msgstr ""
-#: cp/semantics.c:6229
+#: cp/semantics.c:6227
#, gcc-internal-format
msgid "%<gang%> num value must be positive"
msgstr ""
-#: cp/semantics.c:6233
+#: cp/semantics.c:6231
#, gcc-internal-format
msgid "%<vector%> length value must bepositive"
msgstr ""
-#: cp/semantics.c:6238
+#: cp/semantics.c:6236
#, gcc-internal-format
msgid "%<worker%> num value must bepositive"
msgstr ""
-#: cp/semantics.c:6243
+#: cp/semantics.c:6241
#, gcc-internal-format
msgid "%qs value must be positive"
msgstr ""
-#: cp/semantics.c:6290
+#: cp/semantics.c:6288
#, gcc-internal-format
msgid "schedule chunk size expression must be integral"
msgstr ""
-#: cp/semantics.c:6322
+#: cp/semantics.c:6320
#, gcc-internal-format
msgid "%qs length expression must be integral"
msgstr ""
-#: cp/semantics.c:6335
+#: cp/semantics.c:6333
#, gcc-internal-format
msgid "%qs length expression must be positive constant integer expression"
msgstr ""
-#: cp/semantics.c:6354
+#: cp/semantics.c:6352
#, gcc-internal-format
msgid "%<async%> expression must be integral"
msgstr ""
-#: cp/semantics.c:6382
+#: cp/semantics.c:6380
#, gcc-internal-format
msgid "%<thread_limit%> expression must be integral"
msgstr ""
-#: cp/semantics.c:6411
+#: cp/semantics.c:6409
#, gcc-internal-format
msgid "%<device%> id must be integral"
msgstr ""
-#: cp/semantics.c:6432
+#: cp/semantics.c:6430
#, gcc-internal-format
msgid "%<dist_schedule%> chunk size expression must be integral"
msgstr ""
-#: cp/semantics.c:6459
+#: cp/semantics.c:6457
#, gcc-internal-format
msgid "%qD is not a variable in %<aligned%> clause"
msgstr ""
-#: cp/semantics.c:6473
+#: cp/semantics.c:6471
#, gcc-internal-format
msgid ""
"%qE in %<aligned%> clause is neither a pointer nor an array nor a reference "
"to pointer or array"
msgstr ""
-#: cp/semantics.c:6479
+#: cp/semantics.c:6477
#, gcc-internal-format
msgid "%qD appears more than once in %<aligned%> clauses"
msgstr ""
-#: cp/semantics.c:6492
+#: cp/semantics.c:6490
#, gcc-internal-format
msgid "%<aligned%> clause alignment expression must be integral"
msgstr ""
-#: cp/semantics.c:6541
+#: cp/semantics.c:6539
#, gcc-internal-format
msgid "%qD is not a variable in %<depend%> clause"
msgstr ""
-#: cp/semantics.c:6809
+#: cp/semantics.c:6813
#, gcc-internal-format
msgid "overloaded function name %qE in clause %qs"
msgstr ""
-#: cp/semantics.c:6813
+#: cp/semantics.c:6817
#, gcc-internal-format
msgid "template %qE in clause %qs"
msgstr ""
-#: cp/semantics.c:6878
+#: cp/semantics.c:6882
#, gcc-internal-format
msgid "%<grainsize%> expression must be integral"
msgstr ""
-#: cp/semantics.c:6907
+#: cp/semantics.c:6911
#, gcc-internal-format
msgid "%<priority%> expression must be integral"
msgstr ""
-#: cp/semantics.c:6936
+#: cp/semantics.c:6940
#, gcc-internal-format
msgid "%<num_tasks%> expression must be integral"
msgstr ""
-#: cp/semantics.c:6965
+#: cp/semantics.c:6969
#, gcc-internal-format
msgid ""
"%qs variable is neither a pointer, nor an arraynor reference to pointer or "
"array"
msgstr ""
-#: cp/semantics.c:7421
+#: cp/semantics.c:7425
#, gcc-internal-format
msgid "%<threadprivate%> %qD is not file, namespace or block scope variable"
msgstr ""
-#: cp/semantics.c:7435
+#: cp/semantics.c:7439
#, gcc-internal-format
msgid "%<threadprivate%> %qE directive not in %qT definition"
msgstr ""
-#: cp/semantics.c:7640
+#: cp/semantics.c:7644
#, gcc-internal-format
msgid "difference between %qE and %qD does not have integer type"
msgstr ""
-#: cp/semantics.c:8060
+#: cp/semantics.c:8064
#, gcc-internal-format
msgid "%<#pragma omp simd%> used with class iteration variable %qE"
msgstr ""
-#: cp/semantics.c:8402 cp/semantics.c:8412
+#: cp/semantics.c:8406 cp/semantics.c:8416
#, gcc-internal-format
msgid "%<#pragma omp atomic update%> uses two different expressions for memory"
msgstr ""
-#: cp/semantics.c:8705
+#: cp/semantics.c:8709
#, gcc-internal-format
msgid "static assertion failed"
msgstr ""
-#: cp/semantics.c:8707
+#: cp/semantics.c:8711
#, gcc-internal-format, gfc-internal-format
msgid "static assertion failed: %s"
msgstr ""
-#: cp/semantics.c:8712
+#: cp/semantics.c:8716
#, gcc-internal-format
msgid "non-constant condition for static assertion"
msgstr ""
-#: cp/semantics.c:8742
+#: cp/semantics.c:8746
#, gcc-internal-format
msgid "argument to decltype must be an expression"
msgstr ""
-#: cp/semantics.c:8770
+#: cp/semantics.c:8774
#, gcc-internal-format
msgid "decltype cannot resolve address of overloaded function"
msgstr ""
-#: cp/semantics.c:9299
+#: cp/semantics.c:9305
#, gcc-internal-format
msgid "operand of fold expression has no unexpanded parameter packs"
msgstr ""
-#: cp/semantics.c:9352
+#: cp/semantics.c:9358
#, gcc-internal-format
msgid "both arguments in binary fold have unexpanded parameter packs"
msgstr ""
-#: cp/semantics.c:9354
+#: cp/semantics.c:9360
#, gcc-internal-format
msgid "no unexpanded parameter packs in binary fold"
msgstr ""
msgid "lambda-expression in a constant expression"
msgstr ""
-#: cp/tree.c:3567
+#: cp/tree.c:3572
#, gcc-internal-format
msgid "%qE attribute can only be applied to Java class definitions"
msgstr ""
-#: cp/tree.c:3596
+#: cp/tree.c:3601
#, gcc-internal-format
msgid "%qE attribute can only be applied to class definitions"
msgstr ""
-#: cp/tree.c:3602
+#: cp/tree.c:3607
#, gcc-internal-format
msgid "%qE is obsolete; g++ vtables are now COM-compatible by default"
msgstr ""
-#: cp/tree.c:3629
+#: cp/tree.c:3634
#, gcc-internal-format
msgid "requested init_priority is not an integer constant"
msgstr ""
-#: cp/tree.c:3651
+#: cp/tree.c:3656
#, gcc-internal-format
msgid ""
"can only use %qE attribute on file-scope definitions of objects of class type"
msgstr ""
-#: cp/tree.c:3659
+#: cp/tree.c:3664
#, gcc-internal-format
msgid "requested init_priority is out of range"
msgstr ""
-#: cp/tree.c:3669
+#: cp/tree.c:3674
#, gcc-internal-format
msgid "requested init_priority is reserved for internal use"
msgstr ""
-#: cp/tree.c:3680
+#: cp/tree.c:3685
#, gcc-internal-format
msgid "%qE attribute is not supported on this platform"
msgstr ""
-#: cp/tree.c:3707
+#: cp/tree.c:3712
#, gcc-internal-format
msgid "redeclaration of %qD adds abi tag %E"
msgstr ""
-#: cp/tree.c:3727
+#: cp/tree.c:3732
#, gcc-internal-format
msgid "the %qE attribute requires arguments"
msgstr ""
-#: cp/tree.c:3738
+#: cp/tree.c:3743
#, gcc-internal-format
msgid "arguments to the %qE attribute must be narrow string literals"
msgstr ""
-#: cp/tree.c:3751 cp/tree.c:3764
+#: cp/tree.c:3756 cp/tree.c:3769
#, gcc-internal-format
msgid "arguments to the %qE attribute must contain valid identifiers"
msgstr ""
-#: cp/tree.c:3753
+#: cp/tree.c:3758
#, gcc-internal-format
msgid "%<%c%> is not a valid first character for an identifier"
msgstr ""
-#: cp/tree.c:3766
+#: cp/tree.c:3771
#, gcc-internal-format
msgid "%<%c%> is not a valid character in an identifier"
msgstr ""
-#: cp/tree.c:3790
+#: cp/tree.c:3795
#, gcc-internal-format
msgid "%qE attribute applied to non-class, non-enum type %qT"
msgstr ""
-#: cp/tree.c:3796
+#: cp/tree.c:3801
#, gcc-internal-format
msgid "%qE attribute applied to %qT after its definition"
msgstr ""
-#: cp/tree.c:3803
+#: cp/tree.c:3808
#, gcc-internal-format
msgid "ignoring %qE attribute applied to template instantiation %qT"
msgstr ""
-#: cp/tree.c:3810
+#: cp/tree.c:3815
#, gcc-internal-format
msgid "ignoring %qE attribute applied to template specialization %qT"
msgstr ""
-#: cp/tree.c:3832
+#: cp/tree.c:3837
#, gcc-internal-format
msgid "%qE attribute applied to non-function, non-variable %qD"
msgstr ""
-#: cp/tree.c:3838
+#: cp/tree.c:3843
#, gcc-internal-format
msgid "%qE attribute applied to extern \"C\" declaration %qD"
msgstr ""
-#: cp/tree.c:4539
+#: cp/tree.c:4544
#, gcc-internal-format
msgid "zero as null pointer constant"
msgstr ""
-#: cp/tree.c:4552
+#: cp/tree.c:4557
#, gcc-internal-format, gfc-internal-format
msgid "lang_* check: failed in %s, at %s:%d"
msgstr ""
msgid "address requested for %qD, which is declared %<register%>"
msgstr ""
-#: cp/typeck.c:6302
+#: cp/typeck.c:6301
#, gcc-internal-format
msgid "list-initializer for non-class type must not be parenthesized"
msgstr ""
-#: cp/typeck.c:6314
+#: cp/typeck.c:6313
#, gcc-internal-format
msgid "expression list treated as compound expression in initializer"
msgstr ""
-#: cp/typeck.c:6318
+#: cp/typeck.c:6317
#, gcc-internal-format
msgid "expression list treated as compound expression in mem-initializer"
msgstr ""
-#: cp/typeck.c:6322
+#: cp/typeck.c:6321
#, gcc-internal-format
msgid "expression list treated as compound expression in functional cast"
msgstr ""
-#: cp/typeck.c:6359
+#: cp/typeck.c:6358
#, gcc-internal-format, gfc-internal-format
msgid "%s expression list treated as compound expression"
msgstr ""
-#: cp/typeck.c:6456
+#: cp/typeck.c:6455
#, gcc-internal-format
msgid "no context to resolve type of %qE"
msgstr ""
-#: cp/typeck.c:6489
+#: cp/typeck.c:6488
#, gcc-internal-format
msgid "cast from type %qT to type %qT casts away qualifiers"
msgstr ""
-#: cp/typeck.c:6495
+#: cp/typeck.c:6494
#, gcc-internal-format
msgid "static_cast from type %qT to type %qT casts away qualifiers"
msgstr ""
-#: cp/typeck.c:6501
+#: cp/typeck.c:6500
#, gcc-internal-format
msgid "reinterpret_cast from type %qT to type %qT casts away qualifiers"
msgstr ""
-#: cp/typeck.c:6524
+#: cp/typeck.c:6523
#, gcc-internal-format
msgid "useless cast to type %qT"
msgstr ""
-#: cp/typeck.c:6895
+#: cp/typeck.c:6894
#, gcc-internal-format
msgid "invalid static_cast from type %qT to type %qT"
msgstr ""
-#: cp/typeck.c:6921
+#: cp/typeck.c:6920
#, gcc-internal-format
msgid "converting from %qT to %qT"
msgstr ""
-#: cp/typeck.c:6973
+#: cp/typeck.c:6972
#, gcc-internal-format
msgid "invalid cast of an rvalue expression of type %qT to type %qT"
msgstr ""
-#: cp/typeck.c:7043
+#: cp/typeck.c:7042
#, gcc-internal-format
msgid "cast from %qT to %qT loses precision"
msgstr ""
-#: cp/typeck.c:7083
+#: cp/typeck.c:7082
#, gcc-internal-format
msgid "cast from %qT to %qT increases required alignment of target type"
msgstr ""
-#: cp/typeck.c:7101
+#: cp/typeck.c:7100
#, gcc-internal-format
msgid ""
"casting between pointer-to-function and pointer-to-object is conditionally-"
"supported"
msgstr ""
-#: cp/typeck.c:7115
+#: cp/typeck.c:7114
#, gcc-internal-format
msgid "invalid cast from type %qT to type %qT"
msgstr ""
-#: cp/typeck.c:7176
+#: cp/typeck.c:7175
#, gcc-internal-format
msgid ""
"invalid use of const_cast with type %qT, which is not a pointer, reference, "
"nor a pointer-to-data-member type"
msgstr ""
-#: cp/typeck.c:7185
+#: cp/typeck.c:7184
#, gcc-internal-format
msgid ""
"invalid use of const_cast with type %qT, which is a pointer or reference to "
"a function type"
msgstr ""
-#: cp/typeck.c:7225
+#: cp/typeck.c:7224
#, gcc-internal-format
msgid "invalid const_cast of an rvalue of type %qT to type %qT"
msgstr ""
-#: cp/typeck.c:7286
+#: cp/typeck.c:7285
#, gcc-internal-format
msgid "invalid const_cast from type %qT to type %qT"
msgstr ""
-#: cp/typeck.c:7379 cp/typeck.c:7387
+#: cp/typeck.c:7378 cp/typeck.c:7386
#, gcc-internal-format
msgid "ISO C++ forbids casting to an array type %qT"
msgstr ""
-#: cp/typeck.c:7396
+#: cp/typeck.c:7395
#, gcc-internal-format
msgid "invalid cast to function type %qT"
msgstr ""
-#: cp/typeck.c:7677
+#: cp/typeck.c:7676
#, gcc-internal-format
msgid " in evaluation of %<%Q(%#T, %#T)%>"
msgstr ""
-#: cp/typeck.c:7738
+#: cp/typeck.c:7737
#, gcc-internal-format
msgid "assigning to an array from an initializer list"
msgstr ""
-#: cp/typeck.c:7764
+#: cp/typeck.c:7763
#, gcc-internal-format
msgid "incompatible types in assignment of %qT to %qT"
msgstr ""
-#: cp/typeck.c:7778
+#: cp/typeck.c:7777
#, gcc-internal-format
msgid "array used as initializer"
msgstr ""
-#: cp/typeck.c:7780
+#: cp/typeck.c:7779
#, gcc-internal-format
msgid "invalid array assignment"
msgstr ""
-#: cp/typeck.c:7910
+#: cp/typeck.c:7909
#, gcc-internal-format
msgid " in pointer to member function conversion"
msgstr ""
-#: cp/typeck.c:7924
+#: cp/typeck.c:7923
#, gcc-internal-format
msgid "pointer to member conversion via virtual base %qT"
msgstr ""
-#: cp/typeck.c:7971 cp/typeck.c:7990
+#: cp/typeck.c:7970 cp/typeck.c:7989
#, gcc-internal-format
msgid " in pointer to member conversion"
msgstr ""
-#: cp/typeck.c:8071
+#: cp/typeck.c:8070
#, gcc-internal-format
msgid "invalid conversion to type %qT from type %qT"
msgstr ""
-#: cp/typeck.c:8347
+#: cp/typeck.c:8346
#, gcc-internal-format
msgid "cannot convert %qT to %qT for argument %qP to %qD"
msgstr ""
-#: cp/typeck.c:8353
+#: cp/typeck.c:8352
#, gcc-internal-format
msgid "cannot convert %qT to %qT in default argument"
msgstr ""
-#: cp/typeck.c:8357
+#: cp/typeck.c:8356
#, gcc-internal-format
msgid "cannot convert %qT to %qT in argument passing"
msgstr ""
-#: cp/typeck.c:8361
+#: cp/typeck.c:8360
#, gcc-internal-format
msgid "cannot convert %qT to %qT"
msgstr ""
-#: cp/typeck.c:8365
+#: cp/typeck.c:8364
#, gcc-internal-format
msgid "cannot convert %qT to %qT in initialization"
msgstr ""
-#: cp/typeck.c:8369
+#: cp/typeck.c:8368
#, gcc-internal-format
msgid "cannot convert %qT to %qT in return"
msgstr ""
-#: cp/typeck.c:8373
+#: cp/typeck.c:8372
#, gcc-internal-format
msgid "cannot convert %qT to %qT in assignment"
msgstr ""
-#: cp/typeck.c:8386
+#: cp/typeck.c:8385
#, gcc-internal-format
msgid "class type %qT is incomplete"
msgstr ""
-#: cp/typeck.c:8404
+#: cp/typeck.c:8403
#, gcc-internal-format
msgid "parameter %qP of %qD might be a candidate for a format attribute"
msgstr ""
-#: cp/typeck.c:8408
+#: cp/typeck.c:8407
#, gcc-internal-format
msgid "parameter might be a candidate for a format attribute"
msgstr ""
-#: cp/typeck.c:8413
+#: cp/typeck.c:8412
#, gcc-internal-format
msgid "target of conversion might be a candidate for a format attribute"
msgstr ""
-#: cp/typeck.c:8418
+#: cp/typeck.c:8417
#, gcc-internal-format
msgid "target of initialization might be a candidate for a format attribute"
msgstr ""
-#: cp/typeck.c:8428
+#: cp/typeck.c:8427
#, gcc-internal-format
msgid ""
"left-hand side of assignment might be a candidate for a format attribute"
msgstr ""
-#: cp/typeck.c:8523
+#: cp/typeck.c:8522
#, gcc-internal-format
msgid "in passing argument %P of %qD"
msgstr ""
-#: cp/typeck.c:8582
+#: cp/typeck.c:8581
#, gcc-internal-format
msgid "returning reference to temporary"
msgstr ""
-#: cp/typeck.c:8589
+#: cp/typeck.c:8588
#, gcc-internal-format
msgid "reference to non-lvalue returned"
msgstr ""
-#: cp/typeck.c:8604
+#: cp/typeck.c:8603
#, gcc-internal-format
msgid "reference to local variable %qD returned"
msgstr ""
-#: cp/typeck.c:8608
+#: cp/typeck.c:8607
#, gcc-internal-format
msgid "address of label %qD returned"
msgstr ""
-#: cp/typeck.c:8612
+#: cp/typeck.c:8611
#, gcc-internal-format
msgid "address of local variable %qD returned"
msgstr ""
-#: cp/typeck.c:8658
+#: cp/typeck.c:8657
#, gcc-internal-format
msgid "returning a value from a destructor"
msgstr ""
#. If a return statement appears in a handler of the
#. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.c:8666
+#: cp/typeck.c:8665
#, gcc-internal-format
msgid "cannot return from a handler of a function-try-block of a constructor"
msgstr ""
#. You can't return a value from a constructor.
-#: cp/typeck.c:8669
+#: cp/typeck.c:8668
#, gcc-internal-format
msgid "returning a value from a constructor"
msgstr ""
#. Give a helpful error message.
-#: cp/typeck.c:8699 cp/typeck.c:8745
+#: cp/typeck.c:8698 cp/typeck.c:8744
#, gcc-internal-format
msgid "return-statement with no value, in function returning %qT"
msgstr ""
-#: cp/typeck.c:8707
+#: cp/typeck.c:8706
#, gcc-internal-format
msgid "returning initializer list"
msgstr ""
-#: cp/typeck.c:8726
+#: cp/typeck.c:8725
#, gcc-internal-format
msgid "inconsistent types %qT and %qT deduced for lambda return type"
msgstr ""
-#: cp/typeck.c:8729
+#: cp/typeck.c:8728
#, gcc-internal-format
msgid "inconsistent deduction for auto return type: %qT and then %qT"
msgstr ""
-#: cp/typeck.c:8764
+#: cp/typeck.c:8763
#, gcc-internal-format
msgid "return-statement with a value, in function returning 'void'"
msgstr ""
-#: cp/typeck.c:8794
+#: cp/typeck.c:8793
#, gcc-internal-format
msgid ""
"%<operator new%> must not return NULL unless it is declared %<throw()%> (or -"
msgstr ""
#. Make this a permerror because we used to accept it.
-#: cp/typeck.c:9403
+#: cp/typeck.c:9402
#, gcc-internal-format
msgid "using temporary as lvalue"
msgstr ""
-#: cp/typeck.c:9405
+#: cp/typeck.c:9404
#, gcc-internal-format
msgid "using xvalue (rvalue reference) as lvalue"
msgstr ""
msgid "invalid use of template template parameter %qT"
msgstr ""
-#: cp/typeck2.c:543
+#: cp/typeck2.c:544
#, gcc-internal-format
msgid "invalid use of dependent type %qT"
msgstr ""
-#: cp/typeck2.c:550
+#: cp/typeck2.c:551
#, gcc-internal-format
msgid "invalid use of brace-enclosed initializer list"
msgstr ""
-#: cp/typeck2.c:558
+#: cp/typeck2.c:559
#, gcc-internal-format
msgid "address of overloaded function with no contextual type information"
msgstr ""
-#: cp/typeck2.c:562
+#: cp/typeck2.c:563
#, gcc-internal-format
msgid "overloaded function with no contextual type information"
msgstr ""
-#: cp/typeck2.c:565
+#: cp/typeck2.c:566
#, gcc-internal-format
msgid "insufficient contextual information to determine type"
msgstr ""
-#: cp/typeck2.c:785
+#: cp/typeck2.c:786
#, gcc-internal-format
msgid "constructor syntax used, but no constructor declared for type %qT"
msgstr ""
-#: cp/typeck2.c:945
+#: cp/typeck2.c:946
#, gcc-internal-format
msgid ""
"narrowing conversion of %qE from %qT to %qT inside { } is ill-formed in C++11"
msgstr ""
-#: cp/typeck2.c:955 cp/typeck2.c:968
+#: cp/typeck2.c:957 cp/typeck2.c:971
#, gcc-internal-format
msgid "narrowing conversion of %qE from %qT to %qT inside { }"
msgstr ""
-#: cp/typeck2.c:958
+#: cp/typeck2.c:961
#, gcc-internal-format
msgid ""
" the expression has a constant value but is not a C++ constant-expression"
msgstr ""
-#: cp/typeck2.c:1044
+#: cp/typeck2.c:1047
#, gcc-internal-format
msgid "int-array initialized from non-wide string"
msgstr ""
-#: cp/typeck2.c:1050
+#: cp/typeck2.c:1053
#, gcc-internal-format
msgid "int-array initialized from incompatible wide string"
msgstr ""
-#: cp/typeck2.c:1071
+#: cp/typeck2.c:1074
#, gcc-internal-format
msgid "initializer-string for array of chars is too long"
msgstr ""
-#: cp/typeck2.c:1124
+#: cp/typeck2.c:1127
#, gcc-internal-format
msgid "cannot initialize aggregate of type %qT with a compound literal"
msgstr ""
-#: cp/typeck2.c:1142
+#: cp/typeck2.c:1145
#, gcc-internal-format
msgid "array must be initialized with a brace-enclosed initializer"
msgstr ""
-#: cp/typeck2.c:1425 cp/typeck2.c:1452
+#: cp/typeck2.c:1428 cp/typeck2.c:1455
#, gcc-internal-format
msgid "missing initializer for member %qD"
msgstr ""
-#: cp/typeck2.c:1433
+#: cp/typeck2.c:1436
#, gcc-internal-format
msgid "member %qD is uninitialized reference"
msgstr ""
-#: cp/typeck2.c:1440
+#: cp/typeck2.c:1443
#, gcc-internal-format
msgid "member %qD with uninitialized reference fields"
msgstr ""
-#: cp/typeck2.c:1543
+#: cp/typeck2.c:1546
#, gcc-internal-format
msgid "no field %qD found in union being initialized"
msgstr ""
-#: cp/typeck2.c:1554
+#: cp/typeck2.c:1557
#, gcc-internal-format
msgid "index value instead of field name in union initializer"
msgstr ""
-#: cp/typeck2.c:1736
+#: cp/typeck2.c:1739
#, gcc-internal-format
msgid "circular pointer delegation detected"
msgstr ""
-#: cp/typeck2.c:1750
+#: cp/typeck2.c:1753
#, gcc-internal-format
msgid "base operand of %<->%> has non-pointer type %qT"
msgstr ""
-#: cp/typeck2.c:1776
+#: cp/typeck2.c:1779
#, gcc-internal-format
msgid "result of %<operator->()%> yields non-pointer result"
msgstr ""
-#: cp/typeck2.c:1778
+#: cp/typeck2.c:1781
#, gcc-internal-format
msgid "base operand of %<->%> is not a pointer"
msgstr ""
-#: cp/typeck2.c:1805
+#: cp/typeck2.c:1808
#, gcc-internal-format
msgid "%qE cannot be used as a member pointer, since it is of type %qT"
msgstr ""
-#: cp/typeck2.c:1814
+#: cp/typeck2.c:1817
#, gcc-internal-format
msgid "cannot apply member pointer %qE to %qE, which is of non-class type %qT"
msgstr ""
-#: cp/typeck2.c:1836
+#: cp/typeck2.c:1839
#, gcc-internal-format
msgid "pointer to member type %qT incompatible with object type %qT"
msgstr ""
-#: cp/typeck2.c:1895
+#: cp/typeck2.c:1898
#, gcc-internal-format
msgid "pointer-to-member-function type %qT requires an rvalue"
msgstr ""
-#: cp/typeck2.c:1902
+#: cp/typeck2.c:1905
#, gcc-internal-format
msgid "pointer-to-member-function type %qT requires an lvalue"
msgstr ""
-#: cp/typeck2.c:1943
+#: cp/typeck2.c:1946
#, gcc-internal-format
msgid "functional cast to array type %qT"
msgstr ""
-#: cp/typeck2.c:1964
+#: cp/typeck2.c:1967
#, gcc-internal-format
msgid "invalid value-initialization of reference type"
msgstr ""
-#: cp/typeck2.c:2191
+#: cp/typeck2.c:2194
#, gcc-internal-format
msgid "call to function %qD which throws incomplete type %q#T"
msgstr ""
-#: cp/typeck2.c:2194
+#: cp/typeck2.c:2197
#, gcc-internal-format
msgid "call to function which throws incomplete type %q#T"
msgstr ""
#: fortran/array.c:213 fortran/array.c:625 fortran/check.c:2642
#: fortran/check.c:4950 fortran/check.c:4988 fortran/check.c:5030
-#: fortran/check.c:5229 fortran/match.c:1680 fortran/match.c:2787
-#: fortran/match.c:2982 fortran/match.c:3178 fortran/simplify.c:4733
+#: fortran/check.c:5229 fortran/match.c:1802 fortran/match.c:2909
+#: fortran/match.c:3104 fortran/match.c:3300 fortran/simplify.c:4737
#, gcc-internal-format
msgid "Coarrays disabled at %C, use %<-fcoarray=%> to enable"
msgstr ""
msgid "Array constructor including type specification at %C"
msgstr ""
-#: fortran/array.c:1122 fortran/match.c:3608
+#: fortran/array.c:1122 fortran/match.c:3730
#, gcc-internal-format, gfc-internal-format
msgid "Type-spec at %L cannot contain a deferred type parameter"
msgstr ""
"because it returns a disassociated pointer"
msgstr ""
-#: fortran/class.c:614
+#: fortran/class.c:612
#, gcc-internal-format, gfc-internal-format
msgid ""
"Assumed size polymorphic objects or components, such as that at %C, have not "
#. Since the extension field is 8 bit wide, we can only have
#. up to 255 extension levels.
-#: fortran/class.c:725 fortran/decl.c:8176
+#: fortran/class.c:723 fortran/decl.c:8717
#, gcc-internal-format
msgid "Maximum extension level reached with type %qs at %L"
msgstr ""
-#: fortran/class.c:2764 fortran/class.c:2838
+#: fortran/class.c:2762 fortran/class.c:2836
#, gcc-internal-format
msgid "%qs of %qs is PRIVATE at %L"
msgstr ""
msgid "DATA statement at %C is not allowed in a PURE procedure"
msgstr ""
-#: fortran/decl.c:619
+#: fortran/decl.c:638
+#, gcc-internal-format, gfc-internal-format
+msgid "Empty old style initializer list at %C"
+msgstr ""
+
+#: fortran/decl.c:658
+#, gcc-internal-format, gfc-internal-format
+msgid "Repeat spec invalid in scalar initializer at %C"
+msgstr ""
+
+#: fortran/decl.c:663
+#, gcc-internal-format, gfc-internal-format
+msgid "Repeat spec must be an integer at %C"
+msgstr ""
+
+#: fortran/decl.c:672
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected data constant after repeat spec at %C"
+msgstr ""
+
+#: fortran/decl.c:703
+#, gcc-internal-format, gfc-internal-format
+msgid "End of scalar initializer expected at %C"
+msgstr ""
+
+#: fortran/decl.c:730
+#, gcc-internal-format, gfc-internal-format
+msgid "Not enough elements in array initializer at %C"
+msgstr ""
+
+#: fortran/decl.c:732
+#, gcc-internal-format, gfc-internal-format
+msgid "Too many elements in array initializer at %C"
+msgstr ""
+
+#: fortran/decl.c:751
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in old style initializer list at %C"
+msgstr ""
+
+#: fortran/decl.c:774
#, gcc-internal-format, gfc-internal-format
msgid "The assumed-rank array at %C shall not have a codimension"
msgstr ""
-#: fortran/decl.c:687
+#: fortran/decl.c:842
#, gcc-internal-format, gfc-internal-format
msgid "Bad INTENT specification at %C"
msgstr ""
-#: fortran/decl.c:708
+#: fortran/decl.c:863
#, gcc-internal-format, gfc-internal-format
msgid "deferred type parameter at %C"
msgstr ""
-#: fortran/decl.c:780
+#: fortran/decl.c:935
#, gcc-internal-format, gfc-internal-format
msgid "Scalar INTEGER expression expected at %L"
msgstr ""
-#: fortran/decl.c:806
+#: fortran/decl.c:961
#, gcc-internal-format, gfc-internal-format
msgid "Old-style character length at %C"
msgstr ""
-#: fortran/decl.c:837
+#: fortran/decl.c:992
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in character length specification at %C"
msgstr ""
-#: fortran/decl.c:990
+#: fortran/decl.c:1145
#, gcc-internal-format
msgid "Procedure %qs at %C is already defined at %L"
msgstr ""
-#: fortran/decl.c:998
+#: fortran/decl.c:1153
#, gcc-internal-format
msgid "Name %qs at %C is already defined as a generic interface at %L"
msgstr ""
-#: fortran/decl.c:1011
+#: fortran/decl.c:1166
#, gcc-internal-format
msgid ""
"Procedure %qs at %C has an explicit interface and must not have attributes "
"declared at %L"
msgstr ""
-#: fortran/decl.c:1082
+#: fortran/decl.c:1237
#, gcc-internal-format
msgid ""
"Procedure %qs at %L must have the BIND(C) attribute to be C interoperable"
msgstr ""
-#: fortran/decl.c:1109
+#: fortran/decl.c:1264
#, gcc-internal-format
msgid ""
"Variable %qs at %L is a dummy argument to the BIND(C) procedure %qs but is "
"not C interoperable because derived type %qs is not C interoperable"
msgstr ""
-#: fortran/decl.c:1116
+#: fortran/decl.c:1271
#, gcc-internal-format
msgid ""
"Variable %qs at %L is a dummy argument to the BIND(C) procedure %qs but is "
"not C interoperable because it is polymorphic"
msgstr ""
-#: fortran/decl.c:1123
+#: fortran/decl.c:1278
#, gcc-internal-format
msgid ""
"Variable %qs at %L is a dummy argument of the BIND(C) procedure %qs but may "
"not be C interoperable"
msgstr ""
-#: fortran/decl.c:1138
+#: fortran/decl.c:1293
#, gcc-internal-format
msgid ""
"Character argument %qs at %L must be length 1 because procedure %qs is "
"BIND(C)"
msgstr ""
-#: fortran/decl.c:1151
+#: fortran/decl.c:1306
#, gcc-internal-format
msgid ""
"Variable %qs at %L with ALLOCATABLE attribute in procedure %qs with BIND(C)"
msgstr ""
-#: fortran/decl.c:1159
+#: fortran/decl.c:1314
#, gcc-internal-format
msgid "Variable %qs at %L with POINTER attribute in procedure %qs with BIND(C)"
msgstr ""
-#: fortran/decl.c:1168
+#: fortran/decl.c:1323
#, gcc-internal-format
msgid ""
"Scalar variable %qs at %L with POINTER or ALLOCATABLE in procedure %qs with "
"BIND(C) is not yet supported"
msgstr ""
-#: fortran/decl.c:1177
+#: fortran/decl.c:1332
#, gcc-internal-format
msgid ""
"Variable %qs at %L cannot have both the OPTIONAL and the VALUE attribute "
"because procedure %qs is BIND(C)"
msgstr ""
-#: fortran/decl.c:1184
+#: fortran/decl.c:1339
#, gcc-internal-format
msgid ""
"Variable %qs at %L with OPTIONAL attribute in procedure %qs which is BIND(C)"
msgstr ""
-#: fortran/decl.c:1195
+#: fortran/decl.c:1350
#, gcc-internal-format
msgid ""
"Assumed-shape array %qs at %L as dummy argument to the BIND(C) procedure %qs "
"at %L"
msgstr ""
-#: fortran/decl.c:1244
+#: fortran/decl.c:1400
#, gcc-internal-format
msgid "Symbol %qs at %C also declared as a type at %L"
msgstr ""
-#: fortran/decl.c:1303
+#: fortran/decl.c:1459
#, gcc-internal-format
msgid ""
"Variable %qs in common block %qs at %C must be declared with a C "
"interoperable kind since common block %qs is BIND(C)"
msgstr ""
-#: fortran/decl.c:1348
+#: fortran/decl.c:1504
#, gcc-internal-format, gfc-internal-format
msgid "CHARACTER expression at %L is being truncated (%d/%d)"
msgstr ""
-#: fortran/decl.c:1355
+#: fortran/decl.c:1511
#, gcc-internal-format, gfc-internal-format
msgid ""
"The CHARACTER elements of the array constructor at %L must have the same "
"length (%d/%d)"
msgstr ""
-#: fortran/decl.c:1445
+#: fortran/decl.c:1601
#, gcc-internal-format
msgid "Initializer not allowed for PARAMETER %qs at %C"
msgstr ""
-#: fortran/decl.c:1455
+#: fortran/decl.c:1611
#, gcc-internal-format, gfc-internal-format
msgid "PARAMETER at %L is missing an initializer"
msgstr ""
-#: fortran/decl.c:1465
+#: fortran/decl.c:1621
#, gcc-internal-format
msgid ""
"Variable %qs at %C with an initializer already appears in a DATA statement"
msgstr ""
-#: fortran/decl.c:1558
+#: fortran/decl.c:1714
#, gcc-internal-format, gfc-internal-format
msgid "Can't initialize implied-shape array at %L with scalar"
msgstr ""
-#: fortran/decl.c:1593
+#: fortran/decl.c:1749
#, gcc-internal-format, gfc-internal-format
msgid "Non-constant lower bound in implied-shape declaration at %L"
msgstr ""
-#: fortran/decl.c:1678
+#: fortran/decl.c:1835
#, gcc-internal-format, gfc-internal-format
msgid "Component at %C must have the POINTER attribute"
msgstr ""
-#: fortran/decl.c:1686
+#: fortran/decl.c:1843
#, gcc-internal-format, gfc-internal-format
msgid "Array component of structure at %C must have explicit or deferred shape"
msgstr ""
-#: fortran/decl.c:1767
+#: fortran/decl.c:1867
+#, gcc-internal-format, gfc-internal-format
+msgid "Component '%s' at %C already declared at %L"
+msgstr ""
+
+#: fortran/decl.c:1953
#, gcc-internal-format, gfc-internal-format
msgid "Pointer array component of structure at %C must have a deferred shape"
msgstr ""
-#: fortran/decl.c:1776
+#: fortran/decl.c:1962
#, gcc-internal-format, gfc-internal-format
msgid "Allocatable component of structure at %C must have a deferred shape"
msgstr ""
-#: fortran/decl.c:1785
+#: fortran/decl.c:1971
#, gcc-internal-format, gfc-internal-format
msgid "Array component of structure at %C must have an explicit shape"
msgstr ""
-#: fortran/decl.c:1839
+#: fortran/decl.c:2025
#, gcc-internal-format, gfc-internal-format
msgid "NULL() initialization at %C is ambiguous"
msgstr ""
-#: fortran/decl.c:1856
+#: fortran/decl.c:2042
#, gcc-internal-format, gfc-internal-format
msgid "NULL() initialization at %C may not have MOLD"
msgstr ""
-#: fortran/decl.c:1873
+#: fortran/decl.c:2059
#, gcc-internal-format, gfc-internal-format
msgid "Initialization of pointer at %C is not allowed in a PURE procedure"
msgstr ""
-#: fortran/decl.c:1894
+#: fortran/decl.c:2080
#, gcc-internal-format, gfc-internal-format
msgid "Error in pointer initialization at %C"
msgstr ""
-#: fortran/decl.c:1901
+#: fortran/decl.c:2087
#, gcc-internal-format, gfc-internal-format
msgid "non-NULL pointer initialization at %C"
msgstr ""
-#: fortran/decl.c:1924
+#: fortran/decl.c:2110
#, gcc-internal-format
msgid "Function name %qs not allowed at %C"
msgstr ""
-#: fortran/decl.c:1991
+#: fortran/decl.c:2177
#, gcc-internal-format
msgid "Non-PARAMETER symbol %qs at %L can't be implied-shape"
msgstr ""
-#: fortran/decl.c:2001
+#: fortran/decl.c:2187
#, gcc-internal-format, gfc-internal-format
msgid "Implied-shape array at %L"
msgstr ""
-#: fortran/decl.c:2054
+#: fortran/decl.c:2240
#, gcc-internal-format
msgid ""
"%qs at %C is a redefinition of the declaration in the corresponding "
"interface for MODULE PROCEDURE %qs"
msgstr ""
-#: fortran/decl.c:2083 fortran/decl.c:6950
+#: fortran/decl.c:2269 fortran/decl.c:7291
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate array spec for Cray pointee at %C"
msgstr ""
-#: fortran/decl.c:2091
+#: fortran/decl.c:2277
#, gcc-internal-format
msgid "Couldn't set pointee array spec."
msgstr ""
-#: fortran/decl.c:2154
+#: fortran/decl.c:2340
#, gcc-internal-format, gfc-internal-format
msgid "Old-style initialization at %C"
msgstr ""
-#: fortran/decl.c:2159
+#: fortran/decl.c:2348
#, gcc-internal-format, gfc-internal-format
msgid "Invalid old style initialization for derived type component at %C"
msgstr ""
-#: fortran/decl.c:2176 fortran/decl.c:5265
+#: fortran/decl.c:2361
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in old style initialization of %s at %C"
+msgstr ""
+
+#: fortran/decl.c:2381 fortran/decl.c:5584
#, gcc-internal-format, gfc-internal-format
msgid "Initialization at %C isn't for a pointer variable"
msgstr ""
-#: fortran/decl.c:2189
+#: fortran/decl.c:2394
#, gcc-internal-format
msgid "Pointer initialization at %C requires %<=>%>, not %<=%>"
msgstr ""
-#: fortran/decl.c:2198 fortran/decl.c:8325
+#: fortran/decl.c:2403 fortran/decl.c:8866
#, gcc-internal-format, gfc-internal-format
msgid "Expected an initialization expression at %C"
msgstr ""
-#: fortran/decl.c:2205
+#: fortran/decl.c:2410
#, gcc-internal-format, gfc-internal-format
msgid "Initialization of variable at %C is not allowed in a PURE procedure"
msgstr ""
-#: fortran/decl.c:2222
+#: fortran/decl.c:2427
#, gcc-internal-format, gfc-internal-format
msgid "Initialization of allocatable component at %C is not allowed"
msgstr ""
-#: fortran/decl.c:2276 fortran/decl.c:2312
+#: fortran/decl.c:2487 fortran/decl.c:2523
#, gcc-internal-format, gfc-internal-format
msgid "Old-style type declaration %s*%d not supported at %C"
msgstr ""
-#: fortran/decl.c:2318
+#: fortran/decl.c:2529
#, gcc-internal-format, gfc-internal-format
msgid "Nonstandard type declaration %s*%d at %C"
msgstr ""
-#: fortran/decl.c:2369 fortran/decl.c:2445
+#: fortran/decl.c:2580 fortran/decl.c:2656
#, gcc-internal-format, gfc-internal-format
msgid "Missing right parenthesis at %C"
msgstr ""
-#: fortran/decl.c:2382 fortran/decl.c:2516
+#: fortran/decl.c:2593 fortran/decl.c:2727
#, gcc-internal-format, gfc-internal-format
msgid "Expected initialization expression at %C"
msgstr ""
-#: fortran/decl.c:2390 fortran/decl.c:2522
+#: fortran/decl.c:2601 fortran/decl.c:2733
#, gcc-internal-format, gfc-internal-format
msgid "Expected scalar initialization expression at %C"
msgstr ""
-#: fortran/decl.c:2421
+#: fortran/decl.c:2632
#, gcc-internal-format, gfc-internal-format
msgid "Kind %d not supported for type %s at %C"
msgstr ""
-#: fortran/decl.c:2434
+#: fortran/decl.c:2645
#, gcc-internal-format, gfc-internal-format
msgid "C kind type parameter is for type %s but type at %L is %s"
msgstr ""
-#: fortran/decl.c:2443
+#: fortran/decl.c:2654
#, gcc-internal-format, gfc-internal-format
msgid "Missing right parenthesis or comma at %C"
msgstr ""
-#: fortran/decl.c:2542
+#: fortran/decl.c:2753
#, gcc-internal-format, gfc-internal-format
msgid "Kind %d is not supported for CHARACTER at %C"
msgstr ""
-#: fortran/decl.c:2674
+#: fortran/decl.c:2885
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in CHARACTER declaration at %C"
msgstr ""
-#: fortran/decl.c:2759
+#: fortran/decl.c:2951
+#, gcc-internal-format, gfc-internal-format
+msgid "RECORD at %C is an extension, enable it with -fdec-structure"
+msgstr ""
+
+#: fortran/decl.c:2957
+#, gcc-internal-format, gfc-internal-format
+msgid "Structure name expected after RECORD at %C"
+msgstr ""
+
+#: fortran/decl.c:3000
#, gcc-internal-format, gfc-internal-format
msgid "BYTE type at %C"
msgstr ""
-#: fortran/decl.c:2764
+#: fortran/decl.c:3005
#, gcc-internal-format, gfc-internal-format
msgid "BYTE type used at %C is not available on the target machine"
msgstr ""
-#: fortran/decl.c:2786
+#: fortran/decl.c:3027
#, gcc-internal-format, gfc-internal-format
msgid "Assumed type at %C is not allowed for components"
msgstr ""
-#: fortran/decl.c:2789
+#: fortran/decl.c:3030
#, gcc-internal-format, gfc-internal-format
msgid "Assumed type at %C"
msgstr ""
-#: fortran/decl.c:2812 fortran/decl.c:2843 fortran/decl.c:2872
-#: fortran/decl.c:3051
+#: fortran/decl.c:3053 fortran/decl.c:3084 fortran/decl.c:3113
+#: fortran/decl.c:3331
#, gcc-internal-format, gfc-internal-format
msgid "TYPE with intrinsic-type-spec at %C"
msgstr ""
-#: fortran/decl.c:2868
+#: fortran/decl.c:3109
#, gcc-internal-format, gfc-internal-format
msgid "DOUBLE COMPLEX at %C"
msgstr ""
-#: fortran/decl.c:2942
+#: fortran/decl.c:3146
+#, gcc-internal-format, gfc-internal-format
+msgid "Type name '%s' at %C is ambiguous"
+msgstr ""
+
+#: fortran/decl.c:3224
#, gcc-internal-format, gfc-internal-format
msgid "CLASS statement at %C"
msgstr ""
-#: fortran/decl.c:2977 fortran/decl.c:2990 fortran/decl.c:3446
-#: fortran/decl.c:3454
+#: fortran/decl.c:3257 fortran/decl.c:3270 fortran/decl.c:3726
+#: fortran/decl.c:3734
#, gcc-internal-format
msgid "Type name %qs at %C is ambiguous"
msgstr ""
-#: fortran/decl.c:3005
+#: fortran/decl.c:3285
#, gcc-internal-format
msgid ""
"Type name %qs at %C conflicts with previously declared entity at %L, which "
"has the same name"
msgstr ""
-#: fortran/decl.c:3122
+#: fortran/decl.c:3402
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate IMPLICIT NONE statement at %C"
msgstr ""
-#: fortran/decl.c:3131
+#: fortran/decl.c:3411
#, gcc-internal-format, gfc-internal-format
msgid "IMPORT NONE with spec list at %C"
msgstr ""
-#: fortran/decl.c:3190
+#: fortran/decl.c:3470
#, gcc-internal-format, gfc-internal-format
msgid "Missing character range in IMPLICIT at %C"
msgstr ""
-#: fortran/decl.c:3236
+#: fortran/decl.c:3516
#, gcc-internal-format, gfc-internal-format
msgid "Letters must be in alphabetic order in IMPLICIT statement at %C"
msgstr ""
-#: fortran/decl.c:3289
+#: fortran/decl.c:3569
#, gcc-internal-format, gfc-internal-format
msgid "IMPLICIT statement at %C following an IMPLICIT NONE (type) statement"
msgstr ""
-#: fortran/decl.c:3299
+#: fortran/decl.c:3579
#, gcc-internal-format, gfc-internal-format
msgid "Empty IMPLICIT statement at %C"
msgstr ""
-#: fortran/decl.c:3405
+#: fortran/decl.c:3685
#, gcc-internal-format, gfc-internal-format
msgid "IMPORT statement at %C only permitted in an INTERFACE body"
msgstr ""
-#: fortran/decl.c:3412
+#: fortran/decl.c:3692
#, gcc-internal-format, gfc-internal-format
msgid ""
"F2008: C1210 IMPORT statement at %C is not permitted in a module procedure "
"interface body"
msgstr ""
-#: fortran/decl.c:3417
+#: fortran/decl.c:3697
#, gcc-internal-format, gfc-internal-format
msgid "IMPORT statement at %C"
msgstr ""
-#: fortran/decl.c:3431
+#: fortran/decl.c:3711
#, gcc-internal-format, gfc-internal-format
msgid "Expecting list of named entities at %C"
msgstr ""
-#: fortran/decl.c:3460
+#: fortran/decl.c:3740
#, gcc-internal-format
msgid "Cannot IMPORT %qs from host scoping unit at %C - does not exist."
msgstr ""
-#: fortran/decl.c:3467
+#: fortran/decl.c:3747
#, gcc-internal-format
msgid "%qs is already IMPORTed from host scoping unit at %C"
msgstr ""
-#: fortran/decl.c:3510
+#: fortran/decl.c:3788
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in IMPORT statement at %C"
msgstr ""
-#: fortran/decl.c:3809
+#: fortran/decl.c:4087
#, gcc-internal-format, gfc-internal-format
msgid "Missing codimension specification at %C"
msgstr ""
-#: fortran/decl.c:3811
+#: fortran/decl.c:4089
#, gcc-internal-format, gfc-internal-format
msgid "Missing dimension specification at %C"
msgstr ""
-#: fortran/decl.c:3894
+#: fortran/decl.c:4172
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate %s attribute at %L"
msgstr ""
-#: fortran/decl.c:3913
+#: fortran/decl.c:4191
#, gcc-internal-format, gfc-internal-format
msgid "ALLOCATABLE attribute at %C in a TYPE definition"
msgstr ""
-#: fortran/decl.c:3922
+#: fortran/decl.c:4200
#, gcc-internal-format, gfc-internal-format
msgid "Attribute at %L is not allowed in a TYPE definition"
msgstr ""
-#: fortran/decl.c:3940
+#: fortran/decl.c:4218
#, gcc-internal-format, gfc-internal-format
msgid "Attribute %s at %L in a TYPE definition"
msgstr ""
-#: fortran/decl.c:3950
+#: fortran/decl.c:4228
#, gcc-internal-format, gfc-internal-format
msgid ""
"%s attribute at %L is not allowed outside of the specification part of a "
"module"
msgstr ""
-#: fortran/decl.c:3964
+#: fortran/decl.c:4242
#, gcc-internal-format, gfc-internal-format
msgid "ASYNCHRONOUS attribute at %C"
msgstr ""
-#: fortran/decl.c:3975
+#: fortran/decl.c:4253
#, gcc-internal-format, gfc-internal-format
msgid "CONTIGUOUS attribute at %C"
msgstr ""
-#: fortran/decl.c:4022 fortran/decl.c:7246
+#: fortran/decl.c:4300 fortran/decl.c:7587
#, gcc-internal-format, gfc-internal-format
msgid "PROTECTED at %C only allowed in specification part of a module"
msgstr ""
-#: fortran/decl.c:4028
+#: fortran/decl.c:4306
#, gcc-internal-format, gfc-internal-format
msgid "PROTECTED attribute at %C"
msgstr ""
-#: fortran/decl.c:4057
+#: fortran/decl.c:4335
#, gcc-internal-format, gfc-internal-format
msgid "VALUE attribute at %C"
msgstr ""
-#: fortran/decl.c:4064
+#: fortran/decl.c:4342
#, gcc-internal-format, gfc-internal-format
msgid "VOLATILE attribute at %C"
msgstr ""
-#: fortran/decl.c:4071
+#: fortran/decl.c:4349
#, gcc-internal-format
msgid "match_attr_spec(): Bad attribute"
msgstr ""
-#: fortran/decl.c:4111
+#: fortran/decl.c:4389
#, gcc-internal-format, gfc-internal-format
msgid "Multiple identifiers provided with single NAME= specifier at %C"
msgstr ""
-#: fortran/decl.c:4209
+#: fortran/decl.c:4487
#, gcc-internal-format
msgid ""
"Implicitly declared BIND(C) function %qs at %L may not be C interoperable"
msgstr ""
-#: fortran/decl.c:4231
+#: fortran/decl.c:4509
#, gcc-internal-format
msgid ""
"Variable %qs in common block %qs at %L may not be a C interoperable kind "
"though common block %qs is BIND(C)"
msgstr ""
-#: fortran/decl.c:4240
+#: fortran/decl.c:4518
#, gcc-internal-format
msgid "Type declaration %qs at %L is not C interoperable but it is BIND(C)"
msgstr ""
-#: fortran/decl.c:4244
+#: fortran/decl.c:4522
#, gcc-internal-format
msgid "Variable %qs at %L may not be a C interoperable kind but it is BIND(C)"
msgstr ""
-#: fortran/decl.c:4256
+#: fortran/decl.c:4534
#, gcc-internal-format
msgid ""
"Variable %qs in common block %qs at %L cannot be declared with BIND(C) since "
"it is not a global"
msgstr ""
-#: fortran/decl.c:4270
+#: fortran/decl.c:4548
#, gcc-internal-format
msgid "Variable %qs at %L cannot have both the POINTER and BIND(C) attributes"
msgstr ""
-#: fortran/decl.c:4278
+#: fortran/decl.c:4556
#, gcc-internal-format
msgid ""
"Variable %qs at %L cannot have both the ALLOCATABLE and BIND(C) attributes"
msgstr ""
-#: fortran/decl.c:4290
+#: fortran/decl.c:4568
#, gcc-internal-format
msgid "Return type of BIND(C) function %qs at %L cannot be an array"
msgstr ""
-#: fortran/decl.c:4298
+#: fortran/decl.c:4576
#, gcc-internal-format
msgid "Return type of BIND(C) function %qs at %L cannot be a character string"
msgstr ""
#. Use gfc_warning_now because we won't say that the symbol fails
#. just because of this.
-#: fortran/decl.c:4309
+#: fortran/decl.c:4587
#, gcc-internal-format
msgid ""
"Symbol %qs at %L is marked PRIVATE but has been given the binding label %qs"
msgstr ""
-#: fortran/decl.c:4383
+#: fortran/decl.c:4661
#, gcc-internal-format, gfc-internal-format
msgid ""
"Need either entity or common block name for attribute specification "
"statement at %C"
msgstr ""
-#: fortran/decl.c:4428
+#: fortran/decl.c:4706
#, gcc-internal-format, gfc-internal-format
msgid ""
"Missing entity or common block name for attribute specification statement at "
"%C"
msgstr ""
-#: fortran/decl.c:4435
+#: fortran/decl.c:4713
#, gcc-internal-format
msgid "Missing symbol"
msgstr ""
-#: fortran/decl.c:4464
+#: fortran/decl.c:4742
#, gcc-internal-format, gfc-internal-format
msgid "BIND(C) statement at %C"
msgstr ""
-#: fortran/decl.c:4542
+#: fortran/decl.c:4822
#, gcc-internal-format, gfc-internal-format
msgid ""
"Derived type at %C has not been previously defined and so cannot appear in a "
"derived type definition"
msgstr ""
-#: fortran/decl.c:4574
+#: fortran/decl.c:4854
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in data declaration at %C"
msgstr ""
-#: fortran/decl.c:4615
+#: fortran/decl.c:4895
#, gcc-internal-format, gfc-internal-format
msgid "MODULE prefix at %C"
msgstr ""
-#: fortran/decl.c:4660
+#: fortran/decl.c:4940
#, gcc-internal-format, gfc-internal-format
msgid "IMPURE procedure at %C"
msgstr ""
-#: fortran/decl.c:4672
+#: fortran/decl.c:4952
#, gcc-internal-format, gfc-internal-format
msgid "PURE and IMPURE must not appear both at %C"
msgstr ""
-#: fortran/decl.c:4756 fortran/primary.c:1779
+#: fortran/decl.c:4998
+#, gcc-internal-format, gfc-internal-format
+msgid "ELEMENTAL prefix in MODULE PROCEDURE interface is missing at %L"
+msgstr ""
+
+#: fortran/decl.c:5005
+#, gcc-internal-format, gfc-internal-format
+msgid "PURE prefix in MODULE PROCEDURE interface is missing at %L"
+msgstr ""
+
+#: fortran/decl.c:5012
+#, gcc-internal-format, gfc-internal-format
+msgid "RECURSIVE prefix in MODULE PROCEDURE interface is missing at %L"
+msgstr ""
+
+#: fortran/decl.c:5075 fortran/primary.c:1779
#, gcc-internal-format, gfc-internal-format
msgid "Alternate-return argument at %C"
msgstr ""
-#: fortran/decl.c:4802
+#: fortran/decl.c:5121
#, gcc-internal-format
msgid "Name %qs at %C is the name of the procedure"
msgstr ""
-#: fortran/decl.c:4814
+#: fortran/decl.c:5133
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk in formal argument list at %C"
msgstr ""
-#: fortran/decl.c:4831
+#: fortran/decl.c:5150
#, gcc-internal-format
msgid "Duplicate symbol %qs in formal argument list at %C"
msgstr ""
-#: fortran/decl.c:4870
+#: fortran/decl.c:5189
#, gcc-internal-format, gfc-internal-format
msgid "Mismatch in MODULE PROCEDURE formal argument names (%s/%s) at %C"
msgstr ""
-#: fortran/decl.c:4876
+#: fortran/decl.c:5195
#, gcc-internal-format, gfc-internal-format
msgid "Mismatch in number of MODULE PROCEDURE formal arguments at %C"
msgstr ""
-#: fortran/decl.c:4915
+#: fortran/decl.c:5234
#, gcc-internal-format, gfc-internal-format
msgid "RESULT variable at %C must be different than function name"
msgstr ""
-#: fortran/decl.c:4992
+#: fortran/decl.c:5311
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after function declaration at %C"
msgstr ""
-#: fortran/decl.c:5002 fortran/decl.c:6095
+#: fortran/decl.c:5321 fortran/decl.c:6418
#, gcc-internal-format, gfc-internal-format
msgid "BIND(C) attribute at %L may not be specified for an internal procedure"
msgstr ""
-#: fortran/decl.c:5204
+#: fortran/decl.c:5523
#, gcc-internal-format, gfc-internal-format
msgid "BIND(C) attribute at %C requires an interface with BIND(C)"
msgstr ""
-#: fortran/decl.c:5211
+#: fortran/decl.c:5530
#, gcc-internal-format, gfc-internal-format
msgid "BIND(C) procedure with NAME may not have POINTER attribute at %C"
msgstr ""
-#: fortran/decl.c:5217
+#: fortran/decl.c:5536
#, gcc-internal-format, gfc-internal-format
msgid "Dummy procedure at %C may not have BIND(C) attribute with NAME"
msgstr ""
-#: fortran/decl.c:5240
+#: fortran/decl.c:5559
#, gcc-internal-format
msgid "Procedure %qs at %L already has basic type of %s"
msgstr ""
-#: fortran/decl.c:5286 fortran/decl.c:5474 fortran/decl.c:8806
+#: fortran/decl.c:5605 fortran/decl.c:5793 fortran/decl.c:9347
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in PROCEDURE statement at %C"
msgstr ""
-#: fortran/decl.c:5335 fortran/decl.c:8708
+#: fortran/decl.c:5654 fortran/decl.c:9249
#, gcc-internal-format
msgid "Expected %<::%> after binding-attributes at %C"
msgstr ""
-#: fortran/decl.c:5342
+#: fortran/decl.c:5661
#, gcc-internal-format, gfc-internal-format
msgid "NOPASS or explicit interface required at %C"
msgstr ""
-#: fortran/decl.c:5346
+#: fortran/decl.c:5665
#, gcc-internal-format, gfc-internal-format
msgid "Procedure pointer component at %C"
msgstr ""
-#: fortran/decl.c:5418
+#: fortran/decl.c:5737
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in procedure pointer component at %C"
msgstr ""
-#: fortran/decl.c:5436
+#: fortran/decl.c:5755
#, gcc-internal-format, gfc-internal-format
msgid "PROCEDURE at %C must be in a generic interface"
msgstr ""
-#: fortran/decl.c:5445 fortran/decl.c:7837
+#: fortran/decl.c:5764 fortran/decl.c:8178
#, gcc-internal-format, gfc-internal-format
msgid "double colon in MODULE PROCEDURE statement at %L"
msgstr ""
-#: fortran/decl.c:5515
+#: fortran/decl.c:5834
#, gcc-internal-format, gfc-internal-format
msgid "PROCEDURE statement at %C"
msgstr ""
-#: fortran/decl.c:5587
+#: fortran/decl.c:5906
#, gcc-internal-format, gfc-internal-format
msgid "Expected formal argument list in function definition at %C"
msgstr ""
-#: fortran/decl.c:5611 fortran/decl.c:5615 fortran/decl.c:5867
-#: fortran/decl.c:5871 fortran/decl.c:6063 fortran/decl.c:6067
-#: fortran/symbol.c:1712
+#: fortran/decl.c:5930 fortran/decl.c:5934 fortran/decl.c:6190
+#: fortran/decl.c:6194 fortran/decl.c:6386 fortran/decl.c:6390
+#: fortran/symbol.c:1713
#, gcc-internal-format, gfc-internal-format
msgid "BIND(C) attribute at %L can only be used for variables or common blocks"
msgstr ""
-#: fortran/decl.c:5769
+#: fortran/decl.c:6088
#, gcc-internal-format, gfc-internal-format
msgid "ENTRY statement at %C"
msgstr ""
-#: fortran/decl.c:5778
+#: fortran/decl.c:6097
#, gcc-internal-format, gfc-internal-format
msgid "ENTRY statement at %C cannot appear within a PROGRAM"
msgstr ""
-#: fortran/decl.c:5781
+#: fortran/decl.c:6100
#, gcc-internal-format, gfc-internal-format
msgid "ENTRY statement at %C cannot appear within a MODULE"
msgstr ""
-#: fortran/decl.c:5784
+#: fortran/decl.c:6103
#, gcc-internal-format, gfc-internal-format
msgid "ENTRY statement at %C cannot appear within a SUBMODULE"
msgstr ""
-#: fortran/decl.c:5787
+#: fortran/decl.c:6106
#, gcc-internal-format, gfc-internal-format
msgid "ENTRY statement at %C cannot appear within a BLOCK DATA"
msgstr ""
-#: fortran/decl.c:5791 fortran/decl.c:5832
+#: fortran/decl.c:6110 fortran/decl.c:6155
#, gcc-internal-format, gfc-internal-format
msgid "ENTRY statement at %C cannot appear within an INTERFACE"
msgstr ""
-#: fortran/decl.c:5795
+#: fortran/decl.c:6114
+#, gcc-internal-format, gfc-internal-format
+msgid "ENTRY statement at %C cannot appear within a STRUCTURE block"
+msgstr ""
+
+#: fortran/decl.c:6118
#, gcc-internal-format, gfc-internal-format
msgid "ENTRY statement at %C cannot appear within a DERIVED TYPE block"
msgstr ""
-#: fortran/decl.c:5799
+#: fortran/decl.c:6122
#, gcc-internal-format, gfc-internal-format
msgid "ENTRY statement at %C cannot appear within an IF-THEN block"
msgstr ""
-#: fortran/decl.c:5804
+#: fortran/decl.c:6127
#, gcc-internal-format, gfc-internal-format
msgid "ENTRY statement at %C cannot appear within a DO block"
msgstr ""
-#: fortran/decl.c:5808
+#: fortran/decl.c:6131
#, gcc-internal-format, gfc-internal-format
msgid "ENTRY statement at %C cannot appear within a SELECT block"
msgstr ""
-#: fortran/decl.c:5812
+#: fortran/decl.c:6135
#, gcc-internal-format, gfc-internal-format
msgid "ENTRY statement at %C cannot appear within a FORALL block"
msgstr ""
-#: fortran/decl.c:5816
+#: fortran/decl.c:6139
#, gcc-internal-format, gfc-internal-format
msgid "ENTRY statement at %C cannot appear within a WHERE block"
msgstr ""
-#: fortran/decl.c:5820
+#: fortran/decl.c:6143
#, gcc-internal-format, gfc-internal-format
msgid "ENTRY statement at %C cannot appear within a contained subprogram"
msgstr ""
-#: fortran/decl.c:5824
+#: fortran/decl.c:6147
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected ENTRY statement at %C"
msgstr ""
-#: fortran/decl.c:5845
+#: fortran/decl.c:6168
#, gcc-internal-format, gfc-internal-format
msgid "ENTRY statement at %C cannot appear in a contained procedure"
msgstr ""
-#: fortran/decl.c:5896 fortran/decl.c:6102
+#: fortran/decl.c:6219 fortran/decl.c:6425
#, gcc-internal-format, gfc-internal-format
msgid "Missing required parentheses before BIND(C) at %C"
msgstr ""
-#: fortran/decl.c:6164 fortran/decl.c:6171
+#: fortran/decl.c:6487 fortran/decl.c:6494
#, gcc-internal-format, gfc-internal-format
msgid "Invalid C identifier in NAME= specifier at %C"
msgstr ""
-#: fortran/decl.c:6211
+#: fortran/decl.c:6534
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in NAME= specifier for binding label at %C"
msgstr ""
-#: fortran/decl.c:6227
+#: fortran/decl.c:6550
#, gcc-internal-format, gfc-internal-format
msgid "NAME= specifier at %C should be a constant expression"
msgstr ""
-#: fortran/decl.c:6235
+#: fortran/decl.c:6558
#, gcc-internal-format, gfc-internal-format
msgid "NAME= specifier at %C should be a scalar of default character kind"
msgstr ""
-#: fortran/decl.c:6254
+#: fortran/decl.c:6577
#, gcc-internal-format, gfc-internal-format
msgid "Missing closing paren for binding label at %C"
msgstr ""
-#: fortran/decl.c:6260
+#: fortran/decl.c:6583
#, gcc-internal-format, gfc-internal-format
msgid "No binding name is allowed in BIND(C) at %C"
msgstr ""
-#: fortran/decl.c:6266
+#: fortran/decl.c:6589
#, gcc-internal-format, gfc-internal-format
msgid "For dummy procedure %s, no binding name is allowed in BIND(C) at %C"
msgstr ""
-#: fortran/decl.c:6295
+#: fortran/decl.c:6618
#, gcc-internal-format, gfc-internal-format
msgid "NAME not allowed on BIND(C) for ABSTRACT INTERFACE at %C"
msgstr ""
-#: fortran/decl.c:6520
+#: fortran/decl.c:6861
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected END statement at %C"
msgstr ""
-#: fortran/decl.c:6529
+#: fortran/decl.c:6870
#, gcc-internal-format, gfc-internal-format
msgid "END statement instead of %s statement at %L"
msgstr ""
#. We would have required END [something].
-#: fortran/decl.c:6538
+#: fortran/decl.c:6879
#, gcc-internal-format, gfc-internal-format
msgid "%s statement expected at %L"
msgstr ""
-#: fortran/decl.c:6549
+#: fortran/decl.c:6890
#, gcc-internal-format, gfc-internal-format
msgid "Expecting %s statement at %L"
msgstr ""
-#: fortran/decl.c:6569
+#: fortran/decl.c:6910
#, gcc-internal-format
msgid "Expected block name of %qs in %s statement at %L"
msgstr ""
-#: fortran/decl.c:6586
+#: fortran/decl.c:6927
#, gcc-internal-format, gfc-internal-format
msgid "Expected terminating name at %C"
msgstr ""
-#: fortran/decl.c:6600 fortran/decl.c:6608
+#: fortran/decl.c:6941 fortran/decl.c:6949
#, gcc-internal-format
msgid "Expected label %qs for %s statement at %C"
msgstr ""
-#: fortran/decl.c:6707
+#: fortran/decl.c:7048
#, gcc-internal-format, gfc-internal-format
msgid "Missing array specification at %L in DIMENSION statement"
msgstr ""
-#: fortran/decl.c:6715
+#: fortran/decl.c:7056
#, gcc-internal-format, gfc-internal-format
msgid "Dimensions specified for %s at %L after its initialisation"
msgstr ""
-#: fortran/decl.c:6723
+#: fortran/decl.c:7064
#, gcc-internal-format, gfc-internal-format
msgid "Missing array specification at %L in CODIMENSION statement"
msgstr ""
-#: fortran/decl.c:6732
+#: fortran/decl.c:7073
#, gcc-internal-format, gfc-internal-format
msgid "Array specification must be deferred at %L"
msgstr ""
-#: fortran/decl.c:6830
+#: fortran/decl.c:7171
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected character in variable list at %C"
msgstr ""
-#: fortran/decl.c:6867
+#: fortran/decl.c:7208
#, gcc-internal-format
msgid "Expected %<(%> at %C"
msgstr ""
-#: fortran/decl.c:6881 fortran/decl.c:6921
+#: fortran/decl.c:7222 fortran/decl.c:7262
#, gcc-internal-format, gfc-internal-format
msgid "Expected variable name at %C"
msgstr ""
-#: fortran/decl.c:6897
+#: fortran/decl.c:7238
#, gcc-internal-format, gfc-internal-format
msgid "Cray pointer at %C must be an integer"
msgstr ""
-#: fortran/decl.c:6901
+#: fortran/decl.c:7242
#, gcc-internal-format, gfc-internal-format
msgid ""
"Cray pointer at %C has %d bytes of precision; memory addresses require %d "
"bytes"
msgstr ""
-#: fortran/decl.c:6907
+#: fortran/decl.c:7248
#, gcc-internal-format, gfc-internal-format
msgid "Expected \",\" at %C"
msgstr ""
-#: fortran/decl.c:6946
+#: fortran/decl.c:7287
#, gcc-internal-format
msgid "Couldn't set Cray pointee array spec."
msgstr ""
-#: fortran/decl.c:6970
+#: fortran/decl.c:7311
#, gcc-internal-format, gfc-internal-format
msgid "Expected \")\" at %C"
msgstr ""
-#: fortran/decl.c:6982
+#: fortran/decl.c:7323
#, gcc-internal-format
msgid "Expected %<,%> or end of statement at %C"
msgstr ""
-#: fortran/decl.c:7008
+#: fortran/decl.c:7349
#, gcc-internal-format, gfc-internal-format
msgid "INTENT is not allowed inside of BLOCK at %C"
msgstr ""
-#: fortran/decl.c:7040
+#: fortran/decl.c:7381
#, gcc-internal-format, gfc-internal-format
msgid "OPTIONAL is not allowed inside of BLOCK at %C"
msgstr ""
-#: fortran/decl.c:7059
+#: fortran/decl.c:7400
#, gcc-internal-format, gfc-internal-format
msgid "Cray pointer declaration at %C requires -fcray-pointer flag"
msgstr ""
-#: fortran/decl.c:7098
+#: fortran/decl.c:7439
#, gcc-internal-format, gfc-internal-format
msgid "CONTIGUOUS statement at %C"
msgstr ""
-#: fortran/decl.c:7196
+#: fortran/decl.c:7537
#, gcc-internal-format, gfc-internal-format
msgid ""
"Access specification of the %s operator at %C has already been specified"
msgstr ""
-#: fortran/decl.c:7213
+#: fortran/decl.c:7554
#, gcc-internal-format, gfc-internal-format
msgid ""
"Access specification of the .%s. operator at %C has already been specified"
msgstr ""
-#: fortran/decl.c:7252
+#: fortran/decl.c:7593
#, gcc-internal-format, gfc-internal-format
msgid "PROTECTED statement at %C"
msgstr ""
-#: fortran/decl.c:7290
+#: fortran/decl.c:7631
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in PROTECTED statement at %C"
msgstr ""
-#: fortran/decl.c:7314
+#: fortran/decl.c:7655
#, gcc-internal-format, gfc-internal-format
msgid ""
"PRIVATE statement at %C is only allowed in the specification part of a module"
msgstr ""
-#: fortran/decl.c:7351
+#: fortran/decl.c:7692
#, gcc-internal-format, gfc-internal-format
msgid ""
"PUBLIC statement at %C is only allowed in the specification part of a module"
msgstr ""
-#: fortran/decl.c:7379
+#: fortran/decl.c:7720
#, gcc-internal-format, gfc-internal-format
msgid "Expected variable name at %C in PARAMETER statement"
msgstr ""
-#: fortran/decl.c:7386
+#: fortran/decl.c:7727
#, gcc-internal-format, gfc-internal-format
msgid "Expected = sign in PARAMETER statement at %C"
msgstr ""
-#: fortran/decl.c:7392
+#: fortran/decl.c:7733
#, gcc-internal-format, gfc-internal-format
msgid "Expected expression at %C in PARAMETER statement"
msgstr ""
-#: fortran/decl.c:7412
+#: fortran/decl.c:7753
#, gcc-internal-format, gfc-internal-format
msgid "Initializing already initialized variable at %C"
msgstr ""
-#: fortran/decl.c:7447
+#: fortran/decl.c:7788
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected characters in PARAMETER statement at %C"
msgstr ""
-#: fortran/decl.c:7471
+#: fortran/decl.c:7812
#, gcc-internal-format, gfc-internal-format
msgid "Blanket SAVE statement at %C follows previous SAVE statement"
msgstr ""
-#: fortran/decl.c:7482
+#: fortran/decl.c:7823
#, gcc-internal-format, gfc-internal-format
msgid "SAVE statement at %C follows blanket SAVE statement"
msgstr ""
-#: fortran/decl.c:7528
+#: fortran/decl.c:7869
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in SAVE statement at %C"
msgstr ""
-#: fortran/decl.c:7542
+#: fortran/decl.c:7883
#, gcc-internal-format, gfc-internal-format
msgid "VALUE is not allowed inside of BLOCK at %C"
msgstr ""
-#: fortran/decl.c:7546
+#: fortran/decl.c:7887
#, gcc-internal-format, gfc-internal-format
msgid "VALUE statement at %C"
msgstr ""
-#: fortran/decl.c:7584
+#: fortran/decl.c:7925
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in VALUE statement at %C"
msgstr ""
-#: fortran/decl.c:7595
+#: fortran/decl.c:7936
#, gcc-internal-format, gfc-internal-format
msgid "VOLATILE statement at %C"
msgstr ""
-#: fortran/decl.c:7618
+#: fortran/decl.c:7959
#, gcc-internal-format
msgid ""
"Specifying VOLATILE for coarray variable %qs at %C, which is use-/host-"
"associated"
msgstr ""
-#: fortran/decl.c:7643
+#: fortran/decl.c:7984
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in VOLATILE statement at %C"
msgstr ""
-#: fortran/decl.c:7654
+#: fortran/decl.c:7995
#, gcc-internal-format, gfc-internal-format
msgid "ASYNCHRONOUS statement at %C"
msgstr ""
-#: fortran/decl.c:7694
+#: fortran/decl.c:8035
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in ASYNCHRONOUS statement at %C"
msgstr ""
-#: fortran/decl.c:7719
+#: fortran/decl.c:8060
#, gcc-internal-format, gfc-internal-format
msgid "MODULE PROCEDURE declaration at %C"
msgstr ""
-#: fortran/decl.c:7812
+#: fortran/decl.c:8153
#, gcc-internal-format, gfc-internal-format
msgid "MODULE PROCEDURE at %C must be in a generic module interface"
msgstr ""
-#: fortran/decl.c:7870
+#: fortran/decl.c:8211
#, gcc-internal-format, gfc-internal-format
msgid "Intrinsic procedure at %L cannot be a MODULE PROCEDURE"
msgstr ""
-#: fortran/decl.c:7919
+#: fortran/decl.c:8260
#, gcc-internal-format, gfc-internal-format
msgid "Ambiguous symbol in TYPE definition at %C"
msgstr ""
-#: fortran/decl.c:7928
+#: fortran/decl.c:8269
#, gcc-internal-format
msgid "Symbol %qs at %C has not been previously defined"
msgstr ""
-#: fortran/decl.c:7934
+#: fortran/decl.c:8275
#, gcc-internal-format
msgid "%qs in EXTENDS expression at %C is not a derived type"
msgstr ""
-#: fortran/decl.c:7941
+#: fortran/decl.c:8282
#, gcc-internal-format
msgid "%qs cannot be extended at %C because it is BIND(C)"
msgstr ""
-#: fortran/decl.c:7948
+#: fortran/decl.c:8289
#, gcc-internal-format
msgid "%qs cannot be extended at %C because it is a SEQUENCE type"
msgstr ""
-#: fortran/decl.c:7971
+#: fortran/decl.c:8312
#, gcc-internal-format, gfc-internal-format
msgid ""
"Derived type at %C can only be PRIVATE in the specification part of a module"
msgstr ""
-#: fortran/decl.c:7983
+#: fortran/decl.c:8324
#, gcc-internal-format, gfc-internal-format
msgid ""
"Derived type at %C can only be PUBLIC in the specification part of a module"
msgstr ""
-#: fortran/decl.c:8004
+#: fortran/decl.c:8345
#, gcc-internal-format, gfc-internal-format
msgid "ABSTRACT type at %C"
msgstr ""
-#: fortran/decl.c:8068
+#: fortran/decl.c:8391
+#, gcc-internal-format, gfc-internal-format
+msgid "Failed to create structure type '%s' at %C"
+msgstr ""
+
+#: fortran/decl.c:8397
+#, gcc-internal-format, gfc-internal-format
+msgid "Type definition of '%s' at %C was already defined at %L"
+msgstr ""
+
+#: fortran/decl.c:8444
+#, gcc-internal-format, gfc-internal-format
+msgid "Junk after MAP statement at %C"
+msgstr ""
+
+#: fortran/decl.c:8477
+#, gcc-internal-format, gfc-internal-format
+msgid "Junk after UNION statement at %C"
+msgstr ""
+
+#: fortran/decl.c:8512
+#, gcc-internal-format, gfc-internal-format
+msgid "STRUCTURE at %C is a DEC extension, enable with -fdec-structure"
+msgstr ""
+
+#: fortran/decl.c:8525
+#, gcc-internal-format, gfc-internal-format
+msgid "Structure name expected in non-nested structure declaration at %C"
+msgstr ""
+
+#: fortran/decl.c:8543
+#, gcc-internal-format, gfc-internal-format
+msgid "Junk after non-nested STRUCTURE statement at %C"
+msgstr ""
+
+#: fortran/decl.c:8550
+#, gcc-internal-format, gfc-internal-format
+msgid "Structure name '%s' at %C cannot be the same as an intrinsic type"
+msgstr ""
+
+#: fortran/decl.c:8611
#, gcc-internal-format, gfc-internal-format
msgid "Expected :: in TYPE definition at %C"
msgstr ""
-#: fortran/decl.c:8079
+#: fortran/decl.c:8622
#, gcc-internal-format
msgid "Type name %qs at %C cannot be the same as an intrinsic type"
msgstr ""
-#: fortran/decl.c:8089
+#: fortran/decl.c:8632
#, gcc-internal-format
msgid "Derived type name %qs at %C already has a basic type of %s"
msgstr ""
-#: fortran/decl.c:8106
+#: fortran/decl.c:8649
#, gcc-internal-format
msgid "Derived type definition of %qs at %C has already been defined"
msgstr ""
-#: fortran/decl.c:8211
+#: fortran/decl.c:8752
#, gcc-internal-format, gfc-internal-format
msgid "Cray Pointee at %C cannot be assumed shape array"
msgstr ""
-#: fortran/decl.c:8231
+#: fortran/decl.c:8772
#, gcc-internal-format, gfc-internal-format
msgid "ENUM and ENUMERATOR at %C"
msgstr ""
-#: fortran/decl.c:8263
+#: fortran/decl.c:8804
#, gcc-internal-format, gfc-internal-format
msgid "Enumerator exceeds the C integer type at %C"
msgstr ""
-#: fortran/decl.c:8342
+#: fortran/decl.c:8883
#, gcc-internal-format, gfc-internal-format
msgid "ENUMERATOR %L not initialized with integer expression"
msgstr ""
-#: fortran/decl.c:8390
+#: fortran/decl.c:8931
#, gcc-internal-format, gfc-internal-format
msgid "ENUM definition statement expected before %C"
msgstr ""
-#: fortran/decl.c:8426
+#: fortran/decl.c:8967
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in ENUMERATOR definition at %C"
msgstr ""
-#: fortran/decl.c:8473 fortran/decl.c:8488
+#: fortran/decl.c:9014 fortran/decl.c:9029
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate access-specifier at %C"
msgstr ""
-#: fortran/decl.c:8508
+#: fortran/decl.c:9049
#, gcc-internal-format, gfc-internal-format
msgid "Binding attributes already specify passing, illegal NOPASS at %C"
msgstr ""
-#: fortran/decl.c:8528
+#: fortran/decl.c:9069
#, gcc-internal-format, gfc-internal-format
msgid "Binding attributes already specify passing, illegal PASS at %C"
msgstr ""
-#: fortran/decl.c:8555
+#: fortran/decl.c:9096
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate POINTER attribute at %C"
msgstr ""
-#: fortran/decl.c:8573
+#: fortran/decl.c:9114
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate NON_OVERRIDABLE at %C"
msgstr ""
-#: fortran/decl.c:8589
+#: fortran/decl.c:9130
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate DEFERRED at %C"
msgstr ""
-#: fortran/decl.c:8602
+#: fortran/decl.c:9143
#, gcc-internal-format, gfc-internal-format
msgid "Expected access-specifier at %C"
msgstr ""
-#: fortran/decl.c:8604
+#: fortran/decl.c:9145
#, gcc-internal-format, gfc-internal-format
msgid "Expected binding attribute at %C"
msgstr ""
-#: fortran/decl.c:8612
+#: fortran/decl.c:9153
#, gcc-internal-format, gfc-internal-format
msgid "NON_OVERRIDABLE and DEFERRED can't both appear at %C"
msgstr ""
-#: fortran/decl.c:8624
+#: fortran/decl.c:9165
#, gcc-internal-format, gfc-internal-format
msgid "POINTER attribute is required for procedure pointer component at %C"
msgstr ""
-#: fortran/decl.c:8666
+#: fortran/decl.c:9207
#, gcc-internal-format
msgid "Interface-name expected after %<(%> at %C"
msgstr ""
-#: fortran/decl.c:8672
+#: fortran/decl.c:9213
#, gcc-internal-format
msgid "%<)%> expected at %C"
msgstr ""
-#: fortran/decl.c:8692
+#: fortran/decl.c:9233
#, gcc-internal-format, gfc-internal-format
msgid "Interface must be specified for DEFERRED binding at %C"
msgstr ""
-#: fortran/decl.c:8697
+#: fortran/decl.c:9238
#, gcc-internal-format, gfc-internal-format
msgid "PROCEDURE(interface) at %C should be declared DEFERRED"
msgstr ""
-#: fortran/decl.c:8720
+#: fortran/decl.c:9261
#, gcc-internal-format, gfc-internal-format
msgid "Expected binding name at %C"
msgstr ""
-#: fortran/decl.c:8724
+#: fortran/decl.c:9265
#, gcc-internal-format, gfc-internal-format
msgid "PROCEDURE list at %C"
msgstr ""
-#: fortran/decl.c:8736
+#: fortran/decl.c:9277
#, gcc-internal-format
msgid "%<=> target%> is invalid for DEFERRED binding at %C"
msgstr ""
-#: fortran/decl.c:8742
+#: fortran/decl.c:9283
#, gcc-internal-format
msgid "%<::%> needed in PROCEDURE binding with explicit target at %C"
msgstr ""
-#: fortran/decl.c:8752
+#: fortran/decl.c:9293
#, gcc-internal-format
msgid "Expected binding target after %<=>%> at %C"
msgstr ""
-#: fortran/decl.c:8769
+#: fortran/decl.c:9310
#, gcc-internal-format
msgid "Type %qs containing DEFERRED binding at %C is not ABSTRACT"
msgstr ""
-#: fortran/decl.c:8780
+#: fortran/decl.c:9321
#, gcc-internal-format
msgid ""
"There is already a procedure with binding name %qs for the derived type %qs "
"at %C"
msgstr ""
-#: fortran/decl.c:8829
+#: fortran/decl.c:9370
#, gcc-internal-format, gfc-internal-format
msgid "GENERIC at %C must be inside a derived-type CONTAINS"
msgstr ""
-#: fortran/decl.c:8849
+#: fortran/decl.c:9390
#, gcc-internal-format
msgid "Expected %<::%> at %C"
msgstr ""
-#: fortran/decl.c:8861
+#: fortran/decl.c:9402
#, gcc-internal-format, gfc-internal-format
msgid "Expected generic name or operator descriptor at %C"
msgstr ""
-#: fortran/decl.c:8881
+#: fortran/decl.c:9422
#, gcc-internal-format, gfc-internal-format
msgid "Malformed GENERIC statement at %C"
msgstr ""
-#: fortran/decl.c:8892
+#: fortran/decl.c:9433
#, gcc-internal-format
msgid "Expected %<=>%> at %C"
msgstr ""
-#: fortran/decl.c:8934
+#: fortran/decl.c:9475
#, gcc-internal-format
msgid ""
"There's already a non-generic procedure with binding name %qs for the "
"derived type %qs at %C"
msgstr ""
-#: fortran/decl.c:8942
+#: fortran/decl.c:9483
#, gcc-internal-format
msgid "Binding at %C must have the same access as already defined binding %qs"
msgstr ""
-#: fortran/decl.c:8991
+#: fortran/decl.c:9532
#, gcc-internal-format, gfc-internal-format
msgid "Expected specific binding name at %C"
msgstr ""
-#: fortran/decl.c:9001
+#: fortran/decl.c:9542
#, gcc-internal-format
msgid "%qs already defined as specific binding for the generic %qs at %C"
msgstr ""
-#: fortran/decl.c:9019
+#: fortran/decl.c:9560
#, gcc-internal-format, gfc-internal-format
msgid "Junk after GENERIC binding at %C"
msgstr ""
-#: fortran/decl.c:9054
+#: fortran/decl.c:9595
#, gcc-internal-format, gfc-internal-format
msgid "FINAL declaration at %C must be inside a derived type CONTAINS section"
msgstr ""
-#: fortran/decl.c:9065
+#: fortran/decl.c:9606
#, gcc-internal-format, gfc-internal-format
msgid ""
"Derived type declaration with FINAL at %C must be in the specification part "
"of a MODULE"
msgstr ""
-#: fortran/decl.c:9087
+#: fortran/decl.c:9628
#, gcc-internal-format, gfc-internal-format
msgid "Empty FINAL at %C"
msgstr ""
-#: fortran/decl.c:9094
+#: fortran/decl.c:9635
#, gcc-internal-format, gfc-internal-format
msgid "Expected module procedure name at %C"
msgstr ""
-#: fortran/decl.c:9104
+#: fortran/decl.c:9645
#, gcc-internal-format
msgid "Expected %<,%> at %C"
msgstr ""
-#: fortran/decl.c:9110
+#: fortran/decl.c:9651
#, gcc-internal-format
msgid "Unknown procedure name %qs at %C"
msgstr ""
-#: fortran/decl.c:9123
+#: fortran/decl.c:9664
#, gcc-internal-format
msgid "%qs at %C is already defined as FINAL procedure!"
msgstr ""
-#: fortran/decl.c:9193
+#: fortran/decl.c:9734
#, gcc-internal-format, gfc-internal-format
msgid "Unknown attribute in !GCC$ ATTRIBUTES statement at %C"
msgstr ""
-#: fortran/decl.c:9239
+#: fortran/decl.c:9780
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in !GCC$ ATTRIBUTES statement at %C"
msgstr ""
"INTENT(%s) actual argument at %L might interfere with actual argument at %L."
msgstr ""
-#: fortran/dump-parse-tree.c:179
+#: fortran/dump-parse-tree.c:188
#, gcc-internal-format
msgid "show_array_spec(): Unhandled array shape type."
msgstr ""
-#: fortran/dump-parse-tree.c:258
+#: fortran/dump-parse-tree.c:267
#, gcc-internal-format
msgid "show_array_ref(): Unknown array reference"
msgstr ""
-#: fortran/dump-parse-tree.c:290
+#: fortran/dump-parse-tree.c:299
#, gcc-internal-format
msgid "show_ref(): Bad component code"
msgstr ""
-#: fortran/dump-parse-tree.c:554
+#: fortran/dump-parse-tree.c:563
#, gcc-internal-format
msgid "show_expr(): Bad intrinsic in expression!"
msgstr ""
-#: fortran/dump-parse-tree.c:597
+#: fortran/dump-parse-tree.c:606
#, gcc-internal-format
msgid "show_expr(): Don't know how to show expr"
msgstr ""
-#: fortran/dump-parse-tree.c:2532
+#: fortran/dump-parse-tree.c:2541
#, gcc-internal-format
msgid "show_code_node(): Bad statement code"
msgstr ""
-#: fortran/error.c:337
+#: fortran/error.c:335
#, gcc-internal-format, gfc-internal-format
msgid " Included at %s:%d:"
msgstr ""
-#: fortran/error.c:423
+#: fortran/error.c:421
#, gcc-internal-format
msgid "<During initialization>\n"
msgstr ""
msgid "Evaluation of nonstandard initialization expression at %L"
msgstr ""
-#: fortran/expr.c:2503 fortran/resolve.c:2569
+#: fortran/expr.c:2503 fortran/resolve.c:2575
#, gcc-internal-format
msgid ""
"Function %qs in initialization expression at %L must be an intrinsic function"
msgid "BOZ literal at %L used to initialize non-integer variable %qs"
msgstr ""
-#: fortran/expr.c:3252 fortran/resolve.c:9542
+#: fortran/expr.c:3252 fortran/resolve.c:9548
#, gcc-internal-format, gfc-internal-format
msgid ""
"BOZ literal at %L outside a DATA statement and outside INT/REAL/DBLE/CMPLX"
msgstr ""
-#: fortran/expr.c:3263 fortran/resolve.c:9553
+#: fortran/expr.c:3263 fortran/resolve.c:9559
#, gcc-internal-format
msgid "BOZ literal at %L is bitwise transferred non-integer symbol %qs"
msgstr ""
-#: fortran/expr.c:3271 fortran/resolve.c:9562
+#: fortran/expr.c:3271 fortran/resolve.c:9568
#, gcc-internal-format
msgid ""
"Arithmetic underflow of bit-wise transferred BOZ at %L. This check can be "
"disabled with the option %<-fno-range-check%>"
msgstr ""
-#: fortran/expr.c:3275 fortran/resolve.c:9566
+#: fortran/expr.c:3275 fortran/resolve.c:9572
#, gcc-internal-format
msgid ""
"Arithmetic overflow of bit-wise transferred BOZ at %L. This check can be "
"disabled with the option %<-fno-range-check%>"
msgstr ""
-#: fortran/expr.c:3279 fortran/resolve.c:9570
+#: fortran/expr.c:3279 fortran/resolve.c:9576
#, gcc-internal-format
msgid ""
"Arithmetic NaN of bit-wise transferred BOZ at %L. This check can be disabled "
"convention"
msgstr ""
-#: fortran/expr.c:3594 fortran/expr.c:3601 fortran/resolve.c:2448
+#: fortran/expr.c:3594 fortran/expr.c:3601 fortran/resolve.c:2454
#, gcc-internal-format
msgid "Explicit interface required for %qs at %L: %s"
msgstr ""
msgid "Pointer initialization target at %L must have the TARGET attribute"
msgstr ""
-#: fortran/expr.c:3899 fortran/resolve.c:1341
+#: fortran/expr.c:3899 fortran/resolve.c:1347
#, gcc-internal-format, gfc-internal-format
msgid "Pointer initialization target at %L must have the SAVE attribute"
msgstr ""
"Procedure pointer initialization target at %L may not be a procedure pointer"
msgstr ""
-#: fortran/expr.c:4800
+#: fortran/expr.c:4804
#, gcc-internal-format, gfc-internal-format
msgid ""
"Fortran 2008: Pointer functions in variable definition context (%s) at %L"
msgstr ""
-#: fortran/expr.c:4808
+#: fortran/expr.c:4812
#, gcc-internal-format, gfc-internal-format
msgid "Non-variable expression in variable definition context (%s) at %L"
msgstr ""
-#: fortran/expr.c:4816
+#: fortran/expr.c:4820
#, gcc-internal-format
msgid "Named constant %qs in variable definition context (%s) at %L"
msgstr ""
-#: fortran/expr.c:4825
+#: fortran/expr.c:4829
#, gcc-internal-format
msgid "%qs in variable definition context (%s) at %L is not a variable"
msgstr ""
-#: fortran/expr.c:4836
+#: fortran/expr.c:4840
#, gcc-internal-format, gfc-internal-format
msgid "Non-POINTER in pointer association context (%s) at %L"
msgstr ""
-#: fortran/expr.c:4845
+#: fortran/expr.c:4849
#, gcc-internal-format, gfc-internal-format
msgid "Type inaccessible in variable definition context (%s) at %L"
msgstr ""
-#: fortran/expr.c:4858
+#: fortran/expr.c:4862
#, gcc-internal-format, gfc-internal-format
msgid "LOCK_TYPE in variable definition context (%s) at %L"
msgstr ""
-#: fortran/expr.c:4871
+#: fortran/expr.c:4875
#, gcc-internal-format, gfc-internal-format
msgid "LOCK_EVENT in variable definition context (%s) at %L"
msgstr ""
-#: fortran/expr.c:4900
+#: fortran/expr.c:4904
#, gcc-internal-format
msgid ""
"Dummy argument %qs with INTENT(IN) in pointer association context (%s) at %L"
msgstr ""
-#: fortran/expr.c:4908
+#: fortran/expr.c:4912
#, gcc-internal-format
msgid ""
"Dummy argument %qs with INTENT(IN) in variable definition context (%s) at %L"
msgstr ""
-#: fortran/expr.c:4921
+#: fortran/expr.c:4925
#, gcc-internal-format
msgid ""
"Variable %qs is PROTECTED and can not appear in a pointer association "
"context (%s) at %L"
msgstr ""
-#: fortran/expr.c:4929
+#: fortran/expr.c:4933
#, gcc-internal-format
msgid ""
"Variable %qs is PROTECTED and can not appear in a variable definition "
"context (%s) at %L"
msgstr ""
-#: fortran/expr.c:4941
+#: fortran/expr.c:4945
#, gcc-internal-format
msgid ""
"Variable %qs can not appear in a variable definition context (%s) at %L in "
"PURE procedure"
msgstr ""
-#: fortran/expr.c:5000
+#: fortran/expr.c:5004
#, gcc-internal-format
msgid ""
"%qs at %L associated to vector-indexed target can not be used in a variable "
"definition context (%s)"
msgstr ""
-#: fortran/expr.c:5004
+#: fortran/expr.c:5008
#, gcc-internal-format
msgid ""
"%qs at %L associated to expression can not be used in a variable definition "
"context (%s)"
msgstr ""
-#: fortran/expr.c:5015
+#: fortran/expr.c:5019
#, gcc-internal-format
msgid ""
"Associate-name %qs can not appear in a variable definition context (%s) at "
"%L because its target at %L can not, either"
msgstr ""
-#: fortran/expr.c:5057
+#: fortran/expr.c:5061
#, gcc-internal-format, gfc-internal-format
msgid ""
"Elements with the same value at %L and %L in vector subscript in a variable "
msgid "can't open input file: %s"
msgstr ""
-#: fortran/frontend-passes.c:297
+#: fortran/frontend-passes.c:311
#, gcc-internal-format
msgid "Illegal id in copy_walk_reduction_arg"
msgstr ""
-#: fortran/frontend-passes.c:693 fortran/trans-array.c:1044
-#: fortran/trans-array.c:6167 fortran/trans-array.c:7518
+#: fortran/frontend-passes.c:711 fortran/trans-array.c:1044
+#: fortran/trans-array.c:6179 fortran/trans-array.c:7535
#: fortran/trans-intrinsic.c:6278
#, gcc-internal-format, gfc-internal-format
msgid "Creating array temporary at %L"
msgstr ""
-#: fortran/frontend-passes.c:717 fortran/frontend-passes.c:720
+#: fortran/frontend-passes.c:735 fortran/frontend-passes.c:738
#, gcc-internal-format
msgid "Removing call to function %qs at %L"
msgstr ""
-#: fortran/frontend-passes.c:1695
+#: fortran/frontend-passes.c:1718
#, gcc-internal-format
msgid "illegal OP in optimize_comparison"
msgstr ""
-#: fortran/frontend-passes.c:1887
+#: fortran/frontend-passes.c:1910
#, gcc-internal-format
msgid ""
"Variable %qs at %L set to undefined value inside loop beginning at %L as "
"INTENT(OUT) argument to subroutine %qs"
msgstr ""
-#: fortran/frontend-passes.c:1894
+#: fortran/frontend-passes.c:1917
#, gcc-internal-format
msgid ""
"Variable %qs at %L not definable inside loop beginning at %L as "
"INTENT(INOUT) argument to subroutine %qs"
msgstr ""
-#: fortran/frontend-passes.c:1959
+#: fortran/frontend-passes.c:1982
#, gcc-internal-format
msgid ""
"Variable %qs at %L set to undefined value inside loop beginning at %L as "
"INTENT(OUT) argument to function %qs"
msgstr ""
-#: fortran/frontend-passes.c:1965
+#: fortran/frontend-passes.c:1988
#, gcc-internal-format
msgid ""
"Variable %qs at %L not definable inside loop beginning at %L as "
"INTENT(INOUT) argument to function %qs"
msgstr ""
-#: fortran/frontend-passes.c:2213 fortran/trans-expr.c:1522
+#: fortran/frontend-passes.c:2236 fortran/trans-expr.c:1522
#, gcc-internal-format, gfc-internal-format
msgid "Code for reallocating the allocatable array at %L will be added"
msgstr ""
-#: fortran/frontend-passes.c:2692
+#: fortran/frontend-passes.c:2715
#, gcc-internal-format
msgid "Scalarization using DIMEN_RANGE unimplemented"
msgstr ""
msgid "Expecting %<END INTERFACE %s%> at %C"
msgstr ""
-#: fortran/interface.c:662
+#: fortran/interface.c:769
#, gcc-internal-format, gfc-internal-format
msgid "Alternate return cannot appear in operator interface at %L"
msgstr ""
-#: fortran/interface.c:691
+#: fortran/interface.c:798
#, gcc-internal-format, gfc-internal-format
msgid "Assignment operator interface at %L must have two arguments"
msgstr ""
-#: fortran/interface.c:694
+#: fortran/interface.c:801
#, gcc-internal-format, gfc-internal-format
msgid "Operator interface at %L has the wrong number of arguments"
msgstr ""
-#: fortran/interface.c:707
+#: fortran/interface.c:814
#, gcc-internal-format, gfc-internal-format
msgid "Assignment operator interface at %L must be a SUBROUTINE"
msgstr ""
-#: fortran/interface.c:725
+#: fortran/interface.c:832
#, gcc-internal-format, gfc-internal-format
msgid ""
"Assignment operator interface at %L must not redefine an INTRINSIC type "
"assignment"
msgstr ""
-#: fortran/interface.c:734
+#: fortran/interface.c:841
#, gcc-internal-format, gfc-internal-format
msgid "Intrinsic operator interface at %L must be a FUNCTION"
msgstr ""
-#: fortran/interface.c:745
+#: fortran/interface.c:852
#, gcc-internal-format, gfc-internal-format
msgid ""
"First argument of defined assignment at %L must be INTENT(OUT) or "
"INTENT(INOUT)"
msgstr ""
-#: fortran/interface.c:752
+#: fortran/interface.c:859
#, gcc-internal-format, gfc-internal-format
msgid "Second argument of defined assignment at %L must be INTENT(IN)"
msgstr ""
-#: fortran/interface.c:761 fortran/resolve.c:15373
+#: fortran/interface.c:868 fortran/resolve.c:15452
#, gcc-internal-format, gfc-internal-format
msgid "First argument of operator interface at %L must be INTENT(IN)"
msgstr ""
-#: fortran/interface.c:768 fortran/resolve.c:15391
+#: fortran/interface.c:875 fortran/resolve.c:15470
#, gcc-internal-format, gfc-internal-format
msgid "Second argument of operator interface at %L must be INTENT(IN)"
msgstr ""
-#: fortran/interface.c:873
+#: fortran/interface.c:980
#, gcc-internal-format, gfc-internal-format
msgid "Operator interface at %L conflicts with intrinsic interface"
msgstr ""
-#: fortran/interface.c:1205 fortran/interface.c:1264
+#: fortran/interface.c:1312 fortran/interface.c:1371
#, gcc-internal-format, gfc-internal-format
msgid ""
"check_dummy_characteristics: Unexpected result %i of gfc_dep_compare_expr"
msgstr ""
-#: fortran/interface.c:1377
+#: fortran/interface.c:1484
#, gcc-internal-format, gfc-internal-format
msgid ""
"check_result_characteristics (1): Unexpected result %i of "
"gfc_dep_compare_expr"
msgstr ""
-#: fortran/interface.c:1424
+#: fortran/interface.c:1531
#, gcc-internal-format, gfc-internal-format
msgid ""
"check_result_characteristics (2): Unexpected result %i of "
"gfc_dep_compare_expr"
msgstr ""
-#: fortran/interface.c:1591
+#: fortran/interface.c:1698
#, gcc-internal-format
msgid "Procedure %qs in %s at %L has no explicit interface"
msgstr ""
-#: fortran/interface.c:1594
+#: fortran/interface.c:1701
#, gcc-internal-format
msgid "Procedure %qs in %s at %L is neither function nor subroutine"
msgstr ""
-#: fortran/interface.c:1606
+#: fortran/interface.c:1713
#, gcc-internal-format, gfc-internal-format
msgid "In %s at %L procedures must be either all SUBROUTINEs or all FUNCTIONs"
msgstr ""
-#: fortran/interface.c:1610
+#: fortran/interface.c:1717
#, gcc-internal-format, gfc-internal-format
msgid ""
"In %s at %L procedures must be all FUNCTIONs as the generic name is also the "
"name of a derived type"
msgstr ""
-#: fortran/interface.c:1618
+#: fortran/interface.c:1725
#, gcc-internal-format
msgid "Internal procedure %qs in %s at %L"
msgstr ""
-#: fortran/interface.c:1675 fortran/interface.c:1679
+#: fortran/interface.c:1782 fortran/interface.c:1786
#, gcc-internal-format
msgid "Ambiguous interfaces %qs and %qs in %s at %L"
msgstr ""
-#: fortran/interface.c:1683
+#: fortran/interface.c:1790
#, gcc-internal-format
msgid "Although not referenced, %qs has ambiguous interfaces at %L"
msgstr ""
-#: fortran/interface.c:1718
+#: fortran/interface.c:1825
#, gcc-internal-format
msgid "%qs at %L is not a module procedure"
msgstr ""
-#: fortran/interface.c:1922
+#: fortran/interface.c:2029
#, gcc-internal-format
msgid ""
"The assumed-rank array at %L requires that the dummy argument %qs has "
"assumed-rank"
msgstr ""
-#: fortran/interface.c:1927
+#: fortran/interface.c:2034
#, gcc-internal-format
msgid "Rank mismatch in argument %qs at %L (scalar and rank-%d)"
msgstr ""
-#: fortran/interface.c:1932
+#: fortran/interface.c:2039
#, gcc-internal-format
msgid "Rank mismatch in argument %qs at %L (rank-%d and scalar)"
msgstr ""
-#: fortran/interface.c:1937
+#: fortran/interface.c:2044
#, gcc-internal-format
msgid "Rank mismatch in argument %qs at %L (rank-%d and rank-%d)"
msgstr ""
-#: fortran/interface.c:1980
+#: fortran/interface.c:2087
#, gcc-internal-format, gfc-internal-format
msgid "Invalid procedure argument at %L"
msgstr ""
-#: fortran/interface.c:1988 fortran/interface.c:2015
+#: fortran/interface.c:2095 fortran/interface.c:2122
#, gcc-internal-format
msgid "Interface mismatch in dummy procedure %qs at %L: %s"
msgstr ""
-#: fortran/interface.c:2026
+#: fortran/interface.c:2133
#, gcc-internal-format
msgid ""
"Actual argument to contiguous pointer dummy %qs at %L must be simply "
"contiguous"
msgstr ""
-#: fortran/interface.c:2041
+#: fortran/interface.c:2148
#, gcc-internal-format
msgid "Type mismatch in argument %qs at %L; passed %s to %s"
msgstr ""
-#: fortran/interface.c:2050
+#: fortran/interface.c:2157
#, gcc-internal-format
msgid ""
"Assumed-type actual argument at %L requires that dummy argument %qs is of "
"assumed type"
msgstr ""
-#: fortran/interface.c:2066
+#: fortran/interface.c:2173
#, gcc-internal-format
msgid "Actual argument to %qs at %L must be polymorphic"
msgstr ""
-#: fortran/interface.c:2079
+#: fortran/interface.c:2186
#, gcc-internal-format
msgid "Actual argument to %qs at %L must have the same declared type"
msgstr ""
-#: fortran/interface.c:2094
+#: fortran/interface.c:2201
#, gcc-internal-format
msgid ""
"Actual argument to %qs at %L must be unlimited polymorphic since the formal "
"12.5.2.5]"
msgstr ""
-#: fortran/interface.c:2105
+#: fortran/interface.c:2212
#, gcc-internal-format
msgid "Actual argument to %qs at %L must be a coarray"
msgstr ""
-#: fortran/interface.c:2124
+#: fortran/interface.c:2231
#, gcc-internal-format
msgid "Corank mismatch in argument %qs at %L (%d and %d)"
msgstr ""
-#: fortran/interface.c:2142
+#: fortran/interface.c:2249
#, gcc-internal-format
msgid ""
"Actual argument to %qs at %L must be simply contiguous or an element of such "
"an array"
msgstr ""
-#: fortran/interface.c:2157
+#: fortran/interface.c:2264
#, gcc-internal-format
msgid ""
"Actual argument to non-INTENT(INOUT) dummy %qs at %L, which is LOCK_TYPE or "
"has a LOCK_TYPE component"
msgstr ""
-#: fortran/interface.c:2172
+#: fortran/interface.c:2279
#, gcc-internal-format
msgid ""
"Actual argument to non-INTENT(INOUT) dummy %qs at %L, which is EVENT_TYPE or "
"has a EVENT_TYPE component"
msgstr ""
-#: fortran/interface.c:2191
+#: fortran/interface.c:2298
#, gcc-internal-format
msgid ""
"Dummy argument %qs has to be a pointer, assumed-shape or assumed-rank array "
"contiguous and both are ASYNCHRONOUS or VOLATILE"
msgstr ""
-#: fortran/interface.c:2204
+#: fortran/interface.c:2311
#, gcc-internal-format
msgid ""
"Passing coarray at %L to allocatable, noncoarray, INTENT(OUT) dummy argument "
"%qs"
msgstr ""
-#: fortran/interface.c:2211
+#: fortran/interface.c:2318
#, gcc-internal-format
msgid ""
"Passing coarray at %L to allocatable, noncoarray dummy argument %qs, which "
"is invalid if the allocation status is modified"
msgstr ""
-#: fortran/interface.c:2274
+#: fortran/interface.c:2381
#, gcc-internal-format
msgid "Polymorphic scalar passed to array dummy argument %qs at %L"
msgstr ""
-#: fortran/interface.c:2283
+#: fortran/interface.c:2390
#, gcc-internal-format
msgid ""
"Element of assumed-shaped or pointer array passed to array dummy argument "
"%qs at %L"
msgstr ""
-#: fortran/interface.c:2295
+#: fortran/interface.c:2402
#, gcc-internal-format
msgid ""
"Extension: Scalar non-default-kind, non-C_CHAR-kind CHARACTER actual "
"argument with array dummy argument %qs at %L"
msgstr ""
-#: fortran/interface.c:2303
+#: fortran/interface.c:2410
#, gcc-internal-format
msgid ""
"Fortran 2003: Scalar CHARACTER actual argument with array dummy argument %qs "
"at %L"
msgstr ""
-#: fortran/interface.c:2632
+#: fortran/interface.c:2739
#, gcc-internal-format
msgid "Keyword argument %qs at %L is not in the procedure"
msgstr ""
-#: fortran/interface.c:2640
+#: fortran/interface.c:2747
#, gcc-internal-format
msgid ""
"Keyword argument %qs at %L is already associated with another actual argument"
msgstr ""
-#: fortran/interface.c:2650
+#: fortran/interface.c:2757
#, gcc-internal-format, gfc-internal-format
msgid "More actual than formal arguments in procedure call at %L"
msgstr ""
-#: fortran/interface.c:2662 fortran/interface.c:3032
+#: fortran/interface.c:2769 fortran/interface.c:3139
#, gcc-internal-format, gfc-internal-format
msgid "Missing alternate return spec in subroutine call at %L"
msgstr ""
-#: fortran/interface.c:2670
+#: fortran/interface.c:2777
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected alternate return spec in subroutine call at %L"
msgstr ""
-#: fortran/interface.c:2697
+#: fortran/interface.c:2804
#, gcc-internal-format
msgid "Unexpected NULL() intrinsic at %L to dummy %qs"
msgstr ""
-#: fortran/interface.c:2700
+#: fortran/interface.c:2807
#, gcc-internal-format
msgid "Fortran 2008: Null pointer at %L to non-pointer dummy %qs"
msgstr ""
-#: fortran/interface.c:2724
+#: fortran/interface.c:2831
#, gcc-internal-format, gfc-internal-format
msgid ""
"Actual argument at %L to assumed-type dummy is of derived type with type-"
"bound or FINAL procedures"
msgstr ""
-#: fortran/interface.c:2746
+#: fortran/interface.c:2853
#, gcc-internal-format
msgid ""
"Character length mismatch (%ld/%ld) between actual argument and pointer or "
"allocatable dummy argument %qs at %L"
msgstr ""
-#: fortran/interface.c:2754
+#: fortran/interface.c:2861
#, gcc-internal-format
msgid ""
"Character length mismatch (%ld/%ld) between actual argument and assumed-"
"shape dummy argument %qs at %L"
msgstr ""
-#: fortran/interface.c:2768
+#: fortran/interface.c:2875
#, gcc-internal-format
msgid ""
"Actual argument at %L to allocatable or pointer dummy argument %qs must have "
"a deferred length type parameter if and only if the dummy has one"
msgstr ""
-#: fortran/interface.c:2785
+#: fortran/interface.c:2892
#, gcc-internal-format
msgid ""
"Character length of actual argument shorter than of dummy argument %qs (%lu/"
"%lu) at %L"
msgstr ""
-#: fortran/interface.c:2790
+#: fortran/interface.c:2897
#, gcc-internal-format
msgid ""
"Actual argument contains too few elements for dummy argument %qs (%lu/%lu) "
"at %L"
msgstr ""
-#: fortran/interface.c:2809
+#: fortran/interface.c:2916
#, gcc-internal-format
msgid "Expected a procedure pointer for argument %qs at %L"
msgstr ""
-#: fortran/interface.c:2825
+#: fortran/interface.c:2932
#, gcc-internal-format
msgid "Expected a procedure for argument %qs at %L"
msgstr ""
-#: fortran/interface.c:2839
+#: fortran/interface.c:2946
#, gcc-internal-format
msgid "Actual argument for %qs cannot be an assumed-size array at %L"
msgstr ""
-#: fortran/interface.c:2848
+#: fortran/interface.c:2955
#, gcc-internal-format
msgid "Actual argument for %qs must be a pointer at %L"
msgstr ""
-#: fortran/interface.c:2858
+#: fortran/interface.c:2965
#, gcc-internal-format
msgid "Fortran 2008: Non-pointer actual argument at %L to pointer dummy %qs"
msgstr ""
-#: fortran/interface.c:2868
+#: fortran/interface.c:2975
#, gcc-internal-format
msgid "Coindexed actual argument at %L to pointer dummy %qs"
msgstr ""
-#: fortran/interface.c:2881
+#: fortran/interface.c:2988
#, gcc-internal-format
msgid ""
"Coindexed actual argument at %L to allocatable dummy %qs requires INTENT(IN)"
msgstr ""
-#: fortran/interface.c:2895
+#: fortran/interface.c:3002
#, gcc-internal-format
msgid ""
"Coindexed ASYNCHRONOUS or VOLATILE actual argument at %L requires that dummy "
"%qs has neither ASYNCHRONOUS nor VOLATILE"
msgstr ""
-#: fortran/interface.c:2909
+#: fortran/interface.c:3016
#, gcc-internal-format
msgid ""
"Coindexed actual argument at %L with allocatable ultimate component to dummy "
"%qs requires either VALUE or INTENT(IN)"
msgstr ""
-#: fortran/interface.c:2921
+#: fortran/interface.c:3028
#, gcc-internal-format
msgid "Actual CLASS array argument for %qs must be a full array at %L"
msgstr ""
-#: fortran/interface.c:2931
+#: fortran/interface.c:3038
#, gcc-internal-format
msgid "Actual argument for %qs must be ALLOCATABLE at %L"
msgstr ""
-#: fortran/interface.c:2960
+#: fortran/interface.c:3067
#, gcc-internal-format
msgid ""
"Array-section actual argument with vector subscripts at %L is incompatible "
"dummy argument %qs"
msgstr ""
-#: fortran/interface.c:2978
+#: fortran/interface.c:3085
#, gcc-internal-format
msgid ""
"Assumed-shape actual argument at %L is incompatible with the non-assumed-"
"shape dummy argument %qs due to VOLATILE attribute"
msgstr ""
-#: fortran/interface.c:2990
+#: fortran/interface.c:3097
#, gcc-internal-format
msgid ""
"Array-section actual argument at %L is incompatible with the non-assumed-"
"shape dummy argument %qs due to VOLATILE attribute"
msgstr ""
-#: fortran/interface.c:3009
+#: fortran/interface.c:3116
#, gcc-internal-format
msgid ""
"Pointer-array actual argument at %L requires an assumed-shape or pointer-"
"array dummy argument %qs due to VOLATILE attribute"
msgstr ""
-#: fortran/interface.c:3039
+#: fortran/interface.c:3146
#, gcc-internal-format
msgid "Missing actual argument for argument %qs at %L"
msgstr ""
-#: fortran/interface.c:3156
+#: fortran/interface.c:3263
#, gcc-internal-format
msgid "compare_actual_expr(): Bad component code"
msgstr ""
-#: fortran/interface.c:3185
+#: fortran/interface.c:3292
#, gcc-internal-format
msgid "check_some_aliasing(): List mismatch"
msgstr ""
-#: fortran/interface.c:3211
+#: fortran/interface.c:3318
#, gcc-internal-format
msgid "check_some_aliasing(): corrupted data"
msgstr ""
-#: fortran/interface.c:3221
+#: fortran/interface.c:3328
#, gcc-internal-format
msgid ""
"Same actual argument associated with INTENT(%s) argument %qs and INTENT(%s) "
"argument %qs at %L"
msgstr ""
-#: fortran/interface.c:3251
+#: fortran/interface.c:3358
#, gcc-internal-format
msgid "check_intents(): List mismatch"
msgstr ""
-#: fortran/interface.c:3271
+#: fortran/interface.c:3378
#, gcc-internal-format, gfc-internal-format
msgid ""
"Procedure argument at %L is local to a PURE procedure and has the POINTER "
"attribute"
msgstr ""
-#: fortran/interface.c:3283
+#: fortran/interface.c:3390
#, gcc-internal-format, gfc-internal-format
msgid ""
"Coindexed actual argument at %L in PURE procedure is passed to an INTENT(%s) "
"argument"
msgstr ""
-#: fortran/interface.c:3293
+#: fortran/interface.c:3400
#, gcc-internal-format, gfc-internal-format
msgid ""
"Coindexed actual argument at %L in PURE procedure is passed to a POINTER "
"dummy argument"
msgstr ""
-#: fortran/interface.c:3304
+#: fortran/interface.c:3411
#, gcc-internal-format
msgid ""
"Coindexed polymorphic actual argument at %L is passed polymorphic dummy "
"argument %qs"
msgstr ""
-#: fortran/interface.c:3332 fortran/interface.c:3342
+#: fortran/interface.c:3439 fortran/interface.c:3449
#, gcc-internal-format
msgid "Procedure %qs called at %L is not explicitly declared"
msgstr ""
-#: fortran/interface.c:3338
+#: fortran/interface.c:3445
#, gcc-internal-format
msgid "Procedure %qs called with an implicit interface at %L"
msgstr ""
-#: fortran/interface.c:3352
+#: fortran/interface.c:3459
#, gcc-internal-format
msgid ""
"The pointer object %qs at %L must have an explicit function interface or be "
"declared as array"
msgstr ""
-#: fortran/interface.c:3360
+#: fortran/interface.c:3467
#, gcc-internal-format
msgid ""
"The allocatable object %qs at %L must have an explicit function interface or "
"be declared as array"
msgstr ""
-#: fortran/interface.c:3368
+#: fortran/interface.c:3475
#, gcc-internal-format
msgid "Allocatable function %qs at %L must have an explicit function interface"
msgstr ""
-#: fortran/interface.c:3378
+#: fortran/interface.c:3485
#, gcc-internal-format
msgid "Keyword argument requires explicit interface for procedure %qs at %L"
msgstr ""
-#: fortran/interface.c:3387
+#: fortran/interface.c:3494
#, gcc-internal-format, gfc-internal-format
msgid "Assumed-type argument %s at %L requires an explicit interface"
msgstr ""
-#: fortran/interface.c:3400
+#: fortran/interface.c:3507
#, gcc-internal-format
msgid ""
"Actual argument of LOCK_TYPE or with LOCK_TYPE component at %L requires an "
"explicit interface for procedure %qs"
msgstr ""
-#: fortran/interface.c:3413
+#: fortran/interface.c:3520
#, gcc-internal-format
msgid ""
"Actual argument of EVENT_TYPE or with EVENT_TYPE component at %L requires an "
"explicit interface for procedure %qs"
msgstr ""
-#: fortran/interface.c:3422
+#: fortran/interface.c:3529
#, gcc-internal-format, gfc-internal-format
msgid "MOLD argument to NULL required at %L"
msgstr ""
-#: fortran/interface.c:3430
+#: fortran/interface.c:3537
#, gcc-internal-format, gfc-internal-format
msgid "Assumed-rank argument requires an explicit interface at %L"
msgstr ""
-#: fortran/interface.c:3468
+#: fortran/interface.c:3575
#, gcc-internal-format
msgid "Procedure pointer component %qs called with an implicit interface at %L"
msgstr ""
-#: fortran/interface.c:3479
+#: fortran/interface.c:3586
#, gcc-internal-format
msgid ""
"Keyword argument requires explicit interface for procedure pointer component "
"%qs at %L"
msgstr ""
-#: fortran/interface.c:3564
+#: fortran/interface.c:3671
#, gcc-internal-format, gfc-internal-format
msgid ""
"MOLD= required in NULL() argument at %L: Ambiguity between specific "
"functions %s and %s"
msgstr ""
-#: fortran/interface.c:3634
+#: fortran/interface.c:3741
#, gcc-internal-format
msgid "Unable to find symbol %qs"
msgstr ""
-#: fortran/interface.c:4001
+#: fortran/interface.c:4108
#, gcc-internal-format
msgid "Entity %qs at %L is already present in the interface"
msgstr ""
-#: fortran/interface.c:4117
+#: fortran/interface.c:4224
#, gcc-internal-format
msgid "gfc_add_interface(): Bad interface type"
msgstr ""
-#: fortran/interface.c:4212
+#: fortran/interface.c:4319
#, gcc-internal-format
msgid "Can't overwrite GENERIC %qs at %L"
msgstr ""
-#: fortran/interface.c:4224
+#: fortran/interface.c:4331
#, gcc-internal-format
msgid "%qs at %L overrides a procedure binding declared NON_OVERRIDABLE"
msgstr ""
-#: fortran/interface.c:4232
+#: fortran/interface.c:4339
#, gcc-internal-format
msgid "%qs at %L must not be DEFERRED as it overrides a non-DEFERRED binding"
msgstr ""
-#: fortran/interface.c:4240
+#: fortran/interface.c:4347
#, gcc-internal-format
msgid "%qs at %L overrides a PURE procedure and must also be PURE"
msgstr ""
-#: fortran/interface.c:4249
+#: fortran/interface.c:4356
#, gcc-internal-format
msgid "%qs at %L overrides an ELEMENTAL procedure and must also be ELEMENTAL"
msgstr ""
-#: fortran/interface.c:4255
+#: fortran/interface.c:4362
#, gcc-internal-format
msgid ""
"%qs at %L overrides a non-ELEMENTAL procedure and must not be ELEMENTAL, "
"either"
msgstr ""
-#: fortran/interface.c:4264
+#: fortran/interface.c:4371
#, gcc-internal-format
msgid "%qs at %L overrides a SUBROUTINE and must also be a SUBROUTINE"
msgstr ""
-#: fortran/interface.c:4275
+#: fortran/interface.c:4382
#, gcc-internal-format
msgid "%qs at %L overrides a FUNCTION and must also be a FUNCTION"
msgstr ""
-#: fortran/interface.c:4283
+#: fortran/interface.c:4390
#, gcc-internal-format
msgid "Result mismatch for the overriding procedure %qs at %L: %s"
msgstr ""
-#: fortran/interface.c:4294
+#: fortran/interface.c:4401
#, gcc-internal-format
msgid "%qs at %L overrides a PUBLIC procedure and must not be PRIVATE"
msgstr ""
-#: fortran/interface.c:4324
+#: fortran/interface.c:4431
#, gcc-internal-format
msgid ""
"Dummy argument %qs of %qs at %L should be named %qs as to match the "
"corresponding argument of the overridden procedure"
msgstr ""
-#: fortran/interface.c:4335
+#: fortran/interface.c:4442
#, gcc-internal-format
msgid "Argument mismatch for the overriding procedure %qs at %L: %s"
msgstr ""
-#: fortran/interface.c:4344
+#: fortran/interface.c:4451
#, gcc-internal-format
msgid ""
"%qs at %L must have the same number of formal arguments as the overridden "
"procedure"
msgstr ""
-#: fortran/interface.c:4353
+#: fortran/interface.c:4460
#, gcc-internal-format
msgid "%qs at %L overrides a NOPASS binding and must also be NOPASS"
msgstr ""
-#: fortran/interface.c:4364
+#: fortran/interface.c:4471
#, gcc-internal-format
msgid "%qs at %L overrides a binding with PASS and must also be PASS"
msgstr ""
-#: fortran/interface.c:4371
+#: fortran/interface.c:4478
#, gcc-internal-format
msgid ""
"Passed-object dummy argument of %qs at %L must be at the same position as "
msgid "UNIT number in CLOSE statement at %L must be non-negative"
msgstr ""
-#: fortran/io.c:2500 fortran/match.c:2639
+#: fortran/io.c:2500 fortran/match.c:2761
#, gcc-internal-format, gfc-internal-format
msgid "%s statement not allowed in PURE procedure at %C"
msgstr ""
msgstr ""
#. A general purpose syntax error.
-#: fortran/io.c:3268 fortran/io.c:3886 fortran/gfortran.h:2718
+#: fortran/io.c:3268 fortran/io.c:3886 fortran/gfortran.h:2731
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in %s statement at %C"
msgstr ""
msgid "gfc_op2string(): Bad code"
msgstr ""
-#: fortran/match.c:166
+#: fortran/match.c:186
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected structure component or operator name after '.' at %C"
+msgstr ""
+
+#: fortran/match.c:218
+#, gcc-internal-format, gfc-internal-format
+msgid ""
+"'%s' is neither a defined operator nor a structure component in dotted "
+"string at %C"
+msgstr ""
+
+#: fortran/match.c:288
#, gcc-internal-format
msgid "Missing %<)%> in statement at or before %L"
msgstr ""
-#: fortran/match.c:171
+#: fortran/match.c:293
#, gcc-internal-format
msgid "Missing %<(%> in statement at or before %L"
msgstr ""
-#: fortran/match.c:368
+#: fortran/match.c:490
#, gcc-internal-format, gfc-internal-format
msgid "Integer too large at %C"
msgstr ""
-#: fortran/match.c:461 fortran/parse.c:973
+#: fortran/match.c:583 fortran/parse.c:1045
#, gcc-internal-format, gfc-internal-format
msgid "Too many digits in statement label at %C"
msgstr ""
-#: fortran/match.c:467
+#: fortran/match.c:589
#, gcc-internal-format, gfc-internal-format
msgid "Statement label at %C is zero"
msgstr ""
-#: fortran/match.c:500
+#: fortran/match.c:622
#, gcc-internal-format
msgid "Label name %qs at %C is ambiguous"
msgstr ""
-#: fortran/match.c:506
+#: fortran/match.c:628
#, gcc-internal-format
msgid "Duplicate construct label %qs at %C"
msgstr ""
-#: fortran/match.c:540
+#: fortran/match.c:662
#, gcc-internal-format, gfc-internal-format
msgid "Invalid character in name at %C"
msgstr ""
-#: fortran/match.c:553
+#: fortran/match.c:675
#, gcc-internal-format, gfc-internal-format
msgid "Name at %C is too long"
msgstr ""
-#: fortran/match.c:564
+#: fortran/match.c:686
#, gcc-internal-format
msgid ""
"Invalid character %<$%> at %L. Use %<-fdollar-ok%> to allow it as an "
"extension"
msgstr ""
-#: fortran/match.c:882
+#: fortran/match.c:1004
#, gcc-internal-format, gfc-internal-format
msgid "Loop variable at %C cannot be an array"
msgstr ""
-#: fortran/match.c:889
+#: fortran/match.c:1011
#, gcc-internal-format, gfc-internal-format
msgid "Loop variable at %C cannot be a coarray"
msgstr ""
-#: fortran/match.c:895
+#: fortran/match.c:1017
#, gcc-internal-format, gfc-internal-format
msgid "Loop variable at %C cannot be a sub-component"
msgstr ""
-#: fortran/match.c:929
+#: fortran/match.c:1051
#, gcc-internal-format, gfc-internal-format
msgid "Expected a step value in iterator at %C"
msgstr ""
-#: fortran/match.c:941
+#: fortran/match.c:1063
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in iterator at %C"
msgstr ""
-#: fortran/match.c:1109
+#: fortran/match.c:1231
#, gcc-internal-format, gfc-internal-format
msgid "gfc_match(): Bad match code %c"
msgstr ""
-#: fortran/match.c:1182
+#: fortran/match.c:1304
#, gcc-internal-format, gfc-internal-format
msgid "Invalid form of PROGRAM statement at %C"
msgstr ""
-#: fortran/match.c:1312 fortran/match.c:1392
+#: fortran/match.c:1434 fortran/match.c:1514
#, gcc-internal-format, gfc-internal-format
msgid "Arithmetic IF statement at %C"
msgstr ""
-#: fortran/match.c:1367
+#: fortran/match.c:1489
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in IF-expression at %C"
msgstr ""
-#: fortran/match.c:1378
+#: fortran/match.c:1500
#, gcc-internal-format, gfc-internal-format
msgid "Block label not appropriate for arithmetic IF statement at %C"
msgstr ""
-#: fortran/match.c:1415
+#: fortran/match.c:1537
#, gcc-internal-format, gfc-internal-format
msgid "Block label is not appropriate for IF statement at %C"
msgstr ""
-#: fortran/match.c:1503
+#: fortran/match.c:1625
#, gcc-internal-format, gfc-internal-format
msgid "Cannot assign to a named constant at %C"
msgstr ""
-#: fortran/match.c:1513
+#: fortran/match.c:1635
#, gcc-internal-format, gfc-internal-format
msgid "Unclassifiable statement in IF-clause at %C"
msgstr ""
-#: fortran/match.c:1520
+#: fortran/match.c:1642
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in IF-clause at %C"
msgstr ""
-#: fortran/match.c:1563
+#: fortran/match.c:1685
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after ELSE statement at %C"
msgstr ""
-#: fortran/match.c:1569 fortran/match.c:1604
+#: fortran/match.c:1691 fortran/match.c:1726
#, gcc-internal-format
msgid "Label %qs at %C doesn't match IF label %qs"
msgstr ""
-#: fortran/match.c:1598
+#: fortran/match.c:1720
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after ELSE IF statement at %C"
msgstr ""
-#: fortran/match.c:1662
+#: fortran/match.c:1784
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement CRITICAL at %C in PURE procedure"
msgstr ""
-#: fortran/match.c:1668
+#: fortran/match.c:1790
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement CRITICAL at %C in DO CONCURRENT block"
msgstr ""
-#: fortran/match.c:1675
+#: fortran/match.c:1797
#, gcc-internal-format, gfc-internal-format
msgid "CRITICAL statement at %C"
msgstr ""
-#: fortran/match.c:1687
+#: fortran/match.c:1809
#, gcc-internal-format, gfc-internal-format
msgid "Nested CRITICAL block at %C"
msgstr ""
-#: fortran/match.c:1739
+#: fortran/match.c:1861
#, gcc-internal-format, gfc-internal-format
msgid "Expected association list at %C"
msgstr ""
-#: fortran/match.c:1752
+#: fortran/match.c:1874
#, gcc-internal-format, gfc-internal-format
msgid "Expected association at %C"
msgstr ""
-#: fortran/match.c:1761
+#: fortran/match.c:1883
#, gcc-internal-format
msgid "Duplicate name %qs in association at %C"
msgstr ""
-#: fortran/match.c:1769
+#: fortran/match.c:1891
#, gcc-internal-format, gfc-internal-format
msgid "Association target at %C must not be coindexed"
msgstr ""
-#: fortran/match.c:1787
+#: fortran/match.c:1909
#, gcc-internal-format
msgid "Expected %<)%> or %<,%> at %C"
msgstr ""
-#: fortran/match.c:1805
+#: fortran/match.c:1927
#, gcc-internal-format, gfc-internal-format
msgid "Junk after ASSOCIATE statement at %C"
msgstr ""
-#: fortran/match.c:1874
+#: fortran/match.c:1996
#, gcc-internal-format
msgid "Derived type %qs at %L may not be ABSTRACT"
msgstr ""
-#: fortran/match.c:1937
+#: fortran/match.c:2059
#, gcc-internal-format, gfc-internal-format
msgid "Invalid type-spec at %C"
msgstr ""
-#: fortran/match.c:2036
+#: fortran/match.c:2158
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in FORALL iterator at %C"
msgstr ""
-#: fortran/match.c:2301
+#: fortran/match.c:2423
#, gcc-internal-format, gfc-internal-format
msgid "DO CONCURRENT construct at %C"
msgstr ""
-#: fortran/match.c:2426
+#: fortran/match.c:2548
#, gcc-internal-format
msgid "Name %qs in %s statement at %C is unknown"
msgstr ""
-#: fortran/match.c:2434
+#: fortran/match.c:2556
#, gcc-internal-format
msgid "Name %qs in %s statement at %C is not a construct name"
msgstr ""
-#: fortran/match.c:2446
+#: fortran/match.c:2568
#, gcc-internal-format, gfc-internal-format
msgid "%s statement at %C leaves CRITICAL construct"
msgstr ""
#. F2008, C821 & C845.
-#: fortran/match.c:2454
+#: fortran/match.c:2576
#, gcc-internal-format, gfc-internal-format
msgid "%s statement at %C leaves DO CONCURRENT construct"
msgstr ""
-#: fortran/match.c:2466
+#: fortran/match.c:2588
#, gcc-internal-format, gfc-internal-format
msgid "%s statement at %C is not within a construct"
msgstr ""
-#: fortran/match.c:2469
+#: fortran/match.c:2591
#, gcc-internal-format
msgid "%s statement at %C is not within construct %qs"
msgstr ""
-#: fortran/match.c:2494
+#: fortran/match.c:2616
#, gcc-internal-format
msgid "CYCLE statement at %C is not applicable to non-loop construct %qs"
msgstr ""
-#: fortran/match.c:2499
+#: fortran/match.c:2621
#, gcc-internal-format, gfc-internal-format
msgid "EXIT statement with no do-construct-name at %C"
msgstr ""
-#: fortran/match.c:2505
+#: fortran/match.c:2627
#, gcc-internal-format
msgid "%s statement at %C is not applicable to construct %qs"
msgstr ""
-#: fortran/match.c:2513
+#: fortran/match.c:2635
#, gcc-internal-format, gfc-internal-format
msgid "%s statement at %C leaving OpenACC structured block"
msgstr ""
-#: fortran/match.c:2538
+#: fortran/match.c:2660
#, gcc-internal-format, gfc-internal-format
msgid "EXIT statement at %C terminating !$ACC LOOP loop"
msgstr ""
-#: fortran/match.c:2543
+#: fortran/match.c:2665
#, gcc-internal-format, gfc-internal-format
msgid "CYCLE statement at %C to non-innermost collapsed !$ACC LOOP loop"
msgstr ""
-#: fortran/match.c:2568
+#: fortran/match.c:2690
#, gcc-internal-format, gfc-internal-format
msgid "EXIT statement at %C terminating !$OMP DO loop"
msgstr ""
-#: fortran/match.c:2573
+#: fortran/match.c:2695
#, gcc-internal-format, gfc-internal-format
msgid "CYCLE statement at %C to non-innermost collapsed !$OMP DO loop"
msgstr ""
-#: fortran/match.c:2633
+#: fortran/match.c:2755
#, gcc-internal-format, gfc-internal-format
msgid "%s statement at %C in PURE procedure"
msgstr ""
-#: fortran/match.c:2649
+#: fortran/match.c:2771
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement STOP at %C in CRITICAL block"
msgstr ""
-#: fortran/match.c:2654
+#: fortran/match.c:2776
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement STOP at %C in DO CONCURRENT block"
msgstr ""
-#: fortran/match.c:2662
+#: fortran/match.c:2784
#, gcc-internal-format, gfc-internal-format
msgid "STOP code at %L must be either INTEGER or CHARACTER type"
msgstr ""
-#: fortran/match.c:2669
+#: fortran/match.c:2791
#, gcc-internal-format, gfc-internal-format
msgid "STOP code at %L must be scalar"
msgstr ""
-#: fortran/match.c:2677
+#: fortran/match.c:2799
#, gcc-internal-format, gfc-internal-format
msgid "STOP code at %L must be default character KIND=%d"
msgstr ""
-#: fortran/match.c:2685
+#: fortran/match.c:2807
#, gcc-internal-format, gfc-internal-format
msgid "STOP code at %L must be default integer KIND=%d"
msgstr ""
-#: fortran/match.c:2731
+#: fortran/match.c:2853
#, gcc-internal-format, gfc-internal-format
msgid "PAUSE statement at %C"
msgstr ""
-#: fortran/match.c:2752
+#: fortran/match.c:2874
#, gcc-internal-format, gfc-internal-format
msgid "ERROR STOP statement at %C"
msgstr ""
-#: fortran/match.c:2778
+#: fortran/match.c:2900
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement EVENT %s at %C in PURE procedure"
msgstr ""
-#: fortran/match.c:2793
+#: fortran/match.c:2915
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement EVENT %s at %C in CRITICAL block"
msgstr ""
-#: fortran/match.c:2800
+#: fortran/match.c:2922
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement EVENT %s at %C in DO CONCURRENT block"
msgstr ""
-#: fortran/match.c:2830 fortran/match.c:3025 fortran/match.c:3237
-#: fortran/match.c:3747 fortran/match.c:4084
+#: fortran/match.c:2952 fortran/match.c:3147 fortran/match.c:3359
+#: fortran/match.c:3869 fortran/match.c:4206
#, gcc-internal-format, gfc-internal-format
msgid "Redundant STAT tag found at %L "
msgstr ""
-#: fortran/match.c:2851 fortran/match.c:3046 fortran/match.c:3257
-#: fortran/match.c:3773 fortran/match.c:4109
+#: fortran/match.c:2973 fortran/match.c:3168 fortran/match.c:3379
+#: fortran/match.c:3895 fortran/match.c:4231
#, gcc-internal-format, gfc-internal-format
msgid "Redundant ERRMSG tag found at %L "
msgstr ""
-#: fortran/match.c:2872
+#: fortran/match.c:2994
#, gcc-internal-format, gfc-internal-format
msgid "Redundant UNTIL_COUNT tag found at %L "
msgstr ""
-#: fortran/match.c:2938
+#: fortran/match.c:3060
#, gcc-internal-format, gfc-internal-format
msgid "EVENT POST statement at %C"
msgstr ""
-#: fortran/match.c:2948
+#: fortran/match.c:3070
#, gcc-internal-format, gfc-internal-format
msgid "EVENT WAIT statement at %C"
msgstr ""
-#: fortran/match.c:2973
+#: fortran/match.c:3095
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement %s at %C in PURE procedure"
msgstr ""
-#: fortran/match.c:2988
+#: fortran/match.c:3110
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement %s at %C in CRITICAL block"
msgstr ""
-#: fortran/match.c:2995
+#: fortran/match.c:3117
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement %s at %C in DO CONCURRENT block"
msgstr ""
-#: fortran/match.c:3067
+#: fortran/match.c:3189
#, gcc-internal-format, gfc-internal-format
msgid "Redundant ACQUIRED_LOCK tag found at %L "
msgstr ""
-#: fortran/match.c:3132
+#: fortran/match.c:3254
#, gcc-internal-format, gfc-internal-format
msgid "LOCK statement at %C"
msgstr ""
-#: fortran/match.c:3142
+#: fortran/match.c:3264
#, gcc-internal-format, gfc-internal-format
msgid "UNLOCK statement at %C"
msgstr ""
-#: fortran/match.c:3167
+#: fortran/match.c:3289
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement SYNC at %C in PURE procedure"
msgstr ""
-#: fortran/match.c:3173
+#: fortran/match.c:3295
#, gcc-internal-format, gfc-internal-format
msgid "SYNC statement at %C"
msgstr ""
-#: fortran/match.c:3185
+#: fortran/match.c:3307
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement SYNC at %C in CRITICAL block"
msgstr ""
-#: fortran/match.c:3191
+#: fortran/match.c:3313
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement SYNC at %C in DO CONCURRENT block"
msgstr ""
-#: fortran/match.c:3371
+#: fortran/match.c:3493
#, gcc-internal-format, gfc-internal-format
msgid "ASSIGN statement at %C"
msgstr ""
-#: fortran/match.c:3415
+#: fortran/match.c:3537
#, gcc-internal-format, gfc-internal-format
msgid "Assigned GOTO statement at %C"
msgstr ""
-#: fortran/match.c:3459 fortran/match.c:3510
+#: fortran/match.c:3581 fortran/match.c:3632
#, gcc-internal-format, gfc-internal-format
msgid "Statement label list in GOTO at %C cannot be empty"
msgstr ""
-#: fortran/match.c:3520
+#: fortran/match.c:3642
#, gcc-internal-format, gfc-internal-format
msgid "Computed GOTO at %C"
msgstr ""
-#: fortran/match.c:3592
+#: fortran/match.c:3714
#, gcc-internal-format, gfc-internal-format
msgid "Error in type-spec at %L"
msgstr ""
-#: fortran/match.c:3602
+#: fortran/match.c:3724
#, gcc-internal-format, gfc-internal-format
msgid "typespec in ALLOCATE at %L"
msgstr ""
-#: fortran/match.c:3645
+#: fortran/match.c:3767
#, gcc-internal-format, gfc-internal-format
msgid "Bad allocate-object at %C for a PURE procedure"
msgstr ""
-#: fortran/match.c:3669
+#: fortran/match.c:3791
#, gcc-internal-format, gfc-internal-format
msgid "ALLOCATE of coarray at %C in DO CONCURRENT block"
msgstr ""
-#: fortran/match.c:3674
+#: fortran/match.c:3796
#, gcc-internal-format, gfc-internal-format
msgid "ALLOCATE of coarray at %C in CRITICAL block"
msgstr ""
-#: fortran/match.c:3696
+#: fortran/match.c:3818
#, gcc-internal-format, gfc-internal-format
msgid ""
"Allocate-object at %L is neither a data pointer nor an allocatable variable"
msgstr ""
-#: fortran/match.c:3708
+#: fortran/match.c:3830
#, gcc-internal-format, gfc-internal-format
msgid "Type of entity at %L is type incompatible with typespec"
msgstr ""
-#: fortran/match.c:3716
+#: fortran/match.c:3838
#, gcc-internal-format, gfc-internal-format
msgid ""
"Kind type parameter for entity at %L differs from the kind type parameter of "
"the typespec"
msgstr ""
-#: fortran/match.c:3730
+#: fortran/match.c:3852
#, gcc-internal-format, gfc-internal-format
msgid "Shape specification for allocatable scalar at %C"
msgstr ""
-#: fortran/match.c:3767
+#: fortran/match.c:3889
#, gcc-internal-format, gfc-internal-format
msgid "ERRMSG tag at %L"
msgstr ""
-#: fortran/match.c:3790
+#: fortran/match.c:3912
#, gcc-internal-format, gfc-internal-format
msgid "SOURCE tag at %L"
msgstr ""
-#: fortran/match.c:3796
+#: fortran/match.c:3918
#, gcc-internal-format, gfc-internal-format
msgid "Redundant SOURCE tag found at %L "
msgstr ""
-#: fortran/match.c:3803
+#: fortran/match.c:3925
#, gcc-internal-format, gfc-internal-format
msgid "SOURCE tag at %L conflicts with the typespec at %L"
msgstr ""
-#: fortran/match.c:3809
+#: fortran/match.c:3931
#, gcc-internal-format, gfc-internal-format
msgid "SOURCE tag at %L with more than a single allocate object"
msgstr ""
-#: fortran/match.c:3827
+#: fortran/match.c:3949
#, gcc-internal-format, gfc-internal-format
msgid "MOLD tag at %L"
msgstr ""
-#: fortran/match.c:3833
+#: fortran/match.c:3955
#, gcc-internal-format, gfc-internal-format
msgid "Redundant MOLD tag found at %L "
msgstr ""
-#: fortran/match.c:3840
+#: fortran/match.c:3962
#, gcc-internal-format, gfc-internal-format
msgid "MOLD tag at %L conflicts with the typespec at %L"
msgstr ""
-#: fortran/match.c:3866
+#: fortran/match.c:3988
#, gcc-internal-format, gfc-internal-format
msgid "MOLD tag at %L conflicts with SOURCE tag at %L"
msgstr ""
-#: fortran/match.c:3874
+#: fortran/match.c:3996
#, gcc-internal-format, gfc-internal-format
msgid ""
"Allocate-object at %L with a deferred type parameter requires either a type-"
"spec or SOURCE tag or a MOLD tag"
msgstr ""
-#: fortran/match.c:3886
+#: fortran/match.c:4008
#, gcc-internal-format, gfc-internal-format
msgid ""
"Unlimited polymorphic allocate-object at %L requires either a type-spec or "
"SOURCE tag or a MOLD tag"
msgstr ""
-#: fortran/match.c:3948
+#: fortran/match.c:4070
#, gcc-internal-format, gfc-internal-format
msgid "Pointer object at %C shall not be coindexed"
msgstr ""
-#: fortran/match.c:4034
+#: fortran/match.c:4156
#, gcc-internal-format, gfc-internal-format
msgid "Illegal allocate-object at %C for a PURE procedure"
msgstr ""
-#: fortran/match.c:4044
+#: fortran/match.c:4166
#, gcc-internal-format, gfc-internal-format
msgid "DEALLOCATE of coarray at %C in DO CONCURRENT block"
msgstr ""
-#: fortran/match.c:4051
+#: fortran/match.c:4173
#, gcc-internal-format, gfc-internal-format
msgid "DEALLOCATE of coarray at %C in CRITICAL block"
msgstr ""
-#: fortran/match.c:4067
+#: fortran/match.c:4189
#, gcc-internal-format, gfc-internal-format
msgid ""
"Allocate-object at %C is not a nonprocedure pointer nor an allocatable "
"variable"
msgstr ""
-#: fortran/match.c:4104
+#: fortran/match.c:4226
#, gcc-internal-format, gfc-internal-format
msgid "ERRMSG at %L"
msgstr ""
-#: fortran/match.c:4161
+#: fortran/match.c:4283
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement RETURN at %C in CRITICAL block"
msgstr ""
-#: fortran/match.c:4167
+#: fortran/match.c:4289
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement RETURN at %C in DO CONCURRENT block"
msgstr ""
-#: fortran/match.c:4176
+#: fortran/match.c:4298
#, gcc-internal-format, gfc-internal-format
msgid "Alternate RETURN statement at %C is only allowed within a SUBROUTINE"
msgstr ""
-#: fortran/match.c:4207
+#: fortran/match.c:4329
#, gcc-internal-format, gfc-internal-format
msgid "RETURN statement in main program at %C"
msgstr ""
-#: fortran/match.c:4235
+#: fortran/match.c:4357
#, gcc-internal-format, gfc-internal-format
msgid "Expected component reference at %C"
msgstr ""
-#: fortran/match.c:4244
+#: fortran/match.c:4366
#, gcc-internal-format, gfc-internal-format
msgid "Junk after CALL at %C"
msgstr ""
-#: fortran/match.c:4255
+#: fortran/match.c:4377
#, gcc-internal-format, gfc-internal-format
msgid "Expected type-bound procedure or procedure pointer component at %C"
msgstr ""
-#: fortran/match.c:4476
+#: fortran/match.c:4598
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in common block name at %C"
msgstr ""
#. If we find an error, just print it and continue,
#. cause it's just semantic, and we can see if there
#. are more errors.
-#: fortran/match.c:4543
+#: fortran/match.c:4665
#, gcc-internal-format
msgid ""
"Variable %qs at %L in common block %qs at %C must be declared with a C "
"interoperable kind since common block %qs is bind(c)"
msgstr ""
-#: fortran/match.c:4552
+#: fortran/match.c:4674
#, gcc-internal-format
msgid ""
"Variable %qs in common block %qs at %C can not be bind(c) since it is not "
"global"
msgstr ""
-#: fortran/match.c:4559
+#: fortran/match.c:4681
#, gcc-internal-format
msgid "Symbol %qs at %C is already in a COMMON block"
msgstr ""
-#: fortran/match.c:4567
+#: fortran/match.c:4689
#, gcc-internal-format
msgid "Initialized symbol %qs at %C can only be COMMON in BLOCK DATA"
msgstr ""
-#: fortran/match.c:4583
+#: fortran/match.c:4705
#, gcc-internal-format
msgid "Array specification for symbol %qs in COMMON at %C must be explicit"
msgstr ""
-#: fortran/match.c:4593
+#: fortran/match.c:4715
#, gcc-internal-format
msgid "Symbol %qs in COMMON at %C cannot be a POINTER array"
msgstr ""
-#: fortran/match.c:4639
+#: fortran/match.c:4761
#, gcc-internal-format
msgid ""
"Symbol %qs, in COMMON block %qs at %C is being indirectly equivalenced to "
"another COMMON block %qs"
msgstr ""
-#: fortran/match.c:4767
+#: fortran/match.c:4889
#, gcc-internal-format
msgid "Namelist group name %qs at %C already has a basic type of %s"
msgstr ""
-#: fortran/match.c:4775
+#: fortran/match.c:4897
#, gcc-internal-format
msgid ""
"Namelist group name %qs at %C already is USE associated and cannot be "
"respecified."
msgstr ""
-#: fortran/match.c:4801
+#: fortran/match.c:4923
#, gcc-internal-format
msgid "Assumed size array %qs in namelist %qs at %C is not allowed"
msgstr ""
-#: fortran/match.c:4935
+#: fortran/match.c:5057
#, gcc-internal-format, gfc-internal-format
msgid "Derived type component %C is not a permitted EQUIVALENCE member"
msgstr ""
-#: fortran/match.c:4943
+#: fortran/match.c:5065
#, gcc-internal-format, gfc-internal-format
msgid "Array reference in EQUIVALENCE at %C cannot be an array section"
msgstr ""
-#: fortran/match.c:4971
+#: fortran/match.c:5093
#, gcc-internal-format, gfc-internal-format
msgid "EQUIVALENCE at %C requires two or more objects"
msgstr ""
-#: fortran/match.c:4985
+#: fortran/match.c:5107
#, gcc-internal-format, gfc-internal-format
msgid ""
"Attempt to indirectly overlap COMMON blocks %s and %s by EQUIVALENCE at %C"
msgstr ""
-#: fortran/match.c:4998
+#: fortran/match.c:5120
#, gcc-internal-format, gfc-internal-format
msgid "Expecting a comma in EQUIVALENCE at %C"
msgstr ""
-#: fortran/match.c:5114
+#: fortran/match.c:5236
#, gcc-internal-format, gfc-internal-format
msgid "Statement function at %L is recursive"
msgstr ""
-#: fortran/match.c:5124
+#: fortran/match.c:5246
#, gcc-internal-format, gfc-internal-format
msgid "Statement function at %L cannot appear within an INTERFACE"
msgstr ""
-#: fortran/match.c:5129
+#: fortran/match.c:5251
#, gcc-internal-format, gfc-internal-format
msgid "Statement function at %C"
msgstr ""
-#: fortran/match.c:5254 fortran/match.c:5270
+#: fortran/match.c:5376 fortran/match.c:5392
#, gcc-internal-format, gfc-internal-format
msgid "Expression in CASE selector at %L cannot be %s"
msgstr ""
-#: fortran/match.c:5292
+#: fortran/match.c:5414
#, gcc-internal-format, gfc-internal-format
msgid "Expected initialization expression in CASE at %C"
msgstr ""
-#: fortran/match.c:5324
+#: fortran/match.c:5446
#, gcc-internal-format
msgid "Expected block name %qs of SELECT construct at %C"
msgstr ""
-#: fortran/match.c:5604
+#: fortran/match.c:5726
#, gcc-internal-format, gfc-internal-format
msgid "parse error in SELECT TYPE statement at %C"
msgstr ""
-#: fortran/match.c:5628
+#: fortran/match.c:5750
#, gcc-internal-format, gfc-internal-format
msgid ""
"Selector in SELECT TYPE at %C is not a named variable; use associate-name=>"
msgstr ""
-#: fortran/match.c:5662
+#: fortran/match.c:5784
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected CASE statement at %C"
msgstr ""
-#: fortran/match.c:5714
+#: fortran/match.c:5836
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in CASE specification at %C"
msgstr ""
-#: fortran/match.c:5732
+#: fortran/match.c:5854
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected TYPE IS statement at %C"
msgstr ""
-#: fortran/match.c:5764
+#: fortran/match.c:5886
#, gcc-internal-format, gfc-internal-format
msgid ""
"The type-spec shall not specify a sequence derived type or a type with the "
"BIND attribute in SELECT TYPE at %C [F2003:C815]"
msgstr ""
-#: fortran/match.c:5776
+#: fortran/match.c:5898
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in TYPE IS specification at %C"
msgstr ""
-#: fortran/match.c:5852
+#: fortran/match.c:5974
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in CLASS IS specification at %C"
msgstr ""
-#: fortran/match.c:5970
+#: fortran/match.c:6092
#, gcc-internal-format, gfc-internal-format
msgid "ELSEWHERE statement at %C not enclosed in WHERE block"
msgstr ""
-#: fortran/match.c:6008
+#: fortran/match.c:6130
#, gcc-internal-format
msgid "Label %qs at %C doesn't match WHERE label %qs"
msgstr ""
msgid "match_level_4(): Bad operator"
msgstr ""
-#: fortran/misc.c:105
+#: fortran/misc.c:108
#, gcc-internal-format
msgid "gfc_basic_typename(): Undefined type"
msgstr ""
-#: fortran/misc.c:167
+#: fortran/misc.c:173
#, gcc-internal-format
msgid "gfc_typename(): Undefined type"
msgstr ""
-#: fortran/misc.c:187
+#: fortran/misc.c:193
#, gcc-internal-format
msgid "gfc_code2string(): Bad code"
msgstr ""
msgid "unquote_string(): got bad string"
msgstr ""
-#: fortran/module.c:2661
+#: fortran/module.c:2662
#, gcc-internal-format
msgid "mio_array_ref(): Unknown array ref"
msgstr ""
-#: fortran/module.c:3637
+#: fortran/module.c:3638
#, gcc-internal-format, gfc-internal-format
msgid "Namelist %s cannot be renamed by USE association to %s"
msgstr ""
-#: fortran/module.c:4757
+#: fortran/module.c:4758
#, gcc-internal-format, gfc-internal-format
msgid "Ambiguous !$OMP DECLARE REDUCTION from module %s at %L"
msgstr ""
-#: fortran/module.c:4760
+#: fortran/module.c:4761
#, gcc-internal-format, gfc-internal-format
msgid "Previous !$OMP DECLARE REDUCTION from module %s at %L"
msgstr ""
-#: fortran/module.c:4948
+#: fortran/module.c:4955
#, gcc-internal-format
msgid ""
"%qs of module %qs, imported at %C, is also the name of the current program "
"unit"
msgstr ""
-#: fortran/module.c:5309
+#: fortran/module.c:5316
#, gcc-internal-format
msgid "Symbol %qs referenced at %L not found in module %qs"
msgstr ""
-#: fortran/module.c:5316
+#: fortran/module.c:5323
#, gcc-internal-format
msgid "User operator %qs referenced at %L not found in module %qs"
msgstr ""
-#: fortran/module.c:5321
+#: fortran/module.c:5328
#, gcc-internal-format
msgid "Intrinsic operator %qs referenced at %L not found in module %qs"
msgstr ""
-#: fortran/module.c:5556
+#: fortran/module.c:5563
#, gcc-internal-format
msgid "write_symbol(): bad module symbol %qs"
msgstr ""
-#: fortran/module.c:5889
+#: fortran/module.c:5896
#, gcc-internal-format
msgid "write_symtree(): Symbol not written"
msgstr ""
-#: fortran/module.c:6076
+#: fortran/module.c:6083
#, gcc-internal-format
msgid "Can't open module file %qs for writing at %C: %s"
msgstr ""
-#: fortran/module.c:6095
+#: fortran/module.c:6102
#, gcc-internal-format
msgid "Error writing module file %qs for writing: %s"
msgstr ""
-#: fortran/module.c:6106
+#: fortran/module.c:6113
#, gcc-internal-format
msgid "Can't delete module file %qs: %s"
msgstr ""
-#: fortran/module.c:6109
+#: fortran/module.c:6116
#, gcc-internal-format
msgid "Can't rename module file %qs to %qs: %s"
msgstr ""
-#: fortran/module.c:6115
+#: fortran/module.c:6122
#, gcc-internal-format
msgid "Can't delete temporary module file %qs: %s"
msgstr ""
-#: fortran/module.c:6157 fortran/module.c:6484 fortran/module.c:6517
-#: fortran/module.c:6559
+#: fortran/module.c:6164 fortran/module.c:6491 fortran/module.c:6524
+#: fortran/module.c:6566
#, gcc-internal-format
msgid "Symbol %qs already declared"
msgstr ""
-#: fortran/module.c:6227
+#: fortran/module.c:6234
#, gcc-internal-format, gfc-internal-format
msgid "import_iso_c_binding_module(): Unable to create symbol for %s"
msgstr ""
-#: fortran/module.c:6335 fortran/module.c:6679
+#: fortran/module.c:6342 fortran/module.c:6686
#, gcc-internal-format
msgid "The symbol %qs, referenced at %L, is not in the selected standard"
msgstr ""
-#: fortran/module.c:6463
+#: fortran/module.c:6470
#, gcc-internal-format
msgid "Symbol %qs referenced at %L not found in intrinsic module ISO_C_BINDING"
msgstr ""
-#: fortran/module.c:6664
+#: fortran/module.c:6671
#, gcc-internal-format
msgid ""
"Use of intrinsic module %qs at %C conflicts with non-intrinsic module name "
"used previously"
msgstr ""
-#: fortran/module.c:6686
+#: fortran/module.c:6693
#, gcc-internal-format
msgid ""
"Use of the NUMERIC_STORAGE_SIZE named constant from intrinsic module "
"ISO_FORTRAN_ENV at %L is incompatible with option %qs"
msgstr ""
-#: fortran/module.c:6754
+#: fortran/module.c:6761
#, gcc-internal-format, gfc-internal-format
msgid ""
"Use of the NUMERIC_STORAGE_SIZE named constant from intrinsic module "
"ISO_FORTRAN_ENV at %C is incompatible with option %s"
msgstr ""
-#: fortran/module.c:6808
+#: fortran/module.c:6815
#, gcc-internal-format
msgid ""
"Symbol %qs referenced at %L not found in intrinsic module ISO_FORTRAN_ENV"
msgstr ""
-#: fortran/module.c:6834
+#: fortran/module.c:6841
#, gcc-internal-format, gfc-internal-format
msgid "USE statement at %C has no ONLY qualifier"
msgstr ""
-#: fortran/module.c:6863
+#: fortran/module.c:6870
#, gcc-internal-format, gfc-internal-format
msgid "ISO_FORTRAN_ENV intrinsic module at %C"
msgstr ""
-#: fortran/module.c:6875
+#: fortran/module.c:6882
#, gcc-internal-format, gfc-internal-format
msgid "ISO_C_BINDING module at %C"
msgstr ""
-#: fortran/module.c:6888
+#: fortran/module.c:6895
#, gcc-internal-format
msgid "Can't find an intrinsic module named %qs at %C"
msgstr ""
-#: fortran/module.c:6894
+#: fortran/module.c:6901
#, gcc-internal-format, gfc-internal-format
msgid "IEEE_FEATURES module at %C"
msgstr ""
-#: fortran/module.c:6900
+#: fortran/module.c:6907
#, gcc-internal-format, gfc-internal-format
msgid "IEEE_EXCEPTIONS module at %C"
msgstr ""
-#: fortran/module.c:6906
+#: fortran/module.c:6913
#, gcc-internal-format, gfc-internal-format
msgid "IEEE_ARITHMETIC module at %C"
msgstr ""
-#: fortran/module.c:6913
+#: fortran/module.c:6920
#, gcc-internal-format
msgid "Can't open module file %qs for reading at %C: %s"
msgstr ""
-#: fortran/module.c:6921
+#: fortran/module.c:6928
#, gcc-internal-format
msgid ""
"Use of non-intrinsic module %qs at %C conflicts with intrinsic module name "
"used previously"
msgstr ""
-#: fortran/module.c:6944
+#: fortran/module.c:6951
#, gcc-internal-format
msgid "File %qs opened at %C is not a GNU Fortran module file"
msgstr ""
-#: fortran/module.c:6952
+#: fortran/module.c:6959
#, gcc-internal-format
msgid ""
"Cannot read module file %qs opened at %C, because it was created by a "
"different version of GNU Fortran"
msgstr ""
-#: fortran/module.c:6967
+#: fortran/module.c:6974
#, gcc-internal-format, gfc-internal-format
msgid "Can't USE the same %smodule we're building!"
msgstr ""
-#: fortran/openmp.c:289 fortran/openmp.c:497 fortran/openmp.c:2399
-#: fortran/openmp.c:2473
+#: fortran/openmp.c:289 fortran/openmp.c:521 fortran/openmp.c:2454
+#: fortran/openmp.c:2528
#, gcc-internal-format, gfc-internal-format
msgid "COMMON block /%s/ not found at %C"
msgstr ""
msgid "Syntax error in OpenACC expression list at %C"
msgstr ""
-#: fortran/openmp.c:465
+#: fortran/openmp.c:457
+#, gcc-internal-format
+msgid "Unexpected OpenACC parallelism."
+msgstr ""
+
+#: fortran/openmp.c:489
#, gcc-internal-format, gfc-internal-format
msgid "Variable at %C is an element of a COMMON block"
msgstr ""
-#: fortran/openmp.c:525
+#: fortran/openmp.c:549
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after !$ACC DECLARE at %C"
msgstr ""
-#: fortran/openmp.c:535
+#: fortran/openmp.c:559
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in !$ACC DECLARE list at %C"
msgstr ""
-#: fortran/openmp.c:991
+#: fortran/openmp.c:1039
#, gcc-internal-format, gfc-internal-format
msgid "!$OMP DECLARE REDUCTION %s not found at %L"
msgstr ""
-#: fortran/openmp.c:1091
+#: fortran/openmp.c:1139
#, gcc-internal-format, gfc-internal-format
msgid "COLLAPSE clause argument not constant positive integer at %C"
msgstr ""
-#: fortran/openmp.c:1476
+#: fortran/openmp.c:1524
#, gcc-internal-format, gfc-internal-format
msgid "Invalid clause in module with $!ACC DECLARE at %L"
msgstr ""
-#: fortran/openmp.c:1486
+#: fortran/openmp.c:1534
#, gcc-internal-format, gfc-internal-format
msgid "Variable is USE-associated with $!ACC DECLARE at %L"
msgstr ""
-#: fortran/openmp.c:1494
+#: fortran/openmp.c:1542
#, gcc-internal-format, gfc-internal-format
msgid "Assumed-size dummy array with $!ACC DECLARE at %L"
msgstr ""
-#: fortran/openmp.c:1541
+#: fortran/openmp.c:1589
#, gcc-internal-format
msgid ""
"%<acc update%> must contain at least one %<device%> or %<host%> or %<self%> "
"clause at %L"
msgstr ""
-#: fortran/openmp.c:1591
-#, gcc-internal-format, gfc-internal-format
-msgid "Unexpected junk in !$ACC WAIT at %C"
-msgstr ""
-
-#: fortran/openmp.c:1600
+#: fortran/openmp.c:1651
#, gcc-internal-format, gfc-internal-format
msgid "Invalid argument to $!ACC WAIT at %L"
msgstr ""
-#: fortran/openmp.c:1609
+#: fortran/openmp.c:1660
#, gcc-internal-format, gfc-internal-format
msgid "WAIT clause at %L requires a scalar INTEGER expression"
msgstr ""
-#: fortran/openmp.c:1638
+#: fortran/openmp.c:1693
#, gcc-internal-format, gfc-internal-format
msgid "ACC CACHE directive must be inside of loop %C"
msgstr ""
-#: fortran/openmp.c:1669
+#: fortran/openmp.c:1724
#, gcc-internal-format
msgid "Multiple loop axes specified for routine"
msgstr ""
-#: fortran/openmp.c:1695
+#: fortran/openmp.c:1750
#, gcc-internal-format, gfc-internal-format
msgid ""
"Only the !$ACC ROUTINE form without list is allowed in interface block at %C"
msgstr ""
-#: fortran/openmp.c:1722
+#: fortran/openmp.c:1777
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in !$ACC ROUTINE ( NAME ) at %C, invalid function name %s"
msgstr ""
-#: fortran/openmp.c:1731
+#: fortran/openmp.c:1786
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in !$ACC ROUTINE ( NAME ) at %C"
msgstr ""
-#: fortran/openmp.c:1738
+#: fortran/openmp.c:1793
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in !$ACC ROUTINE ( NAME ) at %C, expecting ')' after NAME"
msgstr ""
-#: fortran/openmp.c:1844
+#: fortran/openmp.c:1899
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after $OMP CRITICAL statement at %C"
msgstr ""
-#: fortran/openmp.c:1909
+#: fortran/openmp.c:1964
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after $OMP FLUSH statement at %C"
msgstr ""
-#: fortran/openmp.c:2292 fortran/openmp.c:5151
+#: fortran/openmp.c:2347 fortran/openmp.c:5206
#, gcc-internal-format, gfc-internal-format
msgid "Redefinition of predefined %s !$OMP DECLARE REDUCTION at %L"
msgstr ""
-#: fortran/openmp.c:2296 fortran/openmp.c:5155
+#: fortran/openmp.c:2351 fortran/openmp.c:5210
#, gcc-internal-format, gfc-internal-format
msgid "Redefinition of predefined !$OMP DECLARE REDUCTION at %L"
msgstr ""
-#: fortran/openmp.c:2301
+#: fortran/openmp.c:2356
#, gcc-internal-format, gfc-internal-format
msgid "Redefinition of !$OMP DECLARE REDUCTION at %L"
msgstr ""
-#: fortran/openmp.c:2303
+#: fortran/openmp.c:2358
#, gcc-internal-format, gfc-internal-format
msgid "Previous !$OMP DECLARE REDUCTION at %L"
msgstr ""
-#: fortran/openmp.c:2323
+#: fortran/openmp.c:2378
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after !$OMP DECLARE REDUCTION at %C"
msgstr ""
-#: fortran/openmp.c:2352
+#: fortran/openmp.c:2407
#, gcc-internal-format, gfc-internal-format
msgid ""
"Only the !$OMP DECLARE TARGET form without list is allowed in interface "
"block at %C"
msgstr ""
-#: fortran/openmp.c:2378
+#: fortran/openmp.c:2433
#, gcc-internal-format, gfc-internal-format
msgid "OMP DECLARE TARGET on a variable at %C is an element of a COMMON block"
msgstr ""
-#: fortran/openmp.c:2417
+#: fortran/openmp.c:2472
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after !$OMP DECLARE TARGET at %C"
msgstr ""
-#: fortran/openmp.c:2423
+#: fortran/openmp.c:2478
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in !$OMP DECLARE TARGET list at %C"
msgstr ""
-#: fortran/openmp.c:2453
+#: fortran/openmp.c:2508
#, gcc-internal-format, gfc-internal-format
msgid "Threadprivate variable at %C is an element of a COMMON block"
msgstr ""
-#: fortran/openmp.c:2490
+#: fortran/openmp.c:2545
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after OMP THREADPRIVATE at %C"
msgstr ""
-#: fortran/openmp.c:2497
+#: fortran/openmp.c:2552
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in !$OMP THREADPRIVATE list at %C"
msgstr ""
-#: fortran/openmp.c:2578
+#: fortran/openmp.c:2633
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after TASKWAIT clause at %C"
msgstr ""
-#: fortran/openmp.c:2592
+#: fortran/openmp.c:2647
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after TASKYIELD clause at %C"
msgstr ""
-#: fortran/openmp.c:2717
+#: fortran/openmp.c:2772
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after $OMP WORKSHARE statement at %C"
msgstr ""
-#: fortran/openmp.c:2731
+#: fortran/openmp.c:2786
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after $OMP MASTER statement at %C"
msgstr ""
-#: fortran/openmp.c:2745
+#: fortran/openmp.c:2800
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after $OMP ORDERED statement at %C"
msgstr ""
-#: fortran/openmp.c:2790
+#: fortran/openmp.c:2845
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after $OMP ATOMIC statement at %C"
msgstr ""
-#: fortran/openmp.c:2817
+#: fortran/openmp.c:2872
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after $OMP BARRIER statement at %C"
msgstr ""
-#: fortran/openmp.c:2831
+#: fortran/openmp.c:2886
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after $OMP TASKGROUP statement at %C"
msgstr ""
-#: fortran/openmp.c:2881
+#: fortran/openmp.c:2936
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after $OMP CANCELLATION POINT statement at %C"
msgstr ""
-#: fortran/openmp.c:2901
+#: fortran/openmp.c:2956
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after NOWAIT clause at %C"
msgstr ""
-#: fortran/openmp.c:2941
+#: fortran/openmp.c:2996
#, gcc-internal-format, gfc-internal-format
msgid "%s clause at %L requires a scalar INTEGER expression"
msgstr ""
-#: fortran/openmp.c:2952
+#: fortran/openmp.c:3007
#, gcc-internal-format, gfc-internal-format
msgid "INTEGER expression of %s clause at %L must be positive"
msgstr ""
-#: fortran/openmp.c:2963
+#: fortran/openmp.c:3018
#, gcc-internal-format
msgid "POINTER object %qs of derived type in %s clause at %L"
msgstr ""
-#: fortran/openmp.c:2966
+#: fortran/openmp.c:3021
#, gcc-internal-format
msgid "Cray pointer object of derived type %qs in %s clause at %L"
msgstr ""
-#: fortran/openmp.c:2969
+#: fortran/openmp.c:3024
#, gcc-internal-format
msgid "Cray pointee object of derived type %qs in %s clause at %L"
msgstr ""
-#: fortran/openmp.c:2975
+#: fortran/openmp.c:3030
#, gcc-internal-format
msgid "POINTER object %qs of polymorphic type in %s clause at %L"
msgstr ""
-#: fortran/openmp.c:2980
+#: fortran/openmp.c:3035
#, gcc-internal-format
msgid "Cray pointer object of polymorphic type %qs in %s clause at %L"
msgstr ""
-#: fortran/openmp.c:2985
+#: fortran/openmp.c:3040
#, gcc-internal-format
msgid "Cray pointee object of polymorphic type %qs in %s clause at %L"
msgstr ""
-#: fortran/openmp.c:2995 fortran/openmp.c:3521
+#: fortran/openmp.c:3050 fortran/openmp.c:3576
#, gcc-internal-format
msgid "Assumed size array %qs in %s clause at %L"
msgstr ""
-#: fortran/openmp.c:2998
+#: fortran/openmp.c:3053
#, gcc-internal-format
msgid "Assumed rank array %qs in %s clause at %L"
msgstr ""
-#: fortran/openmp.c:3002
+#: fortran/openmp.c:3057
#, gcc-internal-format
msgid "Noncontiguous deferred shape array %qs in %s clause at %L"
msgstr ""
-#: fortran/openmp.c:3010
+#: fortran/openmp.c:3065
#, gcc-internal-format
msgid "ALLOCATABLE object %qs of derived type in %s clause at %L"
msgstr ""
-#: fortran/openmp.c:3015
+#: fortran/openmp.c:3070
#, gcc-internal-format
msgid "ALLOCATABLE object %qs of polymorphic type in %s clause at %L"
msgstr ""
-#: fortran/openmp.c:3027 fortran/openmp.c:3511 fortran/openmp.c:3684
+#: fortran/openmp.c:3082 fortran/openmp.c:3566 fortran/openmp.c:3739
#, gcc-internal-format
msgid "POINTER object %qs in %s clause at %L"
msgstr ""
-#: fortran/openmp.c:3032 fortran/openmp.c:3687
+#: fortran/openmp.c:3087 fortran/openmp.c:3742
#, gcc-internal-format
msgid "Cray pointer object %qs in %s clause at %L"
msgstr ""
-#: fortran/openmp.c:3037 fortran/openmp.c:3690
+#: fortran/openmp.c:3092 fortran/openmp.c:3745
#, gcc-internal-format
msgid "Cray pointee object %qs in %s clause at %L"
msgstr ""
-#: fortran/openmp.c:3042 fortran/openmp.c:3679
+#: fortran/openmp.c:3097 fortran/openmp.c:3734
#, gcc-internal-format
msgid "ALLOCATABLE object %qs in %s clause at %L"
msgstr ""
-#: fortran/openmp.c:3045
+#: fortran/openmp.c:3100
#, gcc-internal-format
msgid "VALUE object %qs in %s clause at %L"
msgstr ""
-#: fortran/openmp.c:3088
+#: fortran/openmp.c:3143
#, gcc-internal-format, gfc-internal-format
msgid "Implicitly declared function %s used in !$OMP DECLARE REDUCTION at %L "
msgstr ""
-#: fortran/openmp.c:3137
+#: fortran/openmp.c:3192
#, gcc-internal-format, gfc-internal-format
msgid ""
"Implicitly declared subroutine %s used in !$OMP DECLARE REDUCTION at %L "
msgstr ""
-#: fortran/openmp.c:3171 fortran/resolve.c:9395 fortran/resolve.c:10617
+#: fortran/openmp.c:3226 fortran/resolve.c:9401 fortran/resolve.c:10623
#, gcc-internal-format, gfc-internal-format
msgid "IF clause at %L requires a scalar LOGICAL expression"
msgstr ""
-#: fortran/openmp.c:3179
+#: fortran/openmp.c:3234
#, gcc-internal-format, gfc-internal-format
msgid "FINAL clause at %L requires a scalar LOGICAL expression"
msgstr ""
-#: fortran/openmp.c:3187
+#: fortran/openmp.c:3242
#, gcc-internal-format, gfc-internal-format
msgid "NUM_THREADS clause at %L requires a scalar INTEGER expression"
msgstr ""
-#: fortran/openmp.c:3195
+#: fortran/openmp.c:3250
#, gcc-internal-format, gfc-internal-format
msgid "SCHEDULE clause's chunk_size at %L requires a scalar INTEGER expression"
msgstr ""
-#: fortran/openmp.c:3210
+#: fortran/openmp.c:3265
#, gcc-internal-format
msgid "Variable %qs is not a dummy argument at %L"
msgstr ""
-#: fortran/openmp.c:3242
+#: fortran/openmp.c:3297
#, gcc-internal-format
msgid "Object %qs is not a variable at %L"
msgstr ""
-#: fortran/openmp.c:3258 fortran/openmp.c:3269 fortran/openmp.c:3277
-#: fortran/openmp.c:3288 fortran/openmp.c:3300 fortran/openmp.c:3315
-#: fortran/openmp.c:4958
+#: fortran/openmp.c:3313 fortran/openmp.c:3324 fortran/openmp.c:3332
+#: fortran/openmp.c:3343 fortran/openmp.c:3355 fortran/openmp.c:3370
+#: fortran/openmp.c:5013
#, gcc-internal-format
msgid "Symbol %qs present on multiple clauses at %L"
msgstr ""
-#: fortran/openmp.c:3322
+#: fortran/openmp.c:3377
#, gcc-internal-format
msgid "Array %qs is not permitted in reduction at %L"
msgstr ""
-#: fortran/openmp.c:3335
+#: fortran/openmp.c:3390
#, gcc-internal-format
msgid "Symbol %qs present on both FROM and TO clauses at %L"
msgstr ""
-#: fortran/openmp.c:3357
+#: fortran/openmp.c:3412
#, gcc-internal-format
msgid "Non-THREADPRIVATE object %qs in COPYIN clause at %L"
msgstr ""
-#: fortran/openmp.c:3365
+#: fortran/openmp.c:3420
#, gcc-internal-format
msgid "Assumed size array %qs in COPYPRIVATE clause at %L"
msgstr ""
-#: fortran/openmp.c:3368
+#: fortran/openmp.c:3423
#, gcc-internal-format
msgid "INTENT(IN) POINTER %qs in COPYPRIVATE clause at %L"
msgstr ""
-#: fortran/openmp.c:3376
+#: fortran/openmp.c:3431
#, gcc-internal-format
msgid "THREADPRIVATE object %qs in SHARED clause at %L"
msgstr ""
-#: fortran/openmp.c:3379
+#: fortran/openmp.c:3434
#, gcc-internal-format
msgid "Cray pointee %qs in SHARED clause at %L"
msgstr ""
-#: fortran/openmp.c:3382
+#: fortran/openmp.c:3437
#, gcc-internal-format
msgid "ASSOCIATE name %qs in SHARED clause at %L"
msgstr ""
-#: fortran/openmp.c:3397
+#: fortran/openmp.c:3452
#, gcc-internal-format
msgid ""
"%qs in ALIGNED clause must be POINTER, ALLOCATABLE, Cray pointer or C_PTR at "
"%L"
msgstr ""
-#: fortran/openmp.c:3409
+#: fortran/openmp.c:3464
#, gcc-internal-format
msgid ""
"%qs in ALIGNED clause at %L requires a scalar positive constant integer "
"alignment expression"
msgstr ""
-#: fortran/openmp.c:3429 fortran/openmp.c:3450
+#: fortran/openmp.c:3484 fortran/openmp.c:3505
#, gcc-internal-format
msgid "%qs in %s clause at %L is not a proper array section"
msgstr ""
-#: fortran/openmp.c:3433
+#: fortran/openmp.c:3488
#, gcc-internal-format, gfc-internal-format
msgid "Coarrays not supported in %s clause at %L"
msgstr ""
-#: fortran/openmp.c:3442
+#: fortran/openmp.c:3497
#, gcc-internal-format, gfc-internal-format
msgid "Stride should not be specified for array section in %s clause at %L"
msgstr ""
-#: fortran/openmp.c:3463
+#: fortran/openmp.c:3518
#, gcc-internal-format
msgid "%qs in DEPEND clause at %L is a zero size array section"
msgstr ""
-#: fortran/openmp.c:3485 fortran/openmp.c:3497
+#: fortran/openmp.c:3540 fortran/openmp.c:3552
#, gcc-internal-format
msgid "THREADPRIVATE object %qs in %s clause at %L"
msgstr ""
-#: fortran/openmp.c:3488 fortran/openmp.c:3500
+#: fortran/openmp.c:3543 fortran/openmp.c:3555
#, gcc-internal-format
msgid "Cray pointee %qs in %s clause at %L"
msgstr ""
-#: fortran/openmp.c:3503
+#: fortran/openmp.c:3558
#, gcc-internal-format
msgid "ASSOCIATE name %qs in %s clause at %L"
msgstr ""
-#: fortran/openmp.c:3508
+#: fortran/openmp.c:3563
#, gcc-internal-format
msgid "Procedure pointer %qs in %s clause at %L"
msgstr ""
-#: fortran/openmp.c:3514
+#: fortran/openmp.c:3569
#, gcc-internal-format
msgid "Cray pointer %qs in %s clause at %L"
msgstr ""
-#: fortran/openmp.c:3524
+#: fortran/openmp.c:3579
#, gcc-internal-format
msgid "Variable %qs in %s clause is used in NAMELIST statement at %L"
msgstr ""
#. case OMP_LIST_REDUCTION:
-#: fortran/openmp.c:3534
+#: fortran/openmp.c:3589
#, gcc-internal-format
msgid "INTENT(IN) POINTER %qs in %s clause at %L"
msgstr ""
-#: fortran/openmp.c:3627
+#: fortran/openmp.c:3682
#, gcc-internal-format, gfc-internal-format
msgid "!$OMP DECLARE REDUCTION %s not found for type %s at %L"
msgstr ""
-#: fortran/openmp.c:3650
+#: fortran/openmp.c:3705
#, gcc-internal-format
msgid "LINEAR variable %qs must be INTEGER at %L"
msgstr ""
-#: fortran/openmp.c:3653
+#: fortran/openmp.c:3708
#, gcc-internal-format
msgid "LINEAR dummy argument %qs must have VALUE attribute at %L"
msgstr ""
-#: fortran/openmp.c:3661
+#: fortran/openmp.c:3716
#, gcc-internal-format
msgid ""
"%qs in LINEAR clause at %L requires a scalar integer linear-step expression"
msgstr ""
-#: fortran/openmp.c:3665
+#: fortran/openmp.c:3720
#, gcc-internal-format
msgid ""
"%qs in LINEAR clause at %L requires a constant integer linear-step expression"
msgstr ""
-#: fortran/openmp.c:3709
+#: fortran/openmp.c:3764
#, gcc-internal-format, gfc-internal-format
msgid "SAFELEN clause at %L requires a scalar INTEGER expression"
msgstr ""
-#: fortran/openmp.c:3717
+#: fortran/openmp.c:3772
#, gcc-internal-format, gfc-internal-format
msgid "SIMDLEN clause at %L requires a scalar INTEGER expression"
msgstr ""
-#: fortran/openmp.c:3725
+#: fortran/openmp.c:3780
#, gcc-internal-format, gfc-internal-format
msgid "NUM_TEAMS clause at %L requires a scalar INTEGER expression"
msgstr ""
-#: fortran/openmp.c:3733
+#: fortran/openmp.c:3788
#, gcc-internal-format, gfc-internal-format
msgid "DEVICE clause at %L requires a scalar INTEGER expression"
msgstr ""
-#: fortran/openmp.c:3741
+#: fortran/openmp.c:3796
#, gcc-internal-format, gfc-internal-format
msgid ""
"DIST_SCHEDULE clause's chunk_size at %L requires a scalar INTEGER expression"
msgstr ""
-#: fortran/openmp.c:3749
+#: fortran/openmp.c:3804
#, gcc-internal-format, gfc-internal-format
msgid "THREAD_LIMIT clause at %L requires a scalar INTEGER expression"
msgstr ""
-#: fortran/openmp.c:3877
+#: fortran/openmp.c:3932
#, gcc-internal-format, gfc-internal-format
msgid ""
"!$OMP ATOMIC statement must set a scalar variable of intrinsic type at %L"
msgstr ""
-#: fortran/openmp.c:3902
+#: fortran/openmp.c:3957
#, gcc-internal-format, gfc-internal-format
msgid ""
"!$OMP ATOMIC READ statement must read from a scalar variable of intrinsic "
"type at %L"
msgstr ""
-#: fortran/openmp.c:3907
+#: fortran/openmp.c:3962
#, gcc-internal-format, gfc-internal-format
msgid ""
"expr in !$OMP ATOMIC WRITE assignment var = expr must be scalar and cannot "
"reference var at %L"
msgstr ""
-#: fortran/openmp.c:3929 fortran/openmp.c:4220
+#: fortran/openmp.c:3984 fortran/openmp.c:4275
#, gcc-internal-format, gfc-internal-format
msgid ""
"!$OMP ATOMIC CAPTURE capture statement must read from a scalar variable of "
"intrinsic type at %L"
msgstr ""
-#: fortran/openmp.c:3944
+#: fortran/openmp.c:3999
#, gcc-internal-format, gfc-internal-format
msgid ""
"!$OMP ATOMIC CAPTURE update statement must set a scalar variable of "
"intrinsic type at %L"
msgstr ""
-#: fortran/openmp.c:3951 fortran/openmp.c:4227
+#: fortran/openmp.c:4006 fortran/openmp.c:4282
#, gcc-internal-format, gfc-internal-format
msgid ""
"!$OMP ATOMIC CAPTURE capture statement reads from different variable than "
"update statement writes into at %L"
msgstr ""
-#: fortran/openmp.c:3967
+#: fortran/openmp.c:4022
#, gcc-internal-format, gfc-internal-format
msgid "!$OMP ATOMIC with ALLOCATABLE variable at %L"
msgstr ""
-#: fortran/openmp.c:4009
+#: fortran/openmp.c:4064
#, gcc-internal-format, gfc-internal-format
msgid ""
"!$OMP ATOMIC assignment operator must be binary +, *, -, /, .AND., .OR., ."
"EQV. or .NEQV. at %L"
msgstr ""
-#: fortran/openmp.c:4057
+#: fortran/openmp.c:4112
#, gcc-internal-format, gfc-internal-format
msgid ""
"!$OMP ATOMIC assignment must be var = var op expr or var = expr op var at %L"
msgstr ""
-#: fortran/openmp.c:4071
+#: fortran/openmp.c:4126
#, gcc-internal-format, gfc-internal-format
msgid ""
"!$OMP ATOMIC var = var op expr not mathematically equivalent to var = var op "
"(expr) at %L"
msgstr ""
-#: fortran/openmp.c:4103
+#: fortran/openmp.c:4158
#, gcc-internal-format, gfc-internal-format
msgid ""
"expr in !$OMP ATOMIC assignment var = var op expr must be scalar and cannot "
"reference var at %L"
msgstr ""
-#: fortran/openmp.c:4127
+#: fortran/openmp.c:4182
#, gcc-internal-format, gfc-internal-format
msgid ""
"!$OMP ATOMIC assignment intrinsic IAND, IOR or IEOR must have two arguments "
"at %L"
msgstr ""
-#: fortran/openmp.c:4134
+#: fortran/openmp.c:4189
#, gcc-internal-format, gfc-internal-format
msgid ""
"!$OMP ATOMIC assignment intrinsic must be MIN, MAX, IAND, IOR or IEOR at %L"
msgstr ""
-#: fortran/openmp.c:4151
+#: fortran/openmp.c:4206
#, gcc-internal-format
msgid ""
"!$OMP ATOMIC intrinsic arguments except one must not reference %qs at %L"
msgstr ""
-#: fortran/openmp.c:4158
+#: fortran/openmp.c:4213
#, gcc-internal-format, gfc-internal-format
msgid "!$OMP ATOMIC intrinsic arguments must be scalar at %L"
msgstr ""
-#: fortran/openmp.c:4166
+#: fortran/openmp.c:4221
#, gcc-internal-format
msgid "First or last !$OMP ATOMIC intrinsic argument must be %qs at %L"
msgstr ""
-#: fortran/openmp.c:4184
+#: fortran/openmp.c:4239
#, gcc-internal-format, gfc-internal-format
msgid ""
"!$OMP ATOMIC assignment must have an operator or intrinsic on right hand "
"side at %L"
msgstr ""
-#: fortran/openmp.c:4198
+#: fortran/openmp.c:4253
#, gcc-internal-format, gfc-internal-format
msgid ""
"!$OMP ATOMIC CAPTURE capture statement must set a scalar variable of "
"intrinsic type at %L"
msgstr ""
-#: fortran/openmp.c:4475
+#: fortran/openmp.c:4530
#, gcc-internal-format, gfc-internal-format
msgid "%s cannot be a DO WHILE or DO without loop control at %L"
msgstr ""
-#: fortran/openmp.c:4481
+#: fortran/openmp.c:4536
#, gcc-internal-format, gfc-internal-format
msgid "%s cannot be a DO CONCURRENT loop at %L"
msgstr ""
-#: fortran/openmp.c:4487
+#: fortran/openmp.c:4542
#, gcc-internal-format, gfc-internal-format
msgid "%s iteration variable must be of type integer at %L"
msgstr ""
-#: fortran/openmp.c:4491
+#: fortran/openmp.c:4546
#, gcc-internal-format, gfc-internal-format
msgid "%s iteration variable must not be THREADPRIVATE at %L"
msgstr ""
-#: fortran/openmp.c:4504
+#: fortran/openmp.c:4559
#, gcc-internal-format, gfc-internal-format
msgid ""
"%s iteration variable present on clause other than PRIVATE or LASTPRIVATE at "
"%L"
msgstr ""
-#: fortran/openmp.c:4508
+#: fortran/openmp.c:4563
#, gcc-internal-format, gfc-internal-format
msgid "%s iteration variable present on clause other than LASTPRIVATE at %L"
msgstr ""
-#: fortran/openmp.c:4512
+#: fortran/openmp.c:4567
#, gcc-internal-format, gfc-internal-format
msgid "%s iteration variable present on clause other than LINEAR at %L"
msgstr ""
-#: fortran/openmp.c:4530
+#: fortran/openmp.c:4585
#, gcc-internal-format, gfc-internal-format
msgid "%s collapsed loops don't form rectangular iteration space at %L"
msgstr ""
-#: fortran/openmp.c:4544
+#: fortran/openmp.c:4599
#, gcc-internal-format, gfc-internal-format
msgid "collapsed %s loops not perfectly nested at %L"
msgstr ""
-#: fortran/openmp.c:4553 fortran/openmp.c:4561
+#: fortran/openmp.c:4608 fortran/openmp.c:4616
#, gcc-internal-format, gfc-internal-format
msgid "not enough DO loops for collapsed %s at %L"
msgstr ""
-#: fortran/openmp.c:4645 fortran/openmp.c:4658
+#: fortran/openmp.c:4700 fortran/openmp.c:4713
#, gcc-internal-format, gfc-internal-format
msgid "The %s directive cannot be specified within a %s region at %L"
msgstr ""
-#: fortran/openmp.c:4677
+#: fortran/openmp.c:4732
#, gcc-internal-format, gfc-internal-format
msgid "!$ACC LOOP cannot be a DO WHILE or DO without loop control at %L"
msgstr ""
-#: fortran/openmp.c:4683
+#: fortran/openmp.c:4738
#, gcc-internal-format, gfc-internal-format
msgid "!$ACC LOOP iteration variable must be of type integer at %L"
msgstr ""
-#: fortran/openmp.c:4699
+#: fortran/openmp.c:4754
#, gcc-internal-format, gfc-internal-format
msgid "!$ACC LOOP %s loops don't form rectangular iteration space at %L"
msgstr ""
-#: fortran/openmp.c:4713
+#: fortran/openmp.c:4768
#, gcc-internal-format, gfc-internal-format
msgid "%s !$ACC LOOP loops not perfectly nested at %L"
msgstr ""
-#: fortran/openmp.c:4723 fortran/openmp.c:4732
+#: fortran/openmp.c:4778 fortran/openmp.c:4787
#, gcc-internal-format, gfc-internal-format
msgid "not enough DO loops for %s !$ACC LOOP at %L"
msgstr ""
-#: fortran/openmp.c:4747 fortran/openmp.c:4754
+#: fortran/openmp.c:4802 fortran/openmp.c:4809
#, gcc-internal-format, gfc-internal-format
msgid "!$ACC LOOP %s in PARALLEL region doesn't allow %s arguments at %L"
msgstr ""
-#: fortran/openmp.c:4776
+#: fortran/openmp.c:4831
#, gcc-internal-format, gfc-internal-format
msgid ""
"Loop parallelized across gangs is not allowed inside another loop "
"parallelized across gangs at %L"
msgstr ""
-#: fortran/openmp.c:4780 fortran/openmp.c:4784
+#: fortran/openmp.c:4835 fortran/openmp.c:4839
#, gcc-internal-format, gfc-internal-format
msgid ""
"Loop parallelized across gangs is not allowed inside loop parallelized "
"across workers at %L"
msgstr ""
-#: fortran/openmp.c:4791
+#: fortran/openmp.c:4846
#, gcc-internal-format, gfc-internal-format
msgid ""
"Loop parallelized across workers is not allowed inside another loop "
"parallelized across workers at %L"
msgstr ""
-#: fortran/openmp.c:4795
+#: fortran/openmp.c:4850
#, gcc-internal-format, gfc-internal-format
msgid ""
"Loop parallelized across workers is not allowed inside another loop "
"parallelized across vectors at %L"
msgstr ""
-#: fortran/openmp.c:4801
+#: fortran/openmp.c:4856
#, gcc-internal-format, gfc-internal-format
msgid ""
"Loop parallelized across vectors is not allowed inside another loop "
"parallelized across vectors at %L"
msgstr ""
-#: fortran/openmp.c:4813
+#: fortran/openmp.c:4868
#, gcc-internal-format, gfc-internal-format
msgid "Clause SEQ conflicts with INDEPENDENT at %L"
msgstr ""
-#: fortran/openmp.c:4815
+#: fortran/openmp.c:4870
#, gcc-internal-format, gfc-internal-format
msgid "Clause SEQ conflicts with GANG at %L"
msgstr ""
-#: fortran/openmp.c:4817
+#: fortran/openmp.c:4872
#, gcc-internal-format, gfc-internal-format
msgid "Clause SEQ conflicts with WORKER at %L"
msgstr ""
-#: fortran/openmp.c:4819
+#: fortran/openmp.c:4874
#, gcc-internal-format, gfc-internal-format
msgid "Clause SEQ conflicts with VECTOR at %L"
msgstr ""
-#: fortran/openmp.c:4821
+#: fortran/openmp.c:4876
#, gcc-internal-format, gfc-internal-format
msgid "Clause SEQ conflicts with AUTO at %L"
msgstr ""
-#: fortran/openmp.c:4826
+#: fortran/openmp.c:4881
#, gcc-internal-format, gfc-internal-format
msgid "Clause AUTO conflicts with GANG at %L"
msgstr ""
-#: fortran/openmp.c:4828
+#: fortran/openmp.c:4883
#, gcc-internal-format, gfc-internal-format
msgid "Clause AUTO conflicts with WORKER at %L"
msgstr ""
-#: fortran/openmp.c:4830
+#: fortran/openmp.c:4885
#, gcc-internal-format, gfc-internal-format
msgid "Clause AUTO conflicts with VECTOR at %L"
msgstr ""
-#: fortran/openmp.c:4834
+#: fortran/openmp.c:4889
#, gcc-internal-format, gfc-internal-format
msgid ""
"Tiled loop cannot be parallelized across gangs, workers and vectors at the "
"same time at %L"
msgstr ""
-#: fortran/openmp.c:4869
+#: fortran/openmp.c:4924
#, gcc-internal-format, gfc-internal-format
msgid "TILE requires constant expression at %L"
msgstr ""
-#: fortran/openmp.c:4934
+#: fortran/openmp.c:4989
#, gcc-internal-format
msgid "PARAMETER object %qs is not allowed at %L"
msgstr ""
-#: fortran/openmp.c:4941
+#: fortran/openmp.c:4996
#, gcc-internal-format
msgid "Array sections: %qs not allowed in $!ACC DECLARE at %L"
msgstr ""
-#: fortran/openmp.c:5060
+#: fortran/openmp.c:5115
#, gcc-internal-format, gfc-internal-format
msgid "OMP TARGET UPDATE at %L requires at least one TO or FROM clause"
msgstr ""
-#: fortran/openmp.c:5081
+#: fortran/openmp.c:5136
#, gcc-internal-format
msgid "!$OMP DECLARE SIMD should refer to containing procedure %qs at %L"
msgstr ""
-#: fortran/openmp.c:5105
+#: fortran/openmp.c:5160
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable other than OMP_PRIV or OMP_ORIG used in INITIALIZER clause of !$OMP "
"DECLARE REDUCTION at %L"
msgstr ""
-#: fortran/openmp.c:5113
+#: fortran/openmp.c:5168
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable other than OMP_OUT or OMP_IN used in combiner of !$OMP DECLARE "
"REDUCTION at %L"
msgstr ""
-#: fortran/openmp.c:5142
+#: fortran/openmp.c:5197
#, gcc-internal-format, gfc-internal-format
msgid "Invalid operator for !$OMP DECLARE REDUCTION %s at %L"
msgstr ""
-#: fortran/openmp.c:5164
+#: fortran/openmp.c:5219
#, gcc-internal-format, gfc-internal-format
msgid "CHARACTER length in !$OMP DECLARE REDUCTION %s not constant at %L"
msgstr ""
-#: fortran/openmp.c:5180
+#: fortran/openmp.c:5235
#, gcc-internal-format, gfc-internal-format
msgid ""
"Subroutine call with alternate returns in combiner of !$OMP DECLARE "
"REDUCTION at %L"
msgstr ""
-#: fortran/openmp.c:5195
+#: fortran/openmp.c:5250
#, gcc-internal-format, gfc-internal-format
msgid ""
"Subroutine call with alternate returns in INITIALIZER clause of !$OMP "
"DECLARE REDUCTION at %L"
msgstr ""
-#: fortran/openmp.c:5205
+#: fortran/openmp.c:5260
#, gcc-internal-format, gfc-internal-format
msgid ""
"One of actual subroutine arguments in INITIALIZER clause of !$OMP DECLARE "
"REDUCTION must be OMP_PRIV at %L"
msgstr ""
-#: fortran/openmp.c:5213
+#: fortran/openmp.c:5268
#, gcc-internal-format, gfc-internal-format
msgid ""
"Missing INITIALIZER clause for !$OMP DECLARE REDUCTION of derived type "
"without default initializer at %L"
msgstr ""
-#: fortran/options.c:202
+#: fortran/options.c:213
#, gcc-internal-format
msgid "-fexcess-precision=standard for Fortran"
msgstr ""
-#: fortran/options.c:289
+#: fortran/options.c:300
#, gcc-internal-format
msgid "Reading file %qs as free form"
msgstr ""
-#: fortran/options.c:299
+#: fortran/options.c:310
#, gcc-internal-format
msgid "%<-fd-lines-as-comments%> has no effect in free form"
msgstr ""
-#: fortran/options.c:302
+#: fortran/options.c:313
#, gcc-internal-format
msgid "%<-fd-lines-as-code%> has no effect in free form"
msgstr ""
-#: fortran/options.c:333
+#: fortran/options.c:344
#, gcc-internal-format
msgid "Flag %<-fno-automatic%> overwrites %<-fmax-stack-var-size=%d%>"
msgstr ""
-#: fortran/options.c:336
+#: fortran/options.c:347
#, gcc-internal-format
msgid "Flag %<-fno-automatic%> overwrites %<-frecursive%>"
msgstr ""
-#: fortran/options.c:338
+#: fortran/options.c:349
#, gcc-internal-format
msgid ""
"Flag %<-fno-automatic%> overwrites %<-frecursive%> implied by %<-fopenmp%>"
msgstr ""
-#: fortran/options.c:341
+#: fortran/options.c:352
#, gcc-internal-format
msgid "Flag %<-frecursive%> overwrites %<-fmax-stack-var-size=%d%>"
msgstr ""
-#: fortran/options.c:344
+#: fortran/options.c:355
#, gcc-internal-format
msgid ""
"Flag %<-fmax-stack-var-size=%d%> overwrites %<-frecursive%> implied by %<-"
"fopenmp%>"
msgstr ""
-#: fortran/options.c:381
+#: fortran/options.c:392
#, gcc-internal-format
msgid "Fixed line length must be at least seven"
msgstr ""
-#: fortran/options.c:384
+#: fortran/options.c:395
#, gcc-internal-format
msgid "Free line length must be at least three"
msgstr ""
-#: fortran/options.c:387
+#: fortran/options.c:398
#, gcc-internal-format, gfc-internal-format
msgid "Maximum subrecord length cannot exceed %d"
msgstr ""
-#: fortran/options.c:406
+#: fortran/options.c:417
#, gcc-internal-format
msgid "gfortran: Only one %<-J%> option allowed"
msgstr ""
-#: fortran/options.c:478
+#: fortran/options.c:489
#, gcc-internal-format
msgid "Argument to %<-ffpe-trap%> is not valid: %s"
msgstr ""
-#: fortran/options.c:480
+#: fortran/options.c:491
#, gcc-internal-format
msgid "Argument to %<-ffpe-summary%> is not valid: %s"
msgstr ""
-#: fortran/options.c:529
+#: fortran/options.c:540
#, gcc-internal-format
msgid "Argument to %<-fcheck%> is not valid: %s"
msgstr ""
-#: fortran/options.c:578
+#: fortran/options.c:589
#, gcc-internal-format
msgid "%<-static-libgfortran%> is not supported in this configuration"
msgstr ""
-#: fortran/options.c:601
+#: fortran/options.c:612
#, gcc-internal-format, gfc-internal-format
msgid "Maximum supported identifier length is %d"
msgstr ""
-#: fortran/options.c:621
+#: fortran/options.c:632
#, gcc-internal-format
msgid "Unrecognized option to %<-finit-logical%>: %s"
msgstr ""
-#: fortran/options.c:637
+#: fortran/options.c:648
#, gcc-internal-format
msgid "The value of n in %<-finit-character=n%> must be between 0 and 127"
msgstr ""
-#: fortran/parse.c:579
+#: fortran/parse.c:583
#, gcc-internal-format, gfc-internal-format
msgid "Unclassifiable statement at %C"
msgstr ""
-#: fortran/parse.c:623
+#: fortran/parse.c:619
#, gcc-internal-format, gfc-internal-format
msgid "OpenACC directives at %C may not appear in PURE procedures"
msgstr ""
-#: fortran/parse.c:692
+#: fortran/parse.c:695
#, gcc-internal-format, gfc-internal-format
msgid "Unclassifiable OpenACC directive at %C"
msgstr ""
-#: fortran/parse.c:715
+#: fortran/parse.c:776
#, gcc-internal-format, gfc-internal-format
msgid "OpenMP directives at %C may not appear in PURE or ELEMENTAL procedures"
msgstr ""
-#: fortran/parse.c:890
+#: fortran/parse.c:955
#, gcc-internal-format, gfc-internal-format
msgid "Unclassifiable OpenMP directive at %C"
msgstr ""
-#: fortran/parse.c:917
+#: fortran/parse.c:989
#, gcc-internal-format, gfc-internal-format
msgid "Unclassifiable GCC directive at %C"
msgstr ""
-#: fortran/parse.c:976 fortran/parse.c:1208
+#: fortran/parse.c:1048 fortran/parse.c:1280
#, gcc-internal-format, gfc-internal-format
msgid "Zero is not a valid statement label at %C"
msgstr ""
-#: fortran/parse.c:983 fortran/parse.c:1200
+#: fortran/parse.c:1055 fortran/parse.c:1272
#, gcc-internal-format, gfc-internal-format
msgid "Non-numeric character in statement label at %C"
msgstr ""
-#: fortran/parse.c:995 fortran/parse.c:1249
+#: fortran/parse.c:1067 fortran/parse.c:1321
#, gcc-internal-format, gfc-internal-format
msgid "Semicolon at %C needs to be preceded by statement"
msgstr ""
-#: fortran/parse.c:1003 fortran/parse.c:1264
+#: fortran/parse.c:1075 fortran/parse.c:1336
#, gcc-internal-format, gfc-internal-format
msgid "Ignoring statement label in empty statement at %L"
msgstr ""
-#: fortran/parse.c:1070 fortran/parse.c:1251
+#: fortran/parse.c:1142 fortran/parse.c:1323
#, gcc-internal-format, gfc-internal-format
msgid "Fortran 2008: Semicolon at %C without preceding statement"
msgstr ""
-#: fortran/parse.c:1093 fortran/parse.c:1227
+#: fortran/parse.c:1165 fortran/parse.c:1299
#, gcc-internal-format, gfc-internal-format
msgid "Bad continuation line at %C"
msgstr ""
-#: fortran/parse.c:1514
+#: fortran/parse.c:1593
#, gcc-internal-format, gfc-internal-format
msgid "FORMAT statement at %L does not have a statement label"
msgstr ""
-#: fortran/parse.c:2194
+#: fortran/parse.c:2291
#, gcc-internal-format
msgid "gfc_ascii_statement(): Bad statement code"
msgstr ""
-#: fortran/parse.c:2339
+#: fortran/parse.c:2436
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected %s statement at %C"
msgstr ""
-#: fortran/parse.c:2485
+#: fortran/parse.c:2591
#, gcc-internal-format, gfc-internal-format
msgid "%s statement at %C cannot follow %s statement at %L"
msgstr ""
-#: fortran/parse.c:2502
+#: fortran/parse.c:2608
#, gcc-internal-format
msgid "Unexpected end of file in %qs"
msgstr ""
-#: fortran/parse.c:2534
+#: fortran/parse.c:2640
#, gcc-internal-format
msgid "Derived-type %qs with SEQUENCE must not have a CONTAINS section at %C"
msgstr ""
-#: fortran/parse.c:2537
+#: fortran/parse.c:2643
#, gcc-internal-format
msgid "Derived-type %qs with BIND(C) must not have a CONTAINS section at %C"
msgstr ""
-#: fortran/parse.c:2557
+#: fortran/parse.c:2663
#, gcc-internal-format, gfc-internal-format
msgid "Components in TYPE at %C must precede CONTAINS"
msgstr ""
-#: fortran/parse.c:2561
+#: fortran/parse.c:2667
#, gcc-internal-format, gfc-internal-format
msgid "Type-bound procedure at %C"
msgstr ""
-#: fortran/parse.c:2569
+#: fortran/parse.c:2675
#, gcc-internal-format, gfc-internal-format
msgid "GENERIC binding at %C"
msgstr ""
-#: fortran/parse.c:2577
+#: fortran/parse.c:2683
#, gcc-internal-format, gfc-internal-format
msgid "FINAL procedure declaration at %C"
msgstr ""
-#: fortran/parse.c:2589
+#: fortran/parse.c:2695
#, gcc-internal-format, gfc-internal-format
msgid "Derived type definition at %C with empty CONTAINS section"
msgstr ""
-#: fortran/parse.c:2599 fortran/parse.c:2702
+#: fortran/parse.c:2705 fortran/parse.c:3160
#, gcc-internal-format, gfc-internal-format
msgid "PRIVATE statement in TYPE at %C must be inside a MODULE"
msgstr ""
-#: fortran/parse.c:2606
+#: fortran/parse.c:2712
#, gcc-internal-format, gfc-internal-format
msgid "PRIVATE statement at %C must precede procedure bindings"
msgstr ""
-#: fortran/parse.c:2613 fortran/parse.c:2715
+#: fortran/parse.c:2719 fortran/parse.c:3173
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate PRIVATE statement at %C"
msgstr ""
-#: fortran/parse.c:2623
+#: fortran/parse.c:2729
#, gcc-internal-format, gfc-internal-format
msgid "SEQUENCE statement at %C must precede CONTAINS"
msgstr ""
-#: fortran/parse.c:2627
+#: fortran/parse.c:2733
#, gcc-internal-format, gfc-internal-format
msgid "Already inside a CONTAINS block at %C"
msgstr ""
-#: fortran/parse.c:2685
-#, gcc-internal-format, gfc-internal-format
-msgid "FINAL declaration at %C must be inside CONTAINS"
-msgstr ""
-
-#: fortran/parse.c:2693
-#, gcc-internal-format, gfc-internal-format
-msgid "Derived type definition at %C without components"
-msgstr ""
-
-#: fortran/parse.c:2709
-#, gcc-internal-format, gfc-internal-format
-msgid "PRIVATE statement at %C must precede structure components"
-msgstr ""
-
-#: fortran/parse.c:2726
-#, gcc-internal-format, gfc-internal-format
-msgid "SEQUENCE statement at %C must precede structure components"
-msgstr ""
-
-#: fortran/parse.c:2732
-#, gcc-internal-format, gfc-internal-format
-msgid "SEQUENCE attribute at %C already specified in TYPE statement"
-msgstr ""
-
-#: fortran/parse.c:2737
-#, gcc-internal-format, gfc-internal-format
-msgid "Duplicate SEQUENCE statement at %C"
-msgstr ""
-
-#: fortran/parse.c:2747
-#, gcc-internal-format, gfc-internal-format
-msgid "CONTAINS block in derived type definition at %C"
-msgstr ""
-
#: fortran/parse.c:2852
#, gcc-internal-format, gfc-internal-format
msgid ""
#: fortran/parse.c:2968
#, gcc-internal-format, gfc-internal-format
+msgid "failed to create map component '%s'"
+msgstr ""
+
+#: fortran/parse.c:3001
+#, gcc-internal-format, gfc-internal-format
+msgid "failed to create union component '%s'"
+msgstr ""
+
+#: fortran/parse.c:3056
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in nested structure declaration at %C"
+msgstr ""
+
+#: fortran/parse.c:3143
+#, gcc-internal-format, gfc-internal-format
+msgid "FINAL declaration at %C must be inside CONTAINS"
+msgstr ""
+
+#: fortran/parse.c:3151
+#, gcc-internal-format, gfc-internal-format
+msgid "Derived type definition at %C without components"
+msgstr ""
+
+#: fortran/parse.c:3167
+#, gcc-internal-format, gfc-internal-format
+msgid "PRIVATE statement at %C must precede structure components"
+msgstr ""
+
+#: fortran/parse.c:3184
+#, gcc-internal-format, gfc-internal-format
+msgid "SEQUENCE statement at %C must precede structure components"
+msgstr ""
+
+#: fortran/parse.c:3190
+#, gcc-internal-format, gfc-internal-format
+msgid "SEQUENCE attribute at %C already specified in TYPE statement"
+msgstr ""
+
+#: fortran/parse.c:3195
+#, gcc-internal-format, gfc-internal-format
+msgid "Duplicate SEQUENCE statement at %C"
+msgstr ""
+
+#: fortran/parse.c:3205
+#, gcc-internal-format, gfc-internal-format
+msgid "CONTAINS block in derived type definition at %C"
+msgstr ""
+
+#: fortran/parse.c:3263
+#, gcc-internal-format, gfc-internal-format
msgid "ENUM declaration at %C has no ENUMERATORS"
msgstr ""
-#: fortran/parse.c:3055
+#: fortran/parse.c:3350
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected %s statement in INTERFACE block at %C"
msgstr ""
-#: fortran/parse.c:3079
+#: fortran/parse.c:3374
#, gcc-internal-format
msgid ""
"Name %qs of ABSTRACT INTERFACE at %C cannot be the same as an intrinsic type"
msgstr ""
-#: fortran/parse.c:3113
+#: fortran/parse.c:3408
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected %s statement at %C in INTERFACE body"
msgstr ""
-#: fortran/parse.c:3131
+#: fortran/parse.c:3426
#, gcc-internal-format
msgid ""
"INTERFACE procedure %qs at %L has the same name as the enclosing procedure"
msgstr ""
-#: fortran/parse.c:3261
+#: fortran/parse.c:3556
#, gcc-internal-format, gfc-internal-format
msgid "%s statement is not allowed inside of BLOCK at %C"
msgstr ""
-#: fortran/parse.c:3291
+#: fortran/parse.c:3586
#, gcc-internal-format, gfc-internal-format
msgid "%s statement is not allowed inside of BLOCK DATA at %C"
msgstr ""
-#: fortran/parse.c:3375
+#: fortran/parse.c:3676
#, gcc-internal-format, gfc-internal-format
msgid "%s statement must appear in a MODULE"
msgstr ""
-#: fortran/parse.c:3383
+#: fortran/parse.c:3684
#, gcc-internal-format, gfc-internal-format
msgid "%s statement at %C follows another accessibility specification"
msgstr ""
-#: fortran/parse.c:3435
+#: fortran/parse.c:3736
#, gcc-internal-format
msgid "Bad kind expression for function %qs at %L"
msgstr ""
-#: fortran/parse.c:3439
+#: fortran/parse.c:3740
#, gcc-internal-format
msgid "The type for function %qs at %L is not accessible"
msgstr ""
-#: fortran/parse.c:3499
+#: fortran/parse.c:3800
#, gcc-internal-format, gfc-internal-format
msgid "ELSEWHERE statement at %C follows previous unmasked ELSEWHERE"
msgstr ""
-#: fortran/parse.c:3521
+#: fortran/parse.c:3822
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected %s statement in WHERE block at %C"
msgstr ""
-#: fortran/parse.c:3580
+#: fortran/parse.c:3881
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected %s statement in FORALL block at %C"
msgstr ""
-#: fortran/parse.c:3631
+#: fortran/parse.c:3932
#, gcc-internal-format, gfc-internal-format
msgid "ELSE IF statement at %C cannot follow ELSE statement at %L"
msgstr ""
-#: fortran/parse.c:3649
+#: fortran/parse.c:3950
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate ELSE statements at %L and %C"
msgstr ""
-#: fortran/parse.c:3710
+#: fortran/parse.c:4011
#, gcc-internal-format, gfc-internal-format
msgid "Expected a CASE or END SELECT statement following SELECT CASE at %C"
msgstr ""
-#: fortran/parse.c:3793
+#: fortran/parse.c:4094
#, gcc-internal-format, gfc-internal-format
msgid ""
"Expected TYPE IS, CLASS IS or END SELECT statement following SELECT TYPE at "
"%C"
msgstr ""
-#: fortran/parse.c:3855
+#: fortran/parse.c:4156
#, gcc-internal-format
msgid "Variable %qs at %C cannot be redefined inside loop beginning at %L"
msgstr ""
-#: fortran/parse.c:3888
+#: fortran/parse.c:4189
#, gcc-internal-format, gfc-internal-format
msgid "End of nonblock DO statement at %C is within another block"
msgstr ""
-#: fortran/parse.c:3898
+#: fortran/parse.c:4199
#, gcc-internal-format, gfc-internal-format
msgid "End of nonblock DO statement at %C is interwoven with another DO loop"
msgstr ""
-#: fortran/parse.c:3924
+#: fortran/parse.c:4225
#, gcc-internal-format, gfc-internal-format
msgid "CRITICAL block inside of OpenACC region at %C"
msgstr ""
-#: fortran/parse.c:3951
+#: fortran/parse.c:4252
#, gcc-internal-format, gfc-internal-format
msgid "Statement label in END CRITICAL at %C does not match CRITICAL label"
msgstr ""
-#: fortran/parse.c:4020
+#: fortran/parse.c:4321
#, gcc-internal-format, gfc-internal-format
msgid "BLOCK construct at %C"
msgstr ""
-#: fortran/parse.c:4054
+#: fortran/parse.c:4355
#, gcc-internal-format, gfc-internal-format
msgid "ASSOCIATE construct at %C"
msgstr ""
-#: fortran/parse.c:4235
+#: fortran/parse.c:4536
#, gcc-internal-format, gfc-internal-format
msgid "Statement label in ENDDO at %C doesn't match DO label"
msgstr ""
-#: fortran/parse.c:4251
+#: fortran/parse.c:4552
#, gcc-internal-format, gfc-internal-format
msgid "Named block DO at %L requires matching ENDDO name"
msgstr ""
-#: fortran/parse.c:4432
+#: fortran/parse.c:4733
#, gcc-internal-format, gfc-internal-format
msgid "Missing !$OMP END ATOMIC after !$OMP ATOMIC CAPTURE at %C"
msgstr ""
-#: fortran/parse.c:4448 fortran/parse.c:4507
+#: fortran/parse.c:4749 fortran/parse.c:4808
#, gcc-internal-format, gfc-internal-format
msgid "OpenACC directive inside of CRITICAL block at %C"
msgstr ""
-#: fortran/parse.c:4482
+#: fortran/parse.c:4783
#, gcc-internal-format, gfc-internal-format
msgid "Expecting %s at %C"
msgstr ""
-#: fortran/parse.c:4526
+#: fortran/parse.c:4827
#, gcc-internal-format, gfc-internal-format
msgid "Expected DO loop at %C"
msgstr ""
-#: fortran/parse.c:4546
+#: fortran/parse.c:4847
#, gcc-internal-format, gfc-internal-format
msgid "Redundant !$ACC END LOOP at %C"
msgstr ""
-#: fortran/parse.c:4759
+#: fortran/parse.c:5060
#, gcc-internal-format, gfc-internal-format
msgid "Name after !$omp critical and !$omp end critical does not match at %C"
msgstr ""
-#: fortran/parse.c:4816
+#: fortran/parse.c:5117
#, gcc-internal-format, gfc-internal-format
msgid "%s statement at %C cannot terminate a non-block DO loop"
msgstr ""
-#: fortran/parse.c:4830
+#: fortran/parse.c:5131
#, gcc-internal-format, gfc-internal-format
msgid "DATA statement at %C after the first executable statement"
msgstr ""
-#: fortran/parse.c:5061
+#: fortran/parse.c:5362
#, gcc-internal-format
msgid "Contained procedure %qs at %C is already ambiguous"
msgstr ""
-#: fortran/parse.c:5118
+#: fortran/parse.c:5419
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected %s statement in CONTAINS section at %C"
msgstr ""
-#: fortran/parse.c:5143
+#: fortran/parse.c:5444
#, gcc-internal-format, gfc-internal-format
msgid "CONTAINS statement without FUNCTION or SUBROUTINE statement at %C"
msgstr ""
-#: fortran/parse.c:5255
+#: fortran/parse.c:5556
#, gcc-internal-format, gfc-internal-format
msgid "CONTAINS statement at %C is already in a contained program unit"
msgstr ""
-#: fortran/parse.c:5301
+#: fortran/parse.c:5602
#, gcc-internal-format
msgid "gfc_global_used(): Bad type"
msgstr ""
-#: fortran/parse.c:5306
+#: fortran/parse.c:5607
#, gcc-internal-format
msgid "Global binding name %qs at %L is already being used as a %s at %L"
msgstr ""
-#: fortran/parse.c:5309
+#: fortran/parse.c:5610
#, gcc-internal-format
msgid "Global name %qs at %L is already being used as a %s at %L"
msgstr ""
-#: fortran/parse.c:5330
+#: fortran/parse.c:5631
#, gcc-internal-format, gfc-internal-format
msgid "Blank BLOCK DATA at %C conflicts with prior BLOCK DATA at %L"
msgstr ""
-#: fortran/parse.c:5356
+#: fortran/parse.c:5657
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected %s statement in BLOCK DATA at %C"
msgstr ""
-#: fortran/parse.c:5441
+#: fortran/parse.c:5742
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected %s statement in MODULE at %C"
msgstr ""
#. If we see a duplicate main program, shut down. If the second
#. instance is an implied main program, i.e. data decls or executable
#. statements, we're in for lots of errors.
-#: fortran/parse.c:5828
+#: fortran/parse.c:6129
#, gcc-internal-format, gfc-internal-format
msgid "Two main PROGRAMs at %L and %C"
msgstr ""
msgid "extend_ref(): Bad tail"
msgstr ""
-#: fortran/primary.c:1902
+#: fortran/primary.c:1903
#, gcc-internal-format, gfc-internal-format
msgid ""
"Array section designator, e.g. '(:)', is required besides the coarray "
"designator '[...]' at %C"
msgstr ""
-#: fortran/primary.c:1910
+#: fortran/primary.c:1911
#, gcc-internal-format
msgid "Coarray designator at %C but %qs is not a coarray"
msgstr ""
-#: fortran/primary.c:1981
+#: fortran/primary.c:1988
#, gcc-internal-format
msgid "Symbol %qs at %C has no IMPLICIT type"
msgstr ""
-#: fortran/primary.c:1987
+#: fortran/primary.c:1994
#, gcc-internal-format
-msgid "Unexpected %<%%%> for nonderived-type variable %qs at %C"
+msgid "Unexpected %<%c%> for nonderived-type variable %qs at %C"
msgstr ""
-#: fortran/primary.c:2005
+#: fortran/primary.c:2012
#, gcc-internal-format, gfc-internal-format
msgid "Expected structure component name at %C"
msgstr ""
-#: fortran/primary.c:2056
+#: fortran/primary.c:2063
#, gcc-internal-format, gfc-internal-format
msgid "Expected argument list at %C"
msgstr ""
-#: fortran/primary.c:2087
+#: fortran/primary.c:2103
#, gcc-internal-format
msgid "Procedure pointer component %qs requires an argument list at %C"
msgstr ""
-#: fortran/primary.c:2175
+#: fortran/primary.c:2191
#, gcc-internal-format, gfc-internal-format
msgid "Coindexed procedure-pointer component at %C"
msgstr ""
-#: fortran/primary.c:2210
+#: fortran/primary.c:2226
#, gcc-internal-format
msgid "gfc_variable_attr(): Expression isn't a variable"
msgstr ""
-#: fortran/primary.c:2265
+#: fortran/primary.c:2281
#, gcc-internal-format
msgid "gfc_variable_attr(): Bad array reference"
msgstr ""
-#: fortran/primary.c:2435
+#: fortran/primary.c:2451
#, gcc-internal-format, gfc-internal-format
msgid "Structure constructor with missing optional arguments at %C"
msgstr ""
-#: fortran/primary.c:2444
+#: fortran/primary.c:2460
#, gcc-internal-format
msgid ""
"No initializer for allocatable component '%qs' given in the structure "
"constructor at %C"
msgstr ""
-#: fortran/primary.c:2451
+#: fortran/primary.c:2467
#, gcc-internal-format
msgid ""
"No initializer for component %qs given in the structure constructor at %C!"
msgstr ""
-#: fortran/primary.c:2499
+#: fortran/primary.c:2515
#, gcc-internal-format
msgid "Can't construct ABSTRACT type %qs at %L"
msgstr ""
-#: fortran/primary.c:2519
+#: fortran/primary.c:2535
#, gcc-internal-format, gfc-internal-format
msgid "Structure constructor with named arguments at %C"
msgstr ""
-#: fortran/primary.c:2534
+#: fortran/primary.c:2550
#, gcc-internal-format, gfc-internal-format
msgid "Component initializer without name after component named %s at %L!"
msgstr ""
-#: fortran/primary.c:2539
+#: fortran/primary.c:2555
#, gcc-internal-format, gfc-internal-format
msgid "Too many components in structure constructor at %L!"
msgstr ""
-#: fortran/primary.c:2576
+#: fortran/primary.c:2592
#, gcc-internal-format
msgid "Component %qs is initialized twice in the structure constructor at %L!"
msgstr ""
-#: fortran/primary.c:2588
+#: fortran/primary.c:2604
#, gcc-internal-format
msgid ""
"Coindexed expression to pointer component %qs in structure constructor at %L!"
msgstr ""
-#: fortran/primary.c:2642
+#: fortran/primary.c:2658
#, gcc-internal-format
msgid ""
"component %qs at %L has already been set by a parent derived type constructor"
msgstr ""
-#: fortran/primary.c:2831
+#: fortran/primary.c:2861
#, gcc-internal-format
msgid ""
"%qs at %C is the name of a recursive function and so refers to the result "
"variable. Use an explicit RESULT variable for direct recursion (12.5.2.1)"
msgstr ""
-#: fortran/primary.c:2954
+#: fortran/primary.c:2985
#, gcc-internal-format
msgid "Unexpected use of subroutine name %qs at %C"
msgstr ""
-#: fortran/primary.c:2986
+#: fortran/primary.c:3017
#, gcc-internal-format
msgid "Statement function %qs requires argument list at %C"
msgstr ""
-#: fortran/primary.c:2989
+#: fortran/primary.c:3020
#, gcc-internal-format
msgid "Function %qs requires an argument list at %C"
msgstr ""
-#: fortran/primary.c:3039
+#: fortran/primary.c:3070
#, gcc-internal-format
msgid "Missing argument to %qs at %C"
msgstr ""
-#: fortran/primary.c:3195
+#: fortran/primary.c:3228
#, gcc-internal-format
msgid "Missing argument list in function %qs at %C"
msgstr ""
-#: fortran/primary.c:3233
+#: fortran/primary.c:3272
#, gcc-internal-format, gfc-internal-format
msgid "Symbol at %C is not appropriate for an expression"
msgstr ""
-#: fortran/primary.c:3333
+#: fortran/primary.c:3342
+#, gcc-internal-format, gfc-internal-format
+msgid "Derived type '%s' cannot be used as a variable at %C"
+msgstr ""
+
+#: fortran/primary.c:3383
#, gcc-internal-format, gfc-internal-format
msgid "Named constant at %C in an EQUIVALENCE"
msgstr ""
-#: fortran/primary.c:3367
+#: fortran/primary.c:3417
#, gcc-internal-format
msgid "%qs at %C is not a variable"
msgstr ""
msgid "COMMON block %qs at %L that is also a global procedure"
msgstr ""
-#: fortran/resolve.c:1168
+#: fortran/resolve.c:1174
#, gcc-internal-format, gfc-internal-format
msgid ""
"The rank of the element in the structure constructor at %L does not match "
"that of the component (%d/%d)"
msgstr ""
-#: fortran/resolve.c:1189
+#: fortran/resolve.c:1195
#, gcc-internal-format
msgid ""
"The element in the structure constructor at %L, for pointer component %qs, "
"is %s but should be %s"
msgstr ""
-#: fortran/resolve.c:1274
+#: fortran/resolve.c:1280
#, gcc-internal-format
msgid ""
"The NULL in the structure constructor at %L is being applied to component "
"%qs, which is neither a POINTER nor ALLOCATABLE"
msgstr ""
-#: fortran/resolve.c:1308
+#: fortran/resolve.c:1314
#, gcc-internal-format
msgid ""
"Interface mismatch for procedure-pointer component %qs in structure "
"constructor at %L: %s"
msgstr ""
-#: fortran/resolve.c:1324
+#: fortran/resolve.c:1330
#, gcc-internal-format
msgid ""
"The element in the structure constructor at %L, for pointer component %qs "
"should be a POINTER or a TARGET"
msgstr ""
-#: fortran/resolve.c:1335
+#: fortran/resolve.c:1341
#, gcc-internal-format, gfc-internal-format
msgid "Pointer initialization target at %L must not be ALLOCATABLE "
msgstr ""
-#: fortran/resolve.c:1353
+#: fortran/resolve.c:1359
#, gcc-internal-format
msgid ""
"Invalid expression in the structure constructor for pointer component %qs at "
"%L in PURE procedure"
msgstr ""
-#: fortran/resolve.c:1477
+#: fortran/resolve.c:1483
#, gcc-internal-format
msgid ""
"The upper bound in the last dimension must appear in the reference to the "
"assumed size array %qs at %L"
msgstr ""
-#: fortran/resolve.c:1539
+#: fortran/resolve.c:1545
#, gcc-internal-format
msgid "%qs at %L is ambiguous"
msgstr ""
-#: fortran/resolve.c:1543
+#: fortran/resolve.c:1549
#, gcc-internal-format
msgid "GENERIC procedure %qs is not allowed as an actual argument at %L"
msgstr ""
-#: fortran/resolve.c:1664
+#: fortran/resolve.c:1670
#, gcc-internal-format
msgid "Type specified for intrinsic function %qs at %L is ignored"
msgstr ""
-#: fortran/resolve.c:1677
+#: fortran/resolve.c:1683
#, gcc-internal-format
msgid "Intrinsic subroutine %qs at %L shall not have a type specifier"
msgstr ""
-#: fortran/resolve.c:1688
+#: fortran/resolve.c:1694
#, gcc-internal-format
msgid "%qs declared INTRINSIC at %L does not exist"
msgstr ""
-#: fortran/resolve.c:1701
+#: fortran/resolve.c:1707
#, gcc-internal-format
msgid ""
"The intrinsic %qs declared INTRINSIC at %L is not available in the current "
"fall-intrinsics%> in order to use it."
msgstr ""
-#: fortran/resolve.c:1737
+#: fortran/resolve.c:1743
#, gcc-internal-format
msgid ""
"Non-RECURSIVE procedure %qs at %L is possibly calling itself recursively. "
"Declare it RECURSIVE or use %<-frecursive%>"
msgstr ""
-#: fortran/resolve.c:1776 fortran/resolve.c:8932 fortran/resolve.c:10557
+#: fortran/resolve.c:1782 fortran/resolve.c:8938 fortran/resolve.c:10563
#, gcc-internal-format, gfc-internal-format
msgid "Label %d referenced at %L is never defined"
msgstr ""
-#: fortran/resolve.c:1819
+#: fortran/resolve.c:1825
#, gcc-internal-format
msgid "Statement function %qs at %L is not allowed as an actual argument"
msgstr ""
-#: fortran/resolve.c:1827
+#: fortran/resolve.c:1833
#, gcc-internal-format
msgid "Intrinsic %qs at %L is not allowed as an actual argument"
msgstr ""
-#: fortran/resolve.c:1834
+#: fortran/resolve.c:1840
#, gcc-internal-format
msgid "Internal procedure %qs is used as actual argument at %L"
msgstr ""
-#: fortran/resolve.c:1842
+#: fortran/resolve.c:1848
#, gcc-internal-format
msgid ""
"ELEMENTAL non-INTRINSIC procedure %qs is not allowed as an actual argument "
"at %L"
msgstr ""
-#: fortran/resolve.c:1869
+#: fortran/resolve.c:1875
#, gcc-internal-format
msgid ""
"Unable to find a specific INTRINSIC procedure for the reference %qs at %L"
msgstr ""
-#: fortran/resolve.c:1891
+#: fortran/resolve.c:1897
#, gcc-internal-format
msgid "Symbol %qs at %L is ambiguous"
msgstr ""
-#: fortran/resolve.c:1946
+#: fortran/resolve.c:1952
#, gcc-internal-format, gfc-internal-format
msgid "By-value argument at %L is not of numeric type"
msgstr ""
-#: fortran/resolve.c:1953
+#: fortran/resolve.c:1959
#, gcc-internal-format, gfc-internal-format
msgid "By-value argument at %L cannot be an array or an array section"
msgstr ""
-#: fortran/resolve.c:1967
+#: fortran/resolve.c:1973
#, gcc-internal-format, gfc-internal-format
msgid "By-value argument at %L is not allowed in this context"
msgstr ""
-#: fortran/resolve.c:1979
+#: fortran/resolve.c:1985
#, gcc-internal-format, gfc-internal-format
msgid "Passing internal procedure at %L by location not allowed"
msgstr ""
-#: fortran/resolve.c:1990
+#: fortran/resolve.c:1996
#, gcc-internal-format
msgid ""
"ELEMENTAL procedure pointer component %qs is not allowed as an actual "
"argument at %L"
msgstr ""
-#: fortran/resolve.c:1999
+#: fortran/resolve.c:2005
#, gcc-internal-format, gfc-internal-format
msgid "Coindexed actual argument at %L with ultimate pointer component"
msgstr ""
-#: fortran/resolve.c:2130
+#: fortran/resolve.c:2136
#, gcc-internal-format
msgid ""
"%qs at %L is an array and OPTIONAL; IF IT IS MISSING, it cannot be the "
"argument with the same rank (12.4.1.5)"
msgstr ""
-#: fortran/resolve.c:2167
+#: fortran/resolve.c:2173
#, gcc-internal-format
msgid ""
"Actual argument at %L for INTENT(%s) dummy %qs of ELEMENTAL subroutine %qs "
"is a scalar, but another actual argument is an array"
msgstr ""
-#: fortran/resolve.c:2439
+#: fortran/resolve.c:2445
#, gcc-internal-format
msgid "Return type mismatch of function %qs at %L (%s/%s)"
msgstr ""
-#: fortran/resolve.c:2460
+#: fortran/resolve.c:2466
#, gcc-internal-format
msgid "Interface mismatch in global procedure %qs at %L: %s "
msgstr ""
-#: fortran/resolve.c:2573
+#: fortran/resolve.c:2579
#, gcc-internal-format
msgid "There is no specific function for the generic %qs at %L"
msgstr ""
-#: fortran/resolve.c:2591
+#: fortran/resolve.c:2597
#, gcc-internal-format
msgid ""
"Generic function %qs at %L is not consistent with a specific intrinsic "
"interface"
msgstr ""
-#: fortran/resolve.c:2629
+#: fortran/resolve.c:2635
#, gcc-internal-format
msgid "Function %qs at %L is INTRINSIC but is not compatible with an intrinsic"
msgstr ""
-#: fortran/resolve.c:2684
+#: fortran/resolve.c:2690
#, gcc-internal-format
msgid "Unable to resolve the specific function %qs at %L"
msgstr ""
-#: fortran/resolve.c:2740 fortran/resolve.c:15308
+#: fortran/resolve.c:2746 fortran/resolve.c:15387
#, gcc-internal-format
msgid "Function %qs at %L has no IMPLICIT type"
msgstr ""
-#: fortran/resolve.c:2849
+#: fortran/resolve.c:2855
#, gcc-internal-format
msgid "Reference to impure function %qs at %L inside a FORALL %s"
msgstr ""
-#: fortran/resolve.c:2856
+#: fortran/resolve.c:2862
#, gcc-internal-format
msgid "Reference to impure function %qs at %L inside a DO CONCURRENT %s"
msgstr ""
-#: fortran/resolve.c:2863
+#: fortran/resolve.c:2869
#, gcc-internal-format
msgid "Reference to impure function %qs at %L within a PURE procedure"
msgstr ""
-#: fortran/resolve.c:2926
+#: fortran/resolve.c:2932
#, gcc-internal-format
msgid "%qs at %L is not a function"
msgstr ""
-#: fortran/resolve.c:2934 fortran/resolve.c:3404
+#: fortran/resolve.c:2940 fortran/resolve.c:3410
#, gcc-internal-format
msgid "ABSTRACT INTERFACE %qs must not be referenced at %L"
msgstr ""
#. Internal procedures are taken care of in resolve_contained_fntype.
-#: fortran/resolve.c:2977
+#: fortran/resolve.c:2983
#, gcc-internal-format
msgid ""
"Function %qs is declared CHARACTER(*) and cannot be used at %L since it is "
"not a dummy argument"
msgstr ""
-#: fortran/resolve.c:3011
+#: fortran/resolve.c:3017
#, gcc-internal-format
msgid "resolve_function(): bad function type"
msgstr ""
-#: fortran/resolve.c:3031
+#: fortran/resolve.c:3037
#, gcc-internal-format
msgid ""
"User defined non-ELEMENTAL function %qs at %L not allowed in WORKSHARE "
"construct"
msgstr ""
-#: fortran/resolve.c:3093
+#: fortran/resolve.c:3099
#, gcc-internal-format
msgid ""
"ENTRY %qs at %L cannot be called recursively, as function %qs is not "
"RECURSIVE"
msgstr ""
-#: fortran/resolve.c:3097
+#: fortran/resolve.c:3103
#, gcc-internal-format
msgid "Function %qs at %L cannot be called recursively, as it is not RECURSIVE"
msgstr ""
-#: fortran/resolve.c:3148
+#: fortran/resolve.c:3154
#, gcc-internal-format
msgid "Subroutine call to %qs in FORALL block at %L is not PURE"
msgstr ""
-#: fortran/resolve.c:3154
+#: fortran/resolve.c:3160
#, gcc-internal-format
msgid "Subroutine call to %qs in DO CONCURRENT block at %L is not PURE"
msgstr ""
-#: fortran/resolve.c:3160
+#: fortran/resolve.c:3166
#, gcc-internal-format
msgid "Subroutine call to %qs at %L is not PURE"
msgstr ""
-#: fortran/resolve.c:3228
+#: fortran/resolve.c:3234
#, gcc-internal-format
msgid "There is no specific subroutine for the generic %qs at %L"
msgstr ""
-#: fortran/resolve.c:3237
+#: fortran/resolve.c:3243
#, gcc-internal-format
msgid ""
"Generic subroutine %qs at %L is not consistent with an intrinsic subroutine "
"interface"
msgstr ""
-#: fortran/resolve.c:3272
+#: fortran/resolve.c:3278
#, gcc-internal-format
msgid ""
"Subroutine %qs at %L is INTRINSIC but is not compatible with an intrinsic"
msgstr ""
-#: fortran/resolve.c:3317
+#: fortran/resolve.c:3323
#, gcc-internal-format
msgid "Unable to resolve the specific subroutine %qs at %L"
msgstr ""
-#: fortran/resolve.c:3375
+#: fortran/resolve.c:3381
#, gcc-internal-format
msgid "%qs at %L has a type, which is not consistent with the CALL at %L"
msgstr ""
-#: fortran/resolve.c:3414
+#: fortran/resolve.c:3420
#, gcc-internal-format
msgid ""
"ENTRY %qs at %L cannot be called recursively, as subroutine %qs is not "
"RECURSIVE"
msgstr ""
-#: fortran/resolve.c:3418
+#: fortran/resolve.c:3424
#, gcc-internal-format
msgid ""
"SUBROUTINE %qs at %L cannot be called recursively, as it is not RECURSIVE"
msgstr ""
-#: fortran/resolve.c:3463
+#: fortran/resolve.c:3469
#, gcc-internal-format
msgid "resolve_subroutine(): bad function type"
msgstr ""
-#: fortran/resolve.c:3501
+#: fortran/resolve.c:3507
#, gcc-internal-format, gfc-internal-format
msgid "Shapes for operands at %L and %L are not conformable"
msgstr ""
-#: fortran/resolve.c:3733
+#: fortran/resolve.c:3739
#, gcc-internal-format
msgid "resolve_operator(): Bad intrinsic"
msgstr ""
-#: fortran/resolve.c:3903 fortran/resolve.c:3926
+#: fortran/resolve.c:3909 fortran/resolve.c:3932
#, gcc-internal-format
msgid "compare_bound_int(): Bad expression"
msgstr ""
-#: fortran/resolve.c:4021
+#: fortran/resolve.c:4027
#, gcc-internal-format, gfc-internal-format
msgid "Array reference at %L is out of bounds (%ld < %ld) in dimension %d"
msgstr ""
-#: fortran/resolve.c:4026
+#: fortran/resolve.c:4032
#, gcc-internal-format, gfc-internal-format
msgid "Array reference at %L is out of bounds (%ld < %ld) in codimension %d"
msgstr ""
-#: fortran/resolve.c:4036
+#: fortran/resolve.c:4042
#, gcc-internal-format, gfc-internal-format
msgid "Array reference at %L is out of bounds (%ld > %ld) in dimension %d"
msgstr ""
-#: fortran/resolve.c:4041
+#: fortran/resolve.c:4047
#, gcc-internal-format, gfc-internal-format
msgid "Array reference at %L is out of bounds (%ld > %ld) in codimension %d"
msgstr ""
-#: fortran/resolve.c:4061
+#: fortran/resolve.c:4067
#, gcc-internal-format, gfc-internal-format
msgid "Illegal stride of zero at %L"
msgstr ""
-#: fortran/resolve.c:4078
+#: fortran/resolve.c:4084
#, gcc-internal-format, gfc-internal-format
msgid ""
"Lower array reference at %L is out of bounds (%ld < %ld) in dimension %d"
msgstr ""
-#: fortran/resolve.c:4086
+#: fortran/resolve.c:4092
#, gcc-internal-format, gfc-internal-format
msgid ""
"Lower array reference at %L is out of bounds (%ld > %ld) in dimension %d"
msgstr ""
-#: fortran/resolve.c:4102
+#: fortran/resolve.c:4108
#, gcc-internal-format, gfc-internal-format
msgid ""
"Upper array reference at %L is out of bounds (%ld < %ld) in dimension %d"
msgstr ""
-#: fortran/resolve.c:4111
+#: fortran/resolve.c:4117
#, gcc-internal-format, gfc-internal-format
msgid ""
"Upper array reference at %L is out of bounds (%ld > %ld) in dimension %d"
msgstr ""
-#: fortran/resolve.c:4127
+#: fortran/resolve.c:4133
#, gcc-internal-format
msgid "check_dimension(): Bad array reference"
msgstr ""
-#: fortran/resolve.c:4150
+#: fortran/resolve.c:4156
#, gcc-internal-format, gfc-internal-format
msgid "Rightmost upper bound of assumed size array section not specified at %L"
msgstr ""
-#: fortran/resolve.c:4160
+#: fortran/resolve.c:4166
#, gcc-internal-format, gfc-internal-format
msgid "Rank mismatch in array reference at %L (%d/%d)"
msgstr ""
-#: fortran/resolve.c:4168
+#: fortran/resolve.c:4174
#, gcc-internal-format, gfc-internal-format
msgid "Coindex rank mismatch in array reference at %L (%d/%d)"
msgstr ""
-#: fortran/resolve.c:4184
+#: fortran/resolve.c:4190
#, gcc-internal-format, gfc-internal-format
msgid "Coindex of codimension %d must be a scalar at %L"
msgstr ""
-#: fortran/resolve.c:4212
+#: fortran/resolve.c:4218
#, gcc-internal-format, gfc-internal-format
msgid "Array index at %L must be scalar"
msgstr ""
-#: fortran/resolve.c:4218
+#: fortran/resolve.c:4224
#, gcc-internal-format, gfc-internal-format
msgid "Array index at %L must be of INTEGER type, found %s"
msgstr ""
-#: fortran/resolve.c:4224
+#: fortran/resolve.c:4230
#, gcc-internal-format, gfc-internal-format
msgid "REAL array index at %L"
msgstr ""
-#: fortran/resolve.c:4263
+#: fortran/resolve.c:4269
#, gcc-internal-format, gfc-internal-format
msgid "Argument dim at %L must be scalar"
msgstr ""
-#: fortran/resolve.c:4270
+#: fortran/resolve.c:4276
#, gcc-internal-format, gfc-internal-format
msgid "Argument dim at %L must be of INTEGER type"
msgstr ""
-#: fortran/resolve.c:4315
+#: fortran/resolve.c:4321
#, gcc-internal-format
msgid "find_array_spec(): Missing spec"
msgstr ""
-#: fortran/resolve.c:4326
+#: fortran/resolve.c:4332
#, gcc-internal-format
msgid "find_array_spec(): unused as(1)"
msgstr ""
-#: fortran/resolve.c:4337
+#: fortran/resolve.c:4343
#, gcc-internal-format
msgid "find_array_spec(): unused as(2)"
msgstr ""
-#: fortran/resolve.c:4380
+#: fortran/resolve.c:4386
#, gcc-internal-format, gfc-internal-format
msgid "Array index at %L is an array of rank %d"
msgstr ""
-#: fortran/resolve.c:4478
+#: fortran/resolve.c:4484
#, gcc-internal-format, gfc-internal-format
msgid "Substring start index at %L must be of type INTEGER"
msgstr ""
-#: fortran/resolve.c:4485
+#: fortran/resolve.c:4491
#, gcc-internal-format, gfc-internal-format
msgid "Substring start index at %L must be scalar"
msgstr ""
-#: fortran/resolve.c:4494
+#: fortran/resolve.c:4500
#, gcc-internal-format, gfc-internal-format
msgid "Substring start index at %L is less than one"
msgstr ""
-#: fortran/resolve.c:4507
+#: fortran/resolve.c:4513
#, gcc-internal-format, gfc-internal-format
msgid "Substring end index at %L must be of type INTEGER"
msgstr ""
-#: fortran/resolve.c:4514
+#: fortran/resolve.c:4520
#, gcc-internal-format, gfc-internal-format
msgid "Substring end index at %L must be scalar"
msgstr ""
-#: fortran/resolve.c:4524
+#: fortran/resolve.c:4530
#, gcc-internal-format, gfc-internal-format
msgid "Substring end index at %L exceeds the string length"
msgstr ""
-#: fortran/resolve.c:4534
+#: fortran/resolve.c:4540
#, gcc-internal-format, gfc-internal-format
msgid "Substring end index at %L is too large"
msgstr ""
-#: fortran/resolve.c:4687
+#: fortran/resolve.c:4693
#, gcc-internal-format
msgid "resolve_ref(): Bad array reference"
msgstr ""
-#: fortran/resolve.c:4701
+#: fortran/resolve.c:4707
#, gcc-internal-format, gfc-internal-format
msgid ""
"Component to the right of a part reference with nonzero rank must not have "
"the POINTER attribute at %L"
msgstr ""
-#: fortran/resolve.c:4711
+#: fortran/resolve.c:4717
#, gcc-internal-format, gfc-internal-format
msgid ""
"Component to the right of a part reference with nonzero rank must not have "
"the ALLOCATABLE attribute at %L"
msgstr ""
-#: fortran/resolve.c:4730
+#: fortran/resolve.c:4736
#, gcc-internal-format, gfc-internal-format
msgid ""
"Two or more part references with nonzero rank must not be specified at %L"
msgstr ""
-#: fortran/resolve.c:4828
+#: fortran/resolve.c:4834
#, gcc-internal-format
msgid "expression_rank(): Two array specs"
msgstr ""
-#: fortran/resolve.c:4910
+#: fortran/resolve.c:4916
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable %s at %L with NO_ARG_CHECK attribute may only be used as actual "
"argument"
msgstr ""
-#: fortran/resolve.c:4920
+#: fortran/resolve.c:4926
#, gcc-internal-format, gfc-internal-format
msgid "Assumed-type variable %s at %L may only be used as actual argument"
msgstr ""
#. for all inquiry functions in resolve_function; the reason is
#. that the function-name resolution happens too late in that
#. function.
-#: fortran/resolve.c:4930
+#: fortran/resolve.c:4936
#, gcc-internal-format, gfc-internal-format
msgid ""
"Assumed-type variable %s at %L as actual argument to an inquiry function "
"shall be the first argument"
msgstr ""
-#: fortran/resolve.c:4945
+#: fortran/resolve.c:4951
#, gcc-internal-format, gfc-internal-format
msgid "Assumed-rank variable %s at %L may only be used as actual argument"
msgstr ""
#. for all inquiry functions in resolve_function; the reason is
#. that the function-name resolution happens too late in that
#. function.
-#: fortran/resolve.c:4955
+#: fortran/resolve.c:4961
#, gcc-internal-format, gfc-internal-format
msgid ""
"Assumed-rank variable %s at %L as actual argument to an inquiry function "
"shall be the first argument"
msgstr ""
-#: fortran/resolve.c:4966
+#: fortran/resolve.c:4972
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable %s at %L with NO_ARG_CHECK attribute shall not have a subobject "
"reference"
msgstr ""
-#: fortran/resolve.c:4975
+#: fortran/resolve.c:4981
#, gcc-internal-format, gfc-internal-format
msgid "Assumed-type variable %s at %L shall not have a subobject reference"
msgstr ""
-#: fortran/resolve.c:4990
+#: fortran/resolve.c:4996
#, gcc-internal-format, gfc-internal-format
msgid "Assumed-rank variable %s at %L shall not have a subobject reference"
msgstr ""
-#: fortran/resolve.c:5147
+#: fortran/resolve.c:5153
#, gcc-internal-format
msgid ""
"Variable %qs, used in a specification expression, is referenced at %L before "
"the ENTRY statement in which it is a parameter"
msgstr ""
-#: fortran/resolve.c:5152
+#: fortran/resolve.c:5158
#, gcc-internal-format
msgid ""
"Variable %qs is used at %L before the ENTRY statement in which it is a "
"parameter"
msgstr ""
-#: fortran/resolve.c:5222
+#: fortran/resolve.c:5228
#, gcc-internal-format, gfc-internal-format
msgid "Polymorphic subobject of coindexed object at %L"
msgstr ""
-#: fortran/resolve.c:5235
+#: fortran/resolve.c:5241
#, gcc-internal-format, gfc-internal-format
msgid "Coindexed object with polymorphic allocatable subcomponent at %L"
msgstr ""
-#: fortran/resolve.c:5573
+#: fortran/resolve.c:5579
#, gcc-internal-format, gfc-internal-format
msgid "Passed-object at %L must be scalar"
msgstr ""
-#: fortran/resolve.c:5580
+#: fortran/resolve.c:5586
#, gcc-internal-format
msgid ""
"Base object for procedure-pointer component call at %L is of ABSTRACT type "
"%qs"
msgstr ""
-#: fortran/resolve.c:5615
+#: fortran/resolve.c:5621
#, gcc-internal-format
msgid "Base object for type-bound procedure call at %L is of ABSTRACT type %qs"
msgstr ""
-#: fortran/resolve.c:5624
+#: fortran/resolve.c:5630
#, gcc-internal-format, gfc-internal-format
msgid "Base object for NOPASS type-bound procedure call at %L must be scalar"
msgstr ""
#. Nothing matching found!
-#: fortran/resolve.c:5812
+#: fortran/resolve.c:5818
#, gcc-internal-format
msgid ""
"Found no matching specific binding for the call to the GENERIC %qs at %L"
msgstr ""
-#: fortran/resolve.c:5839
+#: fortran/resolve.c:5845
#, gcc-internal-format
msgid "%qs at %L should be a SUBROUTINE"
msgstr ""
-#: fortran/resolve.c:5890
+#: fortran/resolve.c:5896
#, gcc-internal-format
msgid "%qs at %L should be a FUNCTION"
msgstr ""
-#: fortran/resolve.c:6407
+#: fortran/resolve.c:6413
#, gcc-internal-format
msgid "gfc_resolve_expr(): Bad expression type"
msgstr ""
-#: fortran/resolve.c:6433
+#: fortran/resolve.c:6439
#, gcc-internal-format, gfc-internal-format
msgid "%s at %L must be a scalar"
msgstr ""
-#: fortran/resolve.c:6443
+#: fortran/resolve.c:6449
#, gcc-internal-format, gfc-internal-format
msgid "%s at %L must be integer"
msgstr ""
-#: fortran/resolve.c:6447 fortran/resolve.c:6454
+#: fortran/resolve.c:6453 fortran/resolve.c:6460
#, gcc-internal-format, gfc-internal-format
msgid "%s at %L must be INTEGER"
msgstr ""
-#: fortran/resolve.c:6496
+#: fortran/resolve.c:6502
#, gcc-internal-format, gfc-internal-format
msgid "Step expression in DO loop at %L cannot be zero"
msgstr ""
-#: fortran/resolve.c:6532
+#: fortran/resolve.c:6538
#, gcc-internal-format, gfc-internal-format
msgid "DO loop at %L will be executed zero times"
msgstr ""
-#: fortran/resolve.c:6593
+#: fortran/resolve.c:6599
#, gcc-internal-format, gfc-internal-format
msgid "FORALL index-name at %L must be a scalar INTEGER"
msgstr ""
-#: fortran/resolve.c:6598
+#: fortran/resolve.c:6604
#, gcc-internal-format, gfc-internal-format
msgid "FORALL start expression at %L must be a scalar INTEGER"
msgstr ""
-#: fortran/resolve.c:6605
+#: fortran/resolve.c:6611
#, gcc-internal-format, gfc-internal-format
msgid "FORALL end expression at %L must be a scalar INTEGER"
msgstr ""
-#: fortran/resolve.c:6613
+#: fortran/resolve.c:6619
#, gcc-internal-format, gfc-internal-format
msgid "FORALL stride expression at %L must be a scalar %s"
msgstr ""
-#: fortran/resolve.c:6618
+#: fortran/resolve.c:6624
#, gcc-internal-format, gfc-internal-format
msgid "FORALL stride expression at %L cannot be zero"
msgstr ""
-#: fortran/resolve.c:6631
+#: fortran/resolve.c:6637
#, gcc-internal-format
msgid "FORALL index %qs may not appear in triplet specification at %L"
msgstr ""
-#: fortran/resolve.c:6729 fortran/resolve.c:7021
+#: fortran/resolve.c:6735 fortran/resolve.c:7027
#, gcc-internal-format, gfc-internal-format
msgid "Allocate-object at %L must be ALLOCATABLE or a POINTER"
msgstr ""
-#: fortran/resolve.c:6737 fortran/resolve.c:6986
+#: fortran/resolve.c:6743 fortran/resolve.c:6992
#, gcc-internal-format, gfc-internal-format
msgid "Coindexed allocatable object at %L"
msgstr ""
-#: fortran/resolve.c:6843
+#: fortran/resolve.c:6849
#, gcc-internal-format, gfc-internal-format
msgid ""
"Source-expr at %L must be scalar or have the same rank as the allocate-"
"object at %L"
msgstr ""
-#: fortran/resolve.c:6874
+#: fortran/resolve.c:6880
#, gcc-internal-format, gfc-internal-format
msgid "Source-expr at %L and allocate-object at %L must have the same shape"
msgstr ""
-#: fortran/resolve.c:7032
+#: fortran/resolve.c:7038
#, gcc-internal-format, gfc-internal-format
msgid "Type of entity at %L is type incompatible with source-expr at %L"
msgstr ""
-#: fortran/resolve.c:7044
+#: fortran/resolve.c:7050
#, gcc-internal-format, gfc-internal-format
msgid ""
"The allocate-object at %L and the source-expr at %L shall have the same kind "
"type parameter"
msgstr ""
-#: fortran/resolve.c:7058
+#: fortran/resolve.c:7064
#, gcc-internal-format, gfc-internal-format
msgid ""
"The source-expr at %L shall neither be of type LOCK_TYPE nor have a "
"LOCK_TYPE component if allocate-object at %L is a coarray"
msgstr ""
-#: fortran/resolve.c:7073
+#: fortran/resolve.c:7079
#, gcc-internal-format, gfc-internal-format
msgid ""
"The source-expr at %L shall neither be of type EVENT_TYPE nor have a "
"EVENT_TYPE component if allocate-object at %L is a coarray"
msgstr ""
-#: fortran/resolve.c:7086
+#: fortran/resolve.c:7092
#, gcc-internal-format, gfc-internal-format
msgid ""
"Allocating %s of ABSTRACT base type at %L requires a type-spec or source-expr"
msgstr ""
-#: fortran/resolve.c:7099
+#: fortran/resolve.c:7105
#, gcc-internal-format, gfc-internal-format
msgid ""
"Allocating %s at %L with type-spec requires the same character-length "
"parameter as in the declaration"
msgstr ""
-#: fortran/resolve.c:7217 fortran/resolve.c:7232
+#: fortran/resolve.c:7223 fortran/resolve.c:7238
#, gcc-internal-format, gfc-internal-format
msgid "Array specification required in ALLOCATE statement at %L"
msgstr ""
-#: fortran/resolve.c:7224
+#: fortran/resolve.c:7230
#, gcc-internal-format, gfc-internal-format
msgid ""
"Array specification or array-valued SOURCE= expression required in ALLOCATE "
"statement at %L"
msgstr ""
-#: fortran/resolve.c:7247
+#: fortran/resolve.c:7253
#, gcc-internal-format, gfc-internal-format
msgid "Coarray specification required in ALLOCATE statement at %L"
msgstr ""
-#: fortran/resolve.c:7274
+#: fortran/resolve.c:7280
#, gcc-internal-format, gfc-internal-format
msgid "Bad array specification in ALLOCATE statement at %L"
msgstr ""
-#: fortran/resolve.c:7293
+#: fortran/resolve.c:7299
#, gcc-internal-format
msgid ""
"%qs must not appear in the array specification at %L in the same ALLOCATE "
"statement where it is itself allocated"
msgstr ""
-#: fortran/resolve.c:7308
+#: fortran/resolve.c:7314
#, gcc-internal-format, gfc-internal-format
msgid "Expected '*' in coindex specification in ALLOCATE statement at %L"
msgstr ""
-#: fortran/resolve.c:7319
+#: fortran/resolve.c:7325
#, gcc-internal-format, gfc-internal-format
msgid "Bad coarray specification in ALLOCATE statement at %L"
msgstr ""
-#: fortran/resolve.c:7351
+#: fortran/resolve.c:7357
#, gcc-internal-format, gfc-internal-format
msgid "Stat-variable at %L must be a scalar INTEGER variable"
msgstr ""
-#: fortran/resolve.c:7374
+#: fortran/resolve.c:7380
#, gcc-internal-format, gfc-internal-format
msgid "Stat-variable at %L shall not be %sd within the same %s statement"
msgstr ""
-#: fortran/resolve.c:7385
+#: fortran/resolve.c:7391
#, gcc-internal-format, gfc-internal-format
msgid "ERRMSG at %L is useless without a STAT tag"
msgstr ""
-#: fortran/resolve.c:7396
+#: fortran/resolve.c:7402
#, gcc-internal-format, gfc-internal-format
msgid "Errmsg-variable at %L must be a scalar CHARACTER variable"
msgstr ""
-#: fortran/resolve.c:7419
+#: fortran/resolve.c:7425
#, gcc-internal-format, gfc-internal-format
msgid "Errmsg-variable at %L shall not be %sd within the same %s statement"
msgstr ""
-#: fortran/resolve.c:7449
+#: fortran/resolve.c:7455
#, gcc-internal-format, gfc-internal-format
msgid "Allocate-object at %L also appears at %L"
msgstr ""
-#: fortran/resolve.c:7455 fortran/resolve.c:7461
+#: fortran/resolve.c:7461 fortran/resolve.c:7467
#, gcc-internal-format, gfc-internal-format
msgid "Allocate-object at %L is subobject of object at %L"
msgstr ""
#. element in the list. Either way, we must
#. issue an error and get the next case from P.
#. FIXME: Sort P and Q by line number.
-#: fortran/resolve.c:7673
+#: fortran/resolve.c:7679
#, gcc-internal-format, gfc-internal-format
msgid "CASE label at %L overlaps with CASE label at %L"
msgstr ""
-#: fortran/resolve.c:7724
+#: fortran/resolve.c:7730
#, gcc-internal-format, gfc-internal-format
msgid "Expression in CASE statement at %L must be of type %s"
msgstr ""
-#: fortran/resolve.c:7735
+#: fortran/resolve.c:7741
#, gcc-internal-format, gfc-internal-format
msgid "Expression in CASE statement at %L must be of kind %d"
msgstr ""
-#: fortran/resolve.c:7748
+#: fortran/resolve.c:7754
#, gcc-internal-format, gfc-internal-format
msgid "Expression in CASE statement at %L must be scalar"
msgstr ""
-#: fortran/resolve.c:7794
+#: fortran/resolve.c:7800
#, gcc-internal-format, gfc-internal-format
msgid ""
"Selection expression in computed GOTO statement at %L must be a scalar "
"integer expression"
msgstr ""
-#: fortran/resolve.c:7813
+#: fortran/resolve.c:7819
#, gcc-internal-format, gfc-internal-format
msgid "Argument of SELECT statement at %L cannot be %s"
msgstr ""
-#: fortran/resolve.c:7823
+#: fortran/resolve.c:7829
#, gcc-internal-format, gfc-internal-format
msgid "Argument of SELECT statement at %L must be a scalar expression"
msgstr ""
-#: fortran/resolve.c:7841 fortran/resolve.c:7849
+#: fortran/resolve.c:7847 fortran/resolve.c:7855
#, gcc-internal-format, gfc-internal-format
msgid "Expression in CASE statement at %L is not in the range of %s"
msgstr ""
-#: fortran/resolve.c:7911 fortran/resolve.c:8350
+#: fortran/resolve.c:7917 fortran/resolve.c:8356
#, gcc-internal-format, gfc-internal-format
msgid ""
"The DEFAULT CASE at %L cannot be followed by a second DEFAULT CASE at %L"
msgstr ""
-#: fortran/resolve.c:7937
+#: fortran/resolve.c:7943
#, gcc-internal-format, gfc-internal-format
msgid "Logical range in CASE statement at %L is not allowed"
msgstr ""
-#: fortran/resolve.c:7949
+#: fortran/resolve.c:7955
#, gcc-internal-format, gfc-internal-format
msgid "Constant logical value in CASE statement is repeated at %L"
msgstr ""
-#: fortran/resolve.c:7964
+#: fortran/resolve.c:7970
#, gcc-internal-format, gfc-internal-format
msgid "Range specification at %L can never be matched"
msgstr ""
-#: fortran/resolve.c:8067
+#: fortran/resolve.c:8073
#, gcc-internal-format, gfc-internal-format
msgid "Logical SELECT CASE block at %L has more that two cases"
msgstr ""
-#: fortran/resolve.c:8142
+#: fortran/resolve.c:8148
#, gcc-internal-format
msgid "Associate-name %qs at %L is used as array"
msgstr ""
-#: fortran/resolve.c:8153
+#: fortran/resolve.c:8159
#, gcc-internal-format, gfc-internal-format
msgid "CLASS selector at %L needs a temporary which is not yet implemented"
msgstr ""
-#: fortran/resolve.c:8269
+#: fortran/resolve.c:8275
#, gcc-internal-format, gfc-internal-format
msgid "Selector shall be polymorphic in SELECT TYPE statement at %L"
msgstr ""
-#: fortran/resolve.c:8286 fortran/resolve.c:8298
+#: fortran/resolve.c:8292 fortran/resolve.c:8304
#, gcc-internal-format, gfc-internal-format
msgid "Selector at %L must not be coindexed"
msgstr ""
-#: fortran/resolve.c:8314
+#: fortran/resolve.c:8320
#, gcc-internal-format
msgid "Derived type %qs at %L must be extensible"
msgstr ""
-#: fortran/resolve.c:8326
+#: fortran/resolve.c:8332
#, gcc-internal-format
msgid "Derived type %qs at %L must be an extension of %qs"
msgstr ""
-#: fortran/resolve.c:8329
+#: fortran/resolve.c:8335
#, gcc-internal-format
msgid "Unexpected intrinsic type %qs at %L"
msgstr ""
-#: fortran/resolve.c:8338
+#: fortran/resolve.c:8344
#, gcc-internal-format, gfc-internal-format
msgid ""
"The type-spec at %L shall specify that each length type parameter is assumed"
msgstr ""
-#: fortran/resolve.c:8530
+#: fortran/resolve.c:8536
#, gcc-internal-format, gfc-internal-format
msgid "Double CLASS IS block in SELECT TYPE statement at %L"
msgstr ""
-#: fortran/resolve.c:8619
+#: fortran/resolve.c:8625
#, gcc-internal-format, gfc-internal-format
msgid "Invalid context for NULL () intrinsic at %L"
msgstr ""
#. FIXME: Test for defined input/output.
-#: fortran/resolve.c:8647
+#: fortran/resolve.c:8653
#, gcc-internal-format, gfc-internal-format
msgid ""
"Data transfer element at %L cannot be polymorphic unless it is processed by "
"a defined input/output procedure"
msgstr ""
-#: fortran/resolve.c:8659
+#: fortran/resolve.c:8665
#, gcc-internal-format, gfc-internal-format
msgid ""
"Data transfer element at %L cannot have POINTER components unless it is "
"processed by a defined input/output procedure"
msgstr ""
-#: fortran/resolve.c:8668
+#: fortran/resolve.c:8674
#, gcc-internal-format, gfc-internal-format
msgid "Data transfer element at %L cannot have procedure pointer components"
msgstr ""
-#: fortran/resolve.c:8675
+#: fortran/resolve.c:8681
#, gcc-internal-format, gfc-internal-format
msgid ""
"Data transfer element at %L cannot have ALLOCATABLE components unless it is "
"processed by a defined input/output procedure"
msgstr ""
-#: fortran/resolve.c:8686 fortran/resolve.c:8692
+#: fortran/resolve.c:8692 fortran/resolve.c:8698
#, gcc-internal-format, gfc-internal-format
msgid "Data transfer element at %L cannot have PRIVATE components"
msgstr ""
-#: fortran/resolve.c:8706
+#: fortran/resolve.c:8712
#, gcc-internal-format, gfc-internal-format
msgid ""
"Data transfer element at %L cannot be a full reference to an assumed-size "
"array"
msgstr ""
-#: fortran/resolve.c:8763
+#: fortran/resolve.c:8769
#, gcc-internal-format, gfc-internal-format
msgid "Lock variable at %L must be a scalar of type LOCK_TYPE"
msgstr ""
-#: fortran/resolve.c:8773
+#: fortran/resolve.c:8779
#, gcc-internal-format, gfc-internal-format
msgid "Event variable at %L must be a scalar of type EVENT_TYPE"
msgstr ""
-#: fortran/resolve.c:8777
+#: fortran/resolve.c:8783
#, gcc-internal-format, gfc-internal-format
msgid "Event variable argument at %L must be a coarray or coindexed"
msgstr ""
-#: fortran/resolve.c:8780
+#: fortran/resolve.c:8786
#, gcc-internal-format, gfc-internal-format
msgid "Event variable argument at %L must be a coarray but not coindexed"
msgstr ""
-#: fortran/resolve.c:8787 fortran/resolve.c:8905
+#: fortran/resolve.c:8793 fortran/resolve.c:8911
#, gcc-internal-format, gfc-internal-format
msgid "STAT= argument at %L must be a scalar INTEGER variable"
msgstr ""
-#: fortran/resolve.c:8799 fortran/resolve.c:8912
+#: fortran/resolve.c:8805 fortran/resolve.c:8918
#, gcc-internal-format, gfc-internal-format
msgid "ERRMSG= argument at %L must be a scalar CHARACTER variable"
msgstr ""
-#: fortran/resolve.c:8811
+#: fortran/resolve.c:8817
#, gcc-internal-format, gfc-internal-format
msgid "ACQUIRED_LOCK= argument at %L must be a scalar LOGICAL variable"
msgstr ""
-#: fortran/resolve.c:8822
+#: fortran/resolve.c:8828
#, gcc-internal-format, gfc-internal-format
msgid "UNTIL_COUNT= argument at %L must be a scalar INTEGER expression"
msgstr ""
-#: fortran/resolve.c:8882
+#: fortran/resolve.c:8888
#, gcc-internal-format, gfc-internal-format
msgid "Imageset argument at %L must be a scalar or rank-1 INTEGER expression"
msgstr ""
-#: fortran/resolve.c:8886 fortran/resolve.c:8896
+#: fortran/resolve.c:8892 fortran/resolve.c:8902
#, gcc-internal-format, gfc-internal-format
msgid "Imageset argument at %L must between 1 and num_images()"
msgstr ""
-#: fortran/resolve.c:8939
+#: fortran/resolve.c:8945
#, gcc-internal-format, gfc-internal-format
msgid ""
"Statement at %L is not a valid branch target statement for the branch "
"statement at %L"
msgstr ""
-#: fortran/resolve.c:8949
+#: fortran/resolve.c:8955
#, gcc-internal-format, gfc-internal-format
msgid "Branch at %L may result in an infinite loop"
msgstr ""
#. Note: A label at END CRITICAL does not leave the CRITICAL
#. construct as END CRITICAL is still part of it.
-#: fortran/resolve.c:8966 fortran/resolve.c:8989
+#: fortran/resolve.c:8972 fortran/resolve.c:8995
#, gcc-internal-format, gfc-internal-format
msgid "GOTO statement at %L leaves CRITICAL construct for label at %L"
msgstr ""
-#: fortran/resolve.c:8970 fortran/resolve.c:8995
+#: fortran/resolve.c:8976 fortran/resolve.c:9001
#, gcc-internal-format, gfc-internal-format
msgid "GOTO statement at %L leaves DO CONCURRENT construct for label at %L"
msgstr ""
#. The label is not in an enclosing block, so illegal. This was
#. allowed in Fortran 66, so we allow it as extension. No
#. further checks are necessary in this case.
-#: fortran/resolve.c:9010
+#: fortran/resolve.c:9016
#, gcc-internal-format, gfc-internal-format
msgid "Label at %L is not in the same block as the GOTO statement at %L"
msgstr ""
-#: fortran/resolve.c:9082
+#: fortran/resolve.c:9088
#, gcc-internal-format, gfc-internal-format
msgid "WHERE mask at %L has inconsistent shape"
msgstr ""
-#: fortran/resolve.c:9098
+#: fortran/resolve.c:9104
#, gcc-internal-format, gfc-internal-format
msgid "WHERE assignment target at %L has inconsistent shape"
msgstr ""
-#: fortran/resolve.c:9106 fortran/resolve.c:9193
+#: fortran/resolve.c:9112 fortran/resolve.c:9199
#, gcc-internal-format, gfc-internal-format
msgid "Non-ELEMENTAL user-defined assignment in WHERE at %L"
msgstr ""
-#: fortran/resolve.c:9116 fortran/resolve.c:9203
+#: fortran/resolve.c:9122 fortran/resolve.c:9209
#, gcc-internal-format, gfc-internal-format
msgid "Unsupported statement inside WHERE at %L"
msgstr ""
-#: fortran/resolve.c:9147
+#: fortran/resolve.c:9153
#, gcc-internal-format, gfc-internal-format
msgid "Assignment to a FORALL index variable at %L"
msgstr ""
-#: fortran/resolve.c:9156
+#: fortran/resolve.c:9162
#, gcc-internal-format
msgid ""
"The FORALL with index %qs is not used on the left side of the assignment at "
"%L and so might cause multiple assignment to this object"
msgstr ""
-#: fortran/resolve.c:9325
+#: fortran/resolve.c:9331
#, gcc-internal-format, gfc-internal-format
msgid "An outer FORALL construct already has an index with this name %L"
msgstr ""
-#: fortran/resolve.c:9403
+#: fortran/resolve.c:9409
#, gcc-internal-format, gfc-internal-format
msgid "WHERE/ELSEWHERE clause at %L requires a LOGICAL array"
msgstr ""
-#: fortran/resolve.c:9481
+#: fortran/resolve.c:9487
#, gcc-internal-format
msgid "gfc_resolve_blocks(): Bad block type"
msgstr ""
-#: fortran/resolve.c:9595
+#: fortran/resolve.c:9601
#, gcc-internal-format, gfc-internal-format
msgid "CHARACTER expression will be truncated in assignment (%d/%d) at %L"
msgstr ""
-#: fortran/resolve.c:9627
+#: fortran/resolve.c:9633
#, gcc-internal-format, gfc-internal-format
msgid ""
"Coindexed expression at %L is assigned to a derived type variable with a "
"POINTER component in a PURE procedure"
msgstr ""
-#: fortran/resolve.c:9632
+#: fortran/resolve.c:9638
#, gcc-internal-format, gfc-internal-format
msgid ""
"The impure variable at %L is assigned to a derived type variable with a "
"POINTER component in a PURE procedure (12.6)"
msgstr ""
-#: fortran/resolve.c:9642
+#: fortran/resolve.c:9648
#, gcc-internal-format, gfc-internal-format
msgid "Assignment to coindexed variable at %L in a PURE procedure"
msgstr ""
-#: fortran/resolve.c:9674
+#: fortran/resolve.c:9680
#, gcc-internal-format, gfc-internal-format
msgid "Assignment to polymorphic coarray at %L is not permitted"
msgstr ""
-#: fortran/resolve.c:9678
+#: fortran/resolve.c:9684
#, gcc-internal-format, gfc-internal-format
msgid "Assignment to an allocatable polymorphic variable at %L"
msgstr ""
-#: fortran/resolve.c:9683
+#: fortran/resolve.c:9689
#, gcc-internal-format
msgid ""
"Assignment to an allocatable polymorphic variable at %L requires %<-frealloc-"
msgstr ""
#. See PR 43366.
-#: fortran/resolve.c:9688
+#: fortran/resolve.c:9694
#, gcc-internal-format, gfc-internal-format
msgid ""
"Assignment to an allocatable polymorphic variable at %L is not yet supported"
msgstr ""
-#: fortran/resolve.c:9694
+#: fortran/resolve.c:9700
#, gcc-internal-format, gfc-internal-format
msgid ""
"Nonallocatable variable must not be polymorphic in intrinsic assignment at "
"%L - check that there is a matching specific subroutine for '=' operator"
msgstr ""
-#: fortran/resolve.c:9705
+#: fortran/resolve.c:9711
#, gcc-internal-format, gfc-internal-format
msgid ""
"Coindexed variable must not have an allocatable ultimate component in "
"assignment at %L"
msgstr ""
-#: fortran/resolve.c:10008
+#: fortran/resolve.c:10014
#, gcc-internal-format, gfc-internal-format
msgid ""
"TODO: type-bound defined assignment(s) at %L not done because multiple part "
#. Even if standard does not support this feature, continue to build
#. the two statements to avoid upsetting frontend_passes.c.
-#: fortran/resolve.c:10250
+#: fortran/resolve.c:10256
#, gcc-internal-format, gfc-internal-format
msgid "Pointer procedure assignment at %L"
msgstr ""
-#: fortran/resolve.c:10262
+#: fortran/resolve.c:10268
#, gcc-internal-format, gfc-internal-format
msgid ""
"The function result on the lhs of the assignment at %L must have the pointer "
"attribute."
msgstr ""
-#: fortran/resolve.c:10489
+#: fortran/resolve.c:10495
#, gcc-internal-format, gfc-internal-format
msgid "ASSIGNED GOTO statement at %L requires an INTEGER variable"
msgstr ""
-#: fortran/resolve.c:10492
+#: fortran/resolve.c:10498
#, gcc-internal-format
msgid "Variable %qs has not been assigned a target label at %L"
msgstr ""
-#: fortran/resolve.c:10503
+#: fortran/resolve.c:10509
#, gcc-internal-format, gfc-internal-format
msgid ""
"Alternate RETURN statement at %L requires a SCALAR-INTEGER return specifier"
msgstr ""
-#: fortran/resolve.c:10565
+#: fortran/resolve.c:10571
#, gcc-internal-format, gfc-internal-format
msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
msgstr ""
-#: fortran/resolve.c:10600
+#: fortran/resolve.c:10606
#, gcc-internal-format, gfc-internal-format
msgid "Invalid NULL at %L"
msgstr ""
-#: fortran/resolve.c:10604
+#: fortran/resolve.c:10610
#, gcc-internal-format, gfc-internal-format
msgid ""
"Arithmetic IF statement at %L requires a scalar REAL or INTEGER expression"
msgstr ""
-#: fortran/resolve.c:10660
+#: fortran/resolve.c:10666
#, gcc-internal-format
msgid "gfc_resolve_code(): No expression on DO WHILE"
msgstr ""
-#: fortran/resolve.c:10665
+#: fortran/resolve.c:10671
#, gcc-internal-format, gfc-internal-format
msgid ""
"Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression"
msgstr ""
-#: fortran/resolve.c:10749
+#: fortran/resolve.c:10755
#, gcc-internal-format, gfc-internal-format
msgid "FORALL mask clause at %L requires a scalar LOGICAL expression"
msgstr ""
-#: fortran/resolve.c:10820
+#: fortran/resolve.c:10826
#, gcc-internal-format
msgid "gfc_resolve_code(): Bad statement code"
msgstr ""
-#: fortran/resolve.c:10915
+#: fortran/resolve.c:10921
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable %s with binding label %s at %L uses the same global identifier as "
#. This can only happen if the variable is defined in a module - if it
#. isn't the same module, reject it.
-#: fortran/resolve.c:10928
+#: fortran/resolve.c:10934
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable %s from module %s with binding label %s at %L uses the same global "
#. Print an error if the procedure is defined multiple times; we have to
#. exclude references to the same procedure via module association or
#. multiple checks for the same procedure.
-#: fortran/resolve.c:10945
+#: fortran/resolve.c:10951
#, gcc-internal-format, gfc-internal-format
msgid ""
"Procedure %s with binding label %s at %L uses the same global identifier as "
"entity at %L"
msgstr ""
-#: fortran/resolve.c:11022
+#: fortran/resolve.c:11028
#, gcc-internal-format, gfc-internal-format
msgid "String length at %L is too large"
msgstr ""
-#: fortran/resolve.c:11358
+#: fortran/resolve.c:11364
#, gcc-internal-format
msgid "Allocatable array %qs at %L must have a deferred shape or assumed rank"
msgstr ""
-#: fortran/resolve.c:11362
+#: fortran/resolve.c:11368
#, gcc-internal-format
msgid "Scalar object %qs at %L may not be ALLOCATABLE"
msgstr ""
-#: fortran/resolve.c:11370
+#: fortran/resolve.c:11376
#, gcc-internal-format
msgid "Array pointer %qs at %L must have a deferred shape or assumed rank"
msgstr ""
-#: fortran/resolve.c:11380
+#: fortran/resolve.c:11386
#, gcc-internal-format
msgid "Array %qs at %L cannot have a deferred shape"
msgstr ""
-#: fortran/resolve.c:11395
+#: fortran/resolve.c:11401
#, gcc-internal-format
msgid "Type %qs of CLASS variable %qs at %L is not extensible"
msgstr ""
-#: fortran/resolve.c:11407
+#: fortran/resolve.c:11413
#, gcc-internal-format
msgid "CLASS variable %qs at %L must be dummy, allocatable or pointer"
msgstr ""
-#: fortran/resolve.c:11438
+#: fortran/resolve.c:11444
#, gcc-internal-format
msgid ""
"The type %qs cannot be host associated at %L because it is blocked by an "
"incompatible object of the same name declared at %L"
msgstr ""
-#: fortran/resolve.c:11460
+#: fortran/resolve.c:11466
#, gcc-internal-format
msgid ""
"Implied SAVE for module variable %qs at %L, needed due to the default "
#. The shape of a main program or module array needs to be
#. constant.
-#: fortran/resolve.c:11508
+#: fortran/resolve.c:11514
#, gcc-internal-format
msgid "The module or main program array %qs at %L must have constant shape"
msgstr ""
-#: fortran/resolve.c:11520
+#: fortran/resolve.c:11526
#, gcc-internal-format
msgid ""
"Entity %qs at %L has a deferred type parameter and requires either the "
"pointer or allocatable attribute"
msgstr ""
-#: fortran/resolve.c:11536
+#: fortran/resolve.c:11542
#, gcc-internal-format, gfc-internal-format
msgid ""
"Entity with assumed character length at %L must be a dummy argument or a "
"PARAMETER"
msgstr ""
-#: fortran/resolve.c:11557
+#: fortran/resolve.c:11563
#, gcc-internal-format
msgid "%qs at %L must have constant character length in this context"
msgstr ""
-#: fortran/resolve.c:11564
+#: fortran/resolve.c:11570
#, gcc-internal-format
msgid "COMMON variable %qs at %L must have constant character length"
msgstr ""
-#: fortran/resolve.c:11611
+#: fortran/resolve.c:11617
#, gcc-internal-format
msgid "Allocatable %qs at %L cannot have an initializer"
msgstr ""
-#: fortran/resolve.c:11614
+#: fortran/resolve.c:11620
#, gcc-internal-format
msgid "External %qs at %L cannot have an initializer"
msgstr ""
-#: fortran/resolve.c:11618
+#: fortran/resolve.c:11624
#, gcc-internal-format
msgid "Dummy %qs at %L cannot have an initializer"
msgstr ""
-#: fortran/resolve.c:11621
+#: fortran/resolve.c:11627
#, gcc-internal-format
msgid "Intrinsic %qs at %L cannot have an initializer"
msgstr ""
-#: fortran/resolve.c:11624
+#: fortran/resolve.c:11630
#, gcc-internal-format
msgid "Function result %qs at %L cannot have an initializer"
msgstr ""
-#: fortran/resolve.c:11627
+#: fortran/resolve.c:11633
#, gcc-internal-format
msgid "Automatic array %qs at %L cannot have an initializer"
msgstr ""
-#: fortran/resolve.c:11669
+#: fortran/resolve.c:11675
#, gcc-internal-format, gfc-internal-format
msgid "%s at %L"
msgstr ""
-#: fortran/resolve.c:11696
+#: fortran/resolve.c:11702
#, gcc-internal-format
msgid "Character-valued statement function %qs at %L must have constant length"
msgstr ""
-#: fortran/resolve.c:11718
+#: fortran/resolve.c:11724
#, gcc-internal-format
msgid ""
"%qs is of a PRIVATE type and cannot be a dummy argument of %qs, which is "
"PUBLIC at %L"
msgstr ""
-#: fortran/resolve.c:11740
+#: fortran/resolve.c:11746
#, gcc-internal-format
msgid ""
"Procedure %qs in PUBLIC interface %qs at %L takes dummy arguments of %qs "
"which is PRIVATE"
msgstr ""
-#: fortran/resolve.c:11758
+#: fortran/resolve.c:11764
#, gcc-internal-format
msgid "Function %qs at %L cannot have an initializer"
msgstr ""
-#: fortran/resolve.c:11767
+#: fortran/resolve.c:11773
#, gcc-internal-format
msgid "External object %qs at %L may not have an initializer"
msgstr ""
-#: fortran/resolve.c:11775
+#: fortran/resolve.c:11781
#, gcc-internal-format
msgid "ELEMENTAL function %qs at %L must have a scalar result"
msgstr ""
-#: fortran/resolve.c:11785
+#: fortran/resolve.c:11791
#, gcc-internal-format
msgid ""
"Statement function %qs at %L may not have pointer or allocatable attribute"
msgstr ""
-#: fortran/resolve.c:11804
+#: fortran/resolve.c:11810
#, gcc-internal-format
msgid "CHARACTER(*) function %qs at %L cannot be array-valued"
msgstr ""
-#: fortran/resolve.c:11808
+#: fortran/resolve.c:11814
#, gcc-internal-format
msgid "CHARACTER(*) function %qs at %L cannot be pointer-valued"
msgstr ""
-#: fortran/resolve.c:11812
+#: fortran/resolve.c:11818
#, gcc-internal-format
msgid "CHARACTER(*) function %qs at %L cannot be pure"
msgstr ""
-#: fortran/resolve.c:11816
+#: fortran/resolve.c:11822
#, gcc-internal-format
msgid "CHARACTER(*) function %qs at %L cannot be recursive"
msgstr ""
-#: fortran/resolve.c:11829
+#: fortran/resolve.c:11835
#, gcc-internal-format
msgid "CHARACTER(*) function %qs at %L"
msgstr ""
-#: fortran/resolve.c:11838
+#: fortran/resolve.c:11844
#, gcc-internal-format
msgid "Procedure pointer %qs at %L shall not be elemental"
msgstr ""
-#: fortran/resolve.c:11844
+#: fortran/resolve.c:11850
#, gcc-internal-format
msgid "Dummy procedure %qs at %L shall not be elemental"
msgstr ""
-#: fortran/resolve.c:11900
+#: fortran/resolve.c:11906
#, gcc-internal-format
msgid "PROCEDURE attribute conflicts with SAVE attribute in %qs at %L"
msgstr ""
-#: fortran/resolve.c:11906
+#: fortran/resolve.c:11912
#, gcc-internal-format
msgid "PROCEDURE attribute conflicts with INTENT attribute in %qs at %L"
msgstr ""
-#: fortran/resolve.c:11912
+#: fortran/resolve.c:11918
#, gcc-internal-format
msgid "PROCEDURE attribute conflicts with RESULT attribute in %qs at %L"
msgstr ""
-#: fortran/resolve.c:11920
+#: fortran/resolve.c:11926
#, gcc-internal-format
msgid "EXTERNAL attribute conflicts with FUNCTION attribute in %qs at %L"
msgstr ""
-#: fortran/resolve.c:11926
+#: fortran/resolve.c:11932
#, gcc-internal-format
msgid "Procedure pointer result %qs at %L is missing the pointer attribute"
msgstr ""
-#: fortran/resolve.c:11964
+#: fortran/resolve.c:11970
#, gcc-internal-format, gfc-internal-format
msgid ""
-"Mismatch in PURE attribute between MODULE PROCEDURE at %L and its interface "
-"in %s"
+"Mismatch in ELEMENTAL attribute between MODULE PROCEDURE at %L and its "
+"interface in %s"
msgstr ""
-#: fortran/resolve.c:11972
+#: fortran/resolve.c:11978
#, gcc-internal-format, gfc-internal-format
msgid ""
-"Mismatch in ELEMENTAL attribute between MODULE PROCEDURE at %L and its "
-"interface in %s"
+"Mismatch in PURE attribute between MODULE PROCEDURE at %L and its interface "
+"in %s"
msgstr ""
-#: fortran/resolve.c:11980
+#: fortran/resolve.c:11986
#, gcc-internal-format, gfc-internal-format
msgid ""
"Mismatch in RECURSIVE attribute between MODULE PROCEDURE at %L and its "
"interface in %s"
msgstr ""
-#: fortran/resolve.c:11989
+#: fortran/resolve.c:11995
#, gcc-internal-format, gfc-internal-format
msgid ""
"%s between the MODULE PROCEDURE declaration in module %s and the declaration "
"at %L in SUBMODULE %s"
msgstr ""
-#: fortran/resolve.c:12074
+#: fortran/resolve.c:12080
#, gcc-internal-format
msgid "FINAL procedure %qs at %L is not a SUBROUTINE"
msgstr ""
-#: fortran/resolve.c:12083
+#: fortran/resolve.c:12089
#, gcc-internal-format, gfc-internal-format
msgid "FINAL procedure at %L must have exactly one argument"
msgstr ""
-#: fortran/resolve.c:12092
+#: fortran/resolve.c:12098
#, gcc-internal-format
msgid "Argument of FINAL procedure at %L must be of type %qs"
msgstr ""
-#: fortran/resolve.c:12100
+#: fortran/resolve.c:12106
#, gcc-internal-format, gfc-internal-format
msgid "Argument of FINAL procedure at %L must not be a POINTER"
msgstr ""
-#: fortran/resolve.c:12106
+#: fortran/resolve.c:12112
#, gcc-internal-format, gfc-internal-format
msgid "Argument of FINAL procedure at %L must not be ALLOCATABLE"
msgstr ""
-#: fortran/resolve.c:12112
+#: fortran/resolve.c:12118
#, gcc-internal-format, gfc-internal-format
msgid "Argument of FINAL procedure at %L must not be OPTIONAL"
msgstr ""
-#: fortran/resolve.c:12120
+#: fortran/resolve.c:12126
#, gcc-internal-format, gfc-internal-format
msgid "Argument of FINAL procedure at %L must not be INTENT(OUT)"
msgstr ""
-#: fortran/resolve.c:12129
+#: fortran/resolve.c:12135
#, gcc-internal-format, gfc-internal-format
msgid "Non-scalar FINAL procedure at %L should have assumed shape argument"
msgstr ""
-#: fortran/resolve.c:12151
+#: fortran/resolve.c:12157
#, gcc-internal-format
msgid "FINAL procedure %qs declared at %L has the same rank (%d) as %qs"
msgstr ""
-#: fortran/resolve.c:12188
+#: fortran/resolve.c:12194
#, gcc-internal-format
msgid ""
"Only array FINAL procedures declared for derived type %qs defined at %L, "
"suggest also scalar one"
msgstr ""
-#: fortran/resolve.c:12228
+#: fortran/resolve.c:12234
#, gcc-internal-format
msgid "%qs and %qs can't be mixed FUNCTION/SUBROUTINE for GENERIC %qs at %L"
msgstr ""
-#: fortran/resolve.c:12264
+#: fortran/resolve.c:12270
#, gcc-internal-format
msgid "%qs and %qs for GENERIC %qs at %L are ambiguous"
msgstr ""
-#: fortran/resolve.c:12323
+#: fortran/resolve.c:12329
#, gcc-internal-format
msgid "Undefined specific binding %qs as target of GENERIC %qs at %L"
msgstr ""
-#: fortran/resolve.c:12335
+#: fortran/resolve.c:12341
#, gcc-internal-format
msgid "GENERIC %qs at %L must target a specific binding, %qs is GENERIC, too"
msgstr ""
-#: fortran/resolve.c:12363
+#: fortran/resolve.c:12369
#, gcc-internal-format
msgid "GENERIC %qs at %L can't overwrite specific binding with the same name"
msgstr ""
-#: fortran/resolve.c:12419
+#: fortran/resolve.c:12425
#, gcc-internal-format, gfc-internal-format
msgid "Type-bound operator at %L can't be NOPASS"
msgstr ""
-#: fortran/resolve.c:12601
+#: fortran/resolve.c:12607
#, gcc-internal-format
msgid ""
"%qs must be a module procedure or an external procedure with an explicit "
"interface at %L"
msgstr ""
-#: fortran/resolve.c:12643
+#: fortran/resolve.c:12649
#, gcc-internal-format
msgid "Procedure %qs with PASS(%s) at %L has no argument %qs"
msgstr ""
-#: fortran/resolve.c:12657
+#: fortran/resolve.c:12663
#, gcc-internal-format
msgid "Procedure %qs with PASS at %L must have at least one argument"
msgstr ""
-#: fortran/resolve.c:12671 fortran/resolve.c:13166
+#: fortran/resolve.c:12677 fortran/resolve.c:13125
#, gcc-internal-format
msgid "Non-polymorphic passed-object dummy argument of %qs at %L"
msgstr ""
-#: fortran/resolve.c:12679
+#: fortran/resolve.c:12685
#, gcc-internal-format
msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived-type %qs"
msgstr ""
-#: fortran/resolve.c:12688
+#: fortran/resolve.c:12694
#, gcc-internal-format
msgid "Passed-object dummy argument of %qs at %L must be scalar"
msgstr ""
-#: fortran/resolve.c:12694
+#: fortran/resolve.c:12700
#, gcc-internal-format
msgid "Passed-object dummy argument of %qs at %L must not be ALLOCATABLE"
msgstr ""
-#: fortran/resolve.c:12700
+#: fortran/resolve.c:12706
#, gcc-internal-format
msgid "Passed-object dummy argument of %qs at %L must not be POINTER"
msgstr ""
-#: fortran/resolve.c:12729
+#: fortran/resolve.c:12735
#, gcc-internal-format
msgid "Procedure %qs at %L has the same name as a component of %qs"
msgstr ""
-#: fortran/resolve.c:12738
+#: fortran/resolve.c:12745
#, gcc-internal-format
msgid "Procedure %qs at %L has the same name as an inherited component of %qs"
msgstr ""
-#: fortran/resolve.c:12830
+#: fortran/resolve.c:12837
#, gcc-internal-format
msgid ""
"Derived-type %qs declared at %L must be ABSTRACT because %qs is DEFERRED and "
"not overridden"
msgstr ""
-#: fortran/resolve.c:12928
-#, gcc-internal-format
-msgid ""
-"As extending type %qs at %L has a coarray component, parent type %qs shall "
-"also have one"
-msgstr ""
-
-#: fortran/resolve.c:12941
-#, gcc-internal-format
-msgid "Non-extensible derived-type %qs at %L must not be ABSTRACT"
-msgstr ""
-
-#: fortran/resolve.c:12961
+#: fortran/resolve.c:12932
#, gcc-internal-format
msgid "Coarray component %qs at %L must be allocatable with deferred shape"
msgstr ""
-#: fortran/resolve.c:12971
+#: fortran/resolve.c:12941
#, gcc-internal-format
msgid ""
"Component %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
msgstr ""
-#: fortran/resolve.c:12982
+#: fortran/resolve.c:12951
#, gcc-internal-format
msgid ""
"Component %qs at %L with coarray component shall be a nonpointer, "
"nonallocatable scalar"
msgstr ""
-#: fortran/resolve.c:12992
+#: fortran/resolve.c:12960
#, gcc-internal-format
msgid ""
"Component %qs at %L has the CONTIGUOUS attribute but is not an array pointer"
msgstr ""
-#: fortran/resolve.c:13093
+#: fortran/resolve.c:13058
#, gcc-internal-format
msgid "Procedure pointer component %qs with PASS(%s) at %L has no argument %qs"
msgstr ""
-#: fortran/resolve.c:13108
+#: fortran/resolve.c:13072
#, gcc-internal-format
msgid ""
"Procedure pointer component %qs with PASS at %L must have at least one "
"argument"
msgstr ""
-#: fortran/resolve.c:13125
+#: fortran/resolve.c:13088
#, gcc-internal-format
msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived type %qs"
msgstr ""
-#: fortran/resolve.c:13136
+#: fortran/resolve.c:13098
#, gcc-internal-format
msgid "Argument %qs of %qs with PASS(%s) at %L must be scalar"
msgstr ""
-#: fortran/resolve.c:13146
+#: fortran/resolve.c:13107
#, gcc-internal-format
msgid ""
"Argument %qs of %qs with PASS(%s) at %L may not have the POINTER attribute"
msgstr ""
-#: fortran/resolve.c:13156
+#: fortran/resolve.c:13116
#, gcc-internal-format
msgid "Argument %qs of %qs with PASS(%s) at %L may not be ALLOCATABLE"
msgstr ""
-#: fortran/resolve.c:13198
+#: fortran/resolve.c:13158
#, gcc-internal-format
msgid ""
"Component %qs of %qs at %L has the same name as an inherited type-bound "
"procedure"
msgstr ""
-#: fortran/resolve.c:13211
+#: fortran/resolve.c:13171
#, gcc-internal-format
msgid ""
"Character length of component %qs needs to be a constant specification "
"expression at %L"
msgstr ""
-#: fortran/resolve.c:13222
+#: fortran/resolve.c:13182
#, gcc-internal-format
msgid ""
"Character component %qs of %qs at %L with deferred length must be a POINTER "
"or ALLOCATABLE"
msgstr ""
-#: fortran/resolve.c:13253
+#: fortran/resolve.c:13213
#, gcc-internal-format
msgid ""
"the component %qs is a PRIVATE type and cannot be a component of %qs, which "
"is PUBLIC at %L"
msgstr ""
-#: fortran/resolve.c:13261
+#: fortran/resolve.c:13221
#, gcc-internal-format, gfc-internal-format
msgid "Polymorphic component %s at %L in SEQUENCE or BIND(C) type %s"
msgstr ""
-#: fortran/resolve.c:13270
+#: fortran/resolve.c:13230
#, gcc-internal-format, gfc-internal-format
msgid ""
"Component %s of SEQUENCE type declared at %L does not have the SEQUENCE "
"attribute"
msgstr ""
-#: fortran/resolve.c:13288 fortran/resolve.c:13300
+#: fortran/resolve.c:13248 fortran/resolve.c:13260
#, gcc-internal-format
msgid ""
"The pointer component %qs of %qs at %L is a type that has not been declared"
msgstr ""
-#: fortran/resolve.c:13312
+#: fortran/resolve.c:13272
#, gcc-internal-format
msgid "Component %qs with CLASS at %L must be allocatable or pointer"
msgstr ""
-#: fortran/resolve.c:13380
+#: fortran/resolve.c:13339
+#, gcc-internal-format, gfc-internal-format
+msgid "Conflicting initializers in union at %L and %L"
+msgstr ""
+
+#: fortran/resolve.c:13383
+#, gcc-internal-format
+msgid ""
+"As extending type %qs at %L has a coarray component, parent type %qs shall "
+"also have one"
+msgstr ""
+
+#: fortran/resolve.c:13396
+#, gcc-internal-format
+msgid "Non-extensible derived-type %qs at %L must not be ABSTRACT"
+msgstr ""
+
+#: fortran/resolve.c:13450
#, gcc-internal-format
msgid ""
"Generic name %qs of function %qs at %L being the same name as derived type "
"at %L"
msgstr ""
-#: fortran/resolve.c:13436
+#: fortran/resolve.c:13506
#, gcc-internal-format
msgid "Assumed size array %qs in namelist %qs at %L is not allowed"
msgstr ""
-#: fortran/resolve.c:13442
+#: fortran/resolve.c:13512
#, gcc-internal-format
msgid "NAMELIST array object %qs with assumed shape in namelist %qs at %L"
msgstr ""
-#: fortran/resolve.c:13448
+#: fortran/resolve.c:13518
#, gcc-internal-format
msgid "NAMELIST array object %qs with nonconstant shape in namelist %qs at %L"
msgstr ""
-#: fortran/resolve.c:13456
+#: fortran/resolve.c:13526
#, gcc-internal-format
msgid ""
"NAMELIST object %qs with nonconstant character length in namelist %qs at %L"
msgstr ""
-#: fortran/resolve.c:13466
+#: fortran/resolve.c:13536
#, gcc-internal-format
msgid ""
"NAMELIST object %qs in namelist %qs at %L is polymorphic and requires a "
"defined input/output procedure"
msgstr ""
-#: fortran/resolve.c:13476
+#: fortran/resolve.c:13546
#, gcc-internal-format
msgid ""
"NAMELIST object %qs in namelist %qs at %L with ALLOCATABLE or POINTER "
#. FIXME: Once UDDTIO is implemented, the following can be
#. removed.
-#: fortran/resolve.c:13484
+#: fortran/resolve.c:13554
#, gcc-internal-format
msgid ""
"NAMELIST object %qs in namelist %qs at %L has ALLOCATABLE or POINTER "
"components and thus requires a defined input/output procedure"
msgstr ""
-#: fortran/resolve.c:13501
+#: fortran/resolve.c:13571
#, gcc-internal-format
msgid ""
"NAMELIST object %qs was declared PRIVATE and cannot be member of PUBLIC "
"namelist %qs at %L"
msgstr ""
-#: fortran/resolve.c:13511
+#: fortran/resolve.c:13581
#, gcc-internal-format
msgid ""
"NAMELIST object %qs has use-associated PRIVATE components and cannot be "
"member of namelist %qs at %L"
msgstr ""
-#: fortran/resolve.c:13522
+#: fortran/resolve.c:13592
#, gcc-internal-format
msgid ""
"NAMELIST object %qs has PRIVATE components and cannot be a member of PUBLIC "
"namelist %qs at %L"
msgstr ""
-#: fortran/resolve.c:13549
+#: fortran/resolve.c:13619
#, gcc-internal-format
msgid "PROCEDURE attribute conflicts with NAMELIST attribute in %qs at %L"
msgstr ""
-#: fortran/resolve.c:13568
+#: fortran/resolve.c:13638
#, gcc-internal-format
msgid "Parameter array %qs at %L cannot be automatic or of deferred shape"
msgstr ""
-#: fortran/resolve.c:13580
+#: fortran/resolve.c:13650
#, gcc-internal-format
msgid ""
"Implicitly typed PARAMETER %qs at %L doesn't match a later IMPLICIT type"
msgstr ""
-#: fortran/resolve.c:13591
+#: fortran/resolve.c:13661
#, gcc-internal-format, gfc-internal-format
msgid "Incompatible derived type in PARAMETER at %L"
msgstr ""
-#: fortran/resolve.c:13678
+#: fortran/resolve.c:13753
#, gcc-internal-format, gfc-internal-format
msgid "PROTECTED attribute conflicts with EXTERNAL attribute at %L"
msgstr ""
-#: fortran/resolve.c:13681
+#: fortran/resolve.c:13756
#, gcc-internal-format, gfc-internal-format
msgid "PROCEDURE attribute conflicts with PROTECTED attribute at %L"
msgstr ""
-#: fortran/resolve.c:13770
+#: fortran/resolve.c:13849
#, gcc-internal-format
msgid ""
"%qs at %L has the CONTIGUOUS attribute but is not an array pointer or an "
"assumed-shape or assumed-rank array"
msgstr ""
-#: fortran/resolve.c:13788
+#: fortran/resolve.c:13867
#, gcc-internal-format, gfc-internal-format
msgid "Assumed size array at %L must be a dummy argument"
msgstr ""
-#: fortran/resolve.c:13791
+#: fortran/resolve.c:13870
#, gcc-internal-format, gfc-internal-format
msgid "Assumed shape array at %L must be a dummy argument"
msgstr ""
-#: fortran/resolve.c:13799
+#: fortran/resolve.c:13878
#, gcc-internal-format, gfc-internal-format
msgid "Assumed-rank array at %L must be a dummy argument"
msgstr ""
-#: fortran/resolve.c:13806
+#: fortran/resolve.c:13885
#, gcc-internal-format, gfc-internal-format
msgid ""
"Assumed-rank array at %L may not have the VALUE or CODIMENSION attribute"
msgstr ""
-#: fortran/resolve.c:13819
+#: fortran/resolve.c:13898
#, gcc-internal-format, gfc-internal-format
msgid "Symbol at %L is not a DUMMY variable"
msgstr ""
-#: fortran/resolve.c:13825
+#: fortran/resolve.c:13904
#, gcc-internal-format
msgid ""
"%qs at %L cannot have the VALUE attribute because it is not a dummy argument"
msgstr ""
-#: fortran/resolve.c:13835
+#: fortran/resolve.c:13914
#, gcc-internal-format
msgid ""
"Character dummy variable %qs at %L with VALUE attribute must have constant "
"length"
msgstr ""
-#: fortran/resolve.c:13844
+#: fortran/resolve.c:13923
#, gcc-internal-format
msgid ""
"C interoperable character dummy variable %qs at %L with VALUE attribute must "
"have length one"
msgstr ""
-#: fortran/resolve.c:13857 fortran/resolve.c:14024
+#: fortran/resolve.c:13936 fortran/resolve.c:14103
#, gcc-internal-format
msgid "The derived type %qs at %L is of type %qs, which has not been defined"
msgstr ""
-#: fortran/resolve.c:13871
+#: fortran/resolve.c:13950
#, gcc-internal-format, gfc-internal-format
msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be a dummy argument"
msgstr ""
-#: fortran/resolve.c:13880
+#: fortran/resolve.c:13959
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable %s at %L with NO_ARG_CHECK attribute shall be of type TYPE(*) or of "
"an numeric intrinsic type"
msgstr ""
-#: fortran/resolve.c:13889
+#: fortran/resolve.c:13968
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable %s at %L with NO_ARG_CHECK attribute may not have the ALLOCATABLE, "
"CODIMENSION, POINTER or VALUE attribute"
msgstr ""
-#: fortran/resolve.c:13897
+#: fortran/resolve.c:13976
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable %s at %L with NO_ARG_CHECK attribute may not have the INTENT(OUT) "
"attribute"
msgstr ""
-#: fortran/resolve.c:13904
+#: fortran/resolve.c:13983
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable %s at %L with NO_ARG_CHECK attribute shall either be a scalar or an "
"assumed-size array"
msgstr ""
-#: fortran/resolve.c:13924
+#: fortran/resolve.c:14003
#, gcc-internal-format, gfc-internal-format
msgid "Assumed type of variable %s at %L is only permitted for dummy variables"
msgstr ""
-#: fortran/resolve.c:13931
+#: fortran/resolve.c:14010
#, 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:13938
+#: fortran/resolve.c:14017
#, gcc-internal-format, gfc-internal-format
msgid "Assumed-type variable %s at %L may not have the INTENT(OUT) attribute"
msgstr ""
-#: fortran/resolve.c:13945
+#: fortran/resolve.c:14024
#, gcc-internal-format, gfc-internal-format
msgid "Assumed-type variable %s at %L shall not be an explicit-shape array"
msgstr ""
-#: fortran/resolve.c:13970
+#: fortran/resolve.c:14049
#, gcc-internal-format
msgid ""
"Variable %qs at %L cannot be BIND(C) because it is neither a COMMON block "
"nor declared at the module level scope"
msgstr ""
-#: fortran/resolve.c:14050
+#: fortran/resolve.c:14129
#, gcc-internal-format
msgid "PUBLIC %s %qs at %L of PRIVATE derived type %qs"
msgstr ""
-#: fortran/resolve.c:14065
+#: fortran/resolve.c:14144
#, 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:14078
+#: fortran/resolve.c:14157
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable %s at %L of type EVENT_TYPE or with subcomponent of type LOCK_TYPE "
"must be a coarray"
msgstr ""
-#: fortran/resolve.c:14096
+#: fortran/resolve.c:14175
#, gcc-internal-format
msgid ""
"The INTENT(OUT) dummy argument %qs at %L is ASSUMED SIZE and so cannot have "
"a default initializer"
msgstr ""
-#: fortran/resolve.c:14108
+#: fortran/resolve.c:14187
#, gcc-internal-format
msgid "Dummy argument %qs at %L of LOCK_TYPE shall not be INTENT(OUT)"
msgstr ""
-#: fortran/resolve.c:14117
+#: fortran/resolve.c:14196
#, gcc-internal-format
msgid "Dummy argument %qs at %L of EVENT_TYPE shall not be INTENT(OUT)"
msgstr ""
-#: fortran/resolve.c:14129
+#: fortran/resolve.c:14208
#, gcc-internal-format
msgid ""
"Function result %qs at %L shall not be a coarray or have a coarray component"
msgstr ""
-#: fortran/resolve.c:14138
+#: fortran/resolve.c:14217
#, gcc-internal-format
msgid ""
"Variable %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
msgstr ""
-#: fortran/resolve.c:14150
+#: fortran/resolve.c:14229
#, gcc-internal-format
msgid ""
"Variable %qs at %L with coarray component shall be a nonpointer, "
"nonallocatable scalar, which is not a coarray"
msgstr ""
-#: fortran/resolve.c:14165
+#: fortran/resolve.c:14244
#, gcc-internal-format
msgid ""
"Variable %qs at %L is a coarray and is not ALLOCATABLE, SAVE nor a dummy "
"argument"
msgstr ""
-#: fortran/resolve.c:14173
+#: fortran/resolve.c:14252
#, gcc-internal-format
msgid ""
"Coarray variable %qs at %L shall not have codimensions with deferred shape"
msgstr ""
-#: fortran/resolve.c:14180
+#: fortran/resolve.c:14259
#, gcc-internal-format
msgid "Allocatable coarray variable %qs at %L must have deferred shape"
msgstr ""
-#: fortran/resolve.c:14192
+#: fortran/resolve.c:14271
#, gcc-internal-format
msgid ""
"Variable %qs at %L is INTENT(OUT) and can thus not be an allocatable coarray "
"or have coarray components"
msgstr ""
-#: fortran/resolve.c:14201
+#: fortran/resolve.c:14280
#, gcc-internal-format
msgid "Coarray dummy variable %qs at %L not allowed in BIND(C) procedure %qs"
msgstr ""
-#: fortran/resolve.c:14217
+#: fortran/resolve.c:14296
#, gcc-internal-format
msgid ""
"LOGICAL dummy argument %qs at %L with non-C_Bool kind in BIND(C) procedure "
"%qs"
msgstr ""
-#: fortran/resolve.c:14223
+#: fortran/resolve.c:14302
#, gcc-internal-format
msgid ""
"LOGICAL result variable %qs at %L with non-C_Bool kind in BIND(C) procedure "
"%qs"
msgstr ""
-#: fortran/resolve.c:14248
+#: fortran/resolve.c:14327
#, gcc-internal-format, gfc-internal-format
msgid "Namelist '%s' can not be an argument to subroutine or function at %L"
msgstr ""
-#: fortran/resolve.c:14317
+#: fortran/resolve.c:14396
#, gcc-internal-format, gfc-internal-format
msgid "Threadprivate at %L isn't SAVEd"
msgstr ""
-#: fortran/resolve.c:14328
+#: fortran/resolve.c:14407
#, gcc-internal-format
msgid "!$OMP DECLARE TARGET variable %qs at %L isn't SAVEd"
msgstr ""
-#: fortran/resolve.c:14420
+#: fortran/resolve.c:14499
#, gcc-internal-format
msgid "check_data_variable(): Bad expression"
msgstr ""
-#: fortran/resolve.c:14426
+#: fortran/resolve.c:14505
#, gcc-internal-format
msgid "BLOCK DATA element %qs at %L must be in COMMON"
msgstr ""
-#: fortran/resolve.c:14432
+#: fortran/resolve.c:14511
#, gcc-internal-format
msgid "DATA array %qs at %L must be specified in a previous declaration"
msgstr ""
-#: fortran/resolve.c:14441
+#: fortran/resolve.c:14520
#, gcc-internal-format
msgid "DATA element %qs at %L cannot have a coindex"
msgstr ""
-#: fortran/resolve.c:14455
+#: fortran/resolve.c:14534
#, gcc-internal-format
msgid "DATA element %qs at %L is a pointer and so must be a full array"
msgstr ""
-#: fortran/resolve.c:14501
+#: fortran/resolve.c:14580
#, gcc-internal-format, gfc-internal-format
msgid "Nonconstant array section at %L in DATA statement"
msgstr ""
-#: fortran/resolve.c:14514
+#: fortran/resolve.c:14593
#, gcc-internal-format, gfc-internal-format
msgid "DATA statement at %L has more variables than values"
msgstr ""
-#: fortran/resolve.c:14613
+#: fortran/resolve.c:14692
#, 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:14621
+#: fortran/resolve.c:14700
#, 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:14629
+#: fortran/resolve.c:14708
#, 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:14754
+#: fortran/resolve.c:14833
#, gcc-internal-format, gfc-internal-format
msgid "DATA statement at %L has more values than variables"
msgstr ""
-#: fortran/resolve.c:14919
+#: fortran/resolve.c:14998
#, gcc-internal-format, gfc-internal-format
msgid "Label %d at %L defined but not used"
msgstr ""
-#: fortran/resolve.c:14924
+#: fortran/resolve.c:15003
#, gcc-internal-format, gfc-internal-format
msgid "Label %d at %L defined but cannot be used"
msgstr ""
-#: fortran/resolve.c:15008
+#: fortran/resolve.c:15087
#, gcc-internal-format
msgid ""
"Derived type variable %qs at %L must have SEQUENCE attribute to be an "
"EQUIVALENCE object"
msgstr ""
-#: fortran/resolve.c:15017
+#: fortran/resolve.c:15096
#, gcc-internal-format
msgid ""
"Derived type variable %qs at %L cannot have ALLOCATABLE components to be an "
"EQUIVALENCE object"
msgstr ""
-#: fortran/resolve.c:15025
+#: fortran/resolve.c:15104
#, gcc-internal-format
msgid ""
"Derived type variable %qs at %L with default initialization cannot be in "
"EQUIVALENCE with a variable in COMMON"
msgstr ""
-#: fortran/resolve.c:15041
+#: fortran/resolve.c:15120
#, gcc-internal-format
msgid ""
"Derived type variable %qs at %L with pointer component(s) cannot be an "
"EQUIVALENCE object"
msgstr ""
-#: fortran/resolve.c:15144
+#: fortran/resolve.c:15223
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in EQUIVALENCE statement at %L"
msgstr ""
-#: fortran/resolve.c:15159
+#: fortran/resolve.c:15238
#, 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:15171
+#: fortran/resolve.c:15250
#, gcc-internal-format
msgid ""
"Common block member %qs at %L cannot be an EQUIVALENCE object in the pure "
"procedure %qs"
msgstr ""
-#: fortran/resolve.c:15180
+#: fortran/resolve.c:15259
#, gcc-internal-format
msgid "Named constant %qs at %L cannot be an EQUIVALENCE object"
msgstr ""
-#: fortran/resolve.c:15253
+#: fortran/resolve.c:15332
#, gcc-internal-format
msgid ""
"Array %qs at %L with non-constant bounds cannot be an EQUIVALENCE object"
msgstr ""
-#: fortran/resolve.c:15264
+#: fortran/resolve.c:15343
#, gcc-internal-format
msgid "Structure component %qs at %L cannot be an EQUIVALENCE object"
msgstr ""
-#: fortran/resolve.c:15275
+#: fortran/resolve.c:15354
#, gcc-internal-format, gfc-internal-format
msgid "Substring at %L has length zero"
msgstr ""
-#: fortran/resolve.c:15318
+#: fortran/resolve.c:15397
#, gcc-internal-format
msgid "PUBLIC function %qs at %L of PRIVATE type %qs"
msgstr ""
-#: fortran/resolve.c:15331
+#: fortran/resolve.c:15410
#, gcc-internal-format
msgid "ENTRY %qs at %L has no IMPLICIT type"
msgstr ""
-#: fortran/resolve.c:15348
+#: fortran/resolve.c:15427
#, gcc-internal-format
msgid "User operator procedure %qs at %L must be a FUNCTION"
msgstr ""
-#: fortran/resolve.c:15358
+#: fortran/resolve.c:15437
#, gcc-internal-format
msgid "User operator procedure %qs at %L cannot be assumed character length"
msgstr ""
-#: fortran/resolve.c:15366
+#: fortran/resolve.c:15445
#, gcc-internal-format
msgid "User operator procedure %qs at %L must have at least one argument"
msgstr ""
-#: fortran/resolve.c:15380
+#: fortran/resolve.c:15459
#, gcc-internal-format, gfc-internal-format
msgid "First argument of operator interface at %L cannot be optional"
msgstr ""
-#: fortran/resolve.c:15398
+#: fortran/resolve.c:15477
#, gcc-internal-format, gfc-internal-format
msgid "Second argument of operator interface at %L cannot be optional"
msgstr ""
-#: fortran/resolve.c:15405
+#: fortran/resolve.c:15484
#, gcc-internal-format, gfc-internal-format
msgid "Operator interface at %L must have, at most, two arguments"
msgstr ""
-#: fortran/resolve.c:15483
+#: fortran/resolve.c:15562
#, gcc-internal-format
msgid "Contained procedure %qs at %L of a PURE procedure must also be PURE"
msgstr ""
msgid "Missing %<&%> in continued character constant at %C"
msgstr ""
-#: fortran/scanner.c:1691
+#: fortran/scanner.c:1692
#, gcc-internal-format, gfc-internal-format
msgid "Nonconforming tab character at %C"
msgstr ""
-#: fortran/scanner.c:1779 fortran/scanner.c:1782
+#: fortran/scanner.c:1780 fortran/scanner.c:1783
#, gcc-internal-format
msgid "%<&%> not allowed by itself in line %d"
msgstr ""
-#: fortran/scanner.c:1841
+#: fortran/scanner.c:1842
#, gcc-internal-format, gfc-internal-format
msgid "Nonconforming tab character in column %d of line %d"
msgstr ""
-#: fortran/scanner.c:2070
+#: fortran/scanner.c:2071
#, gcc-internal-format
msgid "file %qs left but not entered"
msgstr ""
-#: fortran/scanner.c:2108
+#: fortran/scanner.c:2109
#, gcc-internal-format
msgid "Illegal preprocessor directive"
msgstr ""
-#: fortran/scanner.c:2235
+#: fortran/scanner.c:2236
#, gcc-internal-format
msgid "Can't open file %qs"
msgstr ""
msgid "DIM argument at %L is out of bounds"
msgstr ""
-#: fortran/simplify.c:3927
+#: fortran/simplify.c:3931
#, gcc-internal-format, gfc-internal-format
msgid "Argument of LOG at %L cannot be less than or equal to zero"
msgstr ""
-#: fortran/simplify.c:3940
+#: fortran/simplify.c:3944
#, gcc-internal-format, gfc-internal-format
msgid "Complex argument of LOG at %L cannot be zero"
msgstr ""
-#: fortran/simplify.c:3951
+#: fortran/simplify.c:3955
#, gcc-internal-format
msgid "gfc_simplify_log: bad type"
msgstr ""
-#: fortran/simplify.c:3968
+#: fortran/simplify.c:3972
#, gcc-internal-format, gfc-internal-format
msgid "Argument of LOG10 at %L cannot be less than or equal to zero"
msgstr ""
-#: fortran/simplify.c:4271
+#: fortran/simplify.c:4275
#, gcc-internal-format
msgid "simplify_min_max(): Bad type in arglist"
msgstr ""
#. Result is processor-dependent.
-#: fortran/simplify.c:4447
+#: fortran/simplify.c:4451
#, gcc-internal-format, gfc-internal-format
msgid "Second argument MOD at %L is zero"
msgstr ""
#. Result is processor-dependent.
-#: fortran/simplify.c:4458
+#: fortran/simplify.c:4462
#, gcc-internal-format, gfc-internal-format
msgid "Second argument of MOD at %L is zero"
msgstr ""
-#: fortran/simplify.c:4469
+#: fortran/simplify.c:4473
#, gcc-internal-format
msgid "gfc_simplify_mod(): Bad arguments"
msgstr ""
#. Result is processor-dependent. This processor just opts
#. to not handle it at all.
#. Result is processor-dependent.
-#: fortran/simplify.c:4495 fortran/simplify.c:4507
+#: fortran/simplify.c:4499 fortran/simplify.c:4511
#, gcc-internal-format, gfc-internal-format
msgid "Second argument of MODULO at %L is zero"
msgstr ""
-#: fortran/simplify.c:4527
+#: fortran/simplify.c:4531
#, gcc-internal-format
msgid "gfc_simplify_modulo(): Bad arguments"
msgstr ""
-#: fortran/simplify.c:4575
+#: fortran/simplify.c:4579
#, gcc-internal-format, gfc-internal-format
msgid "Result of NEAREST is NaN at %L"
msgstr ""
-#: fortran/simplify.c:5051
+#: fortran/simplify.c:5055
#, gcc-internal-format, gfc-internal-format
msgid "Argument NCOPIES of REPEAT intrinsic is negative at %L"
msgstr ""
-#: fortran/simplify.c:5106
+#: fortran/simplify.c:5110
#, gcc-internal-format, gfc-internal-format
msgid "Argument NCOPIES of REPEAT intrinsic is too large at %L"
msgstr ""
-#: fortran/simplify.c:5259
+#: fortran/simplify.c:5263
#, gcc-internal-format, gfc-internal-format
msgid "Reshaped array too large at %C"
msgstr ""
-#: fortran/simplify.c:5373
+#: fortran/simplify.c:5377
#, gcc-internal-format, gfc-internal-format
msgid "Result of SCALE overflows its kind at %L"
msgstr ""
-#: fortran/simplify.c:5952
+#: fortran/simplify.c:5956
#, gcc-internal-format
msgid "Bad type in gfc_simplify_sign"
msgstr ""
-#: fortran/simplify.c:5981
+#: fortran/simplify.c:5985
#, gcc-internal-format
msgid "in gfc_simplify_sin(): Bad type"
msgstr ""
-#: fortran/simplify.c:6108 fortran/simplify.c:6353
+#: fortran/simplify.c:6112 fortran/simplify.c:6357
#, gcc-internal-format
msgid "Failure getting length of a constant array."
msgstr ""
-#: fortran/simplify.c:6118
+#: fortran/simplify.c:6122
#, gcc-internal-format
msgid ""
"The number of elements (%d) in the array constructor at %L requires an "
"option."
msgstr ""
-#: fortran/simplify.c:6184
+#: fortran/simplify.c:6188
#, gcc-internal-format, gfc-internal-format
msgid "Simplification of SPREAD at %L not yet implemented"
msgstr ""
-#: fortran/simplify.c:6209
+#: fortran/simplify.c:6213
#, gcc-internal-format, gfc-internal-format
msgid "Argument of SQRT at %L has a negative value"
msgstr ""
-#: fortran/simplify.c:6225
+#: fortran/simplify.c:6229
#, gcc-internal-format, gfc-internal-format
msgid "invalid argument of SQRT at %L"
msgstr ""
-#: fortran/simplify.c:6520
+#: fortran/simplify.c:6524
#, gcc-internal-format, gfc-internal-format
msgid ""
"Out of bounds in IMAGE_INDEX at %L for dimension %d, SUB has %ld and COARRAY "
"lower bound is %ld)"
msgstr ""
-#: fortran/simplify.c:6543
+#: fortran/simplify.c:6547
#, gcc-internal-format, gfc-internal-format
msgid ""
"Out of bounds in IMAGE_INDEX at %L for dimension %d, SUB has %ld and COARRAY "
"upper bound is %ld)"
msgstr ""
-#: fortran/simplify.c:6878
+#: fortran/simplify.c:6882
#, gcc-internal-format
msgid "gfc_convert_constant(): Unexpected type"
msgstr ""
-#: fortran/simplify.c:6964
+#: fortran/simplify.c:6968
#, gcc-internal-format
msgid ""
"Character %qs in string at %L cannot be converted into character kind %d"
msgid "gfc_free_statement(): Bad statement"
msgstr ""
-#: fortran/symbol.c:131
+#: fortran/symbol.c:132
#, gcc-internal-format, gfc-internal-format
msgid "IMPLICIT NONE (type) statement at %L following an IMPLICIT statement"
msgstr ""
-#: fortran/symbol.c:168
+#: fortran/symbol.c:169
#, gcc-internal-format
msgid "Letter %qc already set in IMPLICIT statement at %C"
msgstr ""
-#: fortran/symbol.c:190
+#: fortran/symbol.c:191
#, gcc-internal-format, gfc-internal-format
msgid "Cannot specify IMPLICIT at %C after IMPLICIT NONE"
msgstr ""
-#: fortran/symbol.c:200
+#: fortran/symbol.c:201
#, gcc-internal-format
msgid "Letter %qc already has an IMPLICIT type at %C"
msgstr ""
-#: fortran/symbol.c:224
+#: fortran/symbol.c:225
#, gcc-internal-format
msgid ""
"Option %<-fallow-leading-underscore%> is for use only by gfortran "
"developers, and should not be used for implicitly typed variables"
msgstr ""
-#: fortran/symbol.c:229
+#: fortran/symbol.c:230
#, gcc-internal-format
msgid "gfc_get_default_type(): Bad symbol %qs"
msgstr ""
-#: fortran/symbol.c:248
+#: fortran/symbol.c:249
#, gcc-internal-format
msgid "gfc_set_default_type(): symbol already has a type"
msgstr ""
-#: fortran/symbol.c:256
+#: fortran/symbol.c:257
#, gcc-internal-format
msgid "Symbol %qs at %L has no IMPLICIT type"
msgstr ""
#. BIND(C) variables should not be implicitly declared.
-#: fortran/symbol.c:276
+#: fortran/symbol.c:277
#, gcc-internal-format
msgid ""
"Implicitly declared BIND(C) variable %qs at %L may not be C interoperable"
#. Dummy args to a BIND(C) routine may not be interoperable if
#. they are implicitly typed.
-#: fortran/symbol.c:292
+#: fortran/symbol.c:293
#, gcc-internal-format
msgid ""
"Implicitly declared variable %qs at %L may not be C interoperable but it is "
"a dummy argument to the BIND(C) procedure %qs at %L"
msgstr ""
-#: fortran/symbol.c:333
+#: fortran/symbol.c:334
#, gcc-internal-format
msgid "Function result %qs at %L has no IMPLICIT type"
msgstr ""
-#: fortran/symbol.c:429
+#: fortran/symbol.c:430
#, gcc-internal-format, gfc-internal-format
msgid "%s attribute not allowed in BLOCK DATA program unit at %L"
msgstr ""
-#: fortran/symbol.c:453
+#: fortran/symbol.c:454
#, gcc-internal-format, gfc-internal-format
msgid "Namelist group name at %L cannot have the SAVE attribute"
msgstr ""
-#: fortran/symbol.c:468
+#: fortran/symbol.c:469
#, gcc-internal-format
msgid "internal procedure %qs at %L conflicts with DUMMY argument"
msgstr ""
-#: fortran/symbol.c:494
+#: fortran/symbol.c:495
#, gcc-internal-format, gfc-internal-format
msgid "Procedure pointer at %C"
msgstr ""
-#: fortran/symbol.c:679
+#: fortran/symbol.c:680
#, gcc-internal-format, gfc-internal-format
msgid "%s attribute applied to %s %s at %L"
msgstr ""
-#: fortran/symbol.c:686
+#: fortran/symbol.c:687
#, gcc-internal-format, gfc-internal-format
msgid "BIND(C) applied to %s %s at %L"
msgstr ""
-#: fortran/symbol.c:802 fortran/symbol.c:1599
+#: fortran/symbol.c:803 fortran/symbol.c:1600
#, gcc-internal-format, gfc-internal-format
msgid "%s attribute conflicts with %s attribute at %L"
msgstr ""
-#: fortran/symbol.c:805
+#: fortran/symbol.c:806
#, gcc-internal-format
msgid "%s attribute conflicts with %s attribute in %qs at %L"
msgstr ""
-#: fortran/symbol.c:813
+#: fortran/symbol.c:814
#, gcc-internal-format, gfc-internal-format
msgid "%s attribute with %s attribute at %L"
msgstr ""
-#: fortran/symbol.c:819
+#: fortran/symbol.c:820
#, gcc-internal-format
msgid "%s attribute with %s attribute in %qs at %L"
msgstr ""
-#: fortran/symbol.c:863
+#: fortran/symbol.c:864
#, gcc-internal-format, gfc-internal-format
msgid "Cannot change attributes of USE-associated symbol at %L"
msgstr ""
-#: fortran/symbol.c:866
+#: fortran/symbol.c:867
#, gcc-internal-format, gfc-internal-format
msgid "Cannot change attributes of USE-associated symbol %s at %L"
msgstr ""
-#: fortran/symbol.c:882
+#: fortran/symbol.c:883
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate %s attribute specified at %L"
msgstr ""
-#: fortran/symbol.c:924
+#: fortran/symbol.c:925
#, gcc-internal-format, gfc-internal-format
msgid "ALLOCATABLE specified outside of INTERFACE body at %L"
msgstr ""
-#: fortran/symbol.c:950
+#: fortran/symbol.c:951
#, gcc-internal-format
msgid "CODIMENSION specified for %qs outside its INTERFACE body at %L"
msgstr ""
-#: fortran/symbol.c:976
+#: fortran/symbol.c:977
#, gcc-internal-format
msgid "DIMENSION specified for %qs outside its INTERFACE body at %L"
msgstr ""
-#: fortran/symbol.c:1106
+#: fortran/symbol.c:1107
#, gcc-internal-format, gfc-internal-format
msgid "Cray Pointee at %L appears in multiple pointer() statements"
msgstr ""
-#: fortran/symbol.c:1125
+#: fortran/symbol.c:1126
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate PROTECTED attribute specified at %L"
msgstr ""
-#: fortran/symbol.c:1158
+#: fortran/symbol.c:1159
#, gcc-internal-format, gfc-internal-format
msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
msgstr ""
-#: fortran/symbol.c:1169
+#: fortran/symbol.c:1170
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate SAVE attribute specified at %L"
msgstr ""
-#: fortran/symbol.c:1189
+#: fortran/symbol.c:1190
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate VALUE attribute specified at %L"
msgstr ""
-#: fortran/symbol.c:1208
+#: fortran/symbol.c:1209
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate VOLATILE attribute specified at %L"
msgstr ""
-#: fortran/symbol.c:1227
+#: fortran/symbol.c:1228
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate ASYNCHRONOUS attribute specified at %L"
msgstr ""
-#: fortran/symbol.c:1595
+#: fortran/symbol.c:1596
#, gcc-internal-format
msgid "%s attribute of %qs conflicts with %s attribute at %L"
msgstr ""
-#: fortran/symbol.c:1631
+#: fortran/symbol.c:1632
#, gcc-internal-format, gfc-internal-format
msgid ""
"%s procedure at %L is already declared as %s procedure. \n"
"kind of executable statement before it. FIXME"
msgstr ""
-#: fortran/symbol.c:1639
+#: fortran/symbol.c:1640
#, gcc-internal-format, gfc-internal-format
msgid "%s procedure at %L is already declared as %s procedure"
msgstr ""
-#: fortran/symbol.c:1674
+#: fortran/symbol.c:1675
#, gcc-internal-format, gfc-internal-format
msgid "INTENT (%s) conflicts with INTENT(%s) at %L"
msgstr ""
-#: fortran/symbol.c:1698
+#: fortran/symbol.c:1699
#, gcc-internal-format, gfc-internal-format
msgid "ACCESS specification at %L was already specified"
msgstr ""
-#: fortran/symbol.c:1715
+#: fortran/symbol.c:1716
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate BIND attribute specified at %L"
msgstr ""
-#: fortran/symbol.c:1722
+#: fortran/symbol.c:1723
#, gcc-internal-format, gfc-internal-format
msgid "BIND(C) at %L"
msgstr ""
-#: fortran/symbol.c:1738
+#: fortran/symbol.c:1739
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate EXTENDS attribute specified at %L"
msgstr ""
-#: fortran/symbol.c:1742
+#: fortran/symbol.c:1743
#, gcc-internal-format, gfc-internal-format
msgid "EXTENDS at %L"
msgstr ""
-#: fortran/symbol.c:1768
+#: fortran/symbol.c:1769
#, gcc-internal-format
msgid "Symbol %qs at %L already has an explicit interface"
msgstr ""
-#: fortran/symbol.c:1775
+#: fortran/symbol.c:1776
#, gcc-internal-format
msgid "%qs at %L has attributes specified outside its INTERFACE body"
msgstr ""
-#: fortran/symbol.c:1813
+#: fortran/symbol.c:1814
#, gcc-internal-format
msgid ""
"Symbol %qs at %L conflicts with symbol from module %qs, use-associated at %L"
msgstr ""
-#: fortran/symbol.c:1817
+#: fortran/symbol.c:1818
#, gcc-internal-format
msgid "Symbol %qs at %L already has basic type of %s"
msgstr ""
-#: fortran/symbol.c:1824
+#: fortran/symbol.c:1825
#, gcc-internal-format
msgid "Procedure %qs at %L may not have basic type of %s"
msgstr ""
-#: fortran/symbol.c:1836
+#: fortran/symbol.c:1837
#, gcc-internal-format
msgid "Symbol %qs at %L cannot have a type"
msgstr ""
-#: fortran/symbol.c:2057
+#: fortran/symbol.c:2063
#, gcc-internal-format
msgid "Component %qs at %C already declared at %L"
msgstr ""
-#: fortran/symbol.c:2068
+#: fortran/symbol.c:2075
#, gcc-internal-format
msgid "Component %qs at %C already in the parent type at %L"
msgstr ""
-#: fortran/symbol.c:2153
+#: fortran/symbol.c:2160
#, gcc-internal-format
msgid "Symbol %qs at %C is ambiguous"
msgstr ""
-#: fortran/symbol.c:2185
+#: fortran/symbol.c:2192
#, gcc-internal-format
msgid "Derived type %qs at %C is being used before it is defined"
msgstr ""
-#: fortran/symbol.c:2223
+#: fortran/symbol.c:2315
#, gcc-internal-format
msgid "Component %qs at %C is a PRIVATE component of %qs"
msgstr ""
-#: fortran/symbol.c:2241
+#: fortran/symbol.c:2333
#, gcc-internal-format
msgid "%qs at %C is not a member of the %qs structure"
msgstr ""
-#: fortran/symbol.c:2381
+#: fortran/symbol.c:2492
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate statement label %d at %L and %L"
msgstr ""
-#: fortran/symbol.c:2392
+#: fortran/symbol.c:2503
#, gcc-internal-format, gfc-internal-format
msgid "Label %d at %C already referenced as branch target"
msgstr ""
-#: fortran/symbol.c:2402
+#: fortran/symbol.c:2513
#, gcc-internal-format, gfc-internal-format
msgid "Label %d at %C already referenced as a format label"
msgstr ""
-#: fortran/symbol.c:2408
+#: fortran/symbol.c:2519
#, 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:2450
+#: fortran/symbol.c:2561
#, gcc-internal-format, gfc-internal-format
msgid "Label %d at %C previously used as a FORMAT label"
msgstr ""
-#: fortran/symbol.c:2459
+#: fortran/symbol.c:2570
#, gcc-internal-format, gfc-internal-format
msgid "Label %d at %C previously used as branch target"
msgstr ""
-#: fortran/symbol.c:2465
+#: fortran/symbol.c:2576
#, gcc-internal-format, gfc-internal-format
msgid "Shared DO termination label %d at %C"
msgstr ""
-#: fortran/symbol.c:2781
+#: fortran/symbol.c:2892
#, gcc-internal-format
msgid "new_symbol(): Symbol name too long"
msgstr ""
-#: fortran/symbol.c:2805
+#: fortran/symbol.c:2916
#, gcc-internal-format
msgid "Name %qs at %C is an ambiguous reference to %qs from module %qs"
msgstr ""
-#: fortran/symbol.c:2808
+#: fortran/symbol.c:2919
#, gcc-internal-format
msgid ""
"Name %qs at %C is an ambiguous reference to %qs from current program unit"
msgstr ""
#. Symbol is from another namespace.
-#: fortran/symbol.c:3029
+#: fortran/symbol.c:3140
#, gcc-internal-format
msgid "Symbol %qs at %C has already been host associated"
msgstr ""
-#: fortran/symbol.c:4022
+#: fortran/symbol.c:4131
#, gcc-internal-format
msgid "verify_bind_c_derived_type(): Given symbol is unexpectedly NULL"
msgstr ""
-#: fortran/symbol.c:4035
+#: fortran/symbol.c:4144
#, gcc-internal-format
msgid ""
"Derived type %qs declared at %L must have the BIND attribute to be C "
"interoperable"
msgstr ""
-#: fortran/symbol.c:4053
+#: fortran/symbol.c:4162
#, gcc-internal-format
msgid ""
"Derived type %qs with BIND(C) attribute at %L is empty, and may be "
"inaccessible by the C companion processor"
msgstr ""
-#: fortran/symbol.c:4074
+#: fortran/symbol.c:4183
#, gcc-internal-format
msgid ""
"Component %qs at %L cannot have the POINTER attribute because it is a member "
"of the BIND(C) derived type %qs at %L"
msgstr ""
-#: fortran/symbol.c:4084
+#: fortran/symbol.c:4193
#, gcc-internal-format
msgid ""
"Procedure pointer component %qs at %L cannot be a member of the BIND(C) "
"derived type %qs at %L"
msgstr ""
-#: fortran/symbol.c:4095
+#: fortran/symbol.c:4204
#, gcc-internal-format
msgid ""
"Component %qs at %L cannot have the ALLOCATABLE attribute because it is a "
"member of the BIND(C) derived type %qs at %L"
msgstr ""
-#: fortran/symbol.c:4134
+#: fortran/symbol.c:4243
#, gcc-internal-format
msgid ""
"Component %qs in derived type %qs at %L may not be C interoperable, even "
"though derived type %qs is BIND(C)"
msgstr ""
-#: fortran/symbol.c:4144
+#: fortran/symbol.c:4253
#, gcc-internal-format
msgid "Component %qs in derived type %qs at %L may not be C interoperable"
msgstr ""
-#: fortran/symbol.c:4158
+#: fortran/symbol.c:4267
#, gcc-internal-format
msgid ""
"Derived type %qs at %L cannot be declared with both PRIVATE and BIND(C) "
"attributes"
msgstr ""
-#: fortran/symbol.c:4166
+#: fortran/symbol.c:4275
#, gcc-internal-format
msgid ""
"Derived type %qs at %L cannot have the SEQUENCE attribute because it is "
"BIND(C)"
msgstr ""
-#: fortran/symbol.c:4646 fortran/symbol.c:4651
+#: fortran/symbol.c:4752 fortran/symbol.c:4757
#, gcc-internal-format
msgid "Symbol %qs is used before it is typed at %L"
msgstr ""
#. Problems occur when we get something like
#. integer :: a(lots) = (/(i, i=1, lots)/)
-#: fortran/trans-array.c:5659
+#: fortran/trans-array.c:5666
#, gcc-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/trans-array.c:7514
+#: fortran/trans-array.c:7531
#, gcc-internal-format
msgid "Creating array temporary at %L for argument %qs"
msgstr ""
-#: fortran/trans-array.c:9593
+#: fortran/trans-array.c:9610
#, gcc-internal-format, gfc-internal-format
msgid "bad expression type during walk (%d)"
msgstr ""
-#: fortran/trans-common.c:403
+#: fortran/trans-common.c:401
#, gcc-internal-format
msgid ""
"Named COMMON block %qs at %L shall be of the same size as elsewhere (%lu vs "
"%lu bytes)"
msgstr ""
-#: fortran/trans-common.c:775
+#: fortran/trans-common.c:773
#, gcc-internal-format
msgid "get_mpz(): Not an integer constant"
msgstr ""
-#: fortran/trans-common.c:803
+#: fortran/trans-common.c:801
#, gcc-internal-format
msgid "element_number(): Bad dimension type"
msgstr ""
-#: fortran/trans-common.c:865
+#: fortran/trans-common.c:863
#, gcc-internal-format, gfc-internal-format
msgid "Bad array reference at %L"
msgstr ""
-#: fortran/trans-common.c:873
+#: fortran/trans-common.c:871
#, gcc-internal-format, gfc-internal-format
msgid "Illegal reference type at %L as EQUIVALENCE object"
msgstr ""
-#: fortran/trans-common.c:913
+#: fortran/trans-common.c:911
#, gcc-internal-format
msgid "Inconsistent equivalence rules involving %qs at %L and %qs at %L"
msgstr ""
#. Aligning this field would misalign a previous field.
-#: fortran/trans-common.c:1046
+#: fortran/trans-common.c:1044
#, gcc-internal-format
msgid ""
"The equivalence set for variable %qs declared at %L violates alignment "
"requirements"
msgstr ""
-#: fortran/trans-common.c:1111
+#: fortran/trans-common.c:1109
#, gcc-internal-format
msgid "Equivalence for %qs does not match ordering of COMMON %qs at %L"
msgstr ""
-#: fortran/trans-common.c:1126
+#: fortran/trans-common.c:1124
#, gcc-internal-format
msgid ""
"The equivalence set for %qs cause an invalid extension to COMMON %qs at %L"
msgstr ""
-#: fortran/trans-common.c:1142
+#: fortran/trans-common.c:1140
#, gcc-internal-format
msgid ""
"Padding of %d bytes required before %qs in COMMON %qs at %L; reorder "
"elements or use -fno-align-commons"
msgstr ""
-#: fortran/trans-common.c:1148
+#: fortran/trans-common.c:1146
#, gcc-internal-format
msgid ""
"Padding of %d bytes required before %qs in COMMON at %L; reorder elements or "
"use -fno-align-commons"
msgstr ""
-#: fortran/trans-common.c:1169
+#: fortran/trans-common.c:1167
#, gcc-internal-format
msgid "COMMON %qs at %L does not exist"
msgstr ""
-#: fortran/trans-common.c:1178
+#: fortran/trans-common.c:1176
#, gcc-internal-format
msgid ""
"COMMON %qs at %L requires %d bytes of padding; reorder elements or use %<-"
"fno-align-commons%>"
msgstr ""
-#: fortran/trans-common.c:1183
+#: fortran/trans-common.c:1181
#, gcc-internal-format
msgid ""
"COMMON at %L requires %d bytes of padding; reorder elements or use %<-fno-"
msgid "non-constant initialization expression at %L"
msgstr ""
-#: fortran/trans-decl.c:1557
+#: fortran/trans-decl.c:1573
#, gcc-internal-format
msgid "intrinsic variable which isn't a procedure"
msgstr ""
-#: fortran/trans-decl.c:4031 fortran/trans-decl.c:6231
+#: fortran/trans-decl.c:4044 fortran/trans-decl.c:6244
#, gcc-internal-format
msgid "Return value of function %qs at %L not set"
msgstr ""
-#: fortran/trans-decl.c:4419
+#: fortran/trans-decl.c:4432
#, gcc-internal-format
msgid "Deferred type parameter not yet supported"
msgstr ""
-#: fortran/trans-decl.c:4648
+#: fortran/trans-decl.c:4661
#, gcc-internal-format
msgid "backend decl for module variable %qs already exists"
msgstr ""
-#: fortran/trans-decl.c:4661
+#: fortran/trans-decl.c:4674
#, gcc-internal-format
msgid "Unused PRIVATE module variable %qs declared at %L"
msgstr ""
-#: fortran/trans-decl.c:5230
+#: fortran/trans-decl.c:5243
#, gcc-internal-format
msgid "Dummy argument %qs at %L was declared INTENT(OUT) but was not set"
msgstr ""
-#: fortran/trans-decl.c:5236
+#: fortran/trans-decl.c:5249
#, gcc-internal-format
msgid ""
"Derived-type dummy argument %qs at %L was declared INTENT(OUT) but was not "
"set and does not have a default initializer"
msgstr ""
-#: fortran/trans-decl.c:5246 fortran/trans-decl.c:5377
+#: fortran/trans-decl.c:5259 fortran/trans-decl.c:5390
#, gcc-internal-format
msgid "Unused dummy argument %qs at %L"
msgstr ""
-#: fortran/trans-decl.c:5261
+#: fortran/trans-decl.c:5274
#, gcc-internal-format
msgid "Unused module variable %qs which has been explicitly imported at %L"
msgstr ""
-#: fortran/trans-decl.c:5270
+#: fortran/trans-decl.c:5283
#, gcc-internal-format
msgid "Unused variable %qs declared at %L"
msgstr ""
-#: fortran/trans-decl.c:5319
+#: fortran/trans-decl.c:5332
#, gcc-internal-format
msgid "Unused parameter %qs declared at %L"
msgstr ""
-#: fortran/trans-decl.c:5323
+#: fortran/trans-decl.c:5336
#, gcc-internal-format
msgid "Unused parameter %qs which has been explicitly imported at %L"
msgstr ""
-#: fortran/trans-decl.c:5349
+#: fortran/trans-decl.c:5362
#, gcc-internal-format
msgid "Return value %qs of function %qs declared at %L not set"
msgstr ""
-#: fortran/trans-decl.c:5958
+#: fortran/trans-decl.c:5971
#, gcc-internal-format, gfc-internal-format
msgid "Sorry, $!ACC DECLARE at %L is not allowed in BLOCK construct"
msgstr ""
"not yet supported"
msgstr ""
-#: fortran/trans-expr.c:3303
+#: fortran/trans-expr.c:3309
#, gcc-internal-format
msgid "Unknown intrinsic op"
msgstr ""
-#: fortran/trans-expr.c:4591
+#: fortran/trans-expr.c:4597
#, gcc-internal-format, gfc-internal-format
msgid "Unknown argument list function at %L"
msgstr ""
msgid "Bad IO basetype (%d)"
msgstr ""
-#: fortran/trans-openmp.c:4344
+#: fortran/trans-openmp.c:4348
#, gcc-internal-format
msgid "gfc_trans_omp_workshare(): Bad statement code"
msgstr ""
msgid "gfc_validate_kind(): Got bad kind"
msgstr ""
-#: fortran/trans-types.c:1463
+#: fortran/trans-types.c:1467
#, gcc-internal-format, gfc-internal-format
msgid "Array element size too big at %C"
msgstr ""
msgid "non-static method %q+D overrides static method"
msgstr ""
-#: java/decl.c:1204
+#: java/decl.c:1197
#, gcc-internal-format
msgid "%q+D used prior to declaration"
msgstr ""
-#: java/decl.c:1627
+#: java/decl.c:1620
#, gcc-internal-format
msgid "In %+D: overlapped variable and exception ranges at %d"
msgstr ""
-#: java/decl.c:1678
+#: java/decl.c:1671
#, gcc-internal-format
msgid "bad type in parameter debug info"
msgstr ""
-#: java/decl.c:1687
+#: java/decl.c:1680
#, gcc-internal-format
msgid "bad PC range for debug info for local %q+D"
msgstr ""
"Project-Id-Version: gcc 6.1.0\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
"POT-Creation-Date: 2016-04-21 15:24+0000\n"
-"PO-Revision-Date: 2016-05-14 00:01+0200\n"
+"PO-Revision-Date: 2016-07-15 19:05+0200\n"
"Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"Language: sv\n"
#: gcc.c:3388
msgid " Display specific types of command line options.\n"
-msgstr " Visa specifika typer av kommandoradsflaggor-\n"
+msgstr " Visa specifika typer av kommandoradsflaggor.\n"
#: gcc.c:3390
msgid " (Use '-v --help' to display command line options of sub-processes).\n"
#: gcov-tool.c:167 gcov-tool.c:261 gcov-tool.c:417
#, c-format
msgid " -v, --verbose Verbose mode\n"
-msgstr " -v, --version Utförligt läge\n"
+msgstr " -v, --verbose Utförligt läge\n"
#: gcov-tool.c:168 gcov-tool.c:262
#, c-format
#: gcov-tool.c:421
#, c-format
msgid " -o, --object Print object level info\n"
-msgstr " -o, --objekt Skriv objektnivåinfo\n"
+msgstr " -o, --object Skriv objektnivåinfo\n"
#: gcov-tool.c:422
#, c-format
#: params.def:675
#, no-c-format
msgid "The lower bound for a buffer to be considered for stack smashing protection."
-msgstr "Den undre gränsen för att en buffer skall övervägas för skydd mot stacksprängning."
+msgstr "Den undre gränsen för att en buffert skall övervägas för skydd mot stacksprängning."
#: params.def:680
#, no-c-format
#: params.def:773
#, no-c-format
msgid "Maximum length of partial antic set when performing tree pre optimization."
-msgstr "Maximal längd på partial förväntansmängd när föroptimeringar på träd görs."
+msgstr "Maximal längd på partiell förväntansmängd när föroptimeringar på träd görs."
#: params.def:783
#, no-c-format
#: config/iq2000/iq2000.c:3202
#, c-format
msgid "invalid use of %%d, %%x, or %%X"
-msgstr "ogiltig användning av %%d, %%x eller %%x"
+msgstr "ogiltig användning av %%d, %%x eller %%X"
#: config/lm32/lm32.c:507
#, c-format
#: config/sh/sh.c:1340
#, c-format
msgid "invalid operand to %%S"
-msgstr "ogiltig operand till %%R"
+msgstr "ogiltig operand till %%S"
#: config/sh/sh.c:10040
msgid "created and used with different architectures / ABIs"
#: cp/error.c:3291
#, c-format
msgid "In copy constructor %qs"
-msgstr "I kopieringskonstuerare %qs"
+msgstr "I kopieringskonstruerare %qs"
#: cp/error.c:3293
#, c-format
#: fortran/lang.opt:262
msgid "Warn on intrinsics not part of the selected standard."
-msgstr "Inbyggd för inbyggda om inte är med i den valda standarden."
+msgstr "Inbyggd för inbyggda som inte är med i den valda standarden."
#: fortran/lang.opt:274
msgid "Warn about USE statements that have no ONLY qualifier."
#: fortran/lang.opt:551
msgid "-finline-matmul-limit=<n>\tSpecify the size of the largest matrix for which matmul will be inlined."
-msgstr "-fblas-matmul-limit=<n>\tSpecificera storleken på den största matris för vilken matmul kommer inline:as."
+msgstr "-finline-matmul-limit=<n>\tSpecificera storleken på den största matris för vilken matmul kommer inline:as."
#: fortran/lang.opt:555
msgid "-fmax-array-constructor=<n>\tMaximum number of objects in an array constructor."
#: c-family/c.opt:339
msgid "Warn about memory access errors found by Pointer Bounds Checker."
-msgstr "Farna för minnesåtkomstfel som hittas av pekargränskontrollen."
+msgstr "Varna för minnesåtkomstfel som hittas av pekargränskontrollen."
#: c-family/c.opt:343
msgid "Warn about variables that might be changed by \"longjmp\" or \"vfork\"."
#: c-family/c.opt:813
msgid "Warn if a selector has multiple methods."
-msgstr "Varna för en väljare har multipla metoder."
+msgstr "Varna om en väljare har multipla metoder."
#: c-family/c.opt:817
msgid "Warn about possible violations of sequence point rules."
#: c-family/c.opt:969
msgid "Warn about questionable usage of the macros used to retrieve variable arguments."
-msgstr "Varna för tveksam användning av de makron som används för att hämta variabla argument.."
+msgstr "Varna för tveksam användning av de makron som används för att hämta variabla argument."
#: c-family/c.opt:973
msgid "Warn if a variable length array is used."
#: c-family/c.opt:985
msgid "Warn if a virtual base has a non-trivial move assignment operator."
-msgstr "Varna om en virtuella bas har en icketrivial flyttningstilldelningsoperator."
+msgstr "Varna om en virtuell bas har en icketrivial flyttningstilldelningsoperator."
#: c-family/c.opt:989
msgid "In C++, nonzero means warn about deprecated conversion from string literals to 'char *'. In C, similar warning, except that the conversion is of course not deprecated by the ISO C standard."
#: c-family/c.opt:1005
msgid "A synonym for -std=c89 (for C) or -std=c++98 (for C++)."
-msgstr "En synonym för -std=c89 (för C) or -std=c++98 (för C++)."
+msgstr "En synonym för -std=c89 (för C) eller -std=c++98 (för C++)."
#: c-family/c.opt:1013
msgid "The version of the C++ ABI used for -Wabi warnings and link compatibility aliases."
#: c-family/c.opt:1143
msgid "Enable Cilk Plus."
-msgstr "Aktiver Cilk Plus."
+msgstr "Aktivera Cilk Plus."
#: c-family/c.opt:1147
msgid "Enable support for C++ concepts."
#: c-family/c.opt:1733
msgid "Conform to the ISO 2011 C++ standard with GNU extensions."
-msgstr "Följ standarden ISO 2011 C med GNU-utökningar."
+msgstr "Följ standarden ISO 2011 C++ med GNU-utökningar."
#: c-family/c.opt:1737
msgid "Deprecated in favor of -std=gnu++11."
#: config/mmix/mmix.opt:45
msgid "Generate divide results with reminder having the same sign as the divisor (not the dividend)."
-msgstr "Generera divisionsresultat så att resten har samma tecken som täljaren (inte nämnaren)."
+msgstr "Generera divisionsresultat så att resten har samma tecken som nämnaren (inte täljaren)."
#: config/mmix/mmix.opt:49
msgid "Prepend global symbols with \":\" (for use with PREFIX)."
#: config/msp430/msp430.opt:15
msgid "Warn if an MCU name is unrecognised or conflicts with other options (default: on)."
-msgstr "Varna om ett MCU-namn inte känns igen eller står i konflikt med andra flaggor (standar: på)."
+msgstr "Varna om ett MCU-namn inte känns igen eller står i konflikt med andra flaggor (standard: på)."
#: config/msp430/msp430.opt:19
msgid "Specify the ISA to build for: msp430, msp430x, msp430xv2."
#: config/aarch64/aarch64.opt:154
msgid "When calculating the reciprocal square root approximation,"
-msgstr "Vid beräkning av den reciproka kvardratrotsapproximeringen,"
+msgstr "Vid beräkning av den reciproka kvadratrotsapproximeringen,"
#: config/linux.opt:24
msgid "Use Bionic C library."
#: config/h8300/h8300.opt:50
msgid "Enable linker relaxing."
-msgstr "Aktivera länkaravslappning."
+msgstr "Aktivera länkarlättnad."
#: config/h8300/h8300.opt:54
msgid "Generate H8/300H code."
#: config/i386/i386.opt:206 config/sh/sh.opt:209
msgid "Reserve space for outgoing arguments in the function prologue."
-msgstr "Reservera utrymmer för utgående argument i funktionsprologen."
+msgstr "Reservera utrymme för utgående argument i funktionsprologen."
#: config/i386/i386.opt:210
msgid "Align some doubles on dword boundary."
#: config/i386/i386.opt:724
msgid "Support BMI built-in functions and code generation."
-msgstr "Stöd inbyggda BMI-funktioner och -kodgenerering ."
+msgstr "Stöd inbyggda BMI-funktioner och -kodgenerering."
#: config/i386/i386.opt:728
msgid "Support BMI2 built-in functions and code generation."
-msgstr "Stöd inbyggda BMI2-funktioner och -kodgenerering ."
+msgstr "Stöd inbyggda BMI2-funktioner och -kodgenerering."
#: config/i386/i386.opt:732
msgid "Support LZCNT built-in function and code generation."
-msgstr "Stöd inbyggda LZCNT-funktioner och -kodgenerering ."
+msgstr "Stöd inbyggda LZCNT-funktioner och -kodgenerering."
#: config/i386/i386.opt:736
msgid "Support Hardware Lock Elision prefixes."
#: config/i386/i386.opt:784
msgid "Support TBM built-in functions and code generation."
-msgstr "Stöd inbyggda TBM-funktioner och -kodgenerering ."
+msgstr "Stöd inbyggda TBM-funktioner och -kodgenerering."
#: config/i386/i386.opt:788
msgid "Support code generation of cmpxchg16b instruction."
#: config/i386/i386.opt:828
msgid "Support F16C built-in functions and code generation."
-msgstr "Stöd inbyggda F16C-funktioner och -kodgenerering ."
+msgstr "Stöd inbyggda F16C-funktioner och -kodgenerering."
#: config/i386/i386.opt:832
msgid "Support PREFETCHWT1 built-in functions and code generation."
-msgstr "Stöd inbyggda PREFETCHWT1-funktioner och -kodgenerering ."
+msgstr "Stöd inbyggda PREFETCHWT1-funktioner och -kodgenerering."
#: config/i386/i386.opt:836
msgid "Emit profiling counter call at function entry before prologue."
#: config/i386/i386.opt:853
msgid "Expand 32bit/64bit integer divide into 8bit unsigned integer divide with run-time check."
-msgstr "Expandera 32bits/64bits heltalsdivision till 8bitars teckenlös heltalsdivision med kontroll vid körning.."
+msgstr "Expandera 32bits/64bits heltalsdivision till 8bitars teckenlös heltalsdivision med kontroll vid körning."
#: config/i386/i386.opt:857
msgid "Split 32-byte AVX unaligned load."
#: config/i386/i386.opt:865
msgid "Support RTM built-in functions and code generation."
-msgstr "Stöd inbyggda RTM-funktioner och -kodgenerering ."
+msgstr "Stöd inbyggda RTM-funktioner och -kodgenerering."
#: config/i386/i386.opt:869
msgid "Support MPX code generation."
-msgstr "Stöd MPX-kodgenerering ."
+msgstr "Stöd MPX-kodgenerering."
#: config/i386/i386.opt:873
msgid "Support MWAITX and MONITORX built-in functions and code generation."
#: config/i386/i386.opt:899
msgid "Attempt to avoid generating instruction sequences containing ret bytes."
-msgstr "Försök udvika att generera instruktionssekvenser som innehåller ret-byte:ar."
+msgstr "Försök undvika att generera instruktionssekvenser som innehåller ret-byte:ar."
#: config/i386/stringop.opt:8
msgid "the Free Software Foundation; either version 3, or (at your option)"
#: config/v850/v850.opt:86
msgid "Put jump tables for switch statements into the .data section rather than the .code section."
-msgstr "Lägg hopptabeller för switch-satser i .data-sektionen istället för .code-sektionen.."
+msgstr "Lägg hopptabeller för switch-satser i .data-sektionen istället för .code-sektionen."
#: config/v850/v850.opt:93
msgid "Compile for the v850 processor."
#: config/v850/v850.opt:105
msgid "Compile for the v850es variant of the v850e1."
-msgstr "Kompilera för varianten v850es av v850el."
+msgstr "Kompilera för varianten v850es av v850e1."
#: config/v850/v850.opt:109
msgid "Compile for the v850e2 processor."
#: config/v850/v850.opt:135
msgid "Enable relaxing in the assembler."
-msgstr "Aktivera avslappning i assemblern."
+msgstr "Aktivera lättnad i assemblern."
#: config/v850/v850.opt:139
msgid "Prohibit PC relative jumps."
#: config/v850/v850.opt:151
msgid "Enable support for the RH850 ABI. This is the default."
-msgstr "Aktivera stöd för ABI:et RH850. Detta är standard.."
+msgstr "Aktivera stöd för ABI:et RH850. Detta är standard."
#: config/v850/v850.opt:155
msgid "Enable support for the old GCC ABI."
#: config/rs6000/rs6000.opt:185
msgid "Under -ffast-math, generate a FRIZ instruction for (double)(long long) conversions."
-msgstr "Under -ffast-math, generera en FRIZ-instruktion för (double)(long long)-konverteringar.."
+msgstr "Under -ffast-math, generera en FRIZ-instruktion för (double)(long long)-konverteringar."
#: config/rs6000/rs6000.opt:193
msgid "Use vector/scalar (VSX) instructions."
#: config/rs6000/rs6000.opt:594
msgid "Allow float variables in upper registers with -mcpu=power8 or -mpower8-vector."
-msgstr "Tillåt flyttalsvariabler i övre register med -mcpu=power8 eller mpower8-vector."
+msgstr "Tillåt flyttalsvariabler i övre register med -mcpu=power8 eller -mpower8-vector."
#: config/rs6000/rs6000.opt:598
msgid "Allow float/double variables in upper registers if cpu allows it."
#: config/rx/rx.opt:93
msgid "Generate assembler output that is compatible with the Renesas AS100 assembler. This may restrict some of the compiler's capabilities. The default is to generate GAS compatible syntax."
-msgstr "Genereara assemblerutdatat som är kompatibel med Renesas AS100-assembler. Detta kan begränsa några av kompilatorns egenskaper. Standard är att generera GAS-kompatibel syntax."
+msgstr "Generera assemblerutdatat som är kompatibel med Renesas AS100-assembler. Detta kan begränsa några av kompilatorns egenskaper. Standard är att generera GAS-kompatibel syntax."
#: config/rx/rx.opt:99
msgid "Enable linker relaxation."
-msgstr "Aktivera länkaravslappningar."
+msgstr "Aktivera länkarlättnader."
#: config/rx/rx.opt:105
msgid "Maximum size in bytes of constant values allowed as operands."
#: config/mn10300/mn10300.opt:55
msgid "Enable linker relaxations."
-msgstr "Aktivera länkaravslappningar."
+msgstr "Aktivera länkarlättnader."
#: config/mn10300/mn10300.opt:59
msgid "Return pointers in both a0 and d0."
#: config/nds32/nds32.opt:104
msgid "Guide linker to relax instructions."
-msgstr "Hjälp länkaren att relaxera instruktioner."
+msgstr "Hjälp länkaren att lätta instruktioner."
#: config/iq2000/iq2000.opt:31
msgid "Specify CPU for code generation purposes."
#: config/sh/sh.opt:339
msgid "Specify the model for atomic operations."
-msgstr "Ange modellen för atomiska operationer."
+msgstr "Ange modellen för atomära operationer."
#: config/sh/sh.opt:343
msgid "Use tas.b instruction for __atomic_test_and_set."
#: config/mep/mep.opt:23
msgid "Enable absolute difference instructions."
-msgstr "Använd instruktioner för absoluta skillnad."
+msgstr "Använd instruktioner för absolut skillnad."
#: config/mep/mep.opt:27
msgid "Enable all optional instructions."
#: config/mep/mep.opt:59
msgid "Enable MeP Coprocessor with 32-bit registers."
-msgstr "Använd MeP-koprocessor med 32-bitars register."
+msgstr "Använd MeP-hjälpprocessor med 32-bitars register."
#: config/mep/mep.opt:63
msgid "Enable MeP Coprocessor with 64-bit registers."
-msgstr "Använd MeP-koprocessor med 64-bitars register."
+msgstr "Använd MeP-hjälpprocessor med 64-bitars register."
#: config/mep/mep.opt:67
msgid "Enable IVC2 scheduling."
#: config/mips/mips.opt:87
msgid "-mcode-readable=SETTING\tSpecify when instructions are allowed to access code."
-msgstr "-code-readable=INSTÄLLNING\tAnge när instruktioner tillåts komma åt kod."
+msgstr "-mcode-readable=INSTÄLLNING\tAnge när instruktioner tillåts komma åt kod."
#: config/mips/mips.opt:91
msgid "Valid arguments to -mcode-readable=:"
#: config/mips/mips.opt:210
msgid "-mflush-func=FUNC\tUse FUNC to flush the cache before calling stack trampolines."
-msgstr "-mflush-func=FUNK\tAnvänd FUNK för att tömma cachen föra anrop av stacktrampoliner."
+msgstr "-mflush-func=FUNK\tAnvänd FUNK för att tömma cachen före anrop av stacktrampoliner."
#: config/mips/mips.opt:214
msgid "-mabs=MODE\tSelect the IEEE 754 ABS/NEG instruction execution mode."
#: config/arc/arc.opt:30
msgid "Compile code for little endian mode. This is the default."
-msgstr "Kompilera kod för omvänd byteordning. Detta är standard.."
+msgstr "Kompilera kod för omvänd byteordning. Detta är standard."
#: config/arc/arc.opt:34
msgid "Disable ARCompact specific pass to generate conditional execution instructions."
#: java/lang.opt:150
msgid "--CLASSPATH\tDeprecated; use --classpath instead."
-msgstr "--CLASSPATH\tAvrådes, använd -classpath istället."
+msgstr "--CLASSPATH\tAvrådes, använd --classpath istället."
#: java/lang.opt:157
msgid "Permit the use of the assert keyword."
#: java/lang.opt:269
msgid "Generate code for built-in atomic operations."
-msgstr "Generera kod för inbyggda atomiska operationer."
+msgstr "Generera kod för inbyggda atomära operationer."
#: java/lang.opt:273
msgid "Generated should be loaded by bootstrap loader."
#: common.opt:578
msgid "Treat all warnings as errors."
-msgstr "Behandla alla varningar som fel.."
+msgstr "Behandla alla varningar som fel."
#: common.opt:582
msgid "Treat specified warning as error."
#: common.opt:610
msgid "Warn when an atomic memory model parameter is known to be outside the valid range."
-msgstr "Varna när en atomisk minnesmodellparameter med säkerhet är utanför det giltiga intervallet."
+msgstr "Varna när en atomär minnesmodellparameter med säkerhet är utanför det giltiga intervallet."
#: common.opt:617
msgid "-Wlarger-than=<number>\tWarn if an object is larger than <number> bytes."
#: common.opt:1229
msgid "Suppress output of previous and next insn numbers in debugging dumps."
-msgstr "Undertryck utskrift föregående och nästa instruktionsnummer i felsökningsutskrifter."
+msgstr "Undertryck utskrift av föregående och nästa instruktionsnummer i felsökningsutskrifter."
#: common.opt:1233
msgid "Enable CFI tables via GAS assembler directives."
#: common.opt:1269
msgid "-fexcess-precision=[fast|standard]\tSpecify handling of excess floating-point precision."
-msgstr "-fexecc-precision=[fast|standard]\tAnge hantering av överskjutande precision på flyttal."
+msgstr "-fexcess-precision=[fast|standard]\tAnge hantering av överskjutande precision på flyttal."
#: common.opt:1272
#, c-format
#: common.opt:1397 common.opt:1401 common.opt:1405 common.opt:1409
#: common.opt:2395
msgid "Enable loop nest transforms. Same as -floop-nest-optimize."
-msgstr "Aktivera transformationer av slingutbyten. Samma som -floop-nest-interchange."
+msgstr "Aktivera transformationer av slingutbyten. Samma som -floop-nest-optimize."
#: common.opt:1413
msgid "Enable support for GNU transactional memory."
-msgstr "Aktivera stöd för GNU:s transationsminne."
+msgstr "Aktivera stöd för GNU:s transaktionsminne."
#: common.opt:1417
msgid "Use STB_GNU_UNIQUE if supported by the assembler."
#: common.opt:1704
msgid "Report various link-time optimization statistics for WPA only."
-msgstr "Rapportera diverse optimeringsstatistik från länkningen endast för WPA.."
+msgstr "Rapportera diverse optimeringsstatistik från länkningen endast för WPA."
#: common.opt:1708
msgid "Set errno after built-in math functions."
#: common.opt:2003
msgid "Disable optimizations that assume default FP rounding behavior."
-msgstr "Avaktivera optimeringar som antar standardmässig avrundningsbeteende för FP."
+msgstr "Avaktivera optimeringar som antar standardmässigt avrundningsbeteende för FP."
#: common.opt:2007
msgid "Enable scheduling across basic blocks."
#: common.opt:2149
msgid "Disable floating point optimizations that ignore the IEEE signedness of zero."
-msgstr "Avaktivera flyttalsoptimeringar som ignorera IEEE:s tecken på noll."
+msgstr "Avaktivera flyttalsoptimeringar som ignorerar IEEE:s tecken på noll."
#: common.opt:2153
msgid "Convert floating point constants to single precision constants."
#: builtins.c:5198
#, gcc-internal-format
msgid "invalid memory model for %<__atomic_load%>"
-msgstr "ogiltigt minnesmodell för %<_atomic_load%>"
+msgstr "ogiltig minnesmodell för %<__atomic_load%>"
#: builtins.c:5230 builtins.c:5333
#, gcc-internal-format
#: gimplify.c:6722
#, gcc-internal-format
msgid "%<linear%> clause for variable other than loop iterator specified on construct combined with %<distribute%>"
-msgstr "%<linear%>-klausul för en annan variabel än en slingiterator angiven vid konstruktion combinerad med %<distribute%>"
+msgstr "%<linear%>-klausul för en annan variabel än en slingiterator angiven vid konstruktion kombinerad med %<distribute%>"
#: gimplify.c:6917
#, gcc-internal-format
#: gimplify.c:9948 omp-low.c:3622
#, gcc-internal-format
msgid "%<ordered%> construct with %<depend%> clause must be closely nested inside a loop with %<ordered%> clause with a parameter"
-msgstr "%<ordered%>-konstruktion med %<depend%>-klausul måste måste vara nära innesluten inuti en slinga med %<ordered%>-klausul med en parameter"
+msgstr "%<ordered%>-konstruktion med %<depend%>-klausul måste vara nära innesluten inuti en slinga med %<ordered%>-klausul med en parameter"
#: gimplify.c:9966
#, gcc-internal-format
#: ipa-devirt.c:1108
#, gcc-internal-format
msgid "type %qT defined in anonymous namespace can not match type %qT across the translation unit boundary"
-msgstr "typen %qT definierad i en namnrymd kan inte matcha typen %qT över gränsen för översättningsenheten"
+msgstr "typen %qT definierad i en anonym namnrymd kan inte matcha typen %qT över gränsen för översättningsenheten"
#: ipa-devirt.c:1113
#, gcc-internal-format
#: ipa-devirt.c:1302
#, gcc-internal-format
msgid "an enum with different value name is defined in another translation unit"
-msgstr "en uppräkningstyp andra värdenamn definierad i en annan översättningsenhet"
+msgstr "en uppräkningstyp med andra värdenamn definierad i en annan översättningsenhet"
#: ipa-devirt.c:1311
#, gcc-internal-format
#: ipa-devirt.c:1319
#, gcc-internal-format
msgid "an enum with mismatching number of values is defined in another translation unit"
-msgstr "en uppräkningstyp ett inte matchande antal värden är definierad i en annan översättningsenhet"
+msgstr "en uppräkningstyp med ett inte matchande antal värden är definierad i en annan översättningsenhet"
#: ipa-devirt.c:1337
#, gcc-internal-format
#: ipa-devirt.c:1533 ipa-devirt.c:1589
#, gcc-internal-format
msgid "a type with different virtual table pointers is defined in another translation unit"
-msgstr "en typ en annan virtuell tabellpekare är definierad i en annan översättningsenhet"
+msgstr "en typ med en annan virtuell tabellpekare är definierad i en annan översättningsenhet"
#: ipa-devirt.c:1540 ipa-devirt.c:1594
#, gcc-internal-format
#: ipa-devirt.c:1654
#, gcc-internal-format
msgid "a type with different number of methods is defined in another translation unit"
-msgstr "en typ med ett annat antal metoder defineirad i en annan översättningsenhet"
+msgstr "en typ med ett annat antal metoder definierad i en annan översättningsenhet"
#: ipa-devirt.c:1676
#, gcc-internal-format
#: omp-low.c:3659
#, gcc-internal-format
msgid "%<ordered%> region may not be closely nested inside of %<critical%>, %<ordered%>, explicit %<task%> or %<taskloop%> region"
-msgstr "en %<ordered%> region får inte vara nära innesluten inuti en %<critical%>,, %<ordered%>, explicit %<task%> eller %<taskloop%> region"
+msgstr "en %<ordered%> region får inte vara nära innesluten inuti en %<critical%>, %<ordered%>, explicit %<task%> eller %<taskloop%> region"
#: omp-low.c:3670 omp-low.c:3683
#, gcc-internal-format
#: trans-mem.c:783
#, gcc-internal-format
msgid "relaxed transaction in atomic transaction"
-msgstr "relaxerad transaktion i atomär transaktion"
+msgstr "lättad transaktion i atomär transaktion"
#: trans-mem.c:786
#, gcc-internal-format
msgid "relaxed transaction in %<transaction_safe%> function"
-msgstr "relaxerad transaktion i %<transaction_safe%>-funktion"
+msgstr "lättad transaktion i %<transaction_safe%>-funktion"
#: trans-mem.c:793
#, gcc-internal-format
#: tree-cfg.c:3194
#, gcc-internal-format
msgid "type mismatch in real/imagpart reference"
-msgstr "typfel i referens till reel-/imaginärdel"
+msgstr "typfel i referens till reell-/imaginärdel"
#: tree-cfg.c:3204
#, gcc-internal-format
#: c-family/c-format.c:330
#, gcc-internal-format
msgid "unrecognized format specifier"
-msgstr "oigenkänd formatangivelse"
+msgstr "okänd formatangivelse"
#: c-family/c-format.c:345
#, gcc-internal-format
#: c-family/c-lex.c:523
#, gcc-internal-format
msgid "stray %<\\%o%> in program"
-msgstr "överblivet %<\\\\%o%> i program"
+msgstr "överblivet %<\\%o%> i program"
#: c-family/c-lex.c:731
#, gcc-internal-format
#: c-family/c-pragma.c:1164
#, gcc-internal-format
msgid "invalid location for %<pragma %s%>, ignored"
-msgstr "ogiltig plats för %<#pragma %s%>, ignoreras"
+msgstr "ogiltig plats för %<pragma %s%>, ignoreras"
#: c-family/c-pragma.c:1171 c-family/c-pragma.c:1185
#, gcc-internal-format
#: config/alpha/alpha.c:575
#, gcc-internal-format
msgid "bad value %qs for -mmemory-latency"
-msgstr "felaktigt värde %qs till flaggan -memory-latency"
+msgstr "felaktigt värde %qs till flaggan -mmemory-latency"
#: config/alpha/alpha.c:6652 config/alpha/alpha.c:6655 config/arc/arc.c:5480
#: config/arc/arc.c:5759 config/s390/s390.c:852 config/tilegx/tilegx.c:3540
#: config/arc/arc.c:735
#, gcc-internal-format
msgid "This multiplier configuration is not available for HS cores"
-msgstr "Denna multiplicerarconfiguration är inte tillgänglig för HS-kärnor"
+msgstr "Denna multiplicerarkonfiguration är inte tillgänglig för HS-kärnor"
#: config/arc/arc.c:741
#, gcc-internal-format, gfc-internal-format
#: config/arm/arm-builtins.c:2396 config/arm/arm-builtins.c:2500
#, gcc-internal-format
msgid "selector must be an immediate"
-msgstr "väljare måste vara en omedelbar"
+msgstr "en väljare måste vara en omedelbar"
#: config/arm/arm-builtins.c:2404 config/arm/arm-builtins.c:2449
#: config/arm/arm-builtins.c:2507 config/arm/arm-builtins.c:2516
#: config/bfin/bfin.c:2393
#, gcc-internal-format
msgid "-mcorea should be used with -mmulticore"
-msgstr "-fcorea måste användas tillsammans med -mmulticore"
+msgstr "-mcorea måste användas tillsammans med -mmulticore"
#: config/bfin/bfin.c:2396
#, gcc-internal-format
msgid "-mcoreb should be used with -mmulticore"
-msgstr "-fcoreb måste användas tillsammans med -mmulticore"
+msgstr "-mcoreb måste användas tillsammans med -mmulticore"
#: config/bfin/bfin.c:2399
#, gcc-internal-format
#: config/ft32/ft32.c:175
#, gcc-internal-format
msgid "'h' applied to non-register operand"
-msgstr "”h” använt på operand som inte ett register"
+msgstr "”h” använt på operand som inte är ett register"
#: config/ft32/ft32.c:200
#, gcc-internal-format, gfc-internal-format
#: config/i386/i386.c:5219
#, gcc-internal-format
msgid "-mpreferred-stack-boundary is not supported for this target"
-msgstr "-mprefetch-stack-boundary stödjs inte för denna målarkitektur"
+msgstr "-mpreferred-stack-boundary stödjs inte för denna målarkitektur"
#: config/i386/i386.c:5222
#, gcc-internal-format, gfc-internal-format
#: config/i386/i386.c:40107 config/rs6000/rs6000.c:13967
#, gcc-internal-format
msgid "selector must be an integer constant in the range 0..%wi"
-msgstr "selektor måste vara en heltalskonstant i intervallet 0..%wi"
+msgstr "väljaren måste vara en heltalskonstant i intervallet 0..%wi"
#: config/i386/i386.c:40301
#, gcc-internal-format
#: config/mep/mep.c:5974
#, gcc-internal-format
msgid "%qs is not available in non-VLIW functions"
-msgstr "%qs är är inte tillgänglig i en icke-VLIW-funktion"
+msgstr "%qs är inte tillgänglig i en icke-VLIW-funktion"
#: config/mep/mep.c:6136 config/mep/mep.c:6253
#, gcc-internal-format
#: config/microblaze/microblaze.c:1765
#, gcc-internal-format
msgid "-mxl-reorder can be used only with -mcpu=v8.30.a or greater"
-msgstr "-mxl-multiply-high kan bara användas med -mcpu=v8.30.a eller större"
+msgstr "-mxl-reorder kan bara användas med -mcpu=v8.30.a eller större"
#: config/microblaze/microblaze.c:1771
#, gcc-internal-format
#: config/msp430/msp430.c:788
#, gcc-internal-format, gfc-internal-format
msgid "MCU '%s' supports %s hardware multiply, but -mhwmult is set to 16-bit"
-msgstr "MCU ”%s” stödjer %s-hårvarumultiplikation, men -mhwmult är satt till 16-bitars"
+msgstr "MCU ”%s” stödjer %s-hårdvarumultiplikation, men -mhwmult är satt till 16-bitars"
#: config/msp430/msp430.c:791
#, gcc-internal-format, gfc-internal-format
"Unrecognised MCU name '%s', assuming that it just supports the MSP430 ISA.\n"
"Use the -mcpu option to set the ISA explicitly."
msgstr ""
-"Okänt MCU-namn ”%s”, amtar att den bara stödjer ISA:n MSP430.\n"
+"Okänt MCU-namn ”%s”, antar att den bara stödjer ISA:n MSP430.\n"
"Använd flaggan -mcpu för att sätta ISA:n explicit."
#: config/msp430/msp430.c:831
#: config/msp430/msp430.c:843
#, gcc-internal-format
msgid "-mcode-region=upper requires 430X-compatible cpu"
-msgstr "-mcode-region=upper behöver en 430X-kompatibel mcu"
+msgstr "-mcode-region=upper behöver en 430X-kompatibel cpu"
#: config/msp430/msp430.c:845
#, gcc-internal-format
msgid "-mdata-region=upper requires 430X-compatible cpu"
-msgstr "-mdata-region=upper behöver en 430X-kompatibel mcu"
+msgstr "-mdata-region=upper behöver en 430X-kompatibel cpu"
#: config/msp430/msp430.c:1848
#, gcc-internal-format
#: config/rs6000/rs6000.c:13545
#, gcc-internal-format, gfc-internal-format
msgid "hwcap %s is an invalid argument to builtin %s"
-msgstr "hwcap %s är ett ogiltigt argument tillden inbyggda %s"
+msgstr "hwcap %s är ett ogiltigt argument till den inbyggda %s"
#: config/rs6000/rs6000.c:13618
#, gcc-internal-format
#: config/rs6000/sysv4.h:164
#, gcc-internal-format, gfc-internal-format
msgid "-msdata=%s and -mcall-%s are incompatible"
-msgstr "-mmsdata=%s och -mcall-%s är inkompatibla"
+msgstr "-msdata=%s och -mcall-%s är inkompatibla"
#: config/rs6000/sysv4.h:173
#, gcc-internal-format
#: config/s390/s390-c.c:671
#, gcc-internal-format
msgid "valid values for builtin %qF argument %d are 64, 128, 256, 512, 1024, 2048, and 4096"
-msgstr "giltiga värden för till inbyggd %qF argument %d är 64, 128, 256, 512, 1024, 2048 och 4096"
+msgstr "giltiga värden till inbyggd %qF argument %d är 64, 128, 256, 512, 1024, 2048 och 4096"
#: config/s390/s390-c.c:841
#, gcc-internal-format
#: config/s390/s390-c.c:907
#, gcc-internal-format
msgid "invalid parameter combination for intrinsic %qs"
-msgstr "ogiltigt parameterkombination för den inbyggda %qs"
+msgstr "ogiltig parameterkombination för den inbyggda %qs"
#: config/s390/s390-c.c:913
#, gcc-internal-format
#: config/s390/s390-c.c:953
#, gcc-internal-format
msgid "constant argument %d for builtin %qF is out of range for target type"
-msgstr "det konstanta argumentet %d till den inbyggda %qF är utanför intervallet måltypen"
+msgstr "det konstanta argumentet %d till den inbyggda %qF är utanför intervallet för måltypen"
#: config/s390/s390.c:754
#, gcc-internal-format
#: config/s390/s390.c:848
#, gcc-internal-format
msgid "Unresolved overloaded builtin"
-msgstr "Ej upplöst inbyggd"
+msgstr "Ej upplöst överlagrad inbyggd"
#: config/s390/s390.c:855 config/tilegx/tilegx.c:3543
#: config/tilepro/tilepro.c:3110
#: c/c-parser.c:7929
#, gcc-internal-format
msgid "%<__builtin_complex%> operand not of real binary floating-point type"
-msgstr "%<__builtin_complex%>-operand är inte av en reel binär flyttalstyp"
+msgstr "%<__builtin_complex%>-operand är inte av en reell binär flyttalstyp"
#: c/c-parser.c:7938
#, gcc-internal-format
#: c/c-parser.c:10182
#, gcc-internal-format
msgid "%<#pragma grainsize%> ignored because -fcilkplus is not enabled"
-msgstr "%<pragma grainsize%> ignoreras för att -fcilkplus inte är aktiverat"
+msgstr "%<#pragma grainsize%> ignoreras för att -fcilkplus inte är aktiverat"
#: c/c-parser.c:10190
#, gcc-internal-format
#: c/c-parser.c:13592 cp/parser.c:35195
#, gcc-internal-format
msgid "array section in %<#pragma acc declare%>"
-msgstr "vektordeklaration i %<pragma omp declare reduction%>"
+msgstr "vektorsektionen i %<pragma acc declare%>"
#: c/c-parser.c:13616 cp/parser.c:35219
#, gcc-internal-format
#: c/c-typeck.c:4460
#, gcc-internal-format
msgid "address of array with reverse scalar storage order requested"
-msgstr "adress till vektor med omvänd skalär lagringsordnin begärd"
+msgstr "adress till vektor med omvänd skalär lagringsordning begärd"
#: c/c-typeck.c:4632
#, gcc-internal-format
#: c/c-typeck.c:13159 cp/semantics.c:6817
#, gcc-internal-format
msgid "%qE is neither a variable nor a function name in clause %qs"
-msgstr "%qE är varken en variabel eller ett funktionsnamn klausulen %qs"
+msgstr "%qE är varken en variabel eller ett funktionsnamn i klausulen %qs"
#: c/c-typeck.c:13187 cp/semantics.c:6846
#, gcc-internal-format
#: cp/cvt.c:1091
#, gcc-internal-format
msgid "implicit dereference will not access object of type %qT in third operand of conditional expression"
-msgstr "implicita avreferens kommer inte att använda objekt av typ %qT i tredje operanden till villkorligt uttryck"
+msgstr "implicit avreferens kommer inte att använda objekt av typ %qT i tredje operanden till villkorligt uttryck"
#: cp/cvt.c:1096
#, gcc-internal-format
msgid "implicit dereference will not access object of type %qT in right operand of comma operator"
-msgstr "implicita avreferens kommer inte att använda objekt av typ %qT i högeroperanden till kommaoperatorn"
+msgstr "implicit avreferens kommer inte att använda objekt av typ %qT i högeroperanden till kommaoperatorn"
#: cp/cvt.c:1101
#, gcc-internal-format
msgid "implicit dereference will not access object of type %qT in left operand of comma operator"
-msgstr "implicita avreferens kommer inte att använda objekt av typ %qT i vänstra operanden av kommaoperatorn"
+msgstr "implicit avreferens kommer inte att använda objekt av typ %qT i vänstra operanden av kommaoperatorn"
#: cp/cvt.c:1106
#, gcc-internal-format
#: cp/cvt.c:1110
#, gcc-internal-format
msgid "implicit dereference will not access object of type %qT in for increment expression"
-msgstr "implicit avrefrens kommer inte att använda objekt av typ %qT i for-ökningsuttryck"
+msgstr "implicit avreferens kommer inte att använda objekt av typ %qT i for-ökningsuttryck"
#: cp/cvt.c:1124
#, gcc-internal-format
#: cp/decl.c:7815
#, gcc-internal-format
msgid "concept %q#D declared with a deduced return type"
-msgstr "conceptet %q#D deklarerad med en härledd returtyp"
+msgstr "konceptet %q#D deklarerat med en härledd returtyp"
#: cp/decl.c:7817
#, gcc-internal-format
#: cp/decl.c:8501
#, gcc-internal-format
msgid "concept must have type %<bool%>"
-msgstr "concept måste ha typen %<bool%>"
+msgstr "koncept måste ha typen %<bool%>"
#: cp/decl.c:8614
#, gcc-internal-format
#: cp/decl.c:11077
#, gcc-internal-format
msgid "%qD cannot be declared %<virtual%>, since it is always static"
-msgstr "%qD kan inte deklareras %<virtual%>, eftersom den redan är statisk"
+msgstr "%qD kan inte deklareras %<virtual%>, eftersom den alltid är statisk"
#: cp/decl.c:11093
#, gcc-internal-format
#: cp/init.c:556
#, gcc-internal-format
msgid "recursive instantiation of non-static data member initializer for %qD"
-msgstr "rekursiv instantiering av ickestatisk datamedleminitierare för %qD"
+msgstr "rekursiv instansiering av ickestatisk datamedleminitierare för %qD"
#: cp/init.c:580
#, gcc-internal-format
#: cp/parser.c:3176
#, gcc-internal-format
msgid "%<concept%> only available with -fconcepts"
-msgstr "%<concept%> är endast tillgängligt -fconcepts"
+msgstr "%<concept%> är endast tillgängligt med -fconcepts"
#: cp/parser.c:3202
#, gcc-internal-format
#: cp/parser.c:26867
#, gcc-internal-format
msgid "expected %<@synchronized%>"
-msgstr "%<synchronized%> förväntades"
+msgstr "%<@synchronized%> förväntades"
#: cp/parser.c:26870
#, gcc-internal-format
#: cp/parser.c:26876
#, gcc-internal-format
msgid "expected %<__transaction_relaxed%>"
-msgstr "%<__transaction _relaxed%> förväntades"
+msgstr "%<__transaction_relaxed%> förväntades"
#: cp/parser.c:26907
#, gcc-internal-format
#: cp/parser.c:28310
#, gcc-internal-format
msgid "invalid Objective-C++ selector name"
-msgstr "ogiltigt Objective-C++-selekterarnamn"
+msgstr "ogiltigt Objective-C++-väljarnamn"
#: cp/parser.c:28385 cp/parser.c:28403
#, gcc-internal-format
#: cp/parser.c:35658
#, gcc-internal-format
msgid "%<#pragma omp declare simd%> of %<simd%> attribute cannot be used in the same function marked as a Cilk Plus SIMD-enabled function"
-msgstr "%<#pragma omp declare simd%> av %<simd%>-attributkan inte användas i samma funktion som är markerad som en Cilk Plus SIMD-aktiverad funktion"
+msgstr "%<#pragma omp declare simd%> av %<simd%>-attribut kan inte användas i samma funktion som är markerad som en Cilk Plus SIMD-aktiverad funktion"
#: cp/parser.c:35668
#, gcc-internal-format
#: cp/pt.c:6009
#, gcc-internal-format
msgid " template parameter %qD is not a parameter pack, but argument %qD is"
-msgstr "mallparameter %qD är inte ett parameterpaket, men argunet %qD är det"
+msgstr "mallparameter %qD är inte ett parameterpaket, men argument %qD är det"
#: cp/pt.c:6020
#, gcc-internal-format
#: cp/pt.c:24033
#, gcc-internal-format
msgid "placeholder constraints not satisfied"
-msgstr "platshållabegränsningar är inte uppfyllt"
+msgstr "platshållarbegränsningar är inte uppfyllt"
#: cp/pt.c:24036
#, gcc-internal-format
#: cp/semantics.c:6154
#, gcc-internal-format
msgid "%<gang%> static expression must be integral"
-msgstr "%<gang%>-statisk uttryck måste vara heltal"
+msgstr "%<gang%>-statiskt uttryck måste vara heltal"
#: cp/semantics.c:6168
#, gcc-internal-format
#: cp/semantics.c:6238
#, gcc-internal-format
msgid "%<worker%> num value must bepositive"
-msgstr "%<worker%>-numerikst värde måste vara positivt"
+msgstr "%<worker%>-numeriskt värde måste vara positivt"
#: cp/semantics.c:6243
#, gcc-internal-format
#: cp/semantics.c:9352
#, gcc-internal-format
msgid "both arguments in binary fold have unexpanded parameter packs"
-msgstr "båda argumentet i en binär vikning har oexpanderade parameterpaket"
+msgstr "båda argumenten i en binär vikning har oexpanderade parameterpaket"
#: cp/semantics.c:9354
#, gcc-internal-format
#: cp/typeck.c:6322
#, gcc-internal-format
msgid "expression list treated as compound expression in functional cast"
-msgstr "uttryckslista behandlas som sammansatt uttryck i funtionstypkonvertering"
+msgstr "uttryckslista behandlas som sammansatt uttryck i funktionstypkonvertering"
#: cp/typeck.c:6359
#, gcc-internal-format, gfc-internal-format
#: cp/typeck.c:8658
#, gcc-internal-format
msgid "returning a value from a destructor"
-msgstr "returnerar ett värde från en destruktor"
+msgstr "returnerar ett värde från en destruerare"
#. If a return statement appears in a handler of the
#. function-try-block of a constructor, the program is ill-formed.
#: cp/typeck2.c:440
#, gcc-internal-format
msgid "definition of %q#T is not complete until the closing brace"
-msgstr "definitionen av %q#T är inte fullständig före den avlutande klammern"
+msgstr "definitionen av %q#T är inte fullständig före den avslutande klammern"
#: cp/typeck2.c:443
#, gcc-internal-format
#: fortran/arith.c:745
#, gcc-internal-format
msgid "Integer division truncated to constant %qs at %L"
-msgstr "Heltalsdivision havhuggen till konstanten %qs vid %L"
+msgstr "Heltalsdivision avhuggen till konstanten %qs vid %L"
#: fortran/arith.c:791
#, gcc-internal-format
#: fortran/check.c:1035
#, gcc-internal-format, gfc-internal-format
msgid "ATOM argument at %L of the %s intrinsic function shall be a coarray or coindexed"
-msgstr "ATOM-argumentet till vid %L till den inbyggda funktionen %s måste vara en co-vektor eller co-indexat"
+msgstr "ATOM-argumentet vid %L till den inbyggda funktionen %s måste vara en co-vektor eller co-indexerat"
#: fortran/check.c:1042
#, gcc-internal-format
#: fortran/check.c:1167
#, gcc-internal-format, gfc-internal-format
msgid "EVENT argument at %L to the intrinsic EVENT_QUERY shall be of type EVENT_TYPE"
-msgstr "EVENT-argumentetet vid %L till den inbyggda EVENT_QUERY skall ha typen EVENT_TYPE"
+msgstr "EVENT-argumentet vid %L till den inbyggda EVENT_QUERY skall ha typen EVENT_TYPE"
#: fortran/check.c:1177
#, gcc-internal-format, gfc-internal-format
#: fortran/decl.c:5217
#, gcc-internal-format, gfc-internal-format
msgid "Dummy procedure at %C may not have BIND(C) attribute with NAME"
-msgstr "Attrapprocedur vid %C kan inte ha attributet BIND(c) tillsammans med NAME"
+msgstr "Attrapprocedur vid %C kan inte ha attributet BIND(C) tillsammans med NAME"
#: fortran/decl.c:5240
#, gcc-internal-format
#: fortran/match.c:2649
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement STOP at %C in CRITICAL block"
-msgstr "Bildkontrollsatsen STOP vid %C i CRITICAL-block"
+msgstr "Bildstyrsatsen STOP vid %C i CRITICAL-block"
#: fortran/match.c:2654
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement STOP at %C in DO CONCURRENT block"
-msgstr "Bildkontrollsatsen STOP vid %C i DO CONCURRENT-block"
+msgstr "Bildstyrsatsen STOP vid %C i DO CONCURRENT-block"
#: fortran/match.c:2662
#, gcc-internal-format, gfc-internal-format
#: fortran/match.c:2793
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement EVENT %s at %C in CRITICAL block"
-msgstr "Bildkontrollsatsen EVENT %s vid %C i CRITICAL-block"
+msgstr "Bildstyrsatsen EVENT %s vid %C i CRITICAL-block"
#: fortran/match.c:2800
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement EVENT %s at %C in DO CONCURRENT block"
-msgstr "Bildkontrollsatsen EVENT %s vid %C i DO CONCURRENT-block"
+msgstr "Bildstyrsatsen EVENT %s vid %C i DO CONCURRENT-block"
#: fortran/match.c:2830 fortran/match.c:3025 fortran/match.c:3237
#: fortran/match.c:3747 fortran/match.c:4084
#: fortran/match.c:2988
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement %s at %C in CRITICAL block"
-msgstr "Bildkontrollsatsen %s vid %C i CRITICAL-block"
+msgstr "Bildstyrsatsen %s vid %C i CRITICAL-block"
#: fortran/match.c:2995
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement %s at %C in DO CONCURRENT block"
-msgstr "Bildkontrollsatsen %s vid %C i DO CONCURRENT-block"
+msgstr "Bildstyrsatsen %s vid %C i DO CONCURRENT-block"
#: fortran/match.c:3067
#, gcc-internal-format, gfc-internal-format
#: fortran/match.c:3185
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement SYNC at %C in CRITICAL block"
-msgstr "Bildkontrollsatsen SYNC vid %C i CRITICAL-block"
+msgstr "Bildstyrsatsen SYNC vid %C i CRITICAL-block"
#: fortran/match.c:3191
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement SYNC at %C in DO CONCURRENT block"
-msgstr "Bildkontrollsatsen SYNC vid %C i DO CONCURRENT-block"
+msgstr "Bildstyrsatsen SYNC vid %C i DO CONCURRENT-block"
#: fortran/match.c:3371
#, gcc-internal-format, gfc-internal-format
#: fortran/match.c:3803
#, gcc-internal-format, gfc-internal-format
msgid "SOURCE tag at %L conflicts with the typespec at %L"
-msgstr "SOURCE-taggen vid %L står i konflikt med typespecifikationen vid %L"
+msgstr "SOURCE-taggen vid %L står i konflikt med typspecifikationen vid %L"
#: fortran/match.c:3809
#, gcc-internal-format, gfc-internal-format
#: fortran/match.c:3840
#, gcc-internal-format, gfc-internal-format
msgid "MOLD tag at %L conflicts with the typespec at %L"
-msgstr "MOLD-taggen vid %L står i konflikt med typespecifikationen vid %L"
+msgstr "MOLD-taggen vid %L står i konflikt med typspecifikationen vid %L"
#: fortran/match.c:3866
#, gcc-internal-format, gfc-internal-format
#: fortran/match.c:4161
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement RETURN at %C in CRITICAL block"
-msgstr "Bildkontrollsatsen RETURN vid %C i CRITICAL-block"
+msgstr "Bildstyrsatsen RETURN vid %C i CRITICAL-block"
#: fortran/match.c:4167
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement RETURN at %C in DO CONCURRENT block"
-msgstr "Bildkontrollsatsen RETURN vid %C i DO CONCURRENT-block"
+msgstr "Bildstyrsatsen RETURN vid %C i DO CONCURRENT-block"
#: fortran/match.c:4176
#, gcc-internal-format, gfc-internal-format
#: fortran/match.c:5254 fortran/match.c:5270
#, gcc-internal-format, gfc-internal-format
msgid "Expression in CASE selector at %L cannot be %s"
-msgstr "Uttryck i CASE-sats vid %L får inte vara %s"
+msgstr "Uttryck i CASE-väljare vid %L får inte vara %s"
#: fortran/match.c:5292
#, gcc-internal-format, gfc-internal-format
#: fortran/module.c:6967
#, gcc-internal-format, gfc-internal-format
msgid "Can't USE the same %smodule we're building!"
-msgstr "Det går inta att USE samma %smodul vi bygger!"
+msgstr "Det går inte att USE samma %smodul vi bygger!"
#: fortran/openmp.c:289 fortran/openmp.c:497 fortran/openmp.c:2399
#: fortran/openmp.c:2473
#: fortran/openmp.c:535
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in !$ACC DECLARE list at %C"
-msgstr "Syntaxfel i !$OMP DECLARE-lista vid %C"
+msgstr "Syntaxfel i !$ACC DECLARE-lista vid %C"
#: fortran/openmp.c:991
#, gcc-internal-format, gfc-internal-format
#: fortran/openmp.c:1494
#, gcc-internal-format, gfc-internal-format
msgid "Assumed-size dummy array with $!ACC DECLARE at %L"
-msgstr "Attrappvektor med antagen storlek med $!ACC DECLARE at %L"
+msgstr "Attrappvektor med antagen storlek med $!ACC DECLARE vid %L"
#: fortran/openmp.c:1541
#, gcc-internal-format
#: fortran/primary.c:562
#, gcc-internal-format
msgid "Extension: exponent-letter %<q%> in real-literal-constant at %C"
-msgstr "Utökning: exponentbokstav %<q%> i reeel literal konstant vid %C"
+msgstr "Utökning: exponentbokstav %<q%> i reell literal konstant vid %C"
#: fortran/primary.c:578
#, gcc-internal-format, gfc-internal-format
#: fortran/resolve.c:11964
#, gcc-internal-format, gfc-internal-format
msgid "Mismatch in PURE attribute between MODULE PROCEDURE at %L and its interface in %s"
-msgstr "PURE-attribute stämmer inte mellan MODULE PROCEDURE vid %L och dess gränssnitt i %s"
+msgstr "PURE-attribut stämmer inte mellan MODULE PROCEDURE vid %L och dess gränssnitt i %s"
#: fortran/resolve.c:11972
#, gcc-internal-format, gfc-internal-format
#: fortran/simplify.c:1173
#, gcc-internal-format, gfc-internal-format
msgid "If first argument of ATAN2 %L is zero, then the second argument must not be zero"
-msgstr "Om första argumentet till ATANH2 %L är noll får inte andra argumentet vara noll"
+msgstr "Om första argumentet till ATAN2 %L är noll får inte andra argumentet vara noll"
#: fortran/simplify.c:1265
#, gcc-internal-format, gfc-internal-format
#: objc/objc-act.c:707
#, gcc-internal-format
msgid "%<@package%> presently has the same effect as %<@public%>"
-msgstr "%<package%> har för närvarande samma effekt som %<@public%>"
+msgstr "%<@package%> har för närvarande samma effekt som %<@public%>"
#: objc/objc-act.c:718
#, gcc-internal-format
#: objc/objc-act.c:837
#, gcc-internal-format
msgid "%<@property%> is not available in Objective-C 1.0"
-msgstr "%<property%> finns inte i Objective-C 1.0"
+msgstr "%<@property%> finns inte i Objective-C 1.0"
#: objc/objc-act.c:841
#, gcc-internal-format
#: objc/objc-act.c:5101
#, gcc-internal-format
msgid "multiple selectors named %<%c%E%> found"
-msgstr "multipla selektorer med namnet %<%c%E%> funna"
+msgstr "multipla väljare med namnet %<%c%E%> funna"
#: objc/objc-act.c:5104
#, gcc-internal-format
#: objc/objc-act.c:5729
#, gcc-internal-format
msgid "undeclared selector %qE"
-msgstr "odeklarerad selektor %qE"
+msgstr "odeklarerad väljare %qE"
#. Historically, a class method that produced objects (factory
#. method) would assign `self' to the instance that it
#: objc/objc-runtime-shared-support.c:425
#, gcc-internal-format
msgid "creating selector for nonexistent method %qE"
-msgstr "skapar selektor för icke existerande metod %qE"
+msgstr "skapar väljare för icke existerande metod %qE"
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
+2016-08-22 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/62171
+ * gcc.dg/vect/pr62171.c: Remove default vector testsuite flags.
+
+2016-08-18 Chung-Lin Tang <cltang@codesourcery.com>
+
+ Backport from mainline
+ 2016-08-18 Chung-Lin Tang <cltang@codesourcery.com>
+
+ PR middle-end/70895
+ * gfortran.dg/goacc/loop-tree-1.f90: Add gimple scan-tree-dump test.
+ * c-c++-common/goacc/reduction-1.c: Likewise.
+ * c-c++-common/goacc/reduction-2.c: Likewise.
+ * c-c++-common/goacc/reduction-3.c: Likewise.
+ * c-c++-common/goacc/reduction-4.c: Likewise.
+
+2016-08-16 Jakub Jelinek <jakub@redhat.com>
+
+ PR testsuite/77034
+ Backported from mainline
+ 2016-07-25 Jason Merrill <jason@redhat.com>
+
+ * g++.dg/init/elide5.C (operator new): Use decltype(sizeof(1)) instead
+ of unsigned long.
+
+2016-08-15 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/73434
+ * gcc.dg/torture/pr73434.c: New testcase.
+
+2016-08-15 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/72824
+ * gcc.c-torture/execute/ieee/pr72824-2.c: New test.
+
+2016-08-14 Uros Bizjak <ubizjak@gmail.com>
+
+ Backport from mainline
+ 2016-08-14 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/76342
+ * gcc.target/i386/pr76342.c: New test.
+
+2016-08-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/71512
+ * g++.dg/ubsan/pr71512.C: New test.
+ * c-c++-common/ubsan/pr71512-1.c: New test.
+ * c-c++-common/ubsan/pr71512-2.c: New test.
+
+2016-08-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
+
+ Backport from mainline
+ 2016-08-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
+
+ PR tree-optimization/71083
+ * gcc.c-torture/execute/pr71083.c: New test.
+ * gnat.dg/loop_optimization23.adb: New test.
+ * gnat.dg/loop_optimization23_pkg.ads: New test.
+ * gnat.dg/loop_optimization23_pkg.adb: New test.
+
+2016-08-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/67410
+ * gcc.dg/pr67410.c: New test.
+
+2016-08-12 James Greenhalgh <james.greenhalgh@arm.com>
+
+ Backport from mainline
+ 2016-08-05 James Greenhalgh <james.greenhalgh@arm.com>
+
+ PR Target/72819
+ * gcc.target/aarch64/aapcs64/abitest-common.h: Define half-precision
+ registers.
+ * gcc.target/aarch64/aapcs64/abitest.S (dumpregs): Add assembly for
+ saving the half-precision registers.
+ * gcc.target/aarch64/aapcs64/func-ret-1.c: Test that an __fp16
+ value is returned in h0.
+ * gcc.target/aarch64/aapcs64/test_2.c: Check that __FP16 arguments
+ are passed in FP/SIMD registers.
+ * gcc.target/aarch64/aapcs64/test_27.c: New, test that __fp16 HFA
+ passing works corrcetly.
+ * gcc.target/aarch64/aapcs64/type-def.h (hfa_f16x1_t): New.
+ (hfa_f16x2_t): Likewise.
+ (hfa_f16x3_t): Likewise.
+ * gcc.target/aarch64/aapcs64/va_arg-1.c: Check that __fp16 values
+ are promoted to double and passed in a double register.
+ * gcc.target/aarch64/aapcs64/va_arg-2.c: Check that __fp16 values
+ are promoted to double and stacked.
+ * gcc.target/aarch64/aapcs64/va_arg-4.c: Check stacking of HFA of
+ __fp16 data types.
+ * gcc.target/aarch64/aapcs64/va_arg-5.c: Likewise.
+ * gcc.target/aarch64/aapcs64/va_arg-16.c: New, check HFAs of
+ __fp16 first get passed in FP/SIMD registers, then stacked.
+
+2016-08-11 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ Backport from trunk.
+ PR fortran/71123
+ * gfortran.dg/namelist_90.f: New test
+
+2016-08-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/72868
+ * constexpr.c (label_matches): Handle case range expressions.
+
+ Backported from mainline
+ 2016-08-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/72816
+ * gcc.dg/pr72816.c: Remove dg-error.
+
+ 2016-08-07 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/72816
+ * gcc.dg/pr72816.c: New test.
+
+2016-08-11 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ Backport from trunk:
+ PR fortran/71936
+ * gfortran.dg/allocate_with_source_21.f03: New test.
+
+2016-08-11 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ Backport from trunk:
+ PR fortran/72698
+ * gfortran.dg/allocate_with_source_20.f03: New test.
+
+2016-08-10 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ Backport from mainline
+ 2016-08-10 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ PR target/72853
+ * gcc.target/powerpc/pr72853.c: New test.
+
+2016-08-10 Jakub Jelinek <jakub@redhat.com>
+
+ Backported from mainline
+ 2016-08-09 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/72824
+ * gcc.c-torture/execute/ieee/pr72824.c: New test.
+
+2016-08-09 Martin Jambor <mjambor@suse.cz>
+
+ PR ipa/71981
+ * gcc.dg/ipa/pr71981.c: New test.
+
+2016-08-09 Richard Biener <rguenther@suse.de>
+
+ Backport from mainline
+ 2016-07-15 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/71881
+ * gcc.dg/torture/pr71881.c: New testcase.
+
+2016-08-09 Alan Modra <amodra@gmail.com>
+
+ * gcc.c-torture/compile/pr72802.c: New.
+
+2016-08-08 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/72800
+ * g++.dg/cpp1y/lambda-ice1.C: New.
+
+2016-07-25 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ Backport from trunk:
+ PR fortran/70524
+ * gfortran.dg/dependency_48.f90: New test.
+
+2016-08-07 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR fortran/71795
+ Backport from trunk
+ * gfortran.dg/array_constructor_50.f90: New test.
+
+2016-08-07 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR fortran/70040
+ Backport from trunk
+ * gfortran.dg/pr70040.f90: New testcase.
+
+2016-08-05 Nathan Sidwell <nathan@acm.org>
+
+ PR c++/68724
+ * g++.dg/cpp0x/pr68724.C: New.
+
+2016-08-04 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ Backport from trunk
+ 2016-07-26 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ PR target/71869
+ * gcc.target/powerpc/float128-cmp.c: New test to make sure that
+ IEEE built-in functions handle quiet and signalling NaNs
+ correctly.
+
+2016-08-01 Georg-Johann Lay <avr@gjlay.de>
+
+ Backport from 2016-06-16 trunk r237536, r237910.
+ 2016-06-16 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
+
+ PR target/71151
+ * gcc.target/avr/pr71151-1.c: New test.
+ * gcc.target/avr/pr71151-2.c: New test.
+ * gcc.target/avr/pr71151-3.c: New test.
+ * gcc.target/avr/pr71151-4.c: New test.
+ * gcc.target/avr/pr71151-5.c: New test.
+ * gcc.target/avr/pr71151-6.c: New test.
+ * gcc.target/avr/pr71151-7.c: New test.
+ * gcc.target/avr/pr71151-8.c: New test.
+ * gcc.target/avr/pr71151-common.h: New file.
+
+2016-07-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ Backport from mainline
+ 2016-07-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ * gcc.target/powerpc/divkc3-1.c: Require POWER8 hardware.
+ * gcc.target/powerpc/mulkc3-1.c: Likewise.
+
+2016-07-28 Paul Thomas <pault@gcc.gnu.org>
+
+ Backport from trunk
+ PR fortran/71883
+ * gfortran.dg/pr71883.f90 : New test.
+
+2016-07-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ Backport from mainline
+ 2016-07-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ * gcc.target/powerpc/pr63354.c: Require lp64 since
+ -mprofile-kernel is not legal with -m32.
+
+2016-07-22 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ Backported from trunk:
+ PR fortran/71807
+ * gfortran.dg/null_9.f90: New test.
+
+2016-07-22 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ Backport from trunk:
+ PR fortran/70842
+ * gfortran.dg/select_type_35.f03: New test.
+
+2016-07-21 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/71728
+ * g++.dg/other/pr71728.C: New test.
+
+ PR c++/71941
+ * g++.dg/gomp/pr71941.C: New test.
+
+2016-07-21 Patrick Palka <ppalka@gcc.gnu.org>
+
+ PR c++/70822
+ PR c++/70106
+ * g++.dg/cpp1y/auto-fn32.C: New test.
+ * g++.dg/cpp1y/paren4.C: New test.
+
+2016-07-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/71909
+ * g++.dg/parse/pr71909.C: New test.
+ * g++.dg/tm/pr71909.C: New test.
+
+2016-07-20 Martin Jambor <mjambor@suse.cz>
+
+ PR fortran/71688
+ gfortran.dg/pr71688.f90: New test.
+
+2016-07-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/71916
+ * gcc.c-torture/compile/pr71916.c: New test.
+
+ PR middle-end/71874
+ * g++.dg/torture/pr71874.C: New test.
+
+ Backported from mainline
+ 2016-07-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/71835
+ * g++.dg/conversion/ambig3.C: New test.
+
+ PR c++/71828
+ * g++.dg/cpp0x/constexpr-71828.C: New test.
+
+ PR c++/71822
+ * g++.dg/template/defarg21.C: New test.
+
+ PR c++/71871
+ * g++.dg/ext/vector31.C: New test.
+
+ 2016-07-07 Jakub Jelinek <jakub@redhat.com>
+ Kai Tietz <ktietz70@googlemail.com>
+
+ PR c++/70869
+ PR c++/71054
+ * g++.dg/cpp0x/pr70869.C: New test.
+ * g++.dg/cpp0x/pr71054.C: New test.
+
+2016-07-18 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ Back port from mainline
+ 2016-07-18 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ PR target/71493
+ * gcc.target/powerpc/pr71493-1.c: New test.
+ * gcc.target/powerpc/pr71493-2.c: Likewise.
+
+2016-07-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
+
+ Backport from mainline
+ 2016-07-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
+
+ * gcc.target/s390/nolrl-1.c: New test.
+
+2016-07-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ Backport from trunk:
+ PR fortran/71764
+ * gfortran.dg/pr71764.f90: New test.
+
+2016-07-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ Backport from mainline
+ 2016-07-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ * g++.dg/pr70098.C: Remove XFAIL for powerpc64_no_dm.
+ * gcc.target/powerpc/pr71763.c: Likewise.
+
+2016-07-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ Backport from mainline
+ 2016-07-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ * gcc.target/powerpc/divkc3-1.c: Require p8vector support.
+ * gcc.target/powerpc/mulkc3-1.c: Likewise.
+
+2016-07-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ Backport from mainline
+ 2016-07-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ * gcc.target/powerpc/divkc3-1.c: New.
+ * gcc.target/powerpc/mulkc3-1.c: New.
+
+2016-07-14 Alan Modra <amodra@gmail.com>
+
+ PR target/71733
+ * gcc.target/powerpc/p9-novsx.c: New.
+
+2016-07-13 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ Backport from trunk:
+ PR fortran/71623
+ * gfortran.dg/deferred_character_17.f90: New test.
+
+2016-07-13 Ilya Enkovich <ilya.enkovich@intel.com>
+
+ Backport from mainline r238086.
+ 2016-07-07 Ilya Enkovich <ilya.enkovich@intel.com>
+
+ PR ipa/71624
+ * g++.dg/pr71624.C: New test.
+
+2016-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
+ Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ Backport from mainline
+ 2016-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
+ Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ * gcc.target/powerpc/signbit-1.c: New test.
+ * gcc.target/powerpc/signbit-2.c: New test.
+ * gcc.target/powerpc/signbit-3.c: New test.
+
+2016-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ Backport from mainline
+ 2016-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ PR target/71805
+ * gcc.target/powerpc/pr71805.c: New test.
+
+2016-07-12 Segher Boessenkool <segher@kernel.crashing.org>
+
+ Backport from mainline
+ 2016-07-06 Segher Boessenkool <segher@kernel.crashing.org>
+
+ PR target/70098
+ PR target/71763
+ * gcc.target/powerpc/pr71763.c: New file.
+
+2016-07-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/71758
+ * c-c++-common/gomp/pr71758.c: New test.
+ * gfortran.dg/gomp/pr71758.f90: New test.
+
+ PR tree-optimization/71823
+ * gcc.dg/vect/pr71823.c: New test.
+
+2016-07-11 Yuri Rumyantsev <ysrumyan@gmail.com>
+
+ Backport from mainline r238055.
+ 2016-07-06 Yuri Rumyantsev <ysrumyan@gmail.com>
+
+ PR tree-optimization/71518
+ * gcc.dg/pr71518.c: New test.
+
2016-07-09 Thomas Koenig <tkoenig@gcc.gnu.org>
Backport from trunk:
Backport from mainline
2016-07-06 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
- PR target/50739
+ PR target/50739
* gcc.target/avr/pr50739.c: New test.
2016-07-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+/* { dg-additional-options "-fdump-tree-gimple" } */
/* Integer reductions. */
#define n 1000
return 0;
}
+
+/* Check that default copy maps are generated for loop reductions. */
+/* { dg-final { scan-tree-dump-times "map\\(tofrom:result \\\[len: \[0-9\]+\\\]\\)" 7 "gimple" } } */
+/* { dg-final { scan-tree-dump-times "map\\(tofrom:lresult \\\[len: \[0-9\]+\\\]\\)" 2 "gimple" } } */
+/* { dg-additional-options "-fdump-tree-gimple" } */
/* float reductions. */
#define n 1000
return 0;
}
+
+/* Check that default copy maps are generated for loop reductions. */
+/* { dg-final { scan-tree-dump-times "map\\(tofrom:result \\\[len: \[0-9\]+\\\]\\)" 4 "gimple" } } */
+/* { dg-final { scan-tree-dump-times "map\\(tofrom:lresult \\\[len: \[0-9\]+\\\]\\)" 2 "gimple" } } */
+/* { dg-additional-options "-fdump-tree-gimple" } */
/* double reductions. */
#define n 1000
return 0;
}
+
+/* Check that default copy maps are generated for loop reductions. */
+/* { dg-final { scan-tree-dump-times "map\\(tofrom:result \\\[len: \[0-9\]+\\\]\\)" 4 "gimple" } } */
+/* { dg-final { scan-tree-dump-times "map\\(tofrom:lresult \\\[len: \[0-9\]+\\\]\\)" 2 "gimple" } } */
+/* { dg-additional-options "-fdump-tree-gimple" } */
/* complex reductions. */
#define n 1000
return 0;
}
+
+/* Check that default copy maps are generated for loop reductions. */
+/* { dg-final { scan-tree-dump-times "map\\(tofrom:result \\\[len: \[0-9\]+\\\]\\)" 2 "gimple" } } */
+/* { dg-final { scan-tree-dump-times "map\\(tofrom:lresult \\\[len: \[0-9\]+\\\]\\)" 2 "gimple" } } */
--- /dev/null
+/* PR middle-end/71758 */
+
+void
+foo (int *p)
+{
+ long long i = 0;
+ #pragma omp target device (i)
+ ;
+ #pragma omp target update device (i) to (p[0])
+}
--- /dev/null
+/* PR c/71512 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -fnon-call-exceptions -ftrapv -fexceptions -fsanitize=undefined" } */
+
+#include "../../gcc.dg/pr44545.c"
--- /dev/null
+/* PR c/71512 */
+/* { dg-do compile } */
+/* { dg-options "-O -fexceptions -fnon-call-exceptions -ftrapv -fsanitize=undefined" } */
+
+#include "../../gcc.dg/pr47086.c"
// PR c++/67159
// { dg-options "-std=c++1z -fconcepts" }
+template <class T, class U>
+concept bool SameAs = __is_same_as(T, U);
+
template <class T>
-concept bool R = requires (T& t) {
+concept bool R1 = requires (T& t) {
{ t.begin() } -> T
+ { t.end() } -> SameAs<T*>;
+};
+
+template <class T>
+concept bool R2 = requires (T& t) {
+ { t.end() } -> SameAs<T*>;
};
struct foo {
int* begin();
+ int* end();
};
-R{T}
+R1{T}
constexpr bool f() { return true; }
+R2{T}
+constexpr bool g() { return true; }
+
static_assert(f<foo>()); // { dg-error "" }
+static_assert(g<foo>()); // { dg-error "" }
return decltype(check<T, U, Args...>())::value;
}
+template <typename T, typename U, typename... Args>
+ concept bool Similar = true;
+
template <typename... Args>
-requires Same<Args...>() // { dg-error "concept" }
+requires Same<Args...>() // { dg-error "invalid reference" }
void foo( Args... args ) {}
+template <typename... Args>
+requires Similar<Args...> // { dg-error "invalid reference" }
+ void bar( Args... args ) {}
+
int main()
{
- foo(1, 2, 3); // { dg-error "" }
+ foo(1, 2, 3); // { dg-error "cannot call" }
+ bar(1, 2, 3); // { dg-error "cannot call" }
}
int main()
{
f1(s); // { dg-error "cannot call" }
- f2(s); // { dg-error "cannot call" }
+ f2(s); // { dg-error "" }
// When used in non-SFINAE contexts, make sure that we fail
// the constraint check before emitting the access check
// failures. The context is being presented constistently
// in both cases.
static_assert(C1<S>(), ""); // { dg-error "failed" }
- static_assert(C2<S>(), ""); // { dg-error "failed" }
+ static_assert(C2<S>(), ""); // { dg-error "" }
}
--- /dev/null
+// PR c++/72415
+// { dg-options "-std=c++1z -fconcepts" }
+
+template<int... Indices>
+struct indices {};
+
+template<typename Dummy>
+struct foo_type {
+ template<int... Indices>
+ static void impl(indices<Indices...>)
+ requires (... && (Indices, true));
+
+ static auto caller()
+ { return impl(indices<0, 1, 2> {}); }
+};
+
+int main()
+{
+ // internal compiler error: in satisfy_predicate_constraint, at cp/constraint.cc:2013
+ foo_type<void>::caller();
+}
--- /dev/null
+// { dg-options "-std=c++1z -fconcepts" }
+
+struct B
+{
+ template <class T> void f(T t)
+ requires requires (T tt) { tt; }
+ { }
+};
+
+int main()
+{
+ B().f(42);
+}
--- /dev/null
+// { dg-options "-std=c++1z -fconcepts" }
+
+template <class T> concept bool C = true;
+
+template <class T>
+requires C<typename T::foo>
+void f(T t) { }
+
+void f(...);
+
+template <class T>
+requires C<T>
+void g(T t) { }
+
+int main()
+{
+ f(42);
+ g(42);
+}
template<typename T> constexpr fool p2() { return {}; }
template<typename T>
- concept bool C() { return p1<T>() && p2<T>(); } // { dg-error "does not have type" }
+ concept bool C() { return p1<T>() && p2<T>(); }
template<C T> void f(T x) { }
int main() {
- f(0); // { dg-error "cannot call" }
+ f(0); // { dg-error "cannot call|uses overloaded operator" }
}
template<typename T> constexpr fool p2() { return {}; }
template<typename T>
- concept bool C() { return p1<T>() && p2<T>(); } // { dg-error "does not have type" }
+ concept bool C() { return p1<T>() && p2<T>(); }
template<C T> void f(T x) { }
int main() {
- f(0); // { dg-error "cannot call" }
+ f(0); // { dg-error "cannot call|uses overloaded operator" }
}
concept bool C1() { return X(); }
template<C1 T>
- void h(T) { } // { dg-error "not|bool" }
+ void h(T) { } // OK until used.
+
+void f()
+{
+ h(0); // { dg-error "does not have|cannot call" }
+}
template<typename T>
concept bool C2() { return X() == X(); } // OK
constexpr bool f() { return false; }
static_assert(f<void>());
-static_assert(v<void>); // { dg-error "constraints" }
+static_assert(v<void>); // { dg-error "invalid" }
template <class T> concept bool Constructable = requires { T(); };
template <class T> concept bool Both = Copyable<T> && Constructable<T>;
-template <Copyable... Ts> void f(Ts...) { }
-template <Both... Ts> void f(Ts...) { }
+template <Copyable... Ts>
+constexpr int f(Ts...) { return 0; } // #1
+
+template <Both... Ts>
+constexpr int f(Ts...) { return 1; } // #2
int main()
{
- f(42);
+ static_assert(f(42) == 1);
}
--- /dev/null
+// PR c++/73456
+// { dg-options "-std=c++1z -fconcepts" }
+
+template<typename...> struct list {};
+
+template<typename Seq>
+concept bool Sequence = true;
+
+template<Sequence... Seqs>
+struct zip;
+
+template<Sequence... Seqs>
+ requires requires { typename list<Seqs...>; }
+// main.cpp:12:8: internal compiler error: in non_atomic_constraint_p, at cp/logic.cc:315
+struct zip<Seqs...> {};
+
+int main()
+{
+ zip<list<>, list<int>> {};
+}
--- /dev/null
+// PR c++/71835
+// { dg-do compile }
+
+typedef void T (int);
+struct A { operator T * (); }; // { dg-message "candidate" }
+struct B { operator T * (); }; // { dg-message "candidate" }
+struct C : A, B {} c;
+
+void
+foo ()
+{
+ c (0); // { dg-error "is ambiguous" }
+}
--- /dev/null
+// PR c++/71718
+// { dg-do compile { target c++11 } }
+
+template <typename T>
+class A : T{};
+
+template <typename T>
+using sp = A<T>;
+
+struct Base {};
+
+template <typename T, int num = 1>
+const sp<T>
+rec() // { dg-error "depth" }
+{
+ return rec<T, num - 1>();
+}
+
+static void f(void) {
+ rec<Base>();
+}
+
+// { dg-prune-output "compilation terminated" }
--- /dev/null
+// PR c++/71513
+// { dg-do compile { target c++11 } }
+
+template < int N, typename T >
+struct A
+{
+ enum alignas (N) E : T;
+};
+
+#define SA(X) static_assert((X), #X)
+
+constexpr int al = alignof(double);
+SA(alignof(A<al,char>::E) == al);
--- /dev/null
+// PR c++/71828
+// { dg-do compile { target c++11 } }
+
+constexpr _Complex int a { 1, 2 };
+static_assert (& __imag a != &__real a, "");
--- /dev/null
+// PR c++/71092
+// { dg-do compile { target c++11 } }
+
+template <typename _Default> struct A { using type = _Default; };
+template <typename _Default, template <typename> class>
+using __detected_or = A<_Default>;
+template <typename _Default, template <typename> class _Op>
+using __detected_or_t = typename __detected_or<_Default, _Op>::type;
+template <typename _Tp> struct B { typedef _Tp value_type; };
+struct C {
+ template <typename _Tp> using __pointer = typename _Tp::pointer;
+};
+template <typename _Alloc> struct J : C {
+ using pointer = __detected_or_t<typename _Alloc::value_type *, __pointer>;
+};
+template <typename _T1> void _Construct(_T1 *) { new _T1; }
+struct D {
+ template <typename _ForwardIterator, typename _Size>
+ static _ForwardIterator __uninit_default_n(_ForwardIterator p1, _Size) {
+ _Construct(p1);
+ }
+};
+template <typename _ForwardIterator, typename _Size>
+void __uninitialized_default_n(_ForwardIterator p1, _Size) {
+ D::__uninit_default_n(p1, 0);
+}
+template <typename _ForwardIterator, typename _Size, typename _Tp>
+void __uninitialized_default_n_a(_ForwardIterator p1, _Size, _Tp) {
+ __uninitialized_default_n(p1, 0);
+}
+template <typename> struct __shared_ptr {
+ constexpr __shared_ptr() : _M_ptr(), _M_refcount() {}
+ int _M_ptr;
+ int _M_refcount;
+};
+template <typename _Alloc> struct F {
+ typedef _Alloc _Tp_alloc_type;
+ struct G {
+ typename J<_Tp_alloc_type>::pointer _M_start;
+ G(_Tp_alloc_type);
+ };
+ F(int, _Alloc p2) : _M_impl(p2) {}
+ G _M_impl;
+};
+template <typename _Tp, typename _Alloc = B<_Tp>> struct K : F<_Alloc> {
+ typedef _Alloc allocator_type;
+ K(int, allocator_type p2 = allocator_type()) : F<_Alloc>(0, p2) {
+ __uninitialized_default_n_a(this->_M_impl._M_start, 0, 0);
+ }
+};
+struct H {
+ H();
+ struct I {
+ __shared_ptr<int> trigger[1];
+ };
+ __shared_ptr<int> resetTrigger_;
+ K<I> states_;
+ __shared_ptr<int> triggerManager_;
+};
+__shared_ptr<int> a;
+H::H() : states_(0), triggerManager_(a) {}
--- /dev/null
+// PR c++/72457
+// { dg-do compile { target c++11 } }
+
+struct A {
+ int i;
+ constexpr A(): i(0) {}
+};
+
+struct B: A { };
+
+struct C
+{
+ B b;
+ constexpr C() : b{} {}
+};
--- /dev/null
+// PR c++/71896
+// { dg-do compile { target c++11 } }
+
+struct Foo {
+ int x;
+};
+
+constexpr bool compare(int Foo::*t) { return t == &Foo::x; }
+
+constexpr bool b = compare(&Foo::x);
+
+#define SA(X) static_assert ((X),#X)
+SA(b);
+// Test for Core 2189.
// { dg-do compile { target c++11 } }
template <class T>
--- /dev/null
+// PR c++/71511
+// { dg-do compile { target c++11 } }
+
+template < typename T >
+class A
+{
+ static int i;
+};
+
+//okay: template < typename T > int A <T>::i = 100;
+template < typename T > int decltype (A < T > ())::i = 100; // { dg-error "decltype" }
--- /dev/null
+// PR c++/71350
+// { dg-do compile { target c++11 } }
+
+template<typename T, unsigned int N>
+struct Array
+{
+ T data[N];
+};
+
+template<typename T>
+struct Foo
+{
+ int operator[](const Array<int, 2>& i) const { return 0; }
+ auto bar() -> decltype((*this)[{1,2}] * 0) {
+ return *this; // { dg-error "cannot convert" }
+ }
+};
+
+template struct Foo<int>;
--- /dev/null
+// PR c++/55922
+// { dg-do run { target c++11 } }
+
+bool called = false;
+
+struct Base {
+ Base() { if (called) throw 1; called = true; }
+};
+
+struct B1 : virtual Base {
+ B1() { }
+};
+
+struct C : B1, virtual Base {
+ C() : B1{}
+ { }
+};
+
+int main() {
+ C c;
+}
--- /dev/null
+// PR c++/71774
+// { dg-do compile { target c++11 } }
+
+class Meow
+{
+ protected:
+ Meow() =default;
+ virtual void f() {}
+};
+
+class Purr : public Meow
+{
+ public:
+ Purr()
+ : Meow{}
+ {}
+};
--- /dev/null
+// PR c++/70824
+// { dg-do compile { target c++11 } }
+
+#include <initializer_list>
+
+constexpr
+int
+max(std::initializer_list<int> __l)
+{ return *__l.begin(); }
+
+template <class Src>
+void
+a() {
+ const int v = max({1});
+}
--- /dev/null
+// PR c++/69223
+// { dg-do compile { target c++11 } }
+
+template <class T> struct A
+{
+ T x[20];
+};
+
+int main()
+{
+ auto l = [](const A<int>& i){ return i; };
+ A<int> a;
+
+ l(a);
+}
--- /dev/null
+// PR c++/70781
+// { dg-do compile { target c++11 } }
+
+template < typename T >
+void foo ()
+{
+ T ([=] (S) { [=] {}; }); // { dg-error "" }
+}
--- /dev/null
+// PR 68724 ICE in unificiation
+// { dg-do compile { target c++11 } }
+
+template <typename _Tp, _Tp>
+struct integral_constant
+{
+};
+
+integral_constant<bool, true> inst;
+
+template <typename _Tp>
+struct integral_constant<bool, __is_enum(_Tp)> // { dg-error "" }
+{
+};
+
--- /dev/null
+// PR c++/70869
+// { dg-do run { target c++11 } }
+
+#include <initializer_list>
+
+struct A
+{
+ int f () { return 1; }
+ int g () { return 2; }
+ int h () { return 3; }
+};
+
+int
+main ()
+{
+ int cnt = 0;
+ for (const auto &m : { &A::f, &A::g, &A::h })
+ {
+ A a;
+ if ((a.*m) () != ++cnt)
+ __builtin_abort ();
+ }
+ if (cnt != 3)
+ __builtin_abort ();
+}
--- /dev/null
+// PR c++/71054
+// { dg-do compile { target c++11 } }
+
+#include <initializer_list>
+
+template <typename D, typename T = decltype (&D::U)>
+struct S
+{
+ struct A
+ {
+ int a;
+ int b;
+ T p;
+ };
+ S () { std::initializer_list<A> a{ {0, 0, &D::V} }; }
+};
+struct R {
+ void V (int);
+ void U (int);
+};
+S<R> b;
--- /dev/null
+// PR c++/71604
+// { dg-do compile { target c++11 } }
+
+void foo ()
+{
+ int a[2] = { 1, 2 };
+ for (struct S { S (int) {} } S : a) // { dg-error "types may not be defined" }
+ ;
+}
void test()
{
- for (struct S { } *x : { (S*)0, (S*)0 } )
+ for (struct S { } *x : { (S*)0, (S*)0 } ) // { dg-error "types may not be defined" }
;
- for (struct S { } x : { S(), S() } )
+ for (struct S { } x : { S(), S() } ) // { dg-error "types may not be defined" }
;
}
--- /dev/null
+// PR c++/71576
+// { dg-do compile { target c++11 } }
+
+template < typename T > T && foo ();
+
+struct A
+{
+ int i:5;
+};
+
+void foo ()
+{
+ int &&j = foo < A > ().i;
+}
--- /dev/null
+// PR c++/71495
+// { dg-do compile { target c++11 } }
+
+struct A;
+template <class T> void f(T); // { dg-bogus "initializing" }
+template <class T> T&& declval();
+struct B
+{
+ template <class T, class U> static decltype(f<T>(declval<U>())) g(int);
+ template <class T, class U> void g(...);
+} b;
+
+int main()
+{
+ b.g<A,A>(42);
+}
--- /dev/null
+// Test for sZ mangling.
+// { dg-do compile { target c++11 } }
+// { dg-final { scan-assembler "_Z1fIJidEEv1AIXstDpT_EE" } }
+// { dg-options -fabi-version=9 }
+
+template <int I> struct A { };
+template <typename... Ts> void f(A<sizeof...(Ts)>);
+
+int main()
+{
+ f<int,double>(A<2>());
+}
--- /dev/null
+// Testcase from cxx-abi-dev.
+// { dg-do compile { target c++11 } }
+// { dg-options "-fabi-version=9" }
+
+struct A {
+ template<int...T> using N = int[sizeof...(T)];
+ template<int...A> void f(N<A...> &);
+
+ template<typename...T> using M = int[sizeof...(T)];
+ template<typename...A> void g(M<A...> &);
+};
+void g(A a)
+{
+ int arr[3];
+ // { dg-final { scan-assembler "_ZN1A1fIJLi1ELi2ELi3EEEEvRAszspT__i" } }
+ a.f<1,2,3>(arr);
+ // { dg-final { scan-assembler "_ZN1A1gIJiiiEEEvRAstDpT__i" } }
+ a.g<int,int,int>(arr);
+}
--- /dev/null
+// Testcase from cxx-abi-dev.
+// { dg-do compile { target c++11 } }
+// { dg-final { scan-assembler "_ZN1A1fIJiiEiJiiiEEEvRAsPDpT_T0_DpT1_E_iS3_S5_" } }
+
+struct A {
+ template<typename...T> using N = int[sizeof...(T)];
+ template<typename...A, typename B, typename...C>
+ void f(N<A..., B, C...> &, B, C...);
+};
+void g(A a) { int arr[6]; a.f<int, int>(arr, 1, 2, 3, 4); }
--- /dev/null
+// Testcase from cxx-abi-dev.
+// { dg-do compile { target c++11 } }
+// { dg-options -fabi-version=9 }
+// { dg-final { scan-assembler "_ZN1A1fIJiiEiJiiiEEEvRAstDpT1__iT0_S2_" } }
+
+struct A {
+ template<typename...T> using N = int[sizeof...(T)];
+ template<typename...A, typename B, typename...C>
+ void f(N<A..., B, C...> &, B, C...);
+};
+void g(A a) { int arr[6]; a.f<int, int>(arr, 1, 2, 3, 4); }
--- /dev/null
+// PR c++/71833
+// { dg-do compile { target c++11 } }
+
+template < typename ... Ts > struct A
+{
+ template < Ts ..., typename ... Us > struct B {};
+};
+
+A <>::B < int > e;
--- /dev/null
+// { dg-do compile { target c++14 } }
+
+template<class,class> struct same_type;
+template<class T> struct same_type<T,T> {};
+
+struct A
+{
+ static int b;
+ int c;
+
+ template <int>
+ decltype(auto) f() { return A::c; }
+
+ template <int>
+ decltype(auto) g() { return (A::c); }
+};
+
+A a;
+
+template <int>
+decltype(auto) f() { return A::b; }
+
+template <int>
+decltype(auto) g() { return (A::b); }
+
+int main()
+{
+ same_type<decltype(f<0>()), int>();
+ same_type<decltype(g<0>()), int&>();
+
+ same_type<decltype(a.f<0>()), int>();
+ same_type<decltype(a.g<0>()), int&>();
+}
--- /dev/null
+// PR c++/71972
+// { dg-do compile { target c++14 } }
+
+typedef int size_t;
+template <int N> struct S {
+ template <size_t M> constexpr S(const char (&)[M]) : data{} {
+ data[0] = data[0];
+ }
+ char data[N];
+};
+int main() {
+ constexpr S<1> s1("");
+}
--- /dev/null
+// PR c++/72868
+// { dg-do compile }
+// { dg-options "-std=gnu++14" }
+
+constexpr int
+foo (int i)
+{
+ switch (i)
+ {
+ case 11 ... 12:
+ return 4;
+ case 0 ... 9:
+ return 3;
+ default:
+ return 7;
+ }
+}
+
+#define SA(X) static_assert((X),#X)
+SA (foo (-1) == 7);
+SA (foo (0) == 3);
+SA (foo (3) == 3);
+SA (foo (9) == 3);
+SA (foo (10) == 7);
+SA (foo (11) == 4);
+SA (foo (12) == 4);
+SA (foo (13) == 7);
--- /dev/null
+// PR c++/71117
+// { dg-do compile { target c++14 } }
+
+template <class T> T&& declval() noexcept;
+template <class, class>
+constexpr bool is_same = false;
+template <class T>
+constexpr bool is_same<T, T> = true;
+
+template <class F>
+struct indirected : F {
+ indirected(F f) : F(f) {}
+ template <class I>
+ auto operator()(I i) -> decltype(declval<F&>()(*i)) {
+ return static_cast<F&>(*this)(*i);
+ }
+};
+
+int main() {
+ auto f = [](auto rng) {
+ static_assert(is_same<decltype(rng), int>, "");
+ return 42;
+ };
+ indirected<decltype(f)> i(f);
+ static_assert(is_same<decltype(i(declval<int*>())), int>, "");
+}
--- /dev/null
+// PR c++/70942
+// { dg-do compile { target c++14 } }
+
+int main()
+{
+ int x = 0;
+ [](auto&& xv){
+ static_cast<decltype(xv)>(xv) = 1;
+ }(x);
+}
--- /dev/null
+// PR c++/72800
+// { dg-do compile { target c++14 } }
+
+void foo ()
+{
+ [n {}] {}; // { dg-error "one element|deducing" }
+}
--- /dev/null
+// PR c++/70822
+// { dg-do compile { target c++14 } }
+
+struct a
+{
+ static int b;
+};
+
+template <typename>
+void
+foo ()
+{
+ &(a::b);
+}
--- /dev/null
+// PR c++/71630
+// { dg-do compile { target c++14 } }
+
+template <class T>
+extern T pi;
+
+int main()
+{
+ return pi<int>;
+}
--- /dev/null
+// PR c++/71711
+// { dg-options -std=c++1z }
+
+template < int > struct A {};
+template < int ... N > void unary_left (A < (... + N) >);
+template < int ... N > void unary_right (A < (N + ...) >);
+template < int ... N > void binary_left (A < (42 + ... + N) >);
+template < int ... N > void binary_right (A < (N + ... + 42) >);
+
+void bar ()
+{
+ // { dg-final { scan-assembler "_Z10unary_leftIJLi1ELi2ELi3EEEv1AIXflplT_EE" } }
+ unary_left < 1, 2, 3 > ({});
+ // { dg-final { scan-assembler "_Z11unary_rightIJLi1ELi2ELi3EEEv1AIXfrplT_EE" } }
+ unary_right < 1, 2, 3 > ({});
+ // { dg-final { scan-assembler "_Z11binary_leftIJLi1ELi2ELi3EEEv1AIXfLplLi42ET_EE" } }
+ binary_left < 1, 2, 3 > ({});
+ // { dg-final { scan-assembler "_Z12binary_rightIJLi1ELi2ELi3EEEv1AIXfRplT_Li42EEE" } }
+ binary_right < 1, 2, 3 > ({});
+}
--- /dev/null
+// PR c++/70709
+// { dg-options "" }
+
+struct A
+{
+ A (int);
+};
+
+struct B
+{
+ B () {}
+ A a[0];
+};
+
+struct C
+{
+ C () {}
+ B a[0];
+};
--- /dev/null
+// PR c++/71871
+// { dg-do compile }
+
+typedef unsigned int V __attribute__ ((__vector_size__ (32)));
+
+template <int N>
+void
+foo (V *x)
+{
+ V a = *x;
+ a = a ? a : -1;
+ *x = a;
+}
+
+template <typename T>
+void
+bar (T *x)
+{
+ T a = *x;
+ a = a ? a : -1;
+ *x = a;
+}
+
+void
+test (V *x, V *y)
+{
+ foo<0> (x);
+ bar<V> (y);
+}
--- /dev/null
+// PR c++/71941
+// { dg-do compile }
+// { dg-options "-fopenmp" }
+
+struct A { A (); A (A &); ~A (); };
+
+template <int N>
+struct B
+{
+ struct C { A a; C () : a () {} };
+ C c;
+ void foo ();
+};
+
+void
+bar ()
+{
+ B<0> b;
+#pragma omp task
+ for (int i = 0; i < 2; i++)
+ b.foo ();
+}
--- /dev/null
+// PR c++/71913
+// { dg-do link { target c++11 } }
+
+void* operator new(decltype(sizeof(1)), void* p) { return p; }
+
+struct IndirectReturn {
+ IndirectReturn() {}
+ // Undefined so we get a link error if the indirect return value is copied
+ IndirectReturn(const IndirectReturn&);
+ IndirectReturn& operator=(const IndirectReturn&) = delete;
+ ~IndirectReturn() {}
+};
+
+IndirectReturn foo() { return IndirectReturn(); }
+
+void bar(void* ptr) {
+ new (ptr) IndirectReturn(foo());
+}
+
+alignas (alignof (IndirectReturn))
+unsigned char c[sizeof(IndirectReturn)];
+
+int main()
+{
+ bar(c);
+}
--- /dev/null
+// PR c++/71728
+// { dg-do compile }
+// { dg-options "-std=gnu++14 -Wall" }
+
+int
+foo ()
+{
+ if (({ goto test; test: 1; }) != 1)
+ return 1;
+ return 2;
+}
--- /dev/null
+// PR c++/71909
+// { dg-do compile }
+
+struct S
+{
+ S () try : m (0) {}
+ catch (...) {}
+ void foo () try {}
+ catch (int) {}
+ catch (...) {}
+ int m;
+};
+
+struct T
+{
+ T () : m (0) {}
+ catch (...) {} // { dg-error "expected unqualified-id before" }
+ void foo () {}
+ catch (int) {} // { dg-error "expected unqualified-id before" }
+ catch (...) {} // { dg-error "expected unqualified-id before" }
+ int m;
+};
// { dg-do compile }
// { dg-options -O2 }
// { dg-require-effective-target c++11 }
-// { dg-xfail-if "PR70098" { lp64 && powerpc64_no_dm } }
-// { dg-prune-output ".*internal compiler error.*" }
template < typename > struct traits;
template < typename, int _Rows, int _Cols, int = 0, int = _Rows,
--- /dev/null
+/* PR71624 */
+// { dg-do compile { target i?86-*-* x86_64-*-* } }
+/* { dg-options "-fcheck-pointer-bounds -mmpx -O2" } */
+
+class c1
+{
+public:
+ virtual int fn1 () const;
+ int fn2 (const int *) const;
+};
+
+class c2
+{
+ int fn1 ();
+ c1 obj;
+};
+
+int
+c1::fn1 () const
+{
+ return 0;
+}
+
+int
+c1::fn2 (const int *) const
+{
+ return this->fn1 ();
+}
+
+int
+c2::fn1 ()
+{
+ return obj.fn2 (0);
+}
+
--- /dev/null
+// PR c++/71822
+// { dg-do compile }
+
+int bar (int);
+
+template <typename T>
+struct A
+{
+ explicit A (int x = bar (sizeof (T)));
+};
+
+struct B
+{
+ A <int> b[2];
+};
+
+void
+baz ()
+{
+ B b;
+}
--- /dev/null
+// PR c++/71748
+
+struct A
+{
+ virtual ~A () {}
+};
+
+struct B : public A
+{
+ virtual ~B () {}
+};
+
+template < int > void foo ()
+{
+ B *b = new B;
+ b->~A ();
+}
+
+int main ()
+{
+ foo < 0 > ();
+ return 0;
+}
--- /dev/null
+// PR c++/71738
+
+template < class > struct S
+{
+ template < class > struct A
+ {
+ template < class > struct B
+ {
+ template <class Z>
+ void operator=(Z) { S::i = 0; }
+ };
+ };
+
+ // Note that this friend declaration is useless, since nested classes are
+ // already friends of their enclosing class.
+ template < class X >
+ template < class Y >
+ template < class Z >
+ friend void A < X >::B < Y >::operator= (Z);
+
+private:
+ static int i;
+};
+
+int main()
+{
+ S<int>::A<int>::B<int> b;
+ b = 0;
+}
--- /dev/null
+// PR c++/70778
+
+template <class KeyType>
+struct Stuff
+{
+ template <KeyType, class>
+ struct AddToFront;
+
+ template <KeyType ToAdd, template<KeyType> class Holder, KeyType Indexs>
+ struct AddToFront<ToAdd, Holder<Indexs> >
+ {
+ };
+};
+
+template <unsigned>
+struct Holder {};
+
+int main()
+{
+ Stuff<unsigned>::AddToFront<0, Holder<24> > t;
+}
--- /dev/null
+// PR c++/71909
+// { dg-do compile { target c++11 } }
+// { dg-options "-fgnu-tm" }
+
+struct S
+{
+ S () __transaction_atomic [[outer]] try : m {0} {} catch (int) {} catch (...) {}
+ int m;
+};
+
+struct T
+{
+ T () __transaction_atomic __attribute__((outer)) try : m {0} {} catch (int) {} catch (...) {}
+ int m;
+};
+
+void foo () __transaction_atomic [[outer]] try {} catch (int) {} catch (...) {}
+void bar () __transaction_atomic __attribute__((outer)) try {} catch (int) {} catch (...) {}
--- /dev/null
+// PR middle-end/71874
+// { dg-do run }
+
+int
+main ()
+{
+ char str[] = "abcdefghijklmnopqrstuvwxyzABCDEF";
+ __builtin_memmove (str + 20, str + 15, 11);
+ if (__builtin_strcmp (str, "abcdefghijklmnopqrstpqrstuvwxyzF") != 0)
+ __builtin_abort ();
+ return 0;
+}
--- /dev/null
+/* PR c/71512 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -ftrapv -fnon-call-exceptions -fsanitize=undefined" } */
+
+bool
+foo (int *x, int *y, int *z)
+{
+ try
+ {
+ x[0] = y[0] + z[0];
+ x[1] = y[1] - z[1];
+ x[2] = y[2] * z[2];
+ x[3] = -y[3];
+ }
+ catch (...)
+ {
+ return true;
+ }
+ return false;
+}
--- /dev/null
+/* PR rtl-optimization/71916 */
+
+int a, b, c, d, f, g;
+short h;
+
+short
+foo (short p1)
+{
+ return a >= 2 || p1 > 7 >> a ? p1 : p1 << a;
+}
+
+void
+bar (void)
+{
+ for (;;)
+ {
+ int i, j[3];
+ h = b >= 2 ? d : d >> b;
+ if (foo (f > h ^ c))
+ {
+ d = 0;
+ while (f <= 2)
+ {
+ char k[2];
+ for (;;)
+ k[i++] = 7;
+ }
+ }
+ else
+ for (;;)
+ g = j[2];
+ if (g)
+ for (;;)
+ ;
+ }
+}
--- /dev/null
+static a[];
+static b, h, m, n, o, p, q, t, u, v, t5, t6, t16, t17, t18, t25;
+c;
+static volatile d;
+static volatile e;
+static volatile f;
+static volatile g;
+j;
+static volatile k;
+static volatile l;
+static volatile r;
+const volatile s;
+static volatile w;
+static volatile x;
+const volatile y;
+static volatile z;
+static volatile t1;
+static volatile t2;
+const t3;
+t4;
+const volatile t8;
+const volatile t9;
+const volatile t10;
+static volatile t11;
+static volatile t12;
+static volatile t13;
+static volatile t14;
+const volatile t15;
+static volatile t19;
+static volatile t20;
+const volatile t21;
+static volatile t22;
+static volatile t23;
+const volatile t24;
+*t29;
+fn1() { b = 5; }
+fn2(long);
+#pragma pack(1)
+struct S0 {
+ short f3;
+ float f4;
+ signed f5
+};
+const struct S0 t7[] = {};
+static fn3() {
+ int t26[] = {};
+ int t27[10] = {};
+ --t25;
+ if (fn4()) {
+ t5++;
+ fn5();
+ int t28[] = {t26, t27};
+ return;
+ }
+}
+fn6() {
+ int i, t30 = 0;
+ if (fn6 == 2)
+ t30 = 1;
+ {
+ int t31, i = 0;
+ for (; i < 256; i++) {
+ t31 = i;
+ if (i & 1)
+ t31 = 0;
+ a[i] = t31;
+ }
+ i = 0;
+ for (; i < 3; i++)
+ t29[i] = t6;
+ fn7();
+ fn3();
+ t4 = c = j = 0;
+ }
+ fn2(h);
+ if (t30)
+ printf(b);
+ g;
+ fn2(g);
+ printf(b);
+ f;
+ fn2(f);
+ if (t30)
+ printf(b);
+ e;
+ fn2(e);
+ printf(b);
+ fn8();
+ d;
+ fn2(d);
+ if (t30)
+ printf(b);
+ l;
+ fn2(l);
+ printf(b);
+ k;
+ fn2(k);
+ if (t30)
+ printf(b);
+ printf(b);
+ for (; i; i++) {
+ y;
+ fn2(y);
+ printf(b);
+ x;
+ fn2(x);
+ if (t30)
+ printf(b);
+ w;
+ fn2(w);
+ printf(b);
+ fn2(v);
+ printf(b);
+ fn2(u);
+ if (t30)
+ printf(b);
+ fn2(t);
+ printf(b);
+ s;
+ fn2(s);
+ if (t30)
+ printf(b);
+ r;
+ fn2(r);
+ printf(b);
+ fn2(q);
+ if (t30)
+ printf(b);
+ fn2(p);
+ printf("", b);
+ fn2(o);
+ printf(b);
+ fn2(n);
+ if (t30)
+ printf(b);
+ fn2(m);
+ printf(b);
+ }
+ fn2(z);
+ if (t30)
+ printf(b);
+ printf("", t3);
+ t2;
+ fn2(t2);
+ printf(b);
+ t1;
+ fn2(t1);
+ if (t30)
+ printf(b);
+ for (; i < 6; i++) {
+ t10;
+ fn2(t10);
+ printf(b);
+ t9;
+ fn2(t9);
+ if (t30)
+ printf(b);
+ t8;
+ fn2(t8);
+ printf(b);
+ fn2(t7[i].f3);
+ if (t30)
+ printf(b);
+ fn2(t7[i].f4);
+ printf(b);
+ fn2(t7[i].f5);
+ if (t30)
+ printf(b);
+ t15;
+ fn2(t15);
+ printf(b);
+ t14;
+ fn2(t14);
+ if (t30)
+ printf(b);
+ t13;
+ fn2(t13);
+ printf(b);
+ t12;
+ fn2(t12);
+ if (t30)
+ printf(b);
+ t11;
+ fn2(t11);
+ printf(b);
+ t21;
+ fn2(t21);
+ if (t30)
+ printf(b);
+ t20;
+ fn2(t20);
+ fn2(t19);
+ if (t30)
+ printf(b);
+ fn2(t18);
+ printf(b);
+ fn2(t17);
+ printf(b);
+ fn2(t16);
+ printf(b);
+ }
+ t24;
+ t24;
+ if (t30)
+ printf(b);
+ printf(t23);
+ t22;
+ t22;
+ if (t30)
+ printf(b);
+}
--- /dev/null
+/* PR tree-optimization/72824 */
+
+typedef float V __attribute__((vector_size (4 * sizeof (float))));
+
+static inline void
+foo (V *x, V value)
+{
+ int i;
+ for (i = 0; i < 32; ++i)
+ x[i] = value;
+}
+
+int
+main ()
+{
+ V x[32];
+ foo (x, (V) { 0.f, -0.f, 0.f, -0.f });
+ if (__builtin_copysignf (1.0, x[3][1]) != -1.0f)
+ __builtin_abort ();
+ return 0;
+}
--- /dev/null
+/* PR tree-optimization/72824 */
+
+static inline void
+foo (float *x, float value)
+{
+ int i;
+ for (i = 0; i < 32; ++i)
+ x[i] = value;
+}
+
+int
+main ()
+{
+ float x[32];
+ foo (x, -0.f);
+ if (__builtin_copysignf (1.0, x[3]) != -1.0f)
+ __builtin_abort ();
+ return 0;
+}
--- /dev/null
+struct lock_chain {
+ unsigned int irq_context: 2,
+ depth: 6,
+ base: 24;
+};
+
+__attribute__((noinline, noclone))
+struct lock_chain * foo (struct lock_chain *chain)
+{
+ int i;
+ for (i = 0; i < 100; i++)
+ {
+ chain[i+1].base = chain[i].base;
+ }
+ return chain;
+}
+
+struct lock_chain1 {
+ char x;
+ unsigned short base;
+} __attribute__((packed));
+
+__attribute__((noinline, noclone))
+struct lock_chain1 * bar (struct lock_chain1 *chain)
+{
+ int i;
+ for (i = 0; i < 100; i++)
+ {
+ chain[i+1].base = chain[i].base;
+ }
+ return chain;
+}
+
+struct lock_chain test [101];
+struct lock_chain1 test1 [101];
+
+int
+main ()
+{
+ foo (test);
+ bar (test1);
+ return 0;
+}
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-O0 -g -dA" } */
+
+// Test that there is only one DW_TAG_unspecified_parameters DIE.
+
+void
+foo (const char *format, ...)
+{
+}
+
+// { dg-final { scan-assembler-times "DIE.*DW_TAG_unspecified_parameters" 1 } }
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-O2 -w" } */
+
+int **a;
+static void fn1(char **p1) {
+ char s = *p1, b = &s;
+ while (*fn2()[a])
+ ;
+}
+int main() { fn1(""); return 0; }
--- /dev/null
+/* PR c/67410 */
+/* { dg-do run } */
+/* { dg-options "-std=gnu11" } */
+
+struct {
+ __CHAR16_TYPE__ s[2];
+} a[] = { u"ff", [0].s[0] = u'x', [1] = u"\u1234\u4567", [1].s[0] = u'\u89ab' };
+
+int
+main ()
+{
+ if (a[0].s[0] != u'x' || a[0].s[1] != u'f' || a[1].s[0] != u'\u89ab' || a[1].s[1] != u'\u4567')
+ __builtin_abort ();
+ return 0;
+}
--- /dev/null
+/* PR tree-optimization/71518 */
+/* { dg-options "-O3" } */
+
+int a, *b[9], c, d, e;
+
+static int
+fn1 ()
+{
+ for (c = 6; c >= 0; c--)
+ for (d = 0; d < 2; d++)
+ {
+ b[d * 2 + c] = 0;
+ e = a > 1 ? : 0;
+ if (e == 2)
+ return 0;
+ }
+ return 0;
+}
+
+int
+main ()
+{
+ fn1 ();
+ return 0;
+}
--- /dev/null
+/* PR c/72816 */
+/* { dg-do compile } */
+/* { dg-options "-std=gnu11" } */
+
+typedef const int A[];
+struct S {
+ int a;
+ A b;
+};
--- /dev/null
+/* { dg-do compile } */
+/* { dg-additional-options "-g" } */
+
+int a, b, c, d, *e, f, g;
+
+int fn1 ()
+{
+ char h[2];
+ int i = 0;
+ for (; i < 2; i++)
+ {
+ if (c)
+ for (*e = 0; *e;)
+ {
+ int j[f];
+ i = *e;
+ }
+ h[i] = 0;
+ }
+ for (; a;)
+ return h[0];
+ for (b = 0; b;)
+ i = g = (1 & i) < d;
+ return 0;
+}
--- /dev/null
+/* { dg-do run } */
+
+typedef struct { unsigned char x; } A;
+typedef struct { unsigned char x; } B;
+
+int idx = 0;
+
+A objs[1] = {{0}};
+
+int main()
+{
+ B *b = (B*)&objs[idx];
+ b->x++;
+ if (b->x)
+ b->x = 0;
+ if (b->x)
+ __builtin_abort ();
+ return 0;
+}
/* { dg-do compile } */
-/* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-details" } */
/* { dg-require-effective-target vect_double } */
struct omp_data_i
--- /dev/null
+/* PR tree-optimization/71823 */
+/* { dg-do compile } */
+/* { dg-additional-options "-mfma" { target i?86-*-* x86_64-*-* } } */
+
+float a[4], b[4];
+
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 4; ++i)
+ b[i] = __builtin_fma (1024.0f, 1024.0f, a[i]);
+ return 0;
+}
#define X8 320
#define X9 328
-#define STACK 336
+#define H0 336
+#define H1 338
+#define H2 340
+#define H3 342
+#define H4 344
+#define H5 346
+#define H6 348
+#define H7 350
+
+
+#define STACK 352
/* The type of test. 'myfunc' in abitest.S needs to know which kind of
test it is running to decide what to do at the runtime. Keep the
myfunc:
mov x16, sp
mov x17, sp
- sub sp, sp, 352 // 336 for registers and 16 for old sp and lr
+ sub sp, sp, 368 // 352 for registers and 16 for old sp and lr
+
+ sub x17, x17, 8
+ st4 { v4.h, v5.h, v6.h, v7.h }[0], [x17] //344
+ sub x17, x17, 8
+ st4 { v0.h, v1.h, v2.h, v3.h }[0], [x17] //336
stp x8, x9, [x17, #-16]! //320
FUNC_VAL_CHECK (13, vi4_t, vi4, Q0, i32in128)
FUNC_VAL_CHECK (14, int *, int_ptr, X0, flat)
FUNC_VAL_CHECK (15, vlf1_t, vlf1, Q0, flat)
+FUNC_VAL_CHECK (16, __fp16, 0xabcd, H0, flat)
#endif
ARG(double, 4.0, D1)
ARG(float, 2.0f, S2)
ARG(double, 5.0, D3)
+ ARG(__fp16, 8.0f, H4)
LAST_ARG(int, 3, W0)
#endif
--- /dev/null
+/* Test AAPCS64 layout
+
+ Test named homogeneous floating-point aggregates of __fp16 data,
+ which should be passed in SIMD/FP registers or via the stack. */
+
+/* { dg-do run { target aarch64*-*-* } } */
+
+#ifndef IN_FRAMEWORK
+#define TESTFILE "test_27.c"
+
+struct x0
+{
+ __fp16 v[1];
+} f16x1;
+
+struct x1
+{
+ __fp16 v[2];
+} f16x2;
+
+struct x2
+{
+ __fp16 v[3];
+} f16x3;
+
+#define HAS_DATA_INIT_FUNC
+void init_data ()
+{
+ f16x1.v[0] = 2.0f;
+ f16x2.v[0] = 4.0f;
+ f16x2.v[1] = 8.0f;
+ f16x3.v[0] = 16.0f;
+ f16x3.v[1] = 32.0f;
+ f16x3.v[2] = 64.0f;
+}
+
+#include "abitest.h"
+#else
+ARG (struct x0, f16x1, H0)
+ARG (struct x1, f16x2, H1)
+ARG (struct x2, f16x3, H3)
+ARG (struct x1, f16x2, H6)
+ARG (struct x0, f16x1, STACK)
+ARG (int, 0xdeadbeef, W0)
+LAST_ARG (double, 456.789, STACK+8)
+#endif
float c;
};
+struct hfa_f16x1_t
+{
+ __fp16 a;
+};
+
+struct hfa_f16x2_t
+{
+ __fp16 a;
+ __fp16 b;
+};
+
+struct hfa_f16x3_t
+{
+ __fp16 a;
+ __fp16 b;
+ __fp16 c;
+};
+
struct hfa_dx2_t
{
double a;
signed int ss_promoted = 0xffffcba9;
float fp = 65432.12345f;
double fp_promoted = (double)65432.12345f;
+__fp16 fp16 = 2.0f;
+__fp16 fp16_promoted = (double)2.0f;
#define HAS_DATA_INIT_FUNC
void init_data ()
ANON ( long double , 98765432123456789.987654321L, Q2, 12)
ANON ( vf2_t, vf2 , D3, 13)
ANON ( vi4_t, vi4 , Q4, 14)
+ /* 7.2: For unprototyped (i.e. pre- ANSI or K&R C) and variadic functions,
+ in addition to the normal conversions and promotions, arguments of
+ type __fp16 are converted to type double. */
+ ANON_PROMOTED( __fp16, fp16 , double, fp16_promoted, D5, 15)
#ifndef __AAPCS64_BIG_ENDIAN__
- LAST_ANON ( int , 0xeeee, STACK+32,15)
+ LAST_ANON ( int , 0xeeee, STACK+32,16)
#else
- LAST_ANON ( int , 0xeeee, STACK+36,15)
+ LAST_ANON ( int , 0xeeee, STACK+36,16)
#endif
#endif
--- /dev/null
+/* Test AAPCS64 layout and __builtin_va_arg.
+
+ This test is focused particularly on __fp16 unnamed homogeneous
+ floating-point aggregate types which should be passed in fp/simd
+ registers until we run out of those, then the stack. */
+
+/* { dg-do run { target aarch64*-*-* } } */
+
+#ifndef IN_FRAMEWORK
+#define AAPCS64_TEST_STDARG
+#define TESTFILE "va_arg-16.c"
+#include "type-def.h"
+
+struct hfa_f16x1_t hfa_f16x1 = {2.0f};
+struct hfa_f16x2_t hfa_f16x2 = {4.0f, 8.0f};
+struct hfa_f16x3_t hfa_f16x3 = {16.0f, 32.0f, 64.0f};
+
+#include "abitest.h"
+#else
+ ARG (int, 1, W0, LAST_NAMED_ARG_ID)
+ DOTS
+ ANON (struct hfa_f16x1_t, hfa_f16x1, H0 , 0)
+ ANON (struct hfa_f16x2_t, hfa_f16x2, H1 , 1)
+ ANON (struct hfa_f16x3_t, hfa_f16x3, H3 , 2)
+ ANON (struct hfa_f16x2_t, hfa_f16x2, H6 , 3)
+ ANON (struct hfa_f16x1_t, hfa_f16x1, STACK , 4)
+ LAST_ANON(double , 1.0 , STACK+8, 5)
+#endif
signed int ss_promoted = 0xffffcba9;
float fp = 65432.12345f;
double fp_promoted = (double)65432.12345f;
+__fp16 fp16 = 2.0f;
+__fp16 fp16_promoted = (double)2.0f;
#define HAS_DATA_INIT_FUNC
void init_data ()
ANON ( long double , 98765432123456789.987654321L, STACK+80, 20)
ANON ( vf2_t, vf2 , STACK+96, 21)
ANON ( vi4_t, vi4 , STACK+112,22)
+ ANON_PROMOTED( __fp16 , fp16 , double, fp16_promoted, STACK+128,23)
#ifndef __AAPCS64_BIG_ENDIAN__
- LAST_ANON ( int , 0xeeee, STACK+128,23)
+ LAST_ANON ( int , 0xeeee, STACK+136,24)
#else
- LAST_ANON ( int , 0xeeee, STACK+132,23)
+ LAST_ANON ( int , 0xeeee, STACK+140,24)
#endif
#endif
struct non_hfa_fffd_t non_hfa_fffd = {33.f, 34.f, 35.f, 36.0};
union hfa_union_t hfa_union;
union non_hfa_union_t non_hfa_union;
+struct hfa_f16x2_t hfa_f16x2 = {2.0f, 4.0f};
+struct hfa_f16x3_t hfa_f16x3 = {2.0f, 4.0f, 8.0f};
#define HAS_DATA_INIT_FUNC
void init_data ()
PTR_ANON (struct non_hfa_ffs_t , non_hfa_ffs , STACK+120, 18)
ANON (struct non_hfa_ffs_2_t, non_hfa_ffs_2, STACK+128, 19)
ANON (union non_hfa_union_t, non_hfa_union, STACK+144, 20)
+ /* HFA of __fp16 passed on stack, directed __fp16 test is va_arg-10.c. */
+ ANON (struct hfa_f16x2_t , hfa_f16x2 , STACK+152, 21)
+ ANON (struct hfa_f16x3_t , hfa_f16x3 , STACK+160, 22)
#ifndef __AAPCS64_BIG_ENDIAN__
- LAST_ANON(int , 2 , STACK+152, 30)
+ LAST_ANON(int , 2 , STACK+168, 30)
#else
- LAST_ANON(int , 2 , STACK+156, 30)
+ LAST_ANON(int , 2 , STACK+172, 30)
#endif
#endif
struct hfa_ldx3_t hfa_ldx3 = {123456.7890, 234567.8901, 345678.9012};
struct hfa_ffs_t hfa_ffs;
union hfa_union_t hfa_union;
+struct hfa_f16x2_t hfa_f16x2 = {2.0f, 4.0f};
+struct hfa_f16x3_t hfa_f16x3 = {2.0f, 4.0f, 8.0f};
#define HAS_DATA_INIT_FUNC
void init_data ()
ANON (struct hfa_fx1_t , hfa_fx1 , STACK+24, 4)
ANON (struct hfa_fx2_t , hfa_fx2 , STACK+32, 5)
ANON (struct hfa_dx2_t , hfa_dx2 , STACK+40, 6)
- LAST_ANON(double , 1.0 , STACK+56, 7)
+ /* HFA of __fp16 passed on stack, directed __fp16 test is va_arg-10.c. */
+ ANON (struct hfa_f16x2_t, hfa_f16x2, STACK+56, 7)
+ ANON (struct hfa_f16x3_t, hfa_f16x3, STACK+64, 8)
+ LAST_ANON(double , 1.0 , STACK+72, 9)
#endif
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-Os -ffunction-sections -fdata-sections" } */
+
+/* { dg-final { scan-assembler-not ".section .progmem.gcc_sw_table.foo.str1.1" } } */
+/* { dg-final { scan-assembler ".section .rodata.foo.str1.1,\"aMS\"" } } */
+
+
+extern void bar(const char*);
+void foo(void)
+{
+ bar("BBBBBBBBBB");
+}
--- /dev/null
+/* { dg-do run } */
+/* { dg-options "-Os -fno-tree-switch-conversion -ffunction-sections -fdata-sections" } */
+
+/* Make sure jumptables work properly if placed below 64 KB i.e. 2 byte
+ flash address for loading jump table entry, 2 byte entry, after
+ removing the special section placement hook. */
+
+#define SECTION_NAME ".foo"
+
+#include "exit-abort.h"
+#include "pr71151-common.h"
+
+int main()
+{
+ foo(5);
+ if (y != 37)
+ abort();
+
+ foo(0);
+ if (y != 67)
+ abort();
+
+ foo(7);
+ if (y != 98)
+ abort();
+}
--- /dev/null
+/* { dg-do run } */
+/* { dg-options "-Os -fno-tree-switch-conversion -ffunction-sections -mno-relax -fdata-sections -Wl,--section-start=.foo=0x10000" } */
+
+#ifdef __AVR_HAVE_ELPM__
+/* Make sure jumptables work properly if placed above 64 KB and below 128 KB,
+ i.e. 3 byte flash address for loading jump table entry and 2 byte jump table
+ entry, with relaxation disabled, after removing the special section
+ placement hook. */
+#define SECTION_NAME ".foo"
+#else
+/* No special jump table placement so that avrtest won't abort
+ for, e.g. ATmega64. */
+#define SECTION_NAME ".text.foo"
+#endif
+
+#include "exit-abort.h"
+#include "pr71151-common.h"
+
+int main()
+{
+ foo(5);
+ if (y != 37)
+ abort();
+
+ foo(0);
+ if (y != 67)
+ abort();
+
+ foo(7);
+ if (y != 98)
+ abort();
+}
--- /dev/null
+/* { dg-do run } */
+/* { dg-options "-Os -fno-tree-switch-conversion -ffunction-sections -fdata-sections -mrelax -Wl,--section-start=.foo=0x10000" } */
+
+#ifdef __AVR_HAVE_ELPM__
+/* Make sure jumptables work properly if placed above 64 KB and below 128 KB,
+ i.e. 3 byte flash address for loading jump table entry and 2 byte jump
+ table entry, with relaxation enabled, after removing the special section
+ placement hook. */
+#define SECTION_NAME ".foo"
+#else
+/* No special jump table placement so that avrtest won't abort
+ for, e.g. ATmega64. */
+#define SECTION_NAME ".text.foo"
+#endif
+
+#include "exit-abort.h"
+#include "pr71151-common.h"
+
+int main()
+{
+ foo(5);
+ if (y != 37)
+ abort();
+
+ foo(0);
+ if (y != 67)
+ abort();
+
+ foo(7);
+ if (y != 98)
+ abort();
+}
--- /dev/null
+/* { dg-do run } */
+/* { dg-options "-Os -fno-tree-switch-conversion -ffunction-sections -fdata-sections -mno-relax -Wl,--section-start=.foo=0x20000" } */
+
+#ifdef __AVR_3_BYTE_PC__
+/* Make sure jumptables work properly if placed above 128 KB, i.e. 3 byte
+ flash address for loading jump table entry and a jump table entry
+ that is a stub, with relaxation disabled, after removing the special
+ section placement hook. */
+#define SECTION_NAME ".foo"
+#else
+/* No special jump table placement so that avrtest won't abort
+ for, e.g. ATmega128. */
+#define SECTION_NAME ".text.foo"
+#endif
+
+#include "exit-abort.h"
+#include "pr71151-common.h"
+
+int main()
+{
+ foo(5);
+ if (y != 37)
+ abort();
+
+ foo(0);
+ if (y != 67)
+ abort();
+
+ foo(7);
+ if (y != 98)
+ abort();
+}
--- /dev/null
+/* { dg-do run } */
+/* { dg-options "-Os -fno-tree-switch-conversion -ffunction-sections -fdata-sections -mrelax -Wl,--section-start=.foo=0x20000" } */
+
+#ifdef __AVR_3_BYTE_PC__
+/* Make sure jumptables work properly if placed above 128 KB, i.e. 3 byte
+ flash address for loading jump table entry and a jump table entry
+ that is a stub, with relaxation enabled, after removing the special
+ section placement hook. */
+#define SECTION_NAME ".foo"
+#else
+/* No special jump table placement so that avrtest won't abort
+ for, e.g. ATmega128. */
+#define SECTION_NAME ".text.foo"
+#endif
+
+#include "exit-abort.h"
+#include "pr71151-common.h"
+
+int main()
+{
+ foo(5);
+ if (y != 37)
+ abort();
+
+ foo(0);
+ if (y != 67)
+ abort();
+
+ foo(7);
+ if (y != 98)
+ abort();
+}
--- /dev/null
+/* { dg-do run } */
+/* { dg-options "-Os -fno-tree-switch-conversion -ffunction-sections -fdata-sections -mno-relax -Wl,--section-start=.foo=0x1fffa" } */
+
+#ifdef __AVR_3_BYTE_PC__
+/* Make sure jumptables work properly if placed straddling 128 KB i.e
+ some entries below 128 KB and some above it, with relaxation disabled. */
+#define SECTION_NAME ".foo"
+#else
+/* No special jump table placement so that avrtest won't abort
+ for, e.g. ATmega128. */
+#define SECTION_NAME ".text.foo"
+#endif
+
+#include "exit-abort.h"
+#include "pr71151-common.h"
+
+int main()
+{
+ foo(5);
+ if (y != 37)
+ abort();
+
+ foo(0);
+ if (y != 67)
+ abort();
+
+ foo(7);
+ if (y != 98)
+ abort();
+}
--- /dev/null
+/* { dg-do run } */
+/* { dg-options "-Os -fno-tree-switch-conversion -ffunction-sections -fdata-sections -mrelax -Wl,--section-start=.foo=0x1fffa" } */
+
+#ifdef __AVR_3_BYTE_PC__
+/* Make sure jumptables work properly if placed straddling 128 KB i.e
+ some entries below 128 KB and some above it, with relaxation disabled. */
+#define SECTION_NAME ".foo"
+#else
+/* No special jump table placement so that avrtest won't abort. */
+#define SECTION_NAME ".text.foo"
+#endif
+
+#include "exit-abort.h"
+#include "pr71151-common.h"
+
+int main()
+{
+ foo(5);
+ if (y != 37)
+ abort();
+
+ foo(0);
+ if (y != 67)
+ abort();
+
+ foo(7);
+ if (y != 98)
+ abort();
+}
--- /dev/null
+volatile char y;
+volatile char g;
+
+__attribute__((section(SECTION_NAME)))
+void foo(char x)
+{
+ switch (x)
+ {
+ case 0:
+ y = 67; break;
+ case 1:
+ y = 20; break;
+ case 2:
+ y = 109; break;
+ case 3:
+ y = 33; break;
+ case 4:
+ y = 44; break;
+ case 5:
+ y = 37; break;
+ case 6:
+ y = 10; break;
+ case 7:
+ y = 98; break;
+ }
+ y = y + g;
+}
--- /dev/null
+/* PR target/76342 */
+/* { dg-do compile } */
+/* { dg-options "-mavx512f" } */
+
+#include <immintrin.h>
+
+__m512i
+test()
+{
+ return _mm512_undefined_epi32 ();
+}
--- /dev/null
+/* { dg-do run { target { powerpc64*-*-* && p8vector_hw } } } */
+/* { dg-options "-mfloat128 -mvsx" } */
+
+void abort ();
+
+typedef __complex float __cfloat128 __attribute__((mode(KC)));
+
+__cfloat128 divide (__cfloat128 x, __cfloat128 y)
+{
+ return x / y;
+}
+
+__cfloat128 z, a;
+
+int main ()
+{
+ z = divide (5.0q + 5.0jq, 2.0q + 1.0jq);
+ a = 3.0q + 1.0jq;
+ if (z != a)
+ abort ();
+ return 0;
+}
--- /dev/null
+/* { dg-do run { target { powerpc*-*-linux* } } } */
+/* { dg-require-effective-target ppc_float128_sw } */
+/* { dg-options "-mvsx -O2 -mfloat128" } */
+
+#include <stddef.h>
+#include <stdlib.h>
+
+#ifndef TYPE
+#define TYPE __float128
+#define NAN __builtin_nanq ("")
+#define SNAN __builtin_nansq ("")
+#else
+#define NAN __builtin_nan ("")
+#define SNAN __builtin_nans ("")
+#endif
+
+extern void check (TYPE a,
+ TYPE b,
+ int eq,
+ int ne,
+ int lt,
+ int le,
+ int gt,
+ int ge,
+ int i_lt,
+ int i_le,
+ int i_gt,
+ int i_ge,
+ int i_lg,
+ int i_un) __attribute__((__noinline__));
+
+void
+check (TYPE a,
+ TYPE b,
+ int eq,
+ int ne,
+ int lt,
+ int le,
+ int gt,
+ int ge,
+ int i_lt,
+ int i_le,
+ int i_gt,
+ int i_ge,
+ int i_lg,
+ int i_un)
+{
+ if (eq != (a == b))
+ abort ();
+
+ if (ne != (a != b))
+ abort ();
+
+ if (lt != (a < b))
+ abort ();
+
+ if (le != (a <= b))
+ abort ();
+
+ if (gt != (a > b))
+ abort ();
+
+ if (ge != (a >= b))
+ abort ();
+
+ if (i_lt != __builtin_isless (a, b))
+ abort ();
+
+ if (i_le != __builtin_islessequal (a, b))
+ abort ();
+
+ if (i_gt != __builtin_isgreater (a, b))
+ abort ();
+
+ if (i_ge != __builtin_isgreaterequal (a, b))
+ abort ();
+
+ if (i_lg != __builtin_islessgreater (a, b))
+ abort ();
+
+ if (i_un != __builtin_isunordered (a, b))
+ abort ();
+}
+
+int main (void)
+{
+ TYPE one = (TYPE) +1.0;
+ TYPE two = (TYPE) +2.0;
+ TYPE pzero = (TYPE) +0.0;
+ TYPE mzero = (TYPE) -0.0;
+ TYPE nan = (TYPE) NAN;
+ TYPE snan = (TYPE) SNAN;
+
+ check (one, two, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0);
+ check (one, one, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0);
+ check (one, pzero, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0);
+ check (mzero, pzero, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0);
+ check (nan, one, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1);
+ check (one, nan, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1);
+ check (nan, nan, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1);
+ check (snan, one, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1);
+ check (one, snan, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1);
+ check (snan, nan, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1);
+ check (nan, snan, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1);
+ return 0;
+}
--- /dev/null
+/* { dg-do run { target { powerpc64*-*-* && p8vector_hw } } } */
+/* { dg-options "-mfloat128 -mvsx" } */
+
+void abort ();
+
+typedef __complex float __cfloat128 __attribute__((mode(KC)));
+
+__cfloat128 multiply (__cfloat128 x, __cfloat128 y)
+{
+ return x * y;
+}
+
+__cfloat128 z, a;
+
+int main ()
+{
+ z = multiply (2.0q + 1.0jq, 3.0q + 1.0jq);
+ a = 5.0q + 5.0jq;
+ if (z != a)
+ abort ();
+ return 0;
+}
/* { dg-do compile { target { powerpc*-*-linux* } } } */
/* { dg-options "-O2 -pg -mprofile-kernel" } */
-/* { dg-require-effective-target powerpc64 } */
+/* { dg-require-effective-target lp64 } */
/* { dg-final { scan-assembler-not "mtlr" } } */
int foo(void)
--- /dev/null
+/* { dg-do compile { target { powerpc*-*-linux* && ilp32 } } } */
+/* { dg-options "-O2 -msvr4-struct-return" } */
+
+struct S1 { float f; };
+
+struct S1 foo1 (void)
+{
+ struct S1 s = { 1.0f };
+ return s;
+}
+
+/* { dg-final { scan-assembler "lwz" } } */
+/* { dg-final { scan-assembler-not "lfs" } } */
--- /dev/null
+/* { dg-do compile { target { powerpc*-*-linux* && ilp32 } } } */
+/* { dg-options "-O2 -msvr4-struct-return" } */
+
+struct S2 { double d; };
+
+struct S2 foo2 (void)
+{
+ struct S2 s = { 1.0 };
+ return s;
+}
+
+/* { dg-final { scan-assembler "lwz" } } */
+/* { dg-final { scan-assembler-not "lfd" } } */
--- /dev/null
+// PR target/71763
+// { dg-do compile }
+// { dg-options "-O1 -mvsx" }
+
+int a, b;
+float c;
+
+void fn2(void);
+
+void fn1(void)
+{
+ long d;
+
+ for (d = 3; d; d--) {
+ for (a = 0; a <= 1; a++) {
+ b &= 1;
+ if (b) {
+ for (;;) {
+ fn2();
+ c = d;
+ }
+ }
+ }
+ }
+}
--- /dev/null
+/* { dg-require-effective-target p9vector_hw } */
+/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } */
+/* { dg-options "-mcpu=power9 -O3 --param tree-reassoc-width=1" } */
+
+/* Originally from gcc.dg/vect/pr45752.c. */
+#include <stdarg.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern void abort (void);
+extern void exit (int);
+#ifdef __cplusplus
+}
+#endif
+
+#define M00 100
+#define M10 216
+#define M20 23
+#define M30 237
+#define M40 437
+
+#define M01 1322
+#define M11 13
+#define M21 27271
+#define M31 2280
+#define M41 284
+
+#define M02 74
+#define M12 191
+#define M22 500
+#define M32 111
+#define M42 1114
+
+#define M03 134
+#define M13 117
+#define M23 11
+#define M33 771
+#define M43 71
+
+#define M04 334
+#define M14 147
+#define M24 115
+#define M34 7716
+#define M44 16
+
+#define N 20
+
+void foo (unsigned int *__restrict__ pInput,
+ unsigned int *__restrict__ pOutput,
+ unsigned int *__restrict__ pInput2,
+ unsigned int *__restrict__ pOutput2)
+{
+ unsigned int i, a, b, c, d, e;
+
+ for (i = 0; i < N / 5; i++)
+ {
+ a = *pInput++;
+ b = *pInput++;
+ c = *pInput++;
+ d = *pInput++;
+ e = *pInput++;
+
+ *pOutput++ = M00 * a + M01 * b + M02 * c + M03 * d + M04 * e;
+ *pOutput++ = M10 * a + M11 * b + M12 * c + M13 * d + M14 * e;
+ *pOutput++ = M20 * a + M21 * b + M22 * c + M23 * d + M24 * e;
+ *pOutput++ = M30 * a + M31 * b + M32 * c + M33 * d + M34 * e;
+ *pOutput++ = M40 * a + M41 * b + M42 * c + M43 * d + M44 * e;
+
+
+ a = *pInput2++;
+ b = *pInput2++;
+ c = *pInput2++;
+ d = *pInput2++;
+ e = *pInput2++;
+
+ *pOutput2++ = M00 * a + M01 * b + M02 * c + M03 * d + M04 * e;
+ *pOutput2++ = M10 * a + M11 * b + M12 * c + M13 * d + M14 * e;
+ *pOutput2++ = M20 * a + M21 * b + M22 * c + M23 * d + M24 * e;
+ *pOutput2++ = M30 * a + M31 * b + M32 * c + M33 * d + M34 * e;
+ *pOutput2++ = M40 * a + M41 * b + M42 * c + M43 * d + M44 * e;
+
+ }
+}
+
+int main (int argc, const char* argv[])
+{
+ unsigned int input[N], output[N], i, input2[N], output2[N];
+ unsigned int check_results[N]
+ = {3208, 1334, 28764, 35679, 2789, 13028, 4754, 168364, 91254, 12399,
+ 22848, 8174, 307964, 146829, 22009, 32668, 11594, 447564, 202404, 31619 };
+ unsigned int check_results2[N]
+ = {7136, 2702, 84604, 57909, 6633, 16956, 6122, 224204, 113484, 16243,
+ 26776, 9542, 363804, 169059, 25853, 36596, 12962, 503404, 224634, 35463 };
+
+ for (i = 0; i < N; i++)
+ {
+ input[i] = i%256;
+ input2[i] = i + 2;
+ output[i] = 0;
+ output2[i] = 0;
+ __asm__ volatile ("");
+ }
+
+ foo (input, output, input2, output2);
+
+ for (i = 0; i < N; i++)
+ if (output[i] != check_results[i]
+ || output2[i] != check_results2[i])
+ abort ();
+
+ return 0;
+}
--- /dev/null
+/* { dg-do compile { target { powerpc*-*-* } } } */
+/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
+/* { dg-require-effective-target powerpc_p9vector_ok } */
+/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } */
+/* { dg-options "-mcpu=power9 -O3 -mupper-regs-df -mupper-regs-sf -funroll-loops" } */
+
+/* derived from 20021120-1.c, compiled for -mcpu=power9. */
+
+extern void abort (void);
+extern void exit (int);
+
+volatile double gd[32];
+volatile float gf[32];
+
+void
+foo (int n)
+{
+ double d00, d10, d20, d30, d01, d11, d21, d31, d02, d12, d22, d32, d03, d13,
+ d23, d33, d04, d14, d24, d34, d05, d15, d25, d35, d06, d16, d26, d36, d07,
+ d17, d27, d37;
+ float f00, f10, f20, f30, f01, f11, f21, f31, f02, f12, f22, f32, f03, f13,
+ f23, f33, f04, f14, f24, f34, f05, f15, f25, f35, f06, f16, f26, f36, f07,
+ f17, f27, f37;
+ volatile double *pd;
+ volatile float *pf;
+ int i;
+
+ pd = gd;
+ d00 = *(pd++), d10 = *(pd++), d20 = *(pd++), d30 = *(pd++), d01 =
+ *(pd++), d11 = *(pd++), d21 = *(pd++), d31 = *(pd++), d02 = *(pd++), d12 =
+ *(pd++), d22 = *(pd++), d32 = *(pd++), d03 = *(pd++), d13 = *(pd++), d23 =
+ *(pd++), d33 = *(pd++), d04 = *(pd++), d14 = *(pd++), d24 = *(pd++), d34 =
+ *(pd++), d05 = *(pd++), d15 = *(pd++), d25 = *(pd++), d35 = *(pd++), d06 =
+ *(pd++), d16 = *(pd++), d26 = *(pd++), d36 = *(pd++), d07 = *(pd++), d17 =
+ *(pd++), d27 = *(pd++), d37 = *(pd++);
+ for (i = 0; i < n; i++)
+ {
+ pf = gf;
+ f00 = *(pf++), f10 = *(pf++), f20 = *(pf++), f30 = *(pf++), f01 =
+ *(pf++), f11 = *(pf++), f21 = *(pf++), f31 = *(pf++), f02 =
+ *(pf++), f12 = *(pf++), f22 = *(pf++), f32 = *(pf++), f03 =
+ *(pf++), f13 = *(pf++), f23 = *(pf++), f33 = *(pf++), f04 =
+ *(pf++), f14 = *(pf++), f24 = *(pf++), f34 = *(pf++), f05 =
+ *(pf++), f15 = *(pf++), f25 = *(pf++), f35 = *(pf++), f06 =
+ *(pf++), f16 = *(pf++), f26 = *(pf++), f36 = *(pf++), f07 =
+ *(pf++), f17 = *(pf++), f27 = *(pf++), f37 = *(pf++);
+ pd = gd;
+ d00 += *(pd++), d10 += *(pd++), d20 += *(pd++), d30 += *(pd++), d01 +=
+ *(pd++), d11 += *(pd++), d21 += *(pd++), d31 += *(pd++), d02 +=
+ *(pd++), d12 += *(pd++), d22 += *(pd++), d32 += *(pd++), d03 +=
+ *(pd++), d13 += *(pd++), d23 += *(pd++), d33 += *(pd++), d04 +=
+ *(pd++), d14 += *(pd++), d24 += *(pd++), d34 += *(pd++), d05 +=
+ *(pd++), d15 += *(pd++), d25 += *(pd++), d35 += *(pd++), d06 +=
+ *(pd++), d16 += *(pd++), d26 += *(pd++), d36 += *(pd++), d07 +=
+ *(pd++), d17 += *(pd++), d27 += *(pd++), d37 += *(pd++);
+ pd = gd;
+ d00 += *(pd++), d10 += *(pd++), d20 += *(pd++), d30 += *(pd++), d01 +=
+ *(pd++), d11 += *(pd++), d21 += *(pd++), d31 += *(pd++), d02 +=
+ *(pd++), d12 += *(pd++), d22 += *(pd++), d32 += *(pd++), d03 +=
+ *(pd++), d13 += *(pd++), d23 += *(pd++), d33 += *(pd++), d04 +=
+ *(pd++), d14 += *(pd++), d24 += *(pd++), d34 += *(pd++), d05 +=
+ *(pd++), d15 += *(pd++), d25 += *(pd++), d35 += *(pd++), d06 +=
+ *(pd++), d16 += *(pd++), d26 += *(pd++), d36 += *(pd++), d07 +=
+ *(pd++), d17 += *(pd++), d27 += *(pd++), d37 += *(pd++);
+ pd = gd;
+ d00 += *(pd++), d10 += *(pd++), d20 += *(pd++), d30 += *(pd++), d01 +=
+ *(pd++), d11 += *(pd++), d21 += *(pd++), d31 += *(pd++), d02 +=
+ *(pd++), d12 += *(pd++), d22 += *(pd++), d32 += *(pd++), d03 +=
+ *(pd++), d13 += *(pd++), d23 += *(pd++), d33 += *(pd++), d04 +=
+ *(pd++), d14 += *(pd++), d24 += *(pd++), d34 += *(pd++), d05 +=
+ *(pd++), d15 += *(pd++), d25 += *(pd++), d35 += *(pd++), d06 +=
+ *(pd++), d16 += *(pd++), d26 += *(pd++), d36 += *(pd++), d07 +=
+ *(pd++), d17 += *(pd++), d27 += *(pd++), d37 += *(pd++);
+ pf = gf;
+ *(pf++) = f00, *(pf++) = f10, *(pf++) = f20, *(pf++) = f30, *(pf++) =
+ f01, *(pf++) = f11, *(pf++) = f21, *(pf++) = f31, *(pf++) =
+ f02, *(pf++) = f12, *(pf++) = f22, *(pf++) = f32, *(pf++) =
+ f03, *(pf++) = f13, *(pf++) = f23, *(pf++) = f33, *(pf++) =
+ f04, *(pf++) = f14, *(pf++) = f24, *(pf++) = f34, *(pf++) =
+ f05, *(pf++) = f15, *(pf++) = f25, *(pf++) = f35, *(pf++) =
+ f06, *(pf++) = f16, *(pf++) = f26, *(pf++) = f36, *(pf++) =
+ f07, *(pf++) = f17, *(pf++) = f27, *(pf++) = f37;
+ }
+ pd = gd;
+ *(pd++) = d00, *(pd++) = d10, *(pd++) = d20, *(pd++) = d30, *(pd++) =
+ d01, *(pd++) = d11, *(pd++) = d21, *(pd++) = d31, *(pd++) = d02, *(pd++) =
+ d12, *(pd++) = d22, *(pd++) = d32, *(pd++) = d03, *(pd++) = d13, *(pd++) =
+ d23, *(pd++) = d33, *(pd++) = d04, *(pd++) = d14, *(pd++) = d24, *(pd++) =
+ d34, *(pd++) = d05, *(pd++) = d15, *(pd++) = d25, *(pd++) = d35, *(pd++) =
+ d06, *(pd++) = d16, *(pd++) = d26, *(pd++) = d36, *(pd++) = d07, *(pd++) =
+ d17, *(pd++) = d27, *(pd++) = d37;
+}
+
+int
+main ()
+{
+ int i;
+
+ for (i = 0; i < 32; i++)
+ gd[i] = i, gf[i] = i;
+ foo (1);
+ for (i = 0; i < 32; i++)
+ if (gd[i] != i * 4 || gf[i] != i)
+ abort ();
+ exit (0);
+}
+
+/* { dg-final { scan-assembler-not "stxsd \[0-9\]+,\[0-9\]+,\[0-9\]" } } */
--- /dev/null
+/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
+/* { dg-skip-if "" { powerpc*-*-darwin* } } */
+/* { dg-require-effective-target powerpc_p8vector_ok } */
+/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
+/* { dg-options "-mcpu=power8 -O2 -mfloat128" } */
+
+int do_signbit_kf (__float128 a) { return __builtin_signbit (a); }
+int do_signbit_if (__ibm128 a) { return __builtin_signbit (a); }
+int do_signbit_tf (long double a) { return __builtin_signbit (a); }
+
+/* { dg-final { scan-assembler-not "stxvd2x" } } */
+/* { dg-final { scan-assembler-not "stxvw4x" } } */
+/* { dg-final { scan-assembler-not "stxsd" } } */
+/* { dg-final { scan-assembler-not "stxsdx" } } */
+/* { dg-final { scan-assembler-times "mfvsrd" 3 } } */
+/* { dg-final { scan-assembler-times "srdi" 3 } } */
--- /dev/null
+/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
+/* { dg-skip-if "" { powerpc*-*-darwin* } } */
+/* { dg-require-effective-target powerpc_p9vector_ok } */
+/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } */
+/* { dg-options "-mcpu=power9 -O2 -mfloat128" } */
+
+int do_signbit_kf (__float128 *a) { return __builtin_signbit (*a); }
+
+/* { dg-final { scan-assembler-not "stxvd2x" } } */
+/* { dg-final { scan-assembler-not "stxvw4x" } } */
+/* { dg-final { scan-assembler-not "stxsd" } } */
+/* { dg-final { scan-assembler-not "stxsdx" } } */
+/* { dg-final { scan-assembler-not "lxvd2x" } } */
+/* { dg-final { scan-assembler-not "lxvw4x" } } */
+/* { dg-final { scan-assembler-not "lxsd" } } */
+/* { dg-final { scan-assembler-not "lxsdx" } } */
+/* { dg-final { scan-assembler-times "ld" 1 } } */
+/* { dg-final { scan-assembler-times "srdi" 1 } } */
--- /dev/null
+/* { dg-do run { target { powerpc*-*-linux* } } } */
+/* { dg-require-effective-target ppc_float128_sw } */
+/* { dg-options "-mcpu=power7 -O2 -mfloat128 -lm" } */
+
+#ifdef DEBUG
+#include <stdio.h>
+#endif
+
+#include <stddef.h>
+#include <stdint.h>
+#include <inttypes.h>
+#include <stdlib.h>
+#include <math.h>
+
+#if defined(__BIG_ENDIAN__)
+struct ieee128 {
+ uint64_t upper;
+ uint64_t lower;
+};
+
+#elif defined(__LITTLE_ENDIAN__)
+struct ieee128 {
+ uint64_t lower;
+ uint64_t upper;
+};
+
+#else
+#error "Unknown system"
+#endif
+
+union ieee_union {
+ __float128 f128;
+ struct ieee128 st128;
+};
+
+#ifdef DEBUG
+static int num_errors = 0;
+
+__attribute__((__noinline__))
+static void
+failure (int expected, int got, __float128 x)
+{
+ unsigned sign;
+ unsigned exponent;
+ uint64_t mantissa1;
+ uint64_t mantissa2;
+ uint64_t upper;
+ uint64_t lower;
+
+ union ieee_union u;
+
+ u.f128 = x;
+ upper = u.st128.upper;
+ lower = u.st128.lower;
+
+ sign = (unsigned)((upper >> 63) & 1);
+ exponent = (unsigned)((upper >> 48) & ((((uint64_t)1) << 16) - 1));
+ mantissa1 = (upper & ((((uint64_t)1) << 48) - 1));
+ mantissa2 = lower;
+
+ printf ("Expected %d, got %d, %c 0x%.4x 0x%.12" PRIx64 " 0x%.16" PRIx64,
+ expected, got,
+ sign ? '-' : '+',
+ exponent,
+ mantissa1,
+ mantissa2);
+
+ num_errors++;
+}
+
+#else
+
+#define failure(E, G, F) abort ()
+#endif
+
+__attribute__((__noinline__))
+static void
+test_signbit_arg (__float128 f128, int expected)
+{
+ int sign = __builtin_signbit (f128);
+
+ if ((expected != 0 && sign == 0)
+ || (expected == 0 && sign != 0))
+ failure (f128, expected, sign);
+}
+
+__attribute__((__noinline__))
+static void
+test_signbit_mem (__float128 *ptr, int expected)
+{
+ int sign = __builtin_signbit (*ptr);
+
+ if ((expected != 0 && sign == 0)
+ || (expected == 0 && sign != 0))
+ failure (*ptr, expected, sign);
+}
+
+__attribute__((__noinline__))
+static void
+test_signbit_gpr (__float128 *ptr, int expected)
+{
+ __float128 f128 = *ptr;
+ int sign;
+
+ __asm__ (" # %0" : "+r" (f128));
+
+ sign = __builtin_signbit (f128);
+ if ((expected != 0 && sign == 0)
+ || (expected == 0 && sign != 0))
+ failure (f128, expected, sign);
+}
+
+__attribute__((__noinline__))
+static void
+test_signbit (__float128 f128, int expected)
+{
+#ifdef DEBUG
+ union ieee_union u;
+ u.f128 = f128;
+ printf ("Expecting %d, trying %-5g "
+ "(0x%.16" PRIx64 " 0x%.16" PRIx64 ")\n",
+ expected, (double)f128,
+ u.st128.upper, u.st128.lower);
+#endif
+
+ test_signbit_arg (f128, expected);
+ test_signbit_mem (&f128, expected);
+ test_signbit_gpr (&f128, expected);
+}
+
+int
+main (void)
+{
+ union ieee_union u;
+
+ test_signbit (+0.0q, 0);
+ test_signbit (+1.0q, 0);
+
+ test_signbit (-0.0q, 1);
+ test_signbit (-1.0q, 1);
+
+ test_signbit (__builtin_copysign (__builtin_infq (), +1.0q), 0);
+ test_signbit (__builtin_copysign (__builtin_infq (), -1.0q), 1);
+
+ test_signbit (__builtin_copysign (__builtin_nanq (""), +1.0q), 0);
+ test_signbit (__builtin_copysign (__builtin_nanq (""), -1.0q), 1);
+
+ /* force the bottom double word to have specific bits in the 'sign' bit to
+ make sure we are picking the right word. */
+ u.f128 = 1.0q;
+ u.st128.lower = 0ULL;
+ test_signbit (u.f128, 0);
+
+ u.st128.lower = ~0ULL;
+ test_signbit (u.f128, 0);
+
+ u.f128 = -1.0q;
+ u.st128.lower = 0ULL;
+ test_signbit (u.f128, 1);
+
+ u.st128.lower = ~0ULL;
+ test_signbit (u.f128, 1);
+
+#ifdef DEBUG
+ printf ("%d error(s) were found\n", num_errors);
+ if (num_errors)
+ return num_errors;
+#endif
+
+ return 0;
+}
+
--- /dev/null
+/* Make sure the compiler does not try to use a relative long
+ instruction to load the string since it might not meet the
+ alignment requirements of the instruction. */
+
+/* { dg-do compile } */
+/* { dg-options "-march=z10 -O3 -mzarch" } */
+
+extern void foo (char*);
+
+void
+bar ()
+{
+ unsigned char z[32];
+
+ __builtin_memcpy (z, "\001\000\000\000", 4);
+ foo (z);
+}
+
+/* { dg-final { scan-assembler-not "lrl" } } */
--- /dev/null
+! { dg-do run }
+
+! Check that PR72698 is fixed.
+! Contributed by Gerhard Steinmetz
+
+module m
+contains
+ integer function f()
+ f = 4
+ end
+end
+program p
+ use m
+ character(3), parameter :: c = 'abc'
+ character(:), allocatable :: z
+ allocate (z, source=repeat(c(2:1), f()))
+ if (len(z) /= 0) call abort()
+ if (z /= "") call abort()
+end
+
+
--- /dev/null
+! { dg-do compile }
+
+! Check fix for pr71936.
+! Contributed by Gerhard Steinmetz
+
+program p
+ type t
+ end type
+
+ call test2()
+ call test4()
+ call test1()
+ call test3()
+contains
+ function f_p()
+ class(t), pointer :: f_p(:)
+ nullify(f_p)
+ end
+
+ function f_a()
+ class(t), allocatable :: f_a(:)
+ end
+
+ subroutine test1()
+ class(t), allocatable :: x(:)
+ allocate (x, mold=f_a())
+ deallocate (x)
+ allocate (x, source=f_a())
+ end subroutine
+
+ subroutine test2()
+ class(t), pointer :: x(:)
+ allocate (x, mold=f_p())
+ deallocate (x)
+ allocate (x, source=f_p())
+ end
+
+ subroutine test3()
+ class(t), pointer :: x(:)
+ allocate (x, mold=f_a())
+ deallocate (x)
+ allocate (x, source=f_a())
+ end
+
+ subroutine test4()
+ class(t), allocatable :: x(:)
+ allocate (x, mold=f_p())
+ deallocate (x)
+ allocate (x, source=f_p())
+ end subroutine
+end
+
--- /dev/null
+! { dg-do run }
+! PR 71795 - wrong result when putting an array constructor
+! instide an iterator.
+ program test
+
+ implicit none
+ integer :: i,n
+ logical, dimension(1) :: ra
+ logical :: rs
+ integer, allocatable :: a(:)
+
+ allocate ( a(1) )
+
+ n = 1
+ a = 2
+
+ ra = (/ (any(a(i).eq.(/1,2,3/)) ,i=1,n) /)
+ if (.not. all(ra)) call abort
+ rs = any ( (/ (any(a(i).eq.(/1,2,3/)) ,i=1,n) /) )
+ if (.not. rs) call abort
+ end program test
--- /dev/null
+!{ dg-do run }
+
+! Check fix for PR fortran/71623
+
+program allocatemvce
+ implicit none
+ character(len=:), allocatable :: string
+ integer, dimension(4), target :: array = [1,2,3,4]
+ integer, dimension(:), pointer :: array_ptr
+ array_ptr => array
+ ! The allocate used to segfault
+ allocate(character(len=size(array_ptr))::string)
+end program allocatemvce
--- /dev/null
+! { dg-do compile }
+! { dg-options "-frepack-arrays -Warray-temporaries -O" }
+
+! Same as dependency_35 but with repack-arrays
+
+module foo
+ implicit none
+contains
+ pure function bar(i,j) ! { dg-warning "Creating array temporary at \\(1\\)" }
+ integer, intent(in) :: i,j
+ integer, dimension(2,2) :: bar
+ bar = 33
+ end function bar
+end module foo
+
+program main
+ use foo
+ implicit none
+ integer a(2,2), b(2,2),c(2,2), d(2,2), e(2)
+
+ read (*,*) b, c, d
+ a = matmul(b,c) + d
+ a = b + bar(3,4)
+ a = bar(3,4)*5 + b
+ e = sum(b,1) + 3
+end program main
-! { dg-additional-options "-fdump-tree-original -std=f2008" }
+! { dg-additional-options "-fdump-tree-original -fdump-tree-gimple -std=f2008" }
! test for tree-dump-original and spaces-commas
! { dg-final { scan-tree-dump-times "private\\(m\\)" 1 "original" } }
! { dg-final { scan-tree-dump-times "reduction\\(\\+:sum\\)" 1 "original" } }
+! { dg-final { scan-tree-dump-times "map\\(tofrom:sum \\\[len: \[0-9\]+\\\]\\)" 1 "gimple" } }
--- /dev/null
+! PR middle-end/71758
+
+subroutine pr71758 (p)
+ integer(8) :: i
+ integer :: p(20)
+ i = 0
+ !$omp target device(i)
+ !$omp end target
+ !$omp target update to(p(1:1)) device(i)
+end subroutine
--- /dev/null
+! { dg-do run }
+! PR71123 Namelist read failure on Windows
+ implicit none
+ integer :: i, ierr
+ real(8), dimension(30) :: senid, res
+ character(2) :: crlf = char(13) // char(10)
+ namelist /fith/ senid
+ do i=1,30
+ res(i) = i
+ enddo
+ senid = 99.0
+ open(unit=7,file='test.out',form='formatted',
+ * status='new',action='readwrite', access='stream')
+ write(7,'(a)') "&fith" // crlf
+ write(7,'(a)') "senid= 1.0 , 2.0 , 3.0 , 4.0 , 5.0 ," // crlf
+ write(7,'(a)') "6.0 , 7.0 , 8.0 , 9.0 , 10.0 , 11.0 ," // crlf
+ write(7,'(a)') "12.0 , 13.0 , 14.0 , 15.0 , 16.0 , 17.0 ," // crlf
+ write(7,'(a)') "18.0 , 19.0 , 20.0 , 21.0 , 22.0 , 23.0 ," // crlf
+ write(7,'(a)') "24.0 , 25.0 , 26.0 , 27.0 , 28.0 , 29.0 ," // crlf
+ write(7,'(a)') "30.0 ," // crlf
+ write(7,'(a)') "/" // crlf
+ close(7)
+ open(unit=7,file='test.out',form='formatted')
+ read(7,nml=fith, iostat=ierr)
+ close(7, status="delete")
+ if (ierr.ne.0) call abort
+ if (any(senid.ne.res)) call abort
+ end
--- /dev/null
+! { dg-do run }
+
+MODULE fold_convert_loc_ice
+ IMPLICIT NONE
+ PRIVATE
+
+ TYPE, PUBLIC :: ta
+ PRIVATE
+ INTEGER :: a_comp
+ END TYPE ta
+
+ TYPE, PUBLIC :: tb
+ TYPE(ta), ALLOCATABLE :: b_comp
+ END TYPE tb
+
+ PUBLIC :: proc
+CONTAINS
+ SUBROUTINE proc
+ TYPE(tb) :: b
+
+ b = tb(null())
+ if (allocated( b%b_comp )) call abort()
+ END SUBROUTINE proc
+END MODULE fold_convert_loc_ice
+
+ USE fold_convert_loc_ice
+
+ call proc()
+END
+
--- /dev/null
+! { dg-do compile }
+! PR 70040 - used to cause an ICE.
+! Test case by Martin Reinecke
+program bugrep
+ implicit none
+ type :: string
+ character (len=:), allocatable :: s
+ end type
+
+ integer l
+ type(string), allocatable, dimension(:) :: foo
+ character(len=:),allocatable ::tmp
+ allocate(foo(20))
+ do l= 1, 20
+ tmp = foo(5)%s
+ foo(5)%s = foo(l)%s
+ foo(l)%s = tmp
+ enddo
+end program
--- /dev/null
+! { dg-do compile }
+! { dg-options "-fcoarray=lib" }
+
+program p
+ call s
+contains
+ subroutine s
+ real :: x[*] = 1
+ block
+ end block
+ x = 2
+ end
+end
--- /dev/null
+! { dg-do run }
+! PR71764
+program p
+ use iso_c_binding, only: c_ptr, c_null_ptr, c_ptr, c_associated, c_loc
+ logical, target :: rls
+ real, target :: t = 3.14
+ type(c_ptr) :: nullptr,c
+ real, pointer :: k
+ nullptr = c_null_ptr
+ c = nullptr
+ rls = c_associated(c)
+ if (rls) call abort
+ if (c_associated(c)) call abort
+ c = c_loc(rls)
+ if (.not. c_associated(c)) call abort
+ c = nullptr
+ if (c_associated(c)) call abort
+ c = c_loc(t)
+ k => t
+ call association_test(k, c)
+contains
+ subroutine association_test(a,b)
+ use iso_c_binding, only: c_associated, c_loc, c_ptr
+ implicit none
+ real, pointer :: a
+ type(c_ptr) :: b
+ if(c_associated(b, c_loc(a))) then
+ return
+ else
+ call abort
+ end if
+ end subroutine association_test
+end
+
--- /dev/null
+! { dg-do compile }
+!
+! Test the fix for pr71883, in which an ICE would follow the error.
+!
+! Contributed by Gerhard Steinmetz <gerhard.steinmetz.fortran@t-online.de>
+!
+program p
+ character(3), allocatable :: z(:,:)
+ z(1:2,1:2) = 'abc'
+ z(2,1) = z(12) ! { dg-error "Rank mismatch in array reference" }
+ z(21) = z(1,2) ! { dg-error "Rank mismatch in array reference" }
+contains
+ subroutine a
+ character(3), allocatable :: z(:,:)
+ z(1:2,1:2) = 'abc'
+ z(2,1) = z(-1) ! { dg-error "Rank mismatch in array reference" }
+ z(2,1) = z(99) ! { dg-error "Rank mismatch in array reference" }
+ z(2,1) = z(huge(0)) ! { dg-error "Rank mismatch in array reference" }
+ z(2,1) = z(-huge(0)) ! { dg-error "Rank mismatch in array reference" }
+ z(-1) = z(2,1) ! { dg-error "Rank mismatch in array reference" }
+ z(99) = z(2,1) ! { dg-error "Rank mismatch in array reference" }
+ z(huge(0)) = z(2,1) ! { dg-error "Rank mismatch in array reference" }
+ z(-huge(0)) = z(2,1) ! { dg-error "Rank mismatch in array reference" }
+ end subroutine
+
+ subroutine b
+ character(:), allocatable :: z(:,:)
+ z(1:2,1:2) = 'abc'
+ z(2,1) = z(-1) ! { dg-error "Rank mismatch in array reference" }
+ z(2,1) = z(99) ! { dg-error "Rank mismatch in array reference" }
+ z(2,1) = z(huge(0)) ! { dg-error "Rank mismatch in array reference" }
+ z(2,1) = z(-huge(0)) ! { dg-error "Rank mismatch in array reference" }
+ z(-1) = z(2,1) ! { dg-error "Rank mismatch in array reference" }
+ z(99) = z(2,1) ! { dg-error "Rank mismatch in array reference" }
+ z(huge(0)) = z(2,1) ! { dg-error "Rank mismatch in array reference" }
+ z(-huge(0)) = z(2,1) ! { dg-error "Rank mismatch in array reference" }
+ end subroutine
+end
--- /dev/null
+! { dg-do run }
+!
+! Contributed by Nathanael Huebbe
+! Check fix for PR/70842
+
+program foo
+
+ TYPE, ABSTRACT :: t_Intermediate
+ END TYPE t_Intermediate
+
+ type, extends(t_Intermediate) :: t_Foo
+ character(:), allocatable :: string
+ end type t_Foo
+
+ class(t_Foo), allocatable :: obj
+
+ allocate(obj)
+ obj%string = "blabarfoo"
+
+ call bar(obj)
+
+ deallocate(obj)
+contains
+ subroutine bar(me)
+ class(t_Intermediate), target :: me
+
+ class(*), pointer :: alias
+
+ select type(me)
+ type is(t_Foo)
+ if (len(me%string) /= 9) call abort()
+ end select
+
+ alias => me
+ select type(alias)
+ type is(t_Foo)
+ if (len(alias%string) /= 9) call abort()
+ end select
+ end subroutine bar
+end program foo
+
--- /dev/null
+-- { dg-do run }
+-- { dg-options "-O3" }
+-- PR tree-optimization/71083
+with Loop_Optimization23_Pkg;
+use Loop_Optimization23_Pkg;
+procedure Loop_Optimization23 is
+ Test : ArrayOfStructB;
+begin
+ Test (0).b.b := 9999;
+ Foo (Test);
+ if Test (100).b.b /= 9999 then
+ raise Program_Error;
+ end if;
+end;
--- /dev/null
+-- { dg-do compile }
+-- { dg-options "-O3" }
+-- PR tree-optimization/71083
+package body Loop_Optimization23_Pkg is
+ procedure Foo (X : in out ArrayOfStructB) is
+ begin
+ for K in 0..99 loop
+ X (K+1).b.b := X (K).b.b;
+ end loop;
+ end Foo;
+end Loop_Optimization23_Pkg;
--- /dev/null
+-- PR tree-optimization/71083
+package Loop_Optimization23_Pkg is
+ type Nibble is mod 2**4;
+ type Int24 is mod 2**24;
+ type StructA is record
+ a : Nibble;
+ b : Int24;
+ end record;
+ pragma Pack(StructA);
+ type StructB is record
+ a : Nibble;
+ b : StructA;
+ end record;
+ pragma Pack(StructB);
+ type ArrayOfStructB is array(0..100) of StructB;
+ procedure Foo (X : in out ArrayOfStructB);
+end Loop_Optimization23_Pkg;
DEFTIMEVAR (TV_PARSE_INLINE , "parser inl. func. body")
DEFTIMEVAR (TV_PARSE_INMETH , "parser inl. meth. body")
DEFTIMEVAR (TV_TEMPLATE_INST , "template instantiation")
+DEFTIMEVAR (TV_CONSTRAINT_SAT , "constraint satisfaction")
+DEFTIMEVAR (TV_CONSTRAINT_SUB , "constraint subsumption")
DEFTIMEVAR (TV_FLATTEN_INLINING , "flatten inlining")
DEFTIMEVAR (TV_EARLY_INLINING , "early inlining heuristics")
DEFTIMEVAR (TV_INLINE_PARAMETERS , "inline parameters")
m_timer->push (m_tv);
}
+ explicit auto_timevar (timevar_id_t tv)
+ : m_timer (g_timer)
+ , m_tv (tv)
+ {
+ if (m_timer)
+ m_timer->push (m_tv);
+ }
+
~auto_timevar ()
{
if (m_timer)
int i, len;
if (integer_zerop (val)
- || real_zerop (val)
|| (TREE_CODE (val) == CONSTRUCTOR
&& !TREE_CLOBBER_P (val)
&& CONSTRUCTOR_NELTS (val) == 0))
return 0;
+ if (real_zerop (val))
+ {
+ /* Only return 0 for +0.0, not for -0.0, which doesn't have
+ an all bytes same memory representation. Don't transform
+ -0.0 stores into +0.0 even for !HONOR_SIGNED_ZEROS. */
+ switch (TREE_CODE (val))
+ {
+ case REAL_CST:
+ if (!real_isneg (TREE_REAL_CST_PTR (val)))
+ return 0;
+ break;
+ case COMPLEX_CST:
+ if (!const_with_all_bytes_same (TREE_REALPART (val))
+ && !const_with_all_bytes_same (TREE_IMAGPART (val)))
+ return 0;
+ break;
+ case VECTOR_CST:
+ unsigned int j;
+ for (j = 0; j < VECTOR_CST_NELTS (val); ++j)
+ if (const_with_all_bytes_same (VECTOR_CST_ELT (val, j)))
+ break;
+ if (j == VECTOR_CST_NELTS (val))
+ return 0;
+ break;
+ default:
+ break;
+ }
+ }
+
if (CHAR_BIT != 8 || BITS_PER_UNIT != 8)
return -1;
cancel_loop_tree (loop);
rescan_loop_exit (exit, false, true);
- for (i = 0; i < nbbs; i++)
+ i = nbbs;
+ do
{
/* We have made sure to not leave any dangling uses of SSA
names defined in the loop. With the exception of virtuals.
Make sure we replace all uses of virtual defs that will remain
outside of the loop with the bare symbol as delete_basic_block
will release them. */
+ --i;
for (gphi_iterator gsi = gsi_start_phis (bbs[i]); !gsi_end_p (gsi);
gsi_next (&gsi))
{
}
delete_basic_block (bbs[i]);
}
+ while (i != 0);
+
free (bbs);
set_immediate_dominator (CDI_DOMINATORS, dest,
unsigned int *stack, *tos;
};
-static const unsigned HOST_WIDE_INT unknown[4] = { -1, -1, 0, 0 };
+static const unsigned HOST_WIDE_INT unknown[4] = {
+ HOST_WIDE_INT_M1U,
+ HOST_WIDE_INT_M1U,
+ 0,
+ 0
+};
static tree compute_object_offset (const_tree, const_tree);
static unsigned HOST_WIDE_INT addr_object_size (struct object_size_info *,
#include "tree-scalar-evolution.h"
#include "params.h"
#include "tree-affine.h"
+#include "builtins.h"
/* The maximum number of iterations between the considered memory
references. */
addr = force_gimple_operand_1 (unshare_expr (addr), stmts,
is_gimple_mem_ref_addr, NULL_TREE);
tree alias_ptr = fold_convert (reference_alias_ptr_type (DR_REF (dr)), coff);
+ tree type = build_aligned_type (TREE_TYPE (DR_REF (dr)),
+ get_object_alignment (DR_REF (dr)));
/* While data-ref analysis punts on bit offsets it still handles
bitfield accesses at byte boundaries. Cope with that. Note that
we cannot simply re-apply the outer COMPONENT_REF because the
{
tree field = TREE_OPERAND (DR_REF (dr), 1);
return build3 (BIT_FIELD_REF, TREE_TYPE (DR_REF (dr)),
- build2 (MEM_REF, DECL_BIT_FIELD_TYPE (field),
- addr, alias_ptr),
+ build2 (MEM_REF, type, addr, alias_ptr),
DECL_SIZE (field), bitsize_zero_node);
}
else
- return fold_build2 (MEM_REF, TREE_TYPE (DR_REF (dr)), addr, alias_ptr);
+ return fold_build2 (MEM_REF, type, addr, alias_ptr);
}
/* Get the initialization expression for the INDEX-th temporary variable
{
auto_vec<vn_reference_op_s, 32> tem;
copy_reference_ops_from_ref (TREE_OPERAND (addr, 0), &tem);
+ /* Make sure to preserve TBAA info. The only objects not
+ wrapped in MEM_REFs that can have their address taken are
+ STRING_CSTs. */
+ if (tem.length () >= 2
+ && tem[tem.length () - 2].opcode == MEM_REF)
+ {
+ vn_reference_op_t new_mem_op = &tem[tem.length () - 2];
+ new_mem_op->op0 = fold_convert (TREE_TYPE (mem_op->op0),
+ new_mem_op->op0);
+ }
+ else
+ gcc_assert (tem.last ().opcode == STRING_CST);
ops->pop ();
ops->pop ();
ops->safe_splice (tem);
tree base, base_addr;
tree misalign = NULL_TREE;
tree aligned_to;
+ tree step;
unsigned HOST_WIDE_INT alignment;
if (dump_enabled_p ())
DR_VECT_AUX (dr)->base_element_aligned = true;
}
+ if (loop && nested_in_vect_loop_p (loop, stmt))
+ step = STMT_VINFO_DR_STEP (stmt_info);
+ else
+ step = DR_STEP (dr);
/* If this is a backward running DR then first access in the larger
vectype actually is N-1 elements before the address in the DR.
Adjust misalign accordingly. */
- if (tree_int_cst_sgn (DR_STEP (dr)) < 0)
+ if (tree_int_cst_sgn (step) < 0)
{
tree offset = ssize_int (TYPE_VECTOR_SUBPARTS (vectype) - 1);
/* DR_STEP(dr) is the same as -TYPE_SIZE of the scalar type,
otherwise we wouldn't be here. */
- offset = fold_build2 (MULT_EXPR, ssizetype, offset, DR_STEP (dr));
- /* PLUS because DR_STEP was negative. */
+ offset = fold_build2 (MULT_EXPR, ssizetype, offset, step);
+ /* PLUS because STEP was negative. */
misalign = size_binop (PLUS_EXPR, misalign, offset);
}
vect_get_vec_defs (op0, NULL_TREE, stmt, &vec_oprnds0, NULL,
slp_node, -1);
if (op_type == ternary_op)
- {
- vec_oprnds2.create (1);
- vec_oprnds2.quick_push (vect_get_vec_def_for_operand (op2,
- stmt));
- }
+ vect_get_vec_defs (op2, NULL_TREE, stmt, &vec_oprnds2, NULL,
+ slp_node, -1);
}
else
{
? IFN_UBSAN_CHECK_SUB
: IFN_UBSAN_CHECK_MUL, 2, a, b);
gimple_call_set_lhs (g, lhs);
- gsi_replace (&gsi, g, false);
+ gsi_replace (&gsi, g, true);
break;
case NEGATE_EXPR:
/* Represent i = -u;
b = gimple_assign_rhs1 (stmt);
g = gimple_build_call_internal (IFN_UBSAN_CHECK_SUB, 2, a, b);
gimple_call_set_lhs (g, lhs);
- gsi_replace (&gsi, g, false);
+ gsi_replace (&gsi, g, true);
break;
case ABS_EXPR:
/* Transform i = ABS_EXPR<u>;
{
basic_block bb;
gimple_stmt_iterator gsi;
+ unsigned int ret = 0;
initialize_sanitizer_builtins ();
gsi_next (&gsi);
}
+ if (gimple_purge_dead_eh_edges (bb))
+ ret = TODO_cleanup_cfg;
}
- return 0;
+ return ret;
}
} // anon namespace
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-04-27 Release Manager
* GCC 6.1.0 released.
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-04-27 Release Manager
* GCC 6.1.0 released.
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-04-27 Release Manager
* GCC 6.1.0 released.
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-04-27 Release Manager
* GCC 6.1.0 released.
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-04-27 Release Manager
* GCC 6.1.0 released.
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
Backport from mainline:
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-05-18 Uros Bizjak <ubizjak@gmail.com>
PR target/71161
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-04-27 Release Manager
* GCC 6.1.0 released.
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-05-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Backport from mainline
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-04-27 Release Manager
* GCC 6.1.0 released.
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-06-03 Joseph Myers <joseph@codesourcery.com>
* sr.po: Update.
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-04-27 Release Manager
* GCC 6.1.0 released.
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-05-23 Thomas Schwinge <thomas@codesourcery.com>
Backport trunk r236594:
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
+2016-07-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ Backport from mainline
+ 2016-07-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ * config/rs6000/_divkc3.c: Add copyright/license boilerplate.
+ * config/rs6000/_mulkc3.c: Likewise.
+
+2016-07-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ Backport from mainline
+ 2016-07-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ * config/rs6000/_divkc3.c: New.
+ * config/rs6000/_mulkc3.c: New.
+ * config/rs6000/quad-float128.h: Define TFtype; declare _mulkc3
+ and _divkc3.
+ * config/rs6000/t-float128: Add _mulkc3 and _divkc3 to
+ fp128_ppc_funcs.
+
2016-05-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
Backport from mainline
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-04-27 Release Manager
* GCC 6.1.0 released.
--- /dev/null
+/* Copyright (C) 1989-2016 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.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+<http://www.gnu.org/licenses/>. */
+
+/* This is a temporary specialization of code from libgcc/libgcc2.c. */
+
+typedef float KFtype __attribute__ ((mode (KF)));
+typedef __complex float KCtype __attribute__ ((mode (KC)));
+
+#define COPYSIGN(x,y) __builtin_copysignq (x, y)
+#define INFINITY __builtin_infq ()
+#define FABS __builtin_fabsq
+#define isnan __builtin_isnan
+#define isinf __builtin_isinf
+#define isfinite __builtin_isfinite
+
+KCtype
+__divkc3 (KFtype a, KFtype b, KFtype c, KFtype d)
+{
+ KFtype denom, ratio, x, y;
+ KCtype res;
+
+ /* ??? We can get better behavior from logarithmic scaling instead of
+ the division. But that would mean starting to link libgcc against
+ libm. We could implement something akin to ldexp/frexp as gcc builtins
+ fairly easily... */
+ if (FABS (c) < FABS (d))
+ {
+ ratio = c / d;
+ denom = (c * ratio) + d;
+ x = ((a * ratio) + b) / denom;
+ y = ((b * ratio) - a) / denom;
+ }
+ else
+ {
+ ratio = d / c;
+ denom = (d * ratio) + c;
+ x = ((b * ratio) + a) / denom;
+ y = (b - (a * ratio)) / denom;
+ }
+
+ /* Recover infinities and zeros that computed as NaN+iNaN; the only cases
+ are nonzero/zero, infinite/finite, and finite/infinite. */
+ if (isnan (x) && isnan (y))
+ {
+ if (c == 0.0 && d == 0.0 && (!isnan (a) || !isnan (b)))
+ {
+ x = COPYSIGN (INFINITY, c) * a;
+ y = COPYSIGN (INFINITY, c) * b;
+ }
+ else if ((isinf (a) || isinf (b)) && isfinite (c) && isfinite (d))
+ {
+ a = COPYSIGN (isinf (a) ? 1 : 0, a);
+ b = COPYSIGN (isinf (b) ? 1 : 0, b);
+ x = INFINITY * (a * c + b * d);
+ y = INFINITY * (b * c - a * d);
+ }
+ else if ((isinf (c) || isinf (d)) && isfinite (a) && isfinite (b))
+ {
+ c = COPYSIGN (isinf (c) ? 1 : 0, c);
+ d = COPYSIGN (isinf (d) ? 1 : 0, d);
+ x = 0.0 * (a * c + b * d);
+ y = 0.0 * (b * c - a * d);
+ }
+ }
+
+ __real__ res = x;
+ __imag__ res = y;
+ return res;
+}
--- /dev/null
+/* Copyright (C) 1989-2016 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.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+<http://www.gnu.org/licenses/>. */
+
+/* This is a temporary specialization of code from libgcc/libgcc2.c. */
+
+typedef float KFtype __attribute__ ((mode (KF)));
+typedef __complex float KCtype __attribute__ ((mode (KC)));
+
+#define COPYSIGN(x,y) __builtin_copysignq (x, y)
+#define INFINITY __builtin_infq ()
+#define isnan __builtin_isnan
+#define isinf __builtin_isinf
+
+KCtype
+__mulkc3 (KFtype a, KFtype b, KFtype c, KFtype d)
+{
+ KFtype ac, bd, ad, bc, x, y;
+ KCtype res;
+
+ ac = a * c;
+ bd = b * d;
+ ad = a * d;
+ bc = b * c;
+
+ x = ac - bd;
+ y = ad + bc;
+
+ if (isnan (x) && isnan (y))
+ {
+ /* Recover infinities that computed as NaN + iNaN. */
+ _Bool recalc = 0;
+ if (isinf (a) || isinf (b))
+ {
+ /* z is infinite. "Box" the infinity and change NaNs in
+ the other factor to 0. */
+ a = COPYSIGN (isinf (a) ? 1 : 0, a);
+ b = COPYSIGN (isinf (b) ? 1 : 0, b);
+ if (isnan (c)) c = COPYSIGN (0, c);
+ if (isnan (d)) d = COPYSIGN (0, d);
+ recalc = 1;
+ }
+ if (isinf (c) || isinf (d))
+ {
+ /* w is infinite. "Box" the infinity and change NaNs in
+ the other factor to 0. */
+ c = COPYSIGN (isinf (c) ? 1 : 0, c);
+ d = COPYSIGN (isinf (d) ? 1 : 0, d);
+ if (isnan (a)) a = COPYSIGN (0, a);
+ if (isnan (b)) b = COPYSIGN (0, b);
+ recalc = 1;
+ }
+ if (!recalc
+ && (isinf (ac) || isinf (bd)
+ || isinf (ad) || isinf (bc)))
+ {
+ /* Recover infinities from overflow by changing NaNs to 0. */
+ if (isnan (a)) a = COPYSIGN (0, a);
+ if (isnan (b)) b = COPYSIGN (0, b);
+ if (isnan (c)) c = COPYSIGN (0, c);
+ if (isnan (d)) d = COPYSIGN (0, d);
+ recalc = 1;
+ }
+ if (recalc)
+ {
+ x = INFINITY * (a * c - b * d);
+ y = INFINITY * (a * d + b * c);
+ }
+ }
+
+ __real__ res = x;
+ __imag__ res = y;
+ return res;
+}
+
This define forces it to use KFmode (aka, ieee 128-bit floating point). */
#define TF KF
+/* We also need TCtype to represent complex ieee 128-bit float for
+ __mulkc3 and __divkc3. */
+typedef __complex float TCtype __attribute__ ((mode (KC)));
+
/* Force the use of the VSX instruction set. */
#if defined(_ARCH_PPC) && (!defined(__VSX__) || !defined(__FLOAT128__))
#pragma GCC target ("vsx,float128")
extern IBM128_TYPE __extendkftf2 (TFtype);
extern TFtype __trunctfkf2 (IBM128_TYPE);
+/* Complex __float128 built on __float128 interfaces. */
+extern TCtype __mulkc3 (TFtype, TFtype, TFtype, TFtype);
+extern TCtype __divkc3 (TFtype, TFtype, TFtype, TFtype);
+
/* Implementation of conversions between __ibm128 and __float128, to allow the
same code to be used on systems with IEEE 128-bit emulation and with IEEE
128-bit hardware support. */
# New functions for software emulation
fp128_ppc_funcs = floattikf floatuntikf fixkfti fixunskfti \
extendkftf2-sw trunctfkf2-sw \
- sfp-exceptions
+ sfp-exceptions _mulkc3 _divkc3
fp128_ppc_src = $(addprefix $(srcdir)/config/rs6000/,$(addsuffix \
.c,$(fp128_ppc_funcs)))
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
+2016-08-11 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ Backport from trunk
+ PR libgfortran/71123
+ PR libgfortran/73142
+ * io/list_read (eat_spaces): Eat '\r' as part of spaces.
+
2016-04-27 Release Manager
* GCC 6.1.0 released.
/* Now skip spaces, EOF and EOL are handled in next_char. */
do
c = next_char (dtp);
- while (c != EOF && (c == ' ' || c == '\t'));
+ while (c != EOF && (c == ' ' || c == '\r' || c == '\t'));
unget_char (dtp, c);
return c;
func (tools gccgoToolchain) ld(b *builder, root *action, out string, allactions []*action, mainpkg string, ofiles []string) error {
// gccgo needs explicit linking with all package dependencies,
// and all LDFLAGS from cgo dependencies.
- apackagesSeen := make(map[*Package]bool)
+ apackagePathsSeen := make(map[string]bool)
afiles := []string{}
shlibs := []string{}
- xfiles := []string{}
ldflags := b.gccArchArgs()
cgoldflags := []string{}
usesCgo := false
if err != nil {
return err
}
+ const ldflagsPrefix = "_CGO_LDFLAGS="
for _, line := range strings.Split(string(flags), "\n") {
- if strings.HasPrefix(line, "_CGO_LDFLAGS=") {
- cgoldflags = append(cgoldflags, strings.Fields(line[13:])...)
+ if strings.HasPrefix(line, ldflagsPrefix) {
+ newFlags := strings.Fields(line[len(ldflagsPrefix):])
+ for _, flag := range newFlags {
+ // Every _cgo_flags file has -g and -O2 in _CGO_LDFLAGS
+ // but they don't mean anything to the linker so filter
+ // them out.
+ if flag != "-g" && !strings.HasPrefix(flag, "-O") {
+ cgoldflags = append(cgoldflags, flag)
+ }
+ }
}
}
return nil
// rather than the 'build' location (which may not exist any
// more). We still need to traverse the dependencies of the
// build action though so saying
- // if apackagesSeen[a.p] { return }
+ // if apackagePathsSeen[a.p.ImportPath] { return }
// doesn't work.
- if !apackagesSeen[a.p] {
- apackagesSeen[a.p] = true
+ if !apackagePathsSeen[a.p.ImportPath] {
+ apackagePathsSeen[a.p.ImportPath] = true
target := a.target
if len(a.p.CgoFiles) > 0 {
target, err = readAndRemoveCgoFlags(target)
return
}
}
- if a.p.fake && a.p.external {
- // external _tests, if present must come before
- // internal _tests. Store these on a separate list
- // and place them at the head after this loop.
- xfiles = append(xfiles, target)
- } else if a.p.fake {
- // move _test files to the top of the link order
- afiles = append([]string{target}, afiles...)
- } else {
- afiles = append(afiles, target)
- }
+ afiles = append(afiles, target)
}
}
if strings.HasSuffix(a.target, ".so") {
return err
}
}
- afiles = append(xfiles, afiles...)
for _, a := range allactions {
// Gather CgoLDFLAGS, but not from standard packages.
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
+2016-08-18 Chung-Lin Tang <cltang@codesourcery.com>
+
+ Backport from mainline
+ 2016-08-18 Chung-Lin Tang <cltang@codesourcery.com>
+
+ PR middle-end/70895
+ * testsuite/libgomp.oacc-fortran/reduction-7.f90: Add explicit
+ firstprivate clauses.
+ * testsuite/libgomp.oacc-fortran/reduction-6.f90: Remove explicit
+ copy clauses.
+ * testsuite/libgomp.oacc-c-c++-common/reduction-7.c: Likewise.
+ * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c: Likewise.
+ * testsuite/libgomp.oacc-c-c++-common/reduction-flt.c: Likewise.
+ * testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
+ * testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Likewise.
+ * testsuite/libgomp.oacc-c-c++-common/collapse-4.c: Likewise.
+ * testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c: Likewise.
+ * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: Likewise.
+ * testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c: Likewise.
+ * testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Likewise.
+ * testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c: Likewise.
+ * testsuite/libgomp.oacc-c-c++-common/reduction-dbl.c: Likewise.
+
2016-07-02 Jakub Jelinek <jakub@redhat.com>
Backported from mainline
int i, j, k, l = 0, f = 0, x = 0;
int m1 = 4, m2 = -5, m3 = 17;
-#pragma acc parallel copy(l)
+#pragma acc parallel
#pragma acc loop seq collapse(3) reduction(+:l)
for (i = -2; i < m1; i++)
for (j = m2; j < -2; j++)
memset (b, '\0', sizeof (b));
-#pragma acc parallel copy(b[0:3][0:3]) copy(l)
+#pragma acc parallel copy(b[0:3][0:3])
{
#pragma acc loop collapse(2) reduction(+:l)
for (i = 0; i < 2; i++)
int ondev = 0;
int t = 0, h = 0;
-#pragma acc parallel num_gangs(32) vector_length(32) copy(t) copy(ondev)
+#pragma acc parallel num_gangs(32) vector_length(32) copy(ondev)
{
#pragma acc loop gang reduction (+:t)
for (unsigned ix = 0; ix < N; ix++)
int ondev = 0;
int t = 0, h = 0;
-#pragma acc parallel num_gangs(32) num_workers(32) vector_length(32) copy(t) copy(ondev)
+#pragma acc parallel num_gangs(32) num_workers(32) vector_length(32) copy(ondev)
{
#pragma acc loop gang worker vector reduction(+:t)
for (unsigned ix = 0; ix < N; ix++)
int ondev = 0;
int t = 0, h = 0;
-#pragma acc parallel vector_length(32) copy(t) copy(ondev)
+#pragma acc parallel vector_length(32) copy(ondev)
{
#pragma acc loop vector reduction (+:t)
for (unsigned ix = 0; ix < N; ix++)
int ondev = 0;
int t = 0, h = 0;
-#pragma acc parallel num_workers(32) vector_length(32) copy(t) copy(ondev)
+#pragma acc parallel num_workers(32) vector_length(32) copy(ondev)
{
#pragma acc loop worker reduction(+:t)
for (unsigned ix = 0; ix < N; ix++)
int ondev = 0;
int t = 0, h = 0;
-#pragma acc parallel num_workers(32) vector_length(32) copy(t) copy(ondev)
+#pragma acc parallel num_workers(32) vector_length(32) copy(ondev)
{
#pragma acc loop worker vector reduction (+:t)
for (unsigned ix = 0; ix < N; ix++)
for (i = 0; i < 1024; i++)
arr[i] = i;
- #pragma acc parallel num_gangs(32) num_workers(32) vector_length(32) \
- copy(res)
+ #pragma acc parallel num_gangs(32) num_workers(32) vector_length(32)
{
#pragma acc loop gang reduction(+:res)
for (i = 0; i < 1024; i++)
res = hres = 1;
- #pragma acc parallel num_gangs(32) num_workers(32) vector_length(32) \
- copy(res)
+ #pragma acc parallel num_gangs(32) num_workers(32) vector_length(32)
{
#pragma acc loop gang reduction(*:res)
for (i = 0; i < 12; i++)
for (i = 0; i < 1024; i++)
arr[i] = i;
- #pragma acc parallel num_gangs(32) num_workers(32) vector_length(32) \
- copy(res)
+ #pragma acc parallel num_gangs(32) num_workers(32) vector_length(32)
{
#pragma acc loop gang vector reduction(+:res)
for (i = 0; i < 1024; i++)
for (i = 0; i < 1024; i++)
arr[i] = i;
- #pragma acc parallel num_gangs(32) num_workers(32) vector_length(32) \
- copy(res)
+ #pragma acc parallel num_gangs(32) num_workers(32) vector_length(32)
{
#pragma acc loop gang worker reduction(+:res)
for (i = 0; i < 1024; i++)
for (i = 0; i < 1024; i++)
arr[i] = i;
- #pragma acc parallel num_gangs(32) num_workers(32) vector_length(32) \
- copy(res)
+ #pragma acc parallel num_gangs(32) num_workers(32) vector_length(32)
{
#pragma acc loop gang worker vector reduction(+:res)
for (i = 0; i < 1024; i++)
for (i = 0; i < 32768; i++)
arr[i] = i;
- #pragma acc parallel num_gangs(32) num_workers(32) vector_length(32) \
- copy(res)
+ #pragma acc parallel num_gangs(32) num_workers(32) vector_length(32)
{
#pragma acc loop gang reduction(+:res)
for (j = 0; j < 32; j++)
arr[i] = i;
#pragma acc parallel num_gangs(32) num_workers(32) vector_length(32) \
- copyin(arr) copy(res)
+ copyin(arr)
{
#pragma acc loop gang reduction(+:res)
for (j = 0; j < 32; j++)
for (i = 0; i < 32768; i++)
arr[i] = i;
- #pragma acc parallel num_gangs(32) num_workers(32) vector_length(32) \
- copy(res, mres)
+ #pragma acc parallel num_gangs(32) num_workers(32) vector_length(32)
{
#pragma acc loop gang reduction(+:res) reduction(max:mres)
for (j = 0; j < 32; j++)
{
Type tsum = 0, tprod = 1;
-#pragma acc parallel vector_length(32) copyin(ary[0:N]) copy (tsum, tprod)
+#pragma acc parallel vector_length(32) copyin(ary[0:N])
{
#pragma acc loop vector reduction(+:tsum) reduction (*:tprod)
for (int ix = 0; ix < N; ix++)
{
Type tsum = 0, tprod = 1;
-#pragma acc parallel num_workers(32) copyin(ary[0:N]) copy (tsum, tprod)
+#pragma acc parallel num_workers(32) copyin(ary[0:N])
{
#pragma acc loop worker reduction(+:tsum) reduction (*:tprod)
for (int ix = 0; ix < N; ix++)
{
Type tsum = 0, tprod = 1;
-#pragma acc parallel num_gangs (32) copyin(ary[0:N]) copy (tsum, tprod)
+#pragma acc parallel num_gangs (32) copyin(ary[0:N])
{
#pragma acc loop gang reduction(+:tsum) reduction (*:tprod)
for (int ix = 0; ix < N; ix++)
{
Type tsum = 0, tprod = 1;
-#pragma acc parallel vector_length(32) copyin(ary[0:N]) copy (tsum, tprod)
+#pragma acc parallel vector_length(32) copyin(ary[0:N])
{
#pragma acc loop vector reduction(+:tsum) reduction (*:tprod)
for (int ix = 0; ix < N; ix++)
{
Type tsum = 0, tprod = 1;
-#pragma acc parallel num_workers(32) copyin(ary[0:N]) copy (tsum, tprod)
+#pragma acc parallel num_workers(32) copyin(ary[0:N])
{
#pragma acc loop worker reduction(+:tsum) reduction (*:tprod)
for (int ix = 0; ix < N; ix++)
{
Type tsum = 0, tprod = 1;
-#pragma acc parallel num_gangs (32) copyin(ary[0:N]) copy (tsum, tprod)
+#pragma acc parallel num_gangs (32) copyin(ary[0:N])
{
#pragma acc loop gang reduction(+:tsum) reduction (*:tprod)
for (int ix = 0; ix < N; ix++)
{
Type tsum = 0, tprod = 1;
-#pragma acc parallel vector_length(32) copyin(ary[0:N]) copy (tsum, tprod)
+#pragma acc parallel vector_length(32) copyin(ary[0:N])
{
#pragma acc loop vector reduction(+:tsum) reduction (*:tprod)
for (int ix = 0; ix < N; ix++)
{
Type tsum = 0, tprod = 1;
-#pragma acc parallel num_workers(32) copyin(ary[0:N]) copy (tsum, tprod)
+#pragma acc parallel num_workers(32) copyin(ary[0:N])
{
#pragma acc loop worker reduction(+:tsum) reduction (*:tprod)
for (int ix = 0; ix < N; ix++)
{
Type tsum = 0, tprod = 1;
-#pragma acc parallel num_gangs (32) copyin(ary[0:N]) copy (tsum, tprod)
+#pragma acc parallel num_gangs (32) copyin(ary[0:N])
{
#pragma acc loop gang reduction(+:tsum) reduction (*:tprod)
for (int ix = 0; ix < N; ix++)
{
Type tsum = 0, tprod = 1;
-#pragma acc parallel vector_length(32) copyin(ary[0:N]) copy (tsum, tprod)
+#pragma acc parallel vector_length(32) copyin(ary[0:N])
{
#pragma acc loop vector reduction(+:tsum) reduction (*:tprod)
for (int ix = 0; ix < N; ix++)
{
Type tsum = 0, tprod = 1;
-#pragma acc parallel num_workers(32) copyin(ary[0:N]) copy (tsum, tprod)
+#pragma acc parallel num_workers(32) copyin(ary[0:N])
{
#pragma acc loop worker reduction(+:tsum) reduction (*:tprod)
for (int ix = 0; ix < N; ix++)
{
Type tsum = 0, tprod = 1;
-#pragma acc parallel num_gangs (32) copyin(ary[0:N]) copy (tsum, tprod)
+#pragma acc parallel num_gangs (32) copyin(ary[0:N])
{
#pragma acc loop gang reduction(+:tsum) reduction (*:tprod)
for (int ix = 0; ix < N; ix++)
hs1 = 0
hs2 = 0
- !$acc parallel num_gangs (1000) copy(gs1, gs2)
+ !$acc parallel num_gangs (1000)
!$acc loop reduction(+:gs1, gs2) gang
do i = 1, n
gs1 = gs1 + 1
end do
!$acc end parallel
- !$acc parallel num_workers (4) vector_length (32) copy(ws1, ws2)
+ !$acc parallel num_workers (4) vector_length (32)
!$acc loop reduction(+:ws1, ws2) worker
do i = 1, n
ws1 = ws1 + 1
end do
!$acc end parallel
- !$acc parallel vector_length (32) copy(vs1, vs2)
+ !$acc parallel vector_length (32)
!$acc loop reduction(+:vs1, vs2) vector
do i = 1, n
vs1 = vs1 + 1
end do
!$acc end parallel
- !$acc parallel num_gangs(8) num_workers(4) vector_length(32) copy(cs1, cs2)
+ !$acc parallel num_gangs(8) num_workers(4) vector_length(32)
!$acc loop reduction(+:cs1, cs2) gang worker vector
do i = 1, n
cs1 = cs1 + 1
red = 0
vred = 0
- !$acc parallel num_gangs(10) vector_length(32) copy(red)
+ !$acc parallel num_gangs(10) vector_length(32)
!$acc loop reduction(+:red) gang
do i = 1, n/chunksize
!$acc loop reduction(+:red) vector
end subroutine redsub_private
-! Bogus reduction on an impliclitly firstprivate variable. The results do
+! Bogus reduction on a firstprivate variable. The results do
! survive the parallel region. The goal here is to ensure that gfortran
! doesn't ICE.
integer :: sum, n, arr(n)
integer :: i
- !$acc parallel
+ !$acc parallel firstprivate(sum)
!$acc loop gang worker vector reduction (+:sum)
do i = 1, n
sum = sum + 1
integer :: sum, n, arr(n)
integer :: i, j
- !$acc parallel copy (arr)
+ !$acc parallel copy (arr) firstprivate(sum)
!$acc loop gang
do i = 1, n
sum = i;
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
+2016-07-21 Jason Merrill <jason@redhat.com>
+
+ * cp-demangle.c (cplus_demangle_operators): Add f[lrLR].
+ (d_expression_1): Handle them.
+ (d_maybe_print_fold_expression): New.
+ (d_print_comp_inner): Use it.
+ (d_index_template_argument): Handle negative index.
+
+ * cp-demangle.c (cplus_demangle_operators): Add sP and sZ.
+ (d_print_comp_inner): Handle them.
+ (d_template_args_1): Split out from d_template_args.
+ (d_args_length): New.
+
2016-05-19 Jakub Jelinek <jakub@redhat.com>
Backported from mainline
/* Set to 1 if we saw a demangling error. */
int demangle_failure;
/* The current index into any template argument packs we are using
- for printing. */
+ for printing, or -1 to print the whole pack. */
int pack_index;
/* Number of d_print_flush calls so far. */
unsigned long int flush_count;
d_template_param (struct d_info *);
static struct demangle_component *d_template_args (struct d_info *);
+static struct demangle_component *d_template_args_1 (struct d_info *);
static struct demangle_component *
d_template_arg (struct d_info *);
{ "eO", NL ("^="), 2 },
{ "eo", NL ("^"), 2 },
{ "eq", NL ("=="), 2 },
+ { "fL", NL ("..."), 3 },
+ { "fR", NL ("..."), 3 },
+ { "fl", NL ("..."), 2 },
+ { "fr", NL ("..."), 2 },
{ "ge", NL (">="), 2 },
{ "gs", NL ("::"), 1 },
{ "gt", NL (">"), 2 },
{ "rc", NL ("reinterpret_cast"), 2 },
{ "rm", NL ("%"), 2 },
{ "rs", NL (">>"), 2 },
+ { "sP", NL ("sizeof..."), 1 },
+ { "sZ", NL ("sizeof..."), 1 },
{ "sc", NL ("static_cast"), 2 },
{ "st", NL ("sizeof "), 1 },
{ "sz", NL ("sizeof "), 1 },
static struct demangle_component *
d_template_args (struct d_info *di)
{
+ if (d_peek_char (di) != 'I'
+ && d_peek_char (di) != 'J')
+ return NULL;
+ d_advance (di, 1);
+
+ return d_template_args_1 (di);
+}
+
+/* <template-arg>* E */
+
+static struct demangle_component *
+d_template_args_1 (struct d_info *di)
+{
struct demangle_component *hold_last_name;
struct demangle_component *al;
struct demangle_component **pal;
constructor or destructor. */
hold_last_name = di->last_name;
- if (d_peek_char (di) != 'I'
- && d_peek_char (di) != 'J')
- return NULL;
- d_advance (di, 1);
-
if (d_peek_char (di) == 'E')
{
/* An argument pack can be empty. */
if (op->type == DEMANGLE_COMPONENT_CAST
&& d_check_char (di, '_'))
operand = d_exprlist (di, 'E');
+ else if (code && !strcmp (code, "sP"))
+ operand = d_template_args_1 (di);
else
operand = d_expression_1 (di);
return NULL;
if (op_is_new_cast (op))
left = cplus_demangle_type (di);
+ else if (code[0] == 'f')
+ /* fold-expression. */
+ left = d_operator_name (di);
else
left = d_expression_1 (di);
if (!strcmp (code, "cl"))
second = d_expression_1 (di);
third = d_expression_1 (di);
}
+ else if (code[0] == 'f')
+ {
+ /* fold-expression. */
+ first = d_operator_name (di);
+ second = d_expression_1 (di);
+ third = d_expression_1 (di);
+ }
else if (code[0] == 'n')
{
/* new-expression. */
}
/* Returns the I'th element of the template arglist ARGS, or NULL on
- failure. */
+ failure. If I is negative, return the entire arglist. */
static struct demangle_component *
d_index_template_argument (struct demangle_component *args, int i)
{
struct demangle_component *a;
+ if (i < 0)
+ /* Print the whole argument pack. */
+ return args;
+
for (a = args;
a != NULL;
a = d_right (a))
return count;
}
+/* Returns the number of template args in DC, expanding any pack expansions
+ found there. */
+
+static int
+d_args_length (struct d_print_info *dpi, const struct demangle_component *dc)
+{
+ int count = 0;
+ for (; dc && dc->type == DEMANGLE_COMPONENT_TEMPLATE_ARGLIST;
+ dc = d_right (dc))
+ {
+ struct demangle_component *elt = d_left (dc);
+ if (elt == NULL)
+ break;
+ if (elt->type == DEMANGLE_COMPONENT_PACK_EXPANSION)
+ {
+ struct demangle_component *a = d_find_pack (dpi, d_left (elt));
+ count += d_pack_length (a);
+ }
+ else
+ ++count;
+ }
+ return count;
+}
+
/* DC is a component of a mangled expression. Print it, wrapped in parens
if needed. */
return NULL;
}
+/* If DC is a C++17 fold-expression, print it and return true; otherwise
+ return false. */
+
+static int
+d_maybe_print_fold_expression (struct d_print_info *dpi, int options,
+ const struct demangle_component *dc)
+{
+ const struct demangle_component *ops, *operator_, *op1, *op2;
+ int save_idx;
+
+ const char *fold_code = d_left (dc)->u.s_operator.op->code;
+ if (fold_code[0] != 'f')
+ return 0;
+
+ ops = d_right (dc);
+ operator_ = d_left (ops);
+ op1 = d_right (ops);
+ op2 = 0;
+ if (op1->type == DEMANGLE_COMPONENT_TRINARY_ARG2)
+ {
+ op2 = d_right (op1);
+ op1 = d_left (op1);
+ }
+
+ /* Print the whole pack. */
+ save_idx = dpi->pack_index;
+ dpi->pack_index = -1;
+
+ switch (fold_code[1])
+ {
+ /* Unary left fold, (... + X). */
+ case 'l':
+ d_append_string (dpi, "(...");
+ d_print_expr_op (dpi, options, operator_);
+ d_print_subexpr (dpi, options, op1);
+ d_append_char (dpi, ')');
+ break;
+
+ /* Unary right fold, (X + ...). */
+ case 'r':
+ d_append_char (dpi, '(');
+ d_print_subexpr (dpi, options, op1);
+ d_print_expr_op (dpi, options, operator_);
+ d_append_string (dpi, "...)");
+ break;
+
+ /* Binary left fold, (42 + ... + X). */
+ case 'L':
+ /* Binary right fold, (X + ... + 42). */
+ case 'R':
+ d_append_char (dpi, '(');
+ d_print_subexpr (dpi, options, op1);
+ d_print_expr_op (dpi, options, operator_);
+ d_append_string (dpi, "...");
+ d_print_expr_op (dpi, options, operator_);
+ d_print_subexpr (dpi, options, op2);
+ d_append_char (dpi, ')');
+ break;
+ }
+
+ dpi->pack_index = save_idx;
+ return 1;
+}
+
/* Subroutine to handle components. */
static void
}
}
+ /* For sizeof..., just print the pack length. */
+ if (code && !strcmp (code, "sZ"))
+ {
+ struct demangle_component *a = d_find_pack (dpi, operand);
+ int len = d_pack_length (a);
+ d_append_num (dpi, len);
+ return;
+ }
+ else if (code && !strcmp (code, "sP"))
+ {
+ int len = d_args_length (dpi, operand);
+ d_append_num (dpi, len);
+ return;
+ }
+
if (op->type != DEMANGLE_COMPONENT_CAST)
d_print_expr_op (dpi, options, op);
else
return;
}
+ if (d_maybe_print_fold_expression (dpi, options, dc))
+ return;
+
/* We wrap an expression which uses the greater-than operator in
an extra layer of parens so that it does not get confused
with the '>' which ends the template parameters. */
d_print_error (dpi);
return;
}
+ if (d_maybe_print_fold_expression (dpi, options, dc))
+ return;
{
struct demangle_component *op = d_left (dc);
struct demangle_component *first = d_left (d_right (dc));
--format=gnu-v3
_Z3fooI1FEN1XIXszdtcl1PclcvT__EEE5arrayEE4TypeEv
X<sizeof ((P(((F)())())).array)>::Type foo<F>()
+
+_Z1fIJidEEv1AIXsZT_EE
+void f<int, double>(A<2>)
+
+_ZN1A1fIJiiEiJiiiEEEvRAsPDpT_T0_DpT1_E_iS3_S5_
+void A::f<int, int, int, int, int, int>(int (&) [6], int, int, int, int)
+
+_Z10unary_leftIJLi1ELi2ELi3EEEv1AIXflplT_EE
+void unary_left<1, 2, 3>(A<(...+(1, 2, 3))>)
+
+_Z11unary_rightIJLi1ELi2ELi3EEEv1AIXfrplT_EE
+void unary_right<1, 2, 3>(A<((1, 2, 3)+...)>)
+
+_Z11binary_leftIJLi1ELi2ELi3EEEv1AIXfLplLi42ET_EE
+void binary_left<1, 2, 3>(A<((42)+...+(1, 2, 3))>)
+
+_Z12binary_rightIJLi1ELi2ELi3EEEv1AIXfRplT_Li42EEE
+void binary_right<1, 2, 3>(A<((1, 2, 3)+...+(42))>)
#
# Tests a use-after-free problem PR70481
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-04-27 Release Manager
* GCC 6.1.0 released.
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-04-29 Dominique d'Humieres <dominiq@lps.ens.fr>
backport from trunk:
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-04-27 Release Manager
* GCC 6.1.0 released.
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-04-27 Release Manager
* GCC 6.1.0 released.
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-06-10 Ilya Enkovich <ilya.enkovich@intel.com>
Backport from mainline r237292.
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-04-27 Release Manager
* GCC 6.1.0 released.
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-04-27 Release Manager
* GCC 6.1.0 released.
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-04-27 Release Manager
* GCC 6.1.0 released.
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
+2016-08-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR sanitizer/71042
+ * tsan/tsan_platform_linux.cc: Cherry-pick upstream r278292.
+ * tsan/tsan_rtl_aarch64.S: Likewise.
+
2016-05-18 Jakub Jelinek <jakub@redhat.com>
Backported from mainline
void *__libc_stack_end = 0;
#endif
+#if SANITIZER_LINUX && defined(__aarch64__)
+void InitializeGuardPtr() __attribute__((visibility("hidden")));
+#endif
+
namespace __tsan {
static uptr g_data_start;
SetAddressSpaceUnlimited();
reexec = true;
}
+#if SANITIZER_LINUX && defined(__aarch64__)
+ // Initialize the guard pointer used in {sig}{set,long}jump.
+ InitializeGuardPtr();
+#endif
if (reexec)
ReExec();
}
#include "sanitizer_common/sanitizer_asm.h"
+
+.section .bss
+.type __tsan_pointer_chk_guard, %object
+.size __tsan_pointer_chk_guard, 8
+__tsan_pointer_chk_guard:
+.zero 8
+
+.section .text
+
+// GLIBC mangles the function pointers in jmp_buf (used in {set,long}*jmp
+// functions) by XORing them with a random guard pointer. For AArch64 it is a
+// global variable rather than a TCB one (as for x86_64/powerpc) and althought
+// its value is exported by the loader, it lies within a private GLIBC
+// namespace (meaning it should be only used by GLIBC itself and the ABI is
+// not stable). So InitializeGuardPtr obtains the pointer guard value by
+// issuing a setjmp and checking the resulting pointers values against the
+// original ones.
+.hidden _Z18InitializeGuardPtrv
+.global _Z18InitializeGuardPtrv
+.type _Z18InitializeGuardPtrv, @function
+_Z18InitializeGuardPtrv:
+ CFI_STARTPROC
+ // Allocates a jmp_buf for the setjmp call.
+ stp x29, x30, [sp, -336]!
+ CFI_DEF_CFA_OFFSET (336)
+ CFI_OFFSET (29, -336)
+ CFI_OFFSET (30, -328)
+ add x29, sp, 0
+ CFI_DEF_CFA_REGISTER (29)
+ add x0, x29, 24
+
+ // Call libc setjmp that mangle the stack pointer value
+ adrp x1, :got:_ZN14__interception12real__setjmpE
+ ldr x1, [x1, #:got_lo12:_ZN14__interception12real__setjmpE]
+ ldr x1, [x1]
+ blr x1
+
+ // glibc setjmp mangles both the frame pointer (FP, pc+4 on blr) and the
+ // stack pointer (SP). FP will be placed on ((uintptr*)jmp_buf)[11] and
+ // SP at ((uintptr*)jmp_buf)[13].
+ // The mangle operation is just 'value' xor 'pointer guard value' and
+ // if we know the original value (SP) and the expected one, we can derive
+ // the guard pointer value.
+ mov x0, sp
+
+ // Loads the mangled SP pointer.
+ ldr x1, [x29, 128]
+ eor x0, x0, x1
+ adrp x2, __tsan_pointer_chk_guard
+ str x0, [x2, #:lo12:__tsan_pointer_chk_guard]
+ ldp x29, x30, [sp], 336
+ CFI_RESTORE (30)
+ CFI_RESTORE (19)
+ CFI_DEF_CFA (31, 0)
+ ret
+ CFI_ENDPROC
+.size _Z18InitializeGuardPtrv, .-_Z18InitializeGuardPtrv
+
.hidden __tsan_setjmp
.comm _ZN14__interception11real_setjmpE,8,8
.type setjmp, @function
mov x19, x0
// SP pointer mangling (see glibc setjmp)
- adrp x2, :got:__pointer_chk_guard
- ldr x2, [x2, #:got_lo12:__pointer_chk_guard]
+ adrp x2, __tsan_pointer_chk_guard
+ ldr x2, [x2, #:lo12:__tsan_pointer_chk_guard]
add x0, x29, 32
- ldr x2, [x2]
eor x1, x2, x0
// call tsan interceptor
mov x19, x0
// SP pointer mangling (see glibc setjmp)
- adrp x2, :got:__pointer_chk_guard
- ldr x2, [x2, #:got_lo12:__pointer_chk_guard]
+ adrp x2, __tsan_pointer_chk_guard
+ ldr x2, [x2, #:lo12:__tsan_pointer_chk_guard]
add x0, x29, 32
- ldr x2, [x2]
eor x1, x2, x0
// call tsan interceptor
mov x19, x0
// SP pointer mangling (see glibc setjmp)
- adrp x2, :got:__pointer_chk_guard
- ldr x2, [x2, #:got_lo12:__pointer_chk_guard]
+ adrp x2, __tsan_pointer_chk_guard
+ ldr x2, [x2, #:lo12:__tsan_pointer_chk_guard]
add x0, x29, 32
- ldr x2, [x2]
eor x1, x2, x0
// call tsan interceptor
mov x19, x0
// SP pointer mangling (see glibc setjmp)
- adrp x2, :got:__pointer_chk_guard
- ldr x2, [x2, #:got_lo12:__pointer_chk_guard]
+ adrp x2, __tsan_pointer_chk_guard
+ ldr x2, [x2, #:lo12:__tsan_pointer_chk_guard]
add x0, x29, 32
- ldr x2, [x2]
eor x1, x2, x0
// call tsan interceptor
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-04-27 Release Manager
* GCC 6.1.0 released.
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
+2016-08-06 Jonathan Wakely <jwakely@redhat.com>
+
+ Backport from mainline
+ 2016-08-05 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/functional (function::_Callable): Use lvalue in
+ result_of expression.
+ * testsuite/20_util/function/cons/refqual.cc: New test.
+
+ Backport from mainline
+ 2016-07-22 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/71964
+ * include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&)): Move allocator.
+ * testsuite/23_containers/set/allocator/71964.cc: New test.
+
+ Backport from mainline
+ 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
+ Remove reundant check for _GLIBCXX_USE_WCHAR_T and fix char type.
+ * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
+ Likewise.
+
+ Backport from mainline
+ 2016-05-04 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/70940
+ * include/experimental/memory_resource
+ (__resource_adaptor_imp::do_allocate): Do not default-construct
+ rebound allocator.
+ (__resource_adaptor_imp::do_deallocate): Likewise. Use
+ allocator_traits to get pointer type.
+ (__null_memory_resource::do_allocate): Remove unused parameters.
+ (__null_memory_resource::do_deallocate): Likewise.
+ (__null_memory_resource::do_is_equal): Likewise. Add return statement.
+ * testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
+ * testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
+ move to ...
+ * testsuite/experimental/memory_resource/1.cc: Here.
+ * testsuite/experimental/memory_resource/null_memory_resource.cc: New.
+ * testsuite/experimental/memory_resource/resource_adaptor.cc: New.
+
+ Backport from mainline
+ 2016-08-03 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
+ Define feature-test macro.
+ * include/std/shared_mutex (__cpp_lib_shared_mutex): Uncomment.
+ * include/std/type_traits (__cpp_lib_logical_traits): Fix value.
+
+ Backport from mainline
+ 2016-08-03 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/stl_function.h: Remove commented-out macro.
+ * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
+ Define feature-test macro.
+ * testsuite/experimental/feat-cxx14.cc: Add tests for more macros.
+
+ * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve
+ comments.
+
+ * doc/xml/manual/status_cxx2011.xml: Change "mainline GCC SVN" to
+ refer to the release series.
+ * doc/xml/manual/status_cxx2014.xml: Likewise. Update TS status.
+ * doc/xml/manual/status_cxx2017.xml: Likewise.
+ * doc/html/manual/status.html: Regenerate.
+
+ * include/experimental/propagate_const (propagate_const::__t): Rename
+ to _M_t and remove comment. Qualify std::move and std::forward.
+ * testsuite/experimental/propagate_const/cons/default.cc: Fix test.
+
+2016-08-02 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/lib/libstdc++.exp (v3-build_support): Add
+ -fno-lto to additional flags for compiling libtestc++.a objects.
+
+2016-07-29 Jonathan Wakely <jwakely@redhat.com>
+
+ * doc/xml/manual/abi.xml: Document 6.0.22 library version.
+ * doc/html/manual/abi.html: Regenerate.
+
+2016-07-19 Jonathan Wakely <jwakely@redhat.com>
+
+ Backport from mainline
+ 2016-07-14 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/experimental/functional: Include <parallel/algorithm> in
+ Parallel Mode.
+
+ Backport from mainline
+ 2016-07-14 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/experimental/functional/searchers.cc: Include <algorithm>
+ for std::search.
+
+ PR libstdc++/71856
+ * include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty.
+ * include/parallel/balanced_quicksort.h: Include <unistd.h> for sleep.
+ * include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS):
+ Do not define here.
+
+ Backport from mainline
+ 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/71320
+ * src/filesystem/ops.cc (permissions(const path&, perms, error_code&)):
+ Add or remove permissions according to perms argument.
+ * testsuite/experimental/filesystem/operations/permissions.cc: New
+ test.
+
2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
Implement LWG 2451, optional<T> should 'forward' T's
GLIBCPP_3.2 for symbols that were introduced in the GCC 3.2.0
release.) If a particular release is not listed, it has the same
version labels as the preceding release.
- </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>GCC 3.0.0: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.1: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.2: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.3: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.4: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.1.0: GLIBCPP_3.1, CXXABI_1</p></li><li class="listitem"><p>GCC 3.1.1: GLIBCPP_3.1, CXXABI_1</p></li><li class="listitem"><p>GCC 3.2.0: GLIBCPP_3.2, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.2.1: GLIBCPP_3.2.1, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.2.2: GLIBCPP_3.2.2, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.2.3: GLIBCPP_3.2.2, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.3.0: GLIBCPP_3.2.2, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.3.1: GLIBCPP_3.2.3, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.3.2: GLIBCPP_3.2.3, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.3.3: GLIBCPP_3.2.3, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.4.0: GLIBCXX_3.4, CXXABI_1.3</p></li><li class="listitem"><p>GCC 3.4.1: GLIBCXX_3.4.1, CXXABI_1.3</p></li><li class="listitem"><p>GCC 3.4.2: GLIBCXX_3.4.2</p></li><li class="listitem"><p>GCC 3.4.3: GLIBCXX_3.4.3</p></li><li class="listitem"><p>GCC 4.0.0: GLIBCXX_3.4.4, CXXABI_1.3.1</p></li><li class="listitem"><p>GCC 4.0.1: GLIBCXX_3.4.5</p></li><li class="listitem"><p>GCC 4.0.2: GLIBCXX_3.4.6</p></li><li class="listitem"><p>GCC 4.0.3: GLIBCXX_3.4.7</p></li><li class="listitem"><p>GCC 4.1.1: GLIBCXX_3.4.8</p></li><li class="listitem"><p>GCC 4.2.0: GLIBCXX_3.4.9</p></li><li class="listitem"><p>GCC 4.3.0: GLIBCXX_3.4.10, CXXABI_1.3.2</p></li><li class="listitem"><p>GCC 4.4.0: GLIBCXX_3.4.11, CXXABI_1.3.3</p></li><li class="listitem"><p>GCC 4.4.1: GLIBCXX_3.4.12, CXXABI_1.3.3</p></li><li class="listitem"><p>GCC 4.4.2: GLIBCXX_3.4.13, CXXABI_1.3.3</p></li><li class="listitem"><p>GCC 4.5.0: GLIBCXX_3.4.14, CXXABI_1.3.4</p></li><li class="listitem"><p>GCC 4.6.0: GLIBCXX_3.4.15, CXXABI_1.3.5</p></li><li class="listitem"><p>GCC 4.6.1: GLIBCXX_3.4.16, CXXABI_1.3.5</p></li><li class="listitem"><p>GCC 4.7.0: GLIBCXX_3.4.17, CXXABI_1.3.6</p></li><li class="listitem"><p>GCC 4.8.0: GLIBCXX_3.4.18, CXXABI_1.3.7</p></li><li class="listitem"><p>GCC 4.8.3: GLIBCXX_3.4.19, CXXABI_1.3.7</p></li><li class="listitem"><p>GCC 4.9.0: GLIBCXX_3.4.20, CXXABI_1.3.8</p></li><li class="listitem"><p>GCC 5.1.0: GLIBCXX_3.4.21, CXXABI_1.3.9</p></li></ul></div></li><li class="listitem"><p>Incremental bumping of a compiler pre-defined macro,
+ </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>GCC 3.0.0: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.1: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.2: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.3: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.4: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.1.0: GLIBCPP_3.1, CXXABI_1</p></li><li class="listitem"><p>GCC 3.1.1: GLIBCPP_3.1, CXXABI_1</p></li><li class="listitem"><p>GCC 3.2.0: GLIBCPP_3.2, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.2.1: GLIBCPP_3.2.1, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.2.2: GLIBCPP_3.2.2, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.2.3: GLIBCPP_3.2.2, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.3.0: GLIBCPP_3.2.2, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.3.1: GLIBCPP_3.2.3, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.3.2: GLIBCPP_3.2.3, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.3.3: GLIBCPP_3.2.3, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.4.0: GLIBCXX_3.4, CXXABI_1.3</p></li><li class="listitem"><p>GCC 3.4.1: GLIBCXX_3.4.1, CXXABI_1.3</p></li><li class="listitem"><p>GCC 3.4.2: GLIBCXX_3.4.2</p></li><li class="listitem"><p>GCC 3.4.3: GLIBCXX_3.4.3</p></li><li class="listitem"><p>GCC 4.0.0: GLIBCXX_3.4.4, CXXABI_1.3.1</p></li><li class="listitem"><p>GCC 4.0.1: GLIBCXX_3.4.5</p></li><li class="listitem"><p>GCC 4.0.2: GLIBCXX_3.4.6</p></li><li class="listitem"><p>GCC 4.0.3: GLIBCXX_3.4.7</p></li><li class="listitem"><p>GCC 4.1.1: GLIBCXX_3.4.8</p></li><li class="listitem"><p>GCC 4.2.0: GLIBCXX_3.4.9</p></li><li class="listitem"><p>GCC 4.3.0: GLIBCXX_3.4.10, CXXABI_1.3.2</p></li><li class="listitem"><p>GCC 4.4.0: GLIBCXX_3.4.11, CXXABI_1.3.3</p></li><li class="listitem"><p>GCC 4.4.1: GLIBCXX_3.4.12, CXXABI_1.3.3</p></li><li class="listitem"><p>GCC 4.4.2: GLIBCXX_3.4.13, CXXABI_1.3.3</p></li><li class="listitem"><p>GCC 4.5.0: GLIBCXX_3.4.14, CXXABI_1.3.4</p></li><li class="listitem"><p>GCC 4.6.0: GLIBCXX_3.4.15, CXXABI_1.3.5</p></li><li class="listitem"><p>GCC 4.6.1: GLIBCXX_3.4.16, CXXABI_1.3.5</p></li><li class="listitem"><p>GCC 4.7.0: GLIBCXX_3.4.17, CXXABI_1.3.6</p></li><li class="listitem"><p>GCC 4.8.0: GLIBCXX_3.4.18, CXXABI_1.3.7</p></li><li class="listitem"><p>GCC 4.8.3: GLIBCXX_3.4.19, CXXABI_1.3.7</p></li><li class="listitem"><p>GCC 4.9.0: GLIBCXX_3.4.20, CXXABI_1.3.8</p></li><li class="listitem"><p>GCC 5.1.0: GLIBCXX_3.4.21, CXXABI_1.3.9</p></li><li class="listitem"><p>GCC 6.1.0: GLIBCXX_3.4.22, CXXABI_1.3.10</p></li></ul></div></li><li class="listitem"><p>Incremental bumping of a compiler pre-defined macro,
__GXX_ABI_VERSION. This macro is defined as the version of the
compiler v3 ABI, with g++ 3.0 being version 100. This macro will
be automatically defined whenever g++ is used (the curious can
<code class="constant">__cplusplus</code> is used to check for the
presence of the required flag.
</p><p>
-This page describes the C++11 support in mainline GCC SVN, not in any
-particular release.
+This page describes the C++11 support in the GCC 6 series.
</p><div class="table"><a id="table.cxx11_status"></a><p class="title"><strong>Table 1.2. C++ 2011 Implementation Status</strong></p><div class="table-contents"><table summary="C++ 2011 Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left">
<span class="emphasis"><em>18</em></span>
</td><td colspan="3" align="left">
<code class="constant">__cplusplus</code> is used to check for the
presence of the required flag.
</p><p>
-This page describes the C++14 and library TS support in mainline GCC SVN,
-not in any particular release.
+This page describes the C++14 and library TS support in the GCC 6 series.
</p><div class="table"><a id="table.cxx14_status"></a><p class="title"><strong>Table 1.3. C++ 2014 Implementation Status</strong></p><div class="table-contents"><table summary="C++ 2014 Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Paper</th><th align="left">Title</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left">
<a class="link" href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2013/n3669.pdf" target="_top">
N3669
<a class="link" href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2013/n3655.pdf" target="_top">
N3655
</a>
- </td><td align="left">TransformationTraits Redux</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">
+ </td><td align="left">TransformationTraits Redux</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">
<a class="link" href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2013/n3644.pdf" target="_top">
N3644
</a>
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3915.pdf" target="_top">
N3915
</a>
- </td><td align="left">apply() call a function with arguments from a tuple</td><td align="left">Y</td><td align="left">Library Fundamentals TS</td></tr><tr bgcolor="#C8B0B0"><td align="left">
+ </td><td align="left">apply() call a function with arguments from a tuple</td><td align="left">Y</td><td align="left">Library Fundamentals TS</td></tr><tr bgcolor="#B0B0B0"><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3916.pdf" target="_top">
N3916
</a>
- </td><td align="left">Polymorphic memory resources</td><td align="left">N</td><td align="left">Library Fundamentals TS</td></tr><tr bgcolor="#C8B0B0"><td align="left">
+ </td><td align="left">Polymorphic memory resources</td><td align="left">Partial</td><td align="left">Library Fundamentals TS</td></tr><tr><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3920.html" target="_top">
N3920
</a>
- </td><td align="left">Extending shared_ptr to support arrays</td><td align="left">N</td><td align="left">Library Fundamentals TS</td></tr><tr><td align="left">
+ </td><td align="left">Extending shared_ptr to support arrays</td><td align="left">Y</td><td align="left">Library Fundamentals TS</td></tr><tr><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3921.html" target="_top">
N3921
</a>
<code class="constant">__cplusplus</code> is used to check for the
presence of the required flag.
</p><p>
-This page describes the C++1z and library TS support in mainline GCC SVN,
-not in any particular release.
+This page describes the C++1z and library TS support in the GCC 6 series.
</p><div class="table"><a id="table.cxx1z_status"></a><p class="title"><strong>Table 1.5. C++ 201z Implementation Status</strong></p><div class="table-contents"><table summary="C++ 201z Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Paper</th><th align="left">Title</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left">
<a class="link" href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2014/n4259.pdf" target="_top">
N4259
<listitem><para>GCC 4.8.3: GLIBCXX_3.4.19, CXXABI_1.3.7</para></listitem>
<listitem><para>GCC 4.9.0: GLIBCXX_3.4.20, CXXABI_1.3.8</para></listitem>
<listitem><para>GCC 5.1.0: GLIBCXX_3.4.21, CXXABI_1.3.9</para></listitem>
+ <listitem><para>GCC 6.1.0: GLIBCXX_3.4.22, CXXABI_1.3.10</para></listitem>
</itemizedlist>
</listitem>
</para>
<para>
-This page describes the C++11 support in mainline GCC SVN, not in any
-particular release.
+This page describes the C++11 support in the GCC 6 series.
</para>
<!-- Status is Yes or No, Broken/Partial-->
</para>
<para>
-This page describes the C++14 and library TS support in mainline GCC SVN,
-not in any particular release.
+This page describes the C++14 and library TS support in the GCC 6 series.
</para>
<table frame="all" xml:id="table.cxx14_status">
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
+ <?dbhtml bgcolor="#B0B0B0" ?>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2013/n3644.pdf">
N3644
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
+ <?dbhtml bgcolor="#B0B0B0" ?>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3916.pdf">
N3916
</link>
</entry>
<entry>Polymorphic memory resources</entry>
- <entry>N</entry>
+ <entry>Partial</entry>
<entry>Library Fundamentals TS</entry>
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3920.html">
N3920
</link>
</entry>
<entry>Extending shared_ptr to support arrays</entry>
- <entry>N</entry>
+ <entry>Y</entry>
<entry>Library Fundamentals TS</entry>
</row>
</para>
<para>
-This page describes the C++1z and library TS support in mainline GCC SVN,
-not in any particular release.
+This page describes the C++1z and library TS support in the GCC 6 series.
</para>
<table frame="all" xml:id="table.cxx1z_status">
#include <type_traits>
#endif
+#define __cpp_lib_incomplete_container_elements 201505
+
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
// Debug Mode implies checking assertions.
#ifdef _GLIBCXX_DEBUG
-# define _GLIBCXX_ASSERTIONS
+# define _GLIBCXX_ASSERTIONS 1
#endif
// Disable std::string explicit instantiation declarations in order to assert.
#if __cplusplus > 201103L
#define __cpp_lib_transparent_operators 201210
-//#define __cpp_lib_generic_associative_lookup 201304
template<>
struct plus<void>
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
+#if __cplusplus > 201103L
+# define __cpp_lib_generic_associative_lookup 201304
+#endif
+
// Red-black tree class, designed for use in implementing STL
// associative containers (set, multiset, map, and multimap). The
// insertion and deletion algorithms are based on those in Cormen,
}
_Rb_tree(_Rb_tree&& __x)
- : _M_impl(__x._M_impl._M_key_compare, __x._M_get_Node_allocator())
+ : _M_impl(__x._M_impl._M_key_compare,
+ std::move(__x._M_get_Node_allocator()))
{
if (__x._M_root() != 0)
_M_move_data(__x, std::true_type());
#include <vector>
#include <array>
#include <bits/stl_algo.h>
+#ifdef _GLIBCXX_PARALLEL
+# include <parallel/algorithm> // For std::__parallel::search
+#endif
namespace std _GLIBCXX_VISIBILITY(default)
{
size_t __new_size = _S_aligned_size(__bytes,
_S_supported(__alignment) ?
__alignment : _S_max_align);
- return _Aligned_alloc().allocate(__new_size);
+ return _Aligned_alloc(_M_alloc).allocate(__new_size);
}
virtual void
size_t __new_size = _S_aligned_size(__bytes,
_S_supported(__alignment) ?
__alignment : _S_max_align);
- _Aligned_alloc().deallocate(static_cast<typename
- _Aligned_alloc::pointer>(__p),
- __new_size);
+ using _Ptr = typename allocator_traits<_Aligned_alloc>::pointer;
+ _Aligned_alloc(_M_alloc).deallocate(static_cast<_Ptr>(__p),
+ __new_size);
}
virtual bool
private:
// Calculate Aligned Size
- // Returns a size that is larger than or equal to __size and divided by
- // __alignment, where __alignment is required to be the power of 2.
+ // Returns a size that is larger than or equal to __size and divisible
+ // by __alignment, where __alignment is required to be the power of 2.
static size_t
_S_aligned_size(size_t __size, size_t __alignment)
{ return ((__size - 1)|(__alignment - 1)) + 1; }
{
protected:
void*
- do_allocate(size_t __bytes, size_t __alignment)
+ do_allocate(size_t, size_t)
{ std::__throw_bad_alloc(); }
void
- do_deallocate(void* __p, size_t __bytes, size_t __alignment)
+ do_deallocate(void*, size_t, size_t) noexcept
{ }
bool
do_is_equal(const memory_resource& __other) const noexcept
- { }
+ { return this == &__other; }
friend memory_resource* null_memory_resource() noexcept;
};
is_convertible<_Up&&, _Tp>>::value, bool
>::type=true>
constexpr propagate_const(propagate_const<_Up>&& __pu)
- : __t(move(get_underlying(__pu)))
+ : _M_t(std::move(get_underlying(__pu)))
{}
template <typename _Up, typename
enable_if<__and_<is_constructible<_Tp, _Up&&>,
__not_<is_convertible<_Up&&, _Tp>>>::value,
bool>::type=false>
constexpr explicit propagate_const(propagate_const<_Up>&& __pu)
- : __t(move(get_underlying(__pu)))
+ : _M_t(std::move(get_underlying(__pu)))
{}
template <typename _Up, typename
enable_if<__and_<is_constructible<_Tp, _Up&&>,
typename decay<_Up>::type>>
>::value, bool>::type=true>
constexpr propagate_const(_Up&& __u)
- : __t(forward<_Up>(__u))
+ : _M_t(std::forward<_Up>(__u))
{}
template <typename _Up, typename
enable_if<__and_<is_constructible<_Tp, _Up&&>,
typename decay<_Up>::type>>
>::value, bool>::type=false>
constexpr explicit propagate_const(_Up&& __u)
- : __t(forward<_Up>(__u))
+ : _M_t(std::forward<_Up>(__u))
{}
// [propagate_const.assignment], assignment
typename enable_if<is_convertible<_Up&&, _Tp>::value>::type>
constexpr propagate_const& operator=(propagate_const<_Up>&& __pu)
{
- __t = move(get_underlying(__pu));
+ _M_t = std::move(get_underlying(__pu));
}
template <typename _Up, typename =
>::value>::type>
constexpr propagate_const& operator=(_Up&& __u)
{
- __t = forward<_Up>(__u);
+ _M_t = std::forward<_Up>(__u);
}
// [propagate_const.const_observers], const observers
explicit constexpr operator bool() const
{
- return bool(__t);
+ return bool(_M_t);
}
constexpr const element_type* operator->() const
constexpr const element_type* get() const
{
- return __to_raw_pointer(__t);
+ return __to_raw_pointer(_M_t);
}
// [propagate_const.non_const_observers], non-const observers
constexpr element_type* get()
{
- return __to_raw_pointer(__t);
+ return __to_raw_pointer(_M_t);
}
// [propagate_const.modifiers], modifiers
swap(propagate_const& __pt) noexcept(__is_nothrow_swappable<_Tp>::value)
{
using std::swap;
- swap(__t, get_underlying(__pt));
+ swap(_M_t, get_underlying(__pt));
}
private:
- _Tp __t; //exposition only
+ _Tp _M_t;
};
// [propagate_const.relational], relational operators
constexpr const _Tp&
get_underlying(const propagate_const<_Tp>& __pt) noexcept
{
- return __pt.__t;
+ return __pt._M_t;
}
template <typename _Tp>
constexpr _Tp&
get_underlying(propagate_const<_Tp>& __pt) noexcept
{
- return __pt.__t;
+ return __pt._M_t;
}
// @} group propagate_const
#if _GLIBCXX_ASSERTIONS
#include <parallel/checkers.h>
+#ifdef _GLIBCXX_HAVE_UNISTD_H
+#include <unistd.h>
+#endif
#endif
namespace __gnu_parallel
#define _GLIBCXX_SCALE_DOWN_FPU 0
#endif
-#ifndef _GLIBCXX_ASSERTIONS
-/** @brief Switch on many _GLIBCXX_PARALLEL_ASSERTions in parallel code.
- * Should be switched on only locally. */
-#define _GLIBCXX_ASSERTIONS 0
-#endif
-
#ifndef _GLIBCXX_RANDOM_SHUFFLE_CONSIDER_L1
/** @brief Switch on many _GLIBCXX_PARALLEL_ASSERTions in parallel code.
* Consider the size of the L1 cache for
typedef _Res _Signature_type(_ArgTypes...);
template<typename _Func,
- typename _Res2 = typename result_of<_Func(_ArgTypes...)>::type>
+ typename _Res2 = typename result_of<_Func&(_ArgTypes...)>::type>
struct _Callable : __check_func_return_type<_Res2, _Res> { };
// Used so the return type convertibility checks aren't done when
#ifdef _GLIBCXX_HAS_GTHREADS
#if __cplusplus > 201402L
-// TODO: #define __cpp_lib_shared_mutex 201505
+#define __cpp_lib_shared_mutex 201505
class shared_mutex;
#endif
#if __cplusplus > 201402L
-#define __cpp_lib_logical_traits 201511
+#define __cpp_lib_logical_traits 201510
template<typename... _Bn>
struct conjunction
void fs::permissions(const path& p, perms prms, error_code& ec) noexcept
{
+ const bool add = is_set(prms, perms::add_perms);
+ const bool remove = is_set(prms, perms::remove_perms);
+ if (add && remove)
+ {
+ ec = std::make_error_code(std::errc::invalid_argument);
+ return;
+ }
+
+ prms &= perms::mask;
+
+ if (add || remove)
+ {
+ auto st = status(p, ec);
+ if (ec)
+ return;
+ auto curr = st.permissions();
+ if (add)
+ prms |= curr;
+ else
+ prms = curr & ~prms;
+ }
+
#if _GLIBCXX_USE_FCHMODAT
if (::fchmodat(AT_FDCWD, p.c_str(), static_cast<mode_t>(prms), 0))
#else
--- /dev/null
+// Copyright (C) 2016 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 <functional>
+
+struct F {
+ void operator()() && { }
+ int operator()() & { return 0; }
+};
+
+int main() {
+ F f;
+ std::function<int()> ff{f};
+ return ff();
+}
#include <testsuite_hooks.h>
#include <testsuite_allocator.h>
-#if _GLIBCXX_USE_CXX11_ABI && defined(_GLIBCXX_USE_WCHAR_T)
-using C = char;
-const C c = 'a';
+#if _GLIBCXX_USE_CXX11_ABI
+using C = wchar_t;
+const C c = L'a';
using traits = std::char_traits<C>;
using __gnu_test::propagating_allocator;
#include <testsuite_hooks.h>
#include <testsuite_allocator.h>
-#if _GLIBCXX_USE_CXX11_ABI && defined(_GLIBCXX_USE_WCHAR_T)
-using C = char;
-const C c = 'a';
+#if _GLIBCXX_USE_CXX11_ABI
+using C = wchar_t;
+const C c = L'a';
using traits = std::char_traits<C>;
using __gnu_test::propagating_allocator;
#include <testsuite_hooks.h>
#include <testsuite_allocator.h>
-#if _GLIBCXX_USE_CXX11_ABI && defined(_GLIBCXX_USE_WCHAR_T)
+#if _GLIBCXX_USE_CXX11_ABI
using C = wchar_t;
const C c = L'a';
using traits = std::char_traits<C>;
#include <testsuite_hooks.h>
#include <testsuite_allocator.h>
-#if _GLIBCXX_USE_CXX11_ABI && defined(_GLIBCXX_USE_WCHAR_T)
-using C = char;
-const C c = 'a';
+#if _GLIBCXX_USE_CXX11_ABI
+using C = wchar_t;
+const C c = L'a';
using traits = std::char_traits<C>;
using __gnu_test::uneq_allocator;
#include <testsuite_hooks.h>
#include <testsuite_allocator.h>
-#if _GLIBCXX_USE_CXX11_ABI && defined(_GLIBCXX_USE_WCHAR_T)
-using C = char;
-const C c = 'a';
+#if _GLIBCXX_USE_CXX11_ABI
+using C = wchar_t;
+const C c = L'a';
using traits = std::char_traits<C>;
using __gnu_test::propagating_allocator;
#include <string>
#include <testsuite_allocator.h>
-#if _GLIBCXX_USE_CXX11_ABI && defined(_GLIBCXX_USE_WCHAR_T)
-using C = char;
-const C c = 'a';
+#if _GLIBCXX_USE_CXX11_ABI
+using C = wchar_t;
+const C c = L'a';
using traits = std::char_traits<C>;
using __gnu_test::propagating_allocator;
#include <testsuite_hooks.h>
#include <testsuite_allocator.h>
-#if _GLIBCXX_USE_CXX11_ABI && defined(_GLIBCXX_USE_WCHAR_T)
-using C = char;
-const C c = 'a';
+#if _GLIBCXX_USE_CXX11_ABI
+using C = wchar_t;
+const C c = L'a';
using traits = std::char_traits<C>;
using __gnu_test::propagating_allocator;
--- /dev/null
+// Copyright (C) 2016 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 <set>
+#include <testsuite_hooks.h>
+
+template<typename T>
+ struct mv_allocator
+ {
+ using value_type = T;
+ using size_type = unsigned;
+
+ mv_allocator()
+ : moved_to(false), moved_from(false) { }
+
+ template<typename U>
+ mv_allocator(const mv_allocator<U> & a)
+ : moved_to(a.moved_to), moved_from(a.moved_from) { }
+
+ mv_allocator(const mv_allocator &) = default;
+
+ mv_allocator(mv_allocator && a) noexcept : moved_to(true)
+ {
+ a.moved_from = true;
+ }
+
+ T* allocate(unsigned n) { return std::allocator<T>{}.allcoate(n); }
+ void deallocate(T* p, unsigned n) { std::allocator<T>{}.deallocate(p, n); }
+
+ bool moved_to;
+ bool moved_from;
+ };
+
+template<typename T, typename U>
+bool
+operator==(const mv_allocator<T>&, const mv_allocator<U>&) { return true; }
+
+template<typename T, typename U>
+bool
+operator!=(const mv_allocator<T>&, const mv_allocator<U>&) { return false; }
+
+void
+test01()
+{
+ std::set<int, std::less<int>, mv_allocator<int>> s;
+ auto t = std::move(s);
+ VERIFY( s.get_allocator().moved_from );
+ VERIFY( t.get_allocator().moved_to );
+}
+
+int
+main()
+{
+ test01();
+}
#include <complex>
#include <iomanip>
#include <shared_mutex>
+#include <map>
+#include <set>
#ifndef __cpp_lib_integer_sequence
# error "__cpp_lib_integer_sequence"
# error "__cpp_lib_complex_udls != 201309"
#endif
-//#ifndef __cpp_lib_generic_associative_lookup
-//# error "__cpp_lib_generic_associative_lookup"
-//#elif __cpp_lib_generic_associative_lookup != 201304
-//# error "__cpp_lib_generic_associative_lookup != 201304"
-//#endif
+#ifndef __cpp_lib_generic_associative_lookup
+# error "__cpp_lib_generic_associative_lookup"
+#elif __cpp_lib_generic_associative_lookup != 201304
+# error "__cpp_lib_generic_associative_lookup != 201304"
+#endif
//#ifndef __cpp_lib_null_iterators
//# error "__cpp_lib_null_iterators"
#elif __cpp_lib_is_final != 201402
# error "__cpp_lib_is_final != 201402"
#endif
+
+#ifndef __cpp_lib_is_null_pointer
+# error "__cpp_lib_is_null_pointer"
+#elif __cpp_lib_is_null_pointer != 201309
+# error "__cpp_lib_is_null_pointer != 201309"
+#endif
+
+#ifndef __cpp_lib_make_reverse_iterator
+# error "__cpp_lib_make_reverse_iterator"
+#elif __cpp_lib_make_reverse_iterator != 201402
+# error "__cpp_lib_make_reverse_iterator != 201402"
+#endif
--- /dev/null
+// Copyright (C) 2016 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 -lstdc++fs" }
+// { dg-require-filesystem-ts "" }
+
+// 15.26 Permissions [fs.op.permissions]
+
+#include <experimental/filesystem>
+#include <fstream>
+#include <testsuite_fs.h>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+ bool test __attribute__((unused)) = true;
+ using perms = std::experimental::filesystem::perms;
+
+ auto p = __gnu_test::nonexistent_path();
+ std::ofstream{p.native()};
+ VERIFY( exists(p) );
+ permissions(p, perms::owner_all);
+ VERIFY( status(p).permissions() == perms::owner_all );
+ permissions(p, perms::group_read | perms::add_perms);
+ VERIFY( status(p).permissions() == (perms::owner_all | perms::group_read) );
+ permissions(p, perms::group_read | perms::remove_perms);
+ VERIFY( status(p).permissions() == perms::owner_all );
+
+ remove(p);
+}
+
+int
+main()
+{
+ test01();
+}
#ifdef _GLIBCXX_USE_WCHAR_T
# include <cwchar>
#endif
+#include <algorithm>
#include <testsuite_hooks.h>
using std::experimental::make_default_searcher;
// { dg-options "-std=gnu++14" }
+// { dg-require-atomic-builtins "" }
// Copyright (C) 2015-2016 Free Software Foundation, Inc.
//
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-#include <memory>
#include <experimental/memory_resource>
#include <vector>
-#include <bits/uses_allocator.h>
+#include <cstdlib>
#include <testsuite_hooks.h>
#include <testsuite_allocator.h>
static int ctor_count;
static int dtor_count;
};
+
int A::ctor_count = 0;
int A::dtor_count = 0;
{
public:
CountedResource() = default;
- ~ CountedResource() = default;
+ ~CountedResource() = default;
static size_t get_alloc_count() { return alloc_count; }
static size_t get_dalloc_count() { return dalloc_count; }
void* do_allocate(size_t bytes, size_t alignment)
{
alloc_count += bytes;
- if (auto ptr = std::malloc(bytes)) {
+ if (auto ptr = std::malloc(bytes))
return ptr;
- }
throw std::bad_alloc();
}
void do_deallocate(void *p, size_t bytes, size_t alignment)
{
dalloc_count += bytes;
- free(p);
+ std::free(p);
}
bool do_is_equal(const memory_resource& __other) const noexcept
{ return this == &__other; }
};
- size_t CountedResource::alloc_count = 0;
- size_t CountedResource::dalloc_count = 0;
+
+size_t CountedResource::alloc_count = 0;
+size_t CountedResource::dalloc_count = 0;
void clear()
{
}
// memory resource
-void test01()
+void
+test01()
{
+ bool test __attribute((unused)) = false;
+
memory_resource* r = new_delete_resource();
VERIFY(get_default_resource() == r);
void *p = get_default_resource()->allocate(5);
}
// polymorphic_allocator
-void test02()
+void
+test02()
{
+ bool test __attribute((unused)) = false;
+
clear();
{
CountedResource cr;
VERIFY(CountedResource::get_dalloc_count() == 5);
}
-void test03() {
+void
+test03()
+{
+ bool test __attribute((unused)) = false;
+
clear();
CountedResource cr;
polymorphic_allocator<A> pa(&cr);
VERIFY(CountedResource::get_dalloc_count() == 1);
}
-void test04() {
+void
+test04()
+{
+ bool test __attribute((unused)) = false;
+
polymorphic_allocator<A> pa1(get_default_resource());
polymorphic_allocator<A> pa2(get_default_resource());
VERIFY(pa1 == pa2);
VERIFY(pa1 == pa3);
}
-int main() {
+int main()
+{
test01();
test02();
test03();
test04();
- return 0;
}
-// { dg-do run { xfail *-*-* } }
// { dg-options "-std=gnu++14" }
-// Copyright (C) 2015-2016 Free Software Foundation, Inc.
+// Copyright (C) 2016 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
#include <experimental/memory_resource>
#include <bits/uses_allocator.h>
#include <testsuite_hooks.h>
-#include <testsuite_allocator.h>
-using std::experimental::pmr::polymorphic_allocator;
-using std::experimental::pmr::null_memory_resource;
using std::experimental::pmr::memory_resource;
+using std::experimental::pmr::null_memory_resource;
+using std::experimental::pmr::new_delete_resource;
+
+// null_memory_resource
+void
+test06()
+{
+ bool test __attribute((unused)) = false;
-void test01() {
memory_resource* r = null_memory_resource();
- auto p = r->allocate(1);
+ bool caught = false;
+
+ void* p = nullptr;
+ try {
+ p = r->allocate(1);
+ } catch (const std::bad_alloc&) {
+ caught = true;
+ }
+ VERIFY( caught );
+
+ VERIFY( *r == *r );
+ VERIFY( r->is_equal(*r) );
+ VERIFY( !r->is_equal(*new_delete_resource()) );
}
-int main() {
- test01();
+int main()
+{
+ test06();
}
--- /dev/null
+// { dg-options "-std=gnu++14" }
+
+// Copyright (C) 2016 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 <experimental/memory_resource>
+#include <testsuite_hooks.h>
+#include <testsuite_allocator.h>
+
+using std::experimental::pmr::memory_resource;
+using std::experimental::pmr::resource_adaptor;
+
+template<typename T>
+ struct Allocator : __gnu_test::SimpleAllocator<T>
+ {
+ Allocator(int) { } // not default constructible
+
+ template<typename U>
+ Allocator(const Allocator<U>&) { }
+ };
+
+template<typename T>
+ bool aligned(void* p)
+ {
+ return (reinterpret_cast<std::uintptr_t>(p) % alignof(T)) == 0;
+ }
+
+// resource_adaptor
+void
+test05()
+{
+ bool test __attribute((unused)) = false;
+ using std::max_align_t;
+ using std::uintptr_t;
+ void* p = nullptr;
+
+ Allocator<int> a1(1), a2(2); // minimal interface allocators
+ resource_adaptor<decltype(a1)> r1(a1), r2(a2);
+ VERIFY( r1 == r1 );
+ VERIFY( r1 == r2 );
+ p = r1.allocate(1);
+ VERIFY( aligned<max_align_t>(p) );
+ r1.deallocate(p, 1);
+ p = r1.allocate(1, alignof(short));
+ VERIFY( aligned<short>(p) );
+ r1.deallocate(p, 1, alignof(short));
+ p = r1.allocate(1, alignof(long));
+ VERIFY( aligned<long>(p) );
+ r1.deallocate(p, 1, alignof(long));
+
+ __gnu_test::uneq_allocator<double> a3(3), a4(4); // non-equal allocators
+ resource_adaptor<decltype(a3)> r3(a3), r4(a4);
+ VERIFY( r3 == r3 );
+ VERIFY( r4 == r4 );
+ VERIFY( r3 != r4 );
+ p = r3.allocate(1);
+ VERIFY( aligned<max_align_t>(p) );
+ r3.deallocate(p, 1);
+ p = r3.allocate(1, alignof(short));
+ VERIFY( aligned<short>(p) );
+ r3.deallocate(p, 1, alignof(short));
+ p = r3.allocate(1, alignof(long));
+ VERIFY( aligned<long>(p) );
+ r3.deallocate(p, 1, alignof(long));
+
+ // TODO test with an allocator that doesn't use new or malloc, so
+ // returns pointers that are not suitably aligned for any type.
+}
+
+int main()
+{
+ test05();
+}
{
constexpr propagate_const<int*> test1{};
static_assert(!test1.get(), "");
- propagate_const<int*> test2;
- VERIFY(!test2.get());
+ propagate_const<int*> test2; // wrapped pointer is not initialized
+ propagate_const<int*> test3{};
+ VERIFY(!test3.get());
}
set object_file [file tail $obj]
# Compile with "-w" so that warnings issued by the compiler
# do not prevent compilation.
+ # Disable LTO so that ar/ranlib don't need the LTO plugin.
if { [v3_target_compile $srcdir/util/$f $object_file "object" \
- [list "incdir=$srcdir" "additional_flags=-w"]]
+ [list "incdir=$srcdir" "additional_flags=-w -fno-lto"]]
!= "" } {
error "could not compile $f"
}
return $et_little_endian
}
+# Return 1 if the Filesystem TS is supported, 0 otherwise.
+# Cache the result.
proc check_v3_target_filesystem_ts { } {
global cxxflags
global DEFAULT_CXXFLAGS
set et_filesystem_ts 0
# Set up and preprocess a C++ test program that depends
- # on debug mode activated.
+ # on the Filesystem TS feature-test macro being defined.
set src filesystem_ts[pid].cc
set f [open $src "w"]
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-05-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* Makefile.am (toolexeclib_LTLIBRARIES): Only set if
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-04-27 Release Manager
* GCC 6.1.0 released.
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-06-13 Jonathan Wakely <jwakely@redhat.com>
* generate_libstdcxx_web_docs: Use realpath to get absolute path.
+2016-08-22 Release Manager
+
+ * GCC 6.2.0 released.
+
2016-04-27 Release Manager
* GCC 6.1.0 released.