Commit Graph

93905 Commits

Author SHA1 Message Date
Eric Botcazou 18d6353c18 Fix nits
From-SVN: r148071
2009-06-02 07:21:27 +00:00
Simon Martin db10c6ecab re PR c++/38089 (g++ crash on invalid code)
gcc/cp/

2009-06-02  Simon Martin  <simartin@users.sourceforge.net>

	PR c++/38089
	* pt.c (register_specialization): Properly setup DECL_CONTEXT for
	specializations in an invalid namespace.

gcc/testsuite/

2009-06-02  Simon Martin  <simartin@users.sourceforge.net>

	PR c++/38089
	* g++.dg/template/spec36.C: New test.

From-SVN: r148069
2009-06-02 05:37:17 +00:00
Jakub Jelinek 0aa34d44c0 i386.c (queued_cfa_restores): New static variable.
* config/i386/i386.c (queued_cfa_restores): New static variable.
	(ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
	functions.
	(pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
	(ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
	Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
	Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
	note unconditionally.
	(ix86_emit_restore_regs_using_mov): Likewise.
	(ix86_emit_restore_sse_regs_using_mov): Likewise.
	(ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
	it through to ix86_emit_restore_reg_using_pop.
	(ix86_emit_leave): Add RED_OFFSET argument.  Call
	ix86_add_queued_cfa_restore_notes.  Call ix86_add_cfa_restore_note
	instead of adding REG_CFA_OFFSET note unconditionally.
	(ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
	the above functions.  Call ix86_add_queued_cfa_restore_notes when
	needed.

From-SVN: r148067
2009-06-01 21:49:57 +02:00
Jakub Jelinek d342c045c5 dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument...
* dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
	force output of the label even for dwarf2out_do_cfi_asm.
	(add_fde_cfi): If -g2 and above and cfi might change CFA,
	force creation of CFI label and chain DW_CFA_set_loc jumping to it
	for convert_cfa_to_fb_loc_list.  Adjust other dwarf2out_cfi_label
	caller.
	(dwarf2out_stack_adjust, dwarf2out_frame_debug,
	dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
	dwarf2out_cfi_label callers.
	* tree.h (dwarf2out_cfi_label): Adjust prototype.
	* config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
	Adjust dwarf2out_cfi_label callers.
	* config/vax/vax.c (vax_output_function_prologue): Likewise.

From-SVN: r148066
2009-06-01 21:43:24 +02:00
Jakub Jelinek 604a6be922 i386.h (struct machine_cfa_state, [...]): Guard with ifndef USED_FOR_TARGET instead of not IN_LIBGCC2 and not in...
* config/i386/i386.h (struct machine_cfa_state,
	struct machine_function): Guard with ifndef USED_FOR_TARGET
	instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.

From-SVN: r148065
2009-06-01 21:41:43 +02:00
Doug Kwan 7f1245dffd configure.ac: Support gold for target arm*-*-*.
2009-06-01  Doug Kwan  <dougkwan@google.com>

	* configure.ac: Support gold for target arm*-*-*.
	* configure: Regenerate.

From-SVN: r148064
2009-06-01 19:41:08 +00:00
Jakub Jelinek df0026a75e re PR other/40024 (trunk/gcc-4.3/gcc: * emutls.c (emutls_destroy): Don' t fall out of the array bound.)
PR other/40024
	* emutls.c (__emutls_get_address): Change arr->size to mean number
	of allocated arr->data entries instead of # of slots + 1.

From-SVN: r148061
2009-06-01 20:03:26 +02:00
Jakub Jelinek 6c0d70212d re PR middle-end/40316 (Revision 147995 breaks gcc.target/i386/lea.c)
PR middle-end/40316
	* recog.c (peep2_reinit_state): New function.
	(peephole2_init_state): Use it at the end of a basic block and also
	when seeing a RTX_FRAME_RELATED_P insn.

From-SVN: r148055
2009-06-01 19:13:04 +02:00
Steve Ellcey 49df2fb8bd ia64.md (floatdirf2, [...]): New.
2009-06-01  Steve Ellcey  <sje@cup.hp.com>

	* ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
	fixuns_truncrfdi2): New.
	(fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
	*nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
	*mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
	*maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
	*nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
	*recip_approx): Remove.
	(divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
	moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
	divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
	move to div.md.
	* div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
	setf_exp_rf): New.

From-SVN: r148054
2009-06-01 16:46:42 +00:00
Ian Lance Taylor 67165eb379 attribs.c (register_attribute): Use CONST_CAST.
./:	* attribs.c (register_attribute): Use CONST_CAST.
	* collect2.c (main): Use CONST_CAST2.
	(scan_prog_file): Likewise.
	* gcc.c (process_command, main): Likewise.
	* toplev.c (toplev_main): Likewise.

	* c-typeck.c (handle_warn_cast_qual): New static function,
	partially broken out of build_c_cast.
	(build_c_cast): Call handle_warn_cast_qual.
	* doc/invoke.texi (Warning Options): Document new effect of
	-Wcast-qual.
./java:	* jcf-io.c (find_class): Use CONST_CAST.
./testsuite:	* gcc.dg/cast-qual-3.c: New testcase.
	* g++.dg/warn/Wcast-qual2.C: New testcase.

From-SVN: r148053
2009-06-01 16:35:01 +00:00
Aldy Hernandez e74fe492f1 diagnostic.c (diagnostic_build_prefix): Always print columns.
gcc/
	* diagnostic.c (diagnostic_build_prefix): Always print columns.
	(diagnostic_report_current_module): Print columns.
	* common.opt (flag_show_column): Enable by default.
gcc/testsuite/
	* lib/gcc-dg.exp (dg-bogus): Override dg-bogus.
	(process-message): Expect column numbers.
	* gcc.dg/va-arg-2.c: Use line 0 to indicate no column.
	* gcc.dg/pch/counter-2.c: Same.
	* gcc.dg/pch/valid-2.c: Same.
	* gcc.dg/pch/warn-1.c: Same.
	* gcc.dg/pch/valid-1.c: Same.
	* gcc.dg/cpp/include2a.c: Handle lack of columns.
	* gcc.dg/cpp/syshdr.c: Same.
	* gcc.dg/cpp/19940712-1.c: Same.
	* gcc.dg/cpp/missing-header-1.c: Same.
	* gcc.dg/cpp/unc4.c: Remove -fno-show-column.
	* gcc.dg/cpp/tr-warn3.c: Same.
	* gcc.dg/cpp/pr29612-2.c: Same.
	* gcc.dg/cpp/tr-warn4.c: Same.
	* gcc.dg/cpp/Wtrigraphs.c: Same.
	* gcc.dg/cpp/poison.c: Same.
	* gcc.dg/cpp/arith-3.c: Same.
	* gcc.dg/cpp/sysmac2.c: Same.
	* gcc.dg/cpp/cpp.exp: Same.
	* gcc.dg/cpp/tr-warn5.c: Same.
	* gcc.dg/cpp/include2.c: Same.
	* gcc.dg/cpp/Wmissingdirs.c: Same.
	* gcc.dg/cpp/Wmissingdirs.c: Same.
	* gcc.dg/cpp/tr-warn6.c: Same.
	* gcc.dg/cpp/Wtrigraphs-2.c: Same.
	* gcc.dg/cpp/macspace1.c: Same.
	* gcc.dg/cpp/escape-2.c: Same.
	* gcc.dg/cpp/assert2.c: Same.
	* gcc.dg/cpp/undef2.c: Same.
	* gcc.dg/cpp/macspace2.c: Same.
	* gcc.dg/cpp/tr-warn1.c: Same.
	* gcc.dg/cpp/extratokens2.c: Same.
	* gcc.dg/cpp/strify2.c: Same.
	* gcc.dg/cpp/Wsignprom.c: Same.
	* gcc.dg/cpp/redef2.c: Same.
	* gcc.dg/cpp/trad/trad.exp: Same.
	* gcc.dg/cpp/arith-1.c: Same.
	* gcc.dg/cpp/extratokens.c: Same.
	* gcc.dg/cpp/if-mpar.c: Same.
gcc/cp/
	* error.c (print_instantiation_partial_context): Print column
	numbers.
libcpp/
	* include/line-map.h (LAST_SOURCE_COLUMN): New.

From-SVN: r148052
2009-06-01 16:09:33 +00:00
Ian Lance Taylor 4851089fc6 cpp-id-data.h: Add extern "C".
* include/cpp-id-data.h: Add extern "C".
	* include/line-map.h: Likewise.
	* include/mkdeps.h: Likewise.
	* include/symtab.h: Likewise.
	* internal.h: Likewise.

From-SVN: r148051
2009-06-01 15:37:03 +00:00
Olivier Hainque db868e1edf utils.c (convert): When converting to the packable version of the type...
ada/
	* gcc-interface/utils.c (convert) <CONSTRUCTOR case>: When converting
	to the packable version of the type, clear TREE_STATIC/TREE_CONSTANT
	on the result if at least one of the input fields couldn't be output
	as a static constant any more.

	testsuite/
	* gnat.dg/nested_float_packed.ads: New test.


Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com>

From-SVN: r148049
2009-06-01 15:27:59 +00:00
Olivier Hainque 62295314f0 Add missing blanks after dots in entry.
From-SVN: r148048
2009-06-01 15:25:19 +00:00
Luis Machado 7eba2d1f3c alias.c (find_base_term): Check for NULL term before returning.
2009-06-01  Luis Machado  <luisgpm@br.ibm.com>

	* alias.c (find_base_term): Check for NULL term before returning.

From-SVN: r148047
2009-06-01 15:20:20 +00:00
Maxim Kuvyrkov ee88d9aa55 Revert due to PR40320:
2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
	* calls.c (emit_library_call_value_1): Don't force_operand for move
	and push insns.

From-SVN: r148046
2009-06-01 14:45:18 +00:00
Olivier Hainque 324c9b0242 tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE...
* tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
	to be processed as a bitfield for constructor output purposes.
	* output.h (initializer_constant_valid_for_bitfield_p): Declare
	new function.
	* varasm.c (oc_local_state): New type, output_constructor
	local state to support communication with helpers.
	(oc_outer_state): New type, output_constructor outer state of
	relevance in recursive calls.
	(output_constructor_array_range): New output_constructor helper,
	extracted code for an array range element.
	(output_constructor_regular_field): New output_constructor helper,
	extracted code for an element that is not a bitfield.
	(output_constructor_bitfield): New output_constructor helper,
	extracted code for a bitfield element.  Accept an OUTER state
	argument for recursive processing.  Recurse on record or array
	CONSTRUCTOR values, possibly past noop conversions.
	(initializer_constant_valid_for_bitfield_p): New predicate. Whether
	VALUE is a valid constant-valued expression for use in a static
	bit-field initializer.
	(output_constructor): Rework to use helpers. Accept and honor an
	OUTER state argument for recursive calls. Return total size. Be
	prepared for nested constructors initializing bitfields.
	(output_constant): Feed OUTER in calls to output_constructor.

	ada/
	* gcc-interface/utils2.c (gnat_build_constructor): Factor
	out code. Use initializer_constant_valid_for_bitfield_p and
	CONSTRUCTOR_BITFIELD_P for bit-fields.

	testsuite/
	* gnat.dg/oconst[1-6].ad[bs]: New tests. Also support for ...
	* gnat.dg/test_oconst.adb: New test.


Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com>

From-SVN: r148045
2009-06-01 14:42:56 +00:00
Maxim Kuvyrkov 0980d7fe0b calls.c (emit_library_call_value_1): Don't force_operand for move and push insns.
* calls.c (emit_library_call_value_1): Don't force_operand for move
	and push insns.

From-SVN: r148039
2009-06-01 11:18:29 +00:00
Nick Clifton 29661412e3 * doc/invoke.texi (IA-64 Options): Fix typo.
From-SVN: r148037
2009-06-01 09:01:10 +00:00
Ira Rosen e9dbe7bb25 re PR tree-optimization/39129 (The meaning of 'BB' in "too many BBs in loop")
PR tree-optimization/39129
	* tree-vect-loop-manip.c (conservative_cost_threshold): Change the 
	printed message.
	(vect_do_peeling_for_loop_bound): Use 
	LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
	LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
	(vect_loop_versioning): Likewise.
	(vect_create_cond_for_alias_checks): Fix indentation.
	* tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the 
	macros.
	(LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
	(LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
	* tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to 
	"control flow in loop".
	(vect_estimate_min_profitable_iters): Use 
	LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
	LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
	(vect_create_data_ref_ptr): Don't mention array dimension in printing.
	* tree-vect-stmts.c (vectorizable_store): Replace the check that the 
	statement belongs to a group of strided accesses with the exact code 
	check.
	(vectorizable_load): Likewise.
	* tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
	(vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.

From-SVN: r148036
2009-06-01 08:15:01 +00:00
Tobias Burnus a7ad6c2d61 re PR fortran/40309 (gfortran does not support static c/d-tors.)
2009-06-01  Tobias Burnus  <burnus@net-b.de>

       PR fortran/40309
       * trans-decl.c (gfc_sym_identifier): Use "MAIN__" for PROGRAM "main".
       (create_main_function): Set main_identifier_node.

From-SVN: r148035
2009-06-01 09:00:35 +02:00
Ian Lance Taylor 75afccba06 ansidecl.h: Add extern "C" when compiling with C++.
* ansidecl.h: Add extern "C" when compiling with C++.  Treat C++
	the way we treat an ISO C compiler.  Don't define inline as a
	macdro when compiling with C++.
	* dyn-string.h: Add header guard DYN_STRING_H.  Add extern "C"
	when compiling with C++.
	* fibheap.h: Add extern "C" when compiling with C++.

From-SVN: r148032
2009-06-01 05:47:20 +00:00
Ian Lance Taylor 6863c0f0d1 decContext.h: Add extern "C" if compiling with C++.
* decContext.h: Add extern "C" if compiling with C++.
	* decDPD.h: Likewise.
	* decNumber.h: Likewise.
	* dpd/decimal32.h: Likewise.
	* dpd/decimal64.h: Likewise.
	* dpd/decimal128.h: Likewise.

From-SVN: r148030
2009-06-01 05:28:42 +00:00
Gerald Pfeifer 5ac69a8037 freebsd-stdint.h: New file.
* config/freebsd-stdint.h: New file.
	* config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
	Add freebsd-stdint.h to tm_file.

From-SVN: r148027
2009-06-01 03:03:37 +00:00
Richard Earnshaw 54b2b4605f thumb2.md (thumb2_zero_extendhidi2): New insn and split.
* arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
	(thumb2_extendhidi2): Likewise.

From-SVN: r148026
2009-06-01 00:23:52 +00:00
GCC Administrator 3240b4d6fc Daily bump.
From-SVN: r148025
2009-06-01 00:16:39 +00:00
Ian Lance Taylor c50d84e3b6 regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
* regstat.c (regstat_n_sets_and_refs): Remove duplicate
	definition.

From-SVN: r148021
2009-05-31 23:11:51 +00:00
Ian Lance Taylor a7ca77cf9a Makefile.in (except.o): Depent upon gt-except.h, not gt-$(EXCEPT_H).
* Makefile.in (except.o): Depent upon gt-except.h, not
	gt-$(EXCEPT_H).
	(ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
	(ipa-reference.o): Depend upon gt-ipa-reference.h.

From-SVN: r148020
2009-05-31 22:34:00 +00:00
Jason Merrill 1aec401ee5 tree-pretty-print.c (print_call_name): Take the callee, not the call itself.
* tree-pretty-print.c (print_call_name): Take the callee, not the
	call itself.  Make non-static.  Use dump_function_name for
	functions.
	(dump_generic_node): Adjust.
	* diagnostic.h: Declare print_call_name.
	* gimple-pretty-print.c (dump_gimple_call): Use it.

From-SVN: r148019
2009-05-31 18:01:38 -04:00
Kaz Kojima ed7910bb15 sh.md (ashldi3_std): New define_expand.
* config/sh/sh.md (ashldi3_std): New define_expand.
	(ashldi3): Use it.

From-SVN: r148018
2009-05-31 21:48:01 +00:00
Kaz Kojima 47ea8d4efa re PR target/40313 (SH: ICE in dwarf2out_begin_epilogue, at dwarf2out.c:2689)
PR target/40313
	* config/sh/sh.c: Include debug.h.
	(sh_expand_epilogue): Emit a blockage insn before the frame
	pointer adjustment also when dwarf2out_do_frame returns true.

From-SVN: r148017
2009-05-31 21:45:18 +00:00
Basile Starynkevitch 97fc23aeaf ggcplug.c: moved comment.
2009-05-31  Basile Starynkevitch  <basile@starynkevitch.net>

	* gcc/testsuite/gcc.dg/plugin/ggcplug.c: moved comment.
	(plugin_init): fixed typo, declared i, returned 0 at end.

	[also moved an entry from gcc/ChangeLog to gcc/testsuite/ChangeLog]

From-SVN: r148015
2009-05-31 14:59:41 +00:00
Richard Earnshaw 405e8b492d thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
* arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
	(thumb2_extendqidi2): New pattern.

From-SVN: r148014
2009-05-31 14:09:12 +00:00
Ira Rosen 71ece3432a tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't mark phis for renaming.
* tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
	mark phis for renaming.
	* tree-vectorizer.c (vect_memsyms_to_rename): Remove.
	(vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
	Call mark_sym_for_renaming.
	* tree-vectorizer.h (vect_memsyms_to_rename): Remove.
	* tree-vect-loop.c (vect_transform_loop): Remove vect_memsyms_to_rename
	initialization and a call to mark_set_for_renaming.

From-SVN: r148013
2009-05-31 10:43:38 +00:00
Jakub Jelinek b304194493 re PR middle-end/40304 (Revision 147995 breaks stack unwind)
PR middle-end/40304
	* config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
	frame related even if !set_cfa && style < 0.

From-SVN: r148011
2009-05-31 11:36:17 +02:00
Ira Rosen e90e03ce50 re PR testsuite/40244 (Revision 147829 caused extra failures)
PR testsuite/40244
	* gcc.dg/vect/bb-slp-4.c: Change the number of data accesses to 2.
	* gcc.dg/vect/bb-slp-10.c: Change the store misalignment to 1.

From-SVN: r148010
2009-05-31 06:55:37 +00:00
GCC Administrator f4a56f0143 Daily bump.
From-SVN: r148009
2009-05-31 00:16:50 +00:00
H.J. Lu e19fa2594c Reformat.
From-SVN: r148003
2009-05-30 06:35:32 -07:00
Kai Tietz a1bda0d7e8 mingw-tls.c: New file.
2009-05-30  Kai Tietz  <kai.tietz@onevision.com>

        * config/i386/mingw-tls.c: New file.
        * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add
        mingw-tls.c file.
        * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define
        it for targets defining _WIN32 but not __CYGWIN__.

From-SVN: r148000
2009-05-30 11:05:56 +02:00
Eli Zaretskii ec5c6f4a5f snprintf.c: Doc fix.
* snprintf.c: Doc fix.

* vsnprintf.c: Doc fix.

From-SVN: r147998
2009-05-30 01:17:14 -04:00
Kaveh R. Ghazi acd262252c Makefile.def: Add MPC support and dependencies.
* Makefile.def: Add MPC support and dependencies.
	* configure.ac: Likewise.  Reorganize GMP/MPFR checks.

	* Makefile.in, configure: Regenerate.
	
gcc:
	* configure.ac: Add MPC support.
	
	* config.in, configure: Regenerate.

From-SVN: r147996
2009-05-30 00:43:36 +00:00
Richard Henderson cd9c1ca866 cfgcleanup.c (try_crossjump_to_edge): Only skip past NOTE_INSN_BASIC_BLOCK.
* cfgcleanup.c (try_crossjump_to_edge): Only skip past
	NOTE_INSN_BASIC_BLOCK.
	* cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
	Duplicate NOTE_INSN_EPILOGUE_BEG notes.
	* cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
	to be deleted.
	* dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
	add in_use field.
	(add_cfi): Disable check redefining cfa away from drap.
	(lookup_cfa_1): Add remember argument; handle remember/restore.
	(lookup_cfa): Pass remember argument.
	(cfa_remember): New.
	(compute_barrier_args_size_1): Remove sibcall check.
	(dwarf2out_frame_debug_def_cfa): New.
	(dwarf2out_frame_debug_adjust_cfa): New.
	(dwarf2out_frame_debug_cfa_offset): New.
	(dwarf2out_frame_debug_cfa_register): New.
	(dwarf2out_frame_debug_cfa_restore): New.
	(dwarf2out_frame_debug): Handle REG_CFA_* notes.
	(dwarf2out_begin_epilogue): New.
	(dwarf2out_frame_debug_restore_state): New.
	(dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
	DW_CFA_restore_state.
	(output_cfi_directive): Likewise.
	(convert_cfa_to_fb_loc_list): Likewise.
	(dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
	* dwarf2out.h: Update.
	* emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
	(copy_insn_1): Early out for null.
	* final.c (final_scan_insn): Call dwarf2out_begin_epilogue
	and dwarf2out_frame_debug_restore_state.
	* function.c (prologue, epilogue, sibcall_epilogue): Remove.
	(prologue_insn_hash, epilogue_insn_hash): New.
	(free_after_compilation): Adjust freeing accordingly.
	(record_insns): Create hash table if needed; push insns into
	hash instead of array.
	(maybe_copy_epilogue_insn): New.
	(contains): Search hash table instead of array.
	(sibcall_epilogue_contains): Remove.
	(thread_prologue_and_epilogue_insns): Split eh_return insns
	and mark them as epilogues.
	(reposition_prologue_and_epilogue_notes): Rewrite epilogue
	scanning in terms of basic blocks.
	* insn-notes.def (CFA_RESTORE_STATE): New.
	* jump.c (returnjump_p_1): Accept EH_RETURN.
	(eh_returnjump_p_1, eh_returnjump_p): New.
	* reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
	CFA_REGISTER, CFA_RESTORE): New.
	* rtl.def (EH_RETURN): New.
	* rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.

	* config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
	(eh_return_internal): Use eh_return rtx; split w/ epilogue.

	* config/i386/i386.c (gen_push): Update cfa state.
	(pro_epilogue_adjust_stack): Add set_cfa argument.  When true,
	add a CFA_ADJUST_CFA note.
	(ix86_dwarf_handle_frame_unspec): Remove.
	(ix86_expand_prologue): Update cfa state.
	(ix86_emit_restore_reg_using_pop): New.
	(ix86_emit_restore_regs_using_pop): New.
	(ix86_emit_leave): New.
	(ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
	(ix86_expand_epilogue): Add notes for unwinding the epilogue.
	* config/i386/i386.h (struct machine_cfa_state): New.
	(ix86_cfa_state): New.
	* config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
	(eh_return_internal): Merge from eh_return_<mode>,
	use eh_return rtx, split w/ epilogue.

From-SVN: r147995
2009-05-29 17:33:46 -07:00
GCC Administrator 36bac386ae Daily bump.
From-SVN: r147994
2009-05-30 00:16:53 +00:00
Ian Lance Taylor 72b5577d91 builtins.c (validate_gimple_arglist): Don't use va_arg with enum type.
./:	* builtins.c (validate_gimple_arglist): Don't use va_arg with
	enum type.
	* calls.c (emit_library_call_value_1): Likewise.

	* c-typeck.c (c_build_va_arg): New function.
	* c-tree.h (c_build_va_arg): Declare.
	* c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
	instead of build_va_arg.
cp/:
	* error.c (cp_printer): Don't use va_arg with enum type.
testsuite/:
	* gcc.dg/Wcxx-compat-11.c: New testcase.

From-SVN: r147989
2009-05-29 22:45:54 +00:00
Eric Botcazou b0999b0114 inclhack.def (solaris_int_const): New fix.
* inclhack.def (solaris_int_const): New fix.
	(solaris_int_limits_1): Likewise.
	(solaris_int_limits_2): Likewise.
	* fixincl.x: Regenerate.
	* tests/base/sys/int_const.h: New file.
	* tests/base/sys/int_limits.h: Likewise.

From-SVN: r147988
2009-05-29 22:07:30 +00:00
Francois-Xavier Coudert 0a05c536a6 re PR fortran/40019 (LEADZ and TRAILZ give wrong results)
2009-05-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

        PR fortran/40019
        * trans-types.c (gfc_build_uint_type): Make nonstatic.
        * trans.h (gfor_fndecl_clz128, gfor_fndecl_ctz128): New
        * prototypes.
        * trans-types.h (gfc_build_uint_type): Add prototype.
        * trans-decl.c (gfc_build_intrinsic_function_decls): Build
        gfor_fndecl_clz128 and gfor_fndecl_ctz128.
        * trans-intrinsic.c (gfc_conv_intrinsic_leadz,
        gfc_conv_intrinsic_trailz): Call the right builtins or library
        functions, and cast arguments to unsigned types first.
        * simplify.c (gfc_simplify_leadz): Deal with negative arguments.

2009-05-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

        PR fortran/40019
        * intrinsics/bit_intrinsics.c: New file.
        * gfortran.map (GFORTRAN_1.2): New list.
        * Makefile.am: Add intrinsics/bit_intrinsics.c.
        * Makefile.in: Regenerate.

2009-05-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

        PR fortran/40019
        * gfortran.dg/leadz_trailz_1.f90: New test.
        * gfortran.dg/leadz_trailz_2.f90: New test.

From-SVN: r147987
2009-05-29 23:27:54 +02:00
Janne Blomqvist 2017c37012 Fix PR40190; use localtime_r, gmtime_r, add fallback implementations
From-SVN: r147985
2009-05-29 23:56:20 +03:00
Kai Tietz bb870b58e2 pex-win32.c (pex_win32_fdopenr): Set INHERIT to false.
2009-05-29  Kai Tietz  <kai.tietz@onevision.com>

        * pex-win32.c (pex_win32_fdopenr): Set INHERIT to false.

From-SVN: r147984
2009-05-29 22:20:40 +02:00
Eric Botcazou 7a2faca1c5 tree-ssa-loop-ivopts.c (strip_offset_1): New case.
* tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
	(force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
	(ptr_difference_cost): Use affine combinations to compute it.
	(difference_cost): Likewise.
	(get_computation_cost_at): Compute more accurate cost for addresses
	if the ratio is a multiplier allowed in addresses.
	For non-addresses, consider that an additional offset or symbol is
	added only once.

From-SVN: r147983
2009-05-29 19:25:04 +00:00
Jakub Jelinek a0987204c5 i386.c (ix86_decompose_address): Avoid useless 0 displacement.
* config/i386/i386.c (ix86_decompose_address): Avoid useless
	0 displacement.  Add 0 displacement if base is %[er]bp or %r13.

From-SVN: r147982
2009-05-29 19:00:35 +02:00