Use translation-unit-global rather than parameter-list-local counter for generic type names to facilitate nested implicit function templates.

	* parser.c (make_generic_type_name): Use global count rather than
	parameter and ...
	(add_implicit_template_parms): ... propagate interface change here.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202847 138bc75d-0d04-0410-961f-82ee72b054a4
Support nested generic lambdas.

	* lambda.c (maybe_add_lambda_conv_op): Don't check for instantiated
	callop in the case of generic lambdas.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202848 138bc75d-0d04-0410-961f-82ee72b054a4
Generate more intuitive name for 'auto' parameters.

	* parser.c (make_generic_type_name): Spell generic type names '<autoN>'
	rather than '__GenN'.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202849 138bc75d-0d04-0410-961f-82ee72b054a4
Fix instantiation of implicit function template forward declarations.

	* parser.c (cp_parser_init_declarator): Defer calling
	finish_fully_implicit_template for forward declarations until after
	other decl processing is complete.  Cleanup for clarity: Extract 'else'
	case after 'if' containing unconditional return.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202850 138bc75d-0d04-0410-961f-82ee72b054a4
Fix 58500.

gcc/cp/
	PR c++/58500
	* type-utils.h (find_type_usage): Only traverse one type level into
	member function pointers.

gcc/testsuite/
	PR c++/58500
	* g++.dg/cpp1y/pr58500.C: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202851 138bc75d-0d04-0410-961f-82ee72b054a4
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202854 138bc75d-0d04-0410-961f-82ee72b054a4
2013-09-24  Tim Shen  <timshen91@gmail.com>

	* include/Makefile.am: Add regex.tcc.
	* include/Makefile.in: Regenerate.
	* include/bits/regex.h: Remove definitions to regex.tcc.
	* include/bits/regex.tcc: New.
	(match_results::format, regex_replace): Implement;
	* include/bits/regex_compiler.h: Move _M_flags to the top of class
	member list, because other members' initialization depend on it.
	* include/bits/regex_compiler.tcc
	(_Compiler<>::_Compiler): Adjust member initializations.
	(_Compiler<>::_M_quantifier): Fix ungreedy interval quantifier.
	* include/bits/regex_executor.h: Remove _RegexT from _*Executor classes.
	In the future, all regex classes may refactor to *Impl style.
	* include/bits/regex_executor.tcc (_Executor::_M_set_results):
	Merge identical code from _*Executor classes.
	* testsuite/28_regex/algorithms/regex_match/extended/
	string_dispatch_01.cc (fake_match<>): Adjust the hacking-style testcase
	caller for new __get_executors interface.
	* testsuite/28_regex/algorithms/regex_replace/char/basic_replace.cc:
	New.
	* testsuite/28_regex/match_results/format.cc: New.
	* testsuite/28_regex/traits/char/lookup_collatename.cc: Remove digraph
	testcase.
	* testsuite/28_regex/traits/wchar_t/lookup_collatename.cc: Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202858 138bc75d-0d04-0410-961f-82ee72b054a4
0;261;0c2013-09-23  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_vector_reload): Delete, combine
	reload helper function arrays into a single array reg_addr.
	(reload_fpr_gpr): Likewise.
	(reload_gpr_vsx): Likewise.
	(reload_vsx_gpr): Likewise.
	(struct rs6000_reg_addr): Likewise.
	(reg_addr): Likewise.
	(rs6000_debug_reg_global): Change rs6000_vector_reload,
	reload_fpr_gpr, reload_gpr_vsx, reload_vsx_gpr uses to reg_addr.
	(rs6000_init_hard_regno_mode_ok): Likewise.
	(rs6000_secondary_reload_direct_move): Likewise.
	(rs6000_secondary_reload): Likewise.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202859 138bc75d-0d04-0410-961f-82ee72b054a4
2013-09-24  Yvan Roux  <yvan.roux@linaro.org>

	* gcc.target/arm/atomic-comp-swap-release-acquire.c: Adjust expected 
	output.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202860 138bc75d-0d04-0410-961f-82ee72b054a4
2013-09-24  Marc Glisse  <marc.glisse@inria.fr>

	PR libstdc++/58338
	PR libstdc++/56166
	* include/bits/basic_string.h (basic_string)
	[basic_string(basic_string&&)]: Make the noexcept conditional.
	[operator=(basic_string&&), assign(basic_string&&)]: Link to PR 58265.
	[begin(), end(), rbegin(), rend(), clear]: Remove noexcept.
	[pop_back]: Comment on the lack of noexcept.
	* include/debug/string (basic_string) [basic_string(const _Allocator&),
	basic_string(basic_string&&), begin(), end(), rbegin(), rend(), clear,
	operator[](size_type), pop_back]: Comment out noexcept, until vstring
	replaces basic_string.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202861 138bc75d-0d04-0410-961f-82ee72b054a4
2013-09-24  Richard Biener  <rguenther@suse.de>

	* tree-vrp.c (vrp_finalize): Check for SSA name presence.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202863 138bc75d-0d04-0410-961f-82ee72b054a4
2013-09-24  Richard Biener  <rguenther@suse.de>

	PR middle-end/58513
	* tree.c (reference_alias_ptr_type): Move ...
	* alias.c (reference_alias_ptr_type): ... here and implement
	in terms of the new reference_alias_ptr_type_1.
	(ref_all_alias_ptr_type_p): New helper.
	(get_deref_alias_set_1): Drop flag_strict_aliasing here,
	use ref_all_alias_ptr_type_p.
	(get_deref_alias_set): Add flag_strict_aliasing check here.
	(reference_alias_ptr_type_1): New function, split out from ...
	(get_alias_set): ... here.
	(alias_ptr_types_compatible_p): New function.
	* alias.h (reference_alias_ptr_type): Declare.
	(alias_ptr_types_compatible_p): Likewise.
	* tree.h (reference_alias_ptr_type): Remove.
	* fold-const.c (operand_equal_p): Use alias_ptr_types_compatible_p
	to compare MEM_REF alias types.

	* g++.dg/vect/pr58513.cc: New testcase.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202865 138bc75d-0d04-0410-961f-82ee72b054a4
	PR middle-end/57134
	PR middle-end/57586
	* stmt.c (expand_asm_operands): Call expand_expr with
	EXPAND_MEMORY for output operands that disallow regs.  Don't
	use EXPAND_WRITE on inout operands.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202866 138bc75d-0d04-0410-961f-82ee72b054a4