Commit Graph

113476 Commits

Author SHA1 Message Date
Michael Matz
47598145be gengtype.c (write_field_root): Avoid out-of-scope access of newv.
* gengtype.c (write_field_root): Avoid out-of-scope access of newv.

	* tree-stdarg.c (execute_optimize_stdarg): Accept clobbers.

	* tree.h (TREE_CLOBBER_P): New macro.
	* gimple.h (gimple_clobber_p): New inline function.
	* gimplify.c (gimplify_bind_expr): Add clobbers for all variables
	that go out of scope and live in memory.
	* tree-ssa-operands.c (get_expr_operands): Transfer volatility also
	for constructors.
	* cfgexpand.c (decl_to_stack_part): New static variable.
	(add_stack_var): Allocate it, and remember mapping.
	(fini_vars_expansion): Deallocate it.
	(stack_var_conflict_p): Add early outs.
	(visit_op, visit_conflict, add_scope_conflicts_1,
	add_scope_conflicts): New static functions.
	(expand_used_vars_for_block): Don't call add_stack_var_conflict, tidy.
	(expand_used_vars): Add scope conflicts.
	(expand_gimple_stmt_1): Expand clobbers to nothing.
	(expand_debug_expr): Ditto.

	* tree-pretty-print.c (dump_generic_node): Dump clobbers nicely.
	* tree-ssa-live.c (remove_unused_locals): Remove clobbers that
	refer to otherwise unused locals.
	* tree-sra.c (build_accesses_from_assign): Ignore clobbers.
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Clobbers of
	SSA names aren't necessary.
	(propagate_necessity): Accept and ignore constructors on the rhs,
	tidy.
	* gimple.c (walk_gimple_op): Accept constructors like mem_rhs.
	* tree-ssa-structalias.c (find_func_aliases): Clobbers don't store
	any known value.
	* tree-ssa-sccvn.c (vn_reference_lookup_3): Ditto, in particular they
	don't zero-initialize something.
	* tree-ssa-phiopt.c (cond_if_else_store_replacement_1): Ignore
	clobber RHS, we don't want PHI nodes with those.

testsuite/
	* gcc.dg/tree-ssa/20031015-1.c: Adjust.
	* g++.dg/tree-ssa/ehcleanup-1.C: Ditto.
	* g++.dg/eh/builtin1.C: Rewrite to not use local variables.
	* g++.dg/eh/builtin2.C: Ditto.
	* g++.dg/eh/builtin3.C: Ditto.

From-SVN: r181172
2011-11-08 16:47:16 +00:00
Jonathan Wakely
a58a38b32c shared_ptr_base.h (_Sp_counted_ptr): Make 'final'.
* include/bits/shared_ptr_base.h (_Sp_counted_ptr): Make 'final'.
	(_Sp_counted_deleter): Make 'final'. Use allocator_traits.
	(_Sp_counted_ptr_inplace): Make 'final'. Use allocator_traits.
	Derive from _Sp_counted_ptr instead of _Sp_counted_deleter to use EBO
	for the allocator.
	(__shared_count, __shared_ptr): Use allocator_traits.
	* include/std/future (__future_base::_Result_alloc): Make 'final'. Use
	allocator traits.
	(__future_base::_Task_state): Make 'final'.
	(__future_base::_Deferred_state): Likewise.
	(__future_base::_Async_state): Likewise.
	* testsuite/20_util/shared_ptr/cons/alloc_min.cc: New.
	* testsuite/20_util/shared_ptr/creation/alloc_min.cc: New.
	* testsuite/20_util/shared_ptr/creation/private.cc: New.
	* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust line numbers.
	* testsuite/30_threads/packaged_task/cons/alloc_min.cc: New.
	* testsuite/30_threads/promise/cons/alloc_min.cc: New.

From-SVN: r181171
2011-11-08 16:45:54 +00:00
Jakub Jelinek
8ebe5133dc i386.c (ix86_preferred_simd_mode): Even for TARGET_AVX if not TARGET_PREFER_AVX128 return 32-byte integer vectors.
* config/i386/i386.c (ix86_preferred_simd_mode): Even for TARGET_AVX
	if not TARGET_PREFER_AVX128 return 32-byte integer vectors.

	* gcc.target/i386/avx-cvt-2.c: Adjust for 32-byte integer vectors
	being prefered even for -mavx.
	* gcc.target/i386/avx-cvt-3.c: New test.

From-SVN: r181170
2011-11-08 17:29:51 +01:00
Richard Henderson
3d3b05ff4f Fix tests for libitm support.
From-SVN: r181169
2011-11-08 08:28:30 -08:00
Richard Henderson
01f3428caf Check for libitm support at top-level.
From-SVN: r181168
2011-11-08 08:06:25 -08:00
Richard Guenther
f2906a8e9e re PR tree-optimization/51012 (ICE: in fold_convert_loc, at fold-const.c:1897 with -fno-early-inlining and passing incompatible function ptr)
2011-11-08  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/51012
	* ipa-prop.c (update_indirect_edges_after_inlining): Fixup
	non-inlinable state.
	* cgraph.c (cgraph_make_edge_direct): Likewise.

	* gcc.dg/pr51012-1.c: New testcase.
	* gcc.dg/pr51012-2.c: Likewise.

From-SVN: r181166
2011-11-08 15:16:22 +00:00
Richard Guenther
a59526334d re PR middle-end/51010 (bad diagnostics: #'ssa_name' not supported by pp_c_expression#]')
2011-11-08  Richard Guenther  <rguenther@suse.de>

	PR middle-end/51010
	c-family/
	* c-pretty-print.c (pp_c_expression): Handle SSA_NAMEs.

	cp/
	* error.c (dump_expr): Handle SSA_NAMEs.

	* c-c++-common/uninit-pr51010.c: New testcase.

From-SVN: r181165
2011-11-08 15:14:21 +00:00
Rainer Orth
07f03cd348 ChangeLog for last change.
From-SVN: r181164
2011-11-08 15:13:00 +00:00
Rainer Orth
e28a3d8bf2 Fix Solaris/x86 libitm build
* configure.tgt: Handle i386 like i[456]86.
	* config/generic/tls.h [!HAVE_ARCH_GTM_THREAD] (gtm_thr): Don't
	take address.
	* config/generic/tls.cc [!HAVE_ARCH_GTM_THREAD ||
	!HAVE_ARCH_GTM_THREAD_DISP] (_gtm_thr_tls): New variable.

From-SVN: r181163
2011-11-08 14:58:57 +00:00
Paolo Carlini
dbe175248f acinclude.m4 ([GLIBCXX_ENABLE_VISIBILITY]): Rename to [GLIBCXX_ENABLE_LIBSTDCXX_VISIBILITY]...
2011-11-08  Paolo Carlini  <paolo.carlini@oracle.com>

	* acinclude.m4 ([GLIBCXX_ENABLE_VISIBILITY]): Rename to
	[GLIBCXX_ENABLE_LIBSTDCXX_VISIBILITY], likewise for the
	option itself, to --enable-libstdcxx-visibility.
	* configure.ac: Adjust call.
	* doc/xml/manual/configure.xml: Update.
	* configure: Regenerate.

From-SVN: r181162
2011-11-08 14:07:27 +00:00
Eric Botcazou
fabe6a9a7a re PR rtl-optimization/47698 (CMOV accessing volatile memory with read side effect)
PR rtl-optimization/47698
	* ifcvt.c (noce_operand_ok): Move around comment.

From-SVN: r181161
2011-11-08 13:44:11 +00:00
Richard Guenther
a456676fbc re PR regression/50999 (g++.dg/lto/20081109 execute -O2 -flto -flto-partition=1to1 -fno-use-linker-plugin)
2011-11-08  Richard Guenther  <rguenther@suse.de>

	PR lto/50999
	* lto-opts.c (append_to_collect_gcc_options): Split out from...
	(lto_write_options): ... here.  Prepend frontend specific flags.

From-SVN: r181160
2011-11-08 13:41:57 +00:00
Paolo Carlini
a0eabe5751 macros.cc: Avoid -Wall warnings.
2011-11-08  Paolo Carlini  <paolo.carlini@oracle.com>

	* testsuite/29_atomics/headers/atomic/macros.cc: Avoid -Wall
	warnings.
	* testsuite/29_atomics/atomic/cons/user_pod.cc: Likewise.

From-SVN: r181159
2011-11-08 12:34:40 +00:00
Jakub Jelinek
5d54daace2 sse.md (*avx_vperm2f128<mode>3_nozero): Emit mask 0x12 and 0x20 as vinsert[fi]128 instead of vperm2[fi]128.
* config/i386/sse.md (*avx_vperm2f128<mode>3_nozero): Emit mask
	0x12 and 0x20 as vinsert[fi]128 instead of vperm2[fi]128.

From-SVN: r181158
2011-11-08 13:11:27 +01:00
Jakub Jelinek
190c22366d tree-vect-stmts.c (vectorizable_call): Add SLP_NODE argument.
* tree-vect-stmts.c (vectorizable_call): Add SLP_NODE argument.
	Handle vectorization of SLP calls.
	(vect_analyze_stmt): Adjust caller, add call to it for SLP too.
	(vect_transform_stmt): Adjust vectorizable_call caller, remove
	assertion.
	* tree-vect-slp.c (vect_get_and_check_slp_defs): For calls start
	with op_idx 3.
	(vect_build_slp_tree): Allow CALL_EXPR.

	* lib/target-supports.exp (check_effective_target_vect_call_sqrtf,
	check_effective_target_vect_call_copysignf,
	check_effective_target_vect_call_lrint): New procedures.
	* gcc.dg/vect/vect.exp: Run fast-math-bb-slp* tests using
	$VECT_SLP_CFLAGS with -ffast-math.
	* gcc.dg/vect/fast-math-vect-call-1.c: New test.
	* gcc.dg/vect/fast-math-vect-call-2.c: New test.
	* gcc.dg/vect/fast-math-bb-slp-call-1.c: New test.
	* gcc.dg/vect/fast-math-bb-slp-call-2.c: New test.

From-SVN: r181157
2011-11-08 13:09:57 +01:00
Jonathan Wakely
4e68a06c03 re PR libstdc++/51018 (Test failures on NetBSD)
PR libstdc++/51018
	* testsuite/30_threads/thread/native_handle/typesizes.cc: Do not run
	on netbsd.

From-SVN: r181156
2011-11-08 12:02:26 +00:00
Richard Guenther
4835617e59 gimple-fold.c (canonicalize_constructor_val): Make sure we have referenced vars setup before adding to them.
2011-11-08  Richard Guenther  <rguenther@suse.de>

	* gimple-fold.c (canonicalize_constructor_val): Make sure
	we have referenced vars setup before adding to them.

From-SVN: r181155
2011-11-08 11:23:11 +00:00
Aldy Hernandez
0a35513e4e Merge from transactional-memory branch.
From-SVN: r181154
2011-11-08 11:13:41 +00:00
Francois-Xavier Coudert
287188ea07 re PR libfortran/47970 (c99_functions.c:611:5: warning: implicit declaration of function 'round')
PR libfortran/47970
	* intrinsics/c99_functions.c (round): Move higher in the file.

From-SVN: r181153
2011-11-08 10:31:04 +00:00
Dodji Seketeli
7d29c953af Fix context handling of alias-declaration
gcc/cp/

	* decl.c (start_decl): Update comment.
	* error.c (dump_alias_template_specialization): Dump the context
	of the specialization.
	* parser.c (cp_parser_alias_declaration): Call pop_scope on the
	pushed scope yielded by start_decl.

gcc/testsuite

	* g++.dg/cpp0x/alias-decl-11.C: New test.

From-SVN: r181152
2011-11-08 11:27:34 +01:00
Paolo Carlini
7fcefa5525 re PR c++/50864 (ICE with decltype and "declval" from another namespace)
/cp
2011-11-08  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50864
	* parser.c (cp_parser_postfix_dot_deref_expression): Reject invalid
	uses of '->' and '.' as postfix-expression in namespace scope.

/testsuite
2011-11-08  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50864
	* g++.dg/parse/template26.C: New.
	* g++.dg/template/crash45.C: Adjust dg-error string.

From-SVN: r181151
2011-11-08 10:23:53 +00:00
Francois-Xavier Coudert
295258228b re PR fortran/50334 (interaction between -Wuninitialized and -finit-*)
PR fortran/50334
	* invoke.texi (-finit-*): Document interaction with
	-Wuninitialized.

From-SVN: r181150
2011-11-08 08:11:10 +00:00
Quentin Neill
cf7716a257 compare_tests: Add ability to compare all .sum files from two build directories.
2011-11-07   Quentin Neill  <quentin.neill@amd.com>

	* compare_tests: Add ability to compare all .sum
	files from two build directories.

From-SVN: r181149
2011-11-08 04:28:04 +00:00
Paolo Carlini
e65cf3bc2d re PR libstdc++/51018 (Test failures on NetBSD)
2011-11-07  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/51018
	* include/profile/impl/profiler_node.h (__stack_hash::
	operator()(__stack_t)): Just use std::size_t everywhere.

From-SVN: r181147
2011-11-08 01:39:44 +00:00
Jonathan Wakely
c4d9f41936 future (__future_base::_Ptr): Use alias-declaration.
* include/std/future (__future_base::_Ptr): Use alias-declaration.
	(__is_same_pkgdtask): Rename to __constrain_pkgdtask and use decay
	instead of remove_reference so that cv-quals are removed.

From-SVN: r181145
2011-11-08 01:23:53 +00:00
Jason Merrill
7e72c65d18 re PR c++/50848 (ICE in derived template class missing using for member of template base class)
PR c++/50848
	* pt.c (tsubst_copy_and_build) [CALL_EXPR]: Don't crash
	if lookup finds a non-function.

From-SVN: r181143
2011-11-07 20:10:43 -05:00
Ed Smith-Rowland
029ac5f967 stdc++.h: Add cstdalign.
2011-11-08  Ed Smith-Rowland  <3dw4rd@verizon.net>

	* include/precompiled/stdc++.h: Add cstdalign.

From-SVN: r181142
2011-11-08 01:02:06 +00:00
Paolo Carlini
31de4ba7df complex (complex<>::real(), [...]): Remove redundant const qualifiers.
2011-11-07  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/complex (complex<>::real(), complex<>::imag()):
	Remove redundant const qualifiers.

From-SVN: r181141
2011-11-08 00:49:47 +00:00
Jonathan Wakely
7579d15b58 ptr_traits.h (__rebind): Replace with...
* include/bits/ptr_traits.h (__rebind): Replace with...
	(rebind): Implement using alias-declaration.
	* include/ext/pointer.h (__rebind): Replace with...
	(rebind): Implement using alias-declaration.
	* include/bits/alloc_traits.h (__rebind_alloc, __rebind_traits):
	Replace with...
	(rebind_alloc, rebind_traits): Implement using alias-declaration.
	* include/ext/alloc_traits.h (rebind): Use rebind_alloc instead of
	__rebind_alloc.
	* include/std/scoped_allocator (rebind): Likewise.

From-SVN: r181139
2011-11-08 00:33:45 +00:00
GCC Administrator
e23de0edd9 Daily bump.
From-SVN: r181138
2011-11-08 00:18:52 +00:00
Richard Henderson
cedb4a1ad0 Allow libcalls to be installed for legacy __sync optabs.
This allows a target which implements the __sync interfaces
in libgcc to continue to use them transparently with the
new __atomic builtins.

It is assumed that these libgcc routines DO NOT use spinlocks.
This is true of all extant libgcc instances.

        * optabs.h (OTI_sync_compare_and_swap, OTI_sync_lock_test_and_set,
        OTI_sync_old_add, OTI_sync_old_sub, OTI_sync_old_ior,
        OTI_sync_old_and, OTI_sync_old_xor, OTI_sync_old_nand,
        OTI_sync_new_add, OTI_sync_new_sub, OTI_sync_new_ior,
        OTI_sync_new_and, OTI_sync_new_xor, OTI_sync_new_nand): Move and
        rename from the direct_optab_index enum.
        (sync_compare_and_swap_optab, sync_lock_test_and_set_optab,
        sync_old_add_optab, sync_old_sub_optab, sync_old_ior_optab,
        sync_old_and_optab, sync_old_xor_optab, sync_old_nand_optab,
        sync_new_add_optab, sync_new_sub_optab, sync_new_ior_optab,
        sync_new_and_optab, sync_new_xor_optab, sync_new_nand_optab): Read
        from the optab_table, not the direct_optab_table.
        (init_sync_libfuncs): Declare.
        (can_compare_and_swap_p): Update parameters.
        * optabs.c (init_sync_libfuncs_1, init_sync_libfuncs): New.
        (can_compare_and_swap_p): Add allow_libcall parameter; if true,
        test for the legacy compare-and-swap libcall.
        (expand_atomic_exchange): Use the legacy test-and-set libcall.
        (expand_atomic_compare_and_swap): Use the legacy CAS libcall.
        (struct atomic_op_functions): Update for optab type changes.
        (maybe_emit_op): Likewise.
        (expand_atomic_fetch_op): Use the legacy fetch-op libcalls.
        * builtins.c (fold_builtin_atomic_always_lock_free): Update call
        to can_compare_and_swap_p.
        * omp-low.c (expand_omp_atomic_fetch_op): Likewise.
        (expand_omp_atomic_pipeline): Likewise.
        * genopinit.c (optabs): Make sync_old_*_optab, sync_new_*_optab,
        sync_compare_and_swap_optab, sync_lock_test_and_set_optab regular
        optabs.

From-SVN: r181134
2011-11-07 15:11:55 -08:00
Jason Merrill
13fc31c2c4 re PR c++/50863 ([C++0x] list-initialization with lambda fails to deduce constructor argument)
PR c++/50863
	* parser.c (cp_parser_initializer_list): Parse C99
	array designators tentatively.

From-SVN: r181132
2011-11-07 17:52:32 -05:00
Jason Merrill
b2b5f337dc re PR c++/50870 ([C++0x] [4.6/4.7 Regression] ICE with decltype, operator->, and default template arguments)
PR c++/50870
	* pt.c (tsubst_copy): Handle NAMESPACE_DECL.
	(tsubst_copy_and_build) [COMPONENT_REF]: Handle a still-dependent
	object.

From-SVN: r181131
2011-11-07 17:52:23 -05:00
Jonathan Wakely
48d8dd06b0 mutex (call_once): Store closure in __once_functor as bound function wrapper might not be copyable.
* include/std/mutex (call_once): Store closure in __once_functor
	as bound function wrapper might not be copyable.

From-SVN: r181128
2011-11-07 22:26:15 +00:00
Francois-Xavier Coudert
c5a0818e68 re PR libfortran/49188 (Mismatch between -fsign-zero documentation and formatted output)
PR libfortran/49188
	PR libfortran/49336
	* invoke.texi: Fix documentation of fsign-zero option. Remove
	contractions.
	* intrinsic.texi: Fix ATAN2 documentation for signed zeros.
	Remove contractions.
	* gfortran.texi: Remove contractions.

From-SVN: r181127
2011-11-07 22:21:54 +00:00
Kai Tietz
744bbef1e1 re PR target/51007 (Quadmath I/O doesn't work on MinGW)
PR target/51007
        * quadmath-imp.h (ieee854_float128): Adjust
        for ms-bitfield layout.

From-SVN: r181125
2011-11-07 23:03:51 +01:00
Paolo Carlini
5a0626d162 pt.c (tsubst_copy_and_build): Fix qualified_name_lookup_error call in case COMPONENT_REF.
2011-11-07  Paolo Carlini  <paolo.carlini@oracle.com>

	* pt.c (tsubst_copy_and_build): Fix qualified_name_lookup_error
	call in case COMPONENT_REF.

From-SVN: r181124
2011-11-07 22:03:27 +00:00
Jakub Jelinek
c8694a801c i386-bultin-types.def (V8SI_FTYPE_V4DF_V4DF): Add.
* config/i386/i386-bultin-types.def (V8SI_FTYPE_V4DF_V4DF): Add.
	* config/i386/i386.c (enum ix86_builtins): Add
	IX86_BUILTIN_VEC_PACK_SFIX256.
	(bdesc_args): Add __builtin_ia32_vec_pack_sfix256.
	(ix86_expand_args_builtin): Handle V8SI_FTYPE_V4DF_V4DF.
	(ix86_builtin_vectorized_function): Also vectorize lrint using
	256-bit vectors for -mavx.

From-SVN: r181122
2011-11-07 22:37:37 +01:00
Anatoly Sokolov
06cadf6320 constraints.md: New file.
* config/cris/constraints.md: New file.
	* config/cris/cris.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
	CRIS_CONST_OK_FOR_LETTER_P, CONST_OK_FOR_CONSTRAINT_P,
	CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_MEMORY_CONSTRAINT,
	EXTRA_CONSTRAINT, EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_R,
	EXTRA_CONSTRAINT_T, EXTRA_CONSTRAINT_S, EXTRA_CONSTRAINT_U): Remove.
	* config/cris/cris.c: Incule "tm-constrs.h".
	(cris_print_operand): Use satisfies_constraint_O.
	(cris_normal_notice_update_cc, cris_rtx_costs): Use
	satisfies_constraint_I.
	(cris_address_cost): Use satisfies_constraint_L.
	* config/cris/cris.md: Include "constraints.md".
	(*mov_side<mode>, *mov_sidesisf, *mov_side<mode>_mem,
	*mov_sidesisf_mem, *clear_side<mode>, *ext_sideqihi,
	*ext_side<mode>si, *op_side<mode>, *op_swap_side<mode>,
	*extopqihi_side, *extop<mode>si_side, *extopqihi_swap_side,
	*extop<mode>si_swap_side): Use satisfies_constraint_N and
	satisfies_constraint_J.
	(moversideqi movemsideqi mover2side peephole2): Use
	satisfies_constraint_N and satisfies_constraint_J.
	(andu peephole2): Use satisfies_constraint_I and
	satisfies_constraint_O.

From-SVN: r181120
2011-11-08 01:33:24 +04:00
Andrew MacLeod
6577e39c94 atomic_base.h (atomic_thread_fence): Revert.
2011-11-07  Andrew MacLeod  <amacleod@redhat.com>

	* include/bits/atomic_base.h (atomic_thread_fence): Revert.
	(atomic_signal_fence): Revert.

From-SVN: r181119
2011-11-07 21:32:52 +00:00
Dodji Seketeli
2870428932 PR c++/45114 - Support C++11 alias-declaration
gcc/cp/

	* cp-tree.h (TYPE_DECL_ALIAS_P, TYPE_ALIAS_P)
	(DECL_TYPE_TEMPLATE_P, DECL_ALIAS_TEMPLATE_P): New accessor
	macros.
	(TYPE_TEMPLATE_INFO): Get template info of an alias template
	specializations from its TYPE_DECL.
	(SET_TYPE_TEMPLATE_INFO): Set template info of alias template
	specializations into its TYPE_DECL.
	(DECL_CLASS_TEMPLATE_P): Re-write using the new
	DECL_TYPE_TEMPLATE_P.
	(enum cp_decl_spec): Add new ds_alias enumerator.
	(alias_type_or_template_p, alias_template_specialization_p):
	Declare new functions.
	* parser.c (cp_parser_alias_declaration): New static function.
	(cp_parser_check_decl_spec): Add "using" name for the `alias'
	declspec.
	(cp_parser_type_name): Update comment.  Support simple-template-id
	representing alias template specializations in c++0x mode.
	(cp_parser_qualifying_entity): Update comment.  Use
	cp_parser_type_name.
	(cp_parser_block_declaration): Handle alias-declaration in c++11.
	Update comment.
	(cp_parser_template_id): Handle specializations of alias
	templates.
	(cp_parser_member_declaration): Add alias-declaration production
	to comment.  Support alias-declarations.
	(cp_parser_template_declaration_after_export): Handle alias
	templates in c++11.
	* decl.c (make_typename_type, make_unbound_class_template): Accept
	alias templates.
	(grokdeclarator): Set TYPE_DECL_ALIAS_P on alias
	declarations.
	* decl2.c (grokfield): Move template creation after setting up the
	TYPE_DECL of the alias, so that the TEMPLATE_DECL of the alias
	template actually carries the right type-id of the alias
	declaration.
	* pt.c (alias_type_or_template_p)
	(alias_template_specialization_p): Define new public functions.
	(maybe_process_partial_specialization): Reject partial
	specializations of alias templates.
	(primary_template_instantiation_p): Consider alias template
	instantiations.
	(push_template_decl_real): Assert that TYPE_DECLs of alias
	templates are different from those of class template.  Store
	template info onto the TYPE_DECL of the alias template.
	(convert_template_argument): Strip aliases from template
	arguments.
	(lookup_template_class_1): Handle the creation of the
	specialization of an alias template.
	(tsubst_decl): Create a substituted copy of the TYPE_DECL of an
	member alias template.
	(tsubst): Handle substituting into the type of an alias template.
	Handle substituting UNBOUND_CLASS_TEMPLATE into
	BOUND_TEMPLATE_TEMPLATE_PARM.
	(do_type_instantiation): Better diagnostics when trying to
	explicitely instantiate a non-class template.
	* search.c (lookup_field_1, lookup_field_r): Support looking up
	alias templates.
	* semantics.c (finish_template_type): For instantiations of alias
	templates, return the TYPE_DECL of the actual alias and not the
	one of the aliased type.
	* error.c (dump_alias_template_specialization): New static
	function.
	(dump_type): Handle printing of alias templates and their
	specializations.  templates.
	(dump_aggr_type): For specialization of alias templates, fetch
	arguments from the right place.
	(dump_decl): Print an alias-declaration like `using decl = type;'
	(dump_template_decl):  Support printing of alias templates.

gcc/testsuite/

	* g++.dg/cpp0x/alias-decl-0.C: New test case.
	* g++.dg/cpp0x/alias-decl-1.C: Likewise.
	* g++.dg/cpp0x/alias-decl-3.C: Likewise.
	* g++.dg/cpp0x/alias-decl-4.C: Likewise.
	* g++.dg/cpp0x/alias-decl-6.C: Likewise.
	* g++.dg/cpp0x/alias-decl-7.C: Likewise.
	* g++.dg/cpp0x/alias-decl-8.C: Likewise.
	* g++.dg/cpp0x/alias-decl-9.C: Likewise.
	* g++.dg/cpp0x/alias-decl-10.C: Likewise.
	* g++.dg/ext/alias-decl-attr1.C: Likewise.
	* g++.dg/ext/alias-decl-attr2.C: Likewise.
	* g++.dg/ext/alias-decl-attr3.C: Likewise.
	* g++.dg/ext/alias-decl-attr4.C: Likewise.

From-SVN: r181118
2011-11-07 22:28:50 +01:00
Uros Bizjak
bfd08c8902 i386.c (ix86_builtin_vectorized_function): Handle BUILT_IN_IRINT, BUILT_IN_IRINTF, BUILT_IN_LLRINT and BUILT_IN_LLRINTF.
* config/i386/i386.c (ix86_builtin_vectorized_function): Handle
	BUILT_IN_IRINT, BUILT_IN_IRINTF, BUILT_IN_LLRINT and BUILT_IN_LLRINTF.

From-SVN: r181116
2011-11-07 22:27:01 +01:00
Eric Botcazou
805eaf4ab3 * gcc.dg/pragma-align-2.c: Compile with -std=gnu99.
From-SVN: r181114
2011-11-07 21:02:57 +00:00
Andrew MacLeod
6ff336b4aa optabs.c (get_atomic_op_for_code): Fill in optab table at runtime so SWITCHABLE_TARGET can change the valuies...
2011-11-07  Andrew MacLeod  <amacleod@redhat.com>

	* optabs.c (get_atomic_op_for_code): Fill in optab table at runtime so
	SWITCHABLE_TARGET can change the valuies during compilation.
	(expand_atomic_fetch_op): handle parameter changes ripples for 
	get_atomic_op_for_code call.

From-SVN: r181112
2011-11-07 20:10:03 +00:00
Andrew MacLeod
0669295b1e atomic_base.h (atomic_thread_fence): Call builtin.
2011-11-07  Andrew MacLeod  <amacleod@redhat.com>

	libstdc++-v3
	* include/bits/atomic_base.h (atomic_thread_fence): Call builtin.
	(atomic_signal_fence): Call builtin.
	(atomic_flag::test_and_set): Call __atomic_exchange when it is lockfree,
	otherwise fall back to call __sync_lock_test_and_set.
	(atomic_flag::clear): Call __atomic_store when it is lockfree,
	otherwise fall back to call __sync_lock_release.

	gcc
	* doc/extend.texi: Docuemnt behaviour change for __atomic_exchange and
	__atomic_store.
	* optabs.c (expand_atomic_exchange): Expand to __sync_lock_test_and_set
	only when originated from that builtin.
	(expand_atomic_store): Expand to __sync_lock_release when originated
	from that builtin.
	* builtins.c (expand_builtin_sync_lock_test_and_set): Add flag that
	expand_atomic_exchange call originated from here.
	(expand_builtin_sync_lock_release): Add flag that expand_atomic_store
	call originated from here.
	(expand_builtin_atomic_exchange): Add origination flag.
	(expand_builtin_atomic_store): Add origination flag.
	* expr.h (expand_atomic_exchange, expand_atomic_store): Add boolean 
	parameters to indicate implementation fall back options.

From-SVN: r181111
2011-11-07 20:06:39 +00:00
Janus Weil
fd83db3d51 re PR fortran/50919 ([OOP] Don't use vtable for NON_OVERRIDABLE TBP)
2011-11-07  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/50919
	* class.c (add_proc_comp): Don't add non-overridable procedures to the
	vtable.
	* resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
	Don't generate a dynamic _vptr call for non-overridable procedures.

2011-11-07  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/50919
	* gfortran.dg/typebound_call_21.f03: New.

From-SVN: r181107
2011-11-07 19:41:12 +01:00
Georg-Johann Lay
0098895f4e avr.c (output_reload_in_const): Can handle CONSTANT_P now, not only CONST_INT and CONST_DOUBLE.
* config/avr/avr.c (output_reload_in_const): Can handle CONSTANT_P
	now, not only CONST_INT and CONST_DOUBLE.
	(output_movqi): Use output_reload_in_const.
	(output_reload_inhi): Ditto.
	(output_reload_insisf): Move assertion to output_reload_in_const.
	(avr_out_reload_inpsi): Ditto.

From-SVN: r181106
2011-11-07 18:22:59 +00:00
Nathan Sidwell
5366b18679 libgcov.c (struct gcov_fn_buffer): New struct.
libgcc/
	* libgcov.c (struct gcov_fn_buffer): New struct.
	(buffer_fn_data): New helper.
	(gcov_exit): Rework for new gcov data structures.

	gcc/
	* gcov.c (object_summary): Replace with ...
	(object_runs): ... this.
	(process_file): Remove functions with no data.
	(generate_results): Ignore files with no lines.
	(release_function): New helper, broken out of ...
	(release_structures): ... here.  Use it.
	(read_count_file): Adjust for new data file format.
	(output_lines): Use object_runs.
	* gcov-io.h (GCOV_TAG_OBJECT_SUMMARY): Obsolete.
	(struct gcov_ctr_info): Move definition.
	(struct gcov_fn_info): Add key field, use gcov_ctr_info for
	trailing array.
	(struct gcov_info): Add merge function array, remove mask and
	counts.  Trailing array is array of pointers to function info.
	* coverage.c (struct function_list): Replace counter numbers with
	counter arrays.  Add fndecl field.  GTYify.
	(counts_entry): Remove chain workspace.
	(functions_head): GTYify.
	(prg_n_ctrs): Remove.
	(fn_v_ctrs): New.
	(tree_ctr_tables): Remove.
	(read_counts_file): Cope with blank entries and expect program
	summaries before functions.  Don't warn on missing entries.
	(coverage_counter_alloc): Allocate individual function arrays.
	(tree_coverage_counter_ref, tree_coverage_counter_addr): Adjust
	for individual function arrays.
	(coverage_end_function): GTYify function list object. Finalize
	function's counter arrays.
	(build_var): New.  Create a counter-related variable with
	appropriate linkage.
	(build_fn_info_type): Adjust for new runtime structure.
	(build_fn_info_value): Rename to ...
	(build_fn_info): ... here.  Build new format data.
	(build_ctr_info_type, build_ctr_info_value): Remove.
	(build_info_type): New. Build new format data structure.
	(build_info): Adjust for new format data.
	(create_coverage): Likewise.
	* gcov-dump.c (tag_function): Recognize placeholders.

	gcc/testsuite/
	* gcc.dg/profile-dir-1.c: Adjust final scan.
	* gcc.dg/profile-dir-2.c: Adjust final scan.
	* gcc.dg/profile-dir-3.c: Adjust final scan.
	* gcc.misc-tests/gcov.exp: Adjust regexp.
	* gcc.misc-tests/gcov-12.c: New.
	* gcc.misc-tests/gcov-13.c: New.
	* gcc.misc-tests/gcovpart-13b.c: New.
	* gcc.misc-tests/gcov-14.c: New.

From-SVN: r181105
2011-11-07 18:14:46 +00:00
Georg-Johann Lay
74155a6f37 re PR target/49313 (Inefficient libgcc implementations for avr)
PR target/49313
	* config/avr/lib1funcs.S (__divmodhi4, __divmodsi4): Tweak speed.

From-SVN: r181104
2011-11-07 18:08:35 +00:00
Georg-Johann Lay
8b42d3defd constraints.md (Cm2): New constraint for int -2.
* config/avr/constraints.md (Cm2): New constraint for int -2.
	* config/avr/avr.md (addqi3): Use it. New alternatives for +/-2.
	(*negqihi2): New insn.

From-SVN: r181103
2011-11-07 18:07:56 +00:00