Implement C++11 inheriting constructors.
	* cp-tree.h (cpp0x_warn_str): Add CPP0X_INHERITING_CTORS.
	(DECL_INHERITED_CTOR_BASE, SET_DECL_INHERITED_CTOR_BASE): New.
	(special_function_kind): Add sfk_inheriting_constructor.
	* class.c (add_method): An inheriting ctor is hidden by a
	user-declared one.
	(one_inheriting_sig, one_inherited_ctor): New.
	(add_implicitly_declared_members): Handle inheriting ctors.
	* error.c (maybe_warn_cpp0x): Handle CPP0X_INHERITING_CTORS.
	* init.c (emit_mem_initializers): Don't set LOOKUP_DEFAULTED
	for an inheriting constructor.
	* method.c (type_has_trivial_fn): Handle sfk_inheriting_constructor.
	(type_set_nontrivial_flag): Likewise.
	(add_one_base_init): Split out from...
	(do_build_copy_constructor): ...here.  Handle inheriting constructors.
	(locate_fn_flags): Handle a list of arg types.
	(synthesized_method_walk): Handle inheriting constructors.
	(maybe_explain_implicit_delete): Likewise.
	(deduce_inheriting_ctor): New.
	(implicitly_declare_fn): Handle inheriting constructors.
	* name-lookup.c (push_class_level_binding_1): An inheriting constructor
	does not declare the base's name.
	(do_class_using_decl): Allow inheriting constructors.
	* pt.c (template_parms_to_args): Split from current_template_args.
	(add_inherited_template_parms): New.
	(tsubst_decl): Handle inheriting constructors.
	* tree.c (special_function_p): Handle inheriting constructors.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192448 138bc75d-0d04-0410-961f-82ee72b054a4
	PR target/54908
	* libsupc++/atexit_thread.cc: Rewrite to keep the cleanup list
	with get/setspecific.  Destroy the key on dlclose.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192449 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-15  Richard Guenther  <rguenther@suse.de>

	* tree-streamer-out.c (streamer_pack_tree_bitfields): Back
	BINFO_BASE_ACCESSES and CONSTRUCTOR lengths here.
	(streamer_write_chain): Write TREE_CHAIN as null-terminated list.
	(write_ts_exp_tree_pointers): Adjust.
	(write_ts_binfo_tree_pointers): Likewise.
	(write_ts_constructor_tree_pointers): Likewise.
	* tree-streamer-in.c (streamer_read_chain): Read TREE_CHAIN as
	null-terminated list.
	(unpack_value_fields): Unpack BINFO_BASE_ACCESSES and
	CONSTRUCTOR lengths and materialize the arrays.
	(lto_input_ts_exp_tree_pointers): Adjust.
	(lto_input_ts_binfo_tree_pointers): Likewise.
	(lto_input_ts_constructor_tree_pointers): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192451 138bc75d-0d04-0410-961f-82ee72b054a4
	* expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Do not unnecessarily
	copy the object in the MEM_P case.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192452 138bc75d-0d04-0410-961f-82ee72b054a4
	* web.c (union_match_dups): Properly handle OP_INOUT match_dups.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192453 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-15  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/54920
	* tree-ssa-pre.c (create_expression_by_pieces): Properly
	allocate temporary storage for all NARY elements.

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


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


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192456 138bc75d-0d04-0410-961f-82ee72b054a4
	* genoutput.c (process_template): Process '*' in '@' alternatives.
	* doc/md.texi (node Output Statement): Provide example for the above.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192457 138bc75d-0d04-0410-961f-82ee72b054a4
	    * config/gthr.m4: New. Define GCC_AC_THREAD_HEADER.
	    * libgcc/configure: Regenerate.
	    * libgcc/configure.ac: Replace code with GCC_AC_THREAD_HEADER use.
	    * libstdc++-v3/Makefile.in: Regenerate.
	    * libstdc++-v3/acinclude.m4: Replace code with GCC_AC_THREAD_HEADER use.
	    * libstdc++-v3/configure: Regenerate.
	    * libstdc++-v3/doc/Makefile.in: Regenerate.
	    * libstdc++-v3/include/Makefile.am: Regenerate.
	    * libstdc++-v3/include/Makefile.in: Rename variable.
	    * libstdc++-v3/libsupc++/Makefile.in: Regenerate.
	    * libstdc++-v3/po/Makefile.in: Regenerate.
	    * libstdc++-v3/python/Makefile.in: Regenerate.
	    * libstdc++-v3/src/Makefile.in: Regenerate.
	    * libstdc++-v3/src/c++11/Makefile.in: Regenerate.
	    * libstdc++-v3/src/c++98/Makefile.in: Regenerate.
	    * libstdc++-v3/testsuite/Makefile.in: Regenerate.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192458 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-15  Richard Biener  <rguenther@suse.de>

	* data-streamer.h (bp_pack_string_with_length): New function.
	(bp_pack_string): Likewise.
	(bp_unpack_indexed_string): Likewise.
	(bp_unpack_string): Likewise.
	* data-streamer-out.c (bp_pack_string_with_length): Likewise.
	(bp_pack_string): Likewise.
	* data-streamer-in.c (bp_unpack_indexed_string): Likewise.
	(bp_unpack_string): Likewise.
	* tree-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
	Pack TRANSLATION_UNIT_LANGUAGE here, not ...
	(write_ts_translation_unit_decl_tree_pointers): ... here.  Remove.
	(streamer_pack_tree_bitfields): Adjust.
	(streamer_write_tree_body): Likewise.
	* tree-streamer-in.c (unpack_ts_translation_unit_decl_value_fields):
	Unpack TRANSLATION_UNIT_LANGUAGE here, not ...
	(lto_input_ts_translation_unit_decl_tree_pointers): ... here.  Remove.
	(unpack_value_fields): Adjust.
	(streamer_read_tree_body): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192460 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-15  Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/54915

gcc/
	* tree-ssa-forwprop.c (simplify_vector_constructor): Check
	argument's type.

gcc/testsuite/
	* gcc.dg/tree-ssa/pr54915.c: New testcase.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192461 138bc75d-0d04-0410-961f-82ee72b054a4
Cleanup comments in alias.c

While reading alias.c, it seemed to me that some comments could use
some cleanups.

gcc/

	* alias.c: Cleanup comments.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192463 138bc75d-0d04-0410-961f-82ee72b054a4
/cp
2012-10-15  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50080
	* parser.c (cp_parser_optional_template_keyword): Implement
	Core/468, allow outside template.

/testsuite
2012-10-15  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50080
	* g++.dg/parse/tmpl-outside2.C: New.
	* g++.dg/parse/tmpl-outside1.C: Adjust.
	* g++.dg/template/qualttp18.C: Likewise.
	* g++.old-deja/g++.pt/memtemp87.C: Likewise.
	* g++.old-deja/g++.pt/overload13.C: Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192465 138bc75d-0d04-0410-961f-82ee72b054a4
	* config/i386/sse.md (UNSPEC_MOVU): Remove.
	(UNSPEC_LOADU): New.
	(UNSPEC_STOREU): Ditto.
	(<sse>_movu<ssemodesuffix><avxsizesuffix>): Split to ...
	(<sse>_loadu<ssemodesuffix><avxsizesuffix>): ... this and ...
	(<sse>_storeu<ssemodesuffix><avxsizesuffix>) ... this.
	(<sse2>_movdqu<avxsizesuffix>): Split to ...
	(<sse2>_loaddqu<avxsizesuffix>): ... this and ...
	(<sse2>_storedqu<avxsizesuffix>): ... this.
	(*sse4_2_pcmpestr_unaligned): Update.
	(*sse4_2_pcmpistr_unaligned): Ditto.

	* config/i386/i386.c (ix86_avx256_split_vector_move_misalign): Use
	gen_avx_load{dqu,ups,upd}256 to load from unaligned memory and
	gen_avx_store{dqu,ups,upd}256 to store to unaligned memory.
	(ix86_expand_vector_move_misalign): Use gen_sse_loadups or
	gen_sse2_load{dqu,upd} to load from unaligned memory and
	gen_sse_loadups or gen_sse2_store{dqu,upd}256 to store to
	unaligned memory.
	(struct builtin_description bdesc_spec) <IX86_BUILTIN_LOADUPS>:
	Use CODE_FOR_sse_loadups.
	<IX86_BUILTIN_LOADUPD>: Use CODE_FOR_sse2_loadupd.
	<IX86_BUILTIN_LOADDQU>: Use CODE_FOR_sse2_loaddqu.
	<IX86_BUILTIN_STOREUPS>: Use CODE_FOR_sse_storeups.
	<IX86_BUILTIN_STOREUPD>: Use CODE_FOR_sse2_storeupd.
	<IX86_BUILTIN_STOREDQU>: Use CODE_FOR_sse2_storedqu.
	<IX86_BUILTIN_LOADUPS256>: Use CODE_FOR_avx_loadups256.
	<IX86_BUILTIN_LOADUPD256>: Use CODE_FOR_avx_loadupd256.
	<IX86_BUILTIN_LOADDQU256>: Use CODE_FOR_avx_loaddqu256.
	<IX86_BUILTIN_STOREUPS256>: Use CODE_FOR_avx_storeups256.
	<IX86_BUILTIN_STOREUPD256>: Use CODE_FOR_avx_storeupd256.
	<IX86_BUILTIN_STOREDQU256>: Use CODE_FOR_avx_storedqu256.

testsuite/ChangeLog:

	* gcc.target/i386/avx256-unaligned-load-1.c: Update asm scan patterns.
	* gcc.target/i386/avx256-unaligned-load-2.c: Ditto.
	* gcc.target/i386/avx256-unaligned-load-3.c: Ditto.
	* gcc.target/i386/avx256-unaligned-load-4.c: Ditto.
	* gcc.target/i386/avx256-unaligned-store-1.c: Ditto.
	* gcc.target/i386/avx256-unaligned-store-2.c: Ditto.
	* gcc.target/i386/avx256-unaligned-store-3.c: Ditto.
	* gcc.target/i386/avx256-unaligned-store-4.c: Ditto.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192468 138bc75d-0d04-0410-961f-82ee72b054a4
	* testsuite/ChangeLog: Missing from my previous commit.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192469 138bc75d-0d04-0410-961f-82ee72b054a4
/cp
2012-10-15  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50080 (again)
	* parser.c (cp_parser_optional_template_keyword): When -pedantic
	and C++98 mode restore pre-Core/468 behavior.

/testsuite
2012-10-15  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50080 (again)
	* g++.dg/parse/tmpl-outside2.C: Tweak, error in C++98.
	* g++.dg/parse/tmpl-outside1.C: Likewise.
	* g++.dg/template/qualttp18.C: Likewise.
	* g++.old-deja/g++.pt/memtemp87.C: Likewise.
	* g++.old-deja/g++.pt/overload13.C: Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192470 138bc75d-0d04-0410-961f-82ee72b054a4
/cp
2012-10-15  Alexandre Oliva  <aoliva@redhat.com>
	    Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/17805
	* call.c (build_new_op): Filter out operator functions that don't
	satisfy enum-conversion match requirements.

/testsuite
2012-10-15  Alexandre Oliva  <aoliva@redhat.com>
	    Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/17805
	* g++.dg/overload/operator6.C: New.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192471 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-15  Paolo Carlini  <paolo.carlini@oracle.com>

	* Fix typo in ChangeLog entry.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192472 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/testsuite/
	* g++.dg/tls/thread_local-cse.C: Move dg-do line.
	* g++.dg/tls/thread_local-wrap4.C: Require fpic.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192473 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-15  Tobias Burnus  <burnus@net-b.de>

        * files.c (read_file_guts, _cpp_save_file_entries): Free memory
        before returning.
        * lex.c (warn_about_normalization): Ditto.
        * mkdeps.c (deps_save): Ditto.
        * pch.c (cpp_valid_state): Ditto.



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