- 29 Mar, 2019 1 commit
-
-
From-SVN: r270012
GCC Administrator committed
-
- 28 Mar, 2019 17 commits
-
-
PR middle-end/89621 * tree-inline.h (struct copy_body_data): Add dont_remap_vla_if_no_change flag. * tree-inline.c (remap_type_3, remap_type_2): New functions. (remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change and remap_type_2 returns false. * omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change. Move ctx->cb.adjust_array_error_bounds setting to the outermost ctx only from where it is copied to nested contexts. * gfortran.dg/gomp/pr89621.f90: New test. From-SVN: r270009
Jakub Jelinek committed -
PR c++/66548 - Invalid class member access expression in decltype sometimes accepted gcc/testsuite/ChangeLog: * g++.dg/cpp0x/decltype-pr66548.C: New test. From-SVN: r270007
Martin Sebor committed -
testsuite/ChangeLog: * g++.dg/cpp0x/decltype-pr81506.C: New test. From-SVN: r270006
Martin Sebor committed -
* pt.c (maybe_instantiate_noexcept): For function templates, use their template result (function decl). Don't set up local specializations. Temporarily turn on processing_template_decl. Update the template type too. * g++.dg/cpp0x/noexcept38.C: New test. * g++.dg/cpp0x/noexcept39.C: New test. * g++.dg/cpp1z/noexcept-type21.C: New test. From-SVN: r270005
Marek Polacek committed -
PR target/89865 * config/i386/i386.md (RMW operation with LEA peephole): Use LEAMODE mode attribute instead of SWI mode iterator for LEA pattern. From-SVN: r270004
Uros Bizjak committed -
re PR target/89848 (ICE: in convert_op, at config/i386/i386.c:2099 with -O2 -msse2 -mtune=pentium3m) PR target/89848 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies): Also process XEXP (src, 0) of a shift insn. testsuite/ChangeLog: PR target/89848 * gcc.target/i386/pr89848.c: New test. From-SVN: r270003
Uros Bizjak committed -
* call.c (build_converted_constant_expr_internal): New function, renamed from... (build_converted_constant_expr): ...this. New. (build_converted_constant_bool_expr): New. * cp-tree.h (build_converted_constant_bool_expr): Declare. * decl.c (build_explicit_specifier): Call build_converted_constant_bool_expr. * g++.dg/cpp2a/explicit15.C: New test. From-SVN: r270002
Marek Polacek committed -
re PR c/89812 (incorrect maximum in error: requested alignment ‘536870912’ exceeds maximum 2147483648) PR c/89812 * gcc.dg/attr-aligned-3.c: Limit the test to known ELF targets other than AVR. Add dg-options "". From-SVN: r270001
Jakub Jelinek committed -
* include/std/variant (__variant_construct_single): New. (__variant_construct): Use it. (_M_destructive_move): Likewise. (_M_destructive_copy): Likewise. (_Copy_assign_base::operator=): Adjust. (_Move_assign_base::operator=): Likewise. (swap): Likewise. From-SVN: r269996
Ville Voutilainen committed -
PR c++/89785 * constexpr.c (struct check_for_return_continue_data): New type. (check_for_return_continue): New function. (potential_constant_expression_1) <case SWITCH_STMT>: Walk SWITCH_STMT_BODY to find RETURN_EXPRs or CONTINUE_STMTs not nested in loop bodies and set *jump_target to that if found. * g++.dg/cpp1y/constexpr-89785-1.C: New test. * g++.dg/cpp1y/constexpr-89785-2.C: New test. From-SVN: r269995
Jakub Jelinek committed -
optrecord_json_writer::optinfo_to_json can in theory be called from any optimization pass, but currently uses get_fnname_from_decl, which is RTL-specific. In that PR, Jakub suggested using either DECL_ASSEMBLER_NAME or the "printable name" (via current_function_name). This patch makes it use DECL_ASSEMBLER_NAME. gcc/ChangeLog: PR middle-end/89725 * optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json): Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl. From-SVN: r269994
David Malcolm committed -
* regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P test. (cprop_hardreg_bb, cprop_hardreg_debug): New functions. (pass_cprop_hardreg::execute): Use those. Don't repeat bb processing immediately after first one with df_analyze in between, but rather process all bbs, queueing ones that need second pass in a worklist, df_analyze, process queued debug insn changes and if second pass is needed, process bbs from worklist, df_analyze, process queued debug insns again. From-SVN: r269992
Jakub Jelinek committed -
rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P or CALL_P instead of INSN_P && !DEBUG_INSN_P. * rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P or CALL_P instead of INSN_P && !DEBUG_INSN_P. (INSN_P): Define using NONDEBUG_INSN_P or DEBUG_INSN_P. From-SVN: r269991
Jakub Jelinek committed -
The declaration of create_nested_ptr_option in the header has the 'from' and 'to' parameters in the opposite order from the definition in gengtype.c: /* Return an options structure for a "nested_ptr" option. */ options_p create_nested_ptr_option (options_p next, type_p t, const char *to, const char *from) and the only caller in gengtype-parse.c: return create_nested_ptr_option (prev, ty, to, from); This patch swaps the parameter names in the declaration. PR c/79022 * gengtype.h (create_nested_ptr_option): Fix parameter names to match definition. From-SVN: r269990
Jonathan Wakely committed -
2019-03-28 Martin Liska <mliska@suse.cz> PR bootstrap/89829 * Makefile.in: Revert r254150. * Makefile.tpl: Likewise. From-SVN: r269985
Martin Liska committed -
* MAINTAINERS (Various Maintainers): Remove myself from dfp.c and related, and libdecnumber. From-SVN: r269984
Ben Elliston committed -
From-SVN: r269983
GCC Administrator committed
-
- 27 Mar, 2019 17 commits
-
-
re PR fortran/85537 ([F08] Invalid memory reference at runtime when calling subroutine through procedure pointer) fix PR 85537 2019-03-27 Janus Weil <janus@gcc.gnu.org> PR fortran/85537 * expr.c (gfc_check_assign_symbol): Reject internal and dummy procedures in procedure pointer initialization. 2019-03-27 Janus Weil <janus@gcc.gnu.org> PR fortran/85537 * gfortran.dg/dummy_procedure_11.f90: Fix test case. * gfortran.dg/pointer_init_11.f90: New test case. From-SVN: r269980
Janus Weil committed -
PR target/85667 * config/i386/i386.c (ix86_function_value_1): Call the newly added function for 32-bit MS_ABI. (function_value_ms_32): New function. testsuite/ChangeLog: PR target/85667 * gcc.target/i386/pr85667-5.c: New testcase. * gcc.target/i386/pr85667-6.c: New testcase. From-SVN: r269979
Mateusz B committed -
2019-03-27 Bill Schmidt <wschmidt@linux.ibm.com> * gcc.dg/vect/pr81740-2.c: Require vect_hw_misalign. From-SVN: r269978
Bill Schmidt committed -
Since the fix for 15272 we were remembering the wrong function to use at instantiation time, because the type of the SCOPE_REF didn't reflect the cv-quals of 'this'. Conveniently, we can fix this by simplifying the code. * semantics.c (finish_non_static_data_member): Use object cv-quals in scoped case, too. From-SVN: r269977
Jason Merrill committed -
From-SVN: r269976
Jason Merrill committed -
We were getting confused by a lambda in template definition context that isn't actually in the scope of any templated entity. Fixed by telling type_dependent_expression_p that such a lambda is type-dependent even if we can't tell that from its closure type. I've also restored the error for defining a non-lambda class in a default template argument, and for a lambda befor C++20. * parser.c (cp_parser_lambda_expression): Also reject a lambda in a template parameter list before C++20. * pt.c (type_dependent_expression_p): True for LAMBDA_EXPR. * semantics.c (begin_class_definition): Restore error about defining non-lambda class in template parm list. From-SVN: r269972
Jason Merrill committed -
libgomp/ChangeLog: * team.c (gomp_team_start): Initialize pool->threads[0]. From-SVN: r269971
Kevin Buettner committed -
2019-03-27 Andrew Stubbs <ams@codesourcery.com> gcc/ * config/gcn/gcn.md (CC_SAVE_REG): New constant. (movdi): Call gen_movdi_symbol_save_scc. (gen_movdi_symbol_save_scc): New insn and split. From-SVN: r269970
Andrew Stubbs committed -
gcc/ PR rtl-optimization/89313 * function.c (matching_constraint_num): New static function. (match_asm_constraints_1): Use it. Fixup white space and comment. Don't replace inputs with non-matching constraints which conflict with early clobber outputs. gcc/testsuite/ PR rtl-optimization/89313 * gcc.dg/pr89313.c: New test. From-SVN: r269969
Peter Bergner committed -
re PR rtl-optimization/87761 ([MIPS] New FAIL: gcc.target/mips/fix-r4000-10.c -O1 start with r265398) PR rtl-optimization/87761 PR rtl-optimization/89826 * regcprop.c (copyprop_hardreg_forward_1): Move may_trap_p test slightly later. (pass_cprop_hardreg::execute): Call df_analyze after adding the note problem to get REG_DEAD/REG_UNUSED notes updated. PR rtl-optimization/87761 PR rtl-optimization/89826 * gcc.c-torture/execute/pr89826.c: New test. From-SVN: r269967
Jeff Law committed -
The issue here was that when processing the explicit template args in fn_type_unification we added an empty argument pack for the parameter pack, so we never tried to do any deduction for it, and therefore never looked at its type. We need that empty pack behavior for partial ordering, but we don't want it here, so let's make it conditional on tf_partial. * pt.c (coerce_template_parms): Don't add an empty pack if tf_partial. (fn_type_unification): Pass tf_partial to coerce_template_parms. From-SVN: r269965
Jason Merrill committed -
2019-03-27 Richard Biener <rguenther@suse.de> * gcc.dg/torture/20190327-1.c: New testcase. From-SVN: r269964
Richard Biener committed -
2019-03-27 Paul Thomas <pault@gcc.gnu.org> PR fortran/88247 * expr.c (is_subref_array): Permit substrings to be detected as subref arrays. * trans-array.c (get_array_ctor_var_strlen): Obtain the length of deferred length strings. Handle substrings with a NULL end expression. (trans_array_constructor): Remove an unnecessary blank line. (gfc_conv_scalarized_array_ref): Skip to label 'done' if 'decl' is a pointer array. (get_array_charlen): If the expression is an array, convert the first element of the constructor and use its string length. Get a new charlen if necessary. (gfc_conv_expr_descriptor): Call 'get_array_charlen' for array constructor expressions. If the ss_info string length is available, use that to set the span of character arrays. * trans-expr.c (gfc_get_expr_charlen): Handle substrings * trans-stmt.c (trans_associate_var): Set the pointer array flag for variable targets and constant array constructors. Take care not to reset the string length or the span in the case of expressions that are not converted as direct by reference. 2019-03-27 Paul Thomas <pault@gcc.gnu.org> PR fortran/88247 * gfortran.dg/associate_47.f90: New test. From-SVN: r269962
Paul Thomas committed -
2019-03-27 Richard Biener <rguenther@suse.de> PR tree-optimization/89463 * tree-ssa-dce.c (remove_dead_stmt): Take output vector to queue edges to remove. (eliminate_unnecessary_stmts): Remove dead PHIs alongside dead stmts. Delay edge removal until PHIs are removed to make debug-stmt creation not confused by seemingly degenerate PHIs. * gcc.dg/guality/pr89463.c: New testcase. From-SVN: r269961
Richard Biener committed -
* config/rs6000/rs6000.h: Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS throughout file. * config/rs6000/darwin.h: Likewise. * config/rs6000/rs6000.c: Likewise. From-SVN: r269960
Alan Modra committed -
* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Always assign rs6000_hard_regno_mode_ok_p[m][r]. Formatting. From-SVN: r269959
Alan Modra committed -
From-SVN: r269958
GCC Administrator committed
-
- 26 Mar, 2019 5 commits
-
-
* config/riscv/generic.md (generic_alu, generic_load, generic_store) (generic_xfer, generic_branch, generic_imul, generic_idivsi) (generic_idivdi, generic_fmul_single, generic_fmul_double) (generic_fdiv, generic_fsqrt): Add check for generic tune. (generic_alu): Add auipc to type list. * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New. (riscv_microarchitecture): Declare. * config/riscv/riscv-protos.h (riscv_store_data_bypass_p): Declare. * config/riscv/riscv.c (struct riscv_cpu_info): Add microarchitecture field. (riscv_microarchitecture): New. (sifive_7_tune_info): New. (riscv_cpu_info_table): Add microarchitecture value for rocket and size. Add sifive-3-series, sifive-5-series, and sifive-7-series entries. (riscv_store_data_bypass_p): New. (riscv_option_override): Set riscv_microarchitecture from cpu->microarchitecture. * config/riscv/riscv.md: Include sifive-7.md. (type): Add auipc. (tune): New. (auipc<mode>): Change type to auipc. (restore_stack_nonlocal): New. * config/riscv/sifive-7.md: New. * doc/invoke.texi (RISC-V Options): Update mtune docs. Co-Authored-By: Jim Wilson <jimw@sifive.com> From-SVN: r269954
Andrew Waterman committed -
PR target/89827 * config/i386/i386.c (dimode_scalar_chain::convert_reg): Also process XEXP (src, 0) of a shift insn. testsuite/ChangeLog: PR target/89827 * gcc.target/i386/pr89827.c: New test. From-SVN: r269953
Uros Bizjak committed -
* g++.dg/abi/lambda-static-1.C: Handle Solaris as comdat group syntax. From-SVN: r269952
Rainer Orth committed -
When we refer to a captured variable from a constant-expression context inside a lambda, the closure (like any function parameter) is not constant because we aren't in a call, so we don't have an argument. So the capture is non-constant. But if the captured variable is constant, we might be able to use it directly in constexpr evaluation. PR c++/82643 PR c++/87327 * constexpr.c (cxx_eval_constant_expression): In a lambda function, try evaluating the captured variable directly. From-SVN: r269951
Jason Merrill committed -
The static assertions added for PR libstdc++/48101 were at class scope and so were evaluated too eagerly, when it might not be possible to determine whether the function objects are invocable with the key types. The problematic cases are where the key type is not known to be convertible to the argument type(s) of the function object until later, after a type has been completed. Specifically, if the key type is a pointer to a derived class and the function object's argument type is a pointer to a base class, then the derived-to-base conversion is only valid once the derived type is complete. By moving the static assertions to the destructor they will only be evaluated when the destructor is instantiated, at which point whether the key type can be passed to the function object should be knowable. The ideal place to do the checks would be only when the function objects are actually invoked, but that would mean adding the checks in numerous places, so the destructor is used instead. The tests need to be adjusted because the "required from here" line is now the location of the destructor, not the point of instantiation in the test file. For the map and multimap tests which check two specializations, the dg-error matching the assertion text matches both cases. Also check the diagnostic output for the template arguments, to ensure both specializations trigger the assertion. PR libstdc++/85965 * include/bits/hashtable.h (_Hashtable): Move static assertions to destructor so they are not evaluated until the _Key type is complete. * include/bits/stl_tree.h (_Rb_tree): Likewise. * testsuite/23_containers/set/85965.cc: New test. * testsuite/23_containers/unordered_set/85965.cc: New test. * testsuite/23_containers/map/48101_neg.cc: Replace "here" errors with regexp matching the corresponding _Rb_tree specialization. * testsuite/23_containers/multimap/48101_neg.cc: Likewise. * testsuite/23_containers/multiset/48101_neg.cc: Remove "here" error. * testsuite/23_containers/set/48101_neg.cc: Likewise. * testsuite/23_containers/unordered_map/48101_neg.cc: Likewise. * testsuite/23_containers/unordered_multimap/48101_neg.cc: Likewise. * testsuite/23_containers/unordered_multiset/48101_neg.cc: Likewise. * testsuite/23_containers/unordered_set/48101_neg.cc: Likewise. From-SVN: r269949
Jonathan Wakely committed
-