1. 17 Aug, 2019 4 commits
    • PR fortran/68401 Improve allocation error message · d74a8b05
      Improve the error message that is printed when a memory allocation
      fails, by including the location, and the size of the allocation that
      failed.
      
      Regtested on x86_64-pc-linux-gnu.
      
      gcc/fortran/ChangeLog:
      
      2019-08-17  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR fortran/68401
      	* trans-decl.c (gfc_build_builtin_function_decls): Replace
      	os_error with os_error_at decl.
      	* trans.c (trans_runtime_error_vararg): Modify so the error
      	function decl is passed directly.
      	(gfc_trans_runtime_error): Pass correct error function decl.
      	(gfc_trans_runtime_check): Likewise.
      	(trans_os_error_at): New function.
      	(gfc_call_malloc): Use trans_os_error_at.
      	(gfc_allocate_using_malloc): Likewise.
      	(gfc_call_realloc): Likewise.
      	* trans.h (gfor_fndecl_os_error): Replace with gfor_fndecl_os_error_at.
      
      libgfortran/ChangeLog:
      
      2019-08-17  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR fortran/68401
      	* gfortran.map: Add GFORTRAN_10 node, add _gfortran_os_error_at
      	symbol.
      	* libgfortran.h (os_error_at): New prototype.
      	* runtime/error.c (os_error_at): New function.
      
      From-SVN: r274599
      Janne Blomqvist committed
    • runtime: scan write barrier buffer conservatively · 777c0282
          
          In gccgo, we insert the write barriers in the frontend, and so we
          cannot completely prevent write barriers on stack writes. So it
          is possible for a bad pointer appearing in the write barrier
          buffer. When flushing the write barrier, treat it the same as
          sacnning the stack. In particular, don't mark a pointer if it
          does not point to an allocated object. We already have similar
          logic in greyobject. With this, hopefully, we can prevent an
          unallocated object from being marked completely.
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/190599
      
      From-SVN: r274598
      Ian Lance Taylor committed
    • Put the CL into the right dir. · 7aad42b9
      From-SVN: r274596
      Marek Polacek committed
    • Daily bump. · 801c725f
      From-SVN: r274595
      GCC Administrator committed
  2. 16 Aug, 2019 25 commits
  3. 15 Aug, 2019 11 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
    • MSP430: Fix whitespace errors and incorrect indentation in config/msp430/*.{c,h} files · 81a8845c
      2019-08-15  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	MSP430: Fix whitespace errors and incorrect indentation in
      	config/msp430/*.{c,h} files
      
      	* config/msp430/driver-msp430.c (msp430_select_cpu): Fix indentation.
      	(msp430_select_hwmult_lib): Likewise.
      	* config/msp430/msp430-devices.c (parse_devices_csv_1): Likewise.
      	(msp430_extract_mcu_data): Likewise.
      	(struct t_msp430_mcu_data): Likewise.
      	* config/msp430/msp430.c (struct machine_function): Remove whitespace
      	before left square bracket.
      	(msp430_option_override): Fix indentation.
      	(msp430_hard_regno_nregs_with_padding): Likewise.
      	(msp430_initial_elimination_offset): Likewise.
      	(msp430_special_register_convention_p): Remove whitespace before left
      	square bracket and after exclamation mark.
      	(msp430_evaluate_arg): Likewise.
      	(msp430_callee_copies): Fix indentation.
      	(msp430_gimplify_va_arg_expr): Likewise.
      	(msp430_function_arg_advance): Remove whitespace before left square
      	bracket.
      	(reg_ok_for_addr): Likewise.
      	(msp430_preserve_reg_p): Likewise.
      	(msp430_compute_frame_info): Likewise.
      	(msp430_asm_output_addr_const_extra): Add space between function name
      	and open parenthesis.
      	(has_section_name): Fix indentation.
      	(msp430_attr): Remove trailing whitespace.
      	(msp430_section_attr): Likewise.
      	(msp430_data_attr): Likewise.
      	(struct msp430_attribute_table): Fix comment and whitespace.
      	(msp430_start_function): Remove whitespace before left square bracket.
      	Add space between function name and open parenthesis.
      	(msp430_select_section): Remove trailing whitespace.
      	(msp430_section_type_flags): Remove trailing whitespace.
      	(msp430_unique_section): Remove space before closing parenthesis.
      	(msp430_output_aligned_decl_common): Change 8 spaces to a tab.
      	(msp430_builtins): Remove whitespace before left square bracket.
      	(msp430_init_builtins):	Fix indentation.
      	(msp430_expand_prologue): Remove whitespace before left square bracket.
      	Remove space before closing parenthesis.
      	(msp430_expand_epilogue): Remove whitespace before left square bracket.
      	(msp430_split_movsi): Remove space before closing parenthesis.
      	(helper_function_name_mappings): Fix indentation.
      	(msp430_use_f5_series_hwmult): Fix whitespace.
      	(use_32bit_hwmult): Likewise.
      	(msp430_no_hwmult): Likewise.
      	(msp430_output_labelref): Remove whitespace before left square bracket.
      	(msp430_print_operand_raw): Likewise.
      	(msp430_print_operand_addr): Likewise.
      	(msp430_print_operand): Add two spaces after '.' in comment.
      	Fix trailing whitespace.
      	(msp430x_extendhisi): Fix indentation.
      	* config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Change 8 spaces to
      	tab.
      	(PC_REGNUM): Likewise.
      	(STACK_POINTER_REGNUM): Likewise.
      	(CC_REGNUM): Likewise.
      
      From-SVN: r274536
      Jozef Lawrynowicz committed
    • re PR target/91454 (ICE in get_attr_avx_partial_xmm_update, at… · 8ed1d2fa
      re PR target/91454 (ICE in get_attr_avx_partial_xmm_update, at config/i386/i386.md:1804 since r274481)
      
      2019-08-15  Richard Biener  <rguenther@suse.de>
      
      	PR target/91454
      	* config/i386/i386-features.c (gen_gpr_to_xmm_move_src): New
      	helper.
      	(general_scalar_chain::make_vector_copies): Use it.
      
      From-SVN: r274535
      Richard Biener committed