Commit Graph

166770 Commits

Author SHA1 Message Date
GCC Administrator
2f6a6b28eb Daily bump.
From-SVN: r268284
2019-01-26 00:16:27 +00:00
Vladimir Makarov
990c182066 Fix PR number in my ChangeLog entry.
From-SVN: r268281
2019-01-25 22:24:43 +00:00
Vladimir Makarov
cc30d932d4 2019-01-25 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/888846
	* ira.c (process_set_for_memref_referenced_p): New.
	(memref_referenced_p): Add new param.  Use
	process_set_for_memref_referenced_p.  Add new switch cases.
	(memref_used_between_p): Pass new arg to memref_referenced_p.

From-SVN: r268280
2019-01-25 22:13:43 +00:00
Paolo Carlini
6edee4b3d3 re PR c++/88969 (ICE in build_op_delete_call, at cp/call.c:6509)
/cp
2019-01-25  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/88969
	* call.c (build_op_delete_call): Implement 7.6.2.5/(10.1).
	* decl2.c (coerce_delete_type): Use build_pointer_type instead
	of TYPE_POINTER_TO.

/testsuite
2019-01-25  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/88969
	* g++.dg/cpp2a/destroying-delete2.C: New.
	* g++.dg/cpp2a/destroying-delete3.C: Likewise.

From-SVN: r268278
2019-01-25 19:50:55 +00:00
Steven G. Kargl
f28c46cdb8 re PR fortran/85780 (ICE in resolve_fl_procedure, at fortran/resolve.c:12504)
2019-01-25  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/85780
	* decl.c (gfc_match_subroutine): Check for conflict between BIND(C)
	and alternative return.

2019-01-25  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/85780
	* gfortran.dg/pr85780.f90: Update testcase for error message.

From-SVN: r268277
2019-01-25 17:55:25 +00:00
Kwok Cheung Yeung
1009e9a2e4 Add myself to MAINTAINERS
2019-01-25  Kwok Cheung Yeung  <kcy@codesourcery.com>

	* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r268276
2019-01-25 17:23:19 +00:00
Nathan Sidwell
4bfcd13938 [backtrace] Avoid segfault
https://gcc.gnu.org/ml/gcc-patches/2019-01/msg01521.html

	* elf.c (elf_add): Pass "" filename to recursive call with
	separated debug.

From-SVN: r268275
2019-01-25 17:16:53 +00:00
Richard Earnshaw
c590597c45 This is pretty unlikely in real code...
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
2019-01-25 17:09:33 +00:00
Richard Sandiford
3c35efc322 Fix output_constructor_bitfield handling of wide bitfields (PR89037)
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
2019-01-25 16:57:32 +00:00
Segher Boessenkool
62fa42ce81 Fix Xiong's changelogs a bit
From-SVN: r268271
2019-01-25 17:20:40 +01:00
Tom de Vries
c75795fa1d [libbacktrace] Fix strrchr segfault
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
2019-01-25 14:39:58 +00:00
Tom de Vries
37ab491dce [libbacktrace] Rename dtest to btest_gnudebuglink
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
2019-01-25 14:39:47 +00:00
Christophe Lyon
55ac4e01c1 [testsuite] Add missing fenv effective target to fp-int-convert-timode* tests.
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
2019-01-25 14:36:37 +01:00
Wilco Dijkstra
f73dc00604 [PATCH][AArch64] Fix generation of tst (PR87763)
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
2019-01-25 13:29:06 +00:00
Richard Biener
cb1ba35f58 re PR tree-optimization/89049 (Unexpected vectorization)
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
2019-01-25 12:46:24 +00:00
Richard Sandiford
9c6b4601a9 [AArch64][SVE] Handle register-register pred_movs
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
2019-01-25 12:26:49 +00:00
Richard Biener
2ad04111c3 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
2019-01-25 08:13:34 +00:00
GCC Administrator
bb58a17beb Daily bump.
From-SVN: r268256
2019-01-25 00:16:33 +00:00
Peter Bergner
2e42a52fd1 altivec.md (build_vector_mask_for_load): Use MEM_P.
* 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
2019-01-24 16:48:06 -06:00
Jason Merrill
b5d0294eaf PR c++/89001 - mangling of reference temporaries
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
2019-01-24 16:23:33 -05:00
Martin Sebor
d8b5a1a00d PR c/86125 - missing -Wbuiltin-declaration-mismatch on a mismatched return type
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
2019-01-24 14:06:01 -07:00
Uros Bizjak
b0e0e88526 ChangeLog: Correct PR classification.
* ChangeLog: Correct PR classification.
	* testsuite/ChangeLog: Ditto.

From-SVN: r268250
2019-01-24 21:51:25 +01:00
Uros Bizjak
53f2f08b05 re PR rtl-optimization/88948 (ICE in elimination_costs_in_insn, at reload1.c:3640 since r264148)
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
2019-01-24 21:48:01 +01:00
Jakub Jelinek
83e23dcd56 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
2019-01-24 21:20:47 +01:00
Jakub Jelinek
f359ba2fa9 re PR tree-optimization/88964 (ICE in wide_int_to_tree_1, at tree.c:1561)
PR tree-optimization/88964
	* gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
	punt if HONOR_SNANS (chrec).

From-SVN: r268247
2019-01-24 20:49:09 +01:00
Jakub Jelinek
3b4218cc9f re PR middle-end/89015 (ICE in lookup_decl_in_outer_ctx, at omp-low.c:3480)
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
2019-01-24 20:17:13 +01:00
Jakub Jelinek
e21c449129 re PR c++/88976 (ICE in fold_convert_loc, at fold-const.c:2552)
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
2019-01-24 20:16:21 +01:00
Jakub Jelinek
acac773aaa 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
2019-01-24 20:14:51 +01:00
Richard Earnshaw
21f657a48f Mitigation for PR target/88469 on arm-based systems bootstrapping with gcc-6/7/8
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
2019-01-24 16:06:34 +00:00
Jonathan Wakely
e658669fe1 PR libstdc++/88840 delay evaluation of constant until type is complete
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
2019-01-24 15:39:25 +00:00
Jonathan Wakely
400a08e284 Fix failing test due to inconsistent strcmp results
* testsuite/27_io/filesystem/path/compare/strings.cc: Only compare
	sign of results.

From-SVN: r268238
2019-01-24 15:39:19 +00:00
Tom de Vries
738c56d410 [nvptx, libgomp] Fix memleak in GOMP_OFFLOAD_fini_device
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
2019-01-24 14:12:19 +00:00
Richard Biener
0e2eb6abeb 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
2019-01-24 12:36:14 +00:00
Martin Liska
12502bf2e9 Fix broken filename for .gcda files starting with '..' (PR gcov-profile/88994).
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
2019-01-24 08:27:39 +00:00
Paul Thomas
07fd2247ee re PR fortran/88929 (ICE on building MPICH 3.2 with GCC 9 with ISO_Fortran_binding)
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
2019-01-24 07:21:36 +00:00
Paul Thomas
db06a76e9a re PR fortran/88929 (ICE on building MPICH 3.2 with GCC 9 with ISO_Fortran_binding)
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
2019-01-24 07:19:49 +00:00
Ian Lance Taylor
52c9cfeb08 runtime: install SIGURG handler on C created threads
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
2019-01-24 05:31:14 +00:00
Xiong Hu Luo
eea18a4eb0 fix comments typo.
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
2019-01-24 02:18:16 +00:00
Xiong Hu Luo
275e9ad9ee fix tab alignment issue.
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
2019-01-24 01:53:28 +00:00
GCC Administrator
a04870951e Daily bump.
From-SVN: r268225
2019-01-24 00:16:31 +00:00
Bin Cheng
76ca8d0f4a re PR target/85711 (ICE in aarch64_classify_address, at config/aarch64/aarch64.c:5678)
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
2019-01-23 22:43:42 +00:00
H.J. Lu
6395ba73f8 libgcc2.c: Correct DI/TI -> SF/DF conversions
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
2019-01-23 13:41:59 -08:00
Uros Bizjak
8c5b33788d * g++.target/i386/pr88998.C (main): Use FP constant in the assert.
From-SVN: r268198
2019-01-23 20:59:15 +01:00
Uros Bizjak
3274c5a342 re PR target/88998 (bad codegen with mmx instructions for unordered_map)
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
2019-01-23 20:10:58 +01:00
Marek Polacek
4aab08286a PR c++/88757 - qualified name treated wrongly as type.
* 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
2019-01-23 17:25:42 +00:00
David Malcolm
6770fa53f9 aarch64: fix use-after-free in -march=native (PR driver/89014)
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
2019-01-23 16:36:46 +00:00
Jakub Jelinek
372e6e6bac re PR c/44715 (Break in increment expression of "for" statement inconsistent with g++)
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
2019-01-23 15:41:16 +01:00
Jakub Jelinek
d0f2db2316 re PR c++/88984 (ICE in genericize_switch_stmt, at cp/cp-gimplify.c:377)
PR c++/88984
	* cp-gimplify.c (genericize_switch_stmt): Move cond genericization
	before the begin_bc_block call.

	* c-c++-common/pr88984.c: New test.

From-SVN: r268187
2019-01-23 15:39:43 +01:00
Richard Biener
ef192ae1b6 re PR middle-end/89008 (O2 and O1 results differ for simple test)
2019-01-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89008
	* tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
	not leave another stray operand.

	* gcc.dg/torture/pr89008.c: New testcase.

From-SVN: r268186
2019-01-23 14:02:13 +00:00
Jason Merrill
4d0c18c601 PR c++/87893 - constexpr ctor ICE on ARM.
PR c++/88293 - ICE with comma expression.
	* constexpr.c (initialized_type): Don't shortcut non-void type.
	Handle COMPOUND_EXPR.
	(cxx_eval_outermost_constant_expr): Return early for void type.

From-SVN: r268185
2019-01-23 08:54:23 -05:00