1. 22 Nov, 2019 20 commits
    • PR c++/88337 - P1327R1: Allow polymorphic typeid in constexpr. · 66acfb80
      Part of P1327R1 is to allow typeid with an operand of polymorphic type in
      constexpr.  I found that we pretty much support it already, the only tweak
      was to allow TYPEID_EXPR (only created in a template) in constexpr in C++20.
      
      	* constexpr.c (potential_constant_expression_1): Allow a typeid
      	expression whose operand is of polymorphic type in constexpr in
      	C++20.
      	* rtti.c (build_typeid): Remove obsolete FIXME comment.
      
      	* g++.dg/cpp2a/constexpr-typeid1.C: New test.
      	* g++.dg/cpp2a/constexpr-typeid2.C: New test.
      	* g++.dg/cpp2a/constexpr-typeid3.C: New test.
      	* g++.dg/cpp2a/constexpr-typeid4.C: New test.
      
      From-SVN: r278635
      Marek Polacek committed
    • re PR c/90677 (gcc-9.1.0 fails to build __gcc_diag__ souce: error: 'cgraph_node'… · bdaf8be1
      re PR c/90677 (gcc-9.1.0 fails to build __gcc_diag__ souce: error: 'cgraph_node' is not defined as a type)
      
      	PR c/90677
      	* c-common.h (identifier_global_tag): Declare.
      	* c-format.c (get_pointer_to_named_type): Renamed to ...
      	(get_named_type): ... this.  Use identifier_global_tag instead of
      	identifier_global_value, handle the return value being a TYPE_P.
      	(init_dynamic_diag_info): Adjust get_pointer_to_named_type callers
      	to call get_named_type instead.  Formatting fixes.
      c/
      	* c-decl.c (identifier_global_tag): Define.
      cp/
      	* cp-objcp-common.c (identifier_global_tag): Define.
      testsuite/
      	* c-c++-common/pr90677.c: New test.
      
      From-SVN: r278634
      Jakub Jelinek committed
    • re PR c++/92458 (Constraints do not work with precompiled headers) · df418f1d
      	PR c++/92458
      	* tree-hash-traits.h (tree_decl_hash, tree_ssa_name_hash,
      	tree_hash): Move to ...
      	* tree.h (tree_decl_hash, tree_ssa_name_hash, tree_hash): ... here.
      	(struct decl_tree_cache_traits, struct type_tree_cache_traits): New
      	types.
      	(decl_tree_cache_map, tree_tree_cache_map): New typedefs.
      
      	* init.c (nsdmi_inst): Change type to
      	decl_tree_cache_map * from tree_cache_map *.
      	* constraint.cc (decl_constraints): Likewise.
      	* decl.c (get_tuple_decomp_init): Likewise.
      	* pt.c (defarg_inst, explicit_specifier_map): Likewise.
      	(tsubst_default_argument, store_explicit_specifier): Use
      	decl_tree_cache_map::create_ggc rather than
      	tree_cache_map::create_ggc.
      	* cp-objcp-common.c (debug_type_map): Change type to
      	type_tree_cache_map * from tree_cache_map *.
      
      	* g++.dg/pch/pr92458.C: New test.
      	* g++.dg/pch/pr92458.Hs: New test.
      
      From-SVN: r278633
      Jakub Jelinek committed
    • [Darwin, X86, testsuite] Update tests for common section use. · 839e636a
      The tests amended here now have different code-gen with default
      options because, previously, the access were indirected per Darwin
      ABI for common accesses.  The revised code-gen does not match the
      expected scan-asms because Darwin defaults to fPIC.  For these tests,
      it seems that the best solution is to use '-mdynamic-no-pic' in the
      m32 case which makes the output similar to the ElF platform default.
      
      gcc/testsuite/ChangeLog:
      
      2019-11-22  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* gcc.target/i386/pr27971.c: Use mdynamic-no-pic for m32 on
      	Darwin.
      	* gcc.target/i386/sse2-load-multi.c: Likewise.
      	* gcc.target/i386/sse2-store-multi.c: Likewise.
      
      From-SVN: r278631
      Iain Sandoe committed
    • [testsuite] Commit missed Changelog entry. · 037ec35a
      From-SVN: r278630
      Iain Sandoe committed
    • Implement P1902R1, Missing feature-test macros 2017-2019. · 761df906
      	* c-cppbuiltin.c (c_cpp_builtins): Bump __cpp_init_captures
      	and __cpp_generic_lambdas for -std=c++2a.  Define
      	__cpp_designated_initializers, __cpp_constexpr_in_decltype and
      	__cpp_consteval for -std=c++2a.  Remove a FIXME comment about
      	__cpp_concepts for -std=c++2a.
      
      	* g++.dg/cpp1z/feat-cxx1z.C: Only compile with -std=c++17.
      	* g++.dg/cpp2a/feat-cxx2a.C: Adjust for P1902R1 changes.
      	* g++.dg/cpp2a/desig15.C: New test.
      	* g++.dg/cpp2a/lambda-pack-init3.C: New test.
      	* g++.dg/cpp2a/lambda-generic6.C: New test.
      	* g++.dg/cpp2a/consteval15.C: New test.
      
      From-SVN: r278628
      Jakub Jelinek committed
    • re PR tree-optimization/92618 (error: type mismatch in binary expression in reassoc since r273490) · 204b0beb
      	PR tree-optimization/92618
      	* tree-ssa-reassoc.c (v_info): Change from auto_vec to a struct
      	containing the auto_vec and a tree.
      	(undistribute_bitref_for_vector): Handle the case when element type
      	of vec is not the same as type of the BIT_FIELD_REF.  Formatting
      	fixes.
      
      	* gcc.c-torture/compile/pr92618.c: New test.
      	* gcc.c-torture/execute/pr92618.c: New test.
      
      From-SVN: r278626
      Jakub Jelinek committed
    • PR middle-end/83859 - attributes to associate pointer arguments and sizes · 54aa6b58
      gcc/ChangeLog:
      
      	PR middle-end/83859
      	* attribs.h (struct attr_access): New.
      	* attribs.c (decl_attributes): Add an informational note.
      	* builtins.c (check_access): Make extern.  Consistently set no-warning
      	after issuing a warning.  Handle calls through function pointers.  Set
      	no-warning.
      	* builtins.h (check_access): Declare.
      	* calls.c (rdwr_access_hash): New type.
      	(rdwr_map): Same.
      	(init_attr_rdwr_indices): New function.
      	(maybe_warn_rdwr_sizes): Same.
      	(initialize_argument_information): Call init_attr_rdwr_indices.
      	Call maybe_warn_rdwr_sizes.
      	(get_size_range): Avoid null argument.
      	* doc/extend.texi (attribute access): Document new attribute.
      
      gcc/c-family/ChangeLog:
      
      	PR middle-end/83859
      	* c-attribs.c (handle_access_attribute): New function.
      	(c_common_attribute_table): Add new attribute.
      	(get_argument_type): New function.
      	(append_access_attrs): New function.
      	(get_nonnull_operand): Rename...
      	(get_attribute_operand): ...to this.
      	* c-common.c (get_nonnull_operand): Rename...
      	(get_attribute_operand): ...to this.
      
      gcc/testsuite/ChangeLog:
      
      	PR middle-end/83859
      	* c-c++-common/attr-nonstring-8.c: Adjust text of expected warning.
      	* gcc.dg/Wstringop-overflow-23.c: New test.
      	* gcc.dg/Wstringop-overflow-24.c: New test.
      	* gcc.dg/attr-access-read-only.c: New test.
      	* gcc.dg/attr-access-read-write.c: New test.
      	* gcc.dg/attr-access-read-write-2.c: New test.
      	* gcc.dg/attr-access-write-only.c: New test.
      
      From-SVN: r278624
      Martin Sebor committed
    • PR middle-end/88226 - missing warning on fprintf, fputs, and puts with an unterminated array · b5338fb3
      gcc/ChangeLog:
      
      	PR middle-end/88226
      	* builtins.c (check_nul_terminated_array): New function.
      	(fold_builtin_0): Remove declaration.
      	(fold_builtin_1): Same.
      	(fold_builtin_2): Same.
      	(fold_builtin_3): Same.
      	(fold_builtin_strpbrk): Add argument.
      	(fold_builtin_strspn): Same.
      	(fold_builtin_strcspn): Same.
      	(expand_builtin_strcat): Call it.  Remove unused argument.
      	(expand_builtin_stpncpy): Same.
      	(expand_builtin_strncat): Same.
      	(expand_builtin_strncpy): Same.  Adjust indentation.
      	(expand_builtin_strcmp): Same.
      	(expand_builtin_strncmp): Same.
      	(expand_builtin_fork_or_exec): Same.
      	(expand_builtin): Handle more built-ins.
      	(fold_builtin_2): Add argument.
      	(fold_builtin_n): Make static.  Add argument.
      	(fold_call_expr): Pass new argument to fold_builtin_n and fold_builtin_2.
      	(fold_builtin_call_array): Pass new argument to fold_builtin_n.
      	(fold_builtin_strpbrk): Add argument.  Call check_nul_terminated_array.
      	(fold_call_stmt): Pass new argument to fold_builtin_n.
      	* builtins.h: Correct a comment.
      	* gimple-fold.c (gimple_fold_builtin_strchr): Call
      	check_nul_terminated_array.
      	* tree-ssa-strlen.c (handle_builtin_strlen): Call
      	check_nul_terminated_array.
      	(handle_builtin_strchr): Same.
      	(handle_builtin_string_cmp): Same.
      
      gcc/testsuite/ChangeLog:
      
      	PR middle-end/88226
      	* gcc.dg/Wstringop-overflow-22.c: New test.
      	* gcc.dg/tree-ssa/builtin-fprintf-warn-1.c: Remove xfails.
      
      From-SVN: r278623
      Martin Sebor committed
    • Limit LDS usage. · 86b0eb81
      2019-11-22  Andrew Stubbs  <ams@codesourcery.com>
      
      	gcc/
      	* config/gcn/gcn.c (OMP_LDS_SIZE): Define.
      	(ACC_LDS_SIZE): Define.
      	(OTHER_LDS_SIZE): Define.
      	(LDS_SIZE): Redefine using above.
      	(gcn_expand_prologue): Initialize m0 with LDS_SIZE-1.
      
      From-SVN: r278622
      Andrew Stubbs committed
    • PR tree-optimization/92501 - strncmp with constant unterminated arrays not folded · d2f8402a
      gcc/testsuite/ChangeLog:
      
      	PR tree-optimization/92501
      	* gcc.dg/strcmpopt_7.c: New test.
      
      gcc/ChangeLog:
      
      	PR tree-optimization/92501
      	* gimple-fold.c ((gimple_fold_builtin_string_compare): Let strncmp
      	handle unterminated arrays.  Rename local variables for clarity.
      
      From-SVN: r278621
      Martin Sebor committed
    • Use GFX9 granulated sgprs count correctly. · aa84ec84
      2019-11-22  Andrew Stubbs  <ams@codesourcery.com>
      
      	gcc/
      	* config/gcn/gcn.c (gcn_hsa_declare_function_name): Calculate
      	granulated_sgprs according to architecture.
      
      From-SVN: r278617
      Andrew Stubbs committed
    • Release memory-block-pool memory back to malloc. · 9fd052e7
      	* ggc-page.c (ggc_collect): Call memory_block_pool::trim.
      	* memory-block.cc (memory_block_pool::clear_free_list): Rename to ...
      	(memory_block_pool::reduce_free_list): ... this one.
      	(memory_block_pool::trim): New static function.
      	* memory-block.h (memory_block_pool::freelist_size): New constant
      	(memory_block_pool::clear_free_list): Rename to ...
      	(memory_block_pool::reduce_free_list): ... this one.
      	(memory_block_pool::trim): Declare.
      	
      	* lto.c (lto_wpa_write_files): Call memory_block_pool::trim.
      
      From-SVN: r278616
      Jan Hubicka committed
    • Disable epilogue loop vectorisation for vect-widen-mult-u8-*.c · f2f3dbc6
      vect-widen-mult-u8.c and vect-widen-mult-u8-u32.c were failing
      on arm-linux-gnueabihf with epilogue vectorisation because we
      print the expected messages twice rather than once.  We could
      fix that either by removing the counts or by disabling epilogue
      loop vectorisation.  The other vect-widen-mult-* tests do the
      latter, so I did the same here.
      
      2019-11-22  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/testsuite/
      	* gcc.dg/vect/vect-widen-mult-u8.c: Disable epilogue loop
      	vectorization.
      	* gcc.dg/vect/vect-widen-mult-u8-u32.c: Likewise.
      
      From-SVN: r278613
      Richard Sandiford committed
    • Fix markup in gcc.dg/vect/vect-cond-reduc-3.c · aa5521f2
      gcc.dg/vect/vect-cond-reduc-3.c had been failing on
      arm-linux-gnueabihf since the test was added, because the test needs
      support for VEC_COND_EXPR <float cmp float, int, int> whereas the target
      only supports VEC_COND_EXPRs in which all modes are the same.  (I have
      a fix for that, but it's not really stage 3 material.)
      
      2019-11-22  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/testsuite/
      	* gcc.dg/vect/vect-cond-reduc-3.c: Require vect_cond_mixed
      	rather than vect_condition.
      
      From-SVN: r278612
      Richard Sandiford committed
    • Move EXTRACT_LAST_REDUCTION costing to vectorizable_condition · 27071013
      gcc.target/aarch64/sve/clastb_[57].c started failing after the increase
      in the cost of vec_to_scalar (r278452).  The problem is that we were
      double-counting the cost of the CLASTB: once in vect_model_reduction_cost
      as a vec_to_scalar and once in vectorizable_condition as a plain
      vector_stmt.
      
      Based on the TODO above vect_model_reduction_cost, I think the
      preferred long-term direction is for vectorizable_* to cost these
      things itself, so that's what the patch does (for this one case only).
      
      2019-11-22  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* tree-vect-stmts.c (vect_model_simple_cost): Take an optional
      	vect_cost_for_stmt.
      	(vectorizable_condition): Calculate the cost of EXTRACT_LAST_REDUCTION
      	here rather than...
      	* tree-vect-loop.c (vect_model_reduction_cost): ...here.
      
      From-SVN: r278611
      Richard Sandiford committed
    • [ARC] Fix failing pr77309 for ARC700 · d9c50233
      The patterns neg_scc_insn and not_scc_insn are not correct, leading to
      failing pr77309 test for ARC700. Add two new bic compare with zero
      patterns to improve output code.
      
      gcc/
      xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.md (bic_f): Use cc_set_register predicate.
      	(bic_cmp0_noout): New pattern.
      	(bic_cmp0): Likewise.
      	(neg_scc_insn): Remove pattern.
      	(not_scc_insn): Likewise.
      
      From-SVN: r278610
      Claudiu Zissulescu committed
    • [ARC] Fix ARC target specific tests. · 713877cb
      Fix ARC specific tests by improving the matching pattern and adding
      the missing functionality in arc.exp
      
      gcc/tests
      xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* gcc.target/arc/add_n-combine.c: Match add1/2/3 instruction in
      	output assembly.
      	* gcc.target/arc/arc.exp (check_effective_target_codedensity):
      	Add.
      	* gcc.target/arc/cmem-7.c: Fix matching patterns.
      	* gcc.target/arc/cmem-bit-1.c: Likewise.
      	* gcc.target/arc/cmem-bit-2.c: Likewise.
      	* gcc.target/arc/cmem-bit-3.c: Likewise.
      	* gcc.target/arc/cmem-bit-4.c: Likewise.
      	* gcc.target/arc/interrupt-2.c: Match rtie insn for A7.
      	* gcc.target/arc/store-merge-1.c: This test is only meaningful for
      	architectures with double load/store operations.
      
      From-SVN: r278609
      Claudiu Zissulescu committed
    • strlenopt-66.c: Avoid buffer overflow. · 7028c217
      gcc/testsuite/ChangeLog:
      	* gcc.dg/strlenopt-66.c: Avoid buffer overflow.  Add more test cases.
      
      From-SVN: r278608
      Martin Sebor committed
    • Daily bump. · fb654309
      From-SVN: r278607
      GCC Administrator committed
  2. 21 Nov, 2019 20 commits
    • doc: Remove claim about ISO C · ee573dca
      The patch to make -fcommon the default introduces a bogus claim into
      the GCC documentation.
      
      -fcommon was claimed to be incompatible with ISO C for preventing
      duplicate definitions from being diagnosed.  It does, but as that
      elicits undefined behaviour (the requirement that there shall be no
      more than one external definition is not a constraint), ISO C does not
      require any diagnostic for it.  In the absence of any other rule this
      would violate, both -fcommon and -fno-common are fully compatible with
      all versions of ISO C.
      
      2019-11-21  Harald van Dijk  <harald@gigawatt.nl>
      
      	* doc/invoke.texi (-fcommon): Remove claim about ISO C.
      
      From-SVN: r278604
      Harald van Dijk committed
    • Make more bad uses of fallthrough attribute into pedwarns. · 6c80b1b5
      Various bad uses of the [[fallthrough]] attribute are constraint
      violations in C2x, so need pedwarns rather than warnings.
      
      This patch duly turns the relevant warnings into pedwarns.  The
      relevant code is not specific to C, and does not know which form the
      attribute was given in ([[fallthrough]] or [[gnu::fallthrough]] or
      __attribute__((fallthrough))), but as I understand it these usages are
      also erroneous for C++ and it seems reasonable to give a pedwarn here
      even when a form other than [[fallthrough]] is being used.
      
      The precise meaning of the standard wording about "The next statement
      that would be executed" seems a but unclear in some corner cases; the
      tests added keep to cases where it is clear whether or not the next
      statement executed is of the required form.
      
      Bootstrapped with no regressions for x86_64-pc-linux-gnu.
      
      gcc:
      	* gimplify.c (expand_FALLTHROUGH_r, expand_FALLTHROUGH): Use
      	pedwarn instead of warning_at for fallthrough not preceding a case
      	or default label.
      
      gcc/c-family:
      	* c-attribs.c (handle_fallthrough_attribute): Use pedwarn instead
      	of warning.
      
      gcc/testsuite:
      	* gcc.dg/c2x-attr-fallthrough-6.c: New test.  Split out from
      	c2x-attr-fallthrough-3.c.
      	* gcc.dg/c2x-attr-fallthrough-1.c: Add more tests.
      	* gcc.dg/c2x-attr-fallthrough-2.c: Update expected diagnostics.
      	* gcc.dg/c2x-attr-fallthrough-3.c: Split inside-switch part of
      	test out to c2x-attr-fallthrough-6.c.
      
      From-SVN: r278599
      Joseph Myers committed
    • Use safe_dyn_cast instead of dyn_cast in find_loop_guard to fix PR92608. · b30e83f8
      2019-11-22  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
      
      	PR tree-optimization/92608
      	* tree-ssa-loop-unswitch.c (find_loop_guard): Use safe_dyn_cast instead
      	of dyn_cast.
      
      testsuite/
      	* gcc.dg/torture/pr92608.c: New test.
      
      From-SVN: r278598
      Prathamesh Kulkarni committed
    • [Darwin, testsuite] Update tests for common section use. · d2993abd
      These two tests are explicitly testing the use of specific
      sections or assembler directives for data that is placed in
      common.  Append -fcommon to the flags to restore them.
      
      gcc/testsuite/ChangeLog:
      
      2019-11-21  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* gcc.dg/darwin-comm.c: Add -fcommon to compile flags.
      	* gcc.dg/darwin-sections.c: Likewise.
      
      From-SVN: r278596
      Iain Sandoe committed
    • [testsuite] Fix bad dg-error syntax in gnu2x-attrs-1.c. · ee407211
      2019-11-21  Iain Sandoe  <iain@sandoe.co.uk>
      
      	PR testsuite/92619
      	* gcc.dg/gnu2x-attrs-1.c: Fix dg-error syntax.
      
      From-SVN: r278594
      Iain Sandoe committed
    • rs6000: Don't split FP comparisons at expand time · eb548534
      We currently expand various floating point comparisons early, to some
      sequences with cror insns and the like.  This doesn't optimize well.
      
      Change that to allow any of the 14 floating point comparisons in the
      instruction stream, and split them after combine (at split1).
      
      
      	* config/rs6000/predicates.md (extra_insn_branch_comparison_operator):
      	New predicate.
      	* config/rs6000/rs6000-protos.h (rs6000_emit_fp_cror): New declaration.
      	* config/rs6000/rs6000.c (rs6000_generate_compare): Don't do anything
      	special for FP comparisons that need a cror instruction eventually.
      	(rs6000_emit_fp_cror): New function.
      	(rs6000_emit_sCOND): Expand all floating point comparisons to one
      	instruction, for normal FP modes, with HONOR_NANS.
      	(rs6000_emit_cbranch): Reformat.
      	* config/rs6000/rs6000.md (fp_rev): New iterator.
      	(fp_two): New iterator.
      	*<code><mode>_cc for fp_rev and GPR: New define_insn_and_split.
      	*<code><mode>_cc for fp_two and GPR: New define_insn_and_split.
      	*cbranch_2insn: New define_insn_and_split.
      
      From-SVN: r278593
      Segher Boessenkool committed
    • Reject versioning for alignment with different masks (PR 92526) · 557532d1
      Allowing mixed vector sizes broke the assumption in the following assert,
      since it's now possible for different accesses to require different
      levels of alignment:
      
                    /* FORNOW: use the same mask to test all potentially unaligned
                       references in the loop.  The vectorizer currently supports
                       a single vector size, see the reference to
                       GET_MODE_NUNITS (TYPE_MODE (vectype)) where the
                       vectorization factor is computed.  */
                    gcc_assert (!LOOP_VINFO_PTR_MASK (loop_vinfo)
                                || LOOP_VINFO_PTR_MASK (loop_vinfo) == mask);
      
      I guess we could try to over-align smaller accesses so that all
      of them are consistent, or try to support multiple alignment masks,
      but for now the easiest fix seems to be to turn the assert into a
      bail-out check.
      
      2019-11-21  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	PR tree-optimization/92526
      	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Reject
      	versioning for alignment if the accesses do not have a consistent
      	mask, rather than asserting that the masks are consistent.
      
      gcc/testsuite/
      	PR tree-optimization/92526
      	* gcc.target/aarch64/pr92526.c: New test.
      
      From-SVN: r278592
      Richard Sandiford committed
    • Add more markup to vect-alias-check-{1,18}.c (PR 92543) · 91f161b0
      In vect-alias-check-1.c we unroll the inner loop and then vectorise
      the stores at a[c + 1][b].  Since the access has no guaranteed
      alignemnt, we need a realignment mechanism or support for unaligned
      accesses in order to vectorise.
      
      In vect-alias-check-18.c we use a reverse access and so need
      permute support in order to vectorise.
      
      I'm not really sure when this part of the testsuite prefers
      { xfail { ! foo } } and when it prefers { target foo }.  xfail
      seems like the most common choice for the alignment restriction,
      whereas vect_int and vect_perm are mostly dg-require-effective-target
      style features, so I went with that combination.
      
      2019-11-21  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/testsuite/
      	PR testsuite/92543
      	* gcc.dg/vect/vect-alias-check-1.c: XFAIL the alias check message
      	if there is no realignment support and no support for unaligned
      	accesses.
      	* gcc.dg/vect/vect-alias-check-18.c: Restrict the test for the
      	alias message to targets that have permute support.
      
      From-SVN: r278591
      Richard Sandiford committed
    • Add missing VECTOR_MODE_P checks (PR 92595) · 934f135b
      This patch fixes some cases in which we weren't checking whether we had
      a vector mode before calling related_vector_mode or before making vector
      optab queries.
      
      2019-11-21  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	PR tree-optimization/92595
      	* tree-vect-stmts.c (get_group_load_store_type): Add a VECTOR_MODE_P
      	check.
      	(vectorizable_store, vectorizable_load): Likewise.
      
      gcc/testsuite/
      	PR tree-optimization/92595
      	* g++.dg/vect/pr92595.cc: New test.
      
      From-SVN: r278590
      Richard Sandiford committed
    • [GCC][ARM]: Fix the failing ACLE testcase with correct test directive. · 82399335
      
      Hello,
      
      This patch fixes arm acle testcase crc_hf_1.c by modifying the compiler
      options directive.
      
      Regression tested on arm-none-eabi and found no regressions.
      
      Ok for trunk? If ok, please commit on my behalf, I don't have the commit
      rights.
      
      Thanks,
      Srinath.
      
      Applied on behalf of Srinath.
      
      gcc/testsuite/ChangeLog:
      
      2019-11-21  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
      
      	* gcc.target/arm/acle/crc_hf_1.c: Modify the compiler options directive
      	from dg-options to dg-additional-options.
      
      From-SVN: r278588
      Srinath Parvathaneni committed
    • Fix failures on Solaris with -fno-common default · b8e72446
      	gcc/testsuite:
      	* gcc.c-torture/execute/20030913-1.c: Rename glob to g.
      	* gcc.c-torture/execute/960218-1.c: Rename glob to gl.
      	* gcc.c-torture/execute/complex-6.c: Rename err to e.
      	* gcc.dg/torture/ssa-pta-fn-1.c: Rename glob to g.
      
      	libgomp:
      	* testsuite/libgomp.c/pr39591-1.c: Rename err to e.
      	* testsuite/libgomp.c/pr39591-2.c: Likewise.
      	* testsuite/libgomp.c/pr39591-3.c: Likewise.
      	* testsuite/libgomp.c/private-1.c: Likewise.
      	* testsuite/libgomp.c/task-1.c: Likewise.
      	* testsuite/libgomp.c/task-5.c: Renamed err to serr.
      
      From-SVN: r278571
      Rainer Orth committed
    • PR c++/92450 - ICE with invalid nested name specifier. · 523cfd52
      	* parser.c (cp_parser_member_declaration): Don't attempt to print
      	erroneous bit-field diagnostic if grokdeclarator returns
      	error_mark_node.
      
      	* g++.dg/parse/crash71.C: New test.
      
      From-SVN: r278570
      Marek Polacek committed
    • Avoid quadratic behaviour of update_callee_keys. · 7c6f2fb9
      	* ipa-inline.c (update_callee_keys): Add parameter UPDATE_SINCE.
      	(resolve_noninline_speculation, inline_small_functions): Avoid
      	redundant updates.
      
      From-SVN: r278566
      Jan Hubicka committed
    • Fix global_vars_f90_init test failure · 5f5e796c
      Add a missing extern to ensure the test passes with -fno-common change.
      Committed as obvious.
      
          testsuite/
      	* gfortran.dg/global_vars_f90_init_driver.c: Add missing extern.
      
      From-SVN: r278557
      Wilco Dijkstra committed
    • lra.c (lra_insn_recog_data_pool): New. · 033bd26e
      2019-11-21  Richard Biener  <rguenther@suse.de>
      
      	* lra.c (lra_insn_recog_data_pool): New.
      	(free_insn_recog_data): Adjust.
      	(finish_insn_recog_data): Release lra_insn_recog_data_pool.
      	(lra_set_insn_recog_data): Allocate from lra_insn_recog_data_pool.
      
      From-SVN: r278556
      Richard Biener committed
    • re PR tree-optimization/92596 (ICE in exact_div, at poly-int.h:2162 since r278406) · 7c327e2d
      2019-11-21  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/92596
      	* tree-vect-slp.c (vect_build_slp_tree): Fix pasto.
      
      	* gcc.dg/torture/pr92596-1.c: New testcase.
      
      From-SVN: r278555
      Richard Biener committed
    • Fix previous commit. · 9c572192
              * ipa-prop.h (ipa_release_agg_values): Add parameter RELEASE_VECTOR.
      
      From-SVN: r278554
      Jan Hubicka committed
    • ipa-fnsummary.c (evaluate_conditions_for_known_args): Be ready for some vectors… · b0d55476
      ipa-fnsummary.c (evaluate_conditions_for_known_args): Be ready for some vectors to not be allocated.
      
      
      	* ipa-fnsummary.c (evaluate_conditions_for_known_args): Be
      	ready for some vectors to not be allocated.
      	(evaluate_properties_for_edge): Document better; make
      	known_vals and known_aggs caller allocated; avoid determining
      	values of parameters which are not used.
      	(ipa_merge_fn_summary_after_inlining): Pre allocate known_vals and
      	known_aggs.
      	* ipa-inline-analysis.c (do_estimate_edge_time): Likewise.
      	(do_estimate_edge_size): Likewise.
      	(do_estimate_edge_hints): Likewise.
      	* ipa-cp.c (ipa_get_indirect_edge_target_1): Do not early exit when
      	values are not known.
      	(ipa_release_agg_values): Add option to not release vector itself.
      
      From-SVN: r278553
      Jan Hubicka committed
    • Testsuite: Fix fp-int-convert-timode-1.c testism. · 48ffab98
      The test fp-int-convert-timode-1.c uses FE_TONEAREST without
      actually checking if the target has defined it.
      
      Like the rest of the tests I now add a check to see if the target
      has actually implemented it.
      
      This fixed Arm newlib target failures.
      
      Regtested on aarch64-none-elf and aarch64_be-none-elf and no issues.
      
      Committed under the GCC obvious rules.
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.dg/torture/fp-int-convert-timode-1.c: Add check for FE_TONEAREST.
      
      From-SVN: r278552
      Tamar Christina committed
    • cfgloop.h (loop_iterator::~loop_iterator): Remove. · d78b7095
      2019-11-21  Richard Biener  <rguenther@suse.de>
      
      	* cfgloop.h (loop_iterator::~loop_iterator): Remove.
      	(loop_iterator::to_visit): Use an auto_vec with internal storage.
      	(loop_iterator::loop_iterator): Adjust.
      	* cfganal.c (compute_dominance_frontiers_1): Fold into...
      	(compute_dominance_frontiers): ... this.  Hoist invariant
      	get_immediate_dominator call.
      	(compute_idf): Use a work-set instead of a work-list for more
      	optimal iteration order and duplicate avoidance.
      	* tree-into-ssa.c (mark_phi_for_rewrite): Avoid re-allocating
      	the vector all the time, instead pre-allocate the vector only
      	once.
      	(delete_update_ssa): Simplify.
      	* vec.h (va_heap::release): Disable -Wfree-nonheap-object around it.
      
      From-SVN: r278550
      Richard Biener committed