1. 24 Apr, 2017 17 commits
    • Regenerate .pot files. · c1c1c8ea
      gcc/po:
      	* gcc.pot: Regenerate.
      
      libcpp/po:
      	* cpplib.pot: Regenerate.
      
      From-SVN: r247113
      Joseph Myers committed
    • types.rst (gccjit::type::get_const): Remove comment. · 0ebd1f00
      gcc_jit_type_get_aligned
      
      gcc/jit/ChangeLog:
      	* docs/cp/topics/types.rst (gccjit::type::get_const): Remove
      	comment.
      	(gccjit::type::get_aligned): Add.
      	* docs/topics/compatibility.rst: Add LIBGCCJIT_ABI_7.
      	* docs/topics/types.rst: Add gcc_jit_type_get_aligned.
      	* docs/_build/texinfo/libgccjit.texi: Regenerate.
      	* jit-playback.c (gcc::jit::playback::type::get_aligned): New
      	method.
      	* jit-playback.h (gcc::jit::playback::type::get_aligned): New
      	method.
      	* jit-recording.c: Within namespace gcc::jit::recording...
      	(type::get_aligned): New method.
      	(memento_of_get_aligned::replay_into): New method.
      	(memento_of_get_aligned::make_debug_string): New method.
      	(memento_of_get_aligned::write_reproducer): New method.
      	* jit-recording.h: Within namespace gcc::jit::recording...
      	(type::get_aligned): New method.
      	(type::accepts_writes_from): Strip off qualifications from
      	this when comparing pointer equality.
      	(decorated_type): New subclass of type, subsuming the
      	commonality between memento_of_get_const and
      	memento_of_get_volatile.
      	(memento_of_get_const): Make a subclass of decorated_type,
      	rather than type.
      	(memento_of_get_volatile): Likewise.
      	(memento_of_get_aligned): Likewise.
      	* libgccjit++.h: Within namespace gccjit...
      	(type::get_const): New method.
      	(type::get_aligned): New method.
      	* libgccjit.c (gcc_jit_type_get_aligned): New function.
      	* libgccjit.h (gcc_jit_type_get_aligned): New decl.
      	* libgccjit.map (LIBGCCJIT_ABI_7): New
      	(gcc_jit_type_get_aligned): Add.
      
      gcc/testsuite/ChangeLog:
      	* jit.dg/all-non-failing-tests.h: Add test-alignment.c.
      	* jit.dg/test-alignment.c: New test case.
      	* jit.dg/test-alignment.cc: New test case.
      	* jit.dg/test-error-gcc_jit_type_get_aligned-non-power-of-two.c:
      	New test case.
      
      From-SVN: r247111
      David Malcolm committed
    • decl.c (grokdeclarator): Use %qT instead of %<%T%> in · 761ad35c
              * decl.c (grokdeclarator): Use %qT instead of %<%T%> in
              * diagnostics.
              (start_enum): Likewise.
              (build_enumerator): Likewise. Use %qE instead of plain %E.
              * parser.c (cp_parser_mem_initializer_list): Use %qD instead of
              %<%D%> in diagnostics.
              (cp_parser_elaborated_type_specifier): Likewise.
              * pt.c (make_pack_expansion): Use %qT and %qE instead of
              %<%T%> and %<%E%> in diagnostics.
              (tsubst_pack_expansion): Likewise.
      
      From-SVN: r247110
      Volker Reichelt committed
    • Fix location of sizeof/alignof (PR c++/80016) · 412f61f0
      PR c++/80016 reports an issue with bizarre underlined range
      for a complicated expression.
      
      The root cause for the incorrect *starting* location of that range
      is that alignof and sizeof expressions currently have
      start == finish == caret at the opening parenthesis of the
      expression.
      
      This patch fixes this by generating appropriate start and finish
      locations for alignof and sizeof expressions.
      
      gcc/cp/ChangeLog:
      	PR c++/80016
      	* parser.c (cp_parser_unary_expression):  Generate a location
      	range for alignof and sizeof expressions.
      
      gcc/testsuite/ChangeLog:
      	PR c++/80016
      	* g++.dg/plugin/diagnostic-test-expressions-1.C (test_sizeof): New
      	test function.
      	(test_alignof): New test function.
      
      From-SVN: r247108
      David Malcolm committed
    • X /[ex] 4 < Y /[ex] 4 · a8492d5e
      2017-04-24  Marc Glisse  <marc.glisse@inria.fr>
      
      gcc/
      	* match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
      
      gcc/testsuite/
      	* gcc.dg/tree-ssa/cmpexactdiv-2.c: New file.
      
      From-SVN: r247107
      Marc Glisse committed
    • parser.c (cp_parser_cv_qualifier_seq_opt): Add fix-it info to error message. · ec856f5f
              * parser.c (cp_parser_cv_qualifier_seq_opt): Add fix-it info to
              error message.
              (cp_parser_virt_specifier_seq_opt): Likewise.
              (set_and_check_decl_spec_loc): Likewise twice.
      
              * g++.dg/diagnostic/duplicate1.C: New test.
              * g++.dg/cpp0x/duplicate1.C: New test.
      
      From-SVN: r247105
      Volker Reichelt committed
    • [PR 80293] Dont totally-scalarize char arrays · a753df11
      2017-04-24  Martin Jambor  <mjambor@suse.cz>
      
      	PR tree-optimization/80293
      	* tree-sra.c (scalarizable_type_p): New parameter const_decl, make
      	char arrays not totally scalarizable if it is false.
      	(analyze_all_variable_accesses): Pass correct value in the new
      	parameter.  Add a statistics counter.
      
      testsuite/
      	* g++.dg/tree-ssa/pr80293.C: New test.
      
      From-SVN: r247104
      Martin Jambor committed
    • PR libstdc++/80506 fix constant used in condition · 957221f5
      	PR libstdc++/80506
      	* include/bits/random.tcc (gamma_distribution::operator()): Fix magic
      	number used in loop condition.
      
      From-SVN: r247099
      Jonathan Wakely committed
    • Fix (PR middle-end/79931) · 3ebd8e62
      2017-04-24  Jan Hubicka  <hubicka@ucw.cz>
      
      	PR middle-end/79931
      	* ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
      2017-04-24  Martin Liska  <mliska@suse.cz>
      
      	PR middle-end/79931
      	* g++.dg/ipa/pr79931.C: New test.
      
      From-SVN: r247097
      Martin Liska committed
    • re PR fortran/80494 (ICE in wide_int_to_tree) · f30a1190
      2017-04-24  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/80494
      	* tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
      	out for complex types.
      
      	* gfortran.dg/pr80494.f90: New testcase.
      
      From-SVN: r247095
      Richard Biener committed
    • PR libstdc++/80504 qualify calls to avoid ADL · 6e2e575a
      	PR libstdc++/80504
      	* include/bits/refwrap.h (ref, cref): Qualify calls.
      	* testsuite/20_util/reference_wrapper/80504.cc: New test.
      
      From-SVN: r247094
      Jonathan Wakely committed
    • PR libstdc++/80493 fix invalid exception specification · 71f257f7
      	PR libstdc++/80493
      	* include/experimental/optional (optional::swap): Fix exception
      	specification.
      
      From-SVN: r247093
      Jonathan Wakely committed
    • tree-ssa-sccvn.h (run_scc_vn): Adjust prototype. · 24c40f9a
      2017-04-24  Richard Biener  <rguenther@suse.de>
      
      	* tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
      	* tree-ssa-sccvn.c (print_scc): Print SCC size.
      	(extract_and_process_scc_for_name): Never fail but drop SCC to varying.
      	(DFS): Adjust and never fail.
      	(sccvn_dom_walker::fail): Remove.
      	(sccvn_dom_walker::before_dom_children): Adjust.
      	(run_scc_vn): Likewise and never fail.
      	* tree-ssa-pre.c (pass_pre::execute): Adjust.
      	(pass_fre::execute): Likewise.
      
      From-SVN: r247092
      Richard Biener committed
    • re PR tree-optimization/79725 (Sinking opportunity missed if blocked by dead stmt) · 4c7c437c
      2017-04-24  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/79725
      	* tree-ssa-sink.c (statement_sink_location): Return whether
      	failure reason was zero uses.  Move that check later.
      	(sink_code_in_bb): Deal with zero uses by removing the stmt
      	if possible.
      
      	* gcc.dg/tree-ssa/ssa-sink-15.c: New testcase.
      
      From-SVN: r247091
      Richard Biener committed
    • re PR c++/2972 (-Wuninitialized could warn about uninitialized member variable… · d21a8e3b
      re PR c++/2972 (-Wuninitialized could warn about uninitialized member variable usage in constructors)
      
      2017-04-24  Richard Biener  <rguenther@suse.de>
      
      	PR c++/2972
      	* tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
      	pointer-based references.
      
      	* g++.dg/warn/Wuninitialized-10.C: New testcase.
      
      From-SVN: r247090
      Richard Biener committed
    • re PR bootstrap/79814 (pass-instances.def:36:14: error:… · 3c5b0ca4
      re PR bootstrap/79814 (pass-instances.def:36:14: error: ‘*<unknown>.gcc::pass_manager::pass_warn_unused_result_1’ is used uninitialized in this function)
      
      2017-04-24  Richard Biener  <rguenther@suse.de>
      
      	PR bootstrap/79814
      	* pass_manager.h (pass_manager::operator new): Remove.
      	(pass_manager::operator delete): Likewise.
      	* passes.c (pass_manager::operator new): Remove.
      	(pass_manager::operator delete): Likewise.
      	(pass_manager::pass_manager): Zero individual pass members.
      
      From-SVN: r247089
      Richard Biener committed
    • Daily bump. · 63829927
      From-SVN: r247088
      GCC Administrator committed
  2. 23 Apr, 2017 4 commits
    • re PR fortran/80484 (Three syntax errors involving derived-type I/O) · c7eb642e
      2017-04-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR fortran/80484
      	* io.c (format_lex): Check for '/' and set token to FMT_SLASH.
      	(check_format): Move FMT_DT checking code to data_desc section.
      	* module.c (gfc_match_use): Include the case of INTERFACE_DTIO.
      
      	PR fortran/80484
      	* gfortran.dg/dtio_29.f03: New test.
      
      From-SVN: r247084
      Jerry DeLisle committed
    • re PR fortran/80121 (Memory leak with derived-type intent(out) argument) · 60fc41bd
      2017-04-22  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/80121
      	* trans-types.c (gfc_conv_procedure_call): Deallocate the components
      	of allocatable intent(out) arguments.
      
      2017-04-22  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/80121
      	* gfortran.dg/intent_out_9.f90: New test case.
      
      From-SVN: r247083
      Janus Weil committed
    • re PR target/70799 (STV pass does not convert DImode shifts) · 2eb8a343
      	PR target/70799
      	* config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
      	<case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
      	Check "XEXP (src, 1)" operand here.
      	<case PLUS, case MINUS, case IOR, case XOR, case AND>:
      	Check "XEXP (src, 1)" operand here.
      	(dimode_scalar_chain::make_vector_copies): Detect count register
      	of a shift instruction.  Zero extend count register from QImode
      	to DImode to satisfy vector shift pattern count operand predicate.
      	Substitute vector shift count operand with a DImode copy.
      	(dimode_scalar_chain::convert_reg): Ditto, zero-extend from
      	vector register.
      
      testsuite/ChangeLog:
      
      	PR target/70799
      	* gcc.target/i186/pr70799-4.c: New test.
      
      From-SVN: r247082
      Uros Bizjak committed
    • Daily bump. · a1687c59
      From-SVN: r247081
      GCC Administrator committed
  3. 22 Apr, 2017 1 commit
  4. 21 Apr, 2017 18 commits
    • re PR fortran/80392 ([OOP] ICE with allocatable polymorphic function result in a… · fc23d35a
      re PR fortran/80392 ([OOP] ICE with allocatable polymorphic function result in a procedure pointer component)
      
      2017-04-21  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/80392
      	* trans-types.c (gfc_get_derived_type): Prevent an infinite loop when
      	building a derived type that includes a procedure pointer component
      	with a polymorphic result.
      
      2017-04-21  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/80392
      	* gfortran.dg/proc_ptr_comp_49.f90: New test case.
      
      From-SVN: r247069
      Janus Weil committed
    • PR c++/80179 - ICE with initialized flexible array member. · 176e79b5
      	* constexpr.c (verify_ctor_sanity): Handle flexible array members.
      
      From-SVN: r247067
      Jason Merrill committed
    • i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>. · f2f3e54d
      	* config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
      	Remove UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
      	(*insvqi_1_mem_rex64): Move above insv<mode>_1.  Remove
      	UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
      	(UNSPEC_NOREX_MEM): Remove definition.
      
      From-SVN: r247066
      Uros Bizjak committed
    • pr79804.c: Add additional dg-error directive. · 7b9efd03
      	* gcc.target/i386/pr79804.c: Add additional dg-error directive.
      
      From-SVN: r247065
      Uros Bizjak committed
    • PR libstdc++/80316 make promise::set_value throw no_state error · 946ecd6a
      	PR libstdc++/80316
      	* include/std/future (_State_baseV2::_Setter::operator()): Remove
      	_S_check calls that are done after the pointer to the shared state is
      	already dereferenced.
      	(_State_baseV2::_Setter<_Res, void>): Define specialization for void
      	as partial specialization so it can be defined within the definition
      	of _State_baseV2.
      	(_State_baseV2::__setter): Call _S_check.
      	(_State_baseV2::__setter(promise<void>*)): Add overload for use by
      	promise<void>::set_value and promise<void>::set_value_at_thread_exit.
      	(promise<T>, promise<T&>, promise<void>): Make _State a friend.
      	(_State_baseV2::_Setter<void, void>): Remove explicit specialization.
      	(promise<void>::set_value, promise<void>::set_value_at_thread_exit):
      	Use new __setter overload.
      	* testsuite/30_threads/promise/members/at_thread_exit2.cc: New test.
      	* testsuite/30_threads/promise/members/set_exception.cc: Test
      	promise<T&> and promise<void> specializations.
      	* testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
      	Test for no_state error condition.
      	* testsuite/30_threads/promise/members/set_value2.cc: Likewise.
      
      From-SVN: r247064
      Jonathan Wakely committed
    • Avoid deprecated warnings about std::auto_ptr in library headers · a2c0a194
      	* include/backward/auto_ptr.h: Ignore deprecated warnings from use
      	of auto_ptr.
      	* include/bits/shared_ptr.h: Likewise.
      	* include/bits/shared_ptr_base.h: Likewise.
      	* include/bits/unique_ptr.h: Likewise.
      	* libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc: Adjust
      	dg-error lineno.
      	* libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc: Likewise.
      	* libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc:
      	Likewise.
      
      From-SVN: r247063
      Jonathan Wakely committed
    • re PR tree-optimization/79547 (duplicate strlen calls with same argument not folded) · 2fd30fbe
      2017-04-21  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/79547
      	* tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
      	Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
      	bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
      	without any constraints.
      
      	* gcc.dg/tree-ssa/strlen-2.c: New testcase.
      
      From-SVN: r247062
      Richard Biener committed
    • re PR tree-optimization/78847 (pointer arithmetic from c++ ranged-based for loop not optimized) · bb1bc604
      2017-04-21  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/78847
      	* fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
      
      	* g++.dg/tree-ssa/pr78847.C: New testcase.
      
      From-SVN: r247061
      Richard Biener committed
    • * es.po, fr.po: Update. · e1478a0e
      From-SVN: r247059
      Joseph Myers committed
    • libiberty: Limit demangler maximum d_print_comp recursion call depth. · 6b086d35
      The fix for PR demangler/70909 and 67264 (endless demangler recursion)
      catches when a demangle_component is printed in a cycle. But that doesn't
      protect the call stack blowing up from non-cyclic nested types printed
      recursively through d_print_comp. This can happen by a (very) long mangled
      string that simply creates a very deep pointer or qualifier chain. Limit
      the recursive d_print_comp call depth for a d_print_info to 1K nested
      types.
      
      libiberty/ChangeLog:
      
              * cp-demangle.c (MAX_RECURSION_COUNT): New constant.
              (struct d_print_info): Add recursion field.
              (d_print_init): Initialize recursion.
              (d_print_comp): Check and update d_print_info recursion depth.
      
      From-SVN: r247056
      Mark Wielaard committed
    • libiberty: Always return NULL if d_add_substitution fails. · 13b6ef76
      d_add_substitution can fail for various reasons, like when the subs array
      is full. If d_add_substitution fails d_substitution should return NULL
      early and not try to continue. Every other call of d_add_substitution
      is handled in the same way.
      
      libiberty/ChangeLog:
      
      	* cp-demangle.c (d_substitution): Return NULL if d_add_substitution
      	fails.
      
      From-SVN: r247055
      Mark Wielaard committed
    • libiberty: Don't update and remove did_subs field from demangler structs. · 1240212c
      The d_info field did_subs was used for estimating the string output
      size. It was no longer used when the malloc-less callback interface
      was introduced in 2007 (svn r121305). But the field was still updated.
      When backtracking was introduced in 2013 (svn r205292) did_subs was
      also added to the d_info_checkpoint struct. But except for updating
      the field it was still not used.
      
      Since it is never used just stop updating the field and remove it
      from the two structs.
      
      libiberty/ChangeLog:
      
      	* cp-demangle.h (struct d_info): Remove did_subs field.
      	* cp-demangle.c (struct d_info_checkpoint): Likewise.
      	(d_template_param): Don't update did_subs.
      	(d_substitution): Likewise.
      	(d_checkpoint): Don't assign did_subs.
      	(d_backtrack): Likewise.
      	(cplus_demangle_init_info): Don't initialize did_subs.
      
      From-SVN: r247054
      Mark Wielaard committed
    • tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO. · ad32f067
      2017-04-21  Richard Biener  <rguenther@suse.de>
      
      	* tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
      	(build_distinct_type_copy): Likewise.
      	(build_variant_type_copy): Likewise.
      	* tree.c (build_qualified_type): Pass down mem-stat info.
      	(build_distinct_type_copy): Likewise.
      	(build_variant_type_copy): Likewise.
      
      	cp/
      	* cp-tree.h (copy_decl): Annotate with CXX_MEM_STAT_INFO.
      	(copy_type): Likewise.
      	* lex.c (copy_decl): Pass down mem-stat info.
      	(copy_type): Likewise.
      
      From-SVN: r247053
      Richard Biener committed
    • re PR c/80468 (ICE on invalid AVX512 code with -m32) · 666f7903
      	PR c/80468
      	* c-decl.c (finish_declspecs) <case cts_int_n>: If int_n_idx is not
      	enabled, set specs->type to integer_type_node.
      
      	* gcc.dg/pr80468.c: New test.
      
      From-SVN: r247052
      Jakub Jelinek committed
    • Add test-case (PR tree-optimization/66278). · 25c28f47
      2017-04-21  Martin Liska  <mliska@suse.cz>
      
      	PR tree-optimization/66278
      	* gcc.dg/vect/pr66278.c: New test.
      
      From-SVN: r247051
      Martin Liska committed
    • re PR tree-optimization/80237 (float to double conversion is not optimized away) · 6d553e9b
      2017-04-21  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/80237
      	* tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
      	defaulted to NULL.
      	(phi_translate_1): Also allow a leader in AVAIL_OUT of pred
      	for a simplified result.
      
      	* gcc.dg/tree-ssa/tailcall-9.c: New testcase.
      	* gcc.dg/tree-ssa/ldist-pr45948.c: Remove undefined behavior,
      	adjust expected optimizations.
      
      From-SVN: r247049
      Richard Biener committed
    • tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require sth as strict… · 7fd1a747
      tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require sth as strict as a simple_iv but a chrec without symbols and an...
      
      2016-04-21  Richard Biener  <rguenther@suse.de>
      
      	* tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
      	sth as strict as a simple_iv but a chrec without symbols and an
      	operand defined in the loop we are peeling (and not some subloop).
      	(propagate_constants_for_unrolling): Propagate all constants.
      
      	* gcc.dg/vect/no-scevccp-outer-13.c: Adjust to prevent unrolling
      	of inner loops.
      	* gcc.dg/vect/no-scevccp-outer-7.c: Likewise.
      	* gcc.dg/vect/vect-104.c: Likewise.
      
      From-SVN: r247048
      Richard Biener committed
    • re PR tree-optimization/80426 (wrong manipulation of range based on INT_MIN) · 2f23a412
      	PR tree-optimization/80426
      	* gcc.c-torture/execute/20170429-1.c: Rename into...
      	* gcc.c-torture/execute/20170419-1.c: ...this.
      
      From-SVN: r247046
      Eric Botcazou committed