1. 06 Feb, 2019 14 commits
    • re PR fortran/71860 ([OOP] ICE on pointing to null(mold), verify_gimple failed) · 16e2bcd5
      2019-02-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/71860
      	* gfortran.dg/null_10.f90: New test.
      
      From-SVN: r268590
      Thomas Koenig committed
    • Fix locations in conversion_null_warnings (PR c++/71302) · aa9dc193
      PR c++/71302 reports that g++ shows poor locations for
      -Wzero-as-null-pointer-constant for pointers in function calls,
      using the close parenthesis of the call, rather than showing the
      pertinent argument.
      
      This particular case was fixed in GCC 8, but regressed on trunk
      in r260973.
      
      This patch fixes the regression, and adds column numbers to the
      test cases (where they're correct) to avoid regressing them in the
      future.  There are still various places where the locations aren't
      correct, but fixing them isn't stage 4 material.
      
      gcc/cp/ChangeLog:
      	PR c++/71302
      	* call.c (get_location_for_expr_unwinding_for_system_header): New
      	function.
      	(conversion_null_warnings): Use it when getting locations for
      	EXPR, effectively adding a call to
      	get_location_for_expr_unwinding_for_system_header for
      	-Wconversion-null and making use of EXPR_LOCATION for
      	-Wzero-as-null-pointer-constant.
      
      gcc/testsuite/ChangeLog:
      	PR c++/71302
      	* g++.dg/cpp0x/Wzero-as-null-pointer-constant-1.C: Add expected
      	column numbers to dg-warning directives where they are correct.
      	* g++.dg/warn/Wzero-as-null-pointer-constant-5.C: Likewise.
      	* g++.dg/warn/Wzero-as-null-pointer-constant-7.C: Likewise.
      	* g++.dg/warn/Wzero-as-null-pointer-constant-8.C: New test.
      
      From-SVN: r268589
      David Malcolm committed
    • Fix gcc.dg/debug/dwarf2/inline5.c with Solaris as (PR debug/87451) · d0307ff2
      	PR debug/87451
      	* gcc.dg/debug/dwarf2/inline5.c: Allow for non-comment before
      	"(DIE (0x[0-9a-f]*) DW_TAG_variable".
      	xfail scan-assembler-not with Solaris as.
      
      From-SVN: r268588
      Rainer Orth committed
    • * ru.po: Update. · d24b0ba3
      From-SVN: r268587
      Joseph Myers committed
    • PR libstdc++/89102 fix common_type<> and common_type<T> specializations · 373c726e
      This is a partial implementation of the revised std::common_type rules
      from P0435R1.
      
      	PR libstdc++/89102 (partial)
      	* include/std/type_traits (common_type<>): Define.
      	(common_type<T>): Derive from common_type<T, T>.
      	* testsuite/20_util/common_type/requirements/explicit_instantiation.cc:
      	Test zero-length template argument list.
      	* testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc:
      	Test additional single argument cases.
      	* testsuite/20_util/common_type/requirements/sfinae_friendly_2.cc:
      	Adjust expected error.
      
      From-SVN: r268586
      Jonathan Wakely committed
    • vsx-vector-6.p7.c: Update instruction counts and target. · 12f82acc
      2019-02-06  Bill Seurer  <seurer@linux.vnet.ibm.com>
      
      	* gcc.target/powerpc/vsx-vector-6.p7.c: Update instruction
      	counts and target.
      	* gcc.target/powerpc/vsx-vector-6.p8.c: Update instruction
      	counts and target.
      	* gcc.target/powerpc/vsx-vector-6.p9.c: Update instruction
      	counts and target.
      
      From-SVN: r268585
      Bill Seurer committed
    • s-linux__x32.ads: Resync list of signals with s-linux.ads · b49fa5e0
      	* libgnarl/s-linux__x32.ads: Resync list of signals with s-linux.ads
      
      From-SVN: r268576
      Arnaud Charlet committed
    • re PR tree-optimization/89182 ([graphite] ICE in extract_affine, at graphite-sese-to-poly.c:280) · 124f4f57
      2019-02-06  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/89182
      	* graphite.h (cached_scalar_evolution_in_region): Declare.
      	* graphite.c (struct seir_cache_key): New.
      	(struct sese_scev_hash): Likewise.
      	(seir_cache): New global.
      	(cached_scalar_evolution_in_region): New function.
      	(graphite_transform_loops): Allocate and release seir_cache.
      	* graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
      	cached_scalar_evolution_in_region.
      	* graphite-scop-detection.c (scop_detection::can_represent_loop):
      	Simplify.
      	(scop_detection::graphite_can_represent_expr: Use
      	cached_scalar_evolution_in_region.
      	(scop_detection::stmt_simple_for_scop_p): Likewise.
      	(find_params_in_bb): Likewise.
      	(gather_bbs::before_dom_children): Likewise.
      	* graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
      	(add_loop_constraints): Likewise.
      
      	* gfortran.dg/graphite/pr89182.f90: New testcase.
      
      From-SVN: r268575
      Richard Biener committed
    • re PR c/89211 (ICE in int_mode_for_mode, at stor-layout.c:403) · cfc30fd1
      	PR c/89211
      	* c-parser.c (c_parser_declaration_or_fndef): Don't update
      	DECL_ARGUMENTS of d if it has been defined already.  Use a single if
      	instead of 3 nested ifs.
      
      	* gcc.dg/pr89211.c: New test.
      
      From-SVN: r268574
      Jakub Jelinek committed
    • re PR middle-end/89210 (ICE tree check: expected integer_cst, have real_cst in… · 47635817
      re PR middle-end/89210 (ICE tree check: expected integer_cst, have real_cst in to_wide, at tree.h:5600)
      
      	PR middle-end/89210
      	* fold-const-call.c (fold_const_vec_convert): Pass true as last
      	operand to new_unary_operation only if both element types are integral
      	and it isn't a widening conversion.  Return NULL_TREE if
      	new_unary_operation failed.
      
      	* c-c++-common/builtin-convertvector-2.c: New test.
      
      From-SVN: r268573
      Jakub Jelinek committed
    • re PR go/89019 (LTO and gccgo cause ICE during free_lang_data) · ce4321c9
      gcc/go:
              PR go/89019
              * go-gcc.cc (Gcc_backend::placeholder_struct_type): Mark
              placeholder structs as requiring structural equality.
              (Gcc_backend::set_placeholder_pointer_type): Propagate the
      	canonical type from the desired pointer type to the placeholder
      	pointer type.
      gcc/testsuite/:
              * lib/go-torture.exp: Test compiling with -flto.
      
      From-SVN: r268572
      Nikhil Benesch committed
    • Fix type of extern array declared in inner scope with outer initialization shadowed (PR c/88584). · fbe83e6b
      As reported in bug 88584, if you have a file-scope array with external
      linkage, initialized at file scope, and that array is shadowed at
      block scope, and is declared again with external linkage and an
      incomplete type in an inner scope, it is wrongly given a complete type
      in that inner scope when the correct C semantics give it an incomplete
      type (only the visible declarations contribute to the type in a given
      scope).
      
      In general, issues with the types of external linkage declarations
      being different in different scopes were addressed by my fixes for bug
      13801, for GCC 4.0.  In this case, however, the code in pushdecl
      dealing with giving declarations the right type in each scope works
      fine, and the type is subsequently modified by complete_array_type
      called from finish_decl: finish_decl is trying to complete an array
      type based on an initializer, but that's only correct for the original
      initialization at file scope, not for such a declaration in an inner
      scope (it's harmless but unnecessary in the case where the original
      declaration is still visible in the inner scope).  Thus, this patch
      changes finish_decl to stop this logic applying for such an external
      declaration in an inner scope.  (An erroneous attempt to include an
      initializer for an extern variable in an inner scope is diagnosed
      elsewhere.)
      
      This is a regression from GCC 3.4, which properly rejected the code in
      question (quite likely by accident).
      
      Bootstrapped with no regressions on x86_64-pc-linux-gnu.
      
      gcc/c:
      	PR c/88584
      	* c-decl.c (finish_decl): Do not complete array types for arrays
      	with external linkage not at file scope.
      
      gcc/testsuite:
      	PR c/88584
      	* gcc.dg/redecl-18.c: New test.
      
      From-SVN: r268571
      Joseph Myers committed
    • Daily bump. · e9f061bd
      From-SVN: r268570
      GCC Administrator committed
  2. 05 Feb, 2019 26 commits
    • Update .po files. · 4f2f8148
      gcc/po:
      	* be.po, da.po, de.po, el.po, es.po, fi.po, fr.po, hr.po, id.po,
      	ja.po, nl.po, ru.po, sr.po, sv.po, tr.po, uk.po, vi.po, zh_CN.po,
      	zh_TW.po: Update.
      
      libcpp/po:
      	* be.po, ca.po, da.po, de.po, el.po, eo.po, es.po, fi.po, fr.po,
      	id.po, ja.po, nl.po, pr_BR.po, ru.po, sr.po, sv.po, tr.po, uk.po,
      	vi.po, zh_CN.po, zh_TW.po: Update.
      
      From-SVN: r268567
      Joseph Myers committed
    • PR libstdc++/89128 add deduction guides for container adaptors · 5bb89e0a
      	PR libstdc++/89128
      	* include/bits/stl_queue.h (queue, priority_queue): Add deduction
      	guides.
      	* include/bits/stl_stack.h (stack): Likewise.
      	* testsuite/23_containers/priority_queue/deduction.cc: New test.
      	* testsuite/23_containers/queue/deduction.cc: New test.
      	* testsuite/23_containers/stack/deduction.cc: New test.
      
      From-SVN: r268566
      Jonathan Wakely committed
    • re PR c++/89187 (ICE in initialize_argument_information, at calls.c:2023) · d397e394
      	PR c++/89187
      	* optimize.c (maybe_thunk_body): Clear TREE_ADDRESSABLE on
      	PARM_DECLs of the thunk.
      	* lambda.c (maybe_add_lambda_conv_op): Likewise.
      
      	* g++.dg/opt/pr89187.C: New test.
      
      From-SVN: r268564
      Jakub Jelinek committed
    • libgccjit: introduce gcc_jit_context_add_driver_option · 216090cc
      gcc/jit/ChangeLog:
      2019-02-05  Andrea Corallo <andrea.corallo@arm.com>
      
      	* docs/topics/compatibility.rst (LIBGCCJIT_ABI_11): New ABI tag.
      	* docs/topics/contexts.rst (Additional driver options): New
      	section.
      	* jit-playback.c (invoke_driver): Add call to append_driver_options.
      	* jit-recording.c: Within namespace gcc::jit...
      	(recording::context::~context): Free the optnames within
      	m_driver_options.
      	(recording::context::add_driver_option): New method.
      	(recording::context::append_driver_options): New method.
      	(recording::context::dump_reproducer_to_file): Add driver
      	options.
      	* jit-recording.h: Within namespace gcc::jit...
      	(recording::context::add_driver_option): New method.
      	(recording::context::append_driver_options): New method.
      	(recording::context::m_driver_options): New field.
      	* libgccjit++.h (gccjit::context::add_driver_option): New
      	method.
      	* libgccjit.c (gcc_jit_context_add_driver_option): New API
      	entrypoint.
      	* libgccjit.h (gcc_jit_context_add_driver_option): New API
      	entrypoint.
      	(LIBGCCJIT_HAVE_gcc_jit_context_add_driver_option): New
      	macro.
      	* libgccjit.map (LIBGCCJIT_ABI_11): New ABI tag.
      
      gcc/testsuite/ChangeLog:
      2019-02-05  Andrea Corallo <andrea.corallo@arm.com>
      
      	* jit.dg/add-driver-options-testlib.c: Add support file for
      	test-add-driver-options.c testcase.
      	* jit.dg/all-non-failing-tests.h: Add note about
      	test-add-driver-options.c
      	* jit.dg/jit.exp (jit-dg-test): Update to support
      	add-driver-options-testlib.c compilation.
      	* jit.dg/test-add-driver-options.c: New testcase.
      
      From-SVN: r268563
      Andrea Corallo committed
    • re PR rtl-optimization/11304 (Wrong code production with -fomit-frame-pointer) · 6fc4ecbc
      	PR rtl-optimization/11304
      	* gcc.target/i386/call-1.c (set_eax): Add "eax" clobber.
      	* gcc.target/i386/call-2.c: New test.
      
      From-SVN: r268562
      Jakub Jelinek committed
    • PR c++/89158 - by-value capture of constexpr variable broken. · 0d806438
      	* call.c (convert_like_real) <case ck_user>: Call mark_exp_read
      	instead of mark_rvalue_use.
      
      	* g++.dg/cpp0x/lambda/lambda-89158.C: New test.
      
      From-SVN: r268561
      Marek Polacek committed
    • compiler: check duplicate implicit indexes in slices/arrays · b81e1cd5
          
          Fixes golang/go#28186.
          
          Reviewed-on: https://go-review.googlesource.com/c/160832
      
      From-SVN: r268554
      Ian Lance Taylor committed
    • Fix pr84711.c testcase · 959dcbc8
      On powerpc64-linux, this testcase complains the ABI for vector args
      has changed, making the testcase fail (excess output).  This patch
      shuts up that warning.
      
      
      	* gcc.dg/vect/pr84711.c: Use -Wno-psabi.
      
      From-SVN: r268553
      Segher Boessenkool committed
    • S/390: Remove load and test fp splitter · 64c8e85a
      gcc/ChangeLog:
      
      2019-02-05  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	PR target/88856
      	* config/s390/s390.md: Remove load and test FP splitter.
      
      From-SVN: r268550
      Andreas Krebbel committed
    • re PR target/89112 (Incorrect code generated by rs6000 memcmp expansion) · faaeebd6
      2019-02-05  Aaron Sawdey  <acsawdey@linux.ibm.com>
      
      	PR target/89112
      	* config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
      	expand_compare_loop, expand_block_compare_gpr,
      	expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
      	REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
      	#include "profile-count.h" and "predict.h" for types and functions
      	needed to work with REG_BR_PROB notes.
      
      From-SVN: r268547
      Aaron Sawdey committed
    • re PR target/89112 (Incorrect code generated by rs6000 memcmp expansion) · 60f34f08
      2019-02-05  Aaron Sawdey  <acsawdey@linux.ibm.com>
      
      	PR target/89112
      	* config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
      	for the long branch case.
      
      From-SVN: r268546
      Aaron Sawdey committed
    • vec-extract-sint128-1.c: Require int128 effective target. · 44381cb6
      	* gcc.target/powerpc/vec-extract-sint128-1.c: Require int128 effective
      	target.
      	* gcc.target/powerpc/vec-extract-uint128-1.c: Likewise.
      
      From-SVN: r268545
      Jakub Jelinek committed
    • re PR target/89188 (ICE in pre_and_rev_post_order_compute, at cfganal.c:1055) · c6477561
      	PR target/89188
      	* dce.c (delete_unmarked_insns): Don't remove no-op moves if they
      	can throw, non-call exceptions are enabled and we can't delete
      	dead exceptions or alter cfg.  Set must_clean if
      	delete_insn_and_edges returns true, don't set it blindly for calls.
      	Assert that delete_unreachable_blocks is called only if can_alter_cfg.
      
      	* g++.dg/opt/pr89188.C: New test.
      
      From-SVN: r268544
      Jakub Jelinek committed
    • PR libstdc++/89194 untangle is_convertible and is_nothrow_convertible · ed99e818
      The additional logic added to __is_convertible_helper in order to
      support is_nothrow_convertible makes some uses of is_convertible
      ill-formed. This appears to be due to PR c++/87603, but can be avoided
      just by defining a separate helper for is_nothrow_convertible. The same
      problems are likely to still exist for is_nothrow_convertible, but that
      is new and so won't cause regressions for existing users of
      is_convertible.
      
      	PR libstdc++/89194
      	* include/std/type_traits (__is_convertible_helper)
      	(__is_convertible_helper<_From, _To, false>): Revert changes to
      	support is_nothrow_convertible.
      	(__is_nt_convertible_helper): New helper.
      	(is_nothrow_convertible): Use __is_nt_convertible_helper.
      
      From-SVN: r268543
      Jonathan Wakely committed
    • re PR rtl-optimization/89195 (Corrupted stack offset after combine) · 7356fbde
      	PR rtl-optimization/89195
      	* combine.c (make_extraction): For MEMs, don't extract bytes outside
      	of the original MEM.
      
      	* gcc.c-torture/execute/pr89195.c: New test.
      
      From-SVN: r268542
      Jakub Jelinek committed
    • vec-extract-slong-1.c: Require p8 execution hardware. · cff2ddc9
      gcc/testsuite/ChangeLog:
      
      2019-02-05  Kelvin Nilsen  <kelvin@gcc.gnu.org>
      
      	* gcc.target/powerpc/vec-extract-slong-1.c: Require p8 execution
      	hardware.
      	* gcc.target/powerpc/vec-extract-schar-1.c: Likewise.
      	* gcc.target/powerpc/vec-extract-sint128-1.c: Likewise.
      	* gcc.target/powerpc/vec-extract-sshort-1.c: Likewise.
      	* gcc.target/powerpc/vec-extract-ulong-1.c: Likewise.
      	* gcc.target/powerpc/vec-extract-uchar-1.c: Likewise.
      	* gcc.target/powerpc/vec-extract-sint-1.c: Likewise.
      	* gcc.target/powerpc/vec-extract-uint128-1.c: Likewise.
      	* gcc.target/powerpc/vec-extract-ushort-1.c: Likewise.
      	* gcc.target/powerpc/vec-extract-uint-1.c: Likewise.
      
      From-SVN: r268541
      Kelvin Nilsen committed
    • re PR tree-optimization/88606 (ICE: verify_type failed (error: type variant… · f461f938
      re PR tree-optimization/88606 (ICE: verify_type failed (error: type variant differs by TYPE_TRANSPARENT_AGGR))
      
      2019-02-05  Richard Biener  <rguenther@suse.de>
      
      	PR c/88606
      	* c-decl.c (finish_struct): Reset TYPE_TRANSPARENT_AGGR on
      	all type variants when not supported.
      
      From-SVN: r268540
      Richard Biener committed
    • Restore previous behaviour of test · 39bc6f87
      Go back to using CopyConsOnlyType as before r265485, because it works
      again now. Add test using DelAnyAssign for completeness and additional
      coverage.
      
      	* testsuite/23_containers/vector/modifiers/push_back/49836.cc: Restore
      	use of CopyConsOnlyType, but also test DelAnyAssign for completeness.
      
      From-SVN: r268539
      Jonathan Wakely committed
    • PR libstdc++/89130 restore support for non-MoveConstructible types · 258bd1d6
      The changes to "relocate" std::vector elements can lead to new errors
      outside the immediate context, because moving the elements to new
      storage no longer makes use of the move-if-noexcept utilities. This
      means that types with deleted moves no longer degenerate to copies, but
      are just ill-formed. The errors happen while instantiating the
      noexcept-specifier for __relocate_object_a, when deciding whether to try
      to relocate.
      
      This patch introduces indirections to avoid the ill-formed
      instantiations of std::__relocate_object_a. In order to avoid using
      if-constexpr prior to C++17 this is done by tag dispatching. After this
      patch all uses of std::__relocate_a are guarded by checks that will
      support sensible code (i.e. code not using custom allocators that fool
      the new checks).
      
      	PR libstdc++/89130
      	* include/bits/alloc_traits.h (__is_copy_insertable_impl): Rename to
      	__is_alloc_insertable_impl. Replace single type member with two
      	members, one for each of copy and move insertable.
      	(__is_move_insertable): New trait for internal use.
      	* include/bits/stl_vector.h (vector::_S_nothrow_relocate(true_type))
      	(vector::_S_nothrow_relocate(true_type)): New functions to
      	conditionally check if __relocate_a can throw.
      	(vector::_S_use_relocate()): Dispatch to _S_nothrow_relocate based
      	on __is_move_insertable.
      	(vector::_S_do_relocate): New overloaded functions to conditionally
      	call __relocate_a.
      	(vector::_S_relocate): New function that dispatches to _S_do_relocate
      	based on _S_use_relocate.
      	* include/bits/vector.tcc (vector::reserve, vector::_M_realloc_insert)
      	(vector::_M_default_append): Call _S_relocate instead of __relocate_a.
      	* testsuite/23_containers/vector/modifiers/push_back/89130.cc: New.
      
      From-SVN: r268537
      Jonathan Wakely committed
    • PR libstdc++/89090 avoid C++17 features in C++11/C++14 code · 27812872
      Although GCC and Clang both allow these features pre-C++17 in system
      headers, Clang does issue warnings with -Wsystem-headers. It can also
      complicate bisection and/or testcase reduction if # line markers are
      stripped, because the code won't be known to come from system headers.
      
      	PR libstdc++/89090
      	* include/bits/stl_uninitialized.h (__relocate_a_1): Make unused
      	parameter unnamed. Add message to static assertion.
      	* include/bits/vector.tcc (vector::reserve, vector::_M_realloc_insert)
      	(vector::_M_default_append): Use _GLIBCXX17_CONSTEXPR for if constexpr
      	in C++11 code.
      
      From-SVN: r268536
      Jonathan Wakely committed
    • GCOV: remove misleading branches and calls info for -f option (PR gcov-profile/89000). · e4b52fca
      2019-02-05  Martin Liska  <mliska@suse.cz>
      
      	PR gcov-profile/89000
      	* gcov.c (function_summary): Remove argument.
      	(file_summary): New function.
      	(print_usage): Replace tabs with spaces.
      	(generate_results): Use new function file_summary.
      
      From-SVN: r268533
      Martin Liska committed
    • Rename __is_trivially_relocatable to __is_bitwise_relocatable. · 9aa2470a
      2019-02-05  Marc Glisse  <marc.glisse@inria.fr>
      
      	PR libstdc++/87106
      	* include/bits/stl_uninitialized.h (__is_trivially_relocatable):
      	Rename...
      	(__is_bitwise_relocatable): ... to this.
      	(__relocate_a_1): Adapt.
      	* include/bits/stl_deque.h (__is_trivially_relocatable): Rename...
      	(__is_bitwise_relocatable): ... to this.
      
      From-SVN: r268532
      Marc Glisse committed
    • re PR target/89186 (ICE in mark_addressable at gcc/gimple-expr.c:894 since r268138) · c8010d70
      	PR target/89186
      	* optabs.c (prepare_cmp_insn): Pass x and y to
      	emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
      
      	* g++.dg/ext/vector36.C: New test.
      
      From-SVN: r268531
      Jakub Jelinek committed
    • re PR middle-end/89150 (Tree form bitmaps break GC) · 7eeb6fc2
      2019-02-05  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/89150
      	* bitmap.h (struct bitmap_obstack): Do not mark GTY.
      	(struct bitmap_element): Drop chain_prev so we properly recurse on
      	the prev member, supporting tree views.
      	(struct bitmap_head): GTY skip the obstack member.
      
      From-SVN: r268530
      Richard Biener committed
    • [PR87770] test partial specializations for type dependence · e1bbb0bc
      When instantiating a partial specialization of a template member
      function for a full specialization of a class template, we test
      whether the context of variables local to the partial specialization,
      i.e., the partial specialization itself, is dependent, and this ICEs
      in type_dependent_expression_p, when checking that the function type
      isn't type-dependent because it is not in a type-dependent scope.
      
      We shouldn't have got that far: the previous block in
      type_dependent_expression_p catches cases in which the function itself
      takes template arguments of its own, but it only did so for primary
      templates, not for partial specializations.  This patch fixes that.
      
      
      for  gcc/cp/ChangeLog
      
      	PR c++/87770
      	* pt.c (instantiates_primary_template_p): New.
      	(type_dependent_expression_p): Use it.
      
      for  gcc/testsuite/ChangeLog
      
      	PR c++/87770
      	* g++.dg/pr87770.C: New.
      
      From-SVN: r268529
      Alexandre Oliva committed
    • Daily bump. · ca0107a7
      From-SVN: r268528
      GCC Administrator committed