1. 01 May, 2017 21 commits
    • calls.c (combine_pending_stack_adjustment_and_call): Remove unnecessary unadjusted_alignment check. · 0aae1572
      	* calls.c (combine_pending_stack_adjustment_and_call): Remove
      	unnecessary unadjusted_alignment check.
      
      From-SVN: r247452
      Nathan Sidwell committed
    • d-demangle.c (dlang_parse_symbol): Remove function. · 5a4dbf7d
      libiberty/ChangeLog:
      
      	* d-demangle.c (dlang_parse_symbol): Remove function.
      	(dlang_parse_qualified): New function.
      	(dlang_parse_mangle): New function.
      	(dlang_type): Update to call dlang_parse_qualified.
      	(dlang_identifier): Update to call either dlang_parse_qualified or
      	dlang_parse_mangle.
      	(dlang_type_modifier_p): Remove function.
      	(dlang_call_convention_p): Don't allow type modifiers in mangle.
      	(dlang_template_args): Update to call dlang_identifier.
      	(dlang_demangle): Update to call dlang_parse_mangle.
      	* testsuite/d-demangle-expected: Add tests.
      
      From-SVN: r247450
      Iain Buclaw committed
    • Regenerate .pot files. · 5166bee4
      gcc/po:
      	* gcc.pot: Regenerate.
      
      libcpp/po:
      	* cpplib.pot: Regenerate.
      
      From-SVN: r247447
      Joseph Myers committed
    • re PR c++/80038 (Random segfault using local vectors in Cilk function) · 815d9cc6
      2017-05-01  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
      
              PR c++/80038
      	* cilk_common.c (expand_builtin_cilk_detach): Move pedigree
      	operations here.
      	* gimplify.c (gimplify_cilk_detach): New function.
      	(gimplify_call_expr, gimplify_modify_expr): Call it as needed.
      	* tree-core.h: Document EXPR_CILK_SPAWN.
      	* tree.h (EXPR_CILK_SPAWN): Define.
      
              PR c++/80038
      	* c-common.h (cilk_gimplify_call_params_in_spawned_fn): Remove
      	prototype.
      	(cilk_install_body_pedigree_operations): Likewise.
      	* cilk.c (cilk_set_spawn_marker): Mark functions that should be
      	detatched.
      	(cilk_gimplify_call_params_in_spawned_fn): Remove.
      	(cilk_install_body_pedigree_operations): Likewise.
      	(gimplify_cilk_spawn): Add EXPR_STMT and CLEANUP_POINT_EXPR
      	unwrapping.
      
              PR c++/80038
      	* c-gimplify.c (c_gimplify_expr): Remove calls to
      	cilk_gimplifY_call_params_in_spawned_fn.
      
              PR c++/80038
      	* cp-cilkplus.c (cilk_install_body_with_frame_cleanup): Don't
      	add pedigree operation and detach call here.
      	* cp-gimplify.c (cp_gimplify_expr): Remove the calls to
      	cilk_cp_gimplify_call_params_in_spawned_fn.
      	(cilk_cp_gimplify_call_params_in_spawned_fn): Remove function.
      	* semantics.c (simplify_aggr_init_expr): Copy EXPR_CILK_SPAWN.
      
              PR c++/80038
      	* lto-lang.c (lto_init): Set in_lto_p earlier.
      
      	PR c++/80038
      	* g++.dg/cilk-plus/CK/pr80038.cc: New test.
      
      From-SVN: r247446
      Xi Ruoyao committed
    • Eliminate fixit_hint class hierarchy · 338035aa
      The original implementation of fix-it hints (r230674) had an abstract
      base class "fixit_hint" and three subclasses, representing
      each of insertions, replacements, and deletions.
      
      Having multiple classes for fix-it hints was a nuisance, as it required
      per-class logic everywhere that the hints were handled.
      
      In r239632 I eliminated the deletion subclass in favor of replacement
      with the empty string (two subclasses are easier than three).
      
      This patch eliminates the class hierarchy altogether by implementing
      insertion in terms of replacement, by representing replacements via
      a half-open interval (so that for an insertion, start == next location,
      and we're effectively replacing an empty range at the insertion point
      with the new string).
      
      This greatly simplifies the code for handling fix-it hints; for example
      it allows removal of a parallel class hierarchy of line_event within
      edit-context.c.
      
      It also improves consolidation of hints: we can now consolidate
      insertions at the same location, affecting a couple of tests
      (selftest::test_one_liner_many_fixits and
      gcc.dg/Wmissing-braces-fixits.c).
      
      gcc/ChangeLog:
      	* diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
      	to use new fixit_hint representation, using the "replace" logic.
      	(get_line_span_for_fixit_hint): Likewise.
      	(layout::print_any_fixits): Likewise.
      	(selftest::test_one_liner_many_fixits): Rename to...
      	(selftest::test_one_liner_many_fixits_1): ...this, and update
      	comment and expected output to reflect that the multiple fix-it
      	hints are now consolidated into one insertion.
      	(selftest::test_one_liner_many_fixits_2): New test.
      	(selftest::test_diagnostic_show_locus_one_liner): Update for
      	above.
      	(selftest::test_fixit_consolidation): Update for fix-it API
      	change.
      	* diagnostic.c (print_parseable_fixits): Likewise.
      	* edit-context.c (edited_line::m_line_events): Convert from
      	auto_vec <line_event *> to auto_vec <line_event>.
      	(class line_event): Convert from abstract base class to a concrete
      	class, taking over the role of replace_event.
      	(class insert_event): Delete.
      	(class replace_event): Rename to class line_event.  Convert to
      	half-open range.
      	(edit_context::add_fixits): Reimplement.
      	(edit_context::apply_insert): Delete.
      	(edit_context::apply_replace): Rename to...
      	(edit_context::apply_fixit): ...this.  Convert to half-open range.
      	(edited_file::apply_insert): Delete.
      	(edited_file::apply_replace): Rename to...
      	(edited_file::apply_fixit): ...this.
      	(edited_line::~edited_line): Drop deletion of events.
      	(edited_line::apply_insert): Delete.
      	(edited_line::apply_replace): Rename to...
      	(edited_line::apply_fixit): ...this.  Convert to half-open range.
      	Update for change to type of m_line_events.
      	* edit-context.h (edit_context::apply_insert): Delete.
      	(edit_context::apply_replace): Rename to...
      	(edit_context::apply_fixit): ...this.
      
      gcc/testsuite/ChangeLog:
      	* gcc.dg/Wmissing-braces-fixits.c: Update expected output to
      	reflect insertion fix-it hints at the same location now being
      	consolidated.
      
      libcpp/ChangeLog:
      	* include/line-map.h (source_range::intersects_line_p): Delete.
      	(rich_location::add_fixit): Delete.
      	(rich_location::maybe_add_fixit): New method.
      	(class fixit_hint): Reimplement in terms of...
      	(class fixit_replace): ...this.
      	(class fixit_insert): Delete.
      	* line-map.c (linemap_position_for_loc_and_offset): Drop overzealous
      	linemap_assert_fails.
      	(source_range::intersects_line_p): Rename to...
      	(fixit_hint::affects_line_p): New function.
      	(rich_location::add_fixit_insert_before): Reimplement in terms of
      	maybe_add_fixit, moving validation there.
      	(rich_location::add_fixit_insert_after): Likewise.
      	(column_before_p): Delete.
      	(rich_location::add_fixit_replace): Reimplement in terms of
      	maybe_add_fixit, moving validation there.  Convert closed input range
      	to half-open range.
      	(rich_location::add_fixit): Delete.
      	(rich_location::maybe_add_fixit): New function.
      	(fixit_insert::fixit_insert): Delete.
      	(fixit_insert::~fixit_insert): Delete.
      	(fixit_insert::affects_line_p): Delete.
      	(fixit_insert::maybe_append_replace): Delete.
      	(fixit_replace::fixit_replace): Rename to...
      	(fixit_hint::fixit_hint): ...this, rewriting as necessary.
      	(fixit_replace::~fixit_replace): Delete.
      	(fixit_replace::affects_line_p): Delete.
      	(fixit_replace::maybe_append_replace): Rename to...
      	(fixit_hint::maybe_append): ...this, rewriting as necessary.
      
      From-SVN: r247445
      David Malcolm committed
    • gimple-ssa-sprintf.c (format_integer): Set knownrange when it's known. · 4d82d0bc
      gcc/ChangeLog:
      	* gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
      	known.
      
      gcc/testsuite/ChangeLog:
      	* tree-ssa/builtin-sprintf-warn-18.c: Adjust to avoid failures
      	on ILP32 targets.
      
      From-SVN: r247444
      Martin Sebor committed
    • Require linker plugin for pr78768.c · d539a57b
      The test-case has an xfail-ed line.  For linkers without plugin support, that
      line happens to xpass.  Require linker with plugin support, such that the line
      is no longer xpass-ing, but unsupported.
      
      2017-05-01  Tom de Vries  <tom@codesourcery.com>
      
      	* gcc.dg/pr78768.c: Require linker plugin.
      
      From-SVN: r247443
      Tom de Vries committed
    • re PR fortran/37131 (inline matmul for small matrix sizes) · c6b9e849
      2017-05-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/37131
      	* frontend-passes.c (inline_matmul_assign): Also check bounds
      	for allocatable lhs and matrix-vector-multiplication.
      
      2017-05-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/37131
      	* gfortran.dg/matmul_bounds_11.f90:  New test.
      
      From-SVN: r247441
      Thomas Koenig committed
    • re PR tree-optimization/79715 (hand-rolled strdup with unused result not eliminated) · 706eb1a7
      gcc/testsuite/ChangeLog:
      	PR tree-optimization/79715
      	* gcc.dg/pr79715.c: New test.
      
      From-SVN: r247440
      Martin Sebor committed
    • re PR target/68491 (libgcc calls __get_cpuid with 0 level breaks on early 486) · a6c78ea3
      	PR target/68491
      	* config/i386/cpuid.h (__get_cpuid): Always return 0 when
      	__get_cpuid_max returns 0.
      	(__get_cpuid_count): Ditto.
      
      From-SVN: r247439
      Uros Bizjak committed
    • Add and use effective target rdrand · 723f4140
      2017-05-01  Tom de Vries  <tom@codesourcery.com>
      
      	PR testsuite/65941
      	* lib/target-supports.exp (check_effective_target_rdrand): New proc.
      	* g++.dg/other/pr59492.C: Require effective target rdrand.
      
      From-SVN: r247438
      Tom de Vries committed
    • d-demangle.c (dlang_value): Add comment explaining why cases for digits are required. · dd03444b
      libiberty/ChangeLog:
      
      	* d-demangle.c (dlang_value): Add comment explaining why cases for
      	digits are required.
      	* testsuite/d-demangle-expected: Update integer value tests.
      
      From-SVN: r247436
      Iain Buclaw committed
    • d-demangle.c (dlang_parse_symbol): Skip over anonymous symbols. · 98bb7ee2
      libiberty/ChangeLog:
      
      	* d-demangle.c (dlang_parse_symbol): Skip over anonymous symbols.
      	* testsuite/d-demangle-expected: Add tests.
      
      From-SVN: r247434
      Iain Buclaw committed
    • d-demangle.c (dlang_identifier): Handle template constraint symbols. · c6f44bae
      libiberty/ChangeLog:
      
      	* d-demangle.c (dlang_identifier): Handle template constraint symbols.
      	(dlang_parse_template): Only advance if template symbol prefix is
      	followed by a digit.
      	* testsuite/d-demangle-expected: Add tests.
      
      From-SVN: r247433
      Iain Buclaw committed
    • d-demangle.c (dlang_attributes): Handle scope attributes. · ec89d258
      libiberty/ChangeLog:
      
      	* d-demangle.c (dlang_attributes): Handle scope attributes.
      	* testsuite/d-demangle-expected: Add tests.
      
      From-SVN: r247432
      Iain Buclaw committed
    • tree.c (substitute_in_expr): Also inline a call if the replacement expression is… · 3a324b98
      tree.c (substitute_in_expr): Also inline a call if the replacement expression is another instance of one of...
      
      	* tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
      	replacement expression is another instance of one of its arguments.
      
      From-SVN: r247431
      Eric Botcazou committed
    • re PR target/79430 (action of statement incorrectly optimised away) · 30776a14
      	PR target/79430
      	* rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
      	check for stack push/pop autoinc.
      	* config/i386/i386.c (ix86_agi_dependent): Return false
      	if the only reason why modified_in_p returned true is that
      	addr is SP based and set_insn is a push or pop.
      
      From-SVN: r247429
      Jakub Jelinek committed
    • Add missing entry · f16b9dc2
      From-SVN: r247428
      Eric Botcazou committed
    • decl.c (components_to_record): Add more comments. · 0a69d9bd
      	* gcc-interface/decl.c (components_to_record): Add more comments.
      	Put back pending fields onto the regular list if the misalignment
      	happens to cancel itself.
      
      From-SVN: r247426
      Eric Botcazou committed
    • Daily bump. · 8d700636
      From-SVN: r247425
      GCC Administrator committed
  2. 30 Apr, 2017 4 commits
    • * fr.po: Update. · 5bda45cd
      From-SVN: r247420
      Joseph Myers committed
    • * fr.po: Update. · ade61912
      From-SVN: r247418
      Joseph Myers committed
    • re PR tree-optimization/79224 (Large C-Ray slowdown) · 4adaad64
      
      	PR ipa/79224
      	* ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
      	(account_size_time): Use two predicates - exec_pred and
      	nonconst_pred_ptr.
      	(evaluate_conditions_for_known_args): Compute both clause and
      	nonspec_clause.
      	(evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
      	(inline_summary_t::duplicate): Update.
      	(estimate_function_body_sizes): Caluculate exec and nonconst predicates
      	separately.
      	(compute_inline_parameters): Likewise.
      	(estimate_edge_size_and_time): Update caluclation of time.
      	(estimate_node_size_and_time): Compute both time and nonspecialized
      	time.
      	(estimate_ipcp_clone_size_and_time): Update.
      	(inline_merge_summary): Update.
      	(do_estimate_edge_time): Update.
      	(do_estimate_edge_size): Update.
      	(do_estimate_edge_hints): Update.
      	(inline_read_section, inline_write_summary): Stream both new predicates.
      	* ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
      	as argument.
      	(compute_inlined_call_time): Cleanup.
      	(big_speedup_p): Update.
      	(edge_badness): Update.
      	* ipa-inline.h (INLINE_TIME_SCALE): Remove.
      	(size_time_entry): Replace predicate by exec_predicate and
      	nonconst_predicate.
      	(edge_growth_cache_entry): Cache both time nad nonspecialized time.
      	(estimate_edge_time): Return also nonspec_time.
      	(reset_edge_growth_cache): Update.
      
      From-SVN: r247417
      Jan Hubicka committed
    • Daily bump. · 8cbe7981
      From-SVN: r247416
      GCC Administrator committed
  3. 29 Apr, 2017 8 commits
  4. 28 Apr, 2017 7 commits
    • PR tree-optimization/80523 - -Wformat-overflow doesn't consider -fexec-charset · d127ae9f
      gcc/ChangeLog:
      
      	PR tree-optimization/80523
      	* gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
      	(init_target_to_host_charmap, target_to_host, target_strtol10): New
      	functions.
      	(maybe_warn, format_directive, parse_directive): Use new functions.
      	(pass_sprintf_length::execute): Call init_target_to_host_charmap.
      
      gcc/testsuite/ChangeLog:
      
      	PR tree-optimization/80523
      	* gcc.dg/tree-ssa/builtin-sprintf-warn-18.c: New test.
      
      From-SVN: r247401
      Martin Sebor committed
    • Replace absolute linenrs in gfortran.dg · c9610933
      2017-04-28  Tom de Vries  <tom@codesourcery.com>
      
      	PR testsuite/80557
      	* gfortran.dg/gomp/appendix-a/a.24.1.f90: Replace absolute linenrs.
      	* gfortran.dg/gomp/appendix-a/a.31.3.f90: Same.
      
      From-SVN: r247400
      Tom de Vries committed
    • Replace absolute linenrs in objc.dg,obj-c++.dg · b5be38bc
      2017-04-28  Tom de Vries  <tom@codesourcery.com>
      
      	PR testsuite/80557
      	* obj-c++.dg/bitfield-1.mm: Replace absolute linenrs.
      	* obj-c++.dg/bitfield-4.mm: Same.
      	* obj-c++.dg/bitfield-5.mm: Same.
      	* obj-c++.dg/exceptions-3.mm: Same.
      	* obj-c++.dg/exceptions-5.mm: Same.
      	* obj-c++.dg/method-1.mm: Same.
      	* obj-c++.dg/method-12.mm: Same.
      	* obj-c++.dg/method-13.mm: Same.
      	* obj-c++.dg/method-15.mm: Same.
      	* obj-c++.dg/method-16.mm: Same.
      	* obj-c++.dg/property/at-property-18.mm: Same.
      	* obj-c++.dg/property/at-property-25.mm: Same.
      	* obj-c++.dg/property/at-property-5.mm: Same.
      	* obj-c++.dg/property/dynamic-2.mm: Same.
      	* obj-c++.dg/property/property-neg-3.mm: Same.
      	* obj-c++.dg/protocol-inheritance-1.mm: Same.
      	* obj-c++.dg/protocol-inheritance-2.mm: Same.
      	* obj-c++.dg/syntax-error-1.mm: Same.
      	* obj-c++.dg/try-catch-13.mm: Same.
      	* objc.dg/bitfield-4.m: Same.
      	* objc.dg/class-1.m: Same.
      	* objc.dg/method-11.m: Same.
      	* objc.dg/method-6.m: Same.
      	* objc.dg/method-7.m: Same.
      	* objc.dg/method-9.m: Same.
      	* objc.dg/missing-proto-3.m: Same.
      	* objc.dg/naming-2.m: Same.
      	* objc.dg/property/at-property-16.m: Same.
      	* objc.dg/property/at-property-18.m: Same.
      	* objc.dg/property/at-property-25.m: Same.
      	* objc.dg/property/at-property-5.m: Same.
      	* objc.dg/property/dynamic-2.m: Same.
      	* objc.dg/property/property-neg-3.m: Same.
      	* objc.dg/protocol-inheritance-1.m: Same.
      	* objc.dg/protocol-inheritance-2.m: Same.
      
      From-SVN: r247399
      Tom de Vries committed
    • Drop Z from X + Z < Y + Z · d35256b6
      2017-04-28  Marc Glisse  <marc.glisse@inria.fr>
      
      gcc/
      	* match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.
      
      gcc/testsuite/
      	* gcc.dg/tree-ssa/cmpexactdiv-2.c: Update for X-Z OP Y-Z.
      
      From-SVN: r247398
      Marc Glisse committed
    • configure.ac (SYSTEM_HEADER_DIR, [...]): Set correctly. · 0c90d48b
      2017-04-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
              target_header_dir): Set correctly.
              * configure: Regenerated.
              * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
              (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
              instead of SYSTEM_HEADER_DIR.
      
      From-SVN: r247397
      Bernd Edlinger committed
    • Remove blank line · 4accc823
      From-SVN: r247395
      Eric Botcazou committed
    • Update .po files. · e53603ef
      	* 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.
      
      From-SVN: r247394
      Joseph Myers committed