PR c++/52906
	* decl.c (check_tag_decl): Don't complain about attributes if we
	don't even have a type.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@186435 138bc75d-0d04-0410-961f-82ee72b054a4
	PR c++/52824
	* pt.c (any_pack_expanson_args_p): New.
	(coerce_template_parms): Use it.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@186436 138bc75d-0d04-0410-961f-82ee72b054a4
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@186443 138bc75d-0d04-0410-961f-82ee72b054a4
Merge remote-tracking branch 'origin/gcc-4_7-branch' into hjl/x32/gcc-4_7-branch
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@186459 138bc75d-0d04-0410-961f-82ee72b054a4
2012-04-14  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/52699
	* include/bits/random.tcc (independent_bits_engine<>::operator()())
	Avoid various overflows; use common_type on result_type and
	_RandomNumberEngine::result_type; avoid floating point computations;
	other smaller tweaks.

	* include/bits/random.tcc (uniform_int_distribution<>::operator())
	Use common_type; assume _UniformRandomNumberGenerator::result_type
	unsigned; tidy.

	* include/bits/stl_algobase.h (__lg(unsigned), __lg(unsigned long),
	__lg(unsigned long long)): Add.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@186461 138bc75d-0d04-0410-961f-82ee72b054a4
2012-04-15  Fabien Chêne  <fabien@gcc.gnu.org>

    PR c++/52465
    * g++.dg/lookup/using52.C: New.

gcc/cp/ChangeLog

2012-04-15  Fabien Chêne  <fabien@gcc.gnu.org>

    PR c++/52465
    * parser.c (cp_parser_class_name): Call strip_using_decl and
    return the target decl.
    * name-lookup.c (strip_using_decl): Returns NULL_TREE if the decl
    to be stripped is NULL_TREE.
    (qualify_lookup): Call strip_using_decl and perform some checks on
    the target decl.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@186473 138bc75d-0d04-0410-961f-82ee72b054a4
Merge remote-tracking branch 'origin/gcc-4_7-branch' into hjl/x32/gcc-4_7-branch
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@186477 138bc75d-0d04-0410-961f-82ee72b054a4
	PR c++/52292
	PR c++/52380
	* pt.c (coerce_template_parms): Even if we aren't converting we
	want to expand argument packs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@186481 138bc75d-0d04-0410-961f-82ee72b054a4
2012-04-16  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/52939
	* gimple-fold.c (gimple_get_virt_method_for_binfo): Bail out if
	fold_ctor_reference returns a zero constant.

	* testsuite/g++.dg/ipa/pr52939.C: New test.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@186489 138bc75d-0d04-0410-961f-82ee72b054a4
2012-04-16  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2012-04-12  Uros Bizjak  <ubizjak@gmail.com>

	PR target/52932
	* config/i386/avx2intrin.h (_mm256_permutevar8x32_ps): Change second
	argument type to __m256i.  Update call to __builtin_ia32_permvarsf256.
	* config/i386/sse.md (avx2_permvarv8sf): Change operand 1 to V8SI.
	(avx2_permvarv8sf, avx2_permvarv8si): Switch operands 1 and 2.
	* config/i386/i386.c (bdesc_args) <__builtin_ia32_permvarsf256>:
	Update builtin type to V8SF_FTYPE_V8SF_V8SI.
	(ix86_expand_vec_perm): Update calls to gen_avx2_permvarv8si and
	gen_avx2_permvarv8sf.

testsuite/ChangeLog:

2012-04-16  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2012-04-12  Uros Bizjak  <ubizjak@gmail.com>

	PR target/52932
	* gcc.target/i386/avx2-vpermps-1.c (avx2_test): Use __m256i type for
	second function argument.
	* gcc.target/i386/avx2-vpermps-2.c (init_permps): Update declaration.
	(calc_permps): Update declaration.  Calculate result correctly.
	(avx2_test): Change src2 type to union256i_d.
	* gcc.target/i386/avx2-vpermd-2.c (calc_permd): Calculate result
	correctly.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@186500 138bc75d-0d04-0410-961f-82ee72b054a4
2012-04-16  Benjamin Kosnik  <bkoz@redhat.com>

	    * include/ext/pb_ds/detail/pat_trie_/
	    constructors_destructor_fn_imps.hpp: Increment after recursion.
	    * include/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp: Convert
	    node_type markup from brief.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@186510 138bc75d-0d04-0410-961f-82ee72b054a4
compiler: fix infinite recursion in string constant evaluation.

Fixes compilation of incorrect code:
    const f, g = g, f
    func S() []byte { return []byte(f) }

The problem was already handled for numerical constants.

Part of issue 3186 (go).


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@186512 138bc75d-0d04-0410-961f-82ee72b054a4
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@186515 138bc75d-0d04-0410-961f-82ee72b054a4
2012-04-16  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	PR bootstrap/52840
	* src/Makefile.am (build-debug): Do not adjust vpath dir, remove
	Makefile.tmp
	* src/Makefile.in: Adjust as per above.

2012-04-16  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/52689
	* libsupc++/Makefile.am (LTCXXCOMPILE, CXXLINK): Tweak.
	* libsupc++/Makefile.in: Regenerated.
	* src/Makefile.am (LTCXXCOMPILE, CXXLINK): Tweak.
	(libstdc___la_SOURCES): Add in compatiblity files, with content
	that varies with -DPIC.
	* src/Makefile.in: Regenerated.
	* src/c++11/Makefile.am (LTCXXCOMPILE, CXXLINK): Tweak.
	* src/c++11/Makefile.in: Regenerated.
	* src/c++11/compatibility-atomic-c++0x.cc: Guard with PIC.
	* src/c++11/compatibility-c++0x.cc: Same.
	* src/c++11/future.cc: Consolidate compatibility bits into..
	* src/c++11/mutex.cc: Consolidate compatibility bits into..
	* src/c++11/compatibility-thread-cxx0x.cc: ...here. New.
	* src/c++98/Makefile.am (LTCXXCOMPILE, CXXLINK): Tweak.
	* src/c++98/Makefile.in: Regenerated.
	* src/c++98/compatibility-list-2.cc: Guard with PIC.
	* src/c++98/compatibility.cc: Tweak comments.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@186517 138bc75d-0d04-0410-961f-82ee72b054a4
	PR c++/50303
	* pt.c (tsubst_pack_expansion): Use tsubst_expr for template
	template parameters.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@186531 138bc75d-0d04-0410-961f-82ee72b054a4
	PR c++/50830
	* pt.c (convert_template_argument): Handle template template
	argument packs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@186532 138bc75d-0d04-0410-961f-82ee72b054a4
	PR c++/38543
	* pt.c (determine_specialization): Instead of comparing the number
	of parms, check that tsubst gives the right answer.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@186533 138bc75d-0d04-0410-961f-82ee72b054a4
	PR target/53020
	* config/i386/sync.md (atomic_<code><mode>): Rename to
	atomic_<logic><mode>.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@186543 138bc75d-0d04-0410-961f-82ee72b054a4