1. 16 Mar, 2019 9 commits
  2. 15 Mar, 2019 14 commits
    • re PR fortran/60091 (Misleading error messages in rank-2 pointer assignment to rank-1 target) · eb1474ba
      2019-03-15  Harald Anlauf  <anlauf@gmx.de>
      
      	PR fortran/60091
      	* expr.c (gfc_check_pointer_assign): Correct and improve error
      	messages for invalid pointer assignments.
      
      	PR fortran/60091
      	* gfortran.dg/pointer_remapping_3.f08: Adjust error messages.
      	* gfortran.dg/pointer_remapping_7.f90: Adjust error message.
      
      From-SVN: r269717
      Harald Anlauf committed
    • LRA: side_effects_p stmts' output is not invariant (PR89721) · 850b8aa3
      PR89721 shows LRA treating an unspec_volatile's result as invariant,
      which of course isn't correct.  This patch fixes it.
      
      
      	PR rtl-optimization/89721
      	* lra-constraints (invariant_p): Return false if side_effects_p holds.
      
      From-SVN: r269716
      Segher Boessenkool committed
    • re PR target/87532 (bad results from vec_extract(unsigned char, foo) dependent… · 30bb0e44
      re PR target/87532 (bad results from vec_extract(unsigned char, foo) dependent upon function inline)
      
      gcc/ChangeLog:
      
      2019-03-15  Kelvin Nilsen  <kelvin@gcc.gnu.org>
      
      	PR target/87532
      	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
      	When handling vec_extract, use modular arithmetic to allow
      	constant selectors greater than vector length.
      	* config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow
      	V1TImode vectors to have constant selector values greater than 0.
      	Use modular arithmetic to compute vector index.
      	(rs6000_split_vec_extract_var): Use modular arithmetic to compute
      	index for in-memory vectors.  Correct code generation for
      	in-register vectors.
      	(altivec_expand_vec_ext_builtin): Use modular arithmetic to
      	compute index.
      
      gcc/testsuite/ChangeLog:
      
      2019-03-15  Kelvin Nilsen  <kelvin@gcc.gnu.org>
      
      	PR target/87532
      	* gcc.target/powerpc/fold-vec-extract-char.p8.c: Modify expected
      	instruction selection.
      	* gcc.target/powerpc/fold-vec-extract-int.p8.c: Likewise.
      	* gcc.target/powerpc/fold-vec-extract-short.p8.c: Likewise.
      	* gcc.target/powerpc/pr87532-mc.c: New test.
      	* gcc.target/powerpc/pr87532.c: New test.
      	* gcc.target/powerpc/vec-extract-v16qiu-v2.h: New test.
      	* gcc.target/powerpc/vec-extract-v16qiu-v2a.c: New test.
      	* gcc.target/powerpc/vec-extract-v16qiu-v2b.c: New test.
      	* gcc.target/powerpc/vsx-builtin-10a.c: New test.
      	* gcc.target/powerpc/vsx-builtin-10b.c: New test.
      	* gcc.target/powerpc/vsx-builtin-11a.c: New test.
      	* gcc.target/powerpc/vsx-builtin-11b.c: New test.
      	* gcc.target/powerpc/vsx-builtin-12a.c: New test.
      	* gcc.target/powerpc/vsx-builtin-12b.c: New test.
      	* gcc.target/powerpc/vsx-builtin-13a.c: New test.
      	* gcc.target/powerpc/vsx-builtin-13b.c: New test.
      	* gcc.target/powerpc/vsx-builtin-14a.c: New test.
      	* gcc.target/powerpc/vsx-builtin-14b.c: New test.
      	* gcc.target/powerpc/vsx-builtin-15a.c: New test.
      	* gcc.target/powerpc/vsx-builtin-15b.c: New test.
      	* gcc.target/powerpc/vsx-builtin-16a.c: New test.
      	* gcc.target/powerpc/vsx-builtin-16b.c: New test.
      	* gcc.target/powerpc/vsx-builtin-17a.c: New test.
      	* gcc.target/powerpc/vsx-builtin-17b.c: New test.
      	* gcc.target/powerpc/vsx-builtin-18a.c: New test.
      	* gcc.target/powerpc/vsx-builtin-18b.c: New test.
      	* gcc.target/powerpc/vsx-builtin-19a.c: New test.
      	* gcc.target/powerpc/vsx-builtin-19b.c: New test.
      	* gcc.target/powerpc/vsx-builtin-20a.c: New test.
      	* gcc.target/powerpc/vsx-builtin-20b.c: New test.
      	* gcc.target/powerpc/vsx-builtin-9a.c: New test.
      	* gcc.target/powerpc/vsx-builtin-9b.c: New test.
      
      From-SVN: r269715
      Kelvin Nilsen committed
    • compiler: preserve nointerface property when inlining methods · 16772757
          
          When an inline function (with body) is imported from another package,
          make that the "nointerface" property (if set) is preserved.
          
          Fixes golang/go#30862.
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/167742
      
      From-SVN: r269713
      Ian Lance Taylor committed
    • add myself as selective scheduling reviewer · d81beb31
      	* MAINTAINERS (Reviewers): Add myself as selective scheduling reviewer.
      	(Write After Approval): Remove myself.
      
      From-SVN: r269712
      Alexander Monakov committed
    • compiler: use const rather than constexpr · 1cd04969
          
          Fixes bootstrap with a C++98 compiler.
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/167762
      
      From-SVN: r269710
      Ian Lance Taylor committed
    • [PR88534] accept VAR_DECL in class literal template parms · ca7f909f
      P0732R2 / C++ 2a introduce class literals as template parameters.  The
      front-end uses VAR_DECLs constructed from such literals to bind the
      template PARM_DECLs, but dwarf2out.c used to reject such VAR_DECLs.
      
      Taking DECL_INITIAL from such VAR_DECLs enables the generation of
      DW_AT_const_value for them, at least when the class literal can
      actually be represented as such.
      
      
      for  gcc/ChangeLog
      
      	PR c++/88534
      	PR c++/88537
      	* dwarf2out.c (generic_parameter_die): Follow DECL_INITIAL of
      	VAR_DECL args.
      
      for  gcc/testsuite/ChangeLog
      
      	PR c++/88534
      	PR c++/88537
      	* g++.dg/cpp2a/pr88534.C: New.
      	* g++.dg/cpp2a/pr88537.C: New.
      
      From-SVN: r269709
      Alexandre Oliva committed
    • re PR d/88990 (ICE in get_symbol_decl, at d/decl.cc:1097) · d2025512
          PR d/88990
      d/dmd: Merge upstream dmd 8d4c876c6
      
      The extern storage class flag was wrongly propagated to function scope
      when starting the semantic pass on the body.
      
      Fixes https://gcc.gnu.org/PR88990
      
      Reviewed-on: https://github.com/dlang/dmd/pull/9452
      
      From-SVN: r269708
      Iain Buclaw committed
    • S/390: Fix tests that expect unquoted option names · ec156546
      r269586 puts single quotes around option names. This patch fixes tests
      that expect the old format.
      
      From-SVN: r269706
      Robin Dapp committed
    • [AArch64] PR target/89719 Adjust gcc.target/aarch64/spellcheck*.c tests · 03570b24
      As of recently the -march,-mcpu,-mtune strings in the error messages are
      now quoted.
      This patch adjusts the testcases in gcc.target/aarch64/ that had started
      failing due to that change.
      
      	PR target/89719
      	* gcc.target/aarch64/spellcheck_4.c: Adjust dg-error string.
      	* gcc.target/aarch64/spellcheck_5.c: Likewise.
      	* gcc.target/aarch64/spellcheck_6.c: Likewise.
      
      From-SVN: r269703
      Kyrylo Tkachov committed
    • re PR c++/89709 (ICE with constexpr and "-O") · 4e6482d0
      	PR c++/89709
      	* tree.c (inchash::add_expr): Strip any location wrappers.
      	* fold-const.c (operand_equal_p): Move stripping of location wrapper
      	after hash verification.
      
      	* g++.dg/cpp0x/constexpr-89709.C: New test.
      
      From-SVN: r269702
      Jakub Jelinek committed
    • re PR debug/89704 (ICE in add_const_value_attribute, at dwarf2out.c:19685) · 8eb2215d
      	PR debug/89704
      	* dwarf2out.c (add_const_value_attribute): Return false for MINUS,
      	SIGN_EXTEND and ZERO_EXTEND.
      
      	* gcc.dg/debug/pr89704.c: New test.
      
      From-SVN: r269700
      Jakub Jelinek committed
    • compiler: eliminate bound checks in append expression · b1403b69
          
          The compiler generates two array index expressions when lowering
          an append expression. Currently they generate bound checks.
          Bound checks are not necessary in this case, as we know the slice
          has, or will grow to, enough length and capacity. Eliminate them.
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/166817
      
      From-SVN: r269699
      Ian Lance Taylor committed
    • Daily bump. · 928499cf
      From-SVN: r269698
      GCC Administrator committed
  3. 14 Mar, 2019 17 commits
    • hash-table.h (remove_elt_with_hash): Return if slot is NULL rather than if is_empty (*slot). · 62de703f
      	* hash-table.h (remove_elt_with_hash): Return if slot is NULL rather
      	than if is_empty (*slot).
      	* hash-set-tests.c (test_set_of_strings): Add tests for addition of
      	existing elt and for elt removal.
      	* hash-map-tests.c (test_map_of_strings_to_int): Add test for removal
      	of already removed elt.
      
      	* hashtab.c (htab_remove_elt_with_hash): Return if slot is NULL rather
      	than if *slot is HTAB_EMPTY_ENTRY.
      
      Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
      
      From-SVN: r269695
      Jason Merrill committed
    • i386: Handle REG_EH_REGION note · 12fb7712
      When we split:
      
      (insn 18 17 76 2 (set (reg:SF 88 [ _19 ])
              (float:SF (mem/c:SI (symbol_ref:DI ("d") [flags 0x2]  <var_decl 0x7fd6d8290c60 d>) [1 d+0 S4 A32]))) "x.ii":4:20 170 {*floatsisf2}
           (expr_list:REG_EH_REGION (const_int 2 [0x2])
              (nil)))
      
      to
      
      (insn 94 17 18 2 (set (reg:V4SF 115)
              (vec_merge:V4SF (vec_duplicate:V4SF (float:SF (mem/c:SI (symbol_ref:DI ("d") [flags 0x2]  <var_decl 0x7f346837ac60 d>) [1 d+0 S4 A32])))
                  (reg:V4SF 114)
                  (const_int 1 [0x1]))) "x.ii":4:20 -1
           (nil))
      (insn 18 94 76 2 (set (reg:SF 88 [ _19 ])
              (subreg:SF (reg:V4SF 115) 0)) "x.ii":4:20 112 {*movsf_internal}
           (expr_list:REG_EH_REGION (const_int 2 [0x2])
              (nil)))
      
      we must copy the REG_EH_REGION note to the first insn and split the block
      after the newly added insn.  The REG_EH_REGION on the second insn will be
      removed later since it no longer traps.
      
      gcc/
      
      	PR target/89650
      	* config/i386/i386.c (remove_partial_avx_dependency): Handle
      	REG_EH_REGION note.
      
      gcc/testsuite/
      
      	PR target/89650
      	* g++.target/i386/pr89650.C: New test.
      
      From-SVN: r269694
      H.J. Lu committed
    • Don't require 'bool' in a concept definition. · f869f407
      	* parser.c (cp_parser_decl_specifier_seq): Support C++20
      	concept-definition syntax without 'bool'.
      
      From-SVN: r269692
      Jason Merrill committed
    • gfortran.texi: Document Q edit descriptor under " Extensions not implemented in GNU Fortran". · c2772236
      2019-03-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	* gfortran.texi: Document Q edit descriptor under
      	" Extensions not implemented in GNU Fortran".
      
      From-SVN: r269690
      Thomas Koenig committed
    • Remove dead option from manual (PR other/89712). · 3ce5bdf7
      2019-03-14  Martin Liska  <mliska@suse.cz>
      
      	PR other/89712
      	* doc/invoke.texi: Remove -fdump-class-hierarchy option.
      
      From-SVN: r269684
      Martin Liska committed
    • re PR target/89711 (ICE in insert_vi_for_tree, at tree-ssa-structalias.c:2832) · 6965fa6d
      2019-03-14  Richard Biener  <rguenther@suse.de>
      
      	PR target/89711
      	* config/i386/i386.c (make_resolver_func): Properly set
      	DECL_CONTEXT on the RESULT_DECL.
      	* config/rs6000/rs6000.c (make_resolver_func): Likewise.
      
      From-SVN: r269683
      Richard Biener committed
    • c-tree.h (enum c_declspec_il): New. · baa09dc5
      2019-03-14  Richard Biener  <rguenther@suse.de>
      
      	c/
      	* c-tree.h (enum c_declspec_il): New.
      	(struct c_declspecs): Merge gimple_p and rtl_p into declspec_il
      	enum bitfield.
      	* c-parser.c (c_parser_declaration_or_fndef): Adjust accordingly.
      	Pass start pass and declspec_il to c_parser_parse_gimple_body.
      	(c_parser_declspecs): Adjust.
      	* gimple-parser.c: Include cfg.h, cfghooks.h, cfganal.h, tree-cfg.h,
      	gimple-iterator.h, cfgloop.h, tree-phinodes.h, tree-into-ssa.h
      	and bitmap.h.
      	(struct gimple_parser): New.
      	(gimple_parser::push_edge): New method.
      	(c_parser_gimple_parse_bb_spec): New helper.
      	(c_parser_parse_gimple_body): Get start pass and IL specification.
      	Initialize SSA and CFG.
      	(c_parser_gimple_compound_statement): Handle CFG and SSA build.
      	Build a gimple_parser parsing state and pass it along.
      	(c_parser_gimple_statement): Change intermittend __PHI internal
      	function argument for the edge.
      	(c_parser_gimple_or_rtl_pass_list): Handle ssa, cfg flags.
      	(c_parser_gimple_goto_stmt): Record edges to build.
      	(c_parser_gimple_if_stmt): Likewise.
      	* gimple-parser.h (c_parser_parse_gimple_body): Adjust.
      	(c_parser_gimple_or_rtl_pass_list): Likewise.
      
      	* gimple-pretty-print.c: Include cfgloop.h.
      	(dump_gimple_phi): Adjust.
      	(dump_gimple_bb_header): Dump loop header for GIMPLE.
      	(pp_cfg_jump): Adjust.
      	(dump_implicit_edges): Dump fallthru to next block for GIMPLE as well.
      	* tree-cfg.c (build_gimple_cfg): Remove lower_phi_internal_fn call.
      	(lower_phi_internal_fn): Remove.
      	(verify_gimple_call): Remove IFN_PHI special-casing.
      	(dump_function_to_file): Dump IL state.
      	* tree-into-ssa.c (rewrite_add_phi_arguments): Revert changes
      	done to deal with PHI nodes being present in non-SSA state.
      
      	* gcc.dg/gimplefe-13.c: Adjust.
      	* gcc.dg/gimplefe-14.c: Likewise.
      	* gcc.dg/gimplefe-17.c: Likewise.
      	* gcc.dg/gimplefe-18.c: Likewise.
      	* gcc.dg/gimplefe-7.c: Likewise.
      	* gcc.dg/torture/pr89595.c: Likewise.
      	* gcc.dg/tree-ssa/cunroll-13.c: Likewise.
      	* gcc.dg/tree-ssa/ivopt_mult_1g.c: Likewise.
      	* gcc.dg/tree-ssa/ivopt_mult_2g.c: Likewise.
      	* gcc.dg/tree-ssa/scev-3.c: Likewise.
      	* gcc.dg/tree-ssa/scev-4.c: Likewise.
      	* gcc.dg/tree-ssa/scev-5.c: Likewise.
      	* gcc.dg/vect/vect-cond-arith-2.c: Likewise.
      	* gcc.target/aarch64/sve/loop_add_6.c: Likewise.
      
      From-SVN: r269682
      Richard Biener committed
    • re PR ipa/89684 (ICE in gsi_for_stmt, at gimple-iterator.c:613) · 27814aed
      	PR ipa/89684
      	* multiple_target.c (create_dispatcher_calls): Change
      	references_to_redirect from vector of ipa_ref * to vector of ipa_ref.
      	In the node->iterate_referring loop, push *ref rather than ref, call
      	ref->remove_reference () and always pass 0 to iterate_referring.
      
      	* gcc.target/i386/pr89684.c: New test.
      
      From-SVN: r269681
      Jakub Jelinek committed
    • re PR rtl-optimization/89679 (wrong code with -Og -frerun-cse-after-loop -fno-tree-fre) · 87654f18
      	PR rtl-optimization/89679
      	* expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it
      	would contain a paradoxical SUBREG.
      
      	* gcc.dg/pr89679.c: New test.
      
      From-SVN: r269680
      Jakub Jelinek committed
    • re PR tree-optimization/89710 (ICE in dyn_cast<gcond*, gimple>(gimple*) /… · df6d3ac9
      re PR tree-optimization/89710 (ICE in dyn_cast<gcond*, gimple>(gimple*) / should_duplicate_loop_header_p)
      
      2019-03-14  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/89710
      	* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
      	safe_dyn_cast.
      
      	* gcc.dg/torture/pr89710.c: New testcase.
      
      From-SVN: r269679
      Richard Biener committed
    • GCOV: print {start,end}_column in JSON file and gcov-dump tool. · b8154717
      2019-03-14  Martin Liska  <mliska@suse.cz>
      
      	* coverage.c (coverage_begin_function): Stream also
      	end_column.
      	* doc/gcov.texi: Document 2 new fields in JSON file.  Improve
      	documentation about function declaration location.
      	* gcov-dump.c (tag_function): Print whole range
      	of function declaration.
      	* gcov.c (struct function_info): Add end_column field.
      	(function_info::function_info): Initialize it.
      	(output_json_intermediate_file): Output {start,end}_column
      	fields.
      	(read_graph_file): Read end_column.
      
      From-SVN: r269678
      Martin Liska committed
    • re PR c++/89698 (Run-time error due to optimization of field access after cast… · ea9d9d74
      re PR c++/89698 (Run-time error due to optimization of field access after cast at -Os/-O2 and higher)
      
      2019-03-14  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/89698
      	* fold-const.c (operand_equal_p): For INDIRECT_REF check
      	that the access types are similar.
      
      	* g++.dg/torture/pr89698.C: New testcase.
      
      From-SVN: r269677
      Richard Biener committed
    • re PR tree-optimization/89703 (ICE in compare_values_warnv, at tree-vrp.c:997) · f54e63df
      	PR tree-optimization/89703
      	* tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types
      	aren't compatible also with builtin_decl_explicit.  Check pure
      	or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}}
      	and BUILT_IN_STPNCPY{,_CHK}.
      
      	* gcc.c-torture/compile/pr89703-1.c: New test.
      	* gcc.c-torture/compile/pr89703-2.c: New test.
      
      From-SVN: r269674
      Jakub Jelinek committed
    • x32: Add addr32 prefix to VSIB address · fb055f4b
      32-bit indices in VSIB address are sign-extended to 64 bits.  In x32,
      when 32-bit indices are used as addresses, like in
      
      vgatherdps %ymm7, 0(,%ymm9,1), %ymm6
      
      32-bit indices, 0xf7fa3010, is sign-extended to 0xfffffffff7fa3010 which
      is invalid address.  Add addr32 prefix to UNSPEC_VSIBADDR instructions
      for x32 if there is no base register nor symbol.
      
      This fixes 175.vpr and 254.gap in SPEC CPU 2000 on x32 with
      
      -Ofast -funroll-loops -march=haswell
      
      gcc/
      
      	PR target/89523
      	* config/i386/i386.c (ix86_print_operand): Handle 'M' to add
      	addr32 prefix to VSIB address for X32.
      	* config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend
      	"%M2" to opcode.
      	(*avx512pf_gatherpf<mode>df_mask): Likewise.
      	(*avx512pf_scatterpf<mode>sf_mask): Likewise.
      	(*avx512pf_scatterpf<mode>df_mask): Likewise.
      	(*avx2_gathersi<mode>): Prepend "%M3" to opcode.
      	(*avx2_gathersi<mode>_2): Prepend "%M2" to opcode.
      	(*avx2_gatherdi<mode>): Prepend "%M3" to opcode.
      	(*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode.
      	(*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode.
      	(*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.`
      	(*avx512f_gathersi<mode>): Prepend "%M4" to opcode.
      	(*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode.
      	(*avx512f_gatherdi<mode>): Prepend "%M4" to opcode.
      	(*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode.
      	(*avx512f_scattersi<mode>): Prepend "%M0" to opcode.
      	(*avx512f_scatterdi<mode>): Likewise.
      
      gcc/testsuite/
      
      	PR target/89523
      	* gcc.target/i386/pr89523-1a.c: New test.
      	* gcc.target/i386/pr89523-1b.c: Likewise.
      	* gcc.target/i386/pr89523-2.c: Likewise.
      	* gcc.target/i386/pr89523-3.c: Likewise.
      	* gcc.target/i386/pr89523-4.c: Likewise.
      	* gcc.target/i386/pr89523-5.c: Likewise.
      	* gcc.target/i386/pr89523-6.c: Likewise.
      	* gcc.target/i386/pr89523-7.c: Likewise.
      	* gcc.target/i386/pr89523-8.c: Likewise.
      	* gcc.target/i386/pr89523-9.c: Likewise.
      
      From-SVN: r269673
      H.J. Lu committed
    • re PR c++/89512 (ICE in get_expr_operands, at tree-ssa-operands.c:882) · b2725ea5
      	PR c++/89512
      	* semantics.c (finish_qualified_id_expr): Reject variable templates.
      
      	* g++.dg/cpp1y/var-templ61.C: New test.
      
      From-SVN: r269672
      Jakub Jelinek committed
    • re PR c++/89652 (ICE during constexpr evaluation) · 0ee28590
      	PR c++/89652
      	* constexpr.c (struct constexpr_ctx): Change save_exprs type from
      	hash_set<tree> to vec<tree>.
      	(cxx_eval_call_expression): Adjust for save_exprs being a vec instead
      	of hash_set.
      	(cxx_eval_loop_expr): Likewise.  Truncate the vector after each
      	removal of SAVE_EXPRs from values.
      	(cxx_eval_constant_expression) <case SAVE_EXPR>: Call safe_push
      	method on save_exprs instead of add.
      
      	* g++.dg/cpp1y/constexpr-89652.C: New test.
      
      From-SVN: r269671
      Jakub Jelinek committed