- 17 Aug, 2019 4 commits
-
-
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 -
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 -
From-SVN: r274596
Marek Polacek committed -
From-SVN: r274595
GCC Administrator committed
-
- 16 Aug, 2019 25 commits
-
-
The gc compiler recognizes the type runtime.hex and prints values in this type as hex. Do the same here. This makes debugging runtime crashes slightly better. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/190597 From-SVN: r274591
Ian Lance Taylor committed -
From-SVN: r274590
Jeff Law committed -
PR c++/85827 g++.dg/cpp1z/constexpr-if29.C: New test. From-SVN: r274587
Marek Polacek committed -
2019-08-16 Iain Sandoe <iain@sandoe.co.uk> * LOCAL_PATCHES: Add r274585. From-SVN: r274586
Iain Sandoe committed -
The entry in LOCAL_PATCHES was accidentally omitted. 2019-08-16 Iain Sandoe <iain@sandoe.co.uk> * asan/asan_interceptors.h: Reapply r272406. From-SVN: r274585
Iain Sandoe committed -
https://gcc.gnu.org/ml/gcc-patches/2019-08/msg00517.html gcc/testsuite/ChangeLog: * gcc.dg/struct-ret-1.c: Enable on all targets. From-SVN: r274579
Martin Sebor committed -
* tree-sra.c (build_reconstructed_reference): Return NULL_TREE instead of NULL. Add guard for broken VIEW_CONVERT_EXPRs. From-SVN: r274576
Eric Botcazou committed -
gcc/ChangeLog: * tree.def (TYPE_SIZE): Clarify. * tree.h (TYPE_SIZE, TYPE_SIZE_UNIT, DECL_SIZE): Add comments. From-SVN: r274575
Martin Sebor committed -
re PR testsuite/91458 (FAIL: g++.dg/tree-ssa/pr19807.C -std=gnu++98 scan-tree-dump-times optimized "&MEM\\\\[\\\\(void .\\\\)&a \\\\+ 8B\\\\]" 3) PR testsuite/91458 gcc/testsuite/ChangeLog: * g++.dg/tree-ssa/pr19807.C: Use the same search pattern unconditionally (correcting r272199, PR middle-end/90676). From-SVN: r274574
Martin Sebor committed -
2019-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de> PR tree-optimization/91109 * lra-int.h (lra_need_for_scratch_reg_p): Declare. * lra.c (lra): Use lra_need_for_scratch_reg_p. * lra-spills.c (lra_need_for_scratch_reg_p): New function. From-SVN: r274573
Bernd Edlinger committed -
* config/i386/mmx.md (mmxdoublemode): New mode attribute. (mmx_uavg<mode>3): Macroize expaner from mmx_uavgv8qi3 and mmx_uavgv4hi3 using MMXMODE12 mode iterator. (uavg<mode>3_ceil): New expander. * config/i386/sse.md (uavg<mode>3_ceil): Use ssedoublemode mode iterator when creating CONST1_RTX. (<sse2_avx2>_uavg<mode>3<mask_name>): Ditto. (*<sse2_avx2>_uavg<mode>3<mask_name>): Use ssedoublemode mode iterator for const1_operand predicate. From-SVN: r274572
Uros Bizjak committed -
2019-08-16 Richard Biener <rguenther@suse.de> * tree-scalar-evolution.c (follow_ssa_edge_expr): Declare. (follow_ssa_edge_binary): Call follow_ssa_edge_expr instead of follow_ssa_edge. (follow_ssa_edge_in_condition_phi_branch): Likewise. (analyze_evolution_in_loop): Likewise. (follow_ssa_edge, follow_ssa_edge_in_rhs): Inline into ... (follow_ssa_edge_expr): ... here. Refactor code. From-SVN: r274571
Richard Biener committed -
2019-08-16 Richard Biener <rguenther@suse.de> PR target/91469 * config/i386/i386-features.c (general_scalar_chain::replace_with_subreg): Stop at memory operands. * gcc.target/i386/pr91469-1.c: New testcase. * gcc.target/i386/pr91469-2.c: Likewise. From-SVN: r274570
Richard Biener committed -
* config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update. From-SVN: r274569
Uros Bizjak committed -
If a variable with an automatic attribute appears in an equivalence statement the storage should be allocated on the stack. Note: most of this patch was provided by Jeff Law <law@redhat.com>. From-SVN: r274565
Mark Eggleston committed -
I'm trying to add a define_subst use in the arm backend but am getting many build errors complaining about: `set_attr_alternative' is unsupported by `define_subst' Looking at the gensupport.c code it iterates over all define_insns and errors if any of them have set_attr_alternative. The usecase I'm targetting doesn't involve patterns with set_attr_alternative, so I would like to make the define_subst handling more robust to only error out if the define_subst is actually attempted on a set_attr_alternative. This patch produces the error only if the set_attr_alternative attr matches the subst name. This allows a build of the arm backend with a define_subst usage to succeed. PR other/91255 * gensupport.c (has_subst_attribute): Error out on set_attr_alternative only if subst_name matches curr_attr string. From-SVN: r274564
Kyrylo Tkachov committed -
tree-ssa-forwprop.c (simplify_builtin_call): Do not remove stmt at gsi_p, instead replace it with a NOP removed later. 2019-08-16 Richard Biener <rguenther@suse.de> * tree-ssa-forwprop.c (simplify_builtin_call): Do not remove stmt at gsi_p, instead replace it with a NOP removed later. (pass_forwprop::execute): Fully propagate lattice, DCE stmts that became dead because of that. fortran/ * trans-intrinsic.c (gfc_conv_intrinsic_findloc): Initialize forward_branch to avoid bogus uninitialized warning. * gcc.dg/tree-ssa/forwprop-31.c: Adjust. From-SVN: r274563
Richard Biener committed -
2019-08-16 Martin Liska <mliska@suse.cz> PR ipa/91447 * g++.dg/ipa/ipa-icf-4.C: Add -missed for target that don't have aliases. From-SVN: r274562
Martin Liska committed -
From-SVN: r274561
Aldy Hernandez committed -
Testcases that require support for trampolines should be marked as such; gcc.target/i386/pr85044.c was missing it. Fixed. for gcc/testsuite/ChangeLog * gcc.target/i386/pr85044.c: Require support for trampolines. From-SVN: r274560
Alexandre Oliva committed -
gcc.target/i386/asm-4.c uses amd64's natural PC-relative addressing mode on a single platform, using the 32-bit absolute addressing mode elsewhere. There's no point in giving up amd64's natural addressing mode and insisting on the 32-bit one when we're targeting amd64, and having to make explicit exceptions for systems where that's found not to work for whatever reason. If we just use the best-suited way to take the address of a function behind the compiler's back on each target variant, we're less likely to hit unexpected failures. for gcc/testsuite/ChangeLog * gcc.target/i386/asm-4.c: Use amd64 natural addressing mode on all __LP64__ targets. From-SVN: r274559
Alexandre Oliva committed -
Since alloca.h is not ISO C, most of our alloca-using tests seem to rely on __builtin_alloca instead of including the header and calling alloca. This patch extends this practice to some of the exceptions I found in gcc.target, marking them as requiring a functional alloca while at that. for gcc/testsuite/ChangeLog * gcc.target/arc/interrupt-6.c: Use __builtin_alloca, require effective target support for alloca, drop include of alloca.h. * gcc.target/i386/pr80969-3.c: Likewise. * gcc.target/sparc/setjmp-1.c: Likewise. * gcc.target/x86_64/abi/ms-sysv/gen.cc: Likewise. * gcc.target/x86_64/abi/ms-sysv/ms-sysv.c: Likewise. From-SVN: r274558
Alexandre Oliva committed -
The regexp that checks that -lgcov is linked in when --coverage is passed to the compiler driver requires the command line to match '/collect2'. Some of our targets don't match that, but they match /ld or ${target_alias}-ld depending on the testing scenario, so I'd like to tweak the test to match those as well. for gcc/testsuite/ChangeLog * gcc.misc-tests/options.exp: Match /ld and -ld besides /collect2. From-SVN: r274557
Alexandre Oliva committed -
Oops, I forgot to update the MAINTAINERS file a couple of months ago, when the address there stopped working. Honestly, I haven't really had much involvement with the frv, mn10300 or sh ports for almost 15 years, so I wouldn't mind if someone else stepped up and took over, but until someone does, I don't mind reviewing the occasional patch, so it's best if it can reach me ;-) for ChangeLog * MAINTAINERS: aoliva from @redhat.com to @gcc.gnu.org. From-SVN: r274556
Alexandre Oliva committed -
From-SVN: r274555
GCC Administrator committed
-
- 15 Aug, 2019 11 commits
-
-
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 -
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 -
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 -
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 -
2019-08-15 Martin Liska <mliska@suse.cz> * LOCAL_PATCHES: Add r274540 From-SVN: r274541
Martin Liska committed -
2019-08-15 Martin Liska <mliska@suse.cz> * tsan/tsan_rtl_ppc64.S: Reapply. From-SVN: r274540
Martin Liska committed -
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 -
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 -
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 -
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 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
-