1. 07 Nov, 2011 40 commits
    • re PR c++/50870 ([C++0x] [4.6/4.7 Regression] ICE with decltype, operator->, and… · b2b5f337
      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
      Jason Merrill committed
    • mutex (call_once): Store closure in __once_functor as bound function wrapper might not be copyable. · 48d8dd06
      	* include/std/mutex (call_once): Store closure in __once_functor
      	as bound function wrapper might not be copyable.
      
      From-SVN: r181128
      Jonathan Wakely committed
    • re PR libfortran/49188 (Mismatch between -fsign-zero documentation and formatted output) · c5a0818e
      	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
      Francois-Xavier Coudert committed
    • re PR target/51007 (Quadmath I/O doesn't work on MinGW) · 744bbef1
              PR target/51007
              * quadmath-imp.h (ieee854_float128): Adjust
              for ms-bitfield layout.
      
      From-SVN: r181125
      Kai Tietz committed
    • pt.c (tsubst_copy_and_build): Fix qualified_name_lookup_error call in case COMPONENT_REF. · 5a0626d1
      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
      Paolo Carlini committed
    • i386-bultin-types.def (V8SI_FTYPE_V4DF_V4DF): Add. · c8694a80
      	* 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
      Jakub Jelinek committed
    • constraints.md: New file. · 06cadf63
      	* 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
      Anatoly Sokolov committed
    • atomic_base.h (atomic_thread_fence): Revert. · 6577e39c
      
      2011-11-07  Andrew MacLeod  <amacleod@redhat.com>
      
      	* include/bits/atomic_base.h (atomic_thread_fence): Revert.
      	(atomic_signal_fence): Revert.
      
      From-SVN: r181119
      Andrew MacLeod committed
    • PR c++/45114 - Support C++11 alias-declaration · 28704289
      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
      Dodji Seketeli committed
    • i386.c (ix86_builtin_vectorized_function): Handle BUILT_IN_IRINT,… · bfd08c89
      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
      Uros Bizjak committed
    • * gcc.dg/pragma-align-2.c: Compile with -std=gnu99. · 805eaf4a
      From-SVN: r181114
      Eric Botcazou committed
    • optabs.c (get_atomic_op_for_code): Fill in optab table at runtime so… · 6ff336b4
      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
      Andrew MacLeod committed
    • atomic_base.h (atomic_thread_fence): Call builtin. · 0669295b
      
      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
      Andrew MacLeod committed
    • re PR fortran/50919 ([OOP] Don't use vtable for NON_OVERRIDABLE TBP) · fd83db3d
      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
      Janus Weil committed
    • avr.c (output_reload_in_const): Can handle CONSTANT_P now, not only CONST_INT and CONST_DOUBLE. · 0098895f
      	* 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
      Georg-Johann Lay committed
    • libgcov.c (struct gcov_fn_buffer): New struct. · 5366b186
      	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
      Nathan Sidwell committed
    • re PR target/49313 (Inefficient libgcc implementations for avr) · 74155a6f
      	PR target/49313
      	* config/avr/lib1funcs.S (__divmodhi4, __divmodsi4): Tweak speed.
      
      From-SVN: r181104
      Georg-Johann Lay committed
    • constraints.md (Cm2): New constraint for int -2. · 8b42d3de
      	* 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
      Georg-Johann Lay committed
    • re PR c++/35688 (template visibility not overridden by template arguments) · 6d87092d
      	PR c++/35688
      	* decl2.c (constrain_visibility): Return void.  Add tmpl parm
      	which gives the constraint priority over an attribute.
      	(constrain_visibility_for_template, determine_visibility): Adjust.
      	* pt.c (instantiate_class_template_1): Call determine_visibility.
      
      From-SVN: r181102
      Jason Merrill committed
    • add PR tag · c7e6757f
      From-SVN: r181101
      Jason Merrill committed
    • re PR c++/33255 (A warning for "unused" typedefs?) · 4c627087
      	PR c++/33255
      	* decl.c (save_function_data): Clear local_typedefs.
      
      From-SVN: r181100
      Jason Merrill committed
    • decl.c (cp_finish_decl): Only make_tree_vector if we're calling check_initializer. · b12e4c42
      	* decl.c (cp_finish_decl): Only make_tree_vector if we're calling
      	check_initializer.
      
      From-SVN: r181099
      Jason Merrill committed
    • Append to HOST_LIBGCC2_CFLAGS in libgcc · 200feb07
      	* config.host (tmake_file): Correct comment.
      	(bfin*-elf*): Remove bfin/t-elf from tmake_file, add
      	t-libgcc-pic.
      	(bfin*-uclinux*): Likewise.
      	(bfin*-linux-uclibc*): Likewise.
      	(xstormy16-*-elf): Add stormy16/t-stormy16 to tmake_file.
      
      	* config/arm/t-elf (HOST_LIBGCC2_CFLAGS): Append instead of
      	assigning.
      	* config/arm/t-strongarm-elf (HOST_LIBGCC2_CFLAGS): Likewise.
      	* config/avr/t-avr (HOST_LIBGCC2_CFLAGS): Likewise.
      	* config/c6x/t-elf (HOST_LIBGCC2_CFLAGS): Likewise.
      	* config/h8300/t-h8300 (HOST_LIBGCC2_CFLAGS): Likewise.
      	* config/lm32/t-elf (HOST_LIBGCC2_CFLAGS): Likewise.
      	* config/m32r/t-m32r (HOST_LIBGCC2_CFLAGS): Likewise.
      	* config/mcore/t-mcore (HOST_LIBGCC2_CFLAGS): Likewise.
      	* config/mips/t-elf (HOST_LIBGCC2_CFLAGS): Likewise.
      	* config/mmix/t-mmix (HOST_LIBGCC2_CFLAGS): Likewise.
      	* config/pdp11/t-pdp11 (HOST_LIBGCC2_CFLAGS): Likewise.
      	* config/picochip/t-picochip (HOST_LIBGCC2_CFLAGS): Likewise.
      	* config/stormy16/t-stormy16 (HOST_LIBGCC2_CFLAGS): Likewise.
      	* config/t-openbsd-thread (HOST_LIBGCC2_CFLAGS): Likewise.
      
      	* config/bfin/t-elf: Remove.
      	* config/t-vxworks (HOST_LIBGCC2_CFLAGS): Remove.
      
      From-SVN: r181098
      Rainer Orth committed
    • Consistently use t-rtems in libgcc · c9cd1a07
      	* config.host (*-*-rtems*): Add t-rtems to tmake_file.
      	(i[34567]86-*-rtems*): Remove t-rtems from tmake_file.
      	(lm32-*-elf*, lm32-*-rtems*): Split into ...
      	(lm32-*-elf*): ... this.
      	(lm32-*-rtems*): ... and this.
      	Add to tmake_file.
      	(m32r-*-rtems*): Add to tmake_file.
      	(moxie-*-rtems*): Likewise.
      	(sparc-*-rtems*): Likewise.
      	Remove t-rtems from tmake_file.
      	(sparc64-*-rtems*): Likewise.
      	* config/t-rtems (HOST_LIBGCC2_CFLAGS): Use LIBGCC2_INCLUDES
      	instead.
      
      From-SVN: r181097
      Rainer Orth committed
    • Check HARD_FRAME_POINTER_REGNUM. · 7b4d5595
      2011-11-07  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* dwarf2cfi.c (dwarf2out_frame_debug_expr): Check
      	HARD_FRAME_POINTER_REGNUM instead of hard_frame_pointer_rtx
      	in Rule 18.
      
      From-SVN: r181096
      H.J. Lu committed
    • Return gthr-posix.h to libgcc (PR bootstrap/50982) · 9fbcc75d
      	libgcc:
      	PR bootstrap/50982
      	* config/gthr-posix.h: Move ...
      	* gthr-posix.h: ... here.
      	* config/gthr-lynx.h: Reflect this.
      	* config/gthr-vxworks.h: Likewise.
      	* config/rs6000/gthr-aix.h: Likewise.
      	* configure.ac (target_thread_file): Likewise.
      	* configure: Regenerate.
      
      	libstdc++-v3:
      	PR bootstrap/50982
      	* include/Makefile.am (${host_builddir}/gthr-posix.h): Reflect
      	gthr-posix.h move.
      	* include/Makefile.in: Regenerate.
      
      From-SVN: r181095
      Rainer Orth committed
    • [multiple changes] · b5bf3335
      2011-11-07  Olivier Hainque  <hainque@adacore.com>
      
      	* sigtramp-ppcvxw.c: Add general comments.
      	(CFI_COMMON_REGS): Remove rule for r1, as in other unwinders. Add
      	rules for r2 to r13, plus CTR and XER.
      	(CFA_REG): New, register number used to hold the local CFA.
      	(CFI_DEF_CFA, SIGTRAMP_BODY): Use it.
      	Make that 15, not 14, with documentation.
      	(TCR): Undef before definition, preventing conflict with reg number in
      	VxWorks headers.
      
      2011-11-07  Robert Dewar  <dewar@adacore.com>
      
      	* exp_util.ads, exp_alfa.adb, a-cohama.adb, a-cohama.ads, sem_ch4.adb,
      	aspects.ads, exp_ch8.adb, exp_ch8.ads, atree.ads: Minor reformatting.
      	* gcc-interface/Make-lang.in: Update dependencies. 
      
      2011-11-07  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch6.adb: A tagged type is a legal actual for an aliased
      	formal.
      
      2011-11-07  Pascal Obry  <obry@adacore.com>
      
      	* g-socket.adb, g-socket.ads: Minor reformatting.
      
      2011-11-07  Robert Dewar  <dewar@adacore.com>
      
      	* sem_res.adb (Resolve_Actuals): Minor error message improvement.
      
      2011-11-07  Robert Dewar  <dewar@adacore.com>
      
      	* gnat_ugn.texi: Add discussion of default mode handling of
      	source representation with no -gnatW option given, in particular
      	noting that NEL (next line) is not recognized in this context.
      
      From-SVN: r181094
      Arnaud Charlet committed
    • [multiple changes] · 9ee76313
      2011-11-07  Yannick Moy  <moy@adacore.com>
      
      	* sem_util.adb (Note_Possible_Modification): In Alfa mode,
      	generate a reference for a modification even when the modification
      	does not come from source.
      
      2011-11-07  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch5.adb (Expand_Iterator_Loop): For the "of" iterator form,
      	use the indexing attributes rather than the Element function,
      	to obtain variable references.
      	* sem_ch4.adb (Try_Container_Indexing): Code cleanup. Use
      	Find_Aspect rather than iterating over representation
      	items. Improve error message.
      	* a-cohama.adb, a-cohama.ads Update to latest RM, with two versions
      	of Reference functions.
      
      From-SVN: r181093
      Arnaud Charlet committed
    • [multiple changes] · 7b7a0c2b
      2011-11-07  Yannick Moy  <moy@adacore.com>
      
      	* sem_util.adb (Unique_Entity): For a parameter on a subprogram
      	body that has a corresponding parameter on the subprogram
      	declaration, define the unique entity as being the declaration
      	one.
      
      2011-11-07  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch6.adb (Analyze_Return_Type): In Ada 2012 mode, if the
      	return type of a function is the class-wide type of an incomplete
      	type T, T can be a Taft-amendment type and does not have to be
      	completed in the current private part.
      
      2011-11-07  Ed Schonberg  <schonberg@adacore.com>
      
      	* aspects.ads (Inherited_Aspect): Map that indicates type aspects
      	that are inherited by default, and apply to the class-wide type
      	as well.
      	* aspects.adb (Find_Aspect): If the entity is class-wide and the
      	aspect is inherited, use the aspect of the specific type.
      
      From-SVN: r181092
      Arnaud Charlet committed
    • [multiple changes] · cc570be6
      2011-11-07  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_alfa.adb: Remove with and use clause for
      	Exp_Ch8. Add with and use clause for Exp_Util.
      	Remove local constant Disable_Processing_Of_Renamings.
      	(Expand_Alfa_N_Object_Renaming_Declaration): The expansion of
      	object renamings has been reenabled.
      	(Expand_Possible_Renaming):
      	The expansion of identifier and expanded names has been
      	reenabled. Perform the substitutions only for entities that
      	denote an object.
      	* exp_ch8.ads, exp_ch8.adb (Evaluate_Name): Moved to Exp_Util.
      	* exp_util.adb (Evaluate_Name): Moved from Exp_Ch8.
      	(Remove_Side_Effects): Alphabetize local variables. Add a guard
      	to avoid the infinite expansion of an expression in Alfa mode. Add
      	processing for function calls in Alfa mode.
      	* exp_util.ads (Evaliate_Name): Moved from Exp_Ch8.
      
      2011-11-07  Ed Schonberg  <schonberg@adacore.com>
      
      	* freeze.adb (Freeze_Entity): If the entity is an access to
      	subprogram whose designated type is itself a subprogram type,
      	its own return type must be decorated with size information.
      
      From-SVN: r181091
      Arnaud Charlet committed
    • i386.c (ix86_expand_builtin): If gather mask argument is known to have all high bits set... · da80a646
      	* config/i386/i386.c (ix86_expand_builtin): If gather mask
      	argument is known to have all high bits set, pass pc_rtx as
      	second argument to the expander instead of op0.
      	* config/i386/sse.md (*avx2_gathersi<mode>_2,
      	*avx2_gatherdi<mode>_2): New patterns.
      	* config/i386/avx2intrin.h (_mm256_i32gather_pd,
      	_mm256_i64gather_pd, _mm256_i32gather_ps): Set mask using
      	_mm256_cmp_pd with zero vector arguments and _CMP_EQ_OQ instead of
      	_mm256_set1_pd.
      
      From-SVN: r181090
      Jakub Jelinek committed
    • re PR tree-optimization/50789 (Gather vectorization) · aec7ae7d
      	PR tree-optimization/50789
      	* tree-vect-stmts.c (process_use): Add force argument, avoid
      	exist_non_indexing_operands_for_use_p check if true.
      	(vect_mark_stmts_to_be_vectorized): Adjust callers.  Handle
      	STMT_VINFO_GATHER_P.
      	(gen_perm_mask): New function.
      	(perm_mask_for_reverse): Use it.
      	(reverse_vec_element): Rename to...
      	(permute_vec_elements): ... this.  Add Y and MASK_VEC arguments,
      	generalize for any permutations.
      	(vectorizable_load): Adjust caller.  Handle STMT_VINFO_GATHER_P.
      	* target.def (TARGET_VECTORIZE_BUILTIN_GATHER): New hook.
      	* doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_GATHER): Document it.
      	* doc/tm.texi: Regenerate.
      	* tree-data-ref.c (initialize_data_dependence_relation,
      	compute_self_dependence): No longer static.
      	* tree-data-ref.h (initialize_data_dependence_relation,
      	compute_self_dependence): New prototypes.
      	* tree-vect-data-refs.c (vect_check_gather): New function.
      	(vect_analyze_data_refs): Detect possible gather load data
      	refs.
      	* tree-vectorizer.h (struct _stmt_vec_info): Add gather_p field.
      	(STMT_VINFO_GATHER_P): Define.
      	(vect_check_gather): New prototype.
      	* config/i386/i386-builtin-types.def: Add types for alternate
      	gather builtins.
      	* config/i386/sse.md (AVXMODE48P_DI): Remove.
      	(VEC_GATHER_MODE): Rename mode_attr to...
      	(VEC_GATHER_IDXSI): ... this.
      	(VEC_GATHER_IDXDI, VEC_GATHER_SRCDI): New mode_attrs.
      	(avx2_gathersi<mode>, *avx2_gathersi<mode>): Use <VEC_GATHER_IDXSI>
      	instead of <VEC_GATHER_MODE>.
      	(avx2_gatherdi<mode>): Use <VEC_GATHER_IDXDI> instead of
      	<<AVXMODE48P_DI> and <VEC_GATHER_SRCDI> instead of VEC_GATHER_MODE
      	on src and mask operands.
      	(*avx2_gatherdi<mode>): Likewise.  Use VEC_GATHER_MODE iterator
      	instead of AVXMODE48P_DI.
      	(avx2_gatherdi<mode>256, *avx2_gatherdi<mode>256): Removed.
      	* config/i386/i386.c (enum ix86_builtins): Add
      	IX86_BUILTIN_GATHERALTSIV4DF, IX86_BUILTIN_GATHERALTDIV8SF,
      	IX86_BUILTIN_GATHERALTSIV4DI and IX86_BUILTIN_GATHERALTDIV8SI.
      	(ix86_init_mmx_sse_builtins): Create those builtins.
      	(ix86_expand_builtin): Handle those builtins and adjust expansions
      	of other gather builtins.
      	(ix86_vectorize_builtin_gather): New function.
      	(TARGET_VECTORIZE_BUILTIN_GATHER): Define.
      
      	* gcc.target/i386/avx2-gather-1.c: New test.
      	* gcc.target/i386/avx2-gather-2.c: New test.
      	* gcc.target/i386/avx2-gather-3.c: New test.
      	* gcc.target/i386/avx2-gather-4.c: New test.
      
      From-SVN: r181089
      Jakub Jelinek committed
    • clock and time are part of the C standard library. · 571b34b2
      2011-11-07  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	* intrinsic.texi (MCLOCK, MCLOCK8, TIME, TIME8): Functions clock
      	and time are part of the C standard library.
      
      From-SVN: r181087
      Janne Blomqvist committed
    • pr49781-1.c (dg-options): Add -mtune=generic. · ed377f02
      	* gcc.target/i386/pr49781-1.c (dg-options): Add -mtune=generic.
      
      From-SVN: r181086
      Uros Bizjak committed
    • Revert previous fix for PR 45723. · 0948d153
      libgfortran ChangeLog:
      
      2011-11-07  Janne Blomqvist  <jb@gcc.gnu.org>
      
              PR libfortran/45723
              * io/open.c (new_unit): Don't check file size before attempting
              seek.
      
      
      testsuite ChangeLog:
      
      2011-11-07  Janne Blomqvist  <jb@gcc.gnu.org>
      
              PR libfortran/45723
              * gfortran.dg/open_dev_null.F90: Remove testcase.
      
      From-SVN: r181085
      Janne Blomqvist committed
    • acinclude.m4 (GLIBCXX_CHECK_SC_NPROC_ONLN): Define. · 5ee360d0
      	* acinclude.m4 (GLIBCXX_CHECK_SC_NPROC_ONLN): Define.
      	(GLIBCXX_CHECK_PTHREADS_NUM_PROCESSORS_NP): Define.
      	(GLIBCXX_CHECK_SYSCTL_HW_NCPU): Define.
      	* configure.ac: Use new checks.
      	* configure: Regenerate.
      	* config.h.in: Regenerate.
      	* src/thread.cc: Check new config macros.
      	* testsuite/lib/libstdc++.exp: Likewise.
      
      From-SVN: r181084
      Jonathan Wakely committed
    • target-supports.exp (check_effective_target_sync_int_128): Don't cache the result. · 51e674b7
      	* lib/target-supports.exp (check_effective_target_sync_int_128):
      	Don't cache the result.
      	(check_effective_target_sync_long_long): Ditto.
      
      From-SVN: r181082
      Uros Bizjak committed
    • f16cintrin: Remove extra _X86INTRIN_H_INCLUDED check. · 6f2cc91c
      	* config/i386/f16cintrin: Remove extra _X86INTRIN_H_INCLUDED check.
      
      From-SVN: r181080
      Uros Bizjak committed
    • config.gcc (*-*-*vms*): Set c_target_objs, cxx_target_objs. · c750e768
      2011-11-07  Tristan Gingold  <gingold@adacore.com>
      
      	* config.gcc (*-*-*vms*): Set c_target_objs, cxx_target_objs.
      	* config/vms/t-vms: Add vms-c.o rule.
      	* config/vms/vms-c.c: New file.
      	* config/vms/vms-protos.h (vms_c_register_pragma): New prototype.
      	* config/vms/vms.h (REGISTER_TARGET_PRAGMAS): Define.
      
      From-SVN: r181079
      Tristan Gingold committed