Commit graph

121020 commits

Author SHA1 Message Date
Ian Bolton
3b585938f7 Make zero_extends explicit for common AArch64 SI mode patterns
From-SVN: r194649
2012-12-20 19:13:21 +00:00
Janus Weil
f0f67c96c3 re PR libfortran/36044 (user-requested backtrace)
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
2012-12-20 19:15:13 +01:00
Jakub Jelinek
d97c9b2248 re PR middle-end/55750 (-( in expand_expr_addr_expr_1, at expr.c:7646)
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
2012-12-20 19:13:56 +01:00
Richard Henderson
5bb339361a s390: Generate rnsbg
* config/s390/s390.md (*insv_rnsbg_noshift, *insv_rnsbg_srl): New.

Co-Authored-By: Andreas Krebbel <Andreas.Krebbel@de.ibm.com>

From-SVN: r194646
2012-12-20 10:05:26 -08:00
Richard Henderson
571e408a9f s390: Generate rxsbg, and shifted forms of rosbg
* 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
2012-12-20 10:05:19 -08:00
Richard Henderson
1a2e356efe s390: Implement extzv for z10
* 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
2012-12-20 10:05:11 -08:00
Richard Henderson
2542ef057b s390: Add mode attribute for mode bitsize
* 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
2012-12-20 10:05:03 -08:00
Richard Henderson
e314051839 s390: Use risbgz for AND
* 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
2012-12-20 10:04:56 -08:00
Richard Henderson
d378b98328 s390: Only use lhs zero_extract in word_mode
* 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
2012-12-20 10:04:49 -08:00
Richard Henderson
75ca1b39e5 s390: Constraints, predicates, and op letters for contiguous bitmasks
* 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
2012-12-20 10:04:41 -08:00
Paul Thomas
0015504377 same_type_as_1.f03: Correct for improved message.
2012-12-20  Paul Thomas  <pault@gcc.gnu.org>

	* gfortran.dg/same_type_as_1.f03: Correct for improved message.

From-SVN: r194639
2012-12-20 18:03:37 +00:00
Thomas Schwinge
3cecbdfa22 re PR driver/55202 (Building a combined tree is broken for LTO)
PR bootstrap/55202
	* configure.ac <PLUGIN_LD_SUFFIX>: Use POSIX shell syntax.
	* configure: Regenerate.

From-SVN: r194637
2012-12-20 16:57:18 +01:00
Andreas Krebbel
5ff3c4f398 re PR regression/55754 (FAIL: gcc.target/arm/unsigned-extend-2.c scan-assembler ands)
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
2012-12-20 15:20:06 +00:00
Jonathan Wakely
8ed812cc4b re PR libstdc++/55741 (bootstrap fails in libstdc++-v3/src/c++11/thread.cc)
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
2012-12-20 14:36:56 +00:00
Teresa Johnson
d5ae0ba663 Fix PR gcov-profile/55734 by using methods from hwint.c instead of builtins...
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
2012-12-20 14:31:09 +00:00
Richard Biener
63f2ff0f23 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
2012-12-20 12:45:48 +00:00
Jakub Jelinek
eadd3d0d54 re PR c++/55619 (Chromium build fails with: error: memory input is not directly addressable)
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
2012-12-20 11:41:47 +01:00
Jakub Jelinek
1ac13b9c05 re PR c/39464 (Attribute may_alias causes invalid warning)
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
2012-12-20 11:40:26 +01:00
Roland Stigge
7b8c7831a2 t-spe (MULTIARCH_DIRNAME): Remove.
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
2012-12-20 09:57:34 +00:00
Tobias Burnus
64ff24b33e re PR fortran/54818 (error: type mismatch in binary expression)
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
2012-12-20 09:13:21 +01:00
Paul Thomas
d19a6672c9 unlimited_polymorphic_2.f03: Remove bad test.
2012-12-19  Paul Thomas  <pault@gcc.gnu.org>

	* gfortran.dg/unlimited_polymorphic_2.f03: Remove bad test.

From-SVN: r194626
2012-12-20 00:23:40 +00:00
GCC Administrator
1a5ba68e96 Daily bump.
From-SVN: r194625
2012-12-20 00:18:51 +00:00
Paul Thomas
8b7043164f array.c (resolve_array_list): Apply C4106.
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
2012-12-20 00:15:00 +00:00
Tobias Burnus
26c08c0323 re PR fortran/55733 (-fno-automatic: Fails for scalar allocatables)
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
2012-12-20 00:05:49 +01:00
Jason Merrill
502bfcbc80 re PR c++/55724 ([C++11] Default type of a template value is not working)
PR c++/55724
	* pt.c (type_unification_real): Re-combine post-deduction loops.

From-SVN: r194620
2012-12-19 17:22:36 -05:00
Matthias Klose
a1906e8bbf Import GNU Classpath (20121202).
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
2012-12-19 17:03:15 +00:00
Matthias Klose
baeb2e1647 t-kfreebsd (MULTIARCH_DIRNAME): Add comma to separate arguments in make function.
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
2012-12-19 16:39:23 +00:00
Matthias Klose
6ce8fd9d2b Makefile.def (install-target-libgo): Depend on install-target-libatomic.
2012-12-19  Matthias Klose  <doko@ubuntu.com>

        * Makefile.def (install-target-libgo): Depend on 
        install-target-libatomic.
        * Makefile.in: Regenerate.

From-SVN: r194616
2012-12-19 16:18:37 +00:00
Uros Bizjak
6c72ea127c i386.h (enum ix86_tune_indices): Add X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE.
* 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
2012-12-19 17:04:11 +01:00
Tobias Burnus
aa86bf1e9c fortran.exp: Set -fintrinsic-modules-path.
2012-12-19  Tobias Burnus  <burnus@net-b.de>

        * testsuite/libgomp.fortran/fortran.exp: Set
        -fintrinsic-modules-path.

From-SVN: r194613
2012-12-19 16:53:01 +01:00
Kyrylo Tkachov
372020711f arm.md (f_minmaxs, f_minmaxd): New types.
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
2012-12-19 15:51:24 +00:00
Tobias Burnus
2865ea6615 use_intrinsic_1.f90: New; moved from gcc/testsuite/gfortran.dg/gomp/use_intrinsic_1.f90.
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
2012-12-19 16:02:50 +01:00
Richard Biener
f236ac951e targhooks.h (default_canonicalize_comparison): Fix prototype.
2012-12-19  Richard Biener  <rguenther@suse.de>

	* targhooks.h (default_canonicalize_comparison): Fix prototype.
	* targhooks.c (default_canonicalize_comparison): Define.

From-SVN: r194610
2012-12-19 14:38:10 +00:00
Richard Biener
d1f985421f re PR lto/55736 (lto ICE: tree code ''junl is not supported in LTO streams)
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
2012-12-19 13:53:18 +00:00
Andreas Krebbel
c354951b7e target.def: Define canonicalize_comparison hook.
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
2012-12-19 12:39:17 +00:00
Jakub Jelinek
e90c56c6b2 re PR debug/55730 (ICE in mem_loc_descriptor, at dwarf2out.c:12725)
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
2012-12-19 13:16:56 +01:00
Jan Hubicka
da942ca0e2 re PR tree-optimization/55683 (ICE in inline_call, at ipa-inline-transform.c:270)
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
2012-12-19 11:42:30 +00:00
Terry Guo
47b33e4c65 arm.c (thumb_find_work_register): Check argument register number based on current PCS.
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
2012-12-19 11:40:52 +00:00
Tobias Burnus
36085529ca re PR fortran/55636 (Fortran name mangling collides with user namespace)
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
2012-12-19 10:21:17 +01:00
GCC Administrator
168c15bedc Daily bump.
From-SVN: r194597
2012-12-19 00:18:34 +00:00
Jakub Jelinek
f8a93a2e91 re PR c/39464 (Attribute may_alias causes invalid warning)
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: r194594
2012-12-18 23:48:04 +01:00
Ian Lance Taylor
69fffc1f0e libgo: Link against libatomic_convenience.la.
gcc/go:
	PR go/55201
	* gospec.c: Revert last patch.

gcc/testsuite:
	PR go/55201
	* lib/go.exp: Revert last patch.

From-SVN: r194593
2012-12-18 22:07:38 +00:00
Ian Lance Taylor
36749a1fe6 re PR go/55201 (libgo.so: undefined reference to `__atomic_compare_exchange_8')
PR go/55201
	* Makefile.am (noinst_LTLIBRARIES): Define new make variable.
	(libatomic_convenience_la_SOURCES): Likewise.
	(libatomic_convenience_la_LIBADD): Likewise.
	* Makefile.in: Rebuild.
	* testsuite/Makefile.in: Rebuild.

From-SVN: r194592
2012-12-18 22:04:08 +00:00
Jakub Jelinek
fcf7ca2a9e re PR target/55562 (FAIL: gcc.dg/sms-* on powerpc*-*-*)
PR target/55562
	* sbitmap.c (bitmap_and, bitmap_xor, bitmap_ior): Return whether
	dst sbitmap changed even if it doesn't have popcount.

From-SVN: r194591
2012-12-18 22:40:29 +01:00
James Greenhalgh
0b81f26c30 [AArch64] Fix warning in aarch64.md
gcc/
	* config/aarch64/aarch64.md (insv_imm<mode>): Add modes
	for source operands.

From-SVN: r194589
2012-12-18 17:46:48 +00:00
James Greenhalgh
7b48660547 [AArch64] Fix some warnings about unused variables.
gcc/
	* config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
	Remove unused variables.
	(aarch64_split_compare_and_swap): Likewise.

From-SVN: r194588
2012-12-18 17:43:25 +00:00
Kyrylo Tkachov
c0363bf0d0 driver-arm.c (arm_cpu_table): Add Cortex-A7.
2012-12-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/driver-arm.c (arm_cpu_table):
	Add Cortex-A7.

From-SVN: r194587
2012-12-18 16:43:22 +00:00
Aldy Hernandez
2b4212d5b9 re PR other/54324 (GCC install document does not list minimum required g++ version)
PR other/54324
	* doc/install.texi (Tools/packages necessary for building GCC):
	Suggest --disable-stage1-checking for older GCC's.

From-SVN: r194586
2012-12-18 16:21:57 +00:00
Aldy Hernandez
e492fb921d re PR other/54324 (GCC install document does not list minimum required g++ version)
PR other/54324
	* tree-ssa-coalesce.c (struct ssa_name_var_hash): Remove "union"
	from template parameter.

From-SVN: r194584
2012-12-18 15:26:27 +00:00
Aldy Hernandez
9654e9c299 re PR other/54324 (GCC install document does not list minimum required g++ version)
PR other/54324
	* ansidecl.h (ATTRIBUTE_UNUSED): Do not set __attribute__ for GCC
	< 3.4.

From-SVN: r194583
2012-12-18 15:19:43 +00:00