Commit Graph

153688 Commits

Author SHA1 Message Date
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
Fritz Reese e5b1f5a1d1 re PR fortran/80668 (wrong error message with -finit-derived)
2017-05-17  Fritz Reese <fritzoreese@gmail.com>

    PR fortran/80668

    gcc/fortran/ChangeLog:

	PR fortran/80668
	* expr.c (component_initializer): Don't generate initializers for
	pointer components.
	* invoke.texi (-finit-derived): Document.

    gcc/testsuite/ChangeLog:

	PR fortran/80668
	* gfortran.dg/pr80668.f90: New.

From-SVN: r248158
2017-05-17 15:13:58 +00:00
Uros Bizjak 3ca8120f64 * gcc.target/i386/pr80425-1.c: Add -mregparm=1 for 32bit targets.
From-SVN: r248157
2017-05-17 17:04:58 +02:00
Uros Bizjak 81ad201ac5 md.texi (Canonicalization of Instructions): Describe the canonical form of instructions that inherently set a condition...
* doc/md.texi (Canonicalization of Instructions): Describe the
	canonical form of instructions that inherently set a condition
	code register.

From-SVN: r248156
2017-05-17 17:01:07 +02:00
Peter Bergner 9853cb2872 re PR middle-end/80775 (-O3 produces ice in group_case_labels_stmt)
gcc/
	PR middle-end/80775
	* tree-cfg.c: Move deletion of unreachable case statements to after
	the merging of consecutive case labels.

gcc/testsuite/
	PR middle-end/80775
	* gcc.dg/pr80775.c: New test.

From-SVN: r248155
2017-05-17 09:05:21 -05:00
Ville Voutilainen b42cc3ca24 Implement new C++ intrinsics __is_assignable and __is_constructible.
c-family/

Implement new C++ intrinsics __is_assignable and __is_constructible.
* c-common.c (__is_assignable, __is_constructible): New.
* c-common.h (RID_IS_ASSIGNABLE, RID_IS_CONSTRUCTIBLE): Likewise.

cp/

PR c++/80654
PR c++/80682
Implement new C++ intrinsics __is_assignable and __is_constructible.
* cp-tree.h (CPTK_IS_ASSIGNABLE, CPTK_IS_CONSTRUCTIBLE): New.
(is_xible): New.
* cxx-pretty-print.c (pp_cxx_trait_expression): Handle
CPTK_IS_ASSIGNABLE and CPTK_IS_CONSTRUCTIBLE.
* method.c (constructible_expr): Set cp_unevaluated.
(is_xible_helper): New.
(is_trivially_xible): Adjust.
(is_xible): New.
* parser.c (cp_parser_primary_expression): Handle
RID_IS_ASSIGNABLE and RID_IS_CONSTRUCTIBLE.
(cp_parser_trait_expr): Likewise.
* semantics.c (trait_expr_value): Handle
CPTK_IS_ASSIGNABLE and CPTK_IS_CONSTRUCTIBLE.

testsuite/

* g++.dg/ext/80654.C: New.

libstdc++-v3/

Implement new C++ intrinsics __is_assignable and __is_constructible.
* include/std/type_traits (__do_is_static_castable_impl): Remove.
(__is_static_castable_impl, __is_static_castable_safe): Likewise.
(__is_static_castable, __do_is_direct_constructible_impl): Likewise.
(__is_direct_constructible_impl): Likewise.
(__is_direct_constructible_new_safe): Likewise.
(__is_base_to_derived_ref, __is_lvalue_to_rvalue_ref): Likewise.
(__is_direct_constructible_ref_cast): Likewise.
(__is_direct_constructible_new, __is_direct_constructible): Likewise.
(__do_is_nary_constructible_impl): Likewise.
(__is_nary_constructible_impl, __is_nary_constructible): Likewise.
(__is_constructible_impl): Likewise.
(is_constructible): Call the intrinsic.
(__is_assignable_helper): Remove.
(is_assignable): Call the intrinsic.
(is_trivially_constructible): Likewise.
(__is_trivially_copy_constructible_impl): New.
(is_trivially_copy_constructible): Use it.
(__is_trivially_move_constructible_impl): New.
(is_trivially_move_constructible): Use it.
(is_trivially_assignable): Call the intrinsic.
(__is_trivially_copy_assignable_impl): New.
(is_trivially_copy_assignable): Use it.
(__is_trivially_move_assignable_impl): New.
(is_trivially_move_assignable): Use it.
(testsuite/20_util/declval/requirements/1_neg.cc): Adjust.
(testsuite/20_util/is_trivially_copy_assignable/value.cc):
Add test for void.
(testsuite/20_util/is_trivially_copy_constructible/value.cc): Likewise.
(testsuite/20_util/is_trivially_move_assignable/value.cc): Likewise.
(testsuite/20_util/is_trivially_move_constructible/value.cc): Likewise.
(testsuite/20_util/make_signed/requirements/typedefs_neg.cc): Adjust.
(testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc):
Likewise.

From-SVN: r248153
2017-05-17 16:54:23 +03:00
Nathan Sidwell 36f4bc9ce8 cp-tree.h (ovl_iterator::using_p): New predicate.
* cp-tree.h (ovl_iterator::using_p): New predicate.
	(ovl_iterator::remove_node): New worker.
	(ovl_insert): Declare.
	* tree.c (ovl_insert): New.
	(ovl_iterator::remove_node): New.
	* class.c (add_method): Use ovl_iterator, ovl_insert.
	(clone_function_decl): Fix description.
	(clone_constructors_and_destructors): Use ovl_iterator.

From-SVN: r248151
2017-05-17 12:37:30 +00:00
Nathan Sidwell 19b476fb8d class.c (handle_using_decl): Use OVL_FIRST, ovl_iterator.
* class.c (handle_using_decl): Use OVL_FIRST, ovl_iterator.
	(maybe_warn_about_overly_private_class): Use ovl_iterator.
	(method_name_cmp, resort_method_name_cmp): Use OVL_NAME.
	(resort_type_method_vec, finish_struct_methods): Use OVL_FIRST.
	(get_base_fndecls): Use ovl_iterator.
	(warn_hidden): Use OVL_NAME, ovl_iterator.
	(add_implicitly_declared_members): Use ovl_iterator.
	* constraint.cc (normalize_template_id_expression): Use OVL_FIRST,
	flatten nested if.
	(finish_shorthand_constraint): Simplify, use ovl_make.
	* pt.c (make_constrained_auto): Simplify.  Use ovl_make.
	* search.c (shared_member_p): Use ovl_iterator.
	(lookup_field_fuzzy_info::fuzzy_lookup_fn): Use OVL_NAME.
	(lookup_conversion_operator): Use OVL_FIRST.
	(lookup_fnfiels_idx_nolazy): Use OVL_FIRST, OVL_NAME.
	(look_for_overrides_here): Use ovl_iterator.
	(lookup_conversions_r): Use OVL_FIRST, OVL_NAME, ovl_iterator.
	* typeck.c (build_x_unary_op): Use ovl_make.

From-SVN: r248144
2017-05-17 11:21:50 +00:00
Marek Polacek 142473df8e re PR sanitizer/80659 (-fsanitize=address evokes ICE in in gimplify_switch_expr)
PR sanitizer/80659
	* c-decl.c (build_compound_literal): Set DECL_ARTIFICIAL and
	DECL_IGNORED_P even for non-static compound literals.

	* gcc.dg/asan/pr80659.c: New test.

From-SVN: r248143
2017-05-17 09:59:20 +00:00
Thomas Preud'homme 26092cc782 Fix comment for cmse_nonsecure_call_clear_caller_saved
2017-05-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer
    readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and
    restoring of callee-saved registers.

From-SVN: r248142
2017-05-17 09:18:25 +00:00
Eric Botcazou d2d61a7469 compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
* compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
	* config/visium/visium.c (single_set_and_flags): Likewise.
	* config/visium/visium.md (Substitutions): Likewise.

From-SVN: r248141
2017-05-17 09:12:33 +00:00
Martin Liska 1a81741814 Introduce dump_flags_t type and use it instead of int type.
2017-05-17  Martin Liska  <mliska@suse.cz>

	* class.c (dump_class_hierarchy): Introduce dump_flags_t type and
	use it instead of int type.
	(dump_vtable): Likewise.
	(dump_vtt): Likewise.
	* decl2.c (dump_tu): Likewise.
2017-05-17  Martin Liska  <mliska@suse.cz>

	* c-common.h: Introduce dump_flags_t type and
	use it instead of int type.
	* c-gimplify.c (c_genericize): Likewise.
	* c-opts.c: Likewise.
2017-05-17  Martin Liska  <mliska@suse.cz>

	* c-decl.c (c_parse_final_cleanups): Introduce dump_flags_t type and
	use it instead of int type.
2017-05-17  Martin Liska  <mliska@suse.cz>

	* cfg.c: Introduce dump_flags_t type and
	use it instead of int type.
	* cfg.h: Likewise.
	* cfghooks.c: Likewise.
	* cfghooks.h (struct cfg_hooks): Likewise.
	* cfgrtl.c: Likewise.
	* cfgrtl.h: Likewise.
	* cgraph.c (cgraph_node::get_body): Likewise.
	* coretypes.h: Likewise.
	* domwalk.c: Likewise.
	* domwalk.h: Likewise.
	* dumpfile.c (struct dump_option_value_info): Likewise.
	(dump_enable_all): Likewise.
	(dump_switch_p_1): Likewise.
	(opt_info_switch_p): Likewise.
	* dumpfile.h (enum tree_dump_index): Likewise.
	(struct dump_file_info): Likewise.
	* genemit.c: Likewise.
	* generic-match-head.c: Likewise.
	* gengtype.c (open_base_files): Likewise.
	* gimple-pretty-print.c: Likewise.
	* gimple-pretty-print.h: Likewise.
	* graph.c (print_graph_cfg): Likewise.
	* graphite-scop-detection.c (dot_all_sese): Likewise.
	* ipa-devirt.c (build_type_inheritance_graph): Likewise.
	* loop-unroll.c (report_unroll): Likewise.
	* passes.c (pass_manager::register_one_dump_file): Likewise.
	* print-tree.c: Likewise.
	* statistics.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-cfg.h: Likewise.
	* tree-dfa.c: Likewise.
	* tree-dfa.h: Likewise.
	* tree-dump.c (dump_function): Likewise.
	* tree-dump.h (struct dump_info): Likewise.
	* tree-pretty-print.c: Likewise.
	* tree-pretty-print.h: Likewise.
	* tree-ssa-live.c: Likewise.
	* tree-ssa-live.h: Likewise.
	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
	* tree-vect-loop.c: Likewise.
	* tree-vect-slp.c: Likewise.

From-SVN: r248140
2017-05-17 09:01:36 +00:00
Marek Polacek b2fa0a8bdf Bye bye, c_save_expr.
From-SVN: r248139
2017-05-17 08:11:15 +00:00
Senthil Kumar Selvaraj 8508a5b58f Fix bogus pr78886.c failure for avr
The test fails for avr because malloc has been declared to take
an unsigned long, whereas size_t for avr is only unsigned int.

Fixed by typedef'ing __SIZE_TYPE__ to size_t and using it in the
malloc function declaration.

gcc/testsuite/

2017-05-17  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

	* gcc.dg/tree-ssa/pr78886.c: Use __SIZE_TYPE__ instead of
	unsigned long.

From-SVN: r248138
2017-05-17 05:50:37 +00:00
Chenghua Xu bc36d2b7ae reorgbug-1.c: Don't specify -O2.
2017-05-17  Chenghua Xu  <paul.hua.gm@gmail.com>

gcc/testsuite/
    * gcc.target/mips/reorgbug-1.c: Don't specify -O2.

From-SVN: r248137
2017-05-17 02:11:09 +00:00
GCC Administrator 3fbab4ea42 Daily bump.
From-SVN: r248135
2017-05-17 00:16:22 +00:00
James Greenhalgh 4fc5ebf129 re PR tree-optimization/80457 (vectorizable_condition does not update the vectorizer cost model)
[gcc]

2017-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
	    Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/80457
	* tree-vect-stmts.c (vect_model_simple_cost): Model the cost
	of all arguments to a statement as scalar_to_vec operations.
	(vectorizable_call): Adjust call to vect_model_simple_cost for
	new parameter.
	(vectorizable_conversion): Likewise.
	(vectorizable_assignment): Likewise.
	(vectorizable_shift): Likewise.
	(vectorizable_operation): Likewise.
	(vectorizable_comparison): Likewise.
	(vect_is_simple_cond): Record the def types for operands.
	(vectorizable_condition): Likewise, call vect_model_simple_cost.
	* tree-vectorizer.h (vect_model_simple_cost): Add new parameter
	for statement argument count.

[gcc/testsuite]

2017-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
	    Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/80457
	* gcc.target/powerpc/pr78604.c: Verify that vectorized COND_EXPRs
	call vect_model_simple_cost.


Co-Authored-By: Bill Schmidt <wschmidt@linux.vnet.ibm.com>

From-SVN: r248130
2017-05-16 20:18:05 +00:00
Paul Thomas bedee914ca re PR fortran/80554 ([f08] variable redefinition in submodule)
2017-05-16  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/80554
	* decl.c (build_sym): In a submodule allow overriding of host
	associated symbols from the ancestor module with a new
	declaration.

2017-05-16  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/80554
	* gfortran.dg/submodule_29.f08: New test.

From-SVN: r248129
2017-05-16 20:09:02 +00:00
David Malcolm 10791753c1 C++: fix-it hints suggesting accessors for private fields
gcc/cp/ChangeLog:
	* call.c (enforce_access): Add access_failure_info * param and use
	it to record access failures.
	* cp-tree.h (class access_failure_info): New class.
	(enforce_access): Add access_failure_info * param, defaulting to
	NULL.
	(lookup_member): Likewise.
	(locate_field_accessor): New function decl.
	(perform_or_defer_access_check): Add access_failure_info * param,
	defaulting to NULL.
	* search.c (lookup_member): Add access_failure_info * param and
	pass it on to call to perform_or_defer_access_check.
	(matches_code_and_type_p): New function.
	(field_access_p): New function.
	(direct_accessor_p): New function.
	(reference_accessor_p): New function.
	(field_accessor_p): New function.
	(struct locate_field_data): New struct.
	(dfs_locate_field_accessor_pre): New function.
	(locate_field_accessor): New function.
	* semantics.c (perform_or_defer_access_check): Add
	access_failure_info * param, and pass it on to call to
	enforce_access.
	* typeck.c (access_failure_info::record_access_failure): New method.
	(access_failure_info::maybe_suggest_accessor): New method.
	(finish_class_member_access_expr): Pass an access_failure_info
	instance to the lookup_member call, and call its
	maybe_suggest_accessor method afterwards.

gcc/testsuite/ChangeLog:
	* g++.dg/other/accessor-fixits-1.C: New test case.
	* g++.dg/other/accessor-fixits-2.C: New test case.
	* g++.dg/other/accessor-fixits-3.C: New test case.
	* g++.dg/other/accessor-fixits-4.C: New test case.

From-SVN: r248128
2017-05-16 19:52:26 +00:00
Carl Love 727577c230 rs6000-c: Add support for built-in functions vector unsigned long long vec_bperm (vector...
gcc/ChangeLog:

2017-05-16  Carl Love  <cel@us.ibm.com>

	* config/rs6000/rs6000-c: Add support for built-in functions
	vector unsigned long long vec_bperm (vector unsigned long long,
	                                     vector unsigned char)
	vector signed long long vec_mule (vector signed int,
	                                  vector signed int)
	vector unsigned long long vec_mule (vector unsigned int,
	                                    vector unsigned int)
	vector signed long long vec_mulo (vector signed int,
	                                  vector signed int)
	vector unsigned long long vec_mulo (vector unsigned int,
	                                    vector unsigned int)
	vector signed char vec_sldw (vector signed char,
	                             vector signed char,
	                             const int)
	vector unsigned char vec_sldw (vector unsigned char,
	                               vector unsigned char,
	                               const int)
	vector signed short vec_sldw (vector signed short,
	                              vector signed short,
	                              const int)
	vector unsigned short vec_sldw (vector unsigned short,
	                                vector unsigned short,
	                                const int)
	vector signed int vec_sldw (vector signed int,
	                            vector signed int,
	                            const int)
	vector unsigned int vec_sldw (vector unsigned int,
	                              vector unsigned int,
	                              const int)
	vector signed long long vec_sldw (vector signed long long,
	                                  vector signed long long,
	                                  const int)
	vector unsigned long long vec_sldw (vector unsigned long long,
	                                    vector unsigned long long,
	                                    const int)
	* config/rs6000/rs6000-c: Add support for built-in functions
	* config/rs6000/rs6000-builtin.def: Add definition for SLDW.
	* config/rs6000/altivec.h: Add defintion for vec_sldw.
	* doc/extend.texi: Update the built-in documentation for the
	new built-in functions.

gcc/testsuite/ChangeLog:

2017-05-16  Carl Love  <cel@us.ibm.com>

	* gcc.target/powerpc/builtins-3.c: New vec_mule, vec_mulo test cases.
	* gcc.target/powerpc/builtins-3-p8.c: Add tests for the new Power 8
	built-ins to the test suite file.  Note, support for mradds exists
	but no test case exists.
	* gcc.target/powerpc/builtins-3-p9.c: Add tests for the new Power 9
	built-ins to the test suite file.

From-SVN: r248125
2017-05-16 19:32:54 +00:00
Marek Polacek 6b6ae9eb9c re PR sanitizer/80536 (UBSAN: compile time segfault)
PR sanitizer/80536
	PR sanitizer/80386
	* cp-gimplify.c (cp_fold): Handle SAVE_EXPR.

	* tree.c (save_expr): Don't fold the expression.

	* c-c++-common/ubsan/pr80536.c: New test.
	* g++.dg/ubsan/pr80386.C: New test.

From-SVN: r248124
2017-05-16 19:25:04 +00:00
Nathan Sidwell c0c248220b name-lookup.c (check_local_shadow): New, broke out of ...
* name-lookup.c (check_local_shadow): New, broke out of ...
	(pushdecl_maybe_friend_1): ... here.  Call it.

From-SVN: r248123
2017-05-16 19:20:25 +00:00
Uros Bizjak b3d762eb74 * ChangeLog: Fix whitespace.
From-SVN: r248122
2017-05-16 21:11:11 +02:00
Nathan Sidwell e09ae85766 cp-tree.h (OVL_NESTED_P, [...]): New.
* cp-tree.h (OVL_NESTED_P, OVL_LOOKUP_P): New.
	(ovl_first): Move inline definition to end of file.
	(ovl_make, lookup_add): Declare.
	(get_fns, get_first_fn): Make pure.
	* tree.c (ovl_cache): New.
	(ovl_make, lookup_add): New.
	* pt.c (do_class_deduction): Don't add candidates that will be
	elided.

From-SVN: r248121
2017-05-16 18:29:36 +00:00
Nathan Sidwell a736411aca call.c (build_user_type_conversion_1): Use OVL_FIRST.
* call.c (build_user_type_conversion_1): Use OVL_FIRST.
	(print_error_for_call_faulure): Use OVL_NAME.
	(build_op_call_1): Use ovl_iterator.
	(add_candidates): Use OVL_FIRST & lkp_iterator.
	(build_op_delete_call): Use MAYBE_BASELINK_FUNCTIONS &
	lkp_iterator.
	* class.c (deduce_noexcept_on_destructors): Use ovl_iterator.
	(type_has_user_nondefault_constructor)
	in_class_defaulted_default_constructor,
	type_has_user_provided_constructor,
	type_has_user_provided_or_explicit_constructor,
	type_has_non_user_provided_default_constructor,
	vbase_has_user_provided_move_assign,
	type_has_move_constructor, type_has_move_assign,
	type_has_user_declared_move_constructor,
	type_has_user_declared_move_assign,
	type_build_ctor_call, type_build_dtor_call,
	type_requires_array_cookie, explain_non_literal_class): Likewise.
	(finish_struct): Use lkp_iterator.
	(resolve_address_of_overloaded_function): Use OVL_NAME,
	lkp_iterator.
	(note_name_declared_in_class): Use OVL_NAME.
	* cxx-pretty-print.c (pp_cxx_unqualified_id): Use OVL_FIRST.
	(pp_cxx_qualified_id, cxx_pretty_printer::id_expression)
	cxx_pretty_printer::expression): Likewise.
	* decl2.c (check_classfn): Use ovl_iterator.
	* pt.c (retrieve_specialization): Use ovl_iterator.
	* tree.c (cp_tree_equal): Use lkp_iterator.
	(type_has_nontrivial_copy_init): Use ovl_iterator.
((--This line, and those below, will be ignored--

M    cp/ChangeLog
M    cp/call.c
M    cp/class.c
M    cp/pt.c
M    cp/decl2.c
M    cp/tree.c
M    cp/cxx-pretty-print.c

From-SVN: r248120
2017-05-16 17:36:03 +00:00
Nathan Sidwell c20c3b42c3 typeck2.c (cxx_incomplete_type_diagnostic): Revert change and check is_overloaded_fn.
* typeck2.c (cxx_incomplete_type_diagnostic): Revert change and
	check is_overloaded_fn.

From-SVN: r248119
2017-05-16 16:15:47 +00:00
Tamar Christina 678d7e191d armv8_2-fp16-neon-1.c (vceqz): Fix regex.
2017-05-16  Tamar Christina  <tamar.christina@arm.com>

	* gcc.target/arm/armv8_2-fp16-neon-1.c (vceqz): Fix regex.
	* gcc.target/arm/armv8_2-fp16-neon-2.c (vceqz): Fix regex.

From-SVN: r248117
2017-05-16 15:57:28 +00:00
Uros Bizjak 05cf39adb1 i386.i386.md (*movsi_internal): Split (?rm,*y) alternative to (?r,*Yn) and (?m,*y) alternatives...
* config/i386.i386.md (*movsi_internal): Split (?rm,*y) alternative
	to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
	and (?*y,m).  Update insn attributes.

From-SVN: r248114
2017-05-16 16:55:17 +02:00
Martin Liska ef6cb4c716 Add default value for last argument of dump functions.
2017-05-16  Martin Liska  <mliska@suse.cz>

	* parser.c (cp_lexer_print_token): Add default value for flags
	argument of print_gimple_stmt, print_gimple_expr,
	print_generic_stmt and print_generic_expr.
2017-05-16  Martin Liska  <mliska@suse.cz>

	* cgraph.c (cgraph_edge::resolve_speculation): Add default value for flags
	argument of print_gimple_stmt, print_gimple_expr,
	print_generic_stmt and print_generic_expr.
	* cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
	* coretypes.h: Likewise.
	* except.c (dump_eh_tree): Likewise.
	* gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
	* gimple-pretty-print.h: Likewise.
	* gimple-ssa-backprop.c (dump_usage_prefix): Likewise.
	(backprop::push_to_worklist): Likewise.
	(backprop::pop_from_worklist): Likewise.
	(backprop::process_use): Likewise.
	(backprop::intersect_uses): Likewise.
	(note_replacement): Likewise.
	* gimple-ssa-store-merging.c (pass_store_merging::terminate_all_aliasing_chains): Likewise.
	(imm_store_chain_info::coalesce_immediate_stores): Likewise.
	(pass_store_merging::execute): Likewise.
	* gimple-ssa-strength-reduction.c (dump_candidate): Likewise.
	(ssa_base_cand_dump_callback): Likewise.
	(dump_incr_vec): Likewise.
	(replace_refs): Likewise.
	(replace_mult_candidate): Likewise.
	(create_add_on_incoming_edge): Likewise.
	(create_phi_basis): Likewise.
	(insert_initializers): Likewise.
	(all_phi_incrs_profitable): Likewise.
	(introduce_cast_before_cand): Likewise.
	(replace_one_candidate): Likewise.
	* gimplify.c (gimplify_expr): Likewise.
	* graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise.
	(set_rename): Likewise.
	(rename_uses): Likewise.
	(copy_loop_phi_nodes): Likewise.
	(add_close_phis_to_merge_points): Likewise.
	(copy_loop_close_phi_args): Likewise.
	(copy_cond_phi_args): Likewise.
	(graphite_copy_stmts_from_block): Likewise.
	(translate_pending_phi_nodes): Likewise.
	* graphite-poly.c (print_pdr): Likewise.
	(dump_gbb_cases): Likewise.
	(dump_gbb_conditions): Likewise.
	(print_scop_params): Likewise.
	* graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise.
	(build_cross_bb_scalars_use): Likewise.
	(gather_bbs::before_dom_children): Likewise.
	* hsa-dump.c (dump_hsa_immed): Likewise.
	* ipa-cp.c (print_ipcp_constant_value): Likewise.
	(get_replacement_map): Likewise.
	* ipa-inline-analysis.c (dump_condition): Likewise.
	(estimate_function_body_sizes): Likewise.
	* ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise.
	(ipa_polymorphic_call_context::get_dynamic_type): Likewise.
	* ipa-prop.c (ipa_dump_param): Likewise.
	(ipa_print_node_jump_functions_for_edge): Likewise.
	(ipa_modify_call_arguments): Likewise.
	(ipa_modify_expr): Likewise.
	(ipa_dump_param_adjustments): Likewise.
	(ipa_dump_agg_replacement_values): Likewise.
	(ipcp_modif_dom_walker::before_dom_children): Likewise.
	* ipa-pure-const.c (check_stmt): Likewise.
	(pass_nothrow::execute): Likewise.
	* ipa-split.c (execute_split_functions): Likewise.
	* omp-offload.c (dump_oacc_loop_part): Likewise.
	(dump_oacc_loop): Likewise.
	* trans-mem.c (tm_log_emit): Likewise.
	(tm_memopt_accumulate_memops): Likewise.
	(dump_tm_memopt_set): Likewise.
	(dump_tm_memopt_transform): Likewise.
	* tree-cfg.c (gimple_verify_flow_info): Likewise.
	(print_loop): Likewise.
	* tree-chkp-opt.c (chkp_print_addr): Likewise.
	(chkp_gather_checks_info): Likewise.
	(chkp_get_check_result): Likewise.
	(chkp_remove_check_if_pass): Likewise.
	(chkp_use_outer_bounds_if_possible): Likewise.
	(chkp_reduce_bounds_lifetime): Likewise.
	* tree-chkp.c (chkp_register_addr_bounds): Likewise.
	(chkp_mark_completed_bounds): Likewise.
	(chkp_register_incomplete_bounds): Likewise.
	(chkp_mark_invalid_bounds): Likewise.
	(chkp_maybe_copy_and_register_bounds): Likewise.
	(chkp_build_returned_bound): Likewise.
	(chkp_get_bound_for_parm): Likewise.
	(chkp_build_bndldx): Likewise.
	(chkp_get_bounds_by_definition): Likewise.
	(chkp_generate_extern_var_bounds): Likewise.
	(chkp_get_bounds_for_decl_addr): Likewise.
	* tree-chrec.c (chrec_apply): Likewise.
	* tree-data-ref.c (dump_data_reference): Likewise.
	(dump_subscript): Likewise.
	(dump_data_dependence_relation): Likewise.
	(analyze_overlapping_iterations): Likewise.
	* tree-inline.c (expand_call_inline): Likewise.
	(tree_function_versioning): Likewise.
	* tree-into-ssa.c (dump_defs_stack): Likewise.
	(dump_currdefs): Likewise.
	(dump_names_replaced_by): Likewise.
	(dump_update_ssa): Likewise.
	(update_ssa): Likewise.
	* tree-object-size.c (pass_object_sizes::execute): Likewise.
	* tree-parloops.c (build_new_reduction): Likewise.
	(try_create_reduction_list): Likewise.
	(ref_conflicts_with_region): Likewise.
	(oacc_entry_exit_ok_1): Likewise.
	(oacc_entry_exit_single_gang): Likewise.
	* tree-pretty-print.h: Likewise.
	* tree-scalar-evolution.c (set_scalar_evolution): Likewise.
	(get_scalar_evolution): Likewise.
	(add_to_evolution): Likewise.
	(get_loop_exit_condition): Likewise.
	(analyze_evolution_in_loop): Likewise.
	(analyze_initial_condition): Likewise.
	(analyze_scalar_evolution): Likewise.
	(instantiate_scev): Likewise.
	(number_of_latch_executions): Likewise.
	(gather_chrec_stats): Likewise.
	(final_value_replacement_loop): Likewise.
	(scev_const_prop): Likewise.
	* tree-sra.c (dump_access): Likewise.
	(disqualify_candidate): Likewise.
	(create_access): Likewise.
	(reject): Likewise.
	(maybe_add_sra_candidate): Likewise.
	(create_access_replacement): Likewise.
	(analyze_access_subtree): Likewise.
	(analyze_all_variable_accesses): Likewise.
	(sra_modify_assign): Likewise.
	(initialize_constant_pool_replacements): Likewise.
	(find_param_candidates): Likewise.
	(decide_one_param_reduction): Likewise.
	(replace_removed_params_ssa_names): Likewise.
	* tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
	* tree-ssa-copy.c (dump_copy_of): Likewise.
	(copy_prop_visit_cond_stmt): Likewise.
	* tree-ssa-dce.c (mark_operand_necessary): Likewise.
	* tree-ssa-dom.c (pass_dominator::execute): Likewise.
	(record_equivalences_from_stmt): Likewise.
	* tree-ssa-dse.c (compute_trims): Likewise.
	(delete_dead_call): Likewise.
	(delete_dead_assignment): Likewise.
	* tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise.
	(forward_propagate_into_cond): Likewise.
	(pass_forwprop::execute): Likewise.
	* tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
	* tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children): Likewise.
	(move_computations_worker): Likewise.
	(execute_sm): Likewise.
	* tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
	(remove_exits_and_undefined_stmts): Likewise.
	(remove_redundant_iv_tests): Likewise.
	* tree-ssa-loop-ivopts.c (dump_use): Likewise.
	(adjust_iv_update_pos): Likewise.
	* tree-ssa-math-opts.c (bswap_replace): Likewise.
	* tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise.
	(value_replacement): Likewise.
	* tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
	* tree-ssa-pre.c (print_pre_expr): Likewise.
	(get_representative_for): Likewise.
	(create_expression_by_pieces): Likewise.
	(insert_into_preds_of_block): Likewise.
	(eliminate_insert): Likewise.
	(eliminate_dom_walker::before_dom_children): Likewise.
	(eliminate): Likewise.
	(remove_dead_inserted_code): Likewise.
	* tree-ssa-propagate.c (substitute_and_fold): Likewise.
	* tree-ssa-reassoc.c (get_rank): Likewise.
	(eliminate_duplicate_pair): Likewise.
	(eliminate_plus_minus_pair): Likewise.
	(eliminate_not_pairs): Likewise.
	(undistribute_ops_list): Likewise.
	(eliminate_redundant_comparison): Likewise.
	(update_range_test): Likewise.
	(optimize_range_tests_var_bound): Likewise.
	(optimize_vec_cond_expr): Likewise.
	(rewrite_expr_tree): Likewise.
	(rewrite_expr_tree_parallel): Likewise.
	(linearize_expr): Likewise.
	(break_up_subtract): Likewise.
	(linearize_expr_tree): Likewise.
	(attempt_builtin_powi): Likewise.
	(attempt_builtin_copysign): Likewise.
	(transform_stmt_to_copy): Likewise.
	(transform_stmt_to_multiply): Likewise.
	(dump_ops_vector): Likewise.
	* tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise.
	(print_scc): Likewise.
	(set_ssa_val_to): Likewise.
	(visit_reference_op_store): Likewise.
	(visit_use): Likewise.
	(sccvn_dom_walker::before_dom_children): Likewise.
	(run_scc_vn): Likewise.
	* tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Likewise.
	(expr_hash_elt::print): Likewise.
	(const_and_copies::pop_to_marker): Likewise.
	(const_and_copies::record_const_or_copy_raw): Likewise.
	* tree-ssa-structalias.c (compute_dependence_clique): Likewise.
	* tree-ssa-uninit.c (collect_phi_def_edges): Likewise.
	(dump_predicates): Likewise.
	(find_uninit_use): Likewise.
	(warn_uninitialized_phi): Likewise.
	(pass_late_warn_uninitialized::execute): Likewise.
	* tree-ssa.c (verify_vssa): Likewise.
	(verify_ssa): Likewise.
	(maybe_optimize_var): Likewise.
	* tree-vrp.c (dump_value_range): Likewise.
	(dump_all_value_ranges): Likewise.
	(dump_asserts_for): Likewise.
	(register_edge_assert_for_2): Likewise.
	(vrp_visit_cond_stmt): Likewise.
	(vrp_visit_switch_stmt): Likewise.
	(vrp_visit_stmt): Likewise.
	(vrp_visit_phi_node): Likewise.
	(simplify_cond_using_ranges_1): Likewise.
	(fold_predicate_in): Likewise.
	(evrp_dom_walker::before_dom_children): Likewise.
	(evrp_dom_walker::push_value_range): Likewise.
	(evrp_dom_walker::pop_value_range): Likewise.
	(execute_early_vrp): Likewise.

From-SVN: r248113
2017-05-16 14:51:02 +00:00
Nathan Sidwell 3f267553fc cp-tree.h (class ovl_iterator, [...]): New OVERLOAD iterators.
* cp-tree.h (class ovl_iterator, class lkp_iterator): New OVERLOAD
	iterators.
	(MAYBE_BASELINK_FUNCTIONS): New.
	* constraint.cc	(resolve_constraint_check): Use lkp_iterator.
	* decl2.c (maybe_warn_sized_delete): Use ovl_iterator.
	* lambda.c (maybe_generic_this_capture): Use lkp_iterator.
	* method.c (inherited_ctor_binfo): Use ovl_iterator.
	(binfo_inherited_from): Likewise.
	* parser.c (lookup_literal_operator): Use lkp_iterator.
	* pt.c (iterative_hash_template_arg): Use lkp_iterator.
	(print_candidates_1): Likewise.
	(determine_specialization): Likewise.
	(resolve_overloaded_unification): Likewise.
	(resolve_nondeduced_context): Likewise.
	(type_dependent_expression_p): Likewise.
	(dependent_template_p): Likewise.
	* ptree.c (cxx_print_xnode): Likewise.
	* semantics.c (omp_reduction_lookup): Use lkp_iterator.
	(classtype_has_nothrow_assign_or_copy_p): Use ovl_iterator.
	* typeck.c (check_template_keyword): Use lkp_iterator.

From-SVN: r248112
2017-05-16 14:46:30 +00:00
Jonathan Wakely 058c785479 Test source_location::current() in default member initializer
* testsuite/experimental/source_location/1.cc: Change expected result
	for source_location::current() used in default member initializer.

From-SVN: r248111
2017-05-16 15:26:14 +01:00
Jonathan Wakely 2673bae9d2 Implement std::experimental::source_location (N4519)
* configure: Regenerate.
	* doc/xml/manual/status_cxx2017.xml: Update status table.
	* doc/html/*: Regenerate.
	* include/Makefile.am: Add new header.
	* include/Makefile.in: Regenerate.
	* include/experimental/source_location: New header implementing N4519.
	* testsuite/experimental/source_location/1.cc: New test.

From-SVN: r248110
2017-05-16 14:37:52 +01:00
Jonathan Wakely 423624979a Fix forward declaration of std::type_info for versioned-namespace
PR libstdc++/80285
	* include/bits/shared_ptr_base.h [!__cpp_rtti] (type_info): Declare
	outside versioned namespace.

From-SVN: r248109
2017-05-16 14:16:34 +01:00
Nathan Sidwell 848bf88da8 cp-tree.h (OVL_FIRST, OVL_NAME): New.
* cp-tree.h (OVL_FIRST, OVL_NAME): New.
	(ovl_first): New.
	* constexpr.c (function_concept_check): Use OVL_FIRST.
	* cvt.c (build_expr_type_conversion): Likewise.
	* decl.c (poplevel, grokdeclarator): Use OVL_NAME.
	* decl2.c (mark_used): Use OVL_FIRST.
	* error.c (dump_decl): Use OVL_FIRST, OVL_NAME.
	(dump_expr, location_of): Use OVL_FIRST.
	* friend.c (do_friend): Use OVL_NAME.
	* init.c (build_offset_ref): Use OVL_FIRST.
	* mangle.c (write_member_name): Likewise.
	(write_expression): Use OVL_NAME.
	* method.c (strip_inheriting_ctors): Use OVL_FIRST.
	* name-lookup.c (pushdecl_class_level): Use OVL_NAME.
	* pt.c (check_explicit_specialization): Use OVL_FIRST.
	(check_template_shadow): Likewise.
	(tsubst_template_args): Use OVL_NAME.
	(tsubst_baselink): Use OVL_FIRST.
	* semantics.c (perform_koenig_lookup): Use OVL_NAME.
	* tree.c (get_first_fn): Use OVL_FIRST.
	* typeck.c (finish_class_member_access_expr): Use OVL_NAME.
	(cp_build_addr_expr_1): Use OVL_FIRST.

From-SVN: r248108
2017-05-16 13:15:53 +00:00
Jonathan Wakely ba1a69079f Regenerate libstdc++-v3/configure for versioned-namespace soname
* configure: Regenerate.

From-SVN: r248107
2017-05-16 14:12:16 +01:00
Nathan Sidwell 1f0ed17c4e pt.c (tsubst_copy_and_build): Remove unnecessary COMPONENT_REF peeking.
* pt.c (tsubst_copy_and_build): Remove unnecessary COMPONENT_REF
	peeking.
	* semantics.c (finish_id_expression): Directly init local var.
	(finish_omp_reduction_clause): Use really_overloaded_fn.
	* tree.c (get_fns): Document.  Assert we got an overload.
	(get_first_fn) Document.
	* typeck.c (cp_build_addr_expr_1): Pass arg directly to
	really_overloaded_fn.
	* typeck2.c (cxx_inomplete_type_diagnostic): Use get_first_fn directly.

From-SVN: r248106
2017-05-16 13:12:01 +00:00
Marc Glisse 2c27a627a3 optional (_Optional_base::_M_get): Check precondition.
2017-05-16  Marc Glisse  <marc.glisse@inria.fr>

	* include/std/optional (_Optional_base::_M_get): Check precondition.
	* testsuite/20_util/optional/cons/value_neg.cc: Update line numbers.

From-SVN: r248099
2017-05-16 12:54:16 +00:00
Nathan Sidwell 322763f5df cp-tree.h (SCOPE_DEPTH): New.
* cp-tree.h (SCOPE_DEPTH): New.
	* name-lookup.h (is_nested_namespace): Declare.
	* name-lookup.c (is_nested_namespace): New.
	(is_ancestor): Use it.
	(set_decl_namespace): Likewise.
	(push_namespace): Set SCOPE_DEPTH.
	* pt.c (check_specialization_namespace): Use is_nested_namespace.
	(check_unqualigied_spec_or_inst): Likewise.

From-SVN: r248095
2017-05-16 11:32:40 +00:00
Richard Biener 51f01fc387 dwarf2out.c (loc_list_from_tree_1): Do not create DW_OP_GNU_variable_value for DECL_IGNORED_P decls.
2017-05-16  Richard Biener  <rguenther@suse.de>

	* dwarf2out.c (loc_list_from_tree_1): Do not create
	DW_OP_GNU_variable_value for DECL_IGNORED_P decls.

From-SVN: r248094
2017-05-16 11:00:59 +00:00
Richard Biener 3a06a61019 dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE just generated.
2017-05-16  Richard Biener  <rguenther@suse.de>

	* dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE
	just generated.
	(note_variable_value_in_expr): If we resolved the decl ref
	do not push to the stack.

From-SVN: r248093
2017-05-16 10:58:54 +00:00
Jonathan Wakely 5f54ae00d0 Add cross-reference for test permutations in libstdc++ manual
* doc/xml/manual/appendix_contributing.xml: Link to test docs and
	note higher DejaGnu version requirement.
	* doc/html/*: Regenerate.

From-SVN: r248092
2017-05-16 11:37:22 +01:00
Jonathan Wakely ad2b8b37ec Add cross-reference for BADNAMES in libstdc++ manual
* doc/xml/manual/appendix_contributing.xml: Link to the list of bad
	identifiers.
	* doc/html/*: Regenerate.

From-SVN: r248091
2017-05-16 10:46:21 +01:00
Matthew Wahab 6da3785703 Committed on behalf of Matthew Wahab
gcc/
2017-05-16  Matthew Wahab  <matthew.wahab@arm.com>

	* config/arm/arm_neon.h (vadd_f16): Use standard arithmetic
	operations in fast-math mode.
	(vaddq_f16): Likewise.
	(vmul_f16): Likewise.
	(vmulq_f16): Likewise.
	(vsub_f16): Likewise.
	(vsubq_f16): Likewise.
	* config/arm/neon.md (add<mode>3): New.
	(sub<mode>3): New.
	(fma:<VH:mode>3): New.  Also remove outdated comment.
	(mul<mode>3): New.

testsuite/
2017-05-16  Matthew Wahab  <matthew.wahab@arm.com>

	* gcc.target/arm/armv8_2-fp16-arith-1.c: Expand comment.  Update
	expected output of vadd, vsub and vmul instructions.
	* gcc.target/arm/armv8_2-fp16-arith-2.c: New.
	* gcc.target/arm/armv8_2-fp16-neon-2.c: New.
	* gcc.target/arm/armv8_2-fp16-neon-3.c: New.

From-SVN: r248090
2017-05-16 09:23:42 +00:00