1. 14 Mar, 2019 10 commits
    • 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
    • Daily bump. · 7da0bca1
      From-SVN: r269670
      GCC Administrator committed
  2. 13 Mar, 2019 24 commits
    • PR c++/86521 - C++17 copy elision in initialization by constructor. · dcfa8518
      This is an overlooked case in C++17 mandatory copy elision: We want overload
      resolution to reflect that initializing an object from a prvalue does not
      involve a copy or move constructor even when [over.match.ctor] says that
      only constructors are candidates.  Here I implement that by looking through
      the copy/move constructor in joust.
      
      	* call.c (joust_maybe_elide_copy): New.
      	(joust): Call it.
      
      From-SVN: r269667
      Jason Merrill committed
    • re PR fortran/87045 (pointer to array of character) · edaff7c9
      2019-03-13  Harald Anlauf  <anlauf@gmx.de>
      
      	PR fortran/87045
      	* trans-expr.c (gfc_trans_pointer_assignment): Move check for same
      	string length so that we do not get false errors for deferred
      	length.
      
      	PR fortran/87045
      	* gfortran.dg/pr87045.f90: New test.
      
      From-SVN: r269664
      Harald Anlauf committed
    • re PR target/85860 (ICE: in lra_split_hard_reg_for, at lra-assigns.c:1810:… · 1e05d185
      re PR target/85860 (ICE: in lra_split_hard_reg_for, at lra-assigns.c:1810: unable to find a register to spill with -flive-range-shrinkage -mbmi2)
      
      2019-03-13  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR target/85860
      	* lra-constraints.c (inherit_in_ebb): Update
      	potential_reload_hard_regs along with live_hard_regs.
      
      2019-03-13  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR target/85860
      	* gcc.target/i386/pr85860.c: New.
      
      From-SVN: r269662
      Vladimir Makarov committed
    • re PR debug/89498 (ICE in AT_loc_list, at dwarf2out.c:4871) · 43fb4c80
      	PR debug/89498
      	* dwarf2out.c (size_of_die): For dw_val_class_view_list always use
      	DWARF_OFFSET_SIZE.
      	(value_format): For dw_val_class_view_list never use DW_FORM_loclistx.
      
      From-SVN: r269661
      Jakub Jelinek committed
    • PR c++/89660 - bogus error with -Wredundant-move. · ef7e79a3
      	* typeck.c (maybe_warn_pessimizing_move): Only accept (T &) &arg
      	as the std::move's argument.  Don't call convert_for_initialization
      	when warn_redundant_move isn't on.
      
      	* g++.dg/cpp0x/Wredundant-move8.C: New test.
      	* g++.dg/cpp0x/Wredundant-move9.C: New test.
      
      From-SVN: r269660
      Marek Polacek committed
    • PR c++/89686 - mixing init-capture and simple-capture in lambda. · 2b0a6274
      	* parser.c (cp_parser_lambda_introducer): Give error when combining
      	init-capture and simple-capture.
      
      	* g++.dg/cpp2a/lambda-pack-init2.C: New test.
      
      From-SVN: r269659
      Marek Polacek committed
    • re PR fortran/89601 ([PDT] ICE: Segmentation fault (in resolve_component)) · 84083a71
      fix PR 89601
      
      2019-03-13  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/89601
      	* decl.c (gfc_match_formal_arglist): Reject empty type parameter lists.
      	(gfc_match_derived_decl): Mark as PDT only if type parameter list was
      	matched successfully.
      
      2019-03-13  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/89601
      	* gfortran.dg/pdt_16.f03: Modified to avoid follow-up errors.
      	* gfortran.dg/pdt_30.f90: New test case.
      
      From-SVN: r269658
      Janus Weil committed
    • PR c++/88979 - further P0634 fix for constructors. · cbfa3ec3
      	* parser.c (cp_parser_decl_specifier_seq): Pass flags to
      	cp_parser_constructor_declarator_p.
      	(cp_parser_direct_declarator): Allow missing typename for constructor
      	parameters.
      	(cp_parser_constructor_declarator_p): Add FLAGS parameter.  Pass it to
      	cp_parser_type_specifier.
      
      	* g++.dg/cpp2a/typename15.C: New test.
      
      From-SVN: r269656
      Marek Polacek committed
    • PR tree-optimization/89662 - -Warray-bounds ICE on void* arithmetic · 129ef157
      gcc/ChangeLog:
      
      	PR tree-optimization/89662
      	* tree-vrp.c (vrp_prop::check_mem_ref): Avoid assuming every type
      	has a size.
      
      gcc/testsuite/ChangeLog:
      
      	PR tree-optimization/89662
      	* gcc.dg/Warray-bounds-41.c: New test.
      
      From-SVN: r269655
      Martin Sebor committed
    • re PR c++/63508 (ICE when using bracketed initializer on pointer to member… · bd8ea483
      re PR c++/63508 (ICE when using bracketed initializer on pointer to member function of a templated class)
      
      2019-03-13  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/63508
      	* g++.dg/cpp0x/auto53.C: New.
      
      From-SVN: r269651
      Paolo Carlini committed
    • re PR middle-end/89677 (internal compiler error: in wide_int_to_tree_1, at tree.c:1549) · cd5091f1
      2019-03-13  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/89677
      	* tree-scalar-evolution.c (simplify_peeled_chrec): Do not
      	throw FP expressions at tree-affine.
      
      	* gcc.dg/torture/pr89677.c: New testcase.
      
      From-SVN: r269646
      Richard Biener committed
    • tree-pretty-print.c (dump_generic_node): For -gimple properly dump negative… · c045ea57
      tree-pretty-print.c (dump_generic_node): For -gimple properly dump negative integer constants using _Literal (type) -num.
      
      2019-03-14  Richard Biener  <rguenther@suse.de>
      
      	* tree-pretty-print.c (dump_generic_node): For -gimple properly
      	dump negative integer constants using _Literal (type) -num.
      
      From-SVN: r269645
      Richard Biener committed
    • re PR c++/85558 (ICE in make_rtl_for_nonlocal_decl when using static member of template class) · 31ba0418
      2019-03-13  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/85558
      	* g++.dg/other/friend16.C: New.
      	* g++.dg/other/friend17.C: Likewise.
      
      From-SVN: r269644
      Paolo Carlini committed
    • re PR sanitizer/80953 (Support libsanitizer on Solaris) · 7a26e273
      	PR sanitizer/80953
      	Merge from LLVM revision 355980
      	* asan/asan_allocator.h (kAllocatorSpace): Define for SPARC.
      	(kAllocatorSize): Likewise.
      	(DefaultSizeClassMap): Likewise.
      	* asan/asan_mapping.h (kSPARC64_ShadowOffset64): Define.
      	(SHADOW_OFFSET): Define for SPARC.
      	Include asan_mapping_sparc64.h for SPARC 64-bit.
      	* asan/asan_mapping_sparc64.h: New file.
      
      From-SVN: r269641
      Eric Botcazou committed
    • re PR sanitizer/80953 (Support libsanitizer on Solaris) · a196c82c
      	PR sanitizer/80953
      	Merge from LLVM revision 355979
      	* asan/asan_globals.c (GetGlobalsForAddress): Use internal_memcpy to
      	copy Global objects for SPARC with GCC.
      
      From-SVN: r269640
      Eric Botcazou committed
    • re PR sanitizer/80953 (Support libsanitizer on Solaris) · 36b50aeb
      	PR sanitizer/80953
      	Merge from LLVM revision 355978
      	* sanitizer_common/sanitizer_allocator_primary32.h
      	(class SizeClassAllocator32): Assert that kSpaceSize is power of 2 if
      	SANITIZER_SIGN_EXTENDED_ADDRESSES is set.
      	(PointerIsMine): Deal with SANITIZER_SIGN_EXTENDED_ADDRESSES.
      	(ComputeRegionId): Likewise.
      	* sanitizer_common/sanitizer_linux.cc (GetMaxVirtualAddress): Return
      	appropriate value for SPARC 64-bit.
      	* sanitizer_common/sanitizer_platform.h (SANITIZER_MMAP_RANGE_SIZE):
      	Define for SPARC.
      	(SANITIZER_SIGN_EXTENDED_ADDRESSES): Define to 1 for SPARC 64-bit.
      
      From-SVN: r269639
      Eric Botcazou committed
    • re PR sanitizer/80953 (Support libsanitizer on Solaris) · 017abbe3
      	PR sanitizer/80953
      	Merge from LLVM revision 355965
      	* sanitizer_common/sanitizer_linux.cc (GetWriteFlag): Implement for
      	SPARC/Linux.
      	(GetPcSpBp): Likewise.
      	* sanitizer_common/sanitizer_stacktrace.cc (GetNextInstructionPc):
      	Adjust for SPARC.
      	* sanitizer_common/sanitizer_stacktrace.h (SANITIZER_CAN_FAST_UNWIND):
      	Define to 1 for SPARC.
      	* sanitizer_common/sanitizer_stacktrace_sparc.cc: Rewrite.
      	* sanitizer_common/sanitizer_unwind_linux_libcdep.cc (SlowUnwindStack):
      	Adjust the PC address for SPARC with GCC.
      
      From-SVN: r269638
      Eric Botcazou committed
    • ipa-param-manipulation.h (struct ipa_parm_adjustment): Remove nonlocal_value member. · 6e089cc3
      	* ipa-param-manipulation.h (struct ipa_parm_adjustment): Remove
      	nonlocal_value member.
      
      From-SVN: r269637
      Jakub Jelinek committed
    • re PR middle-end/88588 (ICE in make_decl_rtl, at varasm.c:1329) · 33813f1d
      	PR middle-end/88588
      	* omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args.
      	(ipa_simd_modify_function_body): Handle PHIs.
      
      	* c-c++-common/gomp/pr88588.c: New test.
      
      From-SVN: r269636
      Jakub Jelinek committed
    • [multiple changes] · 55b9c612
      2019-03-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/66695
      	PR fortran/77746
      	PR fortran/79485
      	* gfortran.h (gfc_symbol): Add bind_c component.
      	(gfc_get_gsymbol): Add argument bind_c.
      	* decl.c (add_global_entry): Add bind_c argument to
      	gfc_get_symbol.
      	* parse.c (parse_block_data): Likewise.
      	(parse_module): Likewise.
      	(add_global_procedure): Likewise.
      	(add_global_program): Likewise.
      	* resolve.c (resolve_common_blocks): Likewise.
      	(resolve_global_procedure): Likewise.
      	(gfc_verify_binding_labels): Likewise.
      	* symbol.c (gfc_get_gsymbol): Add argument bind_c. Set bind_c
      	in gsym.
      	* trans-decl.c (gfc_get_module_backend_decl): Add bind_c argument
      	to gfc_get_symbol.
      	(gfc_get_extern_function_decl): If the sym has a binding label
      	and it cannot be found in the global symbol tabel, it is the wrong
      	one and vice versa.
      
      2019-03-13 Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/66695
      	PR fortran/77746
      	PR fortran/79485
      	* gfortran.dg/binding_label_tests_30.f90: New test.
      	* gfortran.dg/binding_label_tests_31.f90: New test.
      	* gfortran.dg/binding_label_tests_32.f90: New test.
      	* gfortran.dg/binding_label_tests_33.f90: New test.
      
      From-SVN: r269635
      Thomas Koenig committed
    • compiler: compare parse methods when indexing interface types for export · 599b9f72
          
          This change fixes a bug in which two interface types were being
          incorrectly commoned (considered identical) in the initial stages of
          writing out types to export data. The indexer does a walk to collect
          candidates for export, inserting types into a table to eliminate
          duplicates; as part of this process a local interface type T1 was
          being commoned with a different interface type T2. This caused a cycle
          in the exported type graph due to the way embedded interfaces are
          handled.
          
          The fix was to add a new flag to the Type::is_identical utility
          routine to request that interface type comparison be done by examining
          the original parse methods, as opposed to the expanded method set,
          then use the new flag when creating the hash map for the exporter.
          
          Fixes golang/go#30659.
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/166638
      
      From-SVN: r269634
      Ian Lance Taylor committed
    • compiler: add new debugging helper function debug_go_type() · f4390da0
          
          Add a new debugging utility routine debug_go_type(), intended to
          display the contents of a Type object in a way useful to debugging
          a run of the compiler.  Prior to this the only useful alternative
          for debugging types was invoking the mangled_name() method, which
          has problems (for example, won't work on interface types prior
          to finalizing of methods).
          
          This is a "deep" dump, meaning that all types reachable from the
          type passed to debug_go_type() will be printed out. Example:
          
          (gdb) print debug_go_type(t1)
                T0        0x535f300  'net/http.Header' -> T1
                T1        0x535d3d0  map ['string' -> string] T4
                T2        0x5304bb0  'string' -> string
                T3        0x331f900  string
                T4        0x535d370  array [] 'string' -> string
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/166637
      
      From-SVN: r269633
      Ian Lance Taylor committed
    • pr88957.d: Move to gdc.dg/ubsan. · 50e021a5
      gcc/testsuite/ChangeLog:
      
      2019-03-13  Iain Buclaw  <ibuclaw@gdcproject.org>
      
      	* gdc.dg/pr88957.d: Move to gdc.dg/ubsan.
      	* gdc.dg/ubsan/ubsan.exp: New file.
      	* lib/gdc.exp (gdc_include_flags): Remove unused target variable.
      	Explicitly return flags from procedure.
      
      From-SVN: r269632
      Iain Buclaw committed
    • Daily bump. · 1ad43ab9
      From-SVN: r269631
      GCC Administrator committed
  3. 12 Mar, 2019 6 commits