1. 30 Aug, 2019 9 commits
    • utils.c (build_template): Deal with parameters passed by pointer to component of… · e5969b73
      utils.c (build_template): Deal with parameters passed by pointer to component of multi-dimensional arrays.
      
      	* gcc-interface/utils.c (build_template): Deal with parameters
      	passed by pointer to component of multi-dimensional arrays.
      
      From-SVN: r275190
      Eric Botcazou committed
    • decl.c (annotate_value): Inline the call also if List_Representation_Info is greater than 3. · 37cf9302
      	* gcc-interface/decl.c (annotate_value) <CALL_EXPR>: Inline the call
      	also if List_Representation_Info is greater than 3.
      
      From-SVN: r275188
      Eric Botcazou committed
    • * doc/invoke.texi (-Wvolatile): Use @code for volatile. · 81e753d9
      From-SVN: r275178
      Marek Polacek committed
    • PR libstdc++/89164 enforce constraints for uninitialized algos · 61f5cb23
      The memmove optimizations for std::uninitialized_copy/fill/_n will
      compile even if the type is not copy constructible, because std::copy
      doesn't require copy construction to work. But the uninitialized
      algorithms do require it.
      
      This adds explicit static assertions to ensure we don't allow ill-formed
      initializations.
      
      	PR libstdc++/89164
      	* include/bits/stl_algobase.h (__copy_move): Give descriptive names
      	to template parameters.
      	* include/bits/stl_uninitialized.h (uninitialized_copy)
      	(uninitialized_fill, uninitialized_fill_n): Add static assertions to
      	diagnose invalid uses.
      	* testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
      	Adjust expected error.
      	* testsuite/20_util/specialized_algorithms/uninitialized_copy/89164.cc:
      	New test.
      	* testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
      	89164.cc: New test.
      	* testsuite/20_util/specialized_algorithms/uninitialized_fill/89164.cc:
      	New test.
      	* testsuite/20_util/specialized_algorithms/uninitialized_fill_n/
      	89164.cc: New test.
      	* testsuite/23_containers/vector/cons/89164.cc: New test.
      	* testsuite/23_containers/vector/cons/89164_c++17.cc: New test.
      
      From-SVN: r275177
      Jonathan Wakely committed
    • gigi.h (gigi_checking_assert): New macro. · 815b5368
      	* gcc-interface/gigi.h (gigi_checking_assert): New macro.
      	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Type>:
      	Remove redundant test and adjust comments.  Minor tweaks.
      	* gcc-interface/trans.c (Call_to_gnu): Do not generate range checks,
      	instead assert that the Do_Range_Check flag is not set.  Adjust call
      	to convert_with_check.
      	(gnat_to_gnu): Likewise.
      	(assoc_to_constructor): Likewise.
      	(pos_to_constructor): Likewise.  Remove GNAT_COMPONENT_TYPE parameter.
      	(emit_range_check): Delete.
      	(convert_with_check): Remove RANGE_P parameter and adjust.  Do a single
      	overflow check for modular types.
      
      From-SVN: r275174
      Eric Botcazou committed
    • arm.md (unaligned_loaddi, [...]): New unspec insn patterns. · 3eefaaa9
      2019-08-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * config/arm/arm.md (unaligned_loaddi,
              unaligned_storedi): New unspec insn patterns.
              * config/arm/neon.md (unaligned_storev8qi): Likewise.
              * config/arm/arm.c (gen_cpymem_ldrd_strd): Use unaligned_loaddi
              and unaligned_storedi for 4-byte aligned memory.
              (arm_block_set_aligned_vect): Use unaligned_storev8qi for
              4-byte aligned memory.
      
      From-SVN: r275063
      Bernd Edlinger committed
    • [PR 91579] Avoid creating redundant PHI nodes in tail-call pass · bb4d170d
      2019-08-30  Martin Jambor  <mjambor@suse.cz>
      
      	tree-optimization/91579
      	* tree-tailcall.c (tailr_arg_needs_copy): New variable.
      	(find_tail_calls): Allocate tailr_arg_needs_copy and set its bits as
      	appropriate.
      	(arg_needs_copy_p): Removed.
      	(eliminate_tail_call): Test tailr_arg_needs_copy instead of calling
      	arg_needs_copy_p.
      	(tree_optimize_tail_calls_1): Likewise.  Free tailr_arg_needs_copy.
      
      	testsuite/
      	* gcc.dg/tree-ssa/pr91579.c: New test.
      
      From-SVN: r275062
      Martin Jambor committed
    • Daily bump. · ffb738a2
      From-SVN: r275059
      GCC Administrator committed
  2. 29 Aug, 2019 14 commits
    • * config/i386/i386-features.c · 2a3daf5b
      	(general_scalar_chain::compute_convert_gain):
      	Correct cost for double-word shifts.
      	(general_scalar_to_vector_candidate_p): Reject count operands
      	greater or equal to mode bitsize.
      
      From-SVN: r275055
      Uros Bizjak committed
    • i386.c (inline_secondary_memory_needed): Return true for moves between SSE and… · d1041899
      i386.c (inline_secondary_memory_needed): Return true for moves between SSE and non-general registers and between mask...
      
      	* config/i386/i386.c (inline_secondary_memory_needed): Return true
      	for moves between SSE and non-general registers and between
      	mask and non-general registers.
      	(ix86_register_move_cost): Remove stalled comment.
      
      From-SVN: r275050
      Uros Bizjak committed
    • * ChangeLog: Fix wrong ChangeLog of my last entry. · ce189a62
      From-SVN: r275049
      Uros Bizjak committed
    • [preprocessor] Include stacking · b0d11f1e
      https://gcc.gnu.org/ml/gcc-patches/2019-08/msg01971.html
      	* internal.h (enum include_type): Add IT_MAIN, IT_DIRECTIVE_HWM,
      	IT_HEADER_HWM.
      	(_cpp_stack_file): Take include_type, not a bool.
      	* files.c (_cpp_find_file): Refactor to not hide an if inside a
      	for conditional.
      	(should_stack_file): Break apart to ...
      	(is_known_idempotent_file, has_unique_contents): ... these.
      	(_cpp_stack_file): Replace IMPORT boolean with include_type enum.
      	Refactor to use new predicates.  Do linemap compensation here ...
      	(_cpp_stack_include): ... not here.
      	* init.c (cpp_read_main_file): Pass IT_MAIN to _cpp_stack_file.
      
      From-SVN: r275034
      Nathan Sidwell committed
    • PR libstdc++/91067 add more missing exports for directory iterators · d02a0412
      	PR libstdc++/91067
      	* acinclude.m4 (libtool_VERSION): Bump to 6:28:0.
      	* configure: Regenerate.
      	* config/abi/pre/gnu.ver (GLIBCXX_3.4.28): Add new version. Export
      	missing symbols.
      	* testsuite/27_io/filesystem/iterators/91067.cc: Test move
      	constructors.
      	* testsuite/util/testsuite_abi.cc: Add new symbol version.
      
      From-SVN: r275032
      Jonathan Wakely committed
    • i386-features.c (general_scalar_chain::convert_insn): Guard debug work with… · 132e2b41
      i386-features.c (general_scalar_chain::convert_insn): Guard debug work with MAY_HAVE_DEBUG_BIND_INSNS.
      
      2019-08-29  Richard Biener  <rguenther@suse.de>
      
      	* config/i386/i386-features.c (general_scalar_chain::convert_insn):
      	Guard debug work with MAY_HAVE_DEBUG_BIND_INSNS.
      
      From-SVN: r275031
      Richard Biener committed
    • re PR bootstrap/91580 (i686-{darwin, linux} bootstrap fails after r274926) · c49609be
      2019-08-29  Richard Biener  <rguenther@suse.de>
      
      	PR bootstrap/91580
      	* config/i386/i386-features.c (general_scalar_chain::convert_insn):
      	Do not emit scalar copies for debug-insns, instead replace
      	their uses with the reg copy used in the chain or reset them
      	if there is a reaching definition outside of the chain as well.
      
      From-SVN: r275030
      Richard Biener committed
    • baseline_symbols.txt: Update. · ae32cd03
      	* config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
      	* config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
      
      From-SVN: r275028
      Jakub Jelinek committed
    • re PR target/91560 (Try harder for AVX non-AVX2 cross-lane permutations) · 4bf4c103
      	PR target/91560
      	* config/i386/i386-expand.c (expand_vec_perm_movs,
      	expand_vec_perm_blend, expand_vec_perm_vpermil,
      	expand_vec_perm_pshufb, expand_vec_perm_1,
      	expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_palignr,
      	expand_vec_perm_interleave2, expand_vec_perm_vpermq_perm_1,
      	expand_vec_perm_vperm2f128, expand_vec_perm_interleave3,
      	expand_vec_perm_vperm2f128_vblend, expand_vec_perm_2vperm2f128_vshuf,
      	expand_vec_perm_even_odd, expand_vec_perm_broadcast): Adjust function
      	comments - replace ix86_expand_vec_perm_builtin_1 with
      	ix86_expand_vec_perm_const_1.
      	(expand_vec_perm2_vperm2f128_vblend): New function.
      	(ix86_expand_vec_perm_const_1): New forward declaration.  Call
      	expand_vec_perm2_vperm2f128_vblend as last resort.
      	(canonicalize_perm): Formatting fix.
      
      	* gcc.dg/torture/vshuf-8.inc: Add two further permutations.
      
      From-SVN: r275027
      Jakub Jelinek committed
    • re PR tree-optimization/91351 (-fstrict-enums generates incorrect code) · 1d9cd701
      	PR tree-optimization/91351
      	* tree-cfg.c (generate_range_test): Use range_check_type instead of
      	unsigned_type_for.
      	* tree-cfgcleanup.c (convert_single_case_switch): Punt if
      	range_check_type returns NULL.
      	* tree-switch-conversion.c (switch_conversion::build_one_array):
      	Use range_check_type instead of unsigned_type_for, don't perform
      	linear opt if it returns NULL.
      	(bit_test_cluster::find_bit_tests): Formatting fix.
      	(bit_test_cluster::emit): Use range_check_type instead of
      	unsigned_type_for.
      	(switch_decision_tree::try_switch_expansion): Punt if range_check_type
      	returns NULL.
      
      	* g++.dg/opt/pr91351.C: New test.
      
      From-SVN: r275026
      Jakub Jelinek committed
    • decl.c (check_var_type): Add location_t parameter and use it. · c3bad347
      /cp
      2019-08-29  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* decl.c (check_var_type): Add location_t parameter and use it.
      	(grokdeclarator): Adjust call.
      	* pt.c (tsubst_decl): Likewise.
      	* cp-tree.h: Adjust declaration.
      
      /testsuite
      2019-08-29  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* g++.dg/spellcheck-typenames.C: Adjust expected locations.
      	* g++.dg/cpp0x/pr84676.C: Check locations.
      	* g++.dg/other/pr88187.C: Likewise.
      	* g++.dg/parse/crash13.C: Likewise.
      	* g++.dg/parse/crash46.C: Likewise.
      	* g++.dg/parse/template28.C: Likewise.
      	* g++.dg/parse/typename4.C: Likewise.
      
      From-SVN: r275025
      Paolo Carlini committed
    • re PR tree-optimization/91568 (internal compiler error: in… · f48e4da3
      re PR tree-optimization/91568 (internal compiler error: in vect_schedule_slp_instance, at tree-vect-slp.c:3922)
      
      2019-08-29  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/91568
      	* tree-vectorizer.h (_slp_tree::max_nunits): Add.
      	(vect_update_max_nunits): Add overload for poly_uint64.
      	* tree-vect-slp.c (vect_create_new_slp_node): Initialize it.
      	(vect_build_slp_tree): Record max_nunits into the subtree
      	and merge it upwards.
      	(vect_print_slp_tree): Print max_nunits.
      
      	* gfortran.dg/pr91568.f: New testcase.
      
      From-SVN: r275023
      Richard Biener committed
    • Implement P1152R4: Deprecating some uses of volatile. · 8a902edb
      	PR c++/91361
      	* c-opts.c (c_common_post_options): Enable -Wvolatile by
      	default for C++2a, unless -Wno-deprecated.
      	* c.opt (Wvolatile): New warning.
      
      	* cp-gimplify.c (cp_fold): Set TREE_THIS_VOLATILE.
      	* decl.c (grokdeclarator): Warn about a volatile-qualified structured
      	binding and return type.
      	(grokparms): Warn about a volatile-qualified function parameter.
      	* expr.c (mark_use) <case MODIFY_EXPR>: Emit a -Wvolatile warning.
      	* typeck.c (cp_build_unary_op): Emit a -Wvolatile warning for pre and
      	post ++/-- on a volatile operand.
      	(genericize_compound_lvalue): Use a better location.  Don't lose
      	TREE_THIS_VOLATILE.
      	(cp_build_modify_expr): Emit a -Wvolatile warning for a compound
      	assignment whose LHS is volatile-qualified.  Build the assignment with
      	a more precise location.
      
      	* doc/invoke.texi: Document -Wvolatile.
      
      	* c-c++-common/Wbool-operation-1.c: Use -Wno-volatile in C++.
      	* c-c++-common/gomp/atomic-1.c: Likewise.
      	* c-c++-common/gomp/atomic-9.c: Likewise.
      	* c-c++-common/gomp/depend-iterator-1.c: Likewise.
      	* c-c++-common/gomp/loop-1.c: Adjust warning location for C++.
      	* c-c++-common/gomp/order-3.c: Likewise.
      	* c-c++-common/pr69733.c: Use -Wno-volatile in C++.
      	* c-c++-common/spec-barrier-2.c: Likewise.
      	* c-c++-common/tm/pr54893.c: Likewise.
      	* g++.dg/cpp0x/pr65327.C: Add dg-warning.
      	* g++.dg/cpp0x/rv-conv2.C: Likewise.
      	* g++.dg/cpp0x/rv1n.C: Likewise.
      	* g++.dg/cpp0x/rv1p.C: Likewise.
      	* g++.dg/cpp0x/rv2n.C: Likewise.
      	* g++.dg/cpp0x/rv2p.C: Likewise.
      	* g++.dg/cpp0x/rv3n.C: Likewise.
      	* g++.dg/cpp0x/rv3p.C: Likewise.
      	* g++.dg/cpp0x/rv4n.C: Likewise.
      	* g++.dg/cpp0x/rv4p.C: Likewise.
      	* g++.dg/cpp0x/rv5n.C: Likewise.
      	* g++.dg/cpp0x/rv5p.C: Likewise.
      	* g++.dg/cpp0x/rv6n.C: Likewise.
      	* g++.dg/cpp0x/rv6p.C: Likewise.
      	* g++.dg/cpp0x/rv7n.C: Likewise.
      	* g++.dg/cpp0x/rv7p.C: Likewise.
      	* g++.dg/cpp0x/rv8p.C: Likewise.
      	* g++.dg/cpp0x/trailing14.C: Use -Wno-volatile.
      	* g++.dg/cpp1y/new1.C: Add dg-warning.
      	* g++.dg/cpp2a/volatile1.C: New test.
      	* g++.dg/cpp2a/volatile2.C: New test.
      	* g++.dg/cpp2a/volatile3.C: New test.
      	* g++.dg/cpp2a/volatile4.C: New test.
      	* g++.dg/expr/bool3.C: Add dg-warning.
      	* g++.dg/expr/bool4.C: Likewise.
      	* g++.dg/expr/cond9.C: Likewise.
      	* g++.dg/ext/vector25.C: Likewise.
      	* g++.dg/gomp/depend-iterator-1.C: Use -Wno-volatile.
      	* g++.dg/inherit/covariant21.C: Add dg-warning.
      	* g++.dg/init/ref18.C: Likewise.
      	* g++.dg/ipa/pr63838.C: Likewise.
      	* g++.dg/overload/rvalue2.C: Likewise.
      	* g++.dg/parse/semicolon4.C: Likewise.
      	* g++.dg/warn/Wreturn-type-4.C: Likewise.
      	* g++.dg/warn/pr36069.C: Likewise.
      	* g++.old-deja/g++.mike/p9506.C: Likewise.
      	* g++.old-deja/g++.other/volatile1.C: Likewise.
      
      From-SVN: r275022
      Marek Polacek committed
    • Daily bump. · 737c5bac
      From-SVN: r275021
      GCC Administrator committed
  3. 28 Aug, 2019 17 commits