1. 21 Dec, 2012 12 commits
  2. 20 Dec, 2012 26 commits
    • gthr.h (__gthread_cond_timedwait_recursive): Do not require. · 5aa12dbf
      	* gthr.h (__gthread_cond_timedwait_recursive): Do not require.
      	* gthr-posix.h (__gthread_cond_timedwait_recursive): Remove.
      
      From-SVN: r194652
      Jonathan Wakely committed
    • functional (_Require): Move to ... · 23df8534
      	* include/std/functional (_Require): Move to ...
      	* include/std/type_traits (_Require): ... here.
      	* include/bits/shared_ptr_base.h (__shared_count::_S_create_from_up):
      	Handle unique_ptr for arrays or with custom pointer types.
      	(__shared_ptr::__shared_ptr(unique_ptr<_Tp1, _Del>&&): Likewise.
      	* include/bits/unique_ptr.h (unique_ptr<_Tp[], _Dp>): Use
      	_Dp::pointer if defined. Implement proposed resolution of LWG 2118.
      	* testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc: New.
      	* testsuite/20_util/unique_ptr/assign/cv_qual.cc: New.
      	* testsuite/20_util/unique_ptr/cons/array_convertible_neg.cc: New.
      	* testsuite/20_util/unique_ptr/cons/convertible_neg.cc: New.
      	* testsuite/20_util/unique_ptr/cons/cv_qual.cc: New.
      	* testsuite/20_util/unique_ptr/modifiers/cv_qual.cc: New.
      	* testsuite/20_util/unique_ptr/requirements/pointer_type_array.cc: New.
      	* testsuite/20_util/shared_ptr/cons/unique_ptr.cc: Adjust comments.
      	* testsuite/20_util/unique_ptr/cons/pointer_array_convertible_neg.cc:
      	Likewise.
      	* testsuite/20_util/unique_ptr/requirements/pointer_type.cc: Likewise.
      	* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error line number.
      	* testsuite/20_util/declval/requirements/1_neg.cc: Likewise.
      	* testsuite/20_util/default_delete/48631_neg.cc: Likewise.
      	* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
      	* testsuite/20_util/unique_ptr/assign/48635_neg.cc: Likewise.
      	* testsuite/20_util/unique_ptr/modifiers/reset_neg.cc: Adjust
      	dg-error text.
      	* testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Use
      	different instantiations so static_assert fails for each.
      
      From-SVN: r194651
      Jonathan Wakely committed
    • Makefile.def (install-target-libgfortran): Depend on install-target-libquadmath,… · d89da9db
      Makefile.def (install-target-libgfortran): Depend on install-target-libquadmath, install-target-libgcc.
      
      2012-12-20  Matthias Klose  <doko@ubuntu.com>
      
              * Makefile.def (install-target-libgfortran): Depend on
              install-target-libquadmath, install-target-libgcc.
              (install-target-libsanitizer): Depend on install-target-libgcc.
              (install-target-libjava): Depend on install-target-libgcc.
              (install-target-libitm): Depend on install-target-libgcc.
              (install-target-libobjc): Depend on install-target-libgcc.
              (install-target-libstdc++-v3): Depend on install-target-libgcc.
              * Makefile.in: Regenerate.
      
      From-SVN: r194650
      Matthias Klose committed
    • Make zero_extends explicit for common AArch64 SI mode patterns · 3b585938
      From-SVN: r194649
      Ian Bolton committed
    • re PR libfortran/36044 (user-requested backtrace) · f0f67c96
      2012-12-20  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/36044
      	* gfortran.h (gfc_isym_id): Add GFC_ISYM_BACKTRACE.
      	* intrinsic.c (add_subroutines): Add "backtrace".
      	* intrinsic.texi (BACKTRACE): Document BACKTRACE intrinsic.
      
      
      2012-12-20  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/36044
      	* gfortran.map: Add _gfortran_backtrace.
      	* libgfortran.h: Rename 'show_backtrace' and export.
      	* runtime/backtrace.c (show_backtrace): Rename to 'backtrace'.
      	Don't show message. Close file descriptor. Export.
      	* runtime/compile_options.c (backtrace_handler): Renamed
      	'show_backtrace'. Move message outside.
      	* runtime/error.c (sys_abort): Ditto.
      
      From-SVN: r194648
      Janus Weil committed
    • re PR middle-end/55750 (-( in expand_expr_addr_expr_1, at expr.c:7646) · d97c9b22
      	PR middle-end/55750
      	* gimplify.c (gimplify_self_mod_expr): Don't force lvalue to
      	pass is_gimple_min_lval.
      
      	* gcc.c-torture/execute/pr55750.c: New test.
      
      From-SVN: r194647
      Jakub Jelinek committed
    • s390: Generate rnsbg · 5bb33936
              * config/s390/s390.md (*insv_rnsbg_noshift, *insv_rnsbg_srl): New.
      
      Co-Authored-By: Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
      
      From-SVN: r194646
      Richard Henderson committed
    • s390: Generate rxsbg, and shifted forms of rosbg · 571e408a
              * config/s390/s390.md (IXOR): New code iterator.
              (*r<IXOR>sbg_<GPR>_noshift): Rename from *insv<GPR>_or_z10_noshift;
              macro-ize to handle XOR too.
              (*r<IXOR>sbg_di_rotl, *r<IXOR>sbg_<GPR>_srl, *r<IXOR>sbg_<GPR>_sll):
              New patterns.
      
      Co-Authored-By: Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
      
      From-SVN: r194645
      Richard Henderson committed
    • s390: Implement extzv for z10 · 1a2e356e
              * config/s390/predicates.md (nonzero_shift_count_operand): New.
              * config/s390/s390-protos.h (s390_extzv_shift_ok): Declare.
              * config/s390/s390.c (s390_extzv_shift_ok): New function.
              * config/s390/s390.md (extzv): New expander.
              (*extzv<GPR>_zEC12, *extzv<GPR>_z10): New insns.
              (*pre_z10_extzv<GPR>): Rename from *extzv<GPR>; simplify with
              nonzero_shift_count_operand.
              (*extzv_<mode>_srl, *extzv_<mode>_sll): New insns.
      
      Co-Authored-By: Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
      
      From-SVN: r194644
      Richard Henderson committed
    • s390: Add mode attribute for mode bitsize · 2542ef05
              * config/s390/s390.md (bitsize): New mode attr.
              (*extzv<GPR>, *extzv<GPR>, *insv<GPR>_zEC12, *insv<GPR>_z10): Use it.
              (extend<HQI><DSI>2, zero_extend<HQI>si2): Likewise.
              (zero_extend<HQI>di2, fixuns_trunc<BFP><GPR>2): Likewise.
      
      Co-Authored-By: Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
      
      From-SVN: r194643
      Richard Henderson committed
    • s390: Use risbgz for AND · e3140518
              * config/s390/s390.md (*anddi3_cc): Add risbg alternative.
              (*anddi3_cconly, *anddi3): Likewise.
              (*andsi3, *andsi3_cconly, *andsi3_zarch): Likewise.
      
      Co-Authored-By: Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
      
      From-SVN: r194642
      Richard Henderson committed
    • s390: Only use lhs zero_extract in word_mode · d378b983
              * config/s390/s390.md (*insv_l_di_reg_extimm): Un-macroize from :P.
      
      Co-Authored-By: Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
      
      From-SVN: r194641
      Richard Henderson committed
    • s390: Constraints, predicates, and op letters for contiguous bitmasks · 75ca1b39
              * config/s390/constraints.md (NxxDq, NxxSq): New.
              * config/s390/predicates.md (contiguous_bitmask_operand): New.
              * config/s390/s390.c (print_operand) ['e', 'f', 's', 't']: New
              operand letters.
              * config/s390/s390.md (bfstart, bfend): New mode attrs.
              (*insv<GPR>_zEC12_noshift): Use them.
              (*insv<GPR>_z10_noshift): Likewise.
              (*insv<GPR>_or_z10_noshift): Likewise.
      
      Co-Authored-By: Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
      
      From-SVN: r194640
      Richard Henderson committed
    • same_type_as_1.f03: Correct for improved message. · 00155043
      2012-12-20  Paul Thomas  <pault@gcc.gnu.org>
      
      	* gfortran.dg/same_type_as_1.f03: Correct for improved message.
      
      From-SVN: r194639
      Paul Thomas committed
    • re PR driver/55202 (Building a combined tree is broken for LTO) · 3cecbdfa
      	PR bootstrap/55202
      	* configure.ac <PLUGIN_LD_SUFFIX>: Use POSIX shell syntax.
      	* configure: Regenerate.
      
      From-SVN: r194637
      Thomas Schwinge committed
    • re PR regression/55754 (FAIL: gcc.target/arm/unsigned-extend-2.c scan-assembler ands) · 5ff3c4f3
      2012-12-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
      
      	PR target/55754
      	* config/arm/arm.c (arm_canonicalize_comparison): Remove
      	op0_preserve_value check for zero_extend to and transformation.
      
      From-SVN: r194636
      Andreas Krebbel committed
    • re PR libstdc++/55741 (bootstrap fails in libstdc++-v3/src/c++11/thread.cc) · 8ed812cc
      	PR libstdc++/55741
      	* acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Check for Sleep.
      	* config.h.in: Regenerate.
      	* configure: Regenerate.
      	* src/c++11/thread.cc (__sleep_for): Use Sleep if available.
      
      From-SVN: r194635
      Jonathan Wakely committed
    • Fix PR gcov-profile/55734 by using methods from hwint.c instead of builtins... · d5ae0ba6
      Fix PR gcov-profile/55734 by using methods from hwint.c instead of
      builtins, to handle non-GCC and older versions of GCC. When building
      libgcov.a, however, hwint.c is not available, but we are always using
      the bootstrapped compiler and can therefore use the builtins.
      
      Use __builtin_popcount instead of __builtin_popcountll, since we
      are operating on an int.
      
      Use floor_log2 directly, instead of clz_hwi for the non-libgcov case,
      and handle situations where the size of the gcov_type is bigger than
      HOST_WIDE_INT. Verified that the various cases compiled by forcing
      different HOST_BITS_PER_WIDE_INT values.
      
      2012-12-20  Teresa Johnson  <tejohnson@google.com>
                  Jakub Jelinek  <jakub@redhat.com>
      
              PR gcov-profile/55734
      	* gcov-io.c (gcov_read_summary): Use __builtin_popcount instead
              of __builtin_popcountll when building libgcov.a, otherwise use
              popcount_hwi.
      	(gcov_histo_index): When not building libgcov.a, use floor_log2
              instead of __builtin_clzll.
      
      Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
      
      From-SVN: r194634
      Teresa Johnson committed
    • re PR rtl-optimization/55740 (ICE in verify_loop_structure, at cfgloop.c:1582,… · 63f2ff0f
      re PR rtl-optimization/55740 (ICE in verify_loop_structure, at cfgloop.c:1582, error: loop 2's header does not belong directly to it)
      
      2012-12-20  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/55740
      	* cfghooks.c (merge_blocks): Properly handle merging of
      	two loop headers.
      
      	* g++.dg/torture/pr55740.C: New testcase.
      
      From-SVN: r194633
      Richard Biener committed
    • re PR c++/55619 (Chromium build fails with: error: memory input is not directly addressable) · eadd3d0d
      	PR c++/55619
      	* c-parser.c (c_parser_asm_operands): Remove CONVERT_P
      	argument, don't call default_function_array_conversion
      	nor c_fully_fold here.
      	(c_parser_asm_statement): Adjust callers.
      	* c-typeck.c (build_asm_expr): Call c_fully_fold on inputs
      	and outputs here, and call default_function_array_conversion
      	on inputs that don't need to be addressable.
      
      	* c-c++-common/pr55619.c: New test.
      
      From-SVN: r194631
      Jakub Jelinek committed
    • re PR c/39464 (Attribute may_alias causes invalid warning) · 1ac13b9c
      	PR c/39464
      	* c-typeck.c (convert_for_assignment): For -Wpointer-sign
      	warning require that both c_common_unsigned_type as well as
      	c_common_signed_type is the same for both mvl and mvr types.
      
      	* gcc.dg/pr39464.c: New test.
      
      From-SVN: r194630
      Jakub Jelinek committed
    • t-spe (MULTIARCH_DIRNAME): Remove. · 7b8c7831
      2012-12-20  Roland Stigge  <stigge@debian.org>
                  Matthias Klose  <doko@ubuntu.com>
      
              * config/rs6000/t-spe (MULTIARCH_DIRNAME): Remove.
              * config/rs6000/t-linux (MULTIARCH_DIRNAME): Define name for
              powerpc-linux-gnuspe.
      
      Co-Authored-By: Matthias Klose <doko@ubuntu.com>
      
      From-SVN: r194629
      Roland Stigge committed
    • re PR fortran/54818 (error: type mismatch in binary expression) · 64ff24b3
      2012-12-20  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/54818
              * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Ensure that
              the string length is of type gfc_charlen_type_node.
      
      2012-12-20  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/54818
              * gfortran.dg/transfer_intrinsic_4.f: New.
      
      From-SVN: r194628
      Tobias Burnus committed
    • unlimited_polymorphic_2.f03: Remove bad test. · d19a6672
      2012-12-19  Paul Thomas  <pault@gcc.gnu.org>
      
      	* gfortran.dg/unlimited_polymorphic_2.f03: Remove bad test.
      
      From-SVN: r194626
      Paul Thomas committed
    • Daily bump. · 1a5ba68e
      From-SVN: r194625
      GCC Administrator committed
    • array.c (resolve_array_list): Apply C4106. · 8b704316
      2012-12-19  Paul Thomas  <pault@gcc.gnu.org>
      
      	* array.c (resolve_array_list): Apply C4106.
      	* check.c (gfc_check_same_type_as): Exclude polymorphic
      	entities from check for extensible types. Improved error
      	for disallowed argument types to name the offending type.
      	* class.c : Update copyright date.
      	(gfc_class_null_initializer): Add argument for initialization
      	expression and deal with unlimited polymorphic typespecs.
      	(get_unique_type_string): Give unlimited polymorphic
      	entities a type string.
      	(gfc_intrinsic_hash_value): New function.
      	(gfc_build_class_symbol): Incorporate unlimited polymorphic
      	entities.
      	(gfc_find_derived_vtab): Deal with unlimited polymorphic
      	entities.
      	(gfc_find_intrinsic_vtab): New function.
      	* decl.c (gfc_match_decl_type_spec): Match typespec for
      	unlimited polymorphic type.
      	(gfc_match_data_decl): Skip to 'ok' if unlimited polymorphic.
      	expr.c (gfc_check_pointer_assign): Apply C717.  If unlimited
      	polymorphic lvalue, find rvalue vtable for all typespecs,
      	except unlimited polymorphic expressions.
      	(gfc_check_vardef_context): Handle unlimited polymorphic
      	entities.
      	* gfortran.h : Add unlimited polymorphic attribute. Add
      	second arg to gfc_class_null_initializer primitive and
      	primitive for gfc_find_intrinsic_vtab.  Add UNLIMITED_POLY
      	to detect unlimited polymorphic expressions.
      	* interface.c (gfc_compare_types): If expr1 is unlimited
      	polymorphic, always return 1. If expr2 is unlimited polymorphic
      	enforce C717.
      	(gfc_compare_interfaces): Skip past conditions that do not
      	apply for unlimited polymorphic entities.
      	(compare_parameter): Make sure that an unlimited polymorphic,
      	allocatable or pointer, formal argument is matched by an
      	unlimited polymorphic actual argument.
      	(compare_actual_formal): Ensure that an intrinsic vtable exists
      	to match an unlimited polymorphic formal argument.
      	* match.c (gfc_match_allocate): Type kind parameter does not
      	need to match an unlimited polymorphic allocate-object.
      	(alloc_opt_list): An unlimited polymorphic allocate-object
      	requires a typespec or a SOURCE tag.
      	(select_intrinsic_set_tmp): New function.
      	(select_type_set_tmp): Call new function.  If it returns NULL,
      	build a derived type or class temporary instead.
      	(gfc_match_type_is): Remove restriction to derived types only.
      	Bind(C) or sequence derived types not permitted.
      	* misc (gfc_typename):  Printed CLASS(*) for unlimited
      	polymorphism.
      	* module.c : Add AB_UNLIMITED_POLY to pass unlimited
      	polymorphic attribute to and from modules.
      	* resolve.c (resolve_common_vars): Unlimited polymorphic
      	entities cannot appear in common blocks.
      	(resolve_deallocate_expr): Deallocate unlimited polymorphic
      	enities.
      	(resolve_allocate_expr): Likewise for allocation.  Make sure
      	vtable exists.
      	(gfc_type_is_extensible): Unlimited polymorphic entities are
      	not extensible.
      	(resolve_select_type): Handle unlimited polymorphic selectors.
      	Ensure that length type parameters are assumed and that names
      	for intrinsic types are generated.
      	(resolve_fl_var_and_proc): Exclude select type temporaries
      	from test of extensibility of type.
      	(resolve_fl_variable): Likewise for test that assumed character
      	length must be a dummy or a parameter.
      	(resolve_fl_derived0): Return SUCCESS unconditionally for
      	unlimited polymorphic entities. Also, allow unlimited
      	polymorphic components.
      	(resolve_fl_derived): Return SUCCESS unconditionally for
      	unlimited polymorphic entities.
      	(resolve_symbol): Return early with unlimited polymorphic
      	entities.
      	* simplifiy.c : Update copyright year.
      	(gfc_simplify_extends_type_of): No simplification possible
      	for unlimited polymorphic arguments.
      	* symbol.c (gfc_use_derived): Nothing to do for unlimited
      	polymorphic "derived type".
      	(gfc_type_compatible): Return unity if ts1 is unlimited
      	polymorphic.
      	* trans-decl.c (create_function_arglist) Formal arguments
      	without a character length should be treated in the same way
      	as passed lengths.
      	(gfc_trans_deferred_vars): Nullify the vptr of unlimited
      	polymorphic pointers. Avoid unlimited polymorphic entities
      	triggering gcc_unreachable.
      	* trans-expr.c (gfc_conv_intrinsic_to_class): New function.
      	(gfc_trans_class_init_assign): Make indirect reference of
      	src.expr.
      	(gfc_trans_class_assign): Expression NULL of unknown type
      	should set NULL vptr on lhs. Treat C717 cases where lhs is
      	a derived type and the rhs is unlimited polymorphic.
      	(gfc_conv_procedure_call): Handle the conversion of a non-class
      	actual argument to match an unlimited polymorphic formal
      	argument.  Suppress the passing of a character string length
      	in this case.  Make sure that calls to the character __copy
      	function have two character string length arguments.
      	(gfc_conv_initializer): Pass the initialization expression to
      	gfc_class_null_initializer.
      	(gfc_trans_subcomponent_assign): Ditto.
      	(gfc_conv_structure): Move handling of _size component.
      	trans-intrinsic.c: (gfc_conv_same_type_as): Handle conditions
      	where unlimited polymorphic arguments have null vptr.
      	* trans-stmt.c (trans_associate_var): Correctly treat array
      	temporaries associated with unlimited polymorphic selectors.
      	Recover the overwritten dtype for the descriptor. Use the _size
      	field of the vptr for character string lengths.
      	(gfc_trans_allocate): Cope with unlimited polymorphic allocate
      	objects; especially with character source tags.
      	(reset_vptr): New function.
      	(gfc_trans_deallocate): Call it.
      	* trans-types.c (gfc_get_derived_type): Detect unlimited
      	polymorphic types and deal with cases where the derived type of
      	components is null.
      	* trans.c : Update copyright year.
      	(trans_code): Call gfc_trans_class_assign for C717 cases where
      	the lhs is not unlimited polymorphic.
      
      2012-12-19  Paul Thomas  <pault@gcc.gnu.org>
      
      	* intrinsics/extends_type_of.c : Return correct results for
      	null vptrs.
      
      2012-12-19  Paul Thomas  <pault@gcc.gnu.org>
      
      	* gfortran.dg/unlimited_polymorphic_1.f03: New test.
      	* gfortran.dg/unlimited_polymorphic_2.f03: New test.
      	* gfortran.dg/unlimited_polymorphic_3.f03: New test.
      	* gfortran.dg/same_type_as.f03: Correct for improved message.
      
      From-SVN: r194622
      Paul Thomas committed
  3. 19 Dec, 2012 2 commits