1. 25 Jan, 2019 11 commits
    • This is pretty unlikely in real code... · c590597c
      This is pretty unlikely in real code, but similar to Arm, the AArch64
      ABI has a bug with the handling of 128-bit bit-fields, where if the
      bit-field dominates the overall alignment the back-end code may end up
      passing the argument correctly.  This is a regression that started in
      gcc-6 when the ABI support code was updated to support overaligned
      types.  The fix is very similar in concept to the Arm fix.  128-bit
      bit-fields are fortunately extremely rare, so I'd be very surprised if
      anyone has been bitten by this.
      
      PR target/88469
      gcc/
      	* config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new
      	argument ABI_BREAK.  Set to true if the calculated alignment has
      	changed in gcc-9.  Check bit-fields for their base type alignment.
      	(aarch64_layout_arg): Warn if argument passing has changed in gcc-9.
      	(aarch64_function_arg_boundary): Likewise.
      	(aarch64_gimplify_va_arg_expr): Likewise.
      
      gcc/testsuite/
      	* gcc.target/aarch64/aapcs64/test_align-10.c: New test.
      	* gcc.target/aarch64/aapcs64/test_align-11.c: New test.
      	* gcc.target/aarch64/aapcs64/test_align-12.c: New test.
      
      From-SVN: r268273
      Richard Earnshaw committed
    • Fix output_constructor_bitfield handling of wide bitfields (PR89037) · 3c35efc3
      The testcase was failing because we were trying to access
      TREE_INT_CST_ELT (x, 1) of a 128-bit integer that was small enough
      to need only a single element.
      
      2019-01-25  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	PR middle-end/89037
      	* varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
      	instead of accessing TREE_INT_CST_ELT directly.
      
      gcc/testsuite/
      	PR middle-end/89037
      	* gcc.dg/pr89037.c: New test.
      
      From-SVN: r268272
      Richard Sandiford committed
    • Fix Xiong's changelogs a bit · 62fa42ce
      From-SVN: r268271
      Segher Boessenkool committed
    • [libbacktrace] Fix strrchr segfault · c75795fa
      Currently, when running a libbacktrace testcase t with .gnu_debuglink to
      t.debug, and t.debug having a .gnu_debugaltlink to t.alt.debug, a segfault
      is triggered when calling strrchr with a NULL string from
      elf_find_debugfile_by_debuglink.  The NULL string originates from the elf_add
      called for the .gnu_debugaltlink, which uses NULL as filename argument.
      
      Fix this by using "" as filename argument instead.
      
      2019-01-25  Tom de Vries  <tdevries@suse.de>
      
      	* elf.c (elf_add): When handling .gnu_debugaltlink, call elf_add with
      	filename == "".
      	* Makefile.am (TESTS): Add btest_dwz_gnudebuglink.
      	* Makefile.in: Regenerate.
      
      From-SVN: r268269
      Tom de Vries committed
    • [libbacktrace] Rename dtest to btest_gnudebuglink · 37ab491d
      Create a pattern rule for copying an existing test-case, separating out the
      debug information into a .debug file, and referencing the .debug file from
      the copied test-case using a .gnu_debuglink.
      
      2019-01-25  Tom de Vries  <tdevries@suse.de>
      
      	* Makefile.am: Rewrite dtest rule into "%_gnudebuglink" pattern rule.
      	(TESTS): Rename dtest to btest_gnudebuglink.
      	* Makefile.in: Regenerate.
      
      From-SVN: r268268
      Tom de Vries committed
    • [testsuite] Add missing fenv effective target to fp-int-convert-timode* tests. · 55ac4e01
      2019-01-25  Christophe Lyon  <christophe.lyon@linaro.org>
      
      	gcc/
      	* doc/sourcebuild.texi (Environment attributes): Add fenv and
      	fenv_exceptions description.
      
      2019-01-25  Christophe Lyon  <christophe.lyon@linaro.org>
      
      	gcc/testsuite/
      	* lib/target-supports.exp (check_effective_target_fenv): New.
      	* gcc.dg/torture/fp-int-convert-float128-timode-3.c: Add missing
      	fenv effective target.
      	* gcc.dg/torture/fp-int-convert-timode-1.c: Likewise.
      	* gcc.dg/torture/fp-int-convert-timode-2.c: Likewise.
      	* gcc.dg/torture/fp-int-convert-timode-3.c: Likewise.
      	* gcc.dg/torture/fp-int-convert-timode-4.c: Likewise.
      
      From-SVN: r268266
      Christophe Lyon committed
    • [PATCH][AArch64] Fix generation of tst (PR87763) · f73dc006
      The TST instruction no longer matches in all cases due to changes in
      Combine.  The fix is simple, we now need to allow a subreg as well when
      selecting the cc_mode.  This fixes the tst_5.c and tst_6.c failures.
      
      AArch64 regress & bootstrap OK.
      
      	PR rtl-optimization/87763
      	* config/aarch64/aarch64.c (aarch64_select_cc_mode):
      	Allow SUBREG when matching CC_NZmode compare.
      
      From-SVN: r268265
      Wilco Dijkstra committed
    • re PR tree-optimization/89049 (Unexpected vectorization) · cb1ba35f
      2019-01-25  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/89049
      	* tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
      	Look at the pattern stmt to determine if the stmt is vectorized.
      
      From-SVN: r268264
      Richard Biener committed
    • [AArch64][SVE] Handle register-register pred_movs · 9c6b4601
      pred_mov<mode> is defined for predicated loads and stores, where
      exactly one of the operands is a register.  However, the instruction
      condition only checked for "one" rather than "exactly one", and
      Prathamesh found a case in which combine could fold a predicated
      pattern to an all-register pred_mov<mode>.  The constraints would
      then force one of the registers to memory.
      
      This patch splits all-register forms into a normal move as soon
      as possible, but also adds an all-register alternative in case the
      instruction doesn't get split before RA (or in case the RA can use
      inheritance to avoid a reload).
      
      The testcase for this will be added to aarch64/sve-acle-branch.
      
      2018-01-25  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* config/aarch64/aarch64-sve.md (*pred_mov<mode>)
      	(pred_mov<mode>): Handle all-register forms using both a new
      	alternative and a split.
      
      From-SVN: r268263
      Richard Sandiford committed
    • re PR tree-optimization/86865 (Wrong code w/ -O2 -floop-parallelize-all… · 2ad04111
      re PR tree-optimization/86865 (Wrong code w/ -O2 -floop-parallelize-all -fstack-reuse=none -fwrapv -fno-tree-ch -fno-tree-dce -fno-tree-dominator-opts -fno-tree-loop-ivcanon)
      
      2019-01-25  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/86865
      	* graphite-scop-detection.c (scop_detection::can_represent_loop):
      	Reject non-do-while loops.
      
      	* gcc.dg/graphite/pr86865.c: New testcase.
      	* gcc.dg/graphite/pr69728.c: XFAIL.
      	* gcc.dg/graphite/scop-21.c: Likewise.
      
      From-SVN: r268257
      Richard Biener committed
    • Daily bump. · bb58a17b
      From-SVN: r268256
      GCC Administrator committed
  2. 24 Jan, 2019 22 commits
    • altivec.md (build_vector_mask_for_load): Use MEM_P. · 2e42a52f
      	* config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P.
      	* config/rs6000/constraints.md (Q constraint): Use REG_P.
      	* config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P.
      	* config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
      	SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P.
      	* config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
      	* config/rs6000/predicates.md (altivec_register_operand, vint_operand,
      	vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand,
      	vlogical_operand, gpc_reg_operand, int_reg_operand,
      	int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P.
      	(ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand,
      	cc_reg_not_cr0_operand, input_operand): Use SUBREG_P.
      	(save_world_operation, restore_world_operation, lmw_operation,
      	stmw_operation): Use MEM_P and REG_P.
      	(tie_operand): Use MEM_P.
      	(vrsave_operation, crsave_operation): Use REG_P.
      	(mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P.
      	(fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P.
      	(quad_int_reg_operand): Use HARD_REGISTER_NUM_P.
      	(call_operand): Use HARD_REGISTER_P.
      	(indexed_or_indirect_operand, altivec_indexed_or_indirect_operand):
      	Use CONST_INT_P.
      	(lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P.
      	* config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p,
      	quad_aligned_load_p, replace_swapped_aligned_store,
      	recombine_lvx_pattern, replace_swapped_aligned_load,
      	recombine_stvx_pattern): Use MEM_P.
      	(const_load_sequence_p, adjust_vperm, replace_swapped_load_constant):
      	Use MEM_P and SYMBOL_REF_P.
      	(rtx_is_swappable_p): Use REG_P and CONST_INT_P.
      	(insn_is_swappable_p): Use REG_P and MEM_P.
      	(insn_is_swap_p, (alignment_mask): Use CONST_INT_P.
      	* config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move):
      	Use CONST_INT_P.
      	* config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
      	Use CONST_DOUBLE_P.
      	(rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
      	CONST_WIDE_INT_P.
      	(rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P,
      	CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P.
      	(rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P,
      	HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and
      	reg_or_subregno:
      	(output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
      	(easy_altivec_constant, rs6000_legitimate_offset_address_p,
      	rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin,
      	rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin,
      	rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare,
      	rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner,
      	rs6000_split_logical_di): Use CONST_INT_P.
      	(rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P,
      	REG_P and SYMBOL_REF_P.
      	(setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P.
      	(print_operand): Use CONST_INT_P, MEM_P and REG_P.
      	(virtual_stack_registers_memory_p, rs6000_legitimate_address_p,
      	mems_ok_for_quad_peep): Use CONST_INT_P and REG_P.
      	(rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P.
      	(small_data_operand, print_operand_address): Use CONST_INT_P and
      	SYMBOL_REF_P.
      	(split_stack_arg_pointer_used_p): Use HARD_REGISTER_P.
      	(rs6000_init_hard_regno_mode_ok, direct_move_p):
      	Use HARD_REGISTER_NUM_P.
      	(rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P.
      	(rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P,
      	SUBREG_P and SYMBOL_REF_P.
      	(register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P
      	and HARD_REGISTER_NUM_P.
      	(rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and
      	reg_or_subregno.
      	(rs6000_adjust_cost, find_mem_ref): Use MEM_P.
      	(macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
      	MEM_P and REG_P.
      	(legitimate_indirect_address_p, legitimate_lo_sum_address_p,
      	registers_ok_for_quad_peep, rs6000_output_function_epilogue,
      	find_addr_reg): Use REG_P.
      	(altivec_expand_vec_perm_const): Use REG_P and SUBREG_P.
      	(rs6000_emit_le_vsx_move): Use SUBREG_P.
      	(offsettable_ok_by_alignment, constant_pool_expr_p,
      	legitimate_small_data_p, rs6000_output_dwarf_dtprel,
      	rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p,
      	rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra,
      	rs6000_assemble_integer, create_TOC_reference,
      	rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info,
      	rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P.
      	(rs6000_split_vec_extract_var): Use reg_or_subregno.
      	* config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
      	CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
      	* config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
      	* config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
      	* config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P.
      	(REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P.
      	(INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P.
      	(CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P.
      	* config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3
      	and cbranch<mode>4): Use CONST_INT_P.
      	(multiple define_splits): Use REG_P and SUBREG_P.
      	(define_expands call, call_value): Use MEM_P.
      	(define_expands sibcall, sibcall_value): Use CONST_INT_P and  MEM_P.
      	(define insn *mtcrfsi): Use CONST_INT_P and REG_P.
      	* config/rs6000/vsx.md (*vsx_le_perm_load_<mode>,
      	*vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P
      	and HARD_REGISTER_NUM_P.
      	(multiple define_splits): Use HARD_REGISTER_NUM_P.
      
      From-SVN: r268253
      Peter Bergner committed
    • PR c++/89001 - mangling of reference temporaries · b5d0294e
      It used to be the case that the mangled name of a reference temporary didn't
      need to be standardized, because all access would be through the reference.
      But now constant expressions can look through references and so different
      translation units need to agree on the address of a temporary in the
      initializer of a reference with vague linkage.
      
      	* cp-tree.h (struct saved_scope): Add ref_temp_count.
      	(current_ref_temp_count): New macro.
      	* mangle.c (mangle_ref_init_variable): Use it.
      	* typeck2.c (store_init_value): Clear it.
      	* call.c (make_temporary_var_for_ref_to_temp): Copy public and
      	comdat.
      
      From-SVN: r268252
      Jason Merrill committed
    • PR c/86125 - missing -Wbuiltin-declaration-mismatch on a mismatched return type · d8b5a1a0
      PR c/86125 - missing -Wbuiltin-declaration-mismatch on a mismatched return type
      PR middle-end/86308 - ICE in verify_gimple calling index() with an invalid declaration
      PR c/86125 - missing -Wbuiltin-declaration-mismatch on a mismatched return type
      PR c/88886 - [9 Regression] ice in get_constant, at c-family/c-format.c:292
      
      gcc/c/ChangeLog:
      
      	PR c/86125
      	PR c/88886
      	PR middle-end/86308
      	* c-decl.c (match_builtin_function_types): Add arguments.
      	(diagnose_mismatched_decls): Diagnose mismatched declarations
      	of built-ins more strictly.
      
      gcc/testsuite/ChangeLog:
      
      	PR c/86125
      	PR c/88886
      	PR middle-end/86308
      	* gcc.dg/Wbuiltin-declaration-mismatch-6.c: New test.
      	* gcc.dg/Wbuiltin-declaration-mismatch-7.c: New test.
      	* gcc.dg/Wbuiltin-declaration-mismatch-8.c: New test.
      	* gcc.dg/Wbuiltin-declaration-mismatch-9.c: New test.
      	* gcc.dg/Wbuiltin-declaration-mismatch-10.c: New test.
      	* gcc.dg/builtins-69.c: New test.
      	* gcc.dg/Wint-conversion-2.c: Add expected warning.
      	* gcc.c-torture/execute/eeprof-1.c: Adjust function signatures.
      
      From-SVN: r268251
      Martin Sebor committed
    • ChangeLog: Correct PR classification. · b0e0e885
      	* ChangeLog: Correct PR classification.
      	* testsuite/ChangeLog: Ditto.
      
      From-SVN: r268250
      Uros Bizjak committed
    • re PR rtl-optimization/88948 (ICE in elimination_costs_in_insn, at reload1.c:3640 since r264148) · 53f2f08b
      	PR target/88948
      	* rtl.h (prepare_copy_insn): New prototype.
      	* gcse.c (prepare_copy_insn): New function, split out from
      	process_insert_insn.
      	(process_insert_insn): Use prepare_copy_insn.
      	* store-motion.c (replace_store_insn): Use prepare_copy_insn
      	instead of gen_move_insn.
      
      testsuite/ChangeLog:
      
      	PR target/88948
      	* gcc.target/i386/pr88948.c: New test.
      
      From-SVN: r268249
      Uros Bizjak committed
    • re PR debug/89006 (New note: non-delegitimized UNSPEC UNSPEC_SET_GOT (14) found… · 83e23dcd
      re PR debug/89006 (New note: non-delegitimized UNSPEC UNSPEC_SET_GOT (14) found in variable location since r267638)
      
      	PR debug/89006
      	* config/i386/i386.c (ix86_pic_register_p): Return true for
      	UNSPEC_SET_GOT too.
      
      	* g++.dg/debug/pr89006.C: New test.
      
      From-SVN: r268248
      Jakub Jelinek committed
    • re PR tree-optimization/88964 (ICE in wide_int_to_tree_1, at tree.c:1561) · f359ba2f
      	PR tree-optimization/88964
      	* gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
      	punt if HONOR_SNANS (chrec).
      
      From-SVN: r268247
      Jakub Jelinek committed
    • re PR middle-end/89015 (ICE in lookup_decl_in_outer_ctx, at omp-low.c:3480) · 3b4218cc
      	PR middle-end/89015
      	* tree-nested.c (convert_nonlocal_reference_stmt,
      	convert_local_reference_stmt, convert_tramp_reference_stmt,
      	convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat
      	gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL
      	or GIMPLE_OMP_TASK.
      
      	* gcc.dg/gomp/pr89015.c: New test.
      
      From-SVN: r268246
      Jakub Jelinek committed
    • re PR c++/88976 (ICE in fold_convert_loc, at fold-const.c:2552) · e21c4491
      	PR c++/88976
      	* c-typeck.c (c_finish_omp_cancel): Diagnose more than one if
      	on #pragma omp cancel with different modifiers.
      
      	* semantics.c (finish_omp_cancel): Diagnose more than one if
      	on #pragma omp cancel with different modifiers.  Use
      	maybe_convert_cond when not in template or build_x_binary_op
      	otherwise.
      
      	* c-c++-common/gomp/cancel-2.c: New test.
      	* gcc.dg/gomp/cancel-1.c: New test.
      	* g++.dg/gomp/cancel-1.C: New test.
      	* g++.dg/gomp/cancel-2.C: New test.
      	* g++.dg/gomp/cancel-3.C: New test.
      
      From-SVN: r268245
      Jakub Jelinek committed
    • re PR tree-optimization/89027 (ICE: verify_gimple failed (Error: non-trivial… · acac773a
      re PR tree-optimization/89027 (ICE: verify_gimple failed (Error: non-trivial conversion at assignment))
      
      	PR tree-optimization/89027
      	* tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
      	for "omp simd array" variables.
      
      	* gfortran.dg/gomp/pr89027.f90: New test.
      
      From-SVN: r268243
      Jakub Jelinek committed
    • Mitigation for PR target/88469 on arm-based systems bootstrapping with gcc-6/7/8 · 21f657a4
      This patch, for gcc 8/9 is a mitigation patch for PR target/88469
      where gcc-6/7/8 miscompile a structure whose alignment is dominated by
      a 64-bit bitfield member.  Since the PCS rules for such a type must
      ignore any overalignment of the base type we cannot address this by
      simply adding a larger alignment to the class.  We can, however, force
      the alignment of the bit-field itself and GCC will handle that as
      desired.
      
      	PR target/88469
      	* profile-count.h (profile_count): On ARM systems using GCC 6/7/8
      	force the alignment of m_val.
      
      From-SVN: r268240
      Richard Earnshaw committed
    • PR libstdc++/88840 delay evaluation of constant until type is complete · e658669f
      Clang fails to compile std::vector<Incomplete> because the static member
      __use_relocate cannot be evaluated for an incomplete type. Replace with
      a static member function that will not be odr-used until needed, by
      which point the type must be complete.
      
      	PR libstdc++/88840
      	* include/bits/stl_vector.h (vector::__use_relocate): Replace static
      	data member with static member function _S_use_relocate().
      	* include/bits/vector.tcc (vector::reserve, vector::_M_realloc_insert)
      	(vector::_M_default_append): Use _S_use_relocate() instead of
      	__use_relocate.
      
      From-SVN: r268239
      Jonathan Wakely committed
    • Fix failing test due to inconsistent strcmp results · 400a08e2
      	* testsuite/27_io/filesystem/path/compare/strings.cc: Only compare
      	sign of results.
      
      From-SVN: r268238
      Jonathan Wakely committed
    • [nvptx, libgomp] Fix memleak in GOMP_OFFLOAD_fini_device · 738c56d4
      I wrote a test-case:
      ...
      int
      main (void)
      {
        for (unsigned i = 0; i < 128; ++i)
          {
            acc_init (acc_device_nvidia);
            acc_shutdown (acc_device_nvidia);
          }
      
        return 0;
      }
      ...
      and ran it under valgrind.  The only leak location reported with a frequency
      of 128, was the allocation of ptx_devices in nvptx_init.
      
      Fix this by freeing ptx_devices in GOMP_OFFLOAD_fini_device, once
      instantiated_devices drops to 0.
      
      2019-01-24  Tom de Vries  <tdevries@suse.de>
      
      	* plugin/plugin-nvptx.c (GOMP_OFFLOAD_fini_device): Free ptx_devices
      	once instantiated_devices drops to 0.
      
      From-SVN: r268237
      Tom de Vries committed
    • re PR lto/87187 (FAIL: gfortran.dg/short_circuiting_3.f90 -g -flto (internal… · 0e2eb6ab
      re PR lto/87187 (FAIL: gfortran.dg/short_circuiting_3.f90   -g -flto  (internal compiler error) on darwin)
      
      2019-01-24  Richard Biener  <rguenther@suse.de>
      
      	PR lto/87187
      	* tree-streamer-out.c (write_ts_decl_common_tree_pointers):
      	When in "legacy" debug mode make sure to reset self-origins.
      
      From-SVN: r268236
      Richard Biener committed
    • Fix broken filename for .gcda files starting with '..' (PR gcov-profile/88994). · 12502bf2
      2019-01-24  Martin Liska  <mliska@suse.cz>
      
      	PR gcov-profile/88994
      	* gcov-io.c (mangle_path): Do not allocate a bigger buffer,
      	result will be always smaller or equal to the original.
      	* gcov.c (mangle_name): Fix else branch where we should
      	also copy to PTR and shift the pointer.
      
      From-SVN: r268233
      Martin Liska committed
    • re PR fortran/88929 (ICE on building MPICH 3.2 with GCC 9 with ISO_Fortran_binding) · 07fd2247
      2019-01-24  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/88929
      	* trans-array.c (gfc_conv_descriptor_elem_len): New function.
      	* trans-array.h : Add prototype for above.
      	* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Take account of
      	assumed rank arrays being flagged by rank = -1 in expressions.
      	Intent in arrays need a pointer to a copy of the data to be
      	assigned to the descriptor passed for conversion. This should
      	then be freed, together with the CFI descriptor on return from
      	the C call.
      
      2019-01-24  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/88929
      	* gfortran.dg/ISO_Fortran_binding_3.f90 : New test
      	* gfortran.dg/ISO_Fortran_binding_3.c : Subsidiary source.
      
      From-SVN: r268232
      Paul Thomas committed
    • re PR fortran/88929 (ICE on building MPICH 3.2 with GCC 9 with ISO_Fortran_binding) · db06a76e
      2019-01-24  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/88929
      	* trans-array.c (gfc_conv_descriptor_elem_len): New function.
      	* trans-array.h : Add prototype for above.
      	* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Take account of
      	assumed rank arrays being flagged by rank = -1 in expressions.
      	Intent in arrays need a pointer to a copy of the data to be
      	assigned to the descriptor passed for conversion. This should
      	then be freed, together with the CFI descriptor on return from
      	the C call.
      
      2019-01-24  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/88929
      	* gfortran.dg/ISO_Fortran_binding_3.f90 : New test
      	* gfortran.dg/ISO_Fortran_binding_3.c : Subsidiary source.
      
      From-SVN: r268231
      Paul Thomas committed
    • runtime: install SIGURG handler on C created threads · 52c9cfeb
          
          Precise stack scan uses SIGURG to trigger a stack scan. We need
          to have Go signal handler installed for SIGURG.
          
          Reviewed-on: https://go-review.googlesource.com/c/159097
      
      From-SVN: r268230
      Ian Lance Taylor committed
    • fix comments typo. · eea18a4e
      gcc/ChangeLog
      
      2019-01-24  Xiong Hu Luo  <luoxhu@linux.vnet.ibm.com>
      
      	* tree-ssa-dom.c (test_for_singularity): fix a comment typo.
      	* vr-values.c (find_case_label_ranges): fix a comment typo.
      
      From-SVN: r268229
      Xiong Hu Luo committed
    • fix tab alignment issue. · 275e9ad9
      ChangeLog
      
      	2019-01-24  Xiong Hu Luo  <luoxhu@linux.vnet.ibm.com>
      
      	* ChangeLog: replace space with tab.
      	* MAINTAINERS: delete 1 tab to keep alignment.
      
      From-SVN: r268228
      Xiong Hu Luo committed
    • Daily bump. · a0487095
      From-SVN: r268225
      GCC Administrator committed
  3. 23 Jan, 2019 7 commits
    • re PR target/85711 (ICE in aarch64_classify_address, at config/aarch64/aarch64.c:5678) · 76ca8d0f
      2019-01-23  Bin Cheng  <bin.cheng@arm.com>
      	    Steve Ellcey <sellcey@marvell.com>
      
      	PR target/85711
      	* recog.c (address_operand): Return false on wrong mode for address.
      	(constrain_operands): Check for mode with 'p' constraint.
      
      Co-Authored-By: Steve Ellcey <sellcey@marvell.com>
      
      From-SVN: r268219
      Bin Cheng committed
    • libgcc2.c: Correct DI/TI -> SF/DF conversions · 6395ba73
      FSTYPE FUNC (DWtype u) in libgcc2.c, which converts DI/TI to SF/DF, has
      
        /* No leading bits means u == minimum.  */
        if (count == 0)
          return -(Wtype_MAXp1_F * (Wtype_MAXp1_F / 2));
      
      in the third case (where actually count == 0 only means the high part is
      minimum).  It should be:
      
        /* No leading bits means u == minimum.  */
        if (count == 0)
          return Wtype_MAXp1_F * (FSTYPE) (hi | ((UWtype) u != 0));
      
      instead.
      
      gcc/testsuite/
      
      2019-01-23  H.J. Lu  <hongjiu.lu@intel.com>
      
      	PR libgcc/88931
      	* gcc.dg/torture/fp-int-convert-timode-1.c: New test.
      	* gcc.dg/torture/fp-int-convert-timode-2.c: Likewise.
      	* gcc.dg/torture/fp-int-convert-timode-3.c: Likewise.
      	* gcc.dg/torture/fp-int-convert-timode-4.c: Likewise.
      
      libgcc/
      
      2019-01-23  Joseph Myers  <joseph@codesourcery.com>
      
      	PR libgcc/88931
      	* libgcc2.c (FSTYPE FUNC (DWtype u)): Correct no leading bits
      	case.
      
      From-SVN: r268216
      H.J. Lu committed
    • re PR target/88998 (bad codegen with mmx instructions for unordered_map) · 3274c5a3
      	PR target/88998
      	* config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
      	Disparage MMX alternative.
      	(sse2_cvtpd2pi): Ditto.
      	(sse2_cvttpd2pi): Ditto.
      
      testsuite/ChangeLog:
      
      	PR target/88998
      	* g++.target/i386/pr88998.c: New test.
      
      From-SVN: r268195
      Uros Bizjak committed
    • PR c++/88757 - qualified name treated wrongly as type. · 4aab0828
      	* parser.c (cp_parser_direct_declarator): don't treat qualified-ids
      	in parameter-list as types if name lookup for declarator-id didn't
      	find one or more function templates.
      
      	* g++.dg/cpp0x/dependent2.c: new test.
      	* g++.dg/cpp2a/typename10.c: remove dg-error.
      	* g++.dg/cpp2a/typename12.c: new test.
      	* g++.dg/template/static30.c: remove dg-error.
      
      From-SVN: r268192
      Marek Polacek committed
    • aarch64: fix use-after-free in -march=native (PR driver/89014) · 6770fa53
      Running:
        $ valgrind ./xgcc -B. -c test.c -march=native
      on aarch64 shows a use-after-free in host_detect_local_cpu due
      to the std::string result of aarch64_get_extension_string_for_isa_flags
      only living until immediately after a c_str call.
      
      This leads to corrupt "-march=" values being passed to cc1.
      
      This patch fixes the use-after-free, though it appears to also need
      Tamar's patch here:
        https://gcc.gnu.org/ml/gcc-patches/2018-12/msg01302.html
      in order to generate valid values for cc1.  This may have worked by
      accident in the past, if the corrupt "-march=" value happened to be
      0-terminated in the "right" place; with this patch it now appears
      to reliably break without Tamar's patch.
      
      gcc/ChangeLog:
      	PR driver/89014
      	* config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
      	use-after-free of the result of
      	aarch64_get_extension_string_for_isa_flags.
      
      From-SVN: r268189
      David Malcolm committed
    • re PR c/44715 (Break in increment expression of "for" statement inconsistent with g++) · 372e6e6b
      	PR c/44715
      	* cp-gimplify.c (genericize_cp_loop): Call begin_bc_block only
      	after genericizing cond and incr expressions.
      
      	* doc/extend.texi: Document break and continue behavior in
      	statement expressions.
      
      	* c-c++-common/pr44715.c: New test.
      
      From-SVN: r268188
      Jakub Jelinek committed