1. 13 Jun, 2018 22 commits
    • re PR sanitizer/86090 ([ASAN] ASAN does not properly configure libbacktrace.) · 3b07c0e5
      2018-06-13  Denis Khalikov  <d.khalikov@partner.samsung.com>
      
      libsanitizer/
      
      	PR sanitizer/86090
      	* configure.ac: Check for lstat and readlink.
      	* configure, config.h.in: Rebuild.
      
      From-SVN: r261564
      Denis Khalikov committed
    • PR c++/86094 - wrong code with defaulted move ctor. · 34a7a230
      gcc/c-family/
      	* c-opts.c (c_common_post_options): Bump the current ABI version to
      	13.  Set warn_abi_version and flag_abi_compat_version to the current
      	version rather than 0.  Fix defaulting flag_abi_compat_version from
      	warn_abi_version.
      gcc/cp/
      	* class.c (classtype_has_non_deleted_move_ctor): New.
      	* tree.c (maybe_warn_parm_abi, type_has_nontrivial_copy_init):
      	Handle v12 breakage.
      
      From-SVN: r261562
      Jason Merrill committed
    • re PR fortran/86110 (ICE in gfc_resolve_character_array_constructor, at fortran/array.c:2044) · 010b9a3e
      2018-06-13  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/86110
      	* array.c (gfc_resolve_character_array_constructor): Avoid NULL 
      	pointer dereference.
      
      2018-06-13  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/86110
      	* gfortran.dg/pr86110.f90: New test.
      
      From-SVN: r261561
      Steven G. Kargl committed
    • compiler: include global variable preinit blocks in ast dumps · de001ec7
          
          Dump out the blocks corresponding to variable pre-inits when
          -fgo-dump-ast is in effect. Each preinit block is prefixed with a
          comment indicating the variable it is initializing.
          
          Reviewed-on: https://go-review.googlesource.com/118636
      
      From-SVN: r261555
      Ian Lance Taylor committed
    • PR libstdc++/86127 avoid unnecessary allocator conversions · 1cc56f07
      There is no need to use an allocator of the correct value_type when
      calling allocator_traits::construct and allocator_traits::destroy. The
      existing node allocator can be used, instead of constructing a new
      allocator object every time.
      
      There's also no benefit to using __gnu_cxx::__alloc_traits instead of
      std::allocator_traits to get the pointer and const_pointer types.
      std::forward_list is only available for C++11 and later, when
      std::allocator_traits is available too.
      
      	PR libstdc++/86127
      	* include/bits/forward_list.h (_Fwd_list_base::_Tp_alloc_type): Remove
      	unused typedef.
      	(_Fwd_list_base::_Node_alloc_traits): Use allocator_traits instead of
      	__gnu_cxx::__alloc_traits.
      	(_Fwd_list_base::_M_create_node, _Fwd_list_base::_M_erase_after):
      	Use node allocator to create and destroy elements.
      	(forward_list::_Tp_alloc_type): Remove unused typedef.
      	(forward_list::_Alloc_traits): Use allocator_traits instead of
      	__gnu_cxx::__alloc_traits.
      
      From-SVN: r261554
      Jonathan Wakely committed
    • tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): Properly set… · 7b76867b
      tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): Properly set vector type of the intermediate stmt.
      
      2018-06-13  Richard Biener  <rguenther@suse.de>
      
      	* tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern):
      	Properly set vector type of the intermediate stmt.
      	* tree-vect-stmts.c (vectorizable_operation): The destination
      	var always has vectype_out type.
      
      From-SVN: r261553
      Richard Biener committed
    • rl78.c (move_elim_pass): Use TDF_NONE rather than integer 0 for argument to print_rtl_with_bb. · 92877928
              * config/rl78/rl78.c (move_elim_pass): Use TDF_NONE rather than
              integer 0 for argument to print_rtl_with_bb.
              (rl78_reorg): Likewise.
      
      From-SVN: r261552
      Jeff Law committed
    • re PR fortran/85703 ([openacc] ICE in resolve_fntype, at fortran/resolve.c:16313) · 0be606d3
      PR fortran/85703
      
      	gcc/fortran/
      	* parse.c (decode_oacc_directive): Set gfc_matching_function
      	to false.
      	(decode_omp_directive): Likewise.
      
      	gcc/testsuite/
      	* gfortran.dg/goacc/pr85703.f90: New test.
      	* gfortran.dg/gomp/pr85703.f90: New test.
      
      From-SVN: r261551
      Cesar Philippidis committed
    • re PR fortran/85702 ([openacc] ICE in gfc_format_decoder, at fortran/error.c:943) · adc41ebe
      PR fortran/85702
      
      	gcc/fortran/
      	* openmp.c (gfc_match_oacc_wait): Use %C to report error location.
      
      	gcc/testsuite/
      	* gfortran.dg/goacc/pr85702.f90: New test.
      
      From-SVN: r261550
      Cesar Philippidis committed
    • libgo: update to Go 1.10.3 release · c9492649
          
          Reviewed-on: https://go-review.googlesource.com/118495
      
      From-SVN: r261549
      Ian Lance Taylor committed
    • emit-rtl.c: more typesafety · 4dea3bff
      This patch converts various rtx to rtx_insn * (or rtx_code_label *).
      It also convert the various "_loc" params from int to location_t
      
      gcc/ChangeLog:
      	* config/arc/arc.c (hwloop_optimize): Strengthen local "end_label"
      	from rtx to rtx_insn *.
      	* config/bfin/bfin.c (hwloop_optimize): Likewise for local
      	"label".
      	(add_sched_insns_for_speculation): Likewise for local "target",
      	converting usage of JUMP_LABEL to JUMP_LABEL_AS_INSN.
      	* config/c6x/c6x.c (reorg_split_calls): Strengthen param "call_labels"
      	from rtx_insn ** to rtx_code_label **.
      	(reorg_emit_nops): Likewise.
      	(c6x_reorg): Likewise for local "call_labels".
      	* config/sh/sh-protos.h (get_dest_uid): Strengthen 1st param from
      	rtx to rtx_insn *.
      	* config/sh/sh.c (dump_table): Strengthen local "lab" from rtx to
      	rtx_code_label *, adding safe_as_a <rtx_code_label *> casts to
      	the loops over LABEL_REFS.
      	(fixup_addr_diff_vecs): Add as_a <rtx_insn *> to usage of
      	braf_label.
      	(barrier_align): Convert usage of JUMP_LABEL to JUMP_LABEL_AS_INSN.
      	(get_dest_uid): Strengthen param "label" from rtx to rtx_insn *.
      	(split_branches): Strengthen local "olabel" from rtx to
      	rtx_insn *, adding a safe_as_a cast.
      	* emit-rtl.c (next_real_insn): Strengthen param from "rtx"
      	to "rtx_insn *".
      	(add_insn_after): Likewise for first two params.
      	(add_insn_before): Likewise.
      	(remove_insn): Likewise for param.
      	(emit_pattern_before_noloc): Likewise for second and third params.
      	(emit_jump_insn_before_noloc): Convert NULL_RTX to NULL.
      	(emit_call_insn_before_noloc): Likewise.
      	(emit_debug_insn_before_noloc): Strengthen "before" param from "rtx"
      	to "rtx_insn *".
      	(emit_barrier_before): Likewise.
      	(emit_label_before): Strengthen "label" param from "rtx" to
      	"rtx_code_label *".  Strengthen "before" param from "rtx" to
      	"rtx_insn *".
      	(emit_insn_after_1): Strengthen "after" param from "rtx" to
      	"rtx_insn *".
      	(emit_pattern_after_noloc): Likewise.
      	(emit_insn_after_noloc): Likewise.
      	(emit_jump_insn_after_noloc): Likewise.
      	(emit_call_insn_after_noloc): Likewise.
      	(emit_debug_insn_after_noloc): Likewise.
      	(emit_barrier_after): Likewise.
      	(emit_label_after): Likewise for both params.
      	(emit_pattern_after_setloc): Likewise for "after" param.  Convert
      	"loc" param from "int" to "location_t".
      	(emit_insn_after_setloc): Likewise.
      	(emit_jump_insn_after_setloc): Likewise.
      	(emit_call_insn_after_setloc): Likewise.
      	(emit_debug_insn_after_setloc): Likewise.
      	(emit_pattern_before_setloc): Likewise for "before" param.  Convert
      	"loc" param from "int" to "location_t".
      	(emit_pattern_before): Convert NULL_RTX to NULL.
      	(emit_insn_before_setloc): Convert "loc" param from "int" to
      	"location_t".
      	(emit_jump_insn_before_setloc): Likewise.
      	(emit_call_insn_before_setloc): Likewise.
      	(emit_debug_insn_before_setloc): Strengthen "before" param from rtx to
      	rtx_insn *.  Convert "loc" param from "int" to "location_t".
      	* rtl.h (emit_insn_before_setloc, emit_jump_insn_before_setloc,
      	emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
      	Convert 3rd param from "int" to "location_t".
      	(emit_barrier_before, emit_barrier_after, next_real_insn):
      	Strengthen param from rtx to rtx_insn *.
      	(emit_label_before): Strengthen 1st param from "rtx" to
      	"rtx_code_label *".  Strengthen 2nd param from "rtx" to
      	"rtx_insn *".
      	(emit_insn_after_noloc, emit_jump_insn_after_noloc,
      	emit_call_insn_after_noloc, emit_debug_insn_after_noloc):
      	Strengthen 2nd param from "rtx" to "rtx_insn *".
      	(emit_insn_after_setloc, emit_jump_insn_after_setloc)
      	emit_call_insn_after_setloc, emit_debug_insn_after_setloc):
      	Likewise. Convert 3rd param from "int" to "location_t".
      	(emit_label_after): Strengthen 1st param from "rtx" to
      	"rtx_code_label *".
      	(next_real_insn, remove_insn): Strengthen param from "rtx" to
      	"rtx_insn *".
      	(add_insn_before, add_insn_after): Strengthen 1st and 2nd params
      	from "rtx" to "rtx_insn *".
      
      From-SVN: r261547
      David Malcolm committed
    • cgraph.c (cgraph_node::get_untransformed_body): Dump function bodies streamed in with -Q. · b4da704c
      
      	* cgraph.c (cgraph_node::get_untransformed_body): Dump function
      	bodies streamed in with -Q.
      	* dumpfile.c (dump_files): Add lto-stream-out dump file.
      	* dumpfile.h (tree_dump_index): Add lto_stream_out.
      	* gimple-streamer-out.c: Include gimple-pretty-print.h
      	(output_bb): Dump stmts streamed.
      	* lto-section-out.c: Include print-tree.h
      	(lto_begin_section): Dump sections created.
      	(lto_output_decl_index): Dump decl encoded.
      	* lto-streamer-out.c: Include print-tree.h
      	(create_output_block): Dump output block created.
      	(DFS::DFS_write_tree_body): Dump DFS SCCs streamed.
      	(output_function): Dump function output.
      	(output_constructor): Dump constructor streamed.
      	(write_global_stream): Output indexes encoded.
      	(produce_asm_for_decls): Dump streams encoded.
      	* lto-streamer.c (streamer_dump_file): New global var.
      	* lto-streamer.h (streamer_dump_file): Declare.
      	* passes.c (ipa_write_summaries): Initialize streamer dump.
      	* varpool.c (varpool_node::get_constructor): Dump constructors streamed
      	in.
      
      From-SVN: r261546
      Jan Hubicka committed
    • re PR target/86048 (.seh_savexmm offset is negative error when compiling libpng) · 70e18df7
      	PR target/86048
      	* config/i386/winnt.c (i386_pe_seh_cold_init): Do not emit negative
      	offsets for register save directives.  Emit a second batch of save
      	directives, if need be, when the function accesses prior frames.
      
      From-SVN: r261544
      Eric Botcazou committed
    • [ARC] Update fma expansions. · 8c191c89
      Accept at most a single constant for fma patterns.
      
      gcc/
      2018-03-21  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/fpu.md (fmasf4): Force operand to register.
      	(fnmasf4): Likewise.
      
      gcc/testsuite
      2018-03-21  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* gcc.target/arc/fma-1.c: New test.
      
      From-SVN: r261543
      Claudiu Zissulescu committed
    • [ARC] Reimplement return padding operation for ARC700. · 16493b57
      For ARC700, adding padding if necessary to avoid a mispredict.  A
      return could happen immediately after the function start.  A
      call/return and return/return must be 6 bytes apart to avoid
      mispredict.
      
      The old implementation was doing this operation very late in the
      compilation process, and the additional nop instructions and/or
      forcing some other instruction to take their long form was not taken
      into account when generating brcc instructions. Thus, wrong code could
      be generated.
      
      gcc/
      2017-03-24  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc-protos.h (arc_pad_return): Remove.
      	* config/arc/arc.c (machine_function): Remove force_short_suffix
      	and size_reason.
      	(arc_print_operand): Adjust printing of '&'.
      	(arc_verify_short): Remove conditional printing of short suffix.
      	(arc_final_prescan_insn): Remove reference to size_reason.
      	(pad_return): New function.
      	(arc_reorg): Call pad_return.
      	(arc_pad_return): Remove.
      	(arc_init_machine_status): Remove reference to force_short_suffix.
      	* config/arc/arc.md (vunspec): Add VUNSPEC_ARC_BLOCKAGE.
      	(attr length): When attribute iscompact is true force to 2
      	regardless; in the case of maybe check if we want to force the
      	instruction to have 4 bytes length.
      	(nopv): Change it to generate 4 byte long nop as well.
      	(blockage): New pattern.
      	(simple_return): Remove call to arc_pad_return.
      	(p_return_i): Likewise.
      
      gcc/testsuite/
      2017-03-24  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* gcc.target/arc/pr9001107555.c: New file.
      
      From-SVN: r261542
      Claudiu Zissulescu committed
    • [ARC] Define LINK_GCC_C_SEQUENCE_SPEC. · 60a3f659
      If no specs file is provided, default to nosys library.
      
      gcc/
      2017-05-03  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
      
      From-SVN: r261541
      Claudiu Zissulescu committed
    • [ARC] SYNC instruction is valid on all ARC cores. · 376c55a0
      gcc/
      2017-05-03  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/builtins.def (SYNC): SYNC instruction is valid on all
      	ARC cores.
      
      From-SVN: r261540
      Claudiu Zissulescu committed
    • [ARC] Allow EX instruction unconditionally · adea5023
      gcc/
      2017-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.c (atomic_exchangesi): EX instruction is default
      	for ARC700 and ARCv2.
      
      From-SVN: r261539
      Claudiu Zissulescu committed
    • re PR tree-optimization/86076 (ICE: verify_gimple failed (error: location… · 7a723d82
      re PR tree-optimization/86076 (ICE: verify_gimple failed (error: location references block not in block tree))
      
      2018-06-13  Chenghua Xu <paul.hua.gm@gmail.com>
      
      	PR target/86076
      	* config/mips/loongson.md (vec_setv4hi): Gen_lowpart for
      	operands[2] instead of operands[1].
      
      From-SVN: r261538
      Chenghua Xu committed
    • debug.h (__glibcxx_requires_can_increment_range): New. · cde650fe
      2018-06-13  François Dumont  <fdumont@gcc.gnu.org>
      
      	* include/debug/debug.h (__glibcxx_requires_can_increment_range): New.
      	(__glibcxx_requires_can_decrement_range): New.
      
      From-SVN: r261537
      François Dumont committed
    • PR c++/86098 - ICE with template placeholder for TTP. · 79a9afa5
      	* typeck.c (structural_comptypes) [TEMPLATE_TYPE_PARM]: Check
      	CLASS_PLACEHOLDER_TEMPLATE.
      
      From-SVN: r261536
      Jason Merrill committed
    • Daily bump. · 8b4b756f
      From-SVN: r261535
      GCC Administrator committed
  2. 12 Jun, 2018 18 commits
    • Tighten LRA test for reloading the inner reg of a paradoxical subreg · 8fd96632
      This patch fixes an LRA cycling problem on the attached testcase.
      The original insn was:
      
      (insn 74 72 76 8 (set (reg:V2DI 287 [ _166 ])
              (subreg:V2DI (reg/v/f:DI 112 [ d ]) 0)) 1060 {*aarch64_simd_movv2di}
           (nil))
      
      which IRA converted to:
      
      (insn 74 72 580 8 (set (reg:V2DI 287 [ _166 ])
              (subreg:V2DI (reg/v/f:DI 517 [orig:112 d ] [112]) 0)) 1060 {*aarch64_simd_movv2di}
           (nil))
      
      after creating loop allocnos.  It happens that the ALLOCNO_WMODEs for
      both 112 and 517 were not set to V2DI due to another bug that I'll post
      a separate patch for, but we nevertheless got a valid allocation of
      register 1.
      
      LRA's first try at constraining the instruction gave:
      
               Choosing alt 5 in insn 74:  (0) ?w  (1) r {*aarch64_simd_movv2di}
      
      at which point all was good.  But LRA later decided it needed
      to spill r517:
      
          Spill r517 after risky transformations
      
      so the next constraint attempt gave:
      
               Choosing alt 0 in insn 74:  (0) =w  (1) m {*aarch64_simd_movv2di}
      
      which was still good.  Then during inheritance we had:
      
            Creating newreg=672 from oldreg=517, assigning class GENERAL_REGS to inheritance r672
          Original reg change 517->672 (bb8):
         74: r287:V2DI=r672:DI#0
          Add inheritance<-original before:
        939: r672:DI=r517:DI
      
          Inheritance reuse change 517->672 (bb8):
        620: r572:DI=r672:DI
            REG_DEAD r672:DI
      
          Use smallest class of POINTER_REGS and GENERAL_REGS
            Creating newreg=673 from oldreg=517, assigning class POINTER_REGS to inheritance r673
          Original reg change 517->673 (bb8):
        936: r669:DI=r673:DI
          Add inheritance<-original before:
        940: r673:DI=r517:DI
      
      ("Use smallest class of POINTER_REGS and GENERAL_REGS" ought to
      give GENERAL_REGS.  That might be a missed optimisation, and probably
      due to both classes having the same number of allocatable registers.
      I'll look at that as a follow-on.)
      
      Thus LRA created two inheritance registers for r517, one (r673)
      that included the unallocatable x31 and another (r672) that didn't.
      The r672 references included the paradoxical subreg in insn 74 but the
      r673 ones didn't.  LRA then allocated x30 to r673, which was a valid
      choice.
      
      Later LRA decided to "undo" the inheritance for insn 620, but because
      of the double inheritance, it got confused as to what the original
      situation was, and made insn 74 use the other inheritance register
      instead of r517:
      
      ********** Undoing inheritance #2: **********
      
      Inherit 11 out of 12 (91.67%)
         Insn after restoring regs:
        620: r572:DI=r517:DI
            REG_DEAD r517:DI
          Change reload insn:
         74: r287:V2DI=r673:DI#0       <-------------------
         Insn after restoring regs:
        939: r517:DI=r673:DI
            REG_DEAD r673:DI
      
      This might be a bug in itself: we should probably look through sets
      of other inheritance pseudos to find the "real" origin.
      
      Either way, at this point we had a situation in which r673 was used in an
      insn whose subreg was larger than the biggest_mode that r673 had when it
      was allocated.  While x30 was valid for the original biggest_mode, it
      wasn't valid for this subreg use.
      
      The next attempt to constrain insn 74 was:
      
              Choosing alt 5 in insn 74:  (0) ?w  (1) r {*aarch64_simd_movv2di}
            Creating newreg=684, assigning class GENERAL_REGS to r684
         74: r287:V2DI=r684:V2DI
          Inserting insn reload before:
        951: r684:V2DI=r673:DI#0
      
      where LRA reloaded the SUBREG rather than the SUBREG_REG.  And it
      then cycled trying the same thing when reloading the reload (and the
      reload of the reload, etc.).
      
      What it should be doing here is reloading the SUBREG_REG instead.
      There's already code to cope with this case when the paradoxical
      subreg falls outside the class (which isn't true here, since r673
      is POINTER_REGS and POINTER_REGS includes x31).  But I think we
      should also test whether LRA is entitled to allocate the spanned
      registers.  Not doing that seems like a bug regardless of the above
      missed optimisation and the mix-up undoing inheritance.
      
      2018-05-30  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* lra-constraints.c (simplify_operand_subreg): In the paradoxical
      	case, check whether the outer register overlaps an unallocatable
      	register, not just whether it fits the required class.
      
      gcc/testsuite/
      	* g++.dg/torture/aarch64-vect-init-1.C: New test.
      
      From-SVN: r261531
      Richard Sandiford committed
    • Use poly_int rtx accessors instead of hwi accessors · 5284e559
      This patch generalises various places that used hwi rtx accessors so
      that they can handle poly_ints instead.  In many cases these changes
      are by inspection rather than because something had shown them to be
      necessary.
      
      2018-06-12  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* poly-int.h (can_div_trunc_p): Add new overload in which all values
      	are poly_ints.
      	* alias.c (get_addr): Extend CONST_INT handling to poly_int_rtx_p.
      	(memrefs_conflict_p): Likewise.
      	(init_alias_analysis): Likewise.
      	* cfgexpand.c (expand_debug_expr): Likewise.
      	* combine.c (combine_simplify_rtx, force_int_to_mode): Likewise.
      	* cse.c (fold_rtx): Likewise.
      	* explow.c (adjust_stack, anti_adjust_stack): Likewise.
      	* expr.c (emit_block_move_hints): Likewise.
      	(clear_storage_hints, push_block, emit_push_insn): Likewise.
      	(store_expr_with_bounds, reduce_to_bit_field_precision): Likewise.
      	(emit_group_load_1): Use rtx_to_poly_int64 for group offsets.
      	(emit_group_store): Likewise.
      	(find_args_size_adjust): Use strip_offset.  Use rtx_to_poly_int64
      	to read the PRE/POST_MODIFY increment.
      	* calls.c (store_one_arg): Use strip_offset.
      	* rtlanal.c (rtx_addr_can_trap_p_1): Extend CONST_INT handling to
      	poly_int_rtx_p.
      	(set_noop_p): Use rtx_to_poly_int64 for the elements selected
      	by a VEC_SELECT.
      	* simplify-rtx.c (avoid_constant_pool_reference): Use strip_offset.
      	(simplify_binary_operation_1): Extend CONST_INT handling to
      	poly_int_rtx_p.
      	* var-tracking.c (compute_cfa_pointer): Take a poly_int64 rather
      	than a HOST_WIDE_INT.
      	(hard_frame_pointer_adjustment): Change from HOST_WIDE_INT to
      	poly_int64.
      	(adjust_mems, add_stores): Update accodingly.
      	(vt_canonicalize_addr): Track polynomial offsets.
      	(emit_note_insn_var_location): Likewise.
      	(vt_add_function_parameter): Likewise.
      	(vt_initialize): Likewise.
      
      From-SVN: r261530
      Richard Sandiford committed
    • config.gcc (alpha*-*-freebsd*): Remove. · 6044eae7
      	* config.gcc (alpha*-*-freebsd*): Remove.
      	* config/alpha/freebsd.h: Remove.
      
      contrib/
      
      	* config-list.mk (LIST): Remove alpha-freebsd6.
      
      From-SVN: r261529
      Jeff Law committed
    • decl2.c (coerce_new_type, [...]): Add location_t parameter and adjust error_at calls. · 3791aece
      /cp
      2018-06-12  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* decl2.c (coerce_new_type, coerce_delete_type): Add location_t
      	parameter and adjust error_at calls.
      	* decl.c (grok_op_properties): Adjust calls.
      	* cp-tree.h (oerce_new_type, coerce_delete_type): Adjust decls.
      
      /testsuite
      2018-06-12  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* g++.dg/init/delete3.C: New.
      	* g++.dg/init/new49.C: Likewise.
      	* g++.dg/init/new25.C: Test locations too.
      	* g++.dg/template/new4.C: Likewise.
      	* g++.old-deja/g++.jason/operator.C: Likewise.
      
      From-SVN: r261528
      Paolo Carlini committed
    • decl2.c (coerce_new_type, [...]): Add location_t parameter and adjust error_at calls. · 2d10ccaa
      /cp
      2018-06-12  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* decl2.c (coerce_new_type, coerce_delete_type): Add location_t
      	parameter and adjust error_at calls.
      	* decl.c (grok_op_properties): Adjust calls.
      	* cp-tree.h (oerce_new_type, coerce_delete_type): Adjust decls.
      
      /testsuite
      2018-06-12  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* g++.dg/init/delete3.C: New.
      	* g++.dg/init/new49.C: Likewise.
      	* g++.dg/init/new25.C: Test locations too.
      	* g++.dg/template/new4.C: Likewise.
      	* g++.old-deja/g++.jason/operator.C: Likewise.
      
      From-SVN: r261527
      Paolo Carlini committed
    • Core issue 1331 - const mismatch with defaulted copy constructor · 4db9ca86
      	Core issue 1331 - const mismatch with defaulted copy constructor
      	* class.c (check_bases_and_members): When checking a defaulted
      	function, mark it as deleted rather than giving an error.
      
      	* g++.dg/cpp0x/defaulted15.C (struct F): Remove dg-error.
      	* g++.dg/cpp0x/defaulted52.C: New test.
      	* g++.dg/cpp0x/defaulted53.C: New test.
      	* g++.dg/cpp0x/defaulted54.C: New test.
      	* g++.dg/cpp0x/defaulted55.C: New test.
      	* g++.dg/cpp0x/defaulted56.C: New test.
      	* g++.dg/cpp0x/defaulted57.C: New test.
      	* g++.dg/cpp0x/defaulted58.C: New test.
      	* g++.dg/cpp0x/defaulted59.C: New test.
      	* g++.dg/cpp0x/defaulted60.C: New test.
      
      From-SVN: r261526
      Marek Polacek committed
    • macros.h (__glibcxx_check_can_increment_range): New. · 84a9d3b6
      2018-06-12  François Dumont  <fdumont@gcc.gnu.org>
      
      	* include/debug/macros.h (__glibcxx_check_can_increment_range): New.
      	(__glibcxx_check_can_decrement_range): New.
      	* include/debug/debug.h (__glibcxx_requires_can_increment_range): New.
      	(__glibcxx_requires_can_decrement_range): New.
      	* include/bits/stl_algobase.h (std::copy(_II, _II, _OI)): Use
      	__glibcxx_requires_can_increment_range.
      	(std::move(_II, _II, _OI)): Likewise.
      	(std::copy_backward(_BI, _BI, _BI2)): Use
      	__glibcxx_requires_can_decrement_range.
      	(std::move_backward(_BI, _BI, _BI2)): Likewise.
      	* testsuite/25_algorithms/copy_backward/debug/1_neg.cc: New.
      	* testsuite/25_algorithms/copy_backward/debug/2_neg.cc: New.
      	* testsuite/25_algorithms/copy_backward/debug/3_neg.cc: New.
      	* testsuite/25_algorithms/equal/debug/1_neg.cc: New.
      	* testsuite/25_algorithms/equal/debug/2_neg.cc: New.
      	* testsuite/25_algorithms/equal/debug/3_neg.cc: New.
      
      From-SVN: r261525
      François Dumont committed
    • P0935R0 Eradicating unnecessarily explicit default constructors · dd9db6f8
      Explicit default constructors are problematic, so this change removes
      them from <random> and <ext/random>, as per P0935R0.
      
      	* include/bits/random.h (linear_congruential_engine)
      	(mersenne_twister_engine, subtract_with_carry_engine, random_device)
      	(uniform_real_distribution, normal_distribution)
      	(lognormal_distribution, gamma_distribution, chi_squared_distribution)
      	(cauchy_distribution, fisher_f_distribution, student_t_distribution)
      	(bernoulli_distribution, binomial_distribution,geometric_distribution)
      	(negative_binomial_distribution, exponential_distribution)
      	(weibull_distribution, extreme_value_distribution): Add non-explicit
      	default constructors. Remove default argument for first parameter of
      	explicit constructors.
      	(piecewise_constant_distribution, piecewise_linear_distribution):
      	Make default constructor non-explicit.
      	* include/bits/uniform_int_dist.h (uniform_int_distribution): Add
      	non-explicit default constructors. Remove default argument for first
      	parameter of explicit constructor.
      	(simd_fast_mersenne_twister_engine, beta_distribution)
      	(rice_distribution, nakagami_distribution, pareto_distribution)
      	(k_distribution, arcsine_distribution, hoyt_distribution)
      	(triangular_distribution, von_mises_distribution)
      	(hypergeometric_distribution, logistic_distribution)
      	(uniform_inside_sphere_distribution): Likewise.
      	(uniform_on_sphere_distribution): Make default constructor
      	non-explicit.
      	* testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
      	Test for non-explicit default constructor. Fix references to standard.
      	* testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
      	Likewise.
      	* testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
      	Likewise.
      	* testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
      	Likewise.
      	* testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
      	Likewise.
      	* testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
      	Likewise.
      	* testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
      	Likewise.
      	* testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
      	Likewise.
      	* testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
      	Likewise.
      	* testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
      	Likewise.
      	* testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
      	Likewise.
      	* testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
      	Likewise.
      	* testsuite/26_numerics/random/normal_distribution/cons/default.cc:
      	Likewise.
      	* testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
      	Likewise.
      	* testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
      	Likewise.
      	* testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
      	Likewise.
      	* testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
      	Likewise.
      	* testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
      	Likewise.
      	* testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
      	Likewise.
      	* testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
      	Likewise.
      	* testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
      	* testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
      	* testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
      	* testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
      	Likewise.
      	* testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
      	* testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
      	* testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
      	* testsuite/ext/random/normal_mv_distribution/cons/default.cc:
      	Likewise.
      	* testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
      	* testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
      	* testsuite/ext/random/triangular_distribution/cons/default.cc:
      	Likewise.
      	* testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
      	Likewise.
      	* testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
      	Likewise.
      	* testsuite/ext/random/von_mises_distribution/cons/default.cc:
      	Likewise.
      	* testsuite/util/testsuite_common_types.h
      	(implicitly_default_constructible): New helper.
      
      From-SVN: r261522
      Jonathan Wakely committed
    • spellcheck: support transpositions aka Damerau-Levenshtein (PR other/69968) · b80a188b
      gcc/fortran/ChangeLog:
      	PR other/69968
      	* misc.c (gfc_closest_fuzzy_match): Update for renaming of
      	levenshtein_distance to get_edit_distance.
      
      gcc/ChangeLog:
      	PR other/69968
      	* spellcheck-tree.c (levenshtein_distance): Rename to...
      	(get_edit_distance): ...this, and update for underlying renaming.
      	* spellcheck-tree.h (levenshtein_distance): Rename to...
      	(get_edit_distance): ...this.
      	* spellcheck.c (levenshtein_distance): Rename to...
      	(get_edit_distance): ...this.  Convert from Levenshtein distance
      	to Damerau-Levenshtein distance by supporting transpositions of
      	adjacent characters.  Rename "v1" to "v_next" and "v0" to
      	"v_one_ago".
      	(selftest::levenshtein_distance_unit_test_oneway): Rename to...
      	(selftest::test_edit_distance_unit_test_oneway): ...this, and
      	update for underlying renaming.
      	(selftest::levenshtein_distance_unit_test): Rename to...
      	(selftest::test_get_edit_distance_unit): ...this, and update for
      	underlying renaming.
      	(selftest::test_find_closest_string): Add example from PR 69968
      	where transposition helps
      	(selftest::test_metric_conditions): Update for renaming.
      	(selftest::test_metric_conditions): Likewise.
      	(selftest::spellcheck_c_tests): Likewise.
      	* spellcheck.h (levenshtein_distance): Rename both overloads to...
      	(get_edit_distance): ...this.
      	(best_match::consider): Update for renaming.
      
      gcc/testsuite/ChangeLog:
      	PR other/69968
      	* gcc.dg/spellcheck-transposition.c: New test.
      
      From-SVN: r261521
      David Malcolm committed
    • PR tree-optimization/85259 - Missing -Wstringop-overflow= since r256683 · e3329a78
      gcc/ChangeLog:
      
      	PR tree-optimization/85259
      	* builtins.c (compute_objsize): Handle constant offsets.
      	* gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Return
      	true iff a warning has been issued.
      	* gimple.h (gimple_nonartificial_location): New function.
      	* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Call
      	gimple_nonartificial_location and handle -Wno-system-headers.
      	(handle_builtin_stxncpy): Same.
      
      gcc/testsuite/ChangeLog:
      
      	PR tree-optimization/85259
      	* gcc.dg/Wstringop-overflow-5.c: New test.
      	* gcc.dg/Wstringop-overflow-6.c: New test.
      
      From-SVN: r261518
      Martin Sebor committed
    • re PR fortran/44491 (Diagnostic just shows "<During initialization>" instead of a locus) · 47feeb36
      2018-06-12  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/44491
      	* expr.c (gfc_check_assign): Select non-NULL locus.
      
      2018-06-12  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/44491
      	* gfortran.dg/pr44491.f90: New testcase
      
      From-SVN: r261516
      Steven G. Kargl committed
    • PR c/85931 - -Wsizeof-pointer-memaccess for strncpy with size of source · bb0f14ae
      gcc/c-family/ChangeLog:
      
      	PR c/85931
      	* c-warn.c (sizeof_pointer_memaccess_warning): Avoid warning when
      	sizeof source and destination yields the same value.
      
      gcc/ChangeLog:
      
      	PR c/85931
      	* fold-const.c (operand_equal_p): Handle SAVE_EXPR.
      
      gcc/testsuite/ChangeLog:
      
      	PR c/85931
      	* gcc.dg/Wstringop-truncation-3.c: New test.
      
      From-SVN: r261515
      Martin Sebor committed
    • p8-vec-xl-xst-v2.c: New.(actually added this time). · 132afeec
      
      [testsuite]
      
      2018-05-31  Will Schmidt  <will_schmidt@vnet.ibm.com>
      
      	* gcc.target/powerpc/p8-vec-xl-xst-v2.c: New.(actually added this time).
      
      From-SVN: r261510
      Will Schmidt committed
    • p8-vec-xl-xst-v2.c: New. · 3ea94d35
      
      [testsuite]
      
      2018-05-31  Will Schmidt  <will_schmidt@vnet.ibm.com>
      
      	* gcc.target/powerpc/p8-vec-xl-xst-v2.c: New.
      	* gcc.target/powerpc/p8-vec-xl-xst.c: Disable gimple-folding.
      	* gcc.target/powerpc/swaps-p8-17.c: Same.
      
      From-SVN: r261509
      Will Schmidt committed
    • fold-vec-store-vec_vsx_st-char.c: New. · dc4dd8e3
      
      [testsuite]
      
      2018-05-31  Will Schmidt  <will_schmidt@vnet.ibm.com>
      
      	* gcc.target/powerpc/fold-vec-store-vec_vsx_st-char.c: New.
      	* gcc.target/powerpc/fold-vec-store-vec_vsx_st-double.c: New.
      	* gcc.target/powerpc/fold-vec-store-vec_vsx_st-float.c: New.
      	* gcc.target/powerpc/fold-vec-store-vec_vsx_st-int.c: New.
      	* gcc.target/powerpc/fold-vec-store-vec_vsx_st-longlong.c: New.
      	* gcc.target/powerpc/fold-vec-store-vec_vsx_st-short.c: New.
      
      From-SVN: r261508
      Will Schmidt committed
    • fold-vec-store-builtin_vec_xst-char.c: New. · 0c382cfa
      
      [testsuite]
      
      2018-05-31  Will Schmidt  <will_schmidt@vnet.ibm.com>
      
      	* gcc.target/powerpc/fold-vec-store-builtin_vec_xst-char.c: New.
      	* gcc.target/powerpc/fold-vec-store-builtin_vec_xst-double.c: New.
      	* gcc.target/powerpc/fold-vec-store-builtin_vec_xst-float.c: New.
      	* gcc.target/powerpc/fold-vec-store-builtin_vec_xst-int.c: New.
      	* gcc.target/powerpc/fold-vec-store-builtin_vec_xst-longlong.c: New.
      	* gcc.target/powerpc/fold-vec-store-builtin_vec_xst-short.c: New.
      
      From-SVN: r261507
      Will Schmidt committed
    • fold-vec-store-vec_xst-char.c: New. · a83a8cdf
      
      [testsuite]
      
          2018-05-31  Will Schmidt  <will_schmidt@vnet.ibm.com>
      
      	* gcc.target/powerpc/fold-vec-store-vec_xst-char.c: New.
      	* gcc.target/powerpc/fold-vec-store-vec_xst-double.c: New.
      	* gcc.target/powerpc/fold-vec-store-vec_xst-float.c: New.
      	* gcc.target/powerpc/fold-vec-store-vec_xst-int.c: New.
      	* gcc.target/powerpc/fold-vec-store-vec_xst-longlong.c: New.
      	* gcc.target/powerpc/fold-vec-store-vec_xst-short.c: New.
      
      From-SVN: r261506
      Will Schmidt committed
    • fold-vec-load-vec_vsx_ld-char.c: New. · 965fa640
      
      [testsuite]
      
      2018-05-31  Will Schmidt  <will_schmidt@vnet.ibm.com>
      
      	* gcc.target/powerpc/fold-vec-load-vec_vsx_ld-char.c: New.
      	* gcc.target/powerpc/fold-vec-load-vec_vsx_ld-double.c: New.
      	* gcc.target/powerpc/fold-vec-load-vec_vsx_ld-float.c: New.
      	* gcc.target/powerpc/fold-vec-load-vec_vsx_ld-int.c: New.
      	* gcc.target/powerpc/fold-vec-load-vec_vsx_ld-longlong.c: New.
      	* gcc.target/powerpc/fold-vec-load-vec_vsx_ld-short.c: New.
      
      From-SVN: r261505
      Will Schmidt committed