gcc.git
13 years agore PR c++/44609 (Invalid template code causes infinite loop of error messages)
Jason Merrill [Mon, 11 Jul 2011 18:52:12 +0000 (14:52 -0400)]
re PR c++/44609 (Invalid template code causes infinite loop of error messages)

PR c++/44609
* cp-tree.h (struct tinst_level): Add errors field.
* pt.c (neglectable_inst_p, limit_bad_template_recurson): New.
(push_tinst_level): Don't start another decl in that case.
(reopen_tinst_level): Adjust errors field.
* decl2.c (cp_write_global_declarations): Don't complain about
undefined inline if its template was defined.
* mangle.c (mangle_decl_string): Handle failure from push_tinst_level.

From-SVN: r176176

13 years agore PR libstdc++/49559 ([C++0x] stable_sort calls self-move-assignment operator)
Paolo Carlini [Mon, 11 Jul 2011 18:38:54 +0000 (18:38 +0000)]
re PR libstdc++/49559 ([C++0x] stable_sort calls self-move-assignment operator)

2011-07-11  Paolo Carlini  <paolo.carlini@oracle.com>

PR libstdc++/49559
* include/bits/stl_algo.h (__move_merge_backward): Remove.
(__move_merge_adaptive, __move_merge_adaptive_backward): New.
(__merge_adaptive): Use the latter two.
(__rotate_adaptive): Avoid self move-assignment.
* include/bits/stl_algobase.h (move_backward): Fix comment.
* testsuite/25_algorithms/stable_sort/49559.cc: New.
* testsuite/25_algorithms/inplace_merge/49559.cc: Likewise.
* testsuite/25_algorithms/inplace_merge/moveable.cc: Extend.
* testsuite/25_algorithms/inplace_merge/moveable2.cc: Likewise.
* testsuite/util/testsuite_rvalref.h (rvalstruct::operator=
(rvalstruct&&)): Check for self move-assignment.

From-SVN: r176174

13 years agoi386.c (ix86_trampoline_init): Switch arms of if expr.
Uros Bizjak [Mon, 11 Jul 2011 17:57:49 +0000 (19:57 +0200)]
i386.c (ix86_trampoline_init): Switch arms of if expr.

* config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
Use offset everywhere.  Always assert that offset <= TRAMPOLINE_SIZE.

From-SVN: r176173

13 years agoffi.c (FFI_INIT_TRAMPOLINE): Clear icache.
Andrew Haley [Mon, 11 Jul 2011 17:50:04 +0000 (17:50 +0000)]
ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.

2011-07-11  Andrew Haley  <aph@redhat.com>

        * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.

From-SVN: r176172

13 years agotestsuite_allocator.h (propagating_allocator<>:: operator=(const propagating_allocato...
Paolo Carlini [Mon, 11 Jul 2011 17:19:53 +0000 (17:19 +0000)]
testsuite_allocator.h (propagating_allocator<>:: operator=(const propagating_allocator<>&)): Retun *this.

2011-07-11  Paolo Carlini  <paolo.carlini@oracle.com>

* testsuite/util/testsuite_allocator.h (propagating_allocator<>::
operator=(const propagating_allocator<>&)): Retun *this.

From-SVN: r176169

13 years agore PR debug/49676 (inefficiency: DW_AT_GNU_call_site_value calculates everything...
Jakub Jelinek [Mon, 11 Jul 2011 16:57:25 +0000 (18:57 +0200)]
re PR debug/49676 (inefficiency: DW_AT_GNU_call_site_value calculates everything << 32)

PR debug/49676
* dwarf2out.c (int_shift_loc_descriptor): New function.
(int_loc_descriptor): If shorter, emit i as
(i >> shift), shift, DW_OP_shl for suitable shift value.
Similarly, try to optimize large negative values using
DW_OP_neg of a positive value if shorter.
(size_of_int_shift_loc_descriptor): New function.
(size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
changes.
(mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
is shorter.
(resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
addend as added DW_OP_plus if it is shorter.

* gcc.dg/guality/csttest.c: New test.

From-SVN: r176167

13 years agore PR fortran/49698 (Unmanageable compiler error)
Jakub Jelinek [Mon, 11 Jul 2011 16:42:29 +0000 (18:42 +0200)]
re PR fortran/49698 (Unmanageable compiler error)

PR fortran/49698
* trans-stmt.c (gfc_trans_pointer_assign_need_temp): Initialize
inner_size to gfc_index_one_node instead of integer_one_node.

* gfortran.dg/pr49698.f90: New test.

From-SVN: r176164

13 years agoconfigure.ac (i?86-*-solaris2*): Use libgcc copy of i386/t-crtstuff.
Rainer Orth [Mon, 11 Jul 2011 16:39:57 +0000 (16:39 +0000)]
configure.ac (i?86-*-solaris2*): Use libgcc copy of i386/t-crtstuff.

* configure.ac (i?86-*-solaris2*): Use libgcc copy of
i386/t-crtstuff.
* configure: Regenerate.

From-SVN: r176163

13 years agosol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
Rainer Orth [Mon, 11 Jul 2011 16:35:53 +0000 (16:35 +0000)]
sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.

* config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
(DTORS_SECTION_ASM_OP): Define.

From-SVN: r176162

13 years agouninit-pred-8_b.c: Disable dominator optimizations.
Jeff Law [Mon, 11 Jul 2011 15:25:48 +0000 (09:25 -0600)]
uninit-pred-8_b.c: Disable dominator optimizations.

* gcc.dg/uninit-pred-8_b.c: Disable dominator optimizations.

From-SVN: r176160

13 years ago* EXCLUDES (libgcov.c): Remove.
Rainer Orth [Mon, 11 Jul 2011 14:43:42 +0000 (14:43 +0000)]
* EXCLUDES (libgcov.c): Remove.

From-SVN: r176158

13 years agodfp-bit.c, dfp-bit.h: Move to ../libgcc.
Rainer Orth [Mon, 11 Jul 2011 14:40:56 +0000 (14:40 +0000)]
dfp-bit.c, dfp-bit.h: Move to ../libgcc.

gcc:
* config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
* config/t-dfprules: Move to ../libgcc/config.
* config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
(x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
Likewise.
(i[34567]86-*-cygwin*): Likewise.
(i[34567]86-*-mingw*,  x86_64-*-mingw*): Likewise.
(powerpc-*-linux*, powerpc64-*-linux*): Likewise.
* Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
(libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
D64PBIT_FUNCS, D128PBIT_FUNCS.

libgcc:
* dfp-bit.c, dfp-bit.h: New files.
* Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): New
variables.
($(d32pbit-o)): Use $(srcdir) to refer to dfp-bit.c
($(d64pbit-o)): Likewise.
($(d128pbit-o)): Likewise.
* config/t-dfprules: New file.
* config.host (i[34567]86-*-linux*): Add t-dfprules to tmake_file.
(i[34567]86-*-kfreebsd*-gnu, i[34567]86-*-knetbsd*-gnu,
i[34567]86-*-gnu*, i[34567]86-*-kopensolaris*-gnu): Likewise.
(x86_64-*-linux*): Likewise.
(x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu): Likewise.
(i[34567]86-*-cygwin*): Likewise.
(i[34567]86-*-mingw*,  x86_64-*-mingw*): Likewise.
(powerpc-*-linux*, powerpc64-*-linux*): Likewise.

From-SVN: r176156

13 years agotree-vrp.c (simplify_conversion_using_ranges): Manually translate the source value...
Richard Guenther [Mon, 11 Jul 2011 14:27:04 +0000 (14:27 +0000)]
tree-vrp.c (simplify_conversion_using_ranges): Manually translate the source value-range through the conversion chain.

2011-07-11  Richard Guenther  <rguenther@suse.de>

* tree-vrp.c (simplify_conversion_using_ranges): Manually
translate the source value-range through the conversion chain.

From-SVN: r176154

13 years agoCheck ia32 effective target.
H.J. Lu [Mon, 11 Jul 2011 13:29:29 +0000 (13:29 +0000)]
Check ia32 effective target.

2011-07-11  H.J. Lu  <hongjiu.lu@intel.com>

* gcc.dg/vect/costmodel/x86_64/x86_64-costmodel-vect.exp: Check
ia32.
* go.test/go-test.exp (go-set-goarch): Likewise.

From-SVN: r176153

13 years agoAdd my name (Daniel Carrera) to the "Write After Approval" list.
Daniel Carrera [Mon, 11 Jul 2011 12:17:55 +0000 (12:17 +0000)]
Add my name (Daniel Carrera) to the "Write After Approval" list.

From-SVN: r176152

13 years agoexpr.c (expand_expr_real_1): Use expand_insn for movmisalign.
Richard Sandiford [Mon, 11 Jul 2011 12:11:33 +0000 (12:11 +0000)]
expr.c (expand_expr_real_1): Use expand_insn for movmisalign.

gcc/
* expr.c (expand_expr_real_1): Use expand_insn for movmisalign.

From-SVN: r176150

13 years agoconfig.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build a bi-arch compiler...
Arthur Loiret [Mon, 11 Jul 2011 11:41:56 +0000 (11:41 +0000)]
config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build a bi-arch compiler defaulting to 31-bit.

2011-07-11  Arthur Loiret  <aloiret@debian.org>

        * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
        a bi-arch compiler defaulting to 31-bit. In this case:
        (tmake_file): Add s390/t-linux64.
        * doc/install.texi: Add s390-linux to the list of targets supporting
        --enable-targets=all.

From-SVN: r176146

13 years agoconfig.gcc (mips*-*-linux*): If 'enabled_targets' is 'all'...
Arthur Loiret [Mon, 11 Jul 2011 11:22:15 +0000 (11:22 +0000)]
config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all'...

2011-07-11  Arthur Loiret  <aloiret@debian.org>
            Matthias Klose <doko@debian.org>

        * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
        a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
        (tm_file): Add mips/linux64.h.
        (tmake_file): Add mips/t-linux64.
        (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
        * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
        instead of hardcoded mabi=n32.
        * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
        tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
        convention.

Co-Authored-By: Matthias Klose <doko@debian.org>
From-SVN: r176145

13 years agopasses.c (init_optimization_passes): Add invariant motion pass after induction variab...
Andreas Krebbel [Mon, 11 Jul 2011 10:23:57 +0000 (10:23 +0000)]
passes.c (init_optimization_passes): Add invariant motion pass after induction variable optimization.

2011-07-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

* passes.c (init_optimization_passes): Add invariant motion pass
after induction variable optimization.

From-SVN: r176142

13 years agore PR target/39633 ([avr] loop bug: missing 8-bit comparison (*cmpqi))
Georg-Johann Lay [Mon, 11 Jul 2011 10:13:30 +0000 (10:13 +0000)]
re PR target/39633 ([avr] loop bug: missing 8-bit comparison (*cmpqi))

gcc/
PR target/39633
* config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
offsets 1..5 set cc0 in a usable way.

testsuite/
PR target/39633
* gcc.target/avr/torture/pr39633.c: New test case.

From-SVN: r176141

13 years agotree.h (call_expr_arg): Remove.
Romain Geissler [Mon, 11 Jul 2011 10:00:54 +0000 (10:00 +0000)]
tree.h (call_expr_arg): Remove.

2011-07-11  Romain Geissler  <romain.geissler@gmail.com>

        * tree.h (call_expr_arg): Remove.
        (call_expr_argp): Likewise.

From-SVN: r176140

13 years agoIn gcc/objc/: 2011-07-11 Nicola Pero <nicola.pero@meta-innovation.com>
Nicola Pero [Mon, 11 Jul 2011 09:42:23 +0000 (09:42 +0000)]
In gcc/objc/: 2011-07-11 Nicola Pero <nicola.pero@meta-innovation.com>

In gcc/objc/:
2011-07-11  Nicola Pero  <nicola.pero@meta-innovation.com>

* objc-encoding.h (obstack.h): Do not include.
(util_obstack, util_firstobj): Do not declare.
(encode_field_decl): Updated prototype to return a tree and take a
single tree argument.  Updated comments.
* objc-encoding.c (util_obstack, util_firstobj): Made static.
(objc_encoding_init): New.
(encode_field_decl): Existing function renamed to encode_field and
made static.  New encode_field_decl wrapper function added.
(encode_aggregate_fields): Update call to encode_field_decl to
call encode_field.
* objc-next-runtime-abi-02.c (obstack.h): Do not include.
(util_obstack, util_firstobj): Do not declare.
(build_v2_ivar_list_initializer): Updated call to
encode_field_decl.
* objc-runtime-shared-support.c (obstack.h): Do not include.
(util_obstack, util_firstobj): Do not declare.
(build_ivar_list_initializer): Updated call to encode_field_decl.
* objc-act.c (objc_init): Use objc_encoding_init.
* Make-lang.in (objc/objc-runtime-shared-support.o): Do not depend
on OBSTACK_H.
(objc/objc-gnu-runtime-abi-01.o): Likewise.
(objc/objc-next-runtime-abi-01.o): Likewise.
(objc/objc-next-runtime-abi-02.o): Likewise.
(objc/objc-act.o): Likewise.

In gcc/objcp/:
2011-07-11  Nicola Pero  <nicola.pero@meta-innovation.com>

* Make-lang.in (objcp/objc-runtime-shared-support.o): Do not
depend on OBSTACK_H.
(objcp/objc-gnu-runtime-abi-01.o): Likewise.
(objcp/objc-next-runtime-abi-01.o): Likewise.
(objcp/objc-next-runtime-abi-02.o): Likewise.
(objcp/objcp-act.o): Likewise.

From-SVN: r176139

13 years agosparc.md (save_register_window_1): Rename to...
Eric Botcazou [Mon, 11 Jul 2011 09:35:35 +0000 (09:35 +0000)]
sparc.md (save_register_window_1): Rename to...

* config/sparc/sparc.md (save_register_window_1): Rename to...
(window_save): ...this.
* config/sparc/sparc.c (emit_save_register_window): Rename to...
(emit_window_save): ...this.
(sparc_expand_prologue): Adjust to above renaming.

From-SVN: r176138

13 years agore PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
Tobias Burnus [Mon, 11 Jul 2011 08:14:05 +0000 (10:14 +0200)]
re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])

2011-07-11  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * gfortran.dg/coarray_lock_3.f90: Remove bogus dg-error.

From-SVN: r176137

13 years agotarget-supports.exp (check_effective_target_scheduling): New Function.
Georg-Johann Lay [Mon, 11 Jul 2011 07:54:17 +0000 (07:54 +0000)]
target-supports.exp (check_effective_target_scheduling): New Function.

* lib/target-supports.exp (check_effective_target_scheduling):
New Function.
* gcc.dg/pr46614.c: Add dg-require-effective-target scheduling.
* gcc.dg/pr45055.c: Ditto.
* gcc.dg/pr45353.c: Ditto.
* g++.dg/pr45056.C: Ditto.

From-SVN: r176136

13 years agostruct-by-value-16_main.c: Skip AVR.
Georg-Johann Lay [Mon, 11 Jul 2011 07:52:23 +0000 (07:52 +0000)]
struct-by-value-16_main.c: Skip AVR.

* gcc.dg/compat/struct-by-value-16_main.c: Skip AVR.
* gcc.dg/compat/struct-by-value-17_main.c: Skip AVR.
* gcc.dg/compat/struct-by-value-18_main.c: Skip AVR.
* g++.dg/torture/pr31863.C: Skip AVR.

From-SVN: r176135

13 years agoDaily bump.
GCC Administrator [Mon, 11 Jul 2011 00:18:57 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r176133

13 years agoUse movl instead of movabs for x32.
H.J. Lu [Sun, 10 Jul 2011 21:42:08 +0000 (21:42 +0000)]
Use movl instead of movabs for x32.

2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>

* config/i386/i386.c (ix86_trampoline_init): Use movl instead
of movabs for x32.

From-SVN: r176129

13 years agoi386.c (x86_output_mi_thunk): Generate rtl and run final, instead of emitting text...
Richard Henderson [Sun, 10 Jul 2011 21:12:57 +0000 (14:12 -0700)]
i386.c (x86_output_mi_thunk): Generate rtl and run final, instead of emitting text directly.

        * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
        run final, instead of emitting text directly.

From-SVN: r176128

13 years agoTurn on 64bit and check models for x32.
H.J. Lu [Sun, 10 Jul 2011 19:25:28 +0000 (19:25 +0000)]
Turn on 64bit and check models for x32.

2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>

* config/i386/i386.c (ix86_option_override_internal): Turn on
OPTION_MASK_ISA_64BIT for TARGET_X32.  Only allow small and
small PIC models for TARGET_X32.

From-SVN: r176127

13 years agore PR fortran/49690 (ICE in gfc_typenode_for_spec, at fortran/trans-types.c:1019)
Tobias Burnus [Sun, 10 Jul 2011 14:28:48 +0000 (16:28 +0200)]
re PR fortran/49690 (ICE in gfc_typenode_for_spec, at fortran/trans-types.c:1019)

2011-07-10  Tobias Burnus  <burnus@net-b.de>

        PR fortran/49690
        * intrinsic.c (add_functions): Use BT_VOID for 2nd argument of
        * SIGNAL.

2011-07-10  Tobias Burnus  <burnus@net-b.de>

        PR fortran/49690
        * gfortran.dg/intrinsic_signal.f90: New.

From-SVN: r176121

13 years agore PR c++/49691 (ICE in cp_parser_late_return_type_opt, at cp/parser.c:15562)
Jason Merrill [Sun, 10 Jul 2011 14:24:03 +0000 (10:24 -0400)]
re PR c++/49691 (ICE  in cp_parser_late_return_type_opt, at cp/parser.c:15562)

PR c++/49691
* parser.c (cp_parser_late_return_type_opt): Check quals parameter
rather than current_class_type to determine whether to set 'this'.
(cp_parser_direct_declarator): Pass -1 to quals if member_p is false.
(cp_parser_init_declarator): Pass down member_p.

From-SVN: r176120

13 years agoDaily bump.
GCC Administrator [Sun, 10 Jul 2011 00:17:54 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r176115

13 years agore PR target/49684 (build fails on crtstuff.c / crtbegin using default CRT_CALL_STATI...
Hans-Peter Nilsson [Sat, 9 Jul 2011 22:36:12 +0000 (22:36 +0000)]
re PR target/49684 (build fails on crtstuff.c / crtbegin using default CRT_CALL_STATIC_FUNCTION)

PR target/49684
* config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
$(LIBGCC2_CFLAGS).

From-SVN: r176111

13 years agore PR bootstrap/49680 (IRIX 6.5 bootstrap broken: SEGV in __register_frame_info_bases)
Hans-Peter Nilsson [Sat, 9 Jul 2011 22:35:43 +0000 (22:35 +0000)]
re PR bootstrap/49680 (IRIX 6.5 bootstrap broken: SEGV in __register_frame_info_bases)

PR bootstrap/49680
* config/cris/cris.c (cris_asm_output_case_end): Robustify against
stray notes and debug insns by using prev_nonnote_nondebug_insn
instead of PREV_INSN.

From-SVN: r176110

13 years agoerror.c (sys_abort): Change argument list from "()" to "(void)".
Tobias Burnus [Sat, 9 Jul 2011 21:22:44 +0000 (23:22 +0200)]
error.c (sys_abort): Change argument list from "()" to "(void)".

2011-07-09  Tobias Burnus  <burnus@net-b.de>

        * runtime/error.c (sys_abort): Change argument list
        from "()" to "(void)".

From-SVN: r176109

13 years agodwarf2: Move CFI output routines to dwarf2cfi.c.
Richard Henderson [Sat, 9 Jul 2011 20:56:42 +0000 (13:56 -0700)]
dwarf2: Move CFI output routines to dwarf2cfi.c.

        * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
        DWARF_TYPE_SIGNATURE_SIZE): Move from ...
        * dwarf2out.c: ... here.
        (output_all_cfis): Remove.
        (dwarf2out_switch_text_section): Use output_cfis directly.
        (size_of_locs): Export.
        (output_loc_sequence, output_loc_sequence_raw): Export.
        (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
        output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
        output_cfa_loc_raw): Move to ...
        * dwarfcfi.c: ... here.
        * dwarf2out.h: Update decls.

From-SVN: r176107

13 years agodwarf2: Reduce some redundant definitions.
Richard Henderson [Sat, 9 Jul 2011 20:43:06 +0000 (13:43 -0700)]
dwarf2: Reduce some redundant definitions.

Move some definitions to defaults.h; some simply aren't needed
anymore in the respective dwarf2{cfi,out}.c files.

        * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
        DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
        * dwarf2cfi.c: ... here.
        (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
        (DWARF_ROUND, DWARF_CIE_ID): Remove.
        * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
        (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
        (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.

From-SVN: r176102

13 years agodwarf2cfi: Handle return column save from CIE.
Richard Henderson [Sat, 9 Jul 2011 20:39:00 +0000 (13:39 -0700)]
dwarf2cfi: Handle return column save from CIE.

When we record a save of the return column in the CIE, remember
that while processing the FDE.  This requires propagating the
handling of PC_RTX as a representative of the return column to
more locations.

MIPS had been handling this case by hand, and is no longer required.

        * dwarf2cfi.c (cie_return_save): New.
        (queue_reg_save): Use compare_reg_or_pc.
        (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
        (dwarf2out_frame_debug_expr): Likewise.
        (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
        (initial_return_save): Likewise.
        (execute_dwarf2_frame): Save and restore initial return save from
        the cie to the fde.
        * config/mips/mips.c (mips_frame_set): Remove special case for
        DWARF_FRAME_RETURN_COLUMN.

From-SVN: r176099

13 years agodwarf2cfi: Simplify re-initialization for each function.
Richard Henderson [Sat, 9 Jul 2011 20:30:07 +0000 (13:30 -0700)]
dwarf2cfi: Simplify re-initialization for each function.

There's no point calling lookup_cfa to re-create the CFA
we initialized just a few lines above.

        * dwarf2cfi.c (lookup_cfa): Remove.
        (execute_dwarf2_frame): Assert queues are empty on entry.
        Setup initial cfa directly, not via lookup_cfa.
        Don't clear args_size state here.

From-SVN: r176098

13 years agodwarf2cfi: Unify add_fde_cfi and add_cie_cfi.
Richard Henderson [Sat, 9 Jul 2011 20:26:43 +0000 (13:26 -0700)]
dwarf2cfi: Unify add_fde_cfi and add_cie_cfi.

        * dwarf2cfi.c (add_cfi_vec): New.
        (add_cfi): Rename from add_fde_cfi.  Add the element to add_cfi_vec.
        (def_cfa_1, reg_save): Remove for_cie argument.  Update all callers.
        (execute_dwarf2_frame): Set add_cfi_vec.

From-SVN: r176095

13 years agoMove ASM_COMMENT_START to defaults.h.
Richard Henderson [Sat, 9 Jul 2011 20:18:32 +0000 (13:18 -0700)]
Move ASM_COMMENT_START to defaults.h.

Note the extreme silliness in dwarf2out.c with 3 (three) copies.

        * defaults.h (ASM_COMMENT_START): Move here...
        * dwarf2asm.c: ... from here.
        * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
        * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
        * varasm.c: Likewise.

From-SVN: r176093

13 years agore PR rtl-optimization/49686 (CFI notes are missed for delayed slot)
Richard Henderson [Sat, 9 Jul 2011 19:57:27 +0000 (12:57 -0700)]
re PR rtl-optimization/49686 (CFI notes are missed for delayed slot)

PR debug/49686
* dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
(create_cfi_notes): ... do it here instead.

From-SVN: r176091

13 years agoAdd x32 support to GCC testsuite.
H.J. Lu [Sat, 9 Jul 2011 19:25:11 +0000 (19:25 +0000)]
Add x32 support to GCC testsuite.

2011-07-09  H.J. Lu  <hongjiu.lu@intel.com>

* c-c++-common/dfp/func-vararg-alternate-d128-2.c: Support x32.
* c-c++-common/dfp/func-vararg-mixed-2.c: Likewise.
* g++.dg/abi/bitfield3.C: Likewise.
* g++.dg/eh/pr38662.C: Likewise.
* g++.dg/ext/attrib36.C: Likewise.
* g++.dg/ext/attrib37.C: Likewise.
* g++.dg/ext/attrib8.C: Likewise.
* g++.dg/ext/tmplattr1.C: Likewise.
* g++.dg/inherit/override-attribs.C: Likewise.
* g++.dg/opt/inline9.C: Likewise.
* g++.dg/opt/life1.C: Likewise.
* g++.dg/opt/longbranch2.C: Likewise.
* g++.dg/opt/nrv12.C: Likewise.
* g++.dg/opt/reg-stack4.C: Likewise.
* g++.dg/other/pr35504.C: Likewise.
* g++.dg/other/pr39496.C: Likewise.
* g++.dg/torture/stackalign/eh-fastcall-1.C: Likewise.
* g++.dg/torture/stackalign/eh-thiscall-1.C: Likewise.
* g++.dg/torture/stackalign/stdcall-1.C: Likewise.
* g++.dg/torture/stackalign/unwind-0.C: Likewise.
* g++.dg/torture/stackalign/unwind-1.C: Likewise.
* g++.dg/torture/stackalign/unwind-2.C: Likewise.
* g++.dg/torture/stackalign/unwind-3.C: Likewise.
* g++.dg/torture/stackalign/unwind-4.C: Likewise.
* g++.dg/torture/stackalign/unwind-5.C: Likewise.
* g++.dg/torture/stackalign/unwind-6.C: Likewise.
* g++.dg/warn/pr15774-1.C: Likewise.
* g++.dg/warn/pr15774-2.C: Likewise.
* g++.old-deja/g++.ext/attrib1.C: Likewise.
* g++.old-deja/g++.ext/attrib2.C: Likewise.
* g++.old-deja/g++.ext/attrib3.C: Likewise.
* g++.old-deja/g++.pt/asm2.C: Likewise.
* gcc.c-torture/compile/20000804-1.c: Likewise.
* gcc.c-torture/compile/pr16566-2.c: Likewise.
* gcc.c-torture/execute/ieee/ieee.exp: Likewise.
* gcc.dg/20020108-1.c: Likewise.
* gcc.dg/20020122-2.c: Likewise.
* gcc.dg/20020122-3.c: Likewise.
* gcc.dg/20020206-1.c: Likewise.
* gcc.dg/20020219-1.c: Likewise.
* gcc.dg/20020310-1.c: Likewise.
* gcc.dg/20020411-1.c: Likewise.
* gcc.dg/20020418-2.c: Likewise.
* gcc.dg/20020426-2.c: Likewise.
* gcc.dg/20020517-1.c: Likewise.
* gcc.dg/20030204-1.c: Likewise.
* gcc.dg/20030826-2.c: Likewise.
* gcc.dg/20031102-1.c: Likewise.
* gcc.dg/20031202-1.c: Likewise.
* gcc.dg/20050111-1.c: Likewise.
* gcc.dg/20050503-1.c: Likewise.
* gcc.dg/array-init-1.c: Likewise.
* gcc.dg/builtin-apply4.c: Likewise.
* gcc.dg/dfp/pr31344.c: Likewise.
* gcc.dg/gomp/atomic-11.c: Likewise.
* gcc.dg/graphite/pr40281.c: Likewise.
* gcc.dg/ia64-sync-1.c: Likewise.
* gcc.dg/ia64-sync-2.c: Likewise.
* gcc.dg/ia64-sync-3.c: Likewise.
* gcc.dg/ia64-sync-4.c: Likewise.
* gcc.dg/ifcvt-fabs-1.c: Likewise.
* gcc.dg/invalid-call-1.c: Likewise.
* gcc.dg/loop-3.c: Likewise.
* gcc.dg/lower-subreg-1.c: Likewise.
* gcc.dg/lto/pr47259_0.c: Likewise.
* gcc.dg/nested-calls-1.c: Likewise.
* gcc.dg/pr20017.c: Likewise.
* gcc.dg/pr25023.c: Likewise.
* gcc.dg/pr27671-2.c: Likewise.
* gcc.dg/pr32176.c: Likewise.
* gcc.dg/pr33676.c: Likewise.
* gcc.dg/pr35045.c: Likewise.
* gcc.dg/pr36015.c: Likewise.
* gcc.dg/pr36584.c: Likewise.
* gcc.dg/pr36998.c: Likewise.
* gcc.dg/pr37438.c: Likewise.
* gcc.dg/pr37908.c: Likewise.
* gcc.dg/pr41241.c: Likewise.
* gcc.dg/pr41340.c: Likewise.
* gcc.dg/pr44136.c: Likewise.
* gcc.dg/pr44194-1.c: Likewise.
* gcc.dg/pr46212.c: Likewise.
* gcc.dg/prefetch-loop-arrays-1.c: Likewise.
* gcc.dg/setjmp-2.c: Likewise.
* gcc.dg/short-compare-1.c: Likewise.
* gcc.dg/short-compare-2.c: Likewise.
* gcc.dg/smod-1.c: Likewise.
* gcc.dg/sync-2.c: Likewise.
* gcc.dg/sync-3.c: Likewise.
* gcc.dg/tls/opt-1.c: Likewise.
* gcc.dg/tls/opt-2.c: Likewise.
* gcc.dg/tls/opt-3.c: Likewise.
* gcc.dg/torture/badshift.c: Likewise.
* gcc.dg/torture/fp-int-convert-float80-timode.c: Likewise.
* gcc.dg/torture/pr20314-2.c: Likewise.
* gcc.dg/torture/pr36891.c: Likewise.
* gcc.dg/torture/pr38774.c: Likewise.
* gcc.dg/torture/stackalign/alloca-2.c: Likewise.
* gcc.dg/torture/stackalign/alloca-4.c: Likewise.
* gcc.dg/torture/stackalign/alloca-5.c: Likewise.
* gcc.dg/torture/stackalign/alloca-6.c: Likewise.
* gcc.dg/torture/stackalign/fastcall-1.c: Likewise.
* gcc.dg/torture/stackalign/push-1.c: Likewise.
* gcc.dg/torture/stackalign/regparm-1.c: Likewise.
* gcc.dg/torture/stackalign/thiscall-1.c: Likewise.
* gcc.dg/tree-ssa/loop-28.c: Likewise.
* gcc.dg/tree-ssa/prefetch-3.c: Likewise.
* gcc.dg/tree-ssa/prefetch-4.c: Likewise.
* gcc.dg/tree-ssa/prefetch-5.c: Likewise.
* gcc.dg/tree-ssa/prefetch-6.c: Likewise.
* gcc.dg/tree-ssa/prefetch-7.c: Likewise.
* gcc.dg/tree-ssa/prefetch-8.c: Likewise.
* gcc.dg/tree-ssa/prefetch-9.c: Likewise.
* gcc.dg/tree-ssa/stdarg-2.c: Likewise.
* gcc.dg/tree-ssa/stdarg-3.c: Likewise.
* gcc.dg/tree-ssa/stdarg-4.c: Likewise.
* gcc.dg/tree-ssa/stdarg-5.c: Likewise.
* gcc.dg/tree-ssa/update-unroll-1.c: Likewise.
* gcc.dg/unroll-1.c: Likewise.
* gcc.dg/vect/costmodel/x86_64/x86_64-costmodel-vect.exp: Likewise.
* gcc.misc-tests/i386-pf-3dnow-1.c: Likewise.
* gcc.misc-tests/i386-pf-athlon-1.c: Likewise.
* gcc.misc-tests/i386-pf-none-1.c: Likewise.
* gcc.misc-tests/i386-pf-sse-1.c: Likewise.
* gcc.target/i386/20000609-1.c: Likewise.
* gcc.target/i386/20000720-1.c: Likewise.
* gcc.target/i386/20000724-1.c: Likewise.
* gcc.target/i386/20011107-1.c: Likewise.
* gcc.target/i386/20011119-1.c: Likewise.
* gcc.target/i386/20020201-3.c: Likewise.
* gcc.target/i386/20020218-1.c: Likewise.
* gcc.target/i386/20020729-1.c: Likewise.
* gcc.target/i386/20030926-1.c: Likewise.
* gcc.target/i386/20060125-1.c: Likewise.
* gcc.target/i386/20060125-2.c: Likewise.
* gcc.target/i386/20060512-1.c: Likewise.
* gcc.target/i386/20060512-2.c: Likewise.
* gcc.target/i386/20060512-3.c: Likewise.
* gcc.target/i386/20060512-4.c: Likewise.
* gcc.target/i386/387-1.c: Likewise.
* gcc.target/i386/387-2.c: Likewise.
* gcc.target/i386/387-5.c: Likewise.
* gcc.target/i386/387-6.c: Likewise.
* gcc.target/i386/980312-1.c: Likewise.
* gcc.target/i386/980313-1.c: Likewise.
* gcc.target/i386/990117-1.c: Likewise.
* gcc.target/i386/990424-1.c: Likewise.
* gcc.target/i386/990524-1.c: Likewise.
* gcc.target/i386/991129-1.c: Likewise.
* gcc.target/i386/991214-1.c: Likewise.
* gcc.target/i386/991230-1.c: Likewise.
* gcc.target/i386/addr-sel-1.c: Likewise.
* gcc.target/i386/aggregate-ret1.c: Likewise.
* gcc.target/i386/aggregate-ret2.c: Likewise.
* gcc.target/i386/align-main-3.c: Likewise.
* gcc.target/i386/amd64-abi-1.c: Likewise.
* gcc.target/i386/amd64-abi-2.c: Likewise.
* gcc.target/i386/amd64-abi-4.c: Likewise.
* gcc.target/i386/amd64-abi-5.c: Likewise.
* gcc.target/i386/amd64-abi-6.c: Likewise.
* gcc.target/i386/asm-1.c: Likewise.
* gcc.target/i386/asm-3.c: Likewise.
* gcc.target/i386/asm-5.c: Likewise.
* gcc.target/i386/attributes-error.c: Likewise.
* gcc.target/i386/avx-vcvtsd2si-2.c: Likewise.
* gcc.target/i386/avx-vcvtsi2sd-2.c: Likewise.
* gcc.target/i386/avx-vcvtsi2ss-2.c: Likewise.
* gcc.target/i386/avx-vcvtss2si-2.c: Likewise.
* gcc.target/i386/avx-vcvttsd2si-2.c: Likewise.
* gcc.target/i386/avx-vcvttss2si-2.c: Likewise.
* gcc.target/i386/avx-vinsertps-3.c: Likewise.
* gcc.target/i386/avx-vmovd-2.c: Likewise.
* gcc.target/i386/avx-vmovq-2.c: Likewise.
* gcc.target/i386/avx-vmovq-3.c: Likewise.
* gcc.target/i386/avx-vpextrq-1.c: Likewise.
* gcc.target/i386/avx-vpinsrq-1.c: Likewise.
* gcc.target/i386/avx-vzeroupper-16.c: Likewise.
* gcc.target/i386/avx-vzeroupper-17.c: Likewise.
* gcc.target/i386/avx-vzeroupper-18.c: Likewise.
* gcc.target/i386/bitfield1.c: Likewise.
* gcc.target/i386/bitfield2.c: Likewise.
* gcc.target/i386/bmi-2.c: Likewise.
* gcc.target/i386/bmi-5.c: Likewise.
* gcc.target/i386/builtin-unreachable.c: Likewise.
* gcc.target/i386/cleanup-2.c: Likewise.
* gcc.target/i386/clobbers.c: Likewise.
* gcc.target/i386/cmov8.c: Likewise.
* gcc.target/i386/cmpxchg16b-1.c: Likewise.
* gcc.target/i386/compress-float-387-pic.c: Likewise.
* gcc.target/i386/compress-float-387.c: Likewise.
* gcc.target/i386/compress-float-sse-pic.c: Likewise.
* gcc.target/i386/compress-float-sse.c: Likewise.
* gcc.target/i386/crc32-2.c: Likewise.
* gcc.target/i386/crc32-3.c: Likewise.
* gcc.target/i386/divmod-7.c: Likewise.
* gcc.target/i386/divmod-8.c: Likewise.
* gcc.target/i386/fastcall-sseregparm.c: Likewise.
* gcc.target/i386/fma3-builtin.c: Likewise.
* gcc.target/i386/fma3-fma.c: Likewise.
* gcc.target/i386/fma4-256-vector.c: Likewise.
* gcc.target/i386/fma4-builtin.c: Likewise.
* gcc.target/i386/fma4-fma-2.c: Likewise.
* gcc.target/i386/fma4-fma.c: Likewise.
* gcc.target/i386/fma4-vector-2.c: Likewise.
* gcc.target/i386/fma4-vector.c: Likewise.
* gcc.target/i386/funcspec-1.c: Likewise.
* gcc.target/i386/funcspec-10.c: Likewise.
* gcc.target/i386/funcspec-11.c: Likewise.
* gcc.target/i386/funcspec-2.c: Likewise.
* gcc.target/i386/funcspec-5.c: Likewise.
* gcc.target/i386/funcspec-6.c: Likewise.
* gcc.target/i386/gcc-have-sync-compare-and-swap-1.c: Likewise.
* gcc.target/i386/gcc-have-sync-compare-and-swap-2.c: Likewise.
* gcc.target/i386/gcc-have-sync-compare-and-swap-3.c: Likewise.
* gcc.target/i386/gcc-have-sync-compare-and-swap-4.c: Likewise.
* gcc.target/i386/incoming-1.c: Likewise.
* gcc.target/i386/incoming-10.c: Likewise.
* gcc.target/i386/incoming-11.c: Likewise.
* gcc.target/i386/incoming-12.c: Likewise.
* gcc.target/i386/incoming-13.c: Likewise.
* gcc.target/i386/incoming-14.c: Likewise.
* gcc.target/i386/incoming-15.c: Likewise.
* gcc.target/i386/incoming-2.c: Likewise.
* gcc.target/i386/incoming-3.c: Likewise.
* gcc.target/i386/incoming-4.c: Likewise.
* gcc.target/i386/incoming-5.c: Likewise.
* gcc.target/i386/incoming-6.c: Likewise.
* gcc.target/i386/incoming-7.c: Likewise.
* gcc.target/i386/incoming-8.c: Likewise.
* gcc.target/i386/incoming-9.c: Likewise.
* gcc.target/i386/lea.c: Likewise.
* gcc.target/i386/local.c: Likewise.
* gcc.target/i386/loop-1.c: Likewise.
* gcc.target/i386/loop-2.c: Likewise.
* gcc.target/i386/loop-3.c: Likewise.
* gcc.target/i386/max-stack-align.c: Likewise.
* gcc.target/i386/memcpy-1.c: Likewise.
* gcc.target/i386/movbe-2.c: Likewise.
* gcc.target/i386/movq-2.c: Likewise.
* gcc.target/i386/movq.c: Likewise.
* gcc.target/i386/nrv1.c: Likewise.
* gcc.target/i386/pad-4.c: Likewise.
* gcc.target/i386/pad-5a.c: Likewise.
* gcc.target/i386/pad-5b.c: Likewise.
* gcc.target/i386/pad-6a.c: Likewise.
* gcc.target/i386/pad-6b.c: Likewise.
* gcc.target/i386/pad-7.c: Likewise.
* gcc.target/i386/pad-9.c: Likewise.
* gcc.target/i386/pentium4-not-mull.c: Likewise.
* gcc.target/i386/pic-1.c: Likewise.
* gcc.target/i386/pr12092-1.c: Likewise.
* gcc.target/i386/pr12329.c: Likewise.
* gcc.target/i386/pr21518.c: Likewise.
* gcc.target/i386/pr22362.c: Likewise.
* gcc.target/i386/pr22585.c: Likewise.
* gcc.target/i386/pr23098.c: Likewise.
* gcc.target/i386/pr25196.c: Likewise.
* gcc.target/i386/pr25293.c: Likewise.
* gcc.target/i386/pr25654.c: Likewise.
* gcc.target/i386/pr26449.c: Likewise.
* gcc.target/i386/pr26778.c: Likewise.
* gcc.target/i386/pr26826.c: Likewise.
* gcc.target/i386/pr27266.c: Likewise.
* gcc.target/i386/pr29978.c: Likewise.
* gcc.target/i386/pr30505.c: Likewise.
* gcc.target/i386/pr30961-1.c: Likewise.
* gcc.target/i386/pr31628.c: Likewise.
* gcc.target/i386/pr32000-2.c: Likewise.
* gcc.target/i386/pr32661-1.c: Likewise.
* gcc.target/i386/pr32708-2.c: Likewise.
* gcc.target/i386/pr32708-3.c: Likewise.
* gcc.target/i386/pr34256.c: Likewise.
* gcc.target/i386/pr34312.c: Likewise.
* gcc.target/i386/pr34522.c: Likewise.
* gcc.target/i386/pr35160.c: Likewise.
* gcc.target/i386/pr35281.c: Likewise.
* gcc.target/i386/pr36246.c: Likewise.
* gcc.target/i386/pr36786.c: Likewise.
* gcc.target/i386/pr37275.c: Likewise.
* gcc.target/i386/pr37843-3.c: Likewise.
* gcc.target/i386/pr37843-4.c: Likewise.
* gcc.target/i386/pr39082-1.c: Likewise.
* gcc.target/i386/pr39431.c: Likewise.
* gcc.target/i386/pr39496.c: Likewise.
* gcc.target/i386/pr39543-2.c: Likewise.
* gcc.target/i386/pr39911.c: Likewise.
* gcc.target/i386/pr40718.c: Likewise.
* gcc.target/i386/pr40906-1.c: Likewise.
* gcc.target/i386/pr40906-2.c: Likewise.
* gcc.target/i386/pr40906-3.c: Likewise.
* gcc.target/i386/pr40934.c: Likewise.
* gcc.target/i386/pr41900.c: Likewise.
* gcc.target/i386/pr42589.c: Likewise.
* gcc.target/i386/pr43662.c: Likewise.
* gcc.target/i386/pr43671.c: Likewise.
* gcc.target/i386/pr43766.c: Likewise.
* gcc.target/i386/pr43869.c: Likewise.
* gcc.target/i386/pr44942.c: Likewise.
* gcc.target/i386/pr44948-2a.c: Likewise.
* gcc.target/i386/pr45234.c: Likewise.
* gcc.target/i386/pr45336-2.c: Likewise.
* gcc.target/i386/pr45336-4.c: Likewise.
* gcc.target/i386/pr45852.c: Likewise.
* gcc.target/i386/pr46470.c: Likewise.
* gcc.target/i386/pr48037-1.c: Likewise.
* gcc.target/i386/pr48389.c: Likewise.
* gcc.target/i386/pr49095.c: Likewise.
* gcc.target/i386/pr9771-1.c: Likewise.
* gcc.target/i386/rdfsbase-1.c: Likewise.
* gcc.target/i386/rdfsbase-2.c: Likewise.
* gcc.target/i386/rdgsbase-1.c: Likewise.
* gcc.target/i386/rdgsbase-2.c: Likewise.
* gcc.target/i386/rdrand-3.c: Likewise.
* gcc.target/i386/regparm-stdcall.c: Likewise.
* gcc.target/i386/regparm.c: Likewise.
* gcc.target/i386/reload-1.c: Likewise.
* gcc.target/i386/rotate-2.c: Likewise.
* gcc.target/i386/sibcall-5.c: Likewise.
* gcc.target/i386/signbit-1.c: Likewise.
* gcc.target/i386/signbit-2.c: Likewise.
* gcc.target/i386/signbit-3.c: Likewise.
* gcc.target/i386/sse-5.c: Likewise.
* gcc.target/i386/sse-8.c: Likewise.
* gcc.target/i386/sse-cvtsi2ss-2.c: Likewise.
* gcc.target/i386/sse-cvtss2si-2.c: Likewise.
* gcc.target/i386/sse-cvttss2si-2.c: Likewise.
* gcc.target/i386/sse2-cvtsd2si-2.c: Likewise.
* gcc.target/i386/sse2-cvtsi2sd-2.c: Likewise.
* gcc.target/i386/sse2-cvttsd2si-2.c: Likewise.
* gcc.target/i386/sse2-init-v2di-2.c: Likewise.
* gcc.target/i386/sse2-movq-2.c: Likewise.
* gcc.target/i386/sse2-movq-3.c: Likewise.
* gcc.target/i386/sse4_1-insertps-3.c: Likewise.
* gcc.target/i386/sse4_1-pextrq.c: Likewise.
* gcc.target/i386/sse4_1-pinsrq.c: Likewise.
* gcc.target/i386/sse4_2-crc32q.c: Likewise.
* gcc.target/i386/sse4_2-popcntq.c: Likewise.
* gcc.target/i386/ssefn-1.c: Likewise.
* gcc.target/i386/ssefn-2.c: Likewise.
* gcc.target/i386/sseregparm-1.c: Likewise.
* gcc.target/i386/sseregparm-2.c: Likewise.
* gcc.target/i386/sseregparm-3.c: Likewise.
* gcc.target/i386/sseregparm-4.c: Likewise.
* gcc.target/i386/sseregparm-5.c: Likewise.
* gcc.target/i386/sseregparm-6.c: Likewise.
* gcc.target/i386/sseregparm-7.c: Likewise.
* gcc.target/i386/sseregparm-8.c: Likewise.
* gcc.target/i386/stack-realign.c: Likewise.
* gcc.target/i386/stack-usage-realign.c: Likewise.
* gcc.target/i386/stackalign/asm-1.c: Likewise.
* gcc.target/i386/stackalign/longlong-1.c: Likewise.
* gcc.target/i386/stackalign/longlong-2.c: Likewise.
* gcc.target/i386/stackalign/return-1.c: Likewise.
* gcc.target/i386/stackalign/return-2.c: Likewise.
* gcc.target/i386/stackalign/return-3.c: Likewise.
* gcc.target/i386/tailcall-1.c: Likewise.
* gcc.target/i386/tbm-2.c: Likewise.
* gcc.target/i386/udivmod-7.c: Likewise.
* gcc.target/i386/udivmod-8.c: Likewise.
* gcc.target/i386/unroll-1.c: Likewise.
* gcc.target/i386/vararg-1.c: Likewise.
* gcc.target/i386/vararg-2.c: Likewise.
* gcc.target/i386/vect8-ret.c: Likewise.
* gcc.target/i386/vectorize5.c: Likewise.
* gcc.target/i386/wmul-1.c: Likewise.
* gcc.target/i386/wmul-2.c: Likewise.
* gcc.target/i386/wrfsbase-1.c: Likewise.
* gcc.target/i386/wrfsbase-2.c: Likewise.
* gcc.target/i386/wrgsbase-1.c: Likewise.
* gcc.target/i386/wrgsbase-2.c: Likewise.
* gcc.target/i386/xop-pcmov.c: Likewise.
* gcc.target/i386/xop-pcmov2.c: Likewise.
* gcc.target/i386/xop-rotate1-vector.c: Likewise.
* gcc.target/i386/xop-rotate2-vector.c: Likewise.
* gcc.target/i386/xop-rotate3-vector.c: Likewise.
* gcc.target/i386/xop-shift1-vector.c: Likewise.
* gcc.target/i386/xop-shift2-vector.c: Likewise.
* gcc.target/i386/xop-shift3-vector.c: Likewise.
* gcc.target/i386/zee.c: Likewise.
* gcc.target/x86_64/abi/callabi/callabi.exp: Likewise.
* gfortran.dg/compiler-directive_2.f: Likewise.
* gfortran.dg/g77/20010216-1.f: Likewise.
* gfortran.dg/gomp/pr39152.f90: Likewise.
* gfortran.dg/pr33794.f90: Likewise.

From-SVN: r176090

13 years agore PR fortran/48926 (gfortran.dg/coarray/image_index_1.f90 -fcoarray=single -O2...
Uros Bizjak [Sat, 9 Jul 2011 17:35:44 +0000 (19:35 +0200)]
re PR fortran/48926 (gfortran.dg/coarray/image_index_1.f90 -fcoarray=single  -O2  (test for excess errors))

PR fortran/48926
* expr.c (gfc_get_corank): Change return value to int.
* gfortran.h (gfc_get_corank): Update function prototype.

From-SVN: r176088

13 years ago* tree.c (build_vec_init_elt): Strip TARGET_EXPR.
Jason Merrill [Sat, 9 Jul 2011 17:01:11 +0000 (13:01 -0400)]
* tree.c (build_vec_init_elt): Strip TARGET_EXPR.

From-SVN: r176084

13 years agore PR debug/49676 (inefficiency: DW_AT_GNU_call_site_value calculates everything...
Jakub Jelinek [Sat, 9 Jul 2011 15:48:42 +0000 (17:48 +0200)]
re PR debug/49676 (inefficiency: DW_AT_GNU_call_site_value calculates everything << 32)

PR debug/49676
* dwarf2out.c (size_of_int_loc_descriptor): New function.
(address_of_int_loc_descriptor): Use it.
(scompare_loc_descriptor): Optimize EQ/NE comparison with
constant.

From-SVN: r176083

13 years agopdp11.md (define_c_enum "unspecv"): New.
Richard Henderson [Sat, 9 Jul 2011 15:41:31 +0000 (08:41 -0700)]
pdp11.md (define_c_enum "unspecv"): New.

* config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
(prologue, epilogue): New.
(return, *rts): New.
(blockage, setd, seti): New.
* config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
(TARGET_ASM_FUNCTION_EPILOGUE): Remove.
(pdp11_saved_regno): New.
(pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
generate rtl instead of text.
(pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
(pdp11_sp_frame_offset): Export.  Use pdp11_saved_regno.
* config/pdp11/pdp11-protos.h: Update.

From-SVN: r176082

13 years agors6000.c (rs6000_output_function_prologue): Don't try to insert an rtl prologue here.
Richard Henderson [Sat, 9 Jul 2011 15:38:54 +0000 (08:38 -0700)]
rs6000.c (rs6000_output_function_prologue): Don't try to insert an rtl prologue here.

* config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
try to insert an rtl prologue here.
(rs6000_output_function_epilogue): Similarly.
* config/rs6000/rs6000.md (prologue): Emit a barrier to
satisfy !TARGET_SCHED_PROLOG.
(epilogue, sibcall_epilogue): Likewise.

From-SVN: r176081

13 years agompi.c (runtime_error): New function.
Tobias Burnus [Sat, 9 Jul 2011 14:29:50 +0000 (16:29 +0200)]
mpi.c (runtime_error): New function.

2011-07-09  Tobias Burnus  <burnus@net-b.de>
            Daniel Carrera  <dcarrera@gmail.com>

        * caf/mpi.c (runtime_error): New function.
        (_gfortran_caf_register): Use it.
        (_gfortran_caf_sync_all): Use it, add STAT_STOPPED_IMAGE
        as possible status value.
        (_gfortran_caf_sync_images): Ditto.

Co-Authored-By: Daniel Carrera <dcarrera@gmail.com>
From-SVN: r176080

13 years agoMakefile.am: Add new header.
Jonathan Wakely [Sat, 9 Jul 2011 13:45:56 +0000 (13:45 +0000)]
Makefile.am: Add new header.

2011-07-09  Jonathan Wakely  <jwakely.gcc@gmail.com>

* include/Makefile.am: Add new header.
* include/Makefile.in: Regenerate.
* include/std/scoped_allocator: New.
* doc/xml/manual/status_cxx200x.xml: Update.
* testsuite/20_util/scoped_allocator/1.cc: New.
* testsuite/20_util/scoped_allocator/propagation.cc: New.
* testsuite/20_util/scoped_allocator/requirements/typedefs.cc: New.
* testsuite/20_util/scoped_allocator/requirements/
explicit_instantiation.cc: New.

From-SVN: r176079

13 years agostl_vector.h: Use new allocator model in C++0x mode.
Jonathan Wakely [Sat, 9 Jul 2011 13:06:29 +0000 (13:06 +0000)]
stl_vector.h: Use new allocator model in C++0x mode.

2011-07-09  Jonathan Wakely  <jwakely.gcc@gmail.com>

* include/bits/stl_vector.h: Use new allocator model in C++0x mode.
* include/bits/vector.tcc: Likewise.
* testsuite/util/testsuite_allocator.h (propagating_allocator): Define.
* testsuite/23_containers/vector/allocator/copy_assign.cc: New.
* testsuite/23_containers/vector/allocator/noexcept.cc: New.
* testsuite/23_containers/vector/allocator/copy.cc: New.
* testsuite/23_containers/vector/allocator/swap.cc: New.
* testsuite/23_containers/vector/allocator/move_assign.cc: New.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
Adjust dg-error line numbers.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc:
Likewise.

From-SVN: r176078

13 years agoalloc_traits.h (__allocator_always_compares_equal): New trait, provide partial specia...
Jonathan Wakely [Sat, 9 Jul 2011 12:48:32 +0000 (12:48 +0000)]
alloc_traits.h (__allocator_always_compares_equal): New trait, provide partial specializations for known allocators.

2011-07-09  Jonathan Wakely  <jwakely.gcc@gmail.com>

* include/ext/alloc_traits.h (__allocator_always_compares_equal): New
trait, provide partial specializations for known allocators.
(__alloc_traits::construct, __alloc_traits::destroy): Overload for
non-standard pointer types.
(__alloc_traits::_S_always_equal): New trait for use with noexcept.
(__alloc_traits::_S_nothrow_move): Likewise.
(__alloc_traits::_S_nothrow_swap): Likewise.

From-SVN: r176077

13 years agocast.h: Fix typo in include guard.
Jonathan Wakely [Sat, 9 Jul 2011 10:28:56 +0000 (10:28 +0000)]
cast.h: Fix typo in include guard.

2011-07-09  Jonathan Wakely  <jwakely.gcc@gmail.com>

* include/ext/cast.h: Fix typo in include guard.
* include/ext/pointer.h (_Unqualified_type): Remove redundant
partial specializations for volatile types. Fix typos in comments.
(pointer_traits<_Pointer_adaptor<Tp>>::pointer_to): Define.

From-SVN: r176075

13 years agosparc.h (STACK_SAVEAREA_MODE): Move around.
Eric Botcazou [Sat, 9 Jul 2011 10:13:56 +0000 (10:13 +0000)]
sparc.h (STACK_SAVEAREA_MODE): Move around.

* config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
(FP_REG_P): Delete.
(IN_OR_GLOBAL_P): Likewise.

From-SVN: r176074

13 years agore PR libstdc++/49668 ([C++0x] std::thread does not forward its args as rvalues)
Jonathan Wakely [Sat, 9 Jul 2011 10:13:01 +0000 (10:13 +0000)]
re PR libstdc++/49668 ([C++0x] std::thread does not forward its args as rvalues)

2011-07-09  Jonathan Wakely  <jwakely.gcc@gmail.com>

PR libstdc++/49668
* include/std/functional (__bind_simple): Define.
* include/std/future (_Task_setter): Parameterize by type of result
pointer instead of state object.
(_S_task_setter): Type deduction helper.
(_Task_state): Use _S_task_setter and __bind_simple.
(_Deferred_state, _Async_state): Store call wrapper directly not as
std::function. Use _S_task_setter and __bind_simple.
(_S_make_deferred_state, _S_make_async_state): Type deduction helpers.
(async): Use new functions and __bind_simple.
* include/std/mutex (call_once): Use __bind_simple.
* include/std/thread (thread): Likewise. Remove unused headers.
* src/thread.cc: Add header.
* testsuite/30_threads/async/49668.cc: New.
* testsuite/30_threads/call_once/49668.cc: New.
* testsuite/30_threads/thread/cons/49668.cc: New.
* testsuite/30_threads/thread/cons/moveable.cc: Remove unused bool.

From-SVN: r176073

13 years agore PR c++/45437 (Loses reference during update)
Jason Merrill [Sat, 9 Jul 2011 03:33:54 +0000 (23:33 -0400)]
re PR c++/45437 (Loses reference during update)

PR c++/45437
gcc/
* gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
compound assignment.
gcc/c-family/
* c-omp.c (check_omp_for_incr_expr): Handle preevaluation.
gcc/cp/
* typeck.c (cp_build_modify_expr): Preevaluate RHS.

From-SVN: r176072

13 years agocgraph.c (cgraph_add_to_same_comdat_group): New.
Jason Merrill [Sat, 9 Jul 2011 03:33:44 +0000 (23:33 -0400)]
cgraph.c (cgraph_add_to_same_comdat_group): New.

gcc/
* cgraph.c (cgraph_add_to_same_comdat_group): New.
* cgraph.h: Declare it.
* ipa.c (function_and_variable_visibility): Make sure thunks
have the right visibility.
gcc/cp/
* method.c (use_thunk): Use cgraph_add_to_same_comdat_group.
* optimize.c (maybe_clone_body): Likewise.
* semantics.c (maybe_add_lambda_conv_op): Likewise.

From-SVN: r176071

13 years agoDaily bump.
GCC Administrator [Sat, 9 Jul 2011 00:17:50 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r176070

13 years agodwarf2cfi: Flush queued saves at the end of the prologue.
Richard Henderson [Fri, 8 Jul 2011 23:48:59 +0000 (16:48 -0700)]
dwarf2cfi: Flush queued saves at the end of the prologue.

There's little point at holding onto these saves indefinitely.

PR bootstrap/49680
        * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
        end of the prologue.

From-SVN: r176066

13 years agodwarf2cfi: Insert notes correctly wrt tablejumps.
Richard Henderson [Fri, 8 Jul 2011 23:48:53 +0000 (16:48 -0700)]
dwarf2cfi: Insert notes correctly wrt tablejumps.

PR bootstrap/49680
        * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
        any tablejump vector.

From-SVN: r176065

13 years agore PR target/49621 (ICE in trunc_int_for_mode, at explow.c:57)
Jakub Jelinek [Fri, 8 Jul 2011 20:09:58 +0000 (22:09 +0200)]
re PR target/49621 (ICE in trunc_int_for_mode, at explow.c:57)

PR target/49621
* config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
CONST0_RTX (dest_mode) instead of const0_rtx as second operand
of NE.
* config/rs6000/vector.md (vector_select_<mode>,
vector_select_<mode>_uns): Change second operand of NE to
CONST0_RTX (<MODE>mode) instead of const0_rtx.
* config/rs6000/altivec.md (*altivec_vsel<mode>,
*altivec_vsel<mode>_uns): Expect second operand of NE to be
zero_constant of the corresponding vector mode.
* config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
Likewise.

* gcc.target/powerpc/altivec-34.c: New test.

From-SVN: r176063

13 years agobe.po, [...]: Update.
Joseph Myers [Fri, 8 Jul 2011 19:29:04 +0000 (20:29 +0100)]
be.po, [...]: Update.

* be.po, ca.po, da.po, de.po, el.po, es.po, fi.po, fr.po, id.po,
ja.po, nl.po, ru.po, sv.po, tr.po, uk,po, vi.po, zh_CN.po,
zh_TW.po: Update.

From-SVN: r176061

13 years agobe.po, [...]: Update.
Joseph Myers [Fri, 8 Jul 2011 19:26:35 +0000 (20:26 +0100)]
be.po, [...]: Update.

* be.po, da.po, de.po, el.po, es.po, fi.po, fr.po, id.po, ja.po,
nl.po, ru.po, sr.po, sv.po, tr.po, vi.po, zh_CN.po, zh_TW.po:
Update.

From-SVN: r176059

13 years agoOnly update ChangeLog.graphite.
Sebastian Pop [Fri, 8 Jul 2011 19:15:18 +0000 (19:15 +0000)]
Only update ChangeLog.graphite.

From-SVN: r176058

13 years agoRemove continue from loop, add one more assert.
Sebastian Pop [Fri, 8 Jul 2011 19:15:11 +0000 (19:15 +0000)]
Remove continue from loop, add one more assert.

2011-07-08  Sebastian Pop  <sebastian.pop@amd.com>

* graphite-dependences.c (build_alias_set_powerset): Remove
continue from loop, add one more assert.

From-SVN: r176057

13 years agoOnly update ChangeLog.graphite.
Sebastian Pop [Fri, 8 Jul 2011 19:15:02 +0000 (19:15 +0000)]
Only update ChangeLog.graphite.

From-SVN: r176056

13 years agore PR c++/45603 (crash in "build_addr_func")
Jason Merrill [Fri, 8 Jul 2011 17:39:17 +0000 (13:39 -0400)]
re PR c++/45603 (crash in "build_addr_func")

PR c++/45603
* decl.c (expand_static_init): Don't get confused by user
declaration of __cxa_guard_acquire.

From-SVN: r176054

13 years agore PR target/46779 ([avr] wrong code generation for values held in R28/R29)
Georg-Johann Lay [Fri, 8 Jul 2011 17:38:39 +0000 (17:38 +0000)]
re PR target/46779 ([avr] wrong code generation for values held in R28/R29)

PR target/46779
* config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
In particular, allow 8-bit values in r28 and r29.
(avr_hard_regno_scratch_ok): Disallow any register that might be
part of the frame pointer.
(avr_hard_regno_rename_ok): Same.
(avr_legitimate_address_p): Don't allow SUBREGs.

From-SVN: r176053

13 years agotypeck.c (cp_apply_type_quals_to_decl): Don't check COMPLETE_TYPE_P either.
Jason Merrill [Fri, 8 Jul 2011 17:37:29 +0000 (13:37 -0400)]
typeck.c (cp_apply_type_quals_to_decl): Don't check COMPLETE_TYPE_P either.

* typeck.c (cp_apply_type_quals_to_decl): Don't check
COMPLETE_TYPE_P either.

From-SVN: r176052

13 years agoneon.md (vec_shr_<mode>, [...]): Disable in big-endian mode.
Julian Brown [Fri, 8 Jul 2011 17:30:43 +0000 (17:30 +0000)]
neon.md (vec_shr_<mode>, [...]): Disable in big-endian mode.

gcc/
* config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
big-endian mode.
(reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
(reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
(neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
(vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
(neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
(neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
(vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
registers in big-endian mode.

gcc/testsuite/
* lib/target-supports.exp
(check_effective_target_arm_little_endian): New.
(check_effective_target_vect_pack_trunc): Use above.
(check_effective_target_vect_unpack): Likewise.
(check_effective_target_vect_element_align): Test
check_effective_target_arm_vect_no_misalign for ARM.

From-SVN: r176050

13 years agoconstexpr-rom.C tweak
Jason Merrill [Fri, 8 Jul 2011 16:46:28 +0000 (12:46 -0400)]
constexpr-rom.C tweak

From-SVN: r176049

13 years agodefaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
Bernd Schmidt [Fri, 8 Jul 2011 16:21:58 +0000 (16:21 +0000)]
defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.

* defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
* doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
(REG_WORDS_BIG_ENDIAN): Document.
* doc/tm.texi: Regenerate.
* reload.c (operands_match_p): Take it into account.
(reload_adjust_reg_for_mode): Likewise.
* rtlanal.c (subreg_get_info): Likewise.

From-SVN: r176048

13 years agogenattrtab.c (evaluate_eq_attr): Allow an attribute to be defined in terms of another.
Bernd Schmidt [Fri, 8 Jul 2011 16:08:13 +0000 (16:08 +0000)]
genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined in terms of another.

* genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
in terms of another.
(write_attr_value): Write a cast if necessary.

From-SVN: r176047

13 years agore PR c++/49673 ([C++0x] const variables initialised with constexpr constructor place...
Jason Merrill [Fri, 8 Jul 2011 14:24:14 +0000 (10:24 -0400)]
re PR c++/49673 ([C++0x] const variables initialised with constexpr constructor placed in .data not .rodata)

PR c++/49673
gcc/c-family/
* c-common.c (c_apply_type_quals_to_decl): Don't check
TYPE_NEEDS_CONSTRUCTING.
gcc/cp/
* typeck.c (cp_apply_type_quals_to_decl): Don't check
TYPE_NEEDS_CONSTRUCTING.

From-SVN: r176045

13 years agofold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index folding.
Richard Guenther [Fri, 8 Jul 2011 14:08:17 +0000 (14:08 +0000)]
fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index folding.

2011-07-08  Richard Guenther  <rguenther@suse.de>

* fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
folding.

From-SVN: r176044

13 years agofold-const.c (fold_truth_andor): Factored out truth_andor label from fold_binary...
Kai Tietz [Fri, 8 Jul 2011 13:22:52 +0000 (15:22 +0200)]
fold-const.c (fold_truth_andor): Factored out truth_andor label from fold_binary as function.

2011-07-08  Kai Tietz  <ktietz@redhat.com>

        * fold-const.c (fold_truth_andor): Factored out truth_andor
        label from fold_binary as function.
        (fold_binary_loc): Replace truth_andor lable
        by function fold_truth_andor.

From-SVN: r176043

13 years agore PR middle-end/49519 (Revision 175272 miscompiled 447.dealII in SPEC CPU 2006)
Kirill Yukhin [Fri, 8 Jul 2011 13:12:03 +0000 (13:12 +0000)]
re PR middle-end/49519 (Revision 175272 miscompiled 447.dealII in SPEC CPU 2006)

Fix PR middle-end/49519.

gcc/

2011-07-08  Kirill Yukhin  <kirill.yukhin@intel.com>

PR middle-end/49519
* calls.c (mem_overlaps_already_clobbered_arg_p): Additional
check if address is stored in register. If so - give up.
(check_sibcall_argument_overlap_1): Do not perform check of
overlapping when it is call to address.

gcc/tessuite/

2011-07-08  Kirill Yukhin  <kirill.yukhin@intel.com>

PR middle-end/49519
* g++.dg/torture/pr49519.C: New test.

From-SVN: r176042

13 years agoavr.c (output_reload_insisf): Use 'REG_Z+1' instead of magic '31'.
Georg-Johann Lay [Fri, 8 Jul 2011 13:09:07 +0000 (13:09 +0000)]
avr.c (output_reload_insisf): Use 'REG_Z+1' instead of magic '31'.

* config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
of magic '31'.

From-SVN: r176041

13 years agooptabs.c (expand_binop): Tighten conditions for doubleword expansions.
Bernd Schmidt [Fri, 8 Jul 2011 13:03:38 +0000 (13:03 +0000)]
optabs.c (expand_binop): Tighten conditions for doubleword expansions.

* optabs.c (expand_binop): Tighten conditions for doubleword
expansions.
(widen_bswap): Assert that mode bitsize and precision are the
same.
* stor-layout.c (get_best_mode): Skip modes that have lower
precision than bitsize.
* recog.c (simplify_while_replacing): Assert that bitsize and
precision are the same.

From-SVN: r176040

13 years agortlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against a bitsize.
Bernd Schmidt [Fri, 8 Jul 2011 13:01:07 +0000 (13:01 +0000)]
rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against a bitsize.

* rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
a bitsize.

From-SVN: r176039

13 years agooptabs.c (expand_binop): Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE where...
Bernd Schmidt [Fri, 8 Jul 2011 12:57:50 +0000 (12:57 +0000)]
optabs.c (expand_binop): Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE where appropriate.

* optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
GET_MODE_BITSIZE where appropriate.
(widen_leading, expand_parity, expand_ctz, expand_ffs,
expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
expand_float, expand_fix): Likewise.
* expr.c (convert_move, convert_modes, expand_expr_real_2,
expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
* cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
Likewise.
* convert.c (convert_to_integer): Likewise.
* expmed.c (expand_shift_1): Likewise.

From-SVN: r176038

13 years agoMakefile.in (LIBGCOV): Remove.
Rainer Orth [Fri, 8 Jul 2011 11:43:54 +0000 (11:43 +0000)]
Makefile.in (LIBGCOV): Remove.

gcc:
* Makefile.in (LIBGCOV): Remove.
(libgcc.mvars): Remove LIBGCOV.
* libgov.c: Move to ../libgcc.

libgcc:
* Makfile.in (LIBGCOV): New variable.
($(libgcov-objects)): Use $(srcdir) to refer to libgcov.c.
* libgcov.c: New file.

From-SVN: r176037

13 years agofixed-bit.c, [...]: Move to ../libgcc.
Rainer Orth [Fri, 8 Jul 2011 11:18:38 +0000 (11:18 +0000)]
fixed-bit.c, [...]: Move to ../libgcc.

gcc:
* config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.

libgcc:
* fixed-bit.c, fixed-bit.h: New files.
* fixed-obj.mk ($o$(objext), $(o)_s$(objext)): Use $(srcdir) to
refer to fixed-bit.c.

From-SVN: r176036

13 years agosra-12.c: Skip dump scan on avr targets.
Martin Jambor [Fri, 8 Jul 2011 10:25:55 +0000 (12:25 +0200)]
sra-12.c: Skip dump scan on avr targets.

2011-07-08  Martin Jambor  <mjambor@suse.cz>

testsuite/
* gcc.dg/tree-ssa/sra-12.c: Skip dump scan on avr targets.

From-SVN: r176035

13 years agore PR testsuite/48727 (FAIL: g++.dg/opt/devirt2.C scan-assembler-times xyzzy 2)
Rainer Orth [Fri, 8 Jul 2011 10:20:36 +0000 (10:20 +0000)]
re PR testsuite/48727 (FAIL: g++.dg/opt/devirt2.C scan-assembler-times xyzzy 2)

PR testsuite/48727
* g++.dg/opt/devirt2.C: Use specific pattern for sparc*-*-*.

From-SVN: r176034

13 years agotree-sra.c (analyze_all_variable_accesses): Dump that a struture is too big for total...
Martin Jambor [Fri, 8 Jul 2011 10:16:51 +0000 (12:16 +0200)]
tree-sra.c (analyze_all_variable_accesses): Dump that a struture is too big for total scalarization.

2011-07-08  Martin Jambor  <mjambor@suse.cz>

* tree-sra.c (analyze_all_variable_accesses): Dump that a struture
is too big for total scalarization.

From-SVN: r176033

13 years agoconfigure.host (abi_baseline_subdir_switch): Describe.
Rainer Orth [Fri, 8 Jul 2011 08:49:57 +0000 (08:49 +0000)]
configure.host (abi_baseline_subdir_switch): Describe.

* configure.host (abi_baseline_subdir_switch): Describe.
Provide default.
(*-*-solaris2.[89], *-*-solaris2.1[0-9]): Override.
* acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Substitute
baseline_subdir_switch.
* testsuite/Makefile.am (site.exp): Emit it.
(baseline_subdir): Use it.
* testsuite/libstdc++-abi/abi.exp: Use it.
* configure: Regenerate.
* Makefile.in: Regenerate.
* doc/Makefile.in: Regenerate.
* include/Makefile.in: Regenerate.
* libsupc++/Makefile.in: Regenerate.
* po/Makefile.in: Regenerate.
* python/Makefile.in: Regenerate.
* src/Makefile.in: Regenerate.
* testsuite/Makefile.in: Regenerate.

From-SVN: r176032

13 years agore PR tree-optimization/49662 (XFAIL: gcc.dg/graphite/interchange-XX.c, PRE confuses...
Richard Guenther [Fri, 8 Jul 2011 08:42:31 +0000 (08:42 +0000)]
re PR tree-optimization/49662 (XFAIL: gcc.dg/graphite/interchange-XX.c, PRE confuses loop interchange)

2011-07-08  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/49662
* gcc.dg/graphite/interchange-14.c: XFAIL.
* gcc.dg/graphite/interchange-15.c: Likewise.
* gcc.dg/graphite/interchange-mvt.c: Likewise.

From-SVN: r176031

13 years agoDaily bump.
GCC Administrator [Fri, 8 Jul 2011 00:17:49 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r176025

13 years agoalpha-elf: Disable stabs debugging, and the mips sdb extensions.
Richard Henderson [Fri, 8 Jul 2011 00:14:19 +0000 (17:14 -0700)]
alpha-elf: Disable stabs debugging, and the mips sdb extensions.

In particular, the mips sdb extensions accidentally implied the
irix dwarf2 extensions and restrictions.  Disable stabs because
it's almost certainly untested for years.

        * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
        (DBX_DEBUGGING_INFO): Undef.

From-SVN: r176021

13 years agoDump NOTE_INSN_CFI notes.
Richard Henderson [Fri, 8 Jul 2011 00:13:02 +0000 (17:13 -0700)]
Dump NOTE_INSN_CFI notes.

        * dwarf2out.c (output_cfi_directive): Export.  Add FILE parameter.
        Handle some opcodes specially for debugging.
        * print-rtl.c: Include dwarf2out.h
        (print_rtx): Handle NOTE_INSN_CFI.
        * Makefile.in (print-rtl.o): Update.

From-SVN: r176020

13 years agodwarf2: Extract cfi creation to a new pass.
Richard Henderson [Fri, 8 Jul 2011 00:05:57 +0000 (17:05 -0700)]
dwarf2: Extract cfi creation to a new pass.

        * tree-pass.h (pass_dwarf2_frame): Declare.
        * passes.c (init_optimization_passes): Add it.
        * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
        (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
        make static, do not call add_cfis_to_fde.
        (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
        dwarf2out_frame_init): Merge into...
        (execute_dwarf2_frame): ... here.  New function.
        (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean.  Change
        saved_do_cfi_asm to a tri-state variable.
        (gate_dwarf2_frame, pass_dwarf2_frame): New.
        * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
        if it has yet to be done.  Don't call dwarf2cfi_function_init.
        * dwarf2out.h, debug.h: Update decls.
        * final.c (final_start_function): Don't call
        dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
        * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
        * toplev.c (lang_dependent_init): Likewise.

From-SVN: r176019

13 years agodwarf2out: Convert fde_table to a VEC.
Richard Henderson [Thu, 7 Jul 2011 23:57:26 +0000 (16:57 -0700)]
dwarf2out: Convert fde_table to a VEC.

Prepare for allocating the FDE for the current function earlier
than dwarf2out_begin_prologue.

        * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
        FDE_TABLE_INCREMENT): Replace with...
        (fde_vec): ... this, a new vector.
        (current_fde): Remove.  Replace all users with cfun->fde.
        (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
        (size_of_aranges, dwarf2out_finish): Likewise.
        (dwarf2out_alloc_current_fde): Break out from ...
        (dwarf2out_begin_prologue): ... here.
        (dwarf2out_frame_init): Remove.
        * dwarf2cfi.c: Update all users of current_fde.
        (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
        * dwarf2out.h: Update decls.
        (dw_fde_node): Add fde_index member.
        * function.h (struct function): Add fde member.

From-SVN: r176018

13 years agodwarf2out: Emit NOTE_INSN_CFI_* both with and without cfi-asm.
Bernd Schmidt [Thu, 7 Jul 2011 23:51:16 +0000 (23:51 +0000)]
dwarf2out: Emit NOTE_INSN_CFI_* both with and without cfi-asm.

This patch is essentially Bernd's 006-cfilabel patch, updated
for all the other changes to dwarf2out.

The patch reduces the difference between the cfi-asm and non-cfi-asm
code paths.  We now emit the CFI notes in all cases.  Later, after we're
done producing the CFI insns we need, another pass over the rtl adds
the necessary labels and set_loc/advance_loc CFIs.  One consequence of
this is that def_cfa_1 can no longer use lookup_cfa, so it just compares
to an old_cfa variable instead.

The major change since Bernd's patch is that all the target-specific
changes are no longer necessary.

        * dwarf2cfi.c (add_cfi): Remove.
        (dwarf2out_cfi_label): Remove force argument.  Only generate the
        label name.
        (add_fde_cfi): Simplify the different code paths.
        (add_cie_cfi): New.
        (old_cfa, old_cfa_remember): New.
        (def_cfa_1, reg_save): Remove label, add for_cie parameter.
        (last_reg_save_label): Remove.
        (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
        dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
        dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
        dwarf2out_frame_debug_cfa_expression,
        dwarf2out_frame_debug_cfa_restore,
        dwarf2out_frame_debug_cfa_window_save,
        dwarf2out_frame_debug_expr): Remove label parameter.
        (cfi_label_required_p, add_cfis_to_fde): New.
        (dwarf2out_frame_debug_after_prologue): New.
        (dwarf2cfi_frame_init): Initialize old_cfa.
        (dwarf2out_frame_debug_restore_state): Likewise.
        * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
        (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
        * final.c (final_start_function): Call
        dwarf2out_frame_debug_after_prologue.

Co-Authored-By: Richard Henderson <rth@redhat.com>
From-SVN: r176017

13 years agodwarf2out: Move insn scanning out of final.c.
Bernd Schmidt [Thu, 7 Jul 2011 23:42:41 +0000 (23:42 +0000)]
dwarf2out: Move insn scanning out of final.c.

This patch is essentially Bernd's 005-scanfirst patch, updated for
the introduction of the dwarf2cfi.c file.

We introduce NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL to hold the dwarf2
info during the bulk of final.  The actual construction of these notes
still happens during final, right at the very beginning of the pass,
via the dwarf2out_frame_debug_init hook.

        * dwarf2cfi.c (cfi_insn): New.
        (dwarf2out_cfi_label): Don't emit cfi label here.
        (add_fde_cfi): Create a NOTE_INSN_CFI.
        (dwarf2out_frame_debug): Setup cfi_insn.
        (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
        (dwarf2out_cfi_begin_epilogue): Make static.
        (dwarf2out_frame_debug_restore_state): Make static.
        * dwarf2out.c (output_cfi_directive): Make static.
        (dwarf2out_emit_cfi): New.
        * dwarf2out.h: Update.
        * final.c (final): Remove CFI notes.
        (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
        dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
        Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
        * insn-notes.def (NOTE_INSN_CFI): New.
        (NOTE_INSN_CFI_LABEL): New.
        * rtl.h (union rtunion_def): Add rt_cfi member.
        (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.

Co-Authored-By: Richard Henderson <rth@redhat.com>
From-SVN: r176016

13 years agodwarf2out: Split CFI construction routines into a new file.
Richard Henderson [Thu, 7 Jul 2011 23:35:22 +0000 (16:35 -0700)]
dwarf2out: Split CFI construction routines into a new file.

Excepting changing some functions from static to extern, this
patch contains code motion only.  The split is not very clean
at this point, but will be refined as CFI construction is turned
into its own proper pass.

        * dwarf2cfi.c: New file.
        * Makefile.in (OBJS): Add it.
        (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
        * gengtype.c (open_base_files): Include dwarf2out.h.
        * coretypes.h (enum var_init_status): Move from ...
        * rtl.h: ... here.
        * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
        dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
        expand_builtin_dwarf_sp_column, init_return_column_size,
        expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
        dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
        lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
        old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
        stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
        compute_barrier_args_size, dwarf2out_args_size,
        dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
        queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
        compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
        queue_reg_save, dwarf2out_flush_queued_reg_saves,
        clobbers_queued_reg_save, reg_saved_in, cfa_temp,
        dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
        dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
        dwarf2out_frame_debug_cfa_expression,
        dwarf2out_frame_debug_cfa_restore,
        dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
        dwarf2out_frame_debug, dwarf2out_frame_debug_init,
        dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
        get_cfa_from_loc_descr): Move to dwarf2cfi.c.
        (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
        dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
        dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
        dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
        dw_loc_descr_node): Move to dwarf2out.h.
        (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
        mem_loc_descriptor): Export.
        (build_cfa_aligned_loc): Export.  Take CFA as a parameter.
        (dwarf2out_frame_init): Extract CIE generation code to
        dwarf2cfi_frame_init.

From-SVN: r176015

13 years agore PR c++/49663 ([C++0x] ICE in lookup_base)
Jason Merrill [Thu, 7 Jul 2011 21:53:58 +0000 (17:53 -0400)]
re PR c++/49663 ([C++0x] ICE in lookup_base)

PR c++/49663
* pt.c (push_deduction_access_scope): Preserve
processing_template_decl across push_to_top_level.
And revert:
* class.c (pushclass): Accept NULL argument.
(popclass): Deal with popping null class.
* pt.c (push_access_scope, pop_access_scope): Use them rather than
push_to_top_level/pop_from_top_level.
* name-lookup.c (lookup_name_real_1): Check current_class_type.

From-SVN: r176013

13 years agore PR fortran/49648 (ICE(segfault) with MATMUL and function-result actual argument)
Mikael Morin [Thu, 7 Jul 2011 21:03:25 +0000 (23:03 +0200)]
re PR fortran/49648 (ICE(segfault) with MATMUL and function-result actual argument)

2011-07-07  Mikael Morin  <mikael.morin@sfr.fr>

PR fortran/49648
* gfortran.dg/result_in_spec_4.f90: New test.

From-SVN: r176012

13 years agore PR fortran/49648 (ICE(segfault) with MATMUL and function-result actual argument)
Mikael Morin [Thu, 7 Jul 2011 20:58:16 +0000 (22:58 +0200)]
re PR fortran/49648 (ICE(segfault) with MATMUL and function-result actual argument)

2011-07-07  Mikael Morin  <mikael.morin@sfr.fr>

PR fortran/49648
* resolve.c (resolve_symbol): Force resolution of function result's
array specification.

From-SVN: r176011