Commit Graph

153730 Commits

Author SHA1 Message Date
Segher Boessenkool
5d3ae76af1 rs6000: Make constant formation a tiny bit better
If we cannot load a constant into a register in one insn, and that
constant is a valid mask (for rotate instructions), we currently
prefer to load -1 and then mask it.  This patch makes us not do that if
instead we could use two add or or instructions, since those are
sometimes faster on certain CPUs (and never are slower).


	* config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
	use this splitter if two add or or instructions would also work for
	the constant we want to generate.

From-SVN: r248265
2017-05-19 13:29:21 +02:00
Richard Biener
3a6461f307 re PR tree-optimization/80821 (genmatch conflicting predicates)
2017-05-19  Richard Biener  <rguenther@suse.de>

	PR build/80821
	* genmatch.c (dt_node::gen_kids_1): Add missing scope around
	predicate evaluation.

From-SVN: r248264
2017-05-19 11:13:48 +00:00
Jan Hubicka
9ca8a4c064 ipa-inline.h (ipa_call_summary): Turn sizes into signed; add ctor.
* ipa-inline.h (ipa_call_summary): Turn sizes into signed;
	add ctor.
	* ipa-inline.c (want_inline_small_function_p): Do not cast to
	unsigned.

From-SVN: r248263
2017-05-19 09:36:56 +00:00
Jan Hubicka
263e19c786 ipa-inline-analysis.c (cgraph_2edge_hook_list, [...]): Remove.
* ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
	inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
	(inline_edge_summary_vec): Turn into ...
	(ipa_call_summaries): ... this one.
	(redirect_to_unreachable, edge_set_predicate,
	evaluate_properties_for_edge, inline_summary_alloc,
	reset_ipa_call_summary, reset_inline_summary,
	inline_summary_t::duplicate): Update.
	(inline_edge_duplication_hook): Turn to ...
	(ipa_call_summary_t::duplicate): ... this one.
	(inline_edge_removal_hook): Turn to ...
	(ipa_call_summary_t::remove): ... this one.
	(dump_inline_edge_summary): Turn to ...
	(dump_ipa_call_summary): ... this one.
	(estimate_function_body_sizes): Update.
	(inline_update_callee_summaries): Update.
	(remap_edge_change_prob): Update.
	(remap_edge_summaries): Update.
	(inline_merge_summary): Update.
	(do_estimate_edge_time): Update.
	(inline_generate_summary): Update.
	(inline_read_section): Update.
	(inline_read_summary): Update.
	(inline_free_summary): Update.
	* ipa-inline.c (can_inline_edge_p): Update.
	(compute_inlined_call_time): Update.
	(want_inline_small_function_p): Update.
	(edge_badness): Update.
	(early_inliner): Update.
	* ipa-inline.h (inline_edge_summary): Turn to ...
	(ipa_call_summary): ... this one.
	(ipa_call_summary_t): New class.
	(inline_edge_summary_t, inline_edge_summary_vec): Remove.
	(ipa_call_summaries): New.
	(inline_edge_summary): Remove.
	(estimate_edge_growth): Update.
	* ipa-profile.c (ipa_propagate_frequency_1): Update.
	* ipa-prop.c (ipa_make_edge_direct_to_target): Update.
	* ipa-split.c (execute_split_functions): Update.
	* ipa.c (symbol_table::remove_unreachable_nodes): Update.

From-SVN: r248262
2017-05-19 08:52:26 +00:00
Richard Biener
035ab82621 re PR middle-end/80764 (ICE at -O3 in both 32-bit and 64-bit modes on x86_64-linux-gnu (internal compiler error: in verify_loop_structure, at cfgloop.c:1644))
2017-05-19  Richard Biener  <rguenther@suse.de>

	PR middle-end/80764
	* cfgexpand.c (expand_gimple_cond): Fix loop fixup.

	* gcc.dg/torture/pr80764.c: New testcase.

From-SVN: r248261
2017-05-19 08:23:37 +00:00
GCC Administrator
f0da130005 Daily bump.
From-SVN: r248260
2017-05-19 00:16:28 +00:00
Segher Boessenkool
6e21f3b52e rs6000: Separate shrink-wrapping for FPRs
This patch implements separate shrink-wrapping for the non-volatile
floating point registers (FPR14..FPR31).  It is pretty much exactly
analogous to the code for GPRs.


	* config/rs6000/rs6000.c (struct machine_function): Add field
	fpr_is_wrapped_separately.
	(rs6000_get_separate_components): Use 64 components.  Handle the
	new FPR components.
	(rs6000_components_for_bb): Handle the FPR components.
	(rs6000_emit_prologue_components): Handle the FPR components.
	(rs6000_emit_epilogue_components): Handle the FPR components.
	(rs6000_set_handled_components): Handle the FPR components.
	(rs6000_emit_prologue): Don't output prologue code for those FPRs
	that are already separately shrink-wrapped.
	(rs6000_emit_epilogue): Don't output epilogue code for those FPRs
	that are already separately shrink-wrapped.

From-SVN: r248256
2017-05-19 01:38:04 +02:00
Ian Lance Taylor
afbc9ecbf6 re PR go/80814 (commit aa443150c83535fedccb3dee80daa7e01fafd92d causes a build error.)
PR go/80814
	* Makefile.am (AM_GOCFLAGS): Define.
	* Makefile.in: Rebuild.

From-SVN: r248255
2017-05-18 22:44:12 +00:00
Michael Meissner
52e14b96bd re PR target/80510 (Optimize Power7/power8 Altivec load/stores)
[gcc]
2017-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/80510
	* config/rs6000/predicates.md (simple_offsettable_mem_operand):
	New predicate.

	* config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
	(define_peephole2 for Altivec d-form load): Add peepholes to catch
	cases where the register allocator uses a move and an offsettable
	memory operation to/from a FPR register on ISA 2.06/2.07.
	(define_peephole2 for Altivec d-form store): Likewise.

[gcc/testsuite]
2017-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/80510
	* gcc.target/powerpc/pr80510-1.c: New test.
	* gcc.target/powerpc/pr80510-2.c: Likewise.

From-SVN: r248254
2017-05-18 19:34:13 +00:00
Eric Gallager
4287da829c Add testcase to ensure that #pragma GCC diagnostic push/pop works with -Wtraditional
2017-05-18  Eric Gallager  <egall@gwmail.gwu.edu>

	* gcc.dg/pragma-diag-7.c: New test.

From-SVN: r248253
2017-05-18 18:55:33 +00:00
Matthias Klose
d300615539 gcc_release (build_gzip): Build xz tarball instead of bz2 tarball.
2017-05-18  Matthias Klose  <doko@ubuntu.com>

        * gcc_release (build_gzip): Build xz tarball instead of bz2 tarball.
        (build_diffs): Handle building diffs from either bz2 or xz tarballs,
        compress diffs using xz instead of bz2.
        (build_diff): Likewise.
        (upload_files): Check for *.xz files instead of *.bz2 files.
        (announce_snapshot): Announce xz tarball instead of bz2 tarball.
        (XZ): New definition.
        (<toplevel>): Look for both bz2 and xz compressed old tarballs.

From-SVN: r248251
2017-05-18 18:49:16 +00:00
Nathan Sidwell
1bf07cc3ff cp-tree.h (OVL_ARG_DEPENDENT): Delete.
* cp-tree.h (OVL_ARG_DEPENDENT): Delete.
	(OVL_USED_P): New.
	(lookup_keep): Declare.
	* name-lookup.c (add_function): Don't set OVL_ARG_DEPENDENT.
	* pt.c (tsubst_copy): Assert lookup is persistent.
	* semantics.c (finish_call_expr): Use lkp_iterator, call
	lookup_keep.
	* tree.c (ovl_copy): New.
	(ovl_insert, ovl_iterator::remove_node): Copy immutable nodes.
	(lookup_keep): New.

From-SVN: r248250
2017-05-18 18:18:04 +00:00
Ian Lance Taylor
7d2f2a6b73 compiler: ignore struct field tags for type conversion
Go 1.8 includes a language change (https://golang.org/doc/go1.8#language):
    in an explicit conversion from one struct type to another, any field
    tags are ignored.
    
    This CL implements this language change in the gofrontend.  The tests
    for this are in the gc testsuite, which will be copied into the gccgo
    repository in due course.
    
    Updates golang/go#16085.
    
    Reviewed-on: https://go-review.googlesource.com/43614

From-SVN: r248248
2017-05-18 18:04:29 +00:00
Uros Bizjak
e4171e100d re PR target/80799 (x86-32 bits generates MMX without EMMS)
PR target/80799
	* config/i386/mmx.md (*mov<mode>_internal): Enable
	alternatives 11, 12, 13 and 14 also for 32bit targets.
	Remove alternatives 15, 16, 17 and 18.
	* config/i386/sse.md (vec_concatv2di): Change
	alternative (!x, *y) to (x, ?!*Yn).

testsuite/ChangeLog:

	PR target/80799
	* g++.dg/other/i386-11.C: New test.

From-SVN: r248246
2017-05-18 20:03:30 +02:00
Jonathan Wakely
747217d179 PR libstdc++/80478 make std::mem_fn work with noexcept functions
PR libstdc++/80478
	* include/std/functional (_Mem_fn_traits_base): Add specializations
	for noexcept member function types.
	* testsuite/20_util/function_objects/mem_fn/80478.cc: New test.

From-SVN: r248245
2017-05-18 18:32:06 +01:00
Paolo Carlini
286c97f38f dumpfile.h (enum dump_kind): Remove stray comma.
2017-05-18  Paolo Carlini  <paolo.carlini@oracle.com>

	* dumpfile.h (enum dump_kind): Remove stray comma.

From-SVN: r248244
2017-05-18 17:19:53 +00:00
Jan Hubicka
2f30407b61 Makefile.in: Add ipa-predicate.o and ipa-predicate.h
* Makefile.in: Add ipa-predicate.o and ipa-predicate.h
	* ipa-inline-analysis.c (NUM_CONDITIONS): turn into
	predicate::num_conditions
	(IS_NOT_CONSTANT): turn into predicate::is_not_constant.
	(CHANGED): turn into predicate::changed.
	(agg_position_info): Move to ipa-predicate.h
	(add_condition, predicate::add_clause, predicate::operator &=,
	predicate::or_with, predicate::evaluate, predicate::probability,
	dump_condition, dump_clause, predicate::dump,
	predicate::remap_after_duplication, predicate::remap_after_inlining,
	predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
	(evaluate_conditions_for_known_args): Update.
	(set_cond_stmt_execution_predicate): Update.
	* ipa-inline.h: Include ipa-predicate.h
	(condition, inline_param_summary, conditions, agg_position_info,
	predicate): Move to ipa-predicate.h
	* ipa-predicate.c: New file.
	* ipa-predicate.h: New file.

From-SVN: r248243
2017-05-18 17:04:25 +00:00
Bernd Edlinger
6ecd23394a c-format.c (local_tree_type_node): Add GTY attribute.
gcc/c-family:
2017-05-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * c-format.c (local_tree_type_node): Add GTY attribute.

gcc/c:
2017-05-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * config-lang.in (gtfiles): Add c-family/c-format.c.

From-SVN: r248242
2017-05-18 16:15:59 +00:00
Jan Hubicka
b679b55b5e Makefile.in: Add ipa-predicate.o and ipa-predicate.h
* Makefile.in: Add ipa-predicate.o and ipa-predicate.h
	* ipa-inline-analysis.c (NUM_CONDITIONS): turn into
	predicate::num_conditions
	(IS_NOT_CONSTANT): turn into predicate::is_not_constant.
	(CHANGED): turn into predicate::changed.
	(agg_position_info): Move to ipa-predicate.h
	(add_condition, predicate::add_clause, predicate::operator &=,
	predicate::or_with, predicate::evaluate, predicate::probability,
	dump_condition, dump_clause, predicate::dump,
	predicate::remap_after_duplication, predicate::remap_after_inlining,
	predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
	(evaluate_conditions_for_known_args): Update.
	(set_cond_stmt_execution_predicate): Update.
	* ipa-inline.h: Include ipa-predicate.h
	(condition, inline_param_summary, conditions, agg_position_info,
	predicate): Move to ipa-predicate.h
	* ipa-predicate.c: New file.
	* ipa-predicate.h: New file.

From-SVN: r248241
2017-05-18 16:14:10 +00:00
Wilco Dijkstra
00d6001385 Add an assert to leaf_function_p to ensure it is not called from a prolog or...
Add an assert to leaf_function_p to ensure it is not called from a
prolog or epilog sequence (which would incorrectly return true in a
non-leaf function).  There are several targets which still call
leaf_function_p, and while most appear safe or appear aware of the
issue, it is likely not all such calls are safe.  This check enables
any such latent bugs to be found.

    gcc/
	* final.c (leaf_function_p): Check we are not in a sequence.

From-SVN: r248240
2017-05-18 15:58:33 +00:00
Nathan Sidwell
2063b07f4d cp-tree.h (OVL_USED): Replace with ...
* cp-tree.h (OVL_USED): Replace with ...
	(OVL_USING_P): ... this.
	(ovl_iterator::using_p): Adjust.
	* name-lookup.c (push_overloaded_decl_1)
	do_nonmember_using_decl): Adjust.
	* search.c (lookup_field_r): Adjust.
	* tree.c (ovl_insert, ovl_scope): Adjust.
(--This line, and those below, will be ignored--

M    cp/tree.c
M    cp/cp-tree.h
M    cp/name-lookup.c
M    cp/search.c
M    cp/ChangeLog

From-SVN: r248229
2017-05-18 15:20:04 +00:00
Martin Liska
8264c84d54 Transform TDF_{lang,tree,ipa,rtl} to dump_kind enum.
2017-05-18  Martin Liska  <mliska@suse.cz>

	* cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL.
	* dumpfile.c (dump_register): Use new enum dump_kind.
	(get_dump_file_name): Likewise.
	(dump_enable_all): Likewise.
	(dump_switch_p_1): Likewise.
	(enable_rtl_dump_file): Remove usage of TDF_RTL.
	* dumpfile.h (enum dump_kind): New enum type.
	(struct dump_file_info): Create constructor and
	format fields and comments.
	* passes.c (pass_manager::register_one_dump_file):
	Use num dump_kind.
	* statistics.c (statistics_early_init): Likewise.
	* tree-ssa-loop-prefetch.c (dump_mem_details): Replace
	TDF_TREE with TDF_SLIM.
	(gather_memory_references_ref): Likewise.

From-SVN: r248206
2017-05-18 14:23:46 +00:00
Martin Liska
671d5bcb26 Define CONSTEXPR macro and use it in vec.h.
2017-05-18  Martin Liska  <mliska@suse.cz>

	* ansidecl.h: Define CONSTEXPR macro.
2017-05-18  Martin Liska  <mliska@suse.cz>

	* vec.h (struct vnull): Use it.

From-SVN: r248205
2017-05-18 14:22:01 +00:00
Jan Hubicka
dbcb3c7446 ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h (true_predicate...
* ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h
	(true_predicate, false_predicate, true_predicate_p,
	false_predicate_p): Remove.
	(single_cond_predicate, not_inlined_predicate): Turn to member function
	in ipa-inline.h
	(add_condition): Update.
	(add_clause): Turn to...
	(predicate::add_clause): ... this one; update; allow passing NULL
	as parameter.
	(and_predicates): Turn to ...
	(predicate::operator &=): ... this one.
	(predicates_equal_p): Move to predicate::operator == in ipa-inline.h
	(or_predicates): Turn to ...
	(predicate::or_with): ... this one.
	(evaluate_predicate): Turn to ...
	(predicate::evaluate): ... this one.
	(predicate_probability): Turn to ...
	(predicate::probability): ... this one.
	(dump_condition): Update.
	(dump_predicate): Turn to ...
	(predicate::dump): ... this one.
	(account_size_time): Update.
	(edge_set_predicate): Update.
	(set_hint_predicate): UPdate.
	(evaluate_conditions_for_known_args): Update.
	(evaluate_properties_for_edge): Update.
	(remap_predicate_after_duplication): Turn to...
	(predicate::remap_after_duplication): ... this one.
	(remap_hint_predicate_after_duplication): Update.
	(inline_summary_t::duplicate): UPdate.
	(dump_inline_edge_summary): Update.
	(dump_inline_summary): Update.
	(set_cond_stmt_execution_predicate): Update.
	(set_switch_stmt_execution_predicate): Update.
	(compute_bb_predicates): Update.
	(will_be_nonconstant_expr_predicate): Update.
	(will_be_nonconstant_predicate): Update.
	(phi_result_unknown_predicate): Update.
	(predicate_for_phi_result): Update.
	(array_index_predicate): Update.
	(estimate_function_body_sizes): Update.
	(estimate_node_size_and_time): Update.
	(estimate_ipcp_clone_size_and_time): Update.
	(remap_predicate): Rename to ...
	(predicate::remap_after_inlining): ... this one.
	(remap_hint_predicate): Update.
	(inline_merge_summary): Update.
	(inline_update_overall_summary): Update.
	(estimate_size_after_inlining): Update.
	(read_predicate): Rename to ...
	(predicate::stream_in): ... this one.
	(read_inline_edge_summary): Update.
	(write_predicate): Rename to ...
	(predicate::stream_out): ... this one.
	(write_inline_edge_summary): Update.
	* ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses.
	(clause_t): Turn to uint32_t
	(predicate): Turn to class; implement constructor and operators
	==, !=, &
	(size_time_entry): Update.
	(inline_summary): Update.
	(inline_edge_summary): Update.

From-SVN: r248204
2017-05-18 14:18:08 +00:00
Will Schmidt
cdefeea2e6 fold-vec-div-float.c: Update dg-requires and dg-options statements.
2017-05-18  Will Schmidt  <will_schmidt@vnet.ibm.com>

[gcc/testsuite]

	* fold-vec-div-float.c: Update dg-requires and dg-options statements.
	* fold-vec-div-floatdouble.c: Likewise.
	* fold-vec-logical-ands-char.c: Likewise.
	* fold-vec-logical-ands-int.c: Likewise.
	* fold-vec-logical-ands-short.c: Likewise.
	* fold-vec-logical-ors-char.c: Likewise.
	* fold-vec-logical-ors-int.c: Likewise.
	* fold-vec-logical-ors-short.c: Likewise.
	* fold-vec-logical-other-char.c: Likewise.
	* fold-vec-mule-misc.c: Likewise.
	* fold-vec-mult-float.c: Likewise.
	* fold-vec-mult-floatdouble.c: Likewise.
	* fold-vec-mult-int.c: Likewise.
	* fold-vec-mult-int128-p9.c: Likewise.
	* fold-vec-sub-floatdouble.c: Likewise.
	* fold-vec-div-longlong.c: Update dg-requires and dg-options statements.
	Add lp64 requirement.
	* fold-vec-mult-int128-p8.c: Likewise.
	* fold-vec-logical-ors-longlong.c: Fix comment typo.

From-SVN: r248202
2017-05-18 14:08:13 +00:00
Steven Munroe
62ee030a80 Fix up dg-option to resolve problems reported by David Edelshon for AIX.
2017-05-17  Steven Munroe  <munroesj@gcc.gnu.org>

	* gcc.target/powerpc/bmi-andn-1.c: Fix-up dg-options.
	* gcc.target/powerpc/bmi-andn-2.c: Fix-up dg-options.
	* gcc.target/powerpc/bmi-bextr-1.c: Fix-up dg-options.
	* gcc.target/powerpc/bmi-bextr-2.c: Fix-up dg-options.
	* gcc.target/powerpc/bmi-bextr-4.c: Fix-up dg-options.
	* gcc.target/powerpc/bmi-bextr-5.c: Fix-up dg-options.
	* gcc.target/powerpc/bmi-blsi-1.c: Fix-up dg-options.
	* gcc.target/powerpc/bmi-blsi-2.c: Fix-up dg-options.
	* gcc.target/powerpc/bmi-blsmsk-1.c: Fix-up dg-options.
	* gcc.target/powerpc/bmi-blsmsk-2.c: Fix-up dg-options.
	* gcc.target/powerpc/bmi-blsr-1.c: Fix-up dg-options.
	* gcc.target/powerpc/bmi-blsr-2.c: Fix-up dg-options.
	* gcc.target/powerpc/bmi-tzcnt-1.c: Fix-up dg-options.
	* gcc.target/powerpc/bmi-tzcnt-2.c: Fix-up dg-options.
	* gcc.target/powerpc/bmi2-bzhi32-1.c: Fix-up dg-options.
	* gcc.target/powerpc/bmi2-bzhi64-1.c: Fix-up dg-options.
	* gcc.target/powerpc/bmi2-bzhi64-1a.c: Fix-up dg-options.
	* gcc.target/powerpc/bmi2-mulx32-1.c: Fix-up dg-options.
	* gcc.target/powerpc/bmi2-mulx32-2.c: Fix-up dg-options.
	* gcc.target/powerpc/bmi2-mulx64-1.c: Fix-up dg-options.
	* gcc.target/powerpc/bmi2-mulx64-2.c: Fix-up dg-options.
	* gcc.target/powerpc/bmi2-pdep32-1.c: Fix-up dg-options.
	* gcc.target/powerpc/bmi2-pdep64-1.c: Fix-up dg-options.
	* gcc.target/powerpc/bmi2-pext32-1.c: Fix-up dg-options.
	* gcc.target/powerpc/bmi2-pext64-1.c: Fix-up dg-options.
	* gcc.target/powerpc/bmi2-pext64-1a.c: Fix-up dg-options.

From-SVN: r248201
2017-05-18 14:01:11 +00:00
Thomas Schwinge
c7ddc044c5 More dump_flags_t conversion
gcc/brig/
	* brigfrontend/brig-to-generic.h (class brig_to_generic): Use
	"dump_flags_t" for "m_dump_flags" member.

From-SVN: r248200
2017-05-18 15:34:29 +02:00
Nathan Sidwell
8a57ecff02 * c-decl.c (pushdecl_top_level): Delete unused function.
From-SVN: r248199
2017-05-18 13:03:55 +00:00
Nathan Sidwell
31ab89c14a cp-tree.h (lookup_add): Swap args.
* cp-tree.h (lookup_add): Swap args.
	(ovl_cons, build_overload): Delete.
	* name-lookup.c (add_function, push_overloaded_decl_1)
	do_nonmember_using_decl, merge_functions, remove_hidden_names):
	Use lookup_add, ovl_insert.
	* pt.c (check_explicit_specialization): Use lookup_add.
	(do_class_deduction): Likewise. Refactor if.
	* tree.c (lookup_add): Swap args.
	(ovl_cons, build_overload): Delete.
(--This line, and those below, will be ignored--

M    cp/cp-tree.h
M    cp/name-lookup.c
M    cp/pt.c
M    cp/ChangeLog
M    cp/tree.c

From-SVN: r248198
2017-05-18 12:55:11 +00:00
Marek Polacek
6574d78eea c-common.c (c_common_type_for_size): Use NULL_TREE instead of 0.
* c-common.c (c_common_type_for_size): Use NULL_TREE instead of 0.
	(c_common_fixed_point_type_for_size): Likewise.
	(c_common_type_for_mode): Likewise.
	(shorten_compare): Likewise.
	(c_promoting_integer_type_p): Use false/true instead of 0/1.
	* c-pragma.c (maybe_apply_renaming_pragma): Use NULL_TREE instead of 0.

	* c-decl.c (match_builtin_function_types): Use NULL_TREE instead of 0.
	(check_earlier_gotos): Likewise.
	(define_label): Likewise.
	(pending_xref_error): Likewise.
	(smallest_type_quals_location): Likewise.
	(grokdeclarator): Likewise.
	(grokparms): Likewise.
	(identifier_global_value): Likewise.
	* c-typeck.c (set_nonincremental_init_from_string): Likewise.
	(find_init_member): Likewise.

From-SVN: r248195
2017-05-18 11:26:25 +00:00
Marc Glisse
8b656ca7ea Move X==15-X to match.pd
2017-05-18  Marc Glisse  <marc.glisse@inria.fr>

	* fold-const.c (fold_binary_loc): Move transformation...
	* match.pd (C - X CMP X): ... here.

From-SVN: r248193
2017-05-18 11:05:55 +00:00
Marek Polacek
e3455240ed c-common.c (self_promoting_args_p): Change the return type to bool.
* c-common.c (self_promoting_args_p): Change the return type to bool.
	Use false/true instead of 0/1.
	* c-common.h (self_promoting_args_p): Update.

	* c-decl.c (start_decl): Use false/true instead of 0/1.
	(grokdeclarator): Likewise.
	(finish_struct): Likewise.
	(start_function): Change the return type to bool.  Use false/true
	instead of 0/1.
	(declspecs_add_qual): Use UNKNOWN_LOCATION instead of 0.
	* c-tree.h (start_function): Update.
	* c-typeck.c (same_translation_unit_p): Change the return type to bool.
	(set_designator): Change the return type to bool.  Use false/true
	instead of 0/1.

From-SVN: r248192
2017-05-18 10:55:59 +00:00
Nathan Sidwell
59a4ede94f name-lookup.c (find_local_binding): New, broken out of ...
* name-lookup.c (find_local_binding): New, broken out of ...
	(lookup_name_innermost_nonclass_level_1): ... here.  Call it.
	(set_namespace_binding): Swap scope & name args.
	(namespace_binding_1): Likewise.
	(pushdecl_maybe_friend_1): Adjust set_namespace_binding call.
	(push_overloaded_decl_1): Likewise.
	(set_global_binding): Likewise.
	(get_namespace_binding): Adjust namespace_binding_1 call.

From-SVN: r248191
2017-05-18 10:49:48 +00:00
Jonathan Wakely
8985968cc4 Fix typos in libstdc++ manual
* doc/xml/manual/policy_data_structures.xml: Fix typo.
	* doc/xml/manual/test_policy_data_structures.xml: Likewise.
	* doc/html/*: Regenerate.

From-SVN: r248189
2017-05-18 11:26:02 +01:00
Fritz Reese
cf0042303e re PR fortran/79968 (diagnostics: merge similar diagnostics containing -fdec-structure)
2017-05-18  Fritz Reese <fritzoreese@gmail.com>

    PR fortran/79968

    gcc/fortran/ChangeLog:

	PR fortran/79968
	* decl.c (match_attr_spec, gfc_match_automatic,
	gfc_match_static, gfc_match_structure_decl): Unify diagnostic
	errors regarding -fdec options.
	* io.c (match_dec_etag, match_dec_vtag, match_dec_ftag): Ditto.

From-SVN: r248188
2017-05-18 10:24:37 +00:00
Jonathan Wakely
8268fc6022 Update libstdc++ version info in manual
* doc/xml/manual/abi.xml: Document latest library versions.
	* doc/xml/manual/build_hacking.xml: Document requirement to update
	abi.xml when bumping library versions.
	* doc/html/*: Regenerate.

From-SVN: r248186
2017-05-18 11:09:32 +01:00
Sheldon Lobo
7880c1a5b1 MAINTAINERS: Add self to Write After Approval
* MAINTAINERS: Add self to Write After Approval

From-SVN: r248185
2017-05-18 09:38:47 +00:00
Sheldon Lobo
00a84d0edd Minor SPARC T4 and M7 fixes and additions.
* config/sparc/sparc.c (sparc_option_override): Set function
	alignment for -mcpu=niagara7 to 64 to match the I$ line.
	* config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
	latency to 1.
	* config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
	latency to 2.
	* config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
	* gcc.target/sparc/niagara7-align.c: New test.

From-SVN: r248184
2017-05-18 09:34:26 +00:00
Marek Polacek
243c288370 re PR sanitizer/80797 (-fsanitize=null doesn't instrument &s->x)
PR sanitizer/80797
	* ubsan.c (instrument_null): Unwrap ADDR_EXPRs.
	(pass_ubsan::execute): Call gimple_assign_single_p instead of
	gimple_assign_load_p.

	* c-c++-common/ubsan/null-12.c: New test.

From-SVN: r248179
2017-05-18 07:18:24 +00:00
GCC Administrator
a7ab663853 Daily bump.
From-SVN: r248178
2017-05-18 00:16:26 +00:00
Segher Boessenkool
e98e63404c Fix comparison of decimal float zeroes (PR80692)
Decimal float negative zero should compare equal to positive zero.
Decimal float zeroes are encoded as value class "normal" (in real.c);
they need to be handled specially, but in this one case that does not
yet happen.  This fixes it.


	PR middle-end/80692
	* real.c (do_compare): Give decimal_do_compare preference over
	comparing just the signs.

gcc/testsuite/
	PR middle-end/80692
	* gcc.c-torture/execute/pr80692.c: New testcase.

From-SVN: r248174
2017-05-17 23:57:23 +02:00
Andreas Tobler
78eca3093f unwind-arm.h: Make _Unwind_GetIP...
2017-05-17  Andreas Tobler  <andreast@gcc.gnu.org>

    * config/arm/unwind-arm.h: Make _Unwind_GetIP, _Unwind_GetIPInfo and
    _Unwind_SetIP available as functions for arm*-*-freebsd*.
    * config/arm/unwind-arm.c: Implement the above.

From-SVN: r248173
2017-05-17 22:54:39 +02:00
Jerry DeLisle
0152001bc8 re PR fortran/80741 ([Regression 7/8] DTIO wrong code causes incorrect behaviour of namelist READ)
2017-05-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/80741
	* gfortran.dg/read_4.f90: New test.

From-SVN: r248172
2017-05-17 20:33:34 +00:00
Jerry DeLisle
42f94417e5 re PR fortran/80741 ([Regression 7/8] DTIO wrong code causes incorrect behaviour of namelist READ)
2017-05-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/80741
	* gfortran.dg/read_4.f90: New test.

From-SVN: r248171
2017-05-17 20:33:27 +00:00
Jerry DeLisle
7f72e40263 re PR fortran/80741 ([Regression 7/8] DTIO wrong code causes incorrect behaviour of namelist READ)
2017-05-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/80741
	* transfer.c (finalize_transfer): Reset last_char to 'empty'.
	* file_pos.c (formatted_backspace): Likewise.
	(st_endfile): Likewise.
	(st_rewind): Likewise.
	(st_flush): Likewise.

	PR fortran/80741
	* trans-io.c (transfer_namelist_element): Change check from
	NULL_TREE to null_pointer_node.

From-SVN: r248170
2017-05-17 20:33:20 +00:00
Ian Lance Taylor
7ded3472ae libgo: add "vendor" to pkgpath for vendored standard packages
Ensure that the packages vendored into the standard library do not
    have the same pkgpath as the actual packages.  If we don't, attempts
    to build and test the actual packages will get confused.  The specific
    error I was seeing was import loops, causing some of the packages to
    fail to get initialized, causing an obscure run time crash.
    
    Reviewed-on: https://go-review.googlesource.com/43610

From-SVN: r248168
2017-05-17 20:16:13 +00:00
Bill Schmidt
c8ded43049 pr78604.c: Fix typo in dg-options.
2017-05-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.target/powerpc/pr78604.c: Fix typo in dg-options.

From-SVN: r248165
2017-05-17 17:39:55 +00:00
Marek Polacek
3fa8871b0c c-common.c: Use NULL_TREE instead of 0 where appropriate.
* c-common.c: Use NULL_TREE instead of 0 where appropriate.
	* c-warn.c: Likewise.

	* c-decl.c: Use NULL_TREE instead of 0 where appropriate.
	* c-typeck.c: Likewise.

From-SVN: r248161
2017-05-17 16:30:53 +00:00
Jonathan Wakely
26bddba34a Fixes to Doxygen comments in libstdc++ headers
* include/bits/refwrap.h: Fix Doxygen warning.
	* include/bits/specfun.h: Likewise.
	* include/bits/std_function.h: Likewise.
	* include/bits/stl_algo.h (set_union, set_intersection)
	(set_difference, set_symmetric_difference): Add Doxygen @param tags
	for output iterator parameters.
	* include/bits/stl_iterator.h (inserter): Add Doxygen @param tag for
	iterator parameter.
	* include/std/mutex (try_lock, lock): Change Mutex to Lockable in
	Doxygen comments.

From-SVN: r248160
2017-05-17 17:02:33 +01:00
Nathan Sidwell
539f481a29 cp-tree.h (default_hash_traits <lang_identifier *>): New specialization.
* cp-tree.h (default_hash_traits <lang_identifier *>): New
	specialization.
	* name-lookup.c (lookup_extern_c_fun_in_all_ns): Delete.
	(extern_c_fns): New hash table.
	(check_extern_c_conflict): New, broken out of ...
	(pushdecl_maybe_friend_1): ... here.  Call it.
	(c_linkage_bindings): Just look in hash table.

From-SVN: r248159
2017-05-17 15:41:23 +00:00