1. 09 Jan, 2018 10 commits
  2. 08 Jan, 2018 27 commits
    • re PR target/83677 (PPC: The xxpermr instruction is not generated correctly) · a25811c8
      [gcc]
      
      2018-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	PR target/83677
      	* config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
      	Reverse order of second and third operands in first alternative.
      	* config/rs6000/rs6000.c (rs6000_expand_vector_set): Reverse order
      	of first and second elements in UNSPEC_VPERMR vector.
      	(altivec_expand_vec_perm_le): Likewise.
      
      [gcc/testsuite]
      
      2018-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	PR target/83677
      	* gcc.target/powerpc/pr83677.c: New file.
      
      From-SVN: r256358
      Bill Schmidt committed
    • quad-float128.h (IBM128_TYPE): Explicitly use __ibm128, instead of trying to use long double. · 68df9882
      2018-01-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* config/rs6000/quad-float128.h (IBM128_TYPE): Explicitly use
      	__ibm128, instead of trying to use long double.
      	(CVT_FLOAT128_TO_IBM128): Use TFtype instead of __float128 to
      	accomidate -mabi=ieeelongdouble multilibs.
      	(CVT_IBM128_TO_FLOAT128): Likewise.
      	* config/rs6000/ibm-ldouble.c (IBM128_TYPE): New macro to define
      	the appropriate IBM extended double type.
      	(__gcc_qadd): Change all occurances of long double to IBM128_TYPE.
      	(__gcc_qsub): Likewise.
      	(__gcc_qmul): Likewise.
      	(__gcc_qdiv): Likewise.
      	(pack_ldouble): Likewise.
      	(__gcc_qneg): Likewise.
      	(__gcc_qeq): Likewise.
      	(__gcc_qne): Likewise.
      	(__gcc_qge): Likewise.
      	(__gcc_qle): Likewise.
      	(__gcc_stoq): Likewise.
      	(__gcc_dtoq): Likewise.
      	(__gcc_itoq): Likewise.
      	(__gcc_utoq): Likewise.
      	(__gcc_qunord): Likewise.
      	* config/rs6000/_mulkc3.c (toplevel): Include soft-fp.h and
      	quad-float128.h for the definitions.
      	(COPYSIGN): Use the f128 version instead of the q version.
      	(INFINITY): Likewise.
      	(__mulkc3): Use TFmode/TCmode for float128 scalar/complex types.
      	* config/rs6000/_divkc3.c (toplevel): Include soft-fp.h and
      	quad-float128.h for the definitions.
      	(COPYSIGN): Use the f128 version instead of the q version.
      	(INFINITY): Likewise.
      	(FABS): Likewise.
      	(__divkc3): Use TFmode/TCmode for float128 scalar/complex types.
      	* config/rs6000/extendkftf2-sw.c (__extendkftf2_sw): Likewise.
      	* config/rs6000/trunctfkf2-sw.c (__trunctfkf2_sw): Likewise.
      
      From-SVN: r256354
      Michael Meissner committed
    • quad-float128.h (IBM128_TYPE): Explicitly use __ibm128, instead of trying to use long double. · d5eea0f7
      2018-01-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* config/rs6000/quad-float128.h (IBM128_TYPE): Explicitly use
      	__ibm128, instead of trying to use long double.
      	(CVT_FLOAT128_TO_IBM128): Use TFtype instead of __float128 to
      	accomidate -mabi=ieeelongdouble multilibs.
      	(CVT_IBM128_TO_FLOAT128): Likewise.
      	* config/rs6000/ibm-ldouble.c (IBM128_TYPE): New macro to define
      	the appropriate IBM extended double type.
      	(__gcc_qadd): Change all occurances of long double to IBM128_TYPE.
      	(__gcc_qsub): Likewise.
      	(__gcc_qmul): Likewise.
      	(__gcc_qdiv): Likewise.
      	(pack_ldouble): Likewise.
      	(__gcc_qneg): Likewise.
      	(__gcc_qeq): Likewise.
      	(__gcc_qne): Likewise.
      	(__gcc_qge): Likewise.
      	(__gcc_qle): Likewise.
      	(__gcc_stoq): Likewise.
      	(__gcc_dtoq): Likewise.
      	(__gcc_itoq): Likewise.
      	(__gcc_utoq): Likewise.
      	(__gcc_qunord): Likewise.
      	* config/rs6000/_mulkc3.c (toplevel): Include soft-fp.h and
      	quad-float128.h for the definitions.
      	(COPYSIGN): Use the f128 version instead of the q version.
      	(INFINITY): Likewise.
      	(__mulkc3): Use TFmode/TCmode for float128 scalar/complex types.
      	* config/rs6000/_divkc3.c (toplevel): Include soft-fp.h and
      	quad-float128.h for the definitions.
      	(COPYSIGN): Use the f128 version instead of the q version.
      	(INFINITY): Likewise.
      	(FABS): Likewise.
      	(__divkc3): Use TFmode/TCmode for float128 scalar/complex types.
      	* config/rs6000/extendkftf2-sw.c (__extendkftf2_sw): Likewise.
      	* config/rs6000/trunctfkf2-sw.c (__trunctfkf2_sw): Likewise.
      
      From-SVN: r256353
      Michael Meissner committed
    • expr.c (gfc_check_pointer_assign): Fix typo in comment. · a4f759de
      2018-01-08  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	* expr.c (gfc_check_pointer_assign): Fix typo in comment.
      
      From-SVN: r256352
      Steven G. Kargl committed
    • rs6000-string.c (do_load_for_compare_from_addr): New function. · 5ec3397e
      2018-01-08  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
      
      	* config/rs6000/rs6000-string.c (do_load_for_compare_from_addr): New
      	function.
      	(do_ifelse): New function.
      	(do_isel): New function.
      	(do_sub3): New function.
      	(do_add3): New function.
      	(do_load_mask_compare): New function.
      	(do_overlap_load_compare): New function.
      	(expand_compare_loop): New function.
      	(expand_block_compare): Call expand_compare_loop() when appropriate.
      	* config/rs6000/rs6000.opt (-mblock-compare-inline-limit): Change
      	option description.
      	(-mblock-compare-inline-loop-limit): New option.
      
      From-SVN: r256351
      Aaron Sawdey committed
    • re PR rtl-optimization/81308 (ICE in calc_dfs_tree, at dominance.c:458) · 5a2a87e1
      	PR rtl-optimizatin/81308
      	* tree-switch-conversion.c (cfg_altered): New file scoped static.
      	(process_switch): If group_case_labels makes a change, then set
      	cfg_altered.
      	(pass_convert_switch::execute): If a switch is converted, then
      	set cfg_altered.  Return TODO_cfg_cleanup if cfg_altered is true.
      
      	PR rtl-optimizatin/81308
      	* g++.dg/pr81308-1.C: New test.
      	* g++.dg/pr81308-2.C: New test.
      
      From-SVN: r256349
      Jeff Law committed
    • re PR rtl-optimization/81308 (ICE in calc_dfs_tree, at dominance.c:458) · b9a4d2ba
      	PR rtl-optimization/81308
      	* recog.c (split_all_insns): Conditionally cleanup the CFG after
      	splitting insns.
      
      From-SVN: r256348
      Jeff Law committed
    • rs6000.c (rs6000_legitimate_combined_insn): Updated with the new names of the… · 7f047768
      rs6000.c (rs6000_legitimate_combined_insn): Updated with the new names of the branch decrement patterns...
      
      * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Updated
      	with the new names of the branch decrement patterns, and added the
      	names of the branch decrement conditional patterns.
      
      From-SVN: r256347
      Aaron Sawdey committed
    • PR target/83663 - Revert r255946 · 647c61f1
      gcc/
      
      2018-01-08  Vidya Praveen  <vidyapraveen@arm.com>
      
      	PR target/83663 - Revert r255946
      	* config/aarch64/aarch64.c (aarch64_expand_vector_init): Modify code
      	generation for cases where splatting a value is not useful.
      	* simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge
      	across a vec_duplicate and a paradoxical subreg forming a vector
      	mode to a vec_concat.
      
      gcc/testsuite/
      
      2018-01-08  Vidya Praveen  <vidyapraveen@arm.com>
      
      	PR target/83663 - Revert r255946
      	* gcc.target/aarch64/vect-slp-dup.c: New.
      
      From-SVN: r256346
      Vidya Praveen committed
    • [arm] Add -march=armv8.3-a and dotprod multilib selection rules · a00a4222
      We don't have the t-aprofile, t-multilib and t-arm-elf mapping
      rules for multilibs when using the variants of -march=armv8.3-a
      and the dotproduct extension.
      This patch adds them. -march=armv8.3-a behaves in the same
      way as -march=armv8.2-a in this regard.
      
      Bootstrapped and tested with the aprofile multilib list.
      Checked that --print-multi-directory gives sensible results
      with armv8.3-a options and extensions.
      I've also added some armv8.3-a, fp16 and dotprod
      combination tests to multilib.exp
      
      	* config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping rules for
      	-march=armv8.3-a variants.
      	* config/arm/t-multilib: Likewise.
      	* config/arm/t-arm-elf: Likewise.  Handle dotprod extension.
      
      	* gcc.target/arm/multilib.exp: Add fp16, dotprod and armv8.3-a
      	combination tests.
      
      From-SVN: r256345
      Kyrylo Tkachov committed
    • rs6000.md (cceq_ior_compare): Remove * so I can use it to generate rtl. · 8f2c6023
      2018-01-08  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
      
      	* config/rs6000/rs6000.md (cceq_ior_compare): Remove * so I can use it
      	to generate rtl.
      	(cceq_ior_compare_complement): Give it a name so I can use it, and
      	change boolean_or_operator predicate to boolean_operator so it can
      	be used to generate a crand.
      	(eqne): New code iterator.
      	(bd/bd_neg): New code_attrs.
      	(<bd>_<mode>): New name for ctr<mode>_internal[12] now combined into
      	a single define_insn.
      	(<bd>tf_<mode>): A new insn pattern for the conditional form branch
      	decrement (bdnzt/bdnzf/bdzt/bdzf).
      	* config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Updated
      	with the new names of the branch decrement patterns, and added the
      	names of the branch decrement conditional patterns.
      
      From-SVN: r256344
      Aaron Sawdey committed
    • re PR tree-optimization/83563 ([graphite] ICE: Segmentation fault (in instantiate_scev_r)) · b33086c0
      2018-01-08  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/83563
      	* graphite.c (canonicalize_loop_closed_ssa_form): Reset the SCEV
      	cache.
      
      	* gcc.dg/graphite/pr83563.c: New testcase.
      
      From-SVN: r256343
      Richard Biener committed
    • re PR c++/83713 (ICE in do_narrow at gcc/convert.c:474) · 87c4dace
      2018-01-08  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/83713
      	* convert.c (do_narrow): Properly guard TYPE_OVERFLOW_WRAPS checks.
      
      	* g++.dg/torture/pr83713.C: New testcase.
      
      From-SVN: r256341
      Richard Biener committed
    • Xfail ssa-dom-cse-2.c for nvptx · 960c02b8
      2018-01-08  Tom de Vries  <tom@codesourcery.com>
      
      	* gcc.dg/tree-ssa/ssa-dom-cse-2.c: Xfail scan for nvptx.
      
      From-SVN: r256340
      Tom de Vries committed
    • re PR tree-optimization/83685 (ICE: SSA corruption) · e207c079
      2018-01-08  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/83685
      	* tree-ssa-pre.c (create_expression_by_pieces): Do not insert
      	references to abnormals.
      
      	* gcc.dg/torture/pr83685.c: New testcase.
      
      From-SVN: r256339
      Richard Biener committed
    • re PR lto/83719 (ICE (segfault) in hash_table<indirect_string_hasher, xcallocator>::elements()) · 131a0e78
      2018-01-08  Richard Biener  <rguenther@suse.de>
      
      	PR lto/83719
      	* dwarf2out.c (output_indirect_strings): Handle empty
      	skeleton_debug_str_hash.
      	(dwarf2out_early_finish): Index strings for -gsplit-dwarf.
      
      	* gcc.dg/lto/pr83719_0.c: New testcase.
      
      From-SVN: r256338
      Richard Biener committed
    • PR 78534 Regression on 32-bit targets · 4135a21f
      By switching from int to size_t in order to handle larger values,
      r256322 introduced a bug that manifested itself on 32-bit
      targets. Fixed by using the correct type to store the result of a
      next_array_record call.
      
      Regtested on x86_64-pc-linux-gnu and i686-pc-linux-gnu, committed to
      trunk as obvious.
      
      libgfortran/ChangeLog:
      
      2018-01-08  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR 78534, bugfix for r256322
      	* io/transfer.c (next_record_w): Use correct type for return value
      	of next_array_record.
      
      From-SVN: r256337
      Janne Blomqvist committed
    • Require stack size for some test-cases · 4c035a23
      2018-01-08  Tom de Vries  <tom@codesourcery.com>
      
      	* gcc.dg/graphite/interchange-7.c: Add dg-require-stack-size.
      	* gcc.dg/graphite/run-id-1.c: Same.
      	* gcc.dg/tree-ssa/loop-interchange-4.c: Same.
      
      From-SVN: r256336
      Tom de Vries committed
    • re PR fortran/83611 ([PDT] Assignment of parameterized types causes double free error in runtime) · 0b627b58
      2018-01-08  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/83611
      	* decl.c (gfc_get_pdt_instance): If parameterized arrays have
      	an initializer, convert the kind parameters and add to the
      	component if the instance.
      	* trans-array.c (structure_alloc_comps): Add 'is_pdt_type' and
      	use it with case COPY_ALLOC_COMP. Call 'duplicate_allocatable'
      	for parameterized arrays. Clean up typos in comments. Convert
      	parameterized array initializers and copy into the array.
      	* trans-expr.c (gfc_trans_scalar_assign): Do a deep copy for
      	parameterized types.
      	*trans-stmt.c (trans_associate_var): Deallocate associate vars
      	as necessary, when they are PDT function results for example.
      
      	PR fortran/83731
      	* trans-array.c (structure_alloc_comps): Only compare len parms
      	when they are declared explicitly.
      
      2018-01-08  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/83611
      	* gfortran.dg/pdt_15.f03 : Bump count of 'n.data = 0B' to 8.
      	* gfortran.dg/pdt_26.f03 : Bump count of '_malloc' to 9.
      	* gfortran.dg/pdt_27.f03 : New test.
      
      	PR fortran/83731
      	* gfortran.dg/pdt_28.f03 : New test.
      
      From-SVN: r256335
      Paul Thomas committed
    • [ARC] Revamp trampoline implementation · efcc2e30
      The new implementation attempts to clean up the existing trampoline
      implementation for ARC making it to work for linux type of systems.
      
      gcc/
      2018-01-08  Claudiu Zissulescu  <claziss@synopsys.com>
      
              * config/arc/arc.c (TARGET_TRAMPOLINE_ADJUST_ADDRESS): Delete.
              (emit_store_direct): Likewise.
              (arc_trampoline_adjust_address): Likewise.
              (arc_asm_trampoline_template): New function.
              (arc_initialize_trampoline): Use asm_trampoline_template.
              (TARGET_ASM_TRAMPOLINE_TEMPLATE): Define.
              * config/arc/arc.h (TRAMPOLINE_SIZE): Adjust to 16.
              *config/arc/arc.md (flush_icache): Delete pattern.
      
      From-SVN: r256334
      Claudiu Zissulescu committed
    • [ARC] Enable unaligned access. · 85e5629f
      Use munaligned-access to control if we can have unaligned accesses.  For ARC
      HS family unaligned access is always on.
      
      2018-01-08  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc-c.def (__ARC_UNALIGNED__): New define.
      	* config/arc/arc.h (STRICT_ALIGNMENT): Control this macro using
      	munaligned-access.
      
      From-SVN: r256333
      Claudiu Zissulescu committed
    • Require alloca for some test-cases · b5da8f94
      2018-01-08  Tom de Vries  <tom@codesourcery.com>
      
      	* c-c++-common/builtins.c: Require effective target alloca.
      	* gcc.dg/Wrestrict.c: Same.
      	* gcc.dg/tree-ssa/loop-interchange-15.c: Same.
      
      From-SVN: r256332
      Tom de Vries committed
    • epiphany: Enable Ada run-time build · 34113d65
      gcc/
      
      	PR target/83681
      	* config/epiphany/epiphany.h (make_pass_mode_switch_use): Guard
      	by not USED_FOR_TARGET.
      	(make_pass_resolve_sw_modes): Likewise.
      
      From-SVN: r256331
      Sebastian Huber committed
    • nios2: Enable Ada run-time build · 05122129
      gcc/
      	* config/nios2/nios2.h (nios2_section_threshold): Guard by not
      	USED_FOR_TARGET.
      
      From-SVN: r256330
      Sebastian Huber committed
    • re PR tree-optimization/83580 (Wrong code caused by vectorization) · 3e1b80ff
      2018-01-08  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/83580
      	* tree-data-ref.c (split_constant_offset): Remove STRIP_NOPS.
      
      	* gcc.dg/torture/pr83580.c: New testcase.
      
      From-SVN: r256329
      Richard Biener committed
    • re PR tree-optimization/83517 (Missed optimization in math expression: (x+x)/x == 2) · 55d84e61
      2018-01-08  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/83517
      	* match.pd ((t * 2) / 2) -> t): Add missing :c.
      
      	* gcc.dg/pr83517.c: New testcase.
      
      From-SVN: r256328
      Richard Biener committed
    • Daily bump. · 2af5fc62
      From-SVN: r256327
      GCC Administrator committed
  3. 07 Jan, 2018 3 commits
    • libgfortran.h (GFC_DTYPE_COPY): New macro. · fa3c4d47
      2018-01-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	* libgfortran.h (GFC_DTYPE_COPY): New macro.
      	(GFC_DTYPE_COPY_SETRANK): New macro.
      	(GFC_DTYPE_IS_UNSET): New macro.
      	* intrinsics/cshift0.c (cshift0): Use new macros.
      	* intrinsics/eoshift0.c (eoshift0): Likewise.
      	* intrinsics/eoshift2.c (eoshift2): Likewise.
      	* intrinsics/move_alloc.c (move_alloc): Likewise.
      	* intrinsics/reshape_generic.c (reshape_internal): Likewise.
      	* intrinsics/spread_generic.c (spread_internal): Likewise.
      	* intrinsics/spread_generic.c (spread_scalar): Likewise.
      	* intrinsics/spread_generic.c (spread_char_scalar): Likewise.
      	* intrinsics/spread_generic.c (spread_char4_scalar): Likewise.
      	* intrinsics/unpack_generic.c (unpack0): Likewise.
      	* intrinsics/unpack_generic.c (unpack0_char): Likewise.
      	* intrinsics/unpack_generic.c (unpack0_char4): Likewise.
      	* m4/cshift1.m4 (cshift1): Likewise.
      	* m4/eoshift1.m4 (eoshift1): Likewise.
      	* m4/eoshift3.m4 (eoshift3): Likewise.
      	* m4/iforeach-s.m4: Likewise.
      	* m4/iforeach.m4: Likewise.
      	* m4/ifunction-s.m4: Likewise.
      	* m4/ifunction-s2.m4: Likewise.
      	* m4/ifunction.m4: Likewise.
      	* m4/ifunction_logical.m4: Likewise.
      	* m4/reshape.m4: Likewise.
      	* m4/spread.m4: Likewise.
      	* generated/all_l1.c : Regenerated.
      	* generated/all_l16.c : Regenerated.
      	* generated/all_l2.c : Regenerated.
      	* generated/all_l4.c : Regenerated.
      	* generated/all_l8.c : Regenerated.
      	* generated/any_l1.c : Regenerated.
      	* generated/any_l16.c : Regenerated.
      	* generated/any_l2.c : Regenerated.
      	* generated/any_l4.c : Regenerated.
      	* generated/any_l8.c : Regenerated.
      	* generated/count_16_l.c : Regenerated.
      	* generated/count_1_l.c : Regenerated.
      	* generated/count_2_l.c : Regenerated.
      	* generated/count_4_l.c : Regenerated.
      	* generated/count_8_l.c : Regenerated.
      	* generated/cshift1_16.c : Regenerated.
      	* generated/cshift1_4.c : Regenerated.
      	* generated/cshift1_8.c : Regenerated.
      	* generated/eoshift1_16.c : Regenerated.
      	* generated/eoshift1_4.c : Regenerated.
      	* generated/eoshift1_8.c : Regenerated.
      	* generated/eoshift3_16.c : Regenerated.
      	* generated/eoshift3_4.c : Regenerated.
      	* generated/eoshift3_8.c : Regenerated.
      	* generated/iall_i1.c : Regenerated.
      	* generated/iall_i16.c : Regenerated.
      	* generated/iall_i2.c : Regenerated.
      	* generated/iall_i4.c : Regenerated.
      	* generated/iall_i8.c : Regenerated.
      	* generated/iany_i1.c : Regenerated.
      	* generated/iany_i16.c : Regenerated.
      	* generated/iany_i2.c : Regenerated.
      	* generated/iany_i4.c : Regenerated.
      	* generated/iany_i8.c : Regenerated.
      	* generated/iparity_i1.c : Regenerated.
      	* generated/iparity_i16.c : Regenerated.
      	* generated/iparity_i2.c : Regenerated.
      	* generated/iparity_i4.c : Regenerated.
      	* generated/iparity_i8.c : Regenerated.
      	* generated/maxloc0_16_i1.c : Regenerated.
      	* generated/maxloc0_16_i16.c : Regenerated.
      	* generated/maxloc0_16_i2.c : Regenerated.
      	* generated/maxloc0_16_i4.c : Regenerated.
      	* generated/maxloc0_16_i8.c : Regenerated.
      	* generated/maxloc0_16_r10.c : Regenerated.
      	* generated/maxloc0_16_r16.c : Regenerated.
      	* generated/maxloc0_16_r4.c : Regenerated.
      	* generated/maxloc0_16_r8.c : Regenerated.
      	* generated/maxloc0_16_s1.c : Regenerated.
      	* generated/maxloc0_16_s4.c : Regenerated.
      	* generated/maxloc0_4_i1.c : Regenerated.
      	* generated/maxloc0_4_i16.c : Regenerated.
      	* generated/maxloc0_4_i2.c : Regenerated.
      	* generated/maxloc0_4_i4.c : Regenerated.
      	* generated/maxloc0_4_i8.c : Regenerated.
      	* generated/maxloc0_4_r10.c : Regenerated.
      	* generated/maxloc0_4_r16.c : Regenerated.
      	* generated/maxloc0_4_r4.c : Regenerated.
      	* generated/maxloc0_4_r8.c : Regenerated.
      	* generated/maxloc0_4_s1.c : Regenerated.
      	* generated/maxloc0_4_s4.c : Regenerated.
      	* generated/maxloc0_8_i1.c : Regenerated.
      	* generated/maxloc0_8_i16.c : Regenerated.
      	* generated/maxloc0_8_i2.c : Regenerated.
      	* generated/maxloc0_8_i4.c : Regenerated.
      	* generated/maxloc0_8_i8.c : Regenerated.
      	* generated/maxloc0_8_r10.c : Regenerated.
      	* generated/maxloc0_8_r16.c : Regenerated.
      	* generated/maxloc0_8_r4.c : Regenerated.
      	* generated/maxloc0_8_r8.c : Regenerated.
      	* generated/maxloc0_8_s1.c : Regenerated.
      	* generated/maxloc0_8_s4.c : Regenerated.
      	* generated/maxloc1_16_i1.c : Regenerated.
      	* generated/maxloc1_16_i16.c : Regenerated.
      	* generated/maxloc1_16_i2.c : Regenerated.
      	* generated/maxloc1_16_i4.c : Regenerated.
      	* generated/maxloc1_16_i8.c : Regenerated.
      	* generated/maxloc1_16_r10.c : Regenerated.
      	* generated/maxloc1_16_r16.c : Regenerated.
      	* generated/maxloc1_16_r4.c : Regenerated.
      	* generated/maxloc1_16_r8.c : Regenerated.
      	* generated/maxloc1_16_s1.c : Regenerated.
      	* generated/maxloc1_16_s4.c : Regenerated.
      	* generated/maxloc1_4_i1.c : Regenerated.
      	* generated/maxloc1_4_i16.c : Regenerated.
      	* generated/maxloc1_4_i2.c : Regenerated.
      	* generated/maxloc1_4_i4.c : Regenerated.
      	* generated/maxloc1_4_i8.c : Regenerated.
      	* generated/maxloc1_4_r10.c : Regenerated.
      	* generated/maxloc1_4_r16.c : Regenerated.
      	* generated/maxloc1_4_r4.c : Regenerated.
      	* generated/maxloc1_4_r8.c : Regenerated.
      	* generated/maxloc1_4_s1.c : Regenerated.
      	* generated/maxloc1_4_s4.c : Regenerated.
      	* generated/maxloc1_8_i1.c : Regenerated.
      	* generated/maxloc1_8_i16.c : Regenerated.
      	* generated/maxloc1_8_i2.c : Regenerated.
      	* generated/maxloc1_8_i4.c : Regenerated.
      	* generated/maxloc1_8_i8.c : Regenerated.
      	* generated/maxloc1_8_r10.c : Regenerated.
      	* generated/maxloc1_8_r16.c : Regenerated.
      	* generated/maxloc1_8_r4.c : Regenerated.
      	* generated/maxloc1_8_r8.c : Regenerated.
      	* generated/maxloc1_8_s1.c : Regenerated.
      	* generated/maxloc1_8_s4.c : Regenerated.
      	* generated/maxval1_s1.c : Regenerated.
      	* generated/maxval1_s4.c : Regenerated.
      	* generated/maxval_i1.c : Regenerated.
      	* generated/maxval_i16.c : Regenerated.
      	* generated/maxval_i2.c : Regenerated.
      	* generated/maxval_i4.c : Regenerated.
      	* generated/maxval_i8.c : Regenerated.
      	* generated/maxval_r10.c : Regenerated.
      	* generated/maxval_r16.c : Regenerated.
      	* generated/maxval_r4.c : Regenerated.
      	* generated/maxval_r8.c : Regenerated.
      	* generated/minloc0_16_i1.c : Regenerated.
      	* generated/minloc0_16_i16.c : Regenerated.
      	* generated/minloc0_16_i2.c : Regenerated.
      	* generated/minloc0_16_i4.c : Regenerated.
      	* generated/minloc0_16_i8.c : Regenerated.
      	* generated/minloc0_16_r10.c : Regenerated.
      	* generated/minloc0_16_r16.c : Regenerated.
      	* generated/minloc0_16_r4.c : Regenerated.
      	* generated/minloc0_16_r8.c : Regenerated.
      	* generated/minloc0_16_s1.c : Regenerated.
      	* generated/minloc0_16_s4.c : Regenerated.
      	* generated/minloc0_4_i1.c : Regenerated.
      	* generated/minloc0_4_i16.c : Regenerated.
      	* generated/minloc0_4_i2.c : Regenerated.
      	* generated/minloc0_4_i4.c : Regenerated.
      	* generated/minloc0_4_i8.c : Regenerated.
      	* generated/minloc0_4_r10.c : Regenerated.
      	* generated/minloc0_4_r16.c : Regenerated.
      	* generated/minloc0_4_r4.c : Regenerated.
      	* generated/minloc0_4_r8.c : Regenerated.
      	* generated/minloc0_4_s1.c : Regenerated.
      	* generated/minloc0_4_s4.c : Regenerated.
      	* generated/minloc0_8_i1.c : Regenerated.
      	* generated/minloc0_8_i16.c : Regenerated.
      	* generated/minloc0_8_i2.c : Regenerated.
      	* generated/minloc0_8_i4.c : Regenerated.
      	* generated/minloc0_8_i8.c : Regenerated.
      	* generated/minloc0_8_r10.c : Regenerated.
      	* generated/minloc0_8_r16.c : Regenerated.
      	* generated/minloc0_8_r4.c : Regenerated.
      	* generated/minloc0_8_r8.c : Regenerated.
      	* generated/minloc0_8_s1.c : Regenerated.
      	* generated/minloc0_8_s4.c : Regenerated.
      	* generated/minloc1_16_i1.c : Regenerated.
      	* generated/minloc1_16_i16.c : Regenerated.
      	* generated/minloc1_16_i2.c : Regenerated.
      	* generated/minloc1_16_i4.c : Regenerated.
      	* generated/minloc1_16_i8.c : Regenerated.
      	* generated/minloc1_16_r10.c : Regenerated.
      	* generated/minloc1_16_r16.c : Regenerated.
      	* generated/minloc1_16_r4.c : Regenerated.
      	* generated/minloc1_16_r8.c : Regenerated.
      	* generated/minloc1_16_s1.c : Regenerated.
      	* generated/minloc1_16_s4.c : Regenerated.
      	* generated/minloc1_4_i1.c : Regenerated.
      	* generated/minloc1_4_i16.c : Regenerated.
      	* generated/minloc1_4_i2.c : Regenerated.
      	* generated/minloc1_4_i4.c : Regenerated.
      	* generated/minloc1_4_i8.c : Regenerated.
      	* generated/minloc1_4_r10.c : Regenerated.
      	* generated/minloc1_4_r16.c : Regenerated.
      	* generated/minloc1_4_r4.c : Regenerated.
      	* generated/minloc1_4_r8.c : Regenerated.
      	* generated/minloc1_4_s1.c : Regenerated.
      	* generated/minloc1_4_s4.c : Regenerated.
      	* generated/minloc1_8_i1.c : Regenerated.
      	* generated/minloc1_8_i16.c : Regenerated.
      	* generated/minloc1_8_i2.c : Regenerated.
      	* generated/minloc1_8_i4.c : Regenerated.
      	* generated/minloc1_8_i8.c : Regenerated.
      	* generated/minloc1_8_r10.c : Regenerated.
      	* generated/minloc1_8_r16.c : Regenerated.
      	* generated/minloc1_8_r4.c : Regenerated.
      	* generated/minloc1_8_r8.c : Regenerated.
      	* generated/minloc1_8_s1.c : Regenerated.
      	* generated/minloc1_8_s4.c : Regenerated.
      	* generated/minval1_s1.c : Regenerated.
      	* generated/minval1_s4.c : Regenerated.
      	* generated/minval_i1.c : Regenerated.
      	* generated/minval_i16.c : Regenerated.
      	* generated/minval_i2.c : Regenerated.
      	* generated/minval_i4.c : Regenerated.
      	* generated/minval_i8.c : Regenerated.
      	* generated/minval_r10.c : Regenerated.
      	* generated/minval_r16.c : Regenerated.
      	* generated/minval_r4.c : Regenerated.
      	* generated/minval_r8.c : Regenerated.
      	* generated/norm2_r10.c : Regenerated.
      	* generated/norm2_r16.c : Regenerated.
      	* generated/norm2_r4.c : Regenerated.
      	* generated/norm2_r8.c : Regenerated.
      	* generated/parity_l1.c : Regenerated.
      	* generated/parity_l16.c : Regenerated.
      	* generated/parity_l2.c : Regenerated.
      	* generated/parity_l4.c : Regenerated.
      	* generated/parity_l8.c : Regenerated.
      	* generated/product_c10.c : Regenerated.
      	* generated/product_c16.c : Regenerated.
      	* generated/product_c4.c : Regenerated.
      	* generated/product_c8.c : Regenerated.
      	* generated/product_i1.c : Regenerated.
      	* generated/product_i16.c : Regenerated.
      	* generated/product_i2.c : Regenerated.
      	* generated/product_i4.c : Regenerated.
      	* generated/product_i8.c : Regenerated.
      	* generated/product_r10.c : Regenerated.
      	* generated/product_r16.c : Regenerated.
      	* generated/product_r4.c : Regenerated.
      	* generated/product_r8.c : Regenerated.
      	* generated/reshape_c10.c : Regenerated.
      	* generated/reshape_c16.c : Regenerated.
      	* generated/reshape_c4.c : Regenerated.
      	* generated/reshape_c8.c : Regenerated.
      	* generated/reshape_i16.c : Regenerated.
      	* generated/reshape_i4.c : Regenerated.
      	* generated/reshape_i8.c : Regenerated.
      	* generated/reshape_r10.c : Regenerated.
      	* generated/reshape_r16.c : Regenerated.
      	* generated/reshape_r4.c : Regenerated.
      	* generated/reshape_r8.c : Regenerated.
      	* generated/spread_c10.c : Regenerated.
      	* generated/spread_c16.c : Regenerated.
      	* generated/spread_c4.c : Regenerated.
      	* generated/spread_c8.c : Regenerated.
      	* generated/spread_i1.c : Regenerated.
      	* generated/spread_i16.c : Regenerated.
      	* generated/spread_i2.c : Regenerated.
      	* generated/spread_i4.c : Regenerated.
      	* generated/spread_i8.c : Regenerated.
      	* generated/spread_r10.c : Regenerated.
      	* generated/spread_r16.c : Regenerated.
      	* generated/spread_r4.c : Regenerated.
      	* generated/spread_r8.c : Regenerated.
      	* generated/sum_c10.c : Regenerated.
      	* generated/sum_c16.c : Regenerated.
      	* generated/sum_c4.c : Regenerated.
      	* generated/sum_c8.c : Regenerated.
      	* generated/sum_i1.c : Regenerated.
      	* generated/sum_i16.c : Regenerated.
      	* generated/sum_i2.c : Regenerated.
      	* generated/sum_i4.c : Regenerated.
      	* generated/sum_i8.c : Regenerated.
      	* generated/sum_r10.c : Regenerated.
      	* generated/sum_r16.c : Regenerated.
      	* generated/sum_r4.c : Regenerated.
      	* generated/sum_r8.c : Regenerated.
      
      From-SVN: r256323
      Thomas Koenig committed
    • PR 78534, 83704 Handle large formatted I/O · ea99ec5b
      In order to handle large characters when doing formatted I/O, use
      size_t and ptrdiff_t for lengths.  Compared to the previous patch,
      based on discussions on IRC use size_t for sizes that don't need to be
      negative rather than ptrdiff_t everywhere.
      
      Regtested on x86_64-pc-linux-gnu, approved as part of the PR 78534
      approval, committed to trunk.
      
      libgfortran/ChangeLog:
      
      2018-01-07  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR fortran/78534
      	PR fortran/83704
      	* io/fbuf.c (fbuf_init): Use size_t instead of int for length.
      	(fbuf_debug): Convert debug output to unsigned long.
      	(fbuf_reset): Use ptrdiff_t for return value.
      	(fbuf_alloc): Use size_t for length argument.
      	(fbuf_flush): Handle large buffers.
      	(fbuf_flush_list): Likewise.
      	(fbuf_seek): Use ptrdiff_t for offset and return value.
      	(fbuf_read): Use size_t for length argument.
      	(fbuf_getc_refill): Use size_t to match fbuf_read.
      	* io/fbuf.h (struct fbuf): Use size_t for lengths.
      	(fbuf_init): Use size_t instead of int for length.
      	(fbuf_reset): Use ptrdiff_t for return value.
      	(fbuf_alloc): Use size_t for length argument.
      	(fbuf_seek): Use ptrdiff_t for offset and return value.
      	(fbuf_read): Use size_t for length argument.
      	* io/io.h (read_block_form): Likewise.
      	(read_block_form4): Likewise.
      	(write_block): Likewise.
      	(read_a): Likewise.
      	(read_a_char4): Likewise.
      	(read_x): Likewise.
      	(write_a): Likewise.
      	(write_a_char4): Likewise.
      	* io/list_read.c (list_formatted_read_scalar): Use size_t to
      	handle large buffers.
      	* io/read.c (read_l): Likewise.
      	(read_utf8): Likewise.
      	(read_utf8_char1): Likewise.
      	(read_default_char1): Likewise.
      	(read_utf8_char4): Likewise.
      	(read_default_char4): Likewise.
      	(read_a): Likewise.
      	(read_a_char4): Likewise.
      	(eat_leading_spaces): Likewise.
      	(next_char): Likewise.
      	(read_decimal): Likewise.
      	(read_radix): Likewise.
      	(read_f): Likewise.
      	(read_x): Likewise.
      	* io/transfer.c (read_sf_internal): Likewise.
      	(read_sf): Likewise.
      	(read_block_form): Likewise.
      	(read_block_form4): Likewise.
      	(write_block): Likewise.
      	(formatted_transfer_scalar_write): Likewise.
      	(next_record_w): Likewise.
      	* io/unix.c (mem_alloc_r): Likewise.
      	(mem_alloc_r4): Likewise.
      	(mem_alloc_w): Likewise.
      	(mem_alloc_w4): Likewise.
      	(mem_read): Likewise.
      	(mem_read4): Likewise.
      	(mem_write): Likewise.
      	(mem_write4): Likewise.
      	(open_internal): Likewise.
      	(open_internal4): Likewise.
      	* io/unix.h (open_internal): Likewise.
      	(open_internal4): Likewise.
      	(mem_alloc_w): Likewise.
      	(mem_alloc_r): Likewise.
      	(mem_alloc_w4): Likewise.
      	(mem_alloc_r4): Likewise.
      	* io/write.c (write_check_cc): Likewise.
      	(write_cc): Likewise.
      	(write_a): Likewise.
      	(write_a_char4): Likewise.
      
      From-SVN: r256322
      Janne Blomqvist committed
    • Commit right version · c7c9468a
      From-SVN: r256321
      Jeff Law committed