1. 17 Aug, 2019 6 commits
  2. 16 Aug, 2019 25 commits
  3. 15 Aug, 2019 9 commits
    • re PR fortran/91443 (-Wargument-mismatch does not catch mismatch for global procedure) · fb078366
      2019-08-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/91443
      	* frontend-passes.c (check_externals_expr): New function.
      	(check_externals_code): New function.
      	(gfc_check_externals): New function.
      	* gfortran.h (debug): Add prototypes for gfc_symbol * and
      	gfc_expr *.
      	(gfc_check_externals): Add prototype.
      	* interface.c (compare_actual_formal): Do not complain about
      	alternate returns if the formal argument is optional.
      	(gfc_procedure_use): Handle cases when an error has been issued
      	previously.  Break long line.
      	* parse.c (gfc_parse_file): Call gfc_check_externals for all
      	external procedures.
      	* resolve.c (resolve_global_procedure): Remove checking of
      	argument list.
      
      2019-08-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/91443
      	* gfortran.dg/argument_checking_19.f90: New test.
      	* gfortran.dg/altreturn_10.f90: Change dg-warning to dg-error.
      	* gfortran.dg/dec_union_11.f90: Add -std=legacy.
      	* gfortran.dg/hollerith8.f90: Likewise. Remove warning for
      	Hollerith constant.
      	* gfortran.dg/integer_exponentiation_2.f90: New subroutine gee_i8;
      	use it to avoid type mismatches.
      	* gfortran.dg/pr41011.f: Add -std=legacy.
      	* gfortran.dg/whole_file_1.f90: Change warnings to errors.
      	* gfortran.dg/whole_file_2.f90: Likewise.
      
      From-SVN: r274551
      Thomas Koenig committed
    • PR c++/90393 - ICE with thow in ?: · 7148dede
      My previous patch for 64372 was incomplete: it only stopped making the
      non-throw argument into an rvalue, lvalue_kind still considered the ?:
      expression to be an rvalue, leaving us worse than before.
      
      	PR c++/64372, DR 1560 - Gratuitous lvalue-to-rvalue conversion in ?:
      	* tree.c (lvalue_kind): Handle throw in one arm.
      	* typeck.c (rationalize_conditional_expr): Likewise.
      	(cp_build_modify_expr): Likewise.
      
      From-SVN: r274550
      Jason Merrill committed
    • i386: Separate costs of pseudo registers from hard registers · d321551c
      processor_costs has costs of RTL expressions with pseudo registers and
      and costs of hard register moves:
      
      1. Costs of RTL expressions are used to generate the most efficient RTL
      operations with pseudo registers.
      
      2. Costs of hard register moves are used by register allocator to
      decide how to allocate and move hard registers.
      
      Since relative costs of pseudo register load and store versus pseudo
      register moves in RTL expressions can be different from relative costs
      of hard registers, we should separate costs of RTL expressions with
      pseudo registers from costs of hard registers so that register allocator
      and RTL expressions can be improved independently.
      
      This patch moves costs of hard register moves to the new hard_register
      field and duplicates costs of moves which are also used for costs of RTL
      expressions.
      
      	PR target/90878
      	* config/i386/i386.c (inline_memory_move_cost): Use hard_register
      	for costs of hard register moves.
      	(ix86_register_move_cost): Likewise.
      	* config/i386/i386.h (processor_costs): Move costs of hard
      	register moves to hard_register.  Add int_load, int_store,
      	xmm_move, ymm_move, zmm_move, sse_to_integer, integer_to_sse,
      	sse_load, sse_store, sse_unaligned_load and sse_unaligned_store
      	for costs of RTL expressions.
      	* config/i386/x86-tune-costs.h: Move costs of hard register
      	moves to hard_register.  Duplicate int_load, int_store,
      	xmm_move, ymm_move, zmm_move, sse_to_integer, integer_to_sse,
      	sse_load, sse_store for costs of RTL expressions.
      
      From-SVN: r274543
      H.J. Lu committed
    • PR libstdc++/91456 make INVOKE<R> work with uncopyable prvalues · d91f618d
      In C++17 a function can return a prvalue of a type that cannot be moved
      or copied. The current implementation of std::is_invocable_r uses
      std::is_convertible to test the conversion to R required by INVOKE<R>.
      That fails for non-copyable prvalues, because std::is_convertible is
      defined in terms of std::declval which uses std::add_rvalue_reference.
      In C++17 conversion from R to R involves no copies and so is not the
      same as conversion from R&& to R.
      
      This commit changes std::is_invocable_r to check the conversion without
      using std::is_convertible.
      
      std::function also contains a similar check using std::is_convertible,
      which can be fixed by simply reusing std::is_invocable_r (but because
      std::is_invocable_r is not defined for C++11 it uses the underlying
      std::__is_invocable_impl trait directly).
      
      	PR libstdc++/91456
      	* include/bits/std_function.h (__check_func_return_type): Remove.
      	(function::_Callable): Use std::__is_invocable_impl instead of
      	__check_func_return_type.
      	* include/std/type_traits (__is_invocable_impl): Add another defaulted
      	template parameter. Define a separate partial specialization for
      	INVOKE and INVOKE<void>. For INVOKE<R> replace is_convertible check
      	with a check that models delayed temporary materialization.
      	* testsuite/20_util/function/91456.cc: New test.
      	* testsuite/20_util/is_invocable/91456.cc: New test.
      
      From-SVN: r274542
      Jonathan Wakely committed
    • Add r274540 to LOCAL_PATCHES. · b3595983
      2019-08-15  Martin Liska  <mliska@suse.cz>
      
      	* LOCAL_PATCHES: Add r274540
      
      From-SVN: r274541
      Martin Liska committed
    • Reapply missing patch for libsanitizer. · 71e895b1
      2019-08-15  Martin Liska  <mliska@suse.cz>
      
      	* tsan/tsan_rtl_ppc64.S: Reapply.
      
      From-SVN: r274540
      Martin Liska committed
    • Remove TARGET_SETUP_INCOMING_VARARG_BOUNDS · 06b5889c
      TARGET_SETUP_INCOMING_VARARG_BOUNDS seems to be an unused vestige of the
      MPX support.
      
      2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* target.def (setup_incoming_vararg_bounds): Remove.
      	* doc/tm.texi.in (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Remove.
      	* doc/tm.texi: Regenerate.
      	* targhooks.c (default_setup_incoming_vararg_bounds): Delete.
      	* targhooks.h (default_setup_incoming_vararg_bounds): Likewise.
      	* config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
      	(TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
      
      From-SVN: r274539
      Richard Sandiford committed
    • [libsanitizer] Fix PR bootstrap/91455 · 8bc1fac7
      If a target does not support libbacktrace, it might still the include
      for $(top_srcdir).
      
      Regenerate the built files using automake-1.15.1
      
      libsanitizer/
      
      2019-08-15  Iain Sandoe  <iain@sandoe.co.uk>
      
      	PR bootstrap/91455
      	* Makefile.in: Regenerated.
      	* aclocal.m4: Likewise.
      	* asan/Makefile.in: Likewise.
      	* configure: Likewise.
      	* interception/Makefile.in: Likewise.
      	* libbacktrace/Makefile.in: Likewise.
      	* lsan/Makefile.in: Likewise.
      	* sanitizer_common/Makefile.am: Include top_srcdir unconditionally.
      	* sanitizer_common/Makefile.in: Regenerated.
      	* tsan/Makefile.in: Likewise.
      	* ubsan/Makefile.in: Likewise.
      
      From-SVN: r274538
      Iain Sandoe committed
    • MSP430: Fix lines over 80 characters long in config/msp430/*.{c,h} files · 43bfd4e8
      2019-08-15  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	MSP430: Fix lines over 80 characters long in
      	config/msp430/*.{c,h} files
      
      	* config/msp430/driver-msp430.c (msp430_select_cpu): Fix format
      	specifier in string.
      	(msp430_select_hwmult_lib): Split line more than 80 characters long.
      	* config/msp430/msp430-devices.c (msp430_extract_mcu_data): Remove
      	redundant old comment.
      	* config/msp430/msp430-protos.h (msp430_output_aligned_decl_common):
      	Split line more than 80 characters long.
      	* config/msp430/msp430.c (msp430_option_override): Likewise.
      	(msp430_return_in_memory): Likewise.
      	(msp430_gimplify_va_arg_expr): Likewise.
      	(TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Likewise.
      	(msp430_legitimate_constant): Likewise.
      	(TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Likewise.
      	(msp430_attr): Likewise.
      	(msp430_data_attr): Likewise.
      	(msp430_start_function): Likewise.
      	(gen_prefix): Likewise.
      	(msp430_init_sections): Likewise.
      	(msp430_select_section): Likewise.
      	(msp430_function_section): Likewise.
      	(msp430_unique_section): Likewise.
      	(msp430_output_aligned_decl_common): Likewise.
      	(msp430_do_not_relax_short_jumps): Likewise.
      	(msp430_init_builtins): Likewise.
      	(msp430_expand_delay_cycles): Likewise.
      	(msp430_expand_prologue): Likewise.
      	(msp430_expand_epilogue): Likewise.
      	(msp430_expand_helper): Likewise.
      	(msp430_split_movsi): Likewise.
      	(msp430_print_operand): Likewise.
      	(msp430_return_addr_rtx): Likewise.
      	(msp430x_extendhisi): Likewise.
      	* config/msp430/msp430.h (STARTFILE_SPEC): Likewise.
      	(ASM_SPEC): Likewise.
      	Remove very obvious comments.
      	(LIB_SPEC): Split line more than 80 characters long.
      	(EH_RETURN_HANDLER_RTX): Likewise.
      	(HARD_REGNO_CALLER_SAVE_MODE): Likewise.
      
      From-SVN: r274537
      Jozef Lawrynowicz committed