1. 20 Dec, 2012 4 commits
    • 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
  2. 19 Dec, 2012 17 commits
    • re PR fortran/55733 (-fno-automatic: Fails for scalar allocatables) · 26c08c03
      2012-12-19  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/55733
              * trans-decl.c (gfc_create_string_length): Avoid setting
              TREE_STATIC for automatic variables with -fno-automatic.
      
      From-SVN: r194621
      Tobias Burnus committed
    • re PR c++/55724 ([C++11] Default type of a template value is not working) · 502bfcbc
      	PR c++/55724
      	* pt.c (type_unification_real): Re-combine post-deduction loops.
      
      From-SVN: r194620
      Jason Merrill committed
    • Import GNU Classpath (20121202). · a1906e8b
      2012-12-19  Matthias Klose  <doko@ubuntu.com>
      
              Import GNU Classpath (20121202).
      
              * Regenerate class and header files.
              * Regenerate auto* files.
              * sources.am, gcj/javaprims.h: Regenerate.
              * gnu/java/nio/FileLockImpl.java (close): New override.
      
      From-SVN: r194618
      Matthias Klose committed
    • t-kfreebsd (MULTIARCH_DIRNAME): Add comma to separate arguments in make function. · baeb2e16
      2012-12-19  Matthias Klose  <doko@ubuntu.com>
      
              * config/i386/t-kfreebsd (MULTIARCH_DIRNAME): Add comma to
              separate arguments in make function.
      
      From-SVN: r194617
      Matthias Klose committed
    • Makefile.def (install-target-libgo): Depend on install-target-libatomic. · 6ce8fd9d
      2012-12-19  Matthias Klose  <doko@ubuntu.com>
      
              * Makefile.def (install-target-libgo): Depend on 
              install-target-libatomic.
              * Makefile.in: Regenerate.
      
      From-SVN: r194616
      Matthias Klose committed
    • i386.h (enum ix86_tune_indices): Add X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE. · 6c72ea12
      	* config/i386/i386.h (enum ix86_tune_indices): Add
      	X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE.
      	(TARGET_AVOID_MEM_OPND_FOR_CMOVE): New define.
      	* config/i386/i386.c (initial_ix86_tune_features)
      	<X86TUNE_AVOID_MEM_OPND_FOR_CMOVE>: Initialize.
      	* config/i386/i386.md (splitters to avoid cmove memory operands): New.
      	(peephole2s to avoid cmove memory operands): New.
      
      From-SVN: r194614
      Uros Bizjak committed
    • fortran.exp: Set -fintrinsic-modules-path. · aa86bf1e
      2012-12-19  Tobias Burnus  <burnus@net-b.de>
      
              * testsuite/libgomp.fortran/fortran.exp: Set
              -fintrinsic-modules-path.
      
      From-SVN: r194613
      Tobias Burnus committed
    • arm.md (f_minmaxs, f_minmaxd): New types. · 37202071
      gcc/
      
      2012-12-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
      
      	* config/arm/arm.md (f_minmaxs, f_minmaxd): New types.
      	* config/arm/vfp.md (smax<mode>3): New pattern.
      	(smin<mode>3): Likewise.
      
      
      gcc/testsuite/
      
      2012-12-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
      
      	* gcc.target/arm/vmaxnmdf.c: New test.
      	* gcc.target/arm/vmaxnmsf.c: Likewise.
      	* gcc.target/arm/vminnmsf.c: Likewise.
      	* gcc.target/arm/vminnmdf.c: Likewise.
      
      From-SVN: r194612
      Kyrylo Tkachov committed
    • use_intrinsic_1.f90: New; moved from gcc/testsuite/gfortran.dg/gomp/use_intrinsic_1.f90. · 2865ea66
      libgomp/
      2012-12-19  Tobias Burnus  <burnus@net-b.de>
      
              * testsuite/libgomp.fortran/use_intrinsic_1.f90: New; moved
              from gcc/testsuite/gfortran.dg/gomp/use_intrinsic_1.f90.
      
      gcc/testsuite/
      2012-12-19  Tobias Burnus  <burnus@net-b.de>
      
              * gfortran.dg/gomp/use_intrinsic_1.f90: Moved
              to libgomp/testsuite/libgomp.fortran/use_intrinsic_1.f90.
      
      From-SVN: r194611
      Tobias Burnus committed
    • targhooks.h (default_canonicalize_comparison): Fix prototype. · f236ac95
      2012-12-19  Richard Biener  <rguenther@suse.de>
      
      	* targhooks.h (default_canonicalize_comparison): Fix prototype.
      	* targhooks.c (default_canonicalize_comparison): Define.
      
      From-SVN: r194610
      Richard Biener committed
    • re PR lto/55736 (lto ICE: tree code ''junl is not supported in LTO streams) · d1f98542
      2012-12-19  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/55736
      	PR tree-optimization/55703
      	* gimplify.c (prune_expr_location): New function.
      	(unshare_expr_without_location): Likewise.
      	* tree.h (unshare_expr_without_location): Declare.
      	* ipa-prop.c (prune_expression_for_jf): Remove.
      	(prune_expression_for_jf_1): Likewise.
      	(ipa_set_jf_constant): Use unshare_expr_without_location.
      	(ipa_set_jf_arith_pass_through): Likewise.
      	(determine_known_aggregate_parts): Likewise.
      	* tree-switch-conversion.c (build_constructors): Use
      	unshare_expr_without_location on all constructor elements.
      
      	* gcc.dg/lto/pr55703_0.c: New testcase.
      
      From-SVN: r194609
      Richard Biener committed
    • target.def: Define canonicalize_comparison hook. · c354951b
      2012-12-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
      
      	* target.def: Define canonicalize_comparison hook.
      	* targhooks.h (default_canonicalize_comparison): New prototype.
      	* targhooks.c (default_canonicalize_comparison): New function.
      	* doc/tm.texi: Add documentation for the new target hook.
      	* doc/tm.texi.in: Likewise.
      	* combine.c (try_combine): Adjust to use the target hook.
      	* config/alpha/alpha.h (CANONICALIZE_COMPARISON): Remove macro
      	definition.
      	* config/alpha/alpha.c (alpha_canonicalize_comparison): New
      	function.
      	(TARGET_CANONICALIZE_COMPARISON): New macro definition.
      	* config/arm/arm-protos.h (arm_canonicalize_comparison): Remove
      	prototype.
      	* config/arm/arm.c (arm_canonicalize_comparison): Add new
      	parameter.
      	(TARGET_CANONICALIZE_COMPARISON): New macro definition.
      	* config/arm/arm.h (CANONICALIZE_COMPARISON): Remove macro
      	definition.
      	* config/s390/s390-protos.h (s390_canonicalize_comparison): Remove
      	prototype.
      	* config/s390/s390.c (s390_canonicalize_comparison): Add new
      	parameter.
      	(TARGET_CANONICALIZE_COMPARISON): New macro definition.
      	* config/s390/s390.h (CANONICALIZE_COMPARISON): Remove macro
      	definition.
      	* config/sh/sh-protos.h (sh_canonicalize_comparison): Remove
      	prototype.
      	* config/sh/sh.c (sh_canonicalize_comparison): Add new prototype.  New
      	function overloading the old one.
      	(TARGET_CANONICALIZE_COMPARISON): New macro definition.
      	* config/sh/sh.h (CANONICALIZE_COMPARISON): Remove macro
      	definition.
      	* config/spu/spu.c (spu_canonicalize_comparison): New function.
      	(TARGET_CANONICALIZE_COMPARISON): New macro definition.
      	* config/spu/spu.h (CANONICALIZE_COMPARISON): Remove macro
      	definition.
      
      From-SVN: r194608
      Andreas Krebbel committed
    • re PR debug/55730 (ICE in mem_loc_descriptor, at dwarf2out.c:12725) · e90c56c6
      	PR debug/55730
      	* dwarf2out.c (mem_loc_descriptor): Ignore CLOBBER.
      	* valtrack.c (gen_lowpart_for_debug): New function.
      	(propagate_for_debug): Temporarily set rtl_hooks.gen_lowpart_no_emit
      	to gen_lowpart_for_debug.
      
      	* gcc.dg/debug/pr55730.c: New test.
      
      From-SVN: r194607
      Jakub Jelinek committed
    • re PR tree-optimization/55683 (ICE in inline_call, at ipa-inline-transform.c:270) · da942ca0
      
      	PR tree-optimization/55683
      	* g++.dg/ipa/devirt-9.C: New testcase.
      
      	* ipa-prop.c (try_make_edge_direct_virtual_call): Look into constants for binfo.
      
      From-SVN: r194606
      Jan Hubicka committed
    • arm.c (thumb_find_work_register): Check argument register number based on current PCS. · 47b33e4c
      gcc/ChangeLog:
      
      2012-12-19  Terry Guo  <terry.guo@arm.com>
      
              * config/arm/arm.c (thumb_find_work_register): Check argument
              register number based on current PCS.
      
      gcc/testsuite/ChangeLog:
      
      2012-12-19  Terry Guo  <terry.guo@arm.com>
      
              * gcc.target/arm/thumb-find-work-register.c: New.
      
      From-SVN: r194605
      Terry Guo committed
    • re PR fortran/55636 (Fortran name mangling collides with user namespace) · 36085529
      2012-12-19  Tobias Burnus  <burnus@net-b.de>
                  Jakub Jelinek  <jakub@redhat.com>
                  Janus Weil  <janus@gcc.gnu.org>
      
              PR fortran/55636
              PR fortran/55733
              * gfortran.h (GFC_PREFIX): Define.
              * trans-decl.c (gfc_create_string_length): For VAR_DECLs that
              will be TREE_STATIC, use GFC_PREFIX to mangle the names. Handle
              -fno-automatic
              (gfc_trans_deferred_vars): Don't free variables SAVEd via
              -fno-automatic.
      
      2012-12-19  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/55733
              * gfortran.dg/save_5.f90: New.
      
      
      Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
      Co-Authored-By: Janus Weil <janus@gcc.gnu.org>
      
      From-SVN: r194604
      Tobias Burnus committed
    • Daily bump. · 168c15be
      From-SVN: r194597
      GCC Administrator committed
  3. 18 Dec, 2012 19 commits