Commit Graph

52410 Commits

Author SHA1 Message Date
Andrew Pinski
4827be7a8d re PR tree-optimization/17624 (ICE: SSA corruption (another one))
2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>

        PR tree-opt/17624
        * g++.dg/opt/pr17624.C: New test.

From-SVN: r88034
2004-09-24 06:29:25 -07:00
Andrew Pinski
54e075fe1e re PR tree-optimization/17624 (ICE: SSA corruption (another one))
2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>

        PR tree-opt/17624
        * tree-ssa-forwprop.c (record_single_argument_cond_exprs):
        Reject if any of the operands occur in an abnormal PHI.

From-SVN: r88032
2004-09-24 06:26:29 -07:00
Andreas Schwab
4a198dea28 tree-ssa-dom.c (record_range): Fix violation of strict aliasing rules.
* tree-ssa-dom.c (record_range): Fix violation of strict aliasing
	rules.

From-SVN: r88029
2004-09-24 12:17:41 +00:00
Steven Bosscher
a834e70bc5 fix spaces/tabs again
From-SVN: r88017
2004-09-24 07:57:28 +00:00
Eric Botcazou
5d865dace2 config.gcc (sparc64-*-solaris2*): Include sparc/sol2-gas.h if the GNU assembler is used.
* config.gcc (sparc64-*-solaris2*): Include sparc/sol2-gas.h
	if the GNU assembler is used.
	(sparc-*-solaris2*): Likewise.
	* dbxout.c (NO_DBX_BNSYM_ENSYM): Default to zero.
	(dbxout_function_end): Protect N_ENSYM with it.
	(dbxout_begin_prologue): Protect N_BNSYM with it.
	* doc/tm.texi (NO_DBX_BNSYM_ENSYM): Document it.
	* config/sparc/sol2.h (NO_DBX_BNSYM_ENSYM): Define to 1.
	* config/sparc/sol2-gas.h: New file.

From-SVN: r88013
2004-09-24 06:17:07 +00:00
H.J. Lu
4c4a5bbc40 re PR bootstrap/17369 ([ia64] Bootstrap failure with binutils-2.15.90.0.1.1)
2004-09-23  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/17369
	* Makefile.tpl (REALLY_SET_LIB_PATH): Add @SET_GCC_LIB_PATH@.
	(HOST_EXPORTS]): Add @SET_GCC_LIB_PATH@. Set and export
	SET_GCC_LIB_PATH_CMD.
	(BASE_TARGET_EXPORTS): Likewise.
	* Makefile.in: Regenerated.

	* configure.in (SET_GCC_LIB_PATH): Set and substitute.
	* configure: Regenerated.

config/

2004-09-23  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/17369
	* gcc-lib-path.m4: New file.

gcc/

2004-09-23  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/17369
	* Makefile.in (@set_gcc_lib_path@): Added.

	* configure.ac: Include ../config/gcc-lib-path.m4. Use
	TL_AC_GNU_MAKE_GCC_LIB_PATH.
	* configure: Regenerated.

From-SVN: r87999
2004-09-23 17:37:08 -07:00
GCC Administrator
57ce4e0dce Daily bump.
From-SVN: r87994
2004-09-24 00:16:19 +00:00
Joseph Myers
ff80e49f2d re PR c/6980 (-Wbad-function-cast gives bogus warning for (double) rand())
PR c/6980
	* c-typeck.c (build_c_cast): Improve wording of
	-Wbad-function-cast diagnostic.

testsuite:
	* gcc.dg/Wbad-function-cast-1.c: New test.

From-SVN: r87991
2004-09-24 01:08:37 +01:00
Hans-Peter Nilsson
e758023dab re PR target/17626 (Recent peephole2:s may cause internal compiler errors)
PR target/17626
	* config/cris/cris.md (moverside, movemside): Rename variable
	"reg" to "otherop".  To generate canonical RTX, check that otherop
	isn't constant instead of checking that operand 1 is a register.

From-SVN: r87988
2004-09-23 21:59:13 +00:00
Fariborz Jahanian
3d295b3a83 Ignore -ansi -pedantic-errors option coming from dejagnu.
From-SVN: r87987
2004-09-23 21:50:36 +00:00
Zack Weinberg
2cfe82fe43 decl.c (grokfndecl): If ::main is found not to return int, correct it after issuing a diagnostic.
gcc/cp:
	* decl.c (grokfndecl): If ::main is found not to return int,
	correct it after issuing a diagnostic.
	(grokdeclarator): If the incoming type was error_mark_node, do
	not complain about declaring something with no type.
	(start_function): Change check for ::main not returning int to
	an assertion, as grokfndecl now catches this when the user did it.
	* init.c (perform_member_init, sort_mem_initializers)
	(emit_mem_initializers): Make most diagnostics be issued on
	the line of current_function_decl, not whatever the current
	input line is.
	* parser.c (cp_lexer_peek_token_emit_debug_info): Surround
	definition and declaration with #ifdef ENABLE_CHECKING.
	Avoid unnecessary use of fprintf.
	(cp_lexer_print_token, cp_lexer_debug_stream): Adjust stub
	definitions to avoid warnings.
	(cp_lexer_new_main): Add assertion that first token is not a
	padding token.
	(cp_lexer_new_from_token_array): Fold into ...
	(cp_lexer_new_from_tokens): ... here.  Add assertion that
	first token is not a padding token.
	(cp_lexer_set_source_position_from_token): Move nearer to callers.
	Remove unused lexer argument.
	(cp_lexer_peek_token): Just print debugging report (if enabled)
	and return lexer->next_token.
	(cp_lexer_skip_purged_tokens): Delete.
	(cp_lexer_next_token_is, cp_lexer_next_token_is_not): Make
	inline, simplify bodies.
	(cp_lexer_peek_nth_token): Add debugging report a la
	cp_lexer_peek_token.
	(cp_lexer_consume_token): Correct commentary.  Advance over
	purged tokens here.  Set current source position here, from
	token to be returned.  Avoid unnecessary use of fprintf.
	(cp_lexer_purge_token): Advance next_token pointer over this and
	subsequent purged tokens.
	(cp_parser_error): Adjust source position to that of the
	peeked token.
	(cp_parser_push_lexer_for_tokens, cp_parser_pop_lexer): New functions.
	(cp_parser_string_literal): Remove some excessive cleverness.
	(cp_parser_enum_specifier): Call start_enum before consuming
	the opening brace.
	(cp_parser_member_declaration): Make the "extra semicolon"
	diagnostic consistently-worded with the other place this is
	diagnosed.  Explicitly set the diagnostic location to the
	location of the offending semicolon.
	(cp_parser_enclosed_template_argument_list): Use %</%> quoting
	in diagnostics.  Do not use cp_parser_require.  Set location
	of diagnostics about improper use of '>>' to location of
	offending token.
	(cp_parser_late_parsing_for_member):
	Use cp_parser_push_lexer_for_tokens and cp_parser_pop_lexer.
	(cp_parser_late_parsing_default_args): Likewise.  Manually
	move some logic outside the loop.

gcc/testsuite:
	* g++.dg/ext/complit1.C
	* g++.dg/other/error2.C
	* g++.dg/other/nontype-1.C
	* g++.dg/parse/crash11.C
	* g++.dg/parse/crash12.C
	* g++.dg/parse/error15.C
	* g++.dg/parse/error4.C
	* g++.dg/parse/tmpl-outside1.C
	* g++.dg/parse/too-many-tmpl-args1.C
	* g++.dg/template/dependent-expr3.C
	* g++.dg/template/error10.C
	* g++.dg/template/instantiate1.C
	* g++.dg/template/vtable2.C
	* g++.dg/warn/Wshadow-1.C
	* g++.dg/warn/weak1.C
	* g++.old-deja/g++.brendan/crash16.C
	* g++.old-deja/g++.brendan/crash18.C
	* g++.old-deja/g++.brendan/crash48.C
	* g++.old-deja/g++.brendan/crash49.C
	* g++.old-deja/g++.brendan/crash55.C
	* g++.old-deja/g++.brendan/crash56.C
	* g++.old-deja/g++.brendan/crash8.C
	* g++.old-deja/g++.brendan/enum11.C
	* g++.old-deja/g++.brendan/enum8.C
	* g++.old-deja/g++.brendan/enum9.C
	* g++.old-deja/g++.brendan/friend3.C
	* g++.old-deja/g++.brendan/misc14.C
	* g++.old-deja/g++.bugs/900402_02.C
	* g++.old-deja/g++.bugs/900404_03.C
	* g++.old-deja/g++.bugs/900404_04.C
	* g++.old-deja/g++.bugs/900428_03.C
	* g++.old-deja/g++.jason/crash4.C
	* g++.old-deja/g++.jason/overload21.C
	* g++.old-deja/g++.jason/redecl1.C
	* g++.old-deja/g++.jason/report.C
	* g++.old-deja/g++.jason/rfg10.C
	* g++.old-deja/g++.jason/template30.C
	* g++.old-deja/g++.law/arm12.C
	* g++.old-deja/g++.law/ctors5.C
	* g++.old-deja/g++.law/cvt20.C
	* g++.old-deja/g++.law/init10.C
	* g++.old-deja/g++.law/init8.C
	* g++.old-deja/g++.law/visibility17.C
	* g++.old-deja/g++.law/visibility7.C
	* g++.old-deja/g++.mike/net8.C
	* g++.old-deja/g++.mike/p646.C
	* g++.old-deja/g++.mike/p700.C
	* g++.old-deja/g++.mike/p701.C
	* g++.old-deja/g++.mike/p811.C
	* g++.old-deja/g++.ns/template13.C
	* g++.old-deja/g++.other/array3.C
	* g++.old-deja/g++.other/crash25.C
	* g++.old-deja/g++.other/dtor3.C
	* g++.old-deja/g++.other/dtor4.C
	* g++.old-deja/g++.other/main1.C
	* g++.old-deja/g++.other/warn7.C
	* g++.old-deja/g++.pt/crash11.C
	* g++.old-deja/g++.pt/crash36.C
	* g++.old-deja/g++.pt/spec22.C
	* g++.old-deja/g++.pt/spec9.C
	* g++.old-deja/g++.pt/ttp52.C
	* g++.old-deja/g++.robertl/eb103.C
	* g++.old-deja/g++.robertl/eb121.C
	* g++.old-deja/g++.robertl/eb22.C
	* g++.old-deja/g++.robertl/eb8.C:
	Update locations and/or regexps of dg-error markers.
	Remove markers for some bogus messages that are no longer issued.

libstdc++-v3:
	* testsuite/20_util/memory/auto_ptr/assign_neg.cc
	* testsuite/23_containers/map/operators/1_neg.cc
	* testsuite/23_containers/set/operators/1_neg.cc:
	Update locations and/or regexps of dg-error markers.

From-SVN: r87985
2004-09-23 21:27:25 +00:00
Jakub Jelinek
31d66fa938 * tree-ssa-propagate.c (set_rhs): Fail if EXPR is COMPOUND_EXPR.
From-SVN: r87984
2004-09-23 23:03:04 +02:00
Jakub Jelinek
b28b16008e tree-flow.h (find_new_referenced_vars): Add prototype.
2004-09-23  Diego Novillo  <dnovillo@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* tree-flow.h (find_new_referenced_vars): Add prototype.
	* tree-sra.c (find_new_referenced_vars_1, find_new_referenced_vars):
	Move to...
	* tree-dfa.c (find_new_referenced_vars_1, find_new_referenced_vars):
	... here.
	(mark_new_vars_to_rename): Walk through all operands.
	* tree-ssa-ccp.c (convert_to_gimple_builtin): New function.
	(execute_fold_all_builtins): Use it.
	(pass_fold_builtins): Add TODO_rename_vars to todo_flags_finish.

	* gcc.c-torture/execute/builtins/strcpy-2.c: New test.
	* gcc.c-torture/execute/builtins/strcpy-2-lib.c: New.

From-SVN: r87983
2004-09-23 23:01:02 +02:00
P.J. Darcy
512baaea75 gthr-tpf.h: New file.
2004-09-23  P.J. Darcy  <darcypj@us.ibm.com>

gcc/ChangeLog:

	* gthr-tpf.h: New file.
	* config.gcc (s390x-ibm-tpf*): Add thread_file='tpf'.
	* gthr.h: Use gthr-tpf.h on TPF OS.

libstdc++-v3/ChangeLog:

	* include/Makefile.am (thread_host_headers): Add gthr-tpf.h.
	Add rule to build ${host_builddir}/gthr-tpf.h.
	* include/Makefile.in: Regenerate.

From-SVN: r87982
2004-09-23 20:57:25 +00:00
Andrew Pinski
23fad16eb8 Fix the location of the changelog for Fariborz Jahanian's last patch.
From-SVN: r87981
2004-09-23 13:21:55 -07:00
Andrew Pinski
dc2e6df29e re PR c++/17618 (ICE in cp_convert_to_pointer, at cp/cvt.c:83)
2004-09-23  Andrew Pinski  <pinskia@physics.uc.edu>

        PR c++/17618
        * g++.dg/lookup/crash5.C: New test.

From-SVN: r87980
2004-09-23 13:16:48 -07:00
Jeff Law
3aecd08b53 tree-ssa-ccp.c (get_default_value): Use SSA_NAME_VALUE rather than SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
* tree-ssa-ccp.c (get_default_value): Use SSA_NAME_VALUE rather
	than SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
	(substitute_and_fold):  Likewise.
	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Remove everything
	except invariants from SSA_NAME_VALUE.
	(thread_across_edge): Use SSA_NAME_VALUE rather than SSA_NAME_EQUIV
	and SET_SSA_NAME_EQUIV.
	(restore_vars_to_original_value, record_const_or_copy): Likewise.
	(record_equivalences_from_phis, record_const_or_copy_1): Likewise.
	(record_equality, cprop_into_successor_phis): Likewise.
	(record_equivalences_from_stmt, cprop_operand): Likewise.
	(lookup_avail_expr): Likewise.
	* tree-ssa-pre.c (fini_pre): Remove everything except invariants
	from SSA_NAME_VALUE.
	* tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): Kill.
	(struct tree_ssa_name):  Kill EQUIV field.  Remove GGC skip
	annotation from the VALUE_HANDLE field.

From-SVN: r87979
2004-09-23 14:15:30 -06:00
Andrew Pinski
0c482362dd 004-09-23 Andrew Pinski <pinskia@physics.uc.edu>
PR c++/17618
        * cvt.c (cp_convert_to_pointer): Return early when the type is
        an error_mark_node.

From-SVN: r87978
2004-09-23 13:04:21 -07:00
Fariborz Jahanian
037cc9c5dc PR c++/9844, PR c++/13989
PR c++/9844, PR c++/13989
Reviewed by Mark Mitchel.

From-SVN: r87971
2004-09-23 18:22:25 +00:00
Tom Tromey
fd5f23d3a6 re PR java/17329 (ICE: SEGV in java_gimplify_expr)
PR java/17329:
	* java-gimplify.c (java_gimplify_expr) <SAVE_EXPR>: Ignore case
	where operand is null.

From-SVN: r87961
2004-09-23 16:25:37 +00:00
Tom Tromey
2fc8ee77e0 re PR java/17380 (Bad diagnostic and ICE on valid code...)
PR java/17380:
	* parse.y (not_accessible_p): Allow access to protected members
	even when class is not static.

From-SVN: r87959
2004-09-23 16:21:31 +00:00
Joseph Myers
e6e931b7c5 re PR c/16833 (-fno-builtin prevents automatic format checks for standard functions)
PR c/16833
	* doc/extend.texi, doc/invoke.texi: Document interaction of
	-fno-builtin with format checks.  Note that built-in functions
	have effects beyond generating code that avoids calls to those
	functions.

From-SVN: r87957
2004-09-23 17:11:24 +01:00
Frank Ch. Eigler
2115046880 * comment tweak
From-SVN: r87956
2004-09-23 15:55:18 +00:00
Frank Ch. Eigler
df485d8007 re PR tree-optimization/17533 (cc1plus crashes on libmudflap test case, verify_dominators())
2004-09-23  Frank Ch. Eigler <fche@redhat.com>

	PR tree-optimization/17533
	* dominance.c (verify_dominators): Tolerate even more incorrect
	dominance data during error message printing.
	* tree-mudflap.c (mf_build_check_statement_for): Build basic blocks
	and edges more correctly.

From-SVN: r87954
2004-09-23 15:47:59 +00:00
Dorit Naishlos
7ccf35ed17 tree.def (ALIGN_INDIRECT_REF, [...]): New tree-codes.
2004-09-23  Dorit Naishlos <dorit@il.ibm.com>

        * tree.def (ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF):
        New tree-codes.
        * tree.h (REF_ORIGINAL): Consider ALIGN_INDIRECT_REF and
        MISALIGNED_INDIRECT_REF.
        * alias.c (get_alias_set, nonoverlapping_memrefs_p): Likewise.
        * emit-rtl.c (mem_expr_equal_p, set_mem_attributes_minus_bitpos):
        Likewise.
        * expr.c (safe_from_p, expand_expr_real_1, rewrite_address_base)
        (find_interesting_uses_address): Likewise.
        * fold-const.c (non_lvalue, operand_equal_p): Likewise.
        (build_fold_addr_expr_with_type): Likewise.
        * gimplify.c (gimplify_addr_expr, gimplify_expr): Likewise.
        * print-rtl.c (print_mem_expr): Likewise.
        * tree-dump.c (dequeue_and_dump): Likewise.
        * tree-eh.c (tree_could_trap_p): Likewise.
        * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise.
        * tree-pretty-print.c (op_prio, op_symbol, dump_generic_node): Likewise.
        * tree-ssa-alias.c (find_ptr_dereference, ptr_is_dereferenced_by):
        Likewise.
        * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
        * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
        * tree-ssa-loop-im.c (for_each_index, is_call_clobbered_ref): Likewise.
        * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
        (add_address_candidates, rewrite_address_base): Likewise.
        * tree-ssa-operands.c (get_expr_operands, get_indirect_ref_operands):
        Likewise.
        * tree.c (staticp, build1_stat): Likewise.

        * tree.def (REALIGN_LOAD_EXPR, REALIGN_STORE_EXPR): New tree-codes.
        * tree-pretty-print.c (dump_generic_node): Consider REALIGN_LOAD_EXPR.
        * tree-ssa-operands.c (get_expr_operands): Likewise.
        * expr.c (expand_expr_real_1): Likewise.

        * optabs.h (vec_realign_store_optab, vec_realign_load_optab): New
        optabs.
        (OTI_vec_realign_store, OTI_vec_realign_load): New optab_index values
        for the new optabs.
        (expand_ternary_op): New function.
        * genopinit.c (optabs): Handle the new optabs.
        * optabs.c (optab_for_tree_code): Add cases for the new tree-codes.
        (init_optabs): Initialize vec_realign_load_optab.
        (expand_ternary_op): New functions.

        * target-def.h (TARGET_VECTORIZE): New member for struct gcc_target.
        (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New member for targetm.vectorize.
        (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Likewise.
        (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Likewise.
        * target.h (struct vectorize): New member for struct gcc_target.
        (misaligned_mem_ok): New member for targetm.vectorize.
        (builtin_mask_for_load): Likewise.
        (builtin_mask_for_store): Likewise.
        * targethooks.c (default_vect_misaligned_mem_ok): New function.
        * targethooks.h (default_vect_misaligned_mem_ok): New function.

        * config/rs6000/altivec.md (build_vector_mask_for_load): New
        define_expand.
        (vec_realign_load_v4si, vec_realign_load_v4sf, vec_realign_load_v8hi)
        (vec_realign_load_v16qi): New define_insn.
        * config/rs6000/rs6000.h (ALTIVEC_BUILTIN_MASK_FOR_LOAD):
        (ALTIVEC_BUILTIN_MASK_FOR_STORE): New target builtins.
        * config/rs6000/rs6000.c (altivec_builtin_mask_for_load):
        (altivec_builtin_mask_for_store): New variables.
        (rs6000_builtin_mask_for_load): New function. Implements
        TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD.
        (rs6000_builtin_mask_for_store): New function. Implements
        TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE.
        (rs6000_expand_builtin): Expand the target builtins
        builtin_mask_for_load and builtin_mask_for_store.
        (altivec_init_builtins): Initialize the new target builtins.
        * config/i386/i386.c (ix86_misaligned_mem_ok): New function.
        Implements the target hook TARGET_VECTORIZE_MISALIGNED_MEM_OK.

        * tree-vectorizer.c (vect_create_data_ref): Renamed to
        vect_create_data_ref_ptr. Returns a pointer instead of an array-ref.
        (vect_create_addr_base_for_vector_ref): Additional argument (offset).
        (vectorizable_store): Call vect_create_data_ref_ptr with additional
        arguments, and create an indirect_ref with its return value data_ref.
        Check aligned_access_p.
        (vectorizable_load): Handle misaligned loads, using software-pipelined
        scheme with REALIGN_LOAD_EXPR and ALIGN_INDIRECT_REF if
        vec_realign_load_optab is supported, or using a scheme without
        software-pipelining with MISALIGNED_INDIRECT_REF if the target hook
        misaligned_mem_ok is supported.

        (vect_finish_stmt_generation): Typo.
        (vect_enhance_data_refs_alignment): Rename loop_vinfo to loop_info.
        (vect_analyze_data_refs_alignment): Don't fail vectorization in the
        presence of misaligned loads.
        (vect_analyze_data_ref_access): Add check for constant init.
        (vect_get_symbl_and_dr): Remove duplicate line.
        * tree-vectorizer.h (DR_MISALIGNMENT): Add comment.

From-SVN: r87948
2004-09-23 14:34:35 +00:00
Kazu Hirata
d31012b7f8 * builtins.c: Fix a comment typo.
From-SVN: r87947
2004-09-23 14:22:33 +00:00
Jan Hubicka
aa26df17e9 profile.c (branch_prob): Do not verify flow info in the middle of the pass.
* profile.c (branch_prob): Do not verify flow info in the middle of the
	pass.

From-SVN: r87946
2004-09-23 14:11:06 +00:00
Zdenek Dvorak
4c8bfd97e6 Revert commit of testing BOOT_CFLAGS
From-SVN: r87944
2004-09-23 12:22:40 +00:00
Zdenek Dvorak
92fc4a2f39 cfgloop.h (update_single_exits_after_duplication): Declare.
* cfgloop.h (update_single_exits_after_duplication): Declare.
	(loopify, split_loop_bb): Declaration changed.
	* cfgloopmanip.c (split_loop_bb): Take void * as an argument instead
	of rtx.
	(loopify): Added redirect_all_edges argument.
	(update_single_exits_after_duplication): Export.
	* loop-unswitch.c (unswitch_loop): Changed due to loopify change.
	* tree-flow.h (tree_duplicate_loop_to_header_edge,
	tree_ssa_loop_version): Declare.
	* tree-ssa-loop-manip.c (copy_phi_node_args, rename_variables,
	set_phi_def_stmts, tree_duplicate_loop_to_header_edge,
	lv_adjust_loop_header_phi, lv_adjust_loop_entry_edge,
	lv_update_pending_stmts, tree_ssa_loop_version): New functions.

	* tree-ssa-loop-unswitch.c: New file.
	* Makefile.in (tree-ssa-loop-unswitch.o): Add.
	* timevar.def (TV_TREE_LOOP_UNSWITCH): New timevar.
	* tree-flow.h (tree_ssa_unswitch_loops): Declare.
	* tree-optimize.c (init_tree_optimization_passes): Add pass_unswitch.
	* tree-pass.h (pass_unswitch): Declare.
	* tree-ssa-loop.c (tree_ssa_loop_unswitch,
	gate_tree_ssa_loop_unswitch, pass_unswitch): New pass.
	* doc/passes.texi: Documen tree level loop unswitching.

	* gcc.dg/tree-ssa/loop-6.c: New test.

From-SVN: r87943
2004-09-23 12:21:31 +00:00
Paolo Bonzini
b8b94c5ba8 re PR c++/17596 (expression parser is too slow, should be rewritten)
2004-09-23  Paolo Bonzini  <bonzini@gnu.org>

	PR c++/17596

	* parser.c (cp_parser_token_tree_map_node,
	cp_parser_pm_expression, cp_parser_additive_expression,
	cp_parser_multiplicative_expression, cp_parser_shift_expression,
	cp_parser_relational_expression, cp_parser_equality_expression,
	cp_parser_and_expression, cp_parser_exclusive_or_expression,
	cp_parser_inclusive_or_expression,
	cp_parser_logical_and_expression,
	cp_parser_logical_or_expression): Removed.
	(enum cp_parser_prec, struct cp_parser_token_tree_map_node,
	binops, binops_by_token): New.
	(cp_parser_assignment_expression): Use cp_parser_binary_expression.
	(cp_parser_new): Initialize binops_by_token.
	(cp_parser_binary_expression): Rewritten.
	(N_CP_TTYPES): New.

From-SVN: r87942
2004-09-23 11:58:15 +00:00
Steven Bosscher
8921359e5d *** empty log message ***
From-SVN: r87941
2004-09-23 11:07:12 +00:00
Kazu Hirata
9688c3b862 * parser.c: Fix a comment typo.
From-SVN: r87940
2004-09-23 11:03:18 +00:00
Kazu Hirata
d7e9e62a80 * cfgexpand.c, config/s390/tpf-eh.c: Fix comment typos.
From-SVN: r87939
2004-09-23 10:54:07 +00:00
Nathan Sidwell
98d6e9afea re PR c++/17620 (Bogus error with duplicate base class breaks boost)
cp:
	PR c++/17620
	* decl.c (xref_basetypes): Look through typedefs before checking
	for duplicate base.
testsuite:
	PR c++/17620
	* g++.dg/inherit/base2.C: New.

From-SVN: r87938
2004-09-23 10:09:09 +00:00
Robert Dewar
2c9beb8a81 re PR ada/17540 (Duplicate symbols while building Ada)
2004-09-23  Robert Dewar  <dewar@gnat.com>

	PR ada/17540

	* sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
	instead do this at freeze time (we won't do it if there is an address
	clause).
	Change "pragma inline" to "pragma Inline" in information and error
	messages.
	Minor reformatting.

	* freeze.adb (Check_Address_Clause): Remove previous change, not the
	right way of doing things after all.
	(Freeze_Entity): For object, set Is_Public for imported entities
	unless there is an address clause present.

From-SVN: r87936
2004-09-23 11:00:08 +02:00
Eric Botcazou
f8d1c4278b Added missing entry for latest commit.
From-SVN: r87931
2004-09-23 08:03:05 +00:00
Eric Christopher
d3147f6452 builtins.c (simplify_builtin_va_start): Remove.
2004-09-22  Eric Christopher  <echristo@redhat.com>

        * builtins.c (simplify_builtin_va_start): Remove.
        (simplify_builtin): Ditto.
        (fold_builtin_strchr): Ditto.
        (simplify_builtin_*): Rename remainders to fold_builtin_*.
        (expand_builtin): Fix up for above changes.
        (fold_builtin_1): Add new folders. Change for above.
        (expand_builtin_va_start): Call fold_builtin_next_arg.
        * gimplify.c (gimplify_call_expr): Fix calls to simplify_builtin.
        * tree.h: Remove prototype for simplify_builtin.

From-SVN: r87921
2004-09-23 06:16:09 +00:00
R. Kelley Cook
a9db2a2994 * Correct type in last changeLog entry iconv.m4 -> iconv.h
From-SVN: r87915
2004-09-23 02:01:53 +00:00
Jan Hubicka
60108d34dc re PR debug/17389 (ICE in dwarf2out_finish, at dwarf2out.c:13566)
PR debug/17389
	* dwarf2out.c (dwarf2out_finish): Deal with nested functions
	of fully inlined functions.
	* tree-inline.c (inline_forbidden_p_1): Nested functions can be
	inlined.

From-SVN: r87911
2004-09-23 00:51:40 +00:00
Jan Hubicka
e53de54da3 cfgexpand.c (add_reg_br_prob_note): New function.
* cfgexpand.c (add_reg_br_prob_note): New function.
	(expand_gimple_cond_expr): Use it.
	(tree_expand_cfg): No longer kill the profile.
	* cfgrt.c (rtl_verify_flow_info_1): Check profile consistency
	only if it is present.
	* passes.c (rest_of_handle_loop_optimize): Kill the profile.
	* predict.c (combine_predictions_for_insn): Set the probabilities
	based on REG_BR_PROB note if present.
	* predict.c (branch_prob): Profile is read only with
	flag_branch_probabilities.

From-SVN: r87910
2004-09-23 00:50:37 +00:00
Kelley Cook
dfb77e3751 aclocal.m4: Add in gettext's m4 includes.
2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>

	* aclocal.m4: Add in gettext's m4 includes.
	(AC_ICONV, AC_LCMESSAGES, GCC_PATH_PROG): Remove.
	* configure.ac: Add in check for iconv.m4
	* configure: Regenerate.

From-SVN: r87908
2004-09-23 00:29:07 +00:00
GCC Administrator
20ac2c8c4e Daily bump.
From-SVN: r87906
2004-09-23 00:16:17 +00:00
Eric Botcazou
de256a451d 20001012-1.c: Add prototypes for builtin functions.
* gcc.dg/20001012-1.c: Add prototypes for builtin functions.
	* gcc.dg/20001012-2.c: Likewise.
	* gcc.dg/20001013-1.c: Likewise.
	* gcc.dg/20001101-1.c: Likewise.
	* gcc.dg/20001102-1.c: Likewise.
	* gcc.dg/bf-spl1.c: Likewise.
	* gcc.dg/titype-1.c: Remove special-casing for SPARC.
	* gcc.dg/20040813-1.c: Add missing "." to the regexp.

From-SVN: r87902
2004-09-23 00:07:15 +00:00
Kelley Cook
88fa57d782 gettext-sister.m4: Renamed from gettext.m4
config/
2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>

	* gettext-sister.m4: Renamed from gettext.m4
	* codeset.m4, gettext.m4, glibc21.m4, iconv.m4, intdiv0.m4, po.m4,
	inttypes.m4, inttypes-pri.m4, inttypes_h.m4, lcmessage.m4, lib-ld.m4,
	lib-link.m4, lib-prefix.m4, nls.m4, progtest.m4, stdint_h.m4,
	uintmax_t.m4, ulonglong.m4: Import from gettext-0.12.1 sources.

gcc/
2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>

	* aclocal.m4: Update for rename of gettext-sister.m4.

libcpp/
2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.in (aclocal.m4): Update dependencies.
	* configure.ac (AC_CONFIG_MACRO_DIR): New.
	* aclocal.m4, configure: Regenerate.

intl/
2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>

	* configure.ac (AC_CONFIG_MACRO_DIR): New.
	(ACLOCAL, AUTOCONF, AUTOHEADER, MAINT): Substitute.
	* Makefile.in: Update with maintainer mode rules.
	* README: Update aclocal regeneration instructions.
	* aclocal.m4, configure: Regenerate.

From-SVN: r87900
2004-09-22 23:53:59 +00:00
Daniel Berlin
8eee352825 re PR tree-optimization/17587 (Mauve's UnicodeBase.java fails to compile)
2004-09-22  Daniel Berlin <dberlin@dberlin.org>

	Fix PR tree-optimization/17587
	* tree-ssa-pre.c (fini_pre): Commit edge inserts here.
	(insert_aux): Instead of here.

From-SVN: r87899
2004-09-22 23:50:19 +00:00
Eric Botcazou
8db6bcda0b Fix minor nit.
From-SVN: r87898
2004-09-22 23:46:30 +00:00
Diego Novillo
c04f07f4cf re PR tree-optimization/16721 (Accesses to volatile objects optimized away)
PR tree-optimization/16721
	* tree-dfa.c (dump_variable): Show TREE_THIS_VOLATILE.
	* tree-ssa-alias.c (create_memory_tag): Move setting of
	TREE_THIS_VOLATILE ...
	(get_tmt_for): ... here.


testsuite/ChangeLog

	PR tree-optimization/16721
	* testsuite/gcc.dg/tree-ssa/pr16721.c: New test.

From-SVN: r87895
2004-09-22 19:33:20 -04:00
Eric Botcazou
ba652ba925 sparc.md (cmove splitter): Fix formatting.
* config/sparc/sparc.md (cmove splitter): Fix formatting.
	(conditional_trap expander): Reject inappropriate CCmodes.
	(conditional trap expander): Use V9 syntax if possible.

From-SVN: r87894
2004-09-22 23:18:28 +00:00
Ulrich Weigand
b1247df745 20030123-1.c: Add prototypes for builtin functions.
* gcc.dg/20030123-1.c: Add prototypes for builtin functions.
	* gcc.dg/20040305-1.c: Likewise.

From-SVN: r87893
2004-09-22 23:16:36 +00:00
Joseph Myers
588d195294 re PR c/16566 (ICE with flexible arrays)
PR c/16566
	* c-typeck.c (build_component_ref): Don't special-case
	COMPOUND_EXPR.

testsuite:
	* gcc.c-torture/compile/pr16566-1.c,
	gcc.c-torture/compile/pr16566-2.c,
	gcc.c-torture/compile/pr16566-3.c: New tests.

From-SVN: r87892
2004-09-22 23:51:58 +01:00
Frank Ch. Eigler
08fb229ea8 dominance.c (verify_dominators): Don't SEGV if recount_dominator returns NULL.
2004-09-22  Frank Ch. Eigler  <fche@redhat.com>

	* dominance.c (verify_dominators): Don't SEGV if recount_dominator
	returns NULL.

From-SVN: r87883
2004-09-22 20:36:14 +00:00
Kazu Hirata
9b270cce93 c-tree.texi (TRUTH_NOT_EXPR, [...]): Mention the restriction on types.
* doc/c-tree.texi (TRUTH_NOT_EXPR, TRUTH_ANDIF_EXPR,
	TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
	TRUTH_XOR_EXPR): Mention the restriction on types.

From-SVN: r87881
2004-09-22 19:43:04 +00:00
Nathan Sidwell
942149531d cp-tree.h (unemitted_tinfo_decls): Make a VEC(tree).
* cp-tree.h (unemitted_tinfo_decls): Make a VEC(tree).
	* decl2.c (cp_finish_file): Adjust tinfo decl emission loop.
	* rtti.c (unemitted_tinfo_decls): Make a VEC(tree).
	(init_rtti_processing): Initialize it to something realistic.
	(get_tinfo_decl): Adjust pushing the new decl.

From-SVN: r87872
2004-09-22 18:12:10 +00:00
Matt Austern
8739ed59c4 * config/darwin.c (darwin_make_decl_one_only)
Allow coalesced symbol to appear in static archive's table of contents

From-SVN: r87871
2004-09-22 18:11:50 +00:00
Kazu Hirata
a338ab5a5a re PR tree-optimization/17512 (ICE in regex.c)
PR tree-optimization/17512
	* convert.c (convert_to_integer): Don't handle TRUTH_*_EXPR as
	special cases.

	* testsuite/gcc.c-torture/compile/20040916-1.c.

From-SVN: r87870
2004-09-22 18:02:08 +00:00
David Edelsohn
39cf49a113 dbxout.c (get_lang_number): Do not define if DBX_OUTPUT_MAIN_SOURCE_DIRECTORY is defined.
* dbxout.c (get_lang_number): Do not define if
	DBX_OUTPUT_MAIN_SOURCE_DIRECTORY is defined.

From-SVN: r87868
2004-09-22 12:58:15 -04:00
David Edelsohn
1afd063a67 Add PR.
From-SVN: r87861
2004-09-22 10:22:48 -04:00
Ralf Corsepius
d1c343cb32 rtems.h (TARGET_OS_CPP_BUILTINS): Add builtin_define ("__USE_INIT_FINI__").
2004-09-22  Ralf Corsepius  <corsepiu@faw.uni-ulm.de>

        * config/rs6000/rtems.h (TARGET_OS_CPP_BUILTINS): Add
        builtin_define ("__USE_INIT_FINI__").

From-SVN: r87858
2004-09-22 10:11:44 -04:00
P.J. Darcy
4798630cb0 s390-protos.h (s390_emit_tpf_eh_return): Add prototype.
2004-09-22  P.J. Darcy  <darcypj@us.ibm.com>

	* config/s390/s390-protos.h (s390_emit_tpf_eh_return): Add prototype.
	* config/s390/s390.c (s390_emit_tpf_eh_return): New function.
	* config/s390/s390.h (TARGET_TPF): New macro.
	* config/s390/s390.md ("eh_return"): New expander.
	* config/s390/t-tpf (LIB2ADDEH): Use unwind-dw2-fde.c rather than
	unwind-dw2-fde-glibc.c.  Add config/s390/tpf-eh.c.
	(LIB2ADDEHDEP): Remove unwind-dw2-fde.c.
	* config/s390/tpf.h (TARGET_TPF): Define to 1.
	(STACK_POINTER_OFFSET): Increase to 448.
	(TARGET_DEFAULT): Set -mtpf-trace on as default.
	(TPF_LOC_DIFF_OFFSET): New macro.
	(ASM_PREFERRED_EH_DATA_FORMAT): Redefine to always use absolute
	encoding.
	(__isPATrange): Add prototype.
	(MD_FALLBACK_FRAME_STATE_FOR): Define.
	* config/s390/tpf-eh.c: New file.

From-SVN: r87857
2004-09-22 13:57:40 +00:00
Diego Novillo
6a97296a06 fold-const.c (fold): Avoid non INTEGER_TYPEs when widening operands in an integer comparison.
* fold-const.c (fold): Avoid non INTEGER_TYPEs when widening
	operands in an integer comparison.
	* tree-cfg.c (find_taken_edge): Call fold() to determine
	whether the predicate is known.

From-SVN: r87855
2004-09-22 07:40:12 -04:00
Kelley Cook
3b620440d3 aclocal.m4: Import AM_PROG_CC_C_O and AM_AUX_DIR_EXPAND.
gcc/
2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>

	* aclocal.m4: Import AM_PROG_CC_C_O and AM_AUX_DIR_EXPAND.
	* configure.ac: Call AM_PROG_CC_C_O instead of AC_PROG_CC_C_O.
	Create build and doc directories along with the language directories.
	Don't create doc directory separately.
	* configure: Regenerate.
	* Makefile.in: Create all object and executables files built
	with the build compiler in a build/ directory.
	(genobjnames): Add missing build objects.
	(STAGESTUFF): Don't stage the gen* programs.
	(ggc-none.o): Define dependencies for the target compiler.
	(build-print-rtl.o): Rename to build/print-rtl.o.
	(build-errors.o): Rename to build/errors.o.
	(build-varray.o): Rename to build/varray.o.
	(maintainerclean): Delete the contents of the build directory.
	($(genobjs): %.o): Explicitly use -o.
	(build/insn-conditions.o): Delete specfic rule to use generic rule.
	(build/gengtype-lex.o): Likewise.
	(build/gengtype-yacc.o): Likewise.
	(build/gcov-iov.o): Likewise.

gcc/java
2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>

	* Make-lang.in: Revert the gcc-none.o change.

From-SVN: r87854
2004-09-22 11:21:21 +00:00
Nathan Sidwell
3543e114c6 cp-tree.h (struct lang_type_class): Remove marked flags, add diamond_shaped and repeated_base flags.
* cp-tree.h (struct lang_type_class): Remove marked flags, add
	diamond_shaped and repeated_base flags.  Reorder to keep 8-bit blocks.
	(TYPE_MARKED_P): New.
	(CLASSTYPE_DIAMOND_SHAPED_P, CLASSTYPE_REPEATED_BASE_P): New.
	(CLASSTYPE_MARKED_N, SET_CLASSTYPE_MARKED_N,
	CLEAR_CLASSTYPE_MARKED_N): Remove.
	(CLASSTYPE_MARKED_*, SET_CLASSTYPE_MARKED_*,
	CLEAR_CLASSTYPE_MARKED_*): Remove.
	* decl.c (xref_basetypes): Use TYPE_MARKED_P. Determine diamond
	shaped and repeated base properties.
	* lex.c (cxx_make_type): Don't clear TYPE_ALIAS_SET.
	* rtti.c (dfs_class_hint_mark, dfs_class_hint_unmark,
	class_hint_flags): Remove.
	(get_pseudo_ti_init): Use CLASSTYPE_REPEATED_BASE_P and
	CLASSTYPE_DIAMOND_SHAPED_P.

From-SVN: r87853
2004-09-22 10:55:21 +00:00
Nathan Sidwell
0e64e323b0 vec.h (VEC_space): Return true if there _is_ space.
* vec.h (VEC_space): Return true if there _is_ space.
	(VEC_reserve): Adjust.

	* java/parse.y (patch_anonymous_class): VEC_space returns true if
	there is space.

From-SVN: r87852
2004-09-22 10:51:42 +00:00
Richard Sandiford
e1aeeae90e mips.c (mips_function_value): For o32, o64, n32 and n64, use FPRs for scalar, complex and vector types only.
* config/mips/mips.c (mips_function_value): For o32, o64, n32 and n64,
	use FPRs for scalar, complex and vector types only.

From-SVN: r87848
2004-09-22 07:27:51 +00:00
Ziemowit Laski
c3002ae940 cp-lang.c (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Moved here from cp-objcp-common.h.
[gcc/cp/ChangeLog]
2004-09-21  Ziemowit Laski  <zlaski@apple.com>

        * cp-lang.c (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Moved here from
        cp-objcp-common.h.
        (objcp_tsubst_copy_and_build): Reformat function signature.
        * cp-objcp-common.h (objcp_tsubst_copy_and_build): Likewise.
        (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Moved to cp-lang.c.

From-SVN: r87846
2004-09-22 06:11:20 +00:00
Jeff Law
2353086647 tree-ssa-dom.c (opt_stats): Move so that it lives just after the opt_stats_d structure.
* tree-ssa-dom.c (opt_stats): Move so that it lives just after
        the opt_stats_d structure.
        (vrp_data): Change from a varray into a hash table.
        (vrp_hash_elt): New structure for elements in the vrp hash table.
        (vrp_hash, vrp_eq):New functions for hashing and testing equality
        in the vrp hash table.
        (tree_ssa_dominator_optimize): Initialize VRP_DATA.  Reorganize
        initialization slightly to make it easier to read.  No longer need
        to grow/clear the varray.  Instead empty and delete the hash table.
        (dom_opt_finalize_block): Update due to change of VRP_DATA from
        a varray to a hash table.
        (simplify_cond_and_loop_avail_expr, record_range): Similarly.

From-SVN: r87845
2004-09-21 22:12:01 -06:00
Jeff Law
195da47bbb tree-ssa-ccp.c (get_default_value): If we have a constant value recorded for an SSA_NAME...
* tree-ssa-ccp.c (get_default_value): If we have a constant
	value recorded for an SSA_NAME, then use that constant as
	the initial lattice value.
	(substitute_and_fold): Transfer equivalences discovered into
	SSA_NAME_EQUIV.

	* tree.h (SSA_NAME_EQUIV): Add comments.
	(SET_SSA_NAME_EQUIV): Similarly.

From-SVN: r87844
2004-09-21 22:07:23 -06:00
David Edelsohn
0a4f029430 linux64.h (PROCESSOR_DEFAULT64): Default to POWER4.
* config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to POWER4.

        * config/rs6000/rs6000.c (rs6000_adjust_cost): dep_insn is used.

From-SVN: r87843
2004-09-22 00:05:12 -04:00
Mark Mitchell
1ae57298f9 c-decl.c (implicitly_declare): Call maybe_apply_renaming_pragma.
* c-decl.c (implicitly_declare): Call maybe_apply_renaming_pragma.
	(finish_decl): Likewise.

From-SVN: r87840
2004-09-22 02:24:06 +00:00
Devang Patel
ad9f20cbce tree.def (VEC_COND_EXPR): New tree node.
* tree.def (VEC_COND_EXPR): New tree node.
       * tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR.

From-SVN: r87839
2004-09-21 18:16:20 -07:00
Ziemowit Laski
86c440722e objc-act.c (objc_fold_objc_type_ref): New function.
[gcc/objc/ChangeLog]
2004-09-21  Ziemowit Laski  <zlaski@apple.com>

        * objc-act.c (objc_fold_objc_type_ref): New function.
        * objc-act.h (objc_fold_objc_type_ref): New prototype.

From-SVN: r87838
2004-09-22 01:13:07 +00:00
Stan Shebs
76419821c6 darwin-tramp.asm: Add __ppc64__ case.
* config/rs6000/darwin-tramp.asm: Add __ppc64__ case.
        * config/rs6000/darwin-world.asm: Likewise.

From-SVN: r87836
2004-09-22 01:06:29 +00:00
Daniel Berlin
7bab95badb tree-ssa.c (verify_def): Use print_generic_stmt, not debug_generic_stmt.
2004-09-21  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa.c (verify_def): Use print_generic_stmt,
	not debug_generic_stmt.
	(verify_use): Ditto.
	(verify_phi_args): Ditto.
	(verify_ssa): Ditto.

From-SVN: r87835
2004-09-22 01:03:40 +00:00
GCC Administrator
31b92e3226 Daily bump.
From-SVN: r87833
2004-09-22 00:16:17 +00:00
Paul Brook
a13fd90532 varasm.c (default_assemble_integer): Return false for values wider than the target word size.
* varasm.c (default_assemble_integer): Return false for values wider
	than the target word size.  Works around GAS bug.

From-SVN: r87827
2004-09-21 23:40:21 +00:00
Zack Weinberg
36952deadd parser.c (cp_lexer_peek_token, [...]): Don't handle CPP_PRAGMA tokens specially.
* parser.c (cp_lexer_peek_token, cp_lexer_consume_token):
	Don't handle CPP_PRAGMA tokens specially.
	(cp_lexer_handle_pragma): Use cp_lexer_consume_token.  Don't
	purge the token; do clear token->value after processing.  Add
	assertion at beginning that token->value is nonzero.
	(cp_parser_statement, cp_parser_declaration_seq_opt): Handle
	CPP_PRAGMA as a full statement or declaration in its own right.

From-SVN: r87822
2004-09-21 20:46:57 +00:00
Zack Weinberg
52c5701b4e reg-notes.def (REG_DEP_TRUE): New entry, place first so it gets value 0.
* reg-notes.def (REG_DEP_TRUE): New entry, place first so it
	gets value 0.
	* print-rtl.c (print_rtx): Print the name of a REG_NOTE even
	if it has value 0.

From-SVN: r87821
2004-09-21 20:34:43 +00:00
Matt Austern
e72222acd1 Fix bootstrap.
* gjavah.c (free_method_name_list): Fix function definition so
	it's a proper C prototype.

From-SVN: r87815
2004-09-21 18:27:29 +00:00
Matt Austern
6bdb98d1b0 re PR c++/15049 ([DR 278/132/216/338/389/319] global variables with anonymous types are legal)
PR c++/15049
	* cp/decl.c (grokvardecl): Accept declarations of global variables
	using anonymous types.
	* testsuite/g++.dg/other/anon3.C: New.

From-SVN: r87814
2004-09-21 17:24:44 +00:00
Tom Tromey
b8b639c915 re PR java/17575 (gcjh does not clear its function name cache between files)
PR java/17575:
	* gjavah.c (free_method_name_list): New method.
	(main): Call it.

From-SVN: r87812
2004-09-21 16:28:40 +00:00
Roger Sayle
d211a298ce re PR c++/7503 ((x < Y ? X : Y) used for assignment causes wrong code)
PR c++/7503
	* tree.c (lvalue_p_1):  Disallow MIN_EXPR and MAX_EXPR as lvalues
	if either operand has side-effects.
	* typeck.c (rationalize_conditional_expr): Assert that neither
	operand of MIN_EXPR or MAX_EXPR has side-effects.
	(build_modify_expr):  Add support for MIN_EXPR and MAX_EXPR.
	Check that the "lhs" is a valid lvalue, i.e. that neither operand
	of a MIN_EXPR or MAX_EXPR has a side-effect.

	* g++.dg/opt/pr7503-1.C: New testcase for COND_EXPR lvalues.
	* g++.dg/opt/pr7503-2.C: New testcase for <? and >? lvalues.
	* g++.dg/opt/pr7503-3.C: New testcase for invalid <? lvalue errors.
	* g++.dg/opt/pr7503-4.C: New testcase for <?= and >?= assignments.
	* g++.dg/opt/pr7503-5.C: New testcase for side-effects with <?=.

From-SVN: r87810
2004-09-21 16:20:12 +00:00
Daniel Berlin
f0c721ad7c c-typeck.c (build_function_call): Give name of object we are attempting to call in error message.
2004-09-21  Daniel Berlin <dberlin@dberlin.org>

	* c-typeck.c (build_function_call): Give name of object
	we are attempting to call in error message.
	* c-objc-common.c (c_tree_printer): Call pp_expression,
	not return false, for 'E' case.

From-SVN: r87809
2004-09-21 15:42:44 +00:00
Nathan Sidwell
5775a06aa6 cp-tree.h (struct lang_type_header): Remove uses_multiple_inheritance field.
* cp-tree.h (struct lang_type_header): Remove
	uses_multiple_inheritance field.
	(TYPE_USES_MULTIPLE_INHERITANCE): Remove.
	(TYPE_BASE_CONVS_MAY_REQUIRE_CODE_P): Remove.
	(TYPE_USES_VIRTUAL_BASECLASSES): Remove.
	(DECL_NEEDS_VTT_PARM_P): Use CLASSTYPE_VBASECLASSES.
	(TYPE_CONTAINS_VPTR_P): Likewise.
	* call.c (add_template_candidate_real): Use
	CLASSTYPE_VBASECLASSES.
	(build_special_member_call): Likewise.
	* class.c (finish_struct_bits): Remove
	TYPE_BASE_CONVS_MAY_REQUIRE_CODE_P & TYPE_USES_VIRTUAL_BASECLASSES
	bookkeeping.
	(check_bases_and_members): Use TYPE_CONTAINS_VPTR_P.
	(create_vtable_ptr): Remove TYPE_BASE_CONVS_MAY_REQUIRE_CODE_P
	bookkeeping.
	(build_vtt_inits): Use CLASSTYPE_VBASECLASSES.
	(accumulate_vtbl_inits, build_vbase_offset_vtbl_entries):
	Likewise.
	* decl.c (xref_basetypes): Remove TYPE_USES_MULTIPLE_INHERITANCE,
	TYPE_BASE_CONVS_MAY_REQUIRE_CODE_P, TYPE_USES_VIRTUAL_BASECLASSES
	bookkeeping.
	(cxx_maybe_build_cleanup): Use CLASSTYPE_VBASECLASSES.
	* decl2.c (maybe_retrofit_in_chrg): Likewise.
	* init.c (expand_member, push_base_cleanups): Likewise.
	* pt.c (instantiate_class_template): Remove
	TYPE_USES_MULTIPLE_INHERITANCE,
	TYPE_BASE_CONVS_MAY_REQUIRE_CODE_P, TYPE_USES_VIRTUAL_BASECLASSES
	bookkeeping.
	* ptree.c (cxx_print_type): Remove TYPE_USES_MULTIPLE_INHERITANCE
	check.
	* typeck2.c (process_init_constructor): Replace some sorrys with
	asserts.

From-SVN: r87808
2004-09-21 15:39:00 +00:00
Olivier Hainque
2494e67370 decl.c (gnat_to_gnu_entity): Check for a dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P.
2004-09-21  Olivier Hainque  <hainque@act-europe.fr>

	* decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
	dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
	ensures proper handling of types with rep clauses, which might have
	their TYPE_SIZE set already.

From-SVN: r87807
2004-09-21 17:34:36 +02:00
Robert Dewar
910d20fcb8 decl.c (gnat_to_gnu_type, [...]): Wrap modular packed array types in both little- and big-endian cases.
2004-09-21  Robert Dewar  <dewar@gnat.com>

	* decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
	packed array types in both little- and big-endian cases. This change
	ensures that we no longer count on the unused bits being initialized
	for such types (and in particular ensures that equality testing will
	only read the relevant bits).
	Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
	These changes mean that we no longer need to initialize small packed
	arrays.
	(gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
	optimization to an LJM field as to its parent field.

	* ada-tree.h:, trans.c, utils.c, utils2.c:
	Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P

From-SVN: r87806
2004-09-21 17:31:03 +02:00
Bud Davis
77747e5f2d re PR libfortran/17286 (namelist containing more than one value cannot contain whitespace or newlines for READ)
2004-09-21  Bud Davis  <bdavis9659@comcast.net>

        PR fortran/17286
        * io/list_read.c (namelist_read): ignore spaces after
        the '=' for namelist reads.

2004-09-21  Bud Davis  <bdavis9659@comcast.net>

        PR fortran/17286
        * gfortran.dg/pr17286.f90: New test.

From-SVN: r87799
2004-09-21 11:22:47 +00:00
Andreas Tobler
b6ad178e2e decl.c (reshape_init_array): Initialize max_index_cst to fix bootstrap failure.
2004-09-21  Andreas Tobler  <a.tobler@schweiz.ch>

	* decl.c (reshape_init_array): Initialize max_index_cst to fix
	bootstrap failure.

From-SVN: r87798
2004-09-21 11:22:00 +02:00
Steven Bosscher
c93320c457 re PR rtl-optimization/17482 (GCSE after reload replacing changing instructions)
PR rtl-optimization/17482
	* postreload-gcse.c (reg_avail_info, oprs_unchanged_p,
	load_killed_in_block_p): Clarify comments.
	(record_last_reg_set_info): Make static inline.
	(mark_call, mark_set, mark_clobber, mark_oprs_set): Remove.
	(record_opr_changes): New function to replace the above.
	(compute_hash_table): Clarify comments.  Use record_opr_changes.
	(reg_set_between_after_reload_p): Clean up.
	(reg_used_between_after_reload_p): Likewise.
	(eliminate_partially_redundant_load): Clarify comments.

From-SVN: r87794
2004-09-21 07:48:29 +00:00
Eric Botcazou
15ee342b73 re PR rtl-optimization/17266 (Libgfortran doesn't build)
PR rtl-optimization/17266
	* regmove.c (optimize_reg_copy_3): Make a new SUBREG for each insn.

From-SVN: r87793
2004-09-21 05:57:55 +00:00
Mark Mitchell
9b60dfd716 re PR c++/17530 (failure to emit inline function)
PR c++/17530
	* pt.c (tsubst): Fix parentheses to accomodate emacs.
	(tsubst_baselink): If we get a single function, mark it as used.

	PR c++/17530
	* g++.dg/template/static7.C: New test.

From-SVN: r87791
2004-09-21 05:44:10 +00:00
Uros Bizjak
79b82df36c re PR rtl-optimization/14851 (suboptimal fp division with -ffast-math)
PR rtl-optimization/14851
        * rtlanal.c (commutative_operand_precedence): Calculate
        precedence of stripped constant.

From-SVN: r87788
2004-09-21 07:10:54 +02:00
Jeff Law
6f2aec072e tree-ssanames.c (make_ssa_name): No longer need to clear, then initialize key elements here.
* tree-ssanames.c (make_ssa_name): No longer need to clear, then
	initialize key elements here.
	(release_ssa_name): Zero the released SSA_NAME here.
	* tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): New macros.
	(struct tree_ssa_name): Add new "equiv" field.
	* tree-ssa-dom.c (const_and_copies): Kill the global varray.
	(tree_ssa_dominator_optimize): No longer allocate, resize or
	clear CONST_AND_COPIES.
	(get_value_for, set_value_for): Kill.
	(thread_across_edge): Get/set the equivalency using
	SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
	(restore_vars_to_original_value): Likewise.
	(record_equivalences_from_phis): Likewise.
	(record_dominating_conditions): Likewise.
	(record_const_or_copy, record_equality): Likewise.
	(lookup_avail_expr): Likewise.
	(record_equivalences_from_stmt, cprop_operand): Likewise.
	(cprop_into_successor_phis): No longer need to pass around
	CONST_AND_COPIES.  Callers updated. Get equivalences via
	SSA_NAME_EQUIV.
	(cprop_into_phis): Likewise.

Co-Authored-By: Jan Hubicka <jh@suse.cz>

From-SVN: r87787
2004-09-20 21:19:00 -06:00
Matt Austern
c162c75e43 c-common.c (fix_string_type): Build the unqualified array type unconditionally...
2004-09-20  Matt Austern <austern@apple.com>
	    Zack Weinberg  <zack@codesourcery.com>

	* c-common.c (fix_string_type): Build the unqualified array
	type unconditionally, then use c_build_qualified_type to get
	the proper const-qualified variant, and set its
	TYPE_MAIN_VARIANT to refer to the unqualified type.
	* c-lex.c (c_lex_return_raw_string): New global.
	(c_lex_with_flags): Honor it.
	* c-pragma.h: Declare it.

cp:
	* decl.c (make_rtl_for_nonlocal_decl, start_preparsed_function):
	Apply lbasename to input_filename before passing to get_fileinfo.
	* semantics.c (begin_class_definition): Likewise.
	* lex.c (handle_pragma_interface): Apply get_fileinfo to the
	correct filename.  Rename variables to be less confusing.
	(handle_pragma_implementation): Likewise.  Disable "appears
	after file is included" diagnostic.

	* parser.c (struct cp_token): Add in_system_header fiag.
	(CP_TOKEN_BLOCK_NUM_TOKENS, struct cp_token_block)
	(CP_TOKEN_BUFFER_SIZE, cp_token_cache_push_token)
	(CPP_NONE, cp_lexer_read_token): Delete.
	(struct cp_lexer): Remove first_token, string_tokens,
	main_lexer_p fields.  Clarify comments.
	(struct cp_token_cache): Now just a pair of pointers.
	(CP_LEXER_BUFFER_SIZE): New #define.
	(CPP_PURGED): New fake token type.
	(cp_lexer_new_from_token_array, cp_lexer_destroy)
	(cp_lexer_peek_token_emit_debug_info, cp_lexer_skip_purged_tokens)
	(cp_lexer_handle_pragma, cp_token_cache_new, cp_parser_string_literal):
	New functions.
	(cp_lexer_new_from_tokens): Now a simple wrapper around
	cp_lexer_new_from_token_array.
	(cp_lexer_set_source_position_from_token): Also update
	in_system_header.
	(cp_lexer_next_token, cp_lexer_prev_token, cp_lexer_advance_token):
	Don't wrap round.
	(cp_lexer_token_difference): Dont handle wrapping round.
	(cp_lexer_new_main): Enable pragma deferral and raw strings,
	read the entire translation unit through c_lex_with_flags into
	this lexer's buffer, then turn raw strings back off again.
	(cp_lexer_grow_buffer): Adjust for buffer no longer being circular.
	(cp_lexer_get_preprocessor_token): No need to handle not being
	the main lexer.  Set token->in_system_header too.
	(cp_lexer_peek_token): Skip purged tokens.  Feed pragma tokens
	to cp_lexer_handle_pragma.  No need to call cp_lexer_read_token.
	(cp_lexer_peek_nth_token): Likewise.
	(cp_lexer_purge_token): Mark the token PURGED, don't shift all
	the other tokens down.
	(cp_lexer_purge_tokens_after): Likewise.
	(cp_lexer_save_tokens, cp_lexer_rollback_tokens): Don't worry
	about there being no tokens.
	(cp_lexer_print_token): Revise to give useful information on
	all tokens.
	(struct cp_parser): Add field translate_strings_p.
	(cp_parser_new): Initialize it.
	(cp_parser_translation_unit): Destroy the lexer when done.
	(cp_parser_parameter_declaration): Restructure saving of
	default arguments.
	(cp_parser_save_member_function_body): Likewise.
	(cp_parser_check_for_invalid_template_id)
	(cp_parser_nested_name_specifier_opt, cp_parser_template_id):
	Adjust calls to cp_lexer_advance_token.
	(cp_parser_skip_to_closing_parenthesis, cp_parser_declaration):
	No need to fiddle c_lex_string_translate.
	(cp_parser_primary_expression, cp_parser_linkage_specification)
	(cp_parser_asm_definition, cp_parser_asm_specification_opt)
	(cp_parser_asm_operand_list, cp_parser_asm_clobber_list)
	Use cp_parser_string_literal.
	(cp_parser_attribute_list): Save and restore
	parser->translate_strings_p, not c_lex_string_translate.
	(cp_parser_cache_group): Delete.
	(cp_parser_cache_group_1): Rename cp_parser_cache_group.  Do
	not take a cache argument.

From-SVN: r87786
2004-09-21 02:22:45 +00:00
Daniel Berlin
5cfa876635 Makefile.in: Fix flags.h dependencies to be $(FLAGS_H).
2004-09-20  Daniel Berlin  <dberlin@dberlin.org>

	* Makefile.in: Fix flags.h dependencies to be $(FLAGS_H).

From-SVN: r87785
2004-09-21 01:00:11 +00:00
GCC Administrator
d6c0b27afa Daily bump.
From-SVN: r87783
2004-09-21 00:16:13 +00:00
Jan Hubicka
d21bede3c1 re PR middle-end/17126 (ICE with -fno-unit-at-a-time and -O3)
PR middle-end/17126
	* tree-optimize.c (update_inlined_to_pointers): Fix the recursion.
	(tree_rest_of_compilation): Cleanup.

From-SVN: r87780
2004-09-21 00:08:53 +00:00
Ulrich Weigand
37337e55bf s390.c (s390_select_rtx_section): Remove.
* config/s390/s390.c (s390_select_rtx_section): Remove.
	(TARGET_ASM_SELECT_RTX_SECTION): Do not redefine.

From-SVN: r87779
2004-09-20 23:42:00 +00:00
Kaz Kojima
455786b6c7 sh.c (sh_expand_prologue): Add a REG_FRAME_RELATED_EXPR note to pretend a direct save from the original...
* config/sh/sh.c (sh_expand_prologue): Add a REG_FRAME_RELATED_EXPR
	note to pretend a direct save from the original register when an
	intermediate register is used for the save.

From-SVN: r87778
2004-09-20 23:10:00 +00:00
Giovanni Bajo
3d142be23b re PR c++/14179 (out of memory while parsing array with many initializers)
PR c++/14179
	* decl.c (reshape_init): Extract array handling into...
	(reshape_init_array): New function. Use integers instead of trees
	for indices. Handle out-of-range designated initializers.

From-SVN: r87777
2004-09-20 23:05:40 +00:00
Kaveh R. Ghazi
2c82eecc78 tsystem.h (alloca): Provide a default definition.
* tsystem.h (alloca): Provide a default definition.

	Revert:
	2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
	    * unwind-dw2.c: Call __builtin_alloca, not alloca.

From-SVN: r87775
2004-09-20 22:23:12 +00:00
Steven Bosscher
d3907cc356 lex.c (cxx_init): Don't set the ridpointer for RID_NULL to null_node.
* lex.c (cxx_init): Don't set the ridpointer for RID_NULL
	to null_node.

From-SVN: r87774
2004-09-20 21:03:56 +00:00
Andrew Pinski
4c9d875031 re PR tree-optimization/17558 (internal compiler error: in merge_alias_info, at tree-ssa-copy.c:182)
2004-09-20  Andrew Pinski  <pinskia@physics.uc.edu>

        PR tree-opt/17558
        * gcc.c-torture/compile/pr17558.c: New test.

From-SVN: r87773
2004-09-20 13:58:23 -07:00
Andrew Pinski
b1940f0c23 re PR tree-optimization/17558 (internal compiler error: in merge_alias_info, at tree-ssa-copy.c:182)
2004-09-20  Andrew Pinski  <pinskia@physics.uc.edu>

        PR tree-opt/17558
        * tree-ssa-copy.c (may_propagate_copy): Only allow if the
        aliasing sets are the same rather than just conflicting.

From-SVN: r87772
2004-09-20 13:53:08 -07:00
Jan Hubicka
1a94c545f0 cgraph.c (cgraph_unnest_node): New function.
* cgraph.c (cgraph_unnest_node): New function.
	(c_finalize): Rename to ....
	(c_warn_unused_result_recursivly): ... this one; do only the warning
	(finish_function): Finalize the toplevel function; do not lower nested tree.
	* cgraph.h (cgraph_unnest_node): Declare.
	* cgraphunit.c (decide_is_function_needed): Do not use cgraph
	nestedness datastructure.
	* cse.c (cse_insn): Do not cprop nonlocal LABEL_REFs.
	* reload1.c (set_label_offsets): Fix call of set_label_offsets.
	* tree-nested.c (finlize_nesting_tree_1):  Use un-nesting code.

From-SVN: r87771
2004-09-20 20:41:20 +00:00
Jan Hubicka
8f2353433c re PR middle-end/16460 (ICE when compiling glibc (ld-ctype.c))
PR middle-end/16460

	* cgraph.c (cgraph_unnest_node): New function.
	(c_finalize): Rename to ....
	(c_warn_unused_result_recursivly): ... this one; do only the warning
	(finish_function): Finalize the toplevel function; do not lower nested tree.
	* cgraph.h (cgraph_unnest_node): Declare.
	* cgraphunit.c (decide_is_function_needed): Do not use cgraph
	nestedness datastructure.
	* cse.c (cse_insn): Do not cprop nonlocal LABEL_REFs.
	* reload1.c (set_label_offsets): Fix call of set_label_offsets.
	* tree-nested.c (finlize_nesting_tree_1):  Use un-nesting code.

	* utils.c (gnat_finalize): Remove.
	(end_subprog_body): Directly call cgraph_finalize_function;
	do not lower the nested functions.

	* trans-decl.c (build_entry_thunks): Finalize the function; do not lower
	tree.
	(gfc_generate_function_code): Likewise.

From-SVN: r87770
2004-09-20 20:38:29 +00:00
Richard Henderson
04161e2bde alpha.c (some_small_symbolic_operand_int): Rename from some_small_symbolic_operand_1; export.
* config/alpha/alpha.c (some_small_symbolic_operand_int): Rename
        from some_small_symbolic_operand_1; export.
        (some_small_symbolic_operand): Remove.
        * config/alpha/alpha.md (some_small_symbolic_operand splitter): Remove
        extra C check.
        * config/alpha/predicates.md (some_small_symbolic_operand): New.

From-SVN: r87769
2004-09-20 13:13:39 -07:00
Jan Hubicka
bb033fd806 predict.c (return_prediction): New function.
* predict.c (return_prediction): New function.
	(apply_return_prediction): Likewise.
	(tree_bb_level_predictions): Likewise.
	(tree_estimate_probability): Add noreturn exit edges; call
	bb_level_predictions; fix logic of return heuristics.
	(predict_paths_leading_to):  Rescuesce from old CVS version of
	process_note_prediction function.
	* predict.def (PRED_TREE_EARLY_RETURN): New predictor.

From-SVN: r87768
2004-09-20 18:43:30 +00:00
Richard Sandiford
348f5701fc sdata-section.h (SDATA_SECTION): Don't use an attribute if SKIP_ATTRIBUTE is defined.
* gcc.dg/compat/sdata-section.h (SDATA_SECTION): Don't use an attribute
	if SKIP_ATTRIBUTE is defined.

From-SVN: r87766
2004-09-20 18:02:53 +00:00
Andreas Krebbel
ea50629789 s390.c (s390_frame_info): Added alignment statement for floating point register area on stack.
2004-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (s390_frame_info): Added alignment statement for
	floating point register area on stack.

From-SVN: r87765
2004-09-20 17:25:39 +00:00
Tobias Schlüter
da89fba81f re PR fortran/15957 (Error in array assignments; 'shape'-related stuff)
fortran/
PR fortran/15957
* simplify.c (gfc_simplify_reshape): Set shape of return value
correctly.

testsuite/
PR fortran/15957
* gfortran.dg/pr15957.f90: New test.

From-SVN: r87764
2004-09-20 19:22:50 +02:00
Jakub Jelinek
096759ebec * predict.c (expr_expected_value): Use *_CLASS_P macros.
From-SVN: r87763
2004-09-20 18:56:12 +02:00
Dorit Naishlos
1cdcb2cfd1 vect-74.c: Avoid floating point precision error in comparison.
* gcc.dg/vect/vect-74.c: Avoid floating point precision error
        in comparison.
        * gcc.dg/vect/vect-79.c: Likewise.
        * gcc.dg/vect/vect-80.c: Likewise.

From-SVN: r87762
2004-09-20 16:26:24 +00:00
Daniel Berlin
d6fd4b8d11 tree-ssa-pre.c (compute_antic_aux): Use malloc'd worklist, to avoid generating useless garbage.
2004-09-20  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-pre.c (compute_antic_aux): Use malloc'd worklist, to avoid
	generating useless garbage.

From-SVN: r87760
2004-09-20 15:45:21 +00:00
Paolo Bonzini
c2dda19b3b builtins.c (fold_builtin): Call the new omonymous target hook for machine-dependent built-ins.
2004-09-20  Paolo Bonzini  <bonzini@gnu.org>

	* builtins.c (fold_builtin): Call the new omonymous
	target hook for machine-dependent built-ins.
	* target-def.h (TARGET_FOLD_BUILTIN): New.
	* target.h (struct gcc_target): Add the fold_builtin hook.
	* targhooks.c (default_fold_builtin): New.
	* targhooks.h (default_fold_builtin): Declare it.

From-SVN: r87756
2004-09-20 14:47:20 +00:00
Robert Dewar
bb9be5eb9c re PR ada/17540 (Duplicate symbols while building Ada)
2004-09-20  Robert Dewar  <dewar@gnat.com>

	PR ada/17540

	* freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
	if an address clause is present, since that means that the Import
	should be ignored.

From-SVN: r87755
2004-09-20 14:07:47 +02:00
Kazu Hirata
d4a9b3a336 cfg.c, [...]: Fix comment typos.
* cfg.c, tree-ssa-threadupdate.c, tree-vectorizer.c: Fix
	comment typos.

From-SVN: r87753
2004-09-20 11:17:22 +00:00
Tobias Schlüter
b898b8d923 re PR fortran/15750 (IOLENGTH form of INQUIRE statement not implemented)
PR fortran/15750
* gfortran.fortran-torture/execute/iolength_2.f90: New test.

From-SVN: r87752
2004-09-20 13:09:47 +02:00
Arnaud Charlet
796ef2e2d5 * 5tsystem.ads: Removed, no longer used.
From-SVN: r87751
2004-09-20 10:43:00 +02:00
Ira Rosen
479b66524f vect-13.c: Added xfail for non ppc platforms.
2004-09-20  Ira Rosen  <irar@il.ibm.com>

        * gcc.dg/vect/vect-13.c: Added xfail for non ppc platforms.
        * gcc.dg/vect/vect-74.c: Split into 3 tests (vect-79.c, vect-80.c).
        * gcc.dg/vect/vect-62.c: New testcase.
        * gcc.dg/vect/vect-63.c: New testcase.
        * gcc.dg/vect/vect-64.c: New testcase.
        * gcc.dg/vect/vect-65.c: New testcase.
        * gcc.dg/vect/vect-66.c: New testcase.
        * gcc.dg/vect/vect-67.c: New testcase.
        * gcc.dg/vect/vect-68.c: New testcase.
        * gcc.dg/vect/vect-69.c: New testcase.
        * gcc.dg/vect/vect-79.c: New testcase.
        * gcc.dg/vect/vect-80.c: New testcase.

From-SVN: r87745
2004-09-20 07:17:06 +00:00
Richard Sandiford
073cbad3bb re PR target/17565 ([3.3 only] asms in delay slots)
PR target/17565
	* config/mips/mips.md (define_asm_attributes): Set can_delay to no.

From-SVN: r87744
2004-09-20 06:54:52 +00:00
GCC Administrator
82b0258299 Daily bump.
From-SVN: r87739
2004-09-20 00:16:14 +00:00
Jan Hubicka
58016611d8 * predict.c (estimate_probability): Remove unnecesary code.
From-SVN: r87736
2004-09-20 00:05:38 +00:00
Mark Mitchell
5bd916325a decl2.c (determine_visibility): Allow class visibility directives to override targetm.cxx.export_class_data.
* decl2.c (determine_visibility): Allow class visibility
	directives to override targetm.cxx.export_class_data.

[[Split portion of a mixed commit.]]

From-SVN: r87735.2
2004-09-19 23:18:19 +00:00
Ira Rosen
6775f1f3a7 tree-vectorizer.h (stmt_vec_info): Add vect_dr_base field.
2004-09-19  Ira Rosen  <irar@il.ibm.com>

        * tree-vectorizer.h (stmt_vec_info): Add vect_dr_base field.
        (STMT_VINFO_VECT_DR_BASE): Declare.
        (VECT_SMODULO): Declare.
        * tree-vectorizer.c (vect_compute_array_ref_alignment): New function.
        (vect_compute_array_base_alignment): New function.
        (vect_analyze_data_ref_access): Check array indices. Remove one
        dimensional arrays restriction.
        (vect_get_ptr_offset): New function.
        (vect_get_symbl_and_dr): New function.
        (vect_get_base_and_bit_offset): Support additional data refs. Renamed
        (former name vect_get_base_decl_and_bit_offset).
        (vect_create_index_for_array_ref): Removed.
        (vect_create_index_for_vector_ref): New function.
        (vect_create_addr_base_for_vector_ref): New function.
        (vect_create_data_ref): Handle additional data refs. Call
        vect_create_index_for_vector_ref and vect_create_addr_base_for_vector_ref.
        (vect_compute_data_ref_alignment): Support the changes. Call
        vect_get_base_and_bit_offset.
        (vect_analyze_data_refs): Call vect_get_symbl_and_dr. Support additional
        data refs. Store vect_dr_base.
        (vect_analyze_data_ref_accesses): Support nonconstant init.
        (new_stmt_vec_info): Initialize vect_dr_base field.
        (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
        (get_vectype_for_scalar_type): Check for BLKmode.
        * tree-chrec.h (initial_condition_in_loop_num): Declare.
        * tree-chrec.c (initial_condition_in_loop_num): New function.
        (chrec_component_in_loop_num): New function.
        (evolution_part_in_loop_num): Call chrec_component_in_loop_num.
        * tree-data-ref.c (analyze_array_indexes): Change parameter (access_fns)
        to be pointer to varray_type.

From-SVN: r87731
2004-09-19 18:01:51 +00:00
Jan Hubicka
15db5571d1 basic-block.h (update_bb_profile_after_threading): Declare.
* basic-block.h (update_bb_profile_after_threading): Declare.
	* cfg.c (update_bb_profile_after_threading): Break out from ...
	* cfgcleanup.c (try_forward_edges): ... here; use it.
	* tree-ssa-dom.c (thread_across_edge): Use it.
	* tree-ssa-threadupdate.c (create_block_for_threading): Zero out
	profile of the new BB.

From-SVN: r87730
2004-09-19 16:04:03 +00:00
Daniel Berlin
9714133875 tree-ssa-pre.c (insert_into_set): Don't put is_gimple_min_invariant values into the set.
2004-09-19  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-pre.c (insert_into_set): Don't put
	is_gimple_min_invariant values into the set.

From-SVN: r87725
2004-09-19 13:57:35 +00:00
Andreas Jaeger
76fd4fd7e2 tree-ssa-dom.c (restore_nonzero_vars_to_original_value): Fix prototype.
* tree-ssa-dom.c (restore_nonzero_vars_to_original_value): Fix
	prototype.

From-SVN: r87721
2004-09-19 08:09:41 +02:00
Kazu Hirata
938688cdf7 cris.h: Preserve the original spelling in a quote.
* config/cris/cris.h: Preserve the original spelling in a
	quote.

From-SVN: r87720
2004-09-19 04:02:34 +00:00
Jeff Law
fdabe5c2ef tree-ssa-dom.c (nonzero_vars_stack, [...]): New global varrays to replace the block local varrays.
* tree-ssa-dom.c (nonzero_vars_stack, vrp_variables_stack): New
	global varrays to replace the block local varrays.
	(struct dom_walk_block_data): Remove, no longer used.
	(get_eq_expr_value): No longer need to pass around pointers to local
	varrays.  Callers updated.  Unused markers added to unused parameters.
	(record_range, record_equivalences_from_stmt): Likewise.
	(record_equivalences_from_incoming_edge): Likewise.
	(record_var_is_nonzero): Likewise.  Update now that we have a
	single global varray of SSA_NAMEs that need restoring.
	(dom_opt_initialize_block_local_data): Kill, no longer used.
	(tree_ssa_dominator_optimize): Initialize new global varrays.
	Update callbacks in dominator walker structure.
	(dom_opt_initialize_block): Add markers to NONZERO_VAR_STACK and
	VRP_VARIABLES_STACK.
	(restore_nonzero_vars_to_original_value): Update now that we have
	a single global varray of SSA_NAMEs that need restoring.
	(dom_opt_finalize_block): Similarly for VRP_VARIABLES_STACK.
	Remove unused variables.
	(optimize_stmt): Remove unused variable.

From-SVN: r87719
2004-09-18 20:51:15 -06:00
GCC Administrator
4557647703 Daily bump.
From-SVN: r87717
2004-09-19 00:16:13 +00:00
Paul Brook
16d1b0bd17 * g++.old-deja/g++.pt/static11.C: XFAIL on arm*-*-eabi.
From-SVN: r87712
2004-09-18 22:58:12 +00:00
Jan Hubicka
4d539f6875 * tree-cfg.c (thread_jumps): Fix updating of the profile.
From-SVN: r87709
2004-09-18 21:54:53 +00:00
Jan Hubicka
0eac5febe6 tree-optimize.c (tree_rest_of_compilation): Kill forgotten verify_cgraph call.
* tree-optimize.c (tree_rest_of_compilation): Kill forgotten
	verify_cgraph call.

From-SVN: r87708
2004-09-18 21:53:00 +00:00
Kazu Hirata
454ff5cbf0 alias.c, [...]: Fix comment typos.
* alias.c, crtstuff.c, dbxout.c, domwalk.c, domwalk.h, gcc.c,
	gcse.c, global.c, lambda-code.c, loop.c, mips-tdump.c,
	optabs.h, predict.c, reg-stack.c, regclass.c, sched-rgn.c,
	tree-optimize.c, tree-ssa-dom.c, tree-ssa-forwprop.c,
	tree-ssa-operands.c, tree-ssa-phiopt.c,
	tree-ssa-threadupdate.c: Fix comment typos.

From-SVN: r87707
2004-09-18 19:47:10 +00:00
Kazu Hirata
112cdef5e6 darwin-c.c, [...]: Fix comment typos.
* config/darwin-c.c, config/arc/arc.c, config/arc/arc.md,
	config/arm/README-interworking, config/arm/arm-cores.def,
	config/arm/arm.c, config/arm/arm.h, config/arm/pe.c,
	config/arm/vfp.md, config/c4x/c4x.c, config/c4x/c4x.h,
	config/cris/cris.c, config/cris/cris.h, config/fr30/fr30.c,
	config/fr30/fr30.h, config/fr30/fr30.md, config/frv/frv.c,
	config/frv/frv.md, config/i386/winnt.c,
	config/ia64/unwind-ia64.c, config/iq2000/iq2000.c,
	config/iq2000/iq2000.h, config/m68hc11/m68hc11.c,
	config/m68hc11/m68hc11.md, config/m68k/m68k.c,
	config/mcore/mcore.c, config/mips/mips.h,
	config/mn10300/mn10300.md, config/pa/pa.c,
	config/pa/pa64-regs.h, config/pdp11/pdp11.c,
	config/rs6000/rs6000.c, config/sh/symbian.c,
	config/sparc/sparc.h: Fix comment typos.  Follow spelling
	conventions.

From-SVN: r87706
2004-09-18 19:19:40 +00:00
Joseph Myers
ad97f4bed6 re PR c/17424 (ICE with sizeof an undeclared variable)
PR c/17424
	* c-typeck.c (c_expr_sizeof_expr): Check for error_mark_node.

testsuite:
	* gcc.dg/pr17424-1.c: New test.

From-SVN: r87705
2004-09-18 19:28:14 +01:00
Kazu Hirata
5995ebfb56 call.c, [...]: Follow spelling conventions.
* call.c, semantics.c: Follow spelling conventions.
	* class.c: Fix a comment typo.

From-SVN: r87704
2004-09-18 17:23:59 +00:00
Diego Novillo
57e28d7d76 tree-ssa-alias.c (setup_pointers_and_addressables): Don't remove TREE_ADDRESSABLE from RESULT_DECL.
* tree-ssa-alias.c (setup_pointers_and_addressables): Don't
	remove TREE_ADDRESSABLE from RESULT_DECL.

testsuite/ChangeLog

	* g++.dg/tree-ssa/pr17153.C: New test.

From-SVN: r87703
2004-09-18 09:56:23 -04:00
Diego Novillo
d804d49087 * tree-ssa-alias.c (dump_alias_info): Ignore NULL SSA_NAMEs.
From-SVN: r87702
2004-09-18 09:53:31 -04:00
Jan Hubicka
8b547e44f7 tree-into-ssa.c (rewrite_ssa_into_ssa): Expect ssa_name to return NULL.
* tree-into-ssa.c (rewrite_ssa_into_ssa):  Expect ssa_name to return
	NULL.
	* tree-ssa-alias.c (init_alias_info): Likewise.
	* tree-ssa.c (verify_flow_sensitive_alias_info): Likewise.
	(verify_ssa): Likewise.
	* tree-ssanames.c (make_ssa_name): Clear out ssa_names arrays.

From-SVN: r87698
2004-09-18 07:31:30 +00:00
Jan Hubicka
b8771ace10 i386.c (legitimize_pic_address): Fix splitting of PLUS with huge offset.
* i386.c (legitimize_pic_address): Fix splitting of PLUS with
	huge offset.

From-SVN: r87697
2004-09-18 07:29:06 +00:00
Kaz Kojima
f4966f8cab linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove.
* config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove.
	* config/sh/sh.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
	DW_EH_PE_sdata* for data.
	(ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.

From-SVN: r87696
2004-09-18 06:43:09 +00:00
Geoffrey Keating
a396f8ae24 re PR pch/13361 (const wchar_t * strings not stored in pch)
* tree-inline.c (copy_tree_r): Don't duplicate constants, they're
	shared anyway.

	PR pch/13361
	* c-typeck.c (constructor_asmspec): Delete.
	(struct initializer_stack): Delete field 'asmspec'.
	(start_init): Delete saving of asmspec.
	(finish_init): Don't update constructor_asmspec.
	* dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
	* stmt.c (expand_asm): Duplicate strings from tree.
	(expand_asm_operands): Likewise.
	* tree.c (tree_size): Update computation of size of STRING_CST.
	(make_node): Don't make STRING_CST nodes.
	(build_string): Allocate string with tree node.
	(tree_code_size): Clean up assertions, don't allow requests
	for "the size of a STRING_CST".
	* tree.def (STRING_CST): Update comment.
	* tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
	(tree_string): Place contents of string in tree node.
	* config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
	from tree.

From-SVN: r87695
2004-09-18 05:50:52 +00:00
Zack Weinberg
9aa44508a8 Makefile.in (c-parse.o): Depend on $(C_PRAGMA_H).
* Makefile.in (c-parse.o): Depend on $(C_PRAGMA_H).
	* objc/Make-lang.in (objc/objc-parse.o): Likewise.

From-SVN: r87689
2004-09-18 01:07:25 +00:00
Jones Desougi
bf3b7cd307 configure.ac: Replace AC_COMPILE_CHECK_SIZEOF with AC_CHECK_SIZEOF.
2004-09-17  Jones Desougi  <jones@ingate.com>

	* configure.ac: Replace AC_COMPILE_CHECK_SIZEOF with AC_CHECK_SIZEOF.
	* configure, config.in: Regenerate.

From-SVN: r87686
2004-09-18 00:50:15 +00:00
Zack Weinberg
b85e3643cc tree.c, tree.h (tree_class_strings): Make array const.
* tree.c, tree.h (tree_class_strings): Make array const.
	Reindent per coding convention.  Move asterisk to proper place
	per coding convention.

From-SVN: r87685
2004-09-18 00:43:42 +00:00
GCC Administrator
e407d8cb49 Daily bump.
From-SVN: r87683
2004-09-18 00:16:19 +00:00
Andreas Schwab
6e3363336b Makefile.in (gimple-low.o): Depend on $(EXPR_H).
* Makefile.in (gimple-low.o): Depend on $(EXPR_H).
	(tree-vectorizer.o): Likewise.
	(targhooks.o): Likewise.

From-SVN: r87676
2004-09-17 22:14:58 +00:00
Jeffrey D. Oldham
6615c44615 alias.c (find_base_decl): Remove unreachable case '3' block.
2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
	    Zack Weinberg  <zack@codesourcery.com>

	* alias.c (find_base_decl): Remove unreachable case '3' block.
	* expr.c (safe_from_p): Abort if passed a type.
	* tree-gimple.c (recalculate_side_effects): Abort if passed
	anything other than an expression.
	* tree-ssa-pre.c (phi_translate): Return expr immediately if
	is_gimple_min_invariant is true for it.  Reorder cases for clarity.
	Abort on un-handled tree classes.
	(valid_in_set): Likewise.
	* tree.c (tree_code_class_strings): New static data.

	* tree.h (enum tree_code_class): New.
	(tree_code_class_strings): Declare.
	(TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P)
	(REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P)
	(STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros.
	(TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS)
	(checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update.

	* tree.def, c-common.def, objc/objc-tree.def: Use
	tree_code_class enumeration constants instead of code letters.

	* alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c
	* c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c
	* emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c
	* langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c
	* tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c
	* tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c
	* tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c
	* tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c
	* tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c
	* tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c
	* tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c
	* config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c
	* config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c
	Update to match.

	* LANGUAGES: Add note about change.

ada:
	* ada-tree.def: Use tree_code_class enumeration constants
	instead of code letters.
	* ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
	Update for new tree-class enumeration constants.

cp:
	* cp-tree.def: Use tree_code_class enumeration constants
	instead of code letters.
	* call.c, class.c, cp-gimplify.c, cp-lang.c, cxx-pretty-print.c
	* mangle.c, pt.c, semantics.c, tree.c, typeck.c:
	Update for new tree-class enumeration constants.

fortran:
	* f95-lang.c, trans-expr.c, trans.c: Update for new tree-class
	enumeration constants.

java:
	* java-tree.def: Use tree_code_class enumeration constants
	instead of code letters.
	* java-gimplify.c, jcf-write.c, lang.c, parse.y: Update for
	new tree-class enumeration constants.

treelang:
	* treetree.c: Update for new tree-class enumeration constants.

From-SVN: r87675
2004-09-17 21:55:02 +00:00
Kenneth Zadeck
ade2298233 20040917-1.c: New test.
2004-09-17  Kenneth Zadeck  <Kenneth.Zadeck@NaturalBridge.com>

	* gcc.c-torture/execute/20040917-1.c: New test.

From-SVN: r87674
2004-09-17 17:49:39 -04:00
Diego Novillo
823f0809e6 re PR tree-optimization/17319 (-fno-tree-dce cause ICE)
PR tree-optimization/17319
	* tree-ssa-alias.c (compute_points_to_and_addr_escape): Also
	examine pointers on the LHS of an assignment.
	(collect_points_to_info_r): Handle RETURN_EXPR.

testsuite/ChangeLog

	PR tree-optimization/17319
	* gcc.dg/pr17319.c: New test.

From-SVN: r87673
2004-09-17 17:30:23 -04:00
Jeff Law
b5fefcf63d tree-ssa-dom.c (const_and_copies_stack): New.
* tree-ssa-dom.c (const_and_copies_stack): New.
	(dom_walk_block_data): Remove const_and_copies field.
	(record_const_or_copy): No longer need to pass in varray_type *.
	Use CONST_AND_COPIES_STACK rather than passed in block local stack.
	Callers updated.
	(record_equality): Similarly.
	(restore_vars_to_original_value): Similarly.  Revamp to use new
	single global stack rather than per-block stacks.
	(tree_ssa_dominator_optimize): Initialize the CONST_AND_COPIES_STACK.
	(thread_across_edge): Remove now unused parameters.
	(dom_opt_initialize_block_local_data): No longer test the block
	local CONST_AND_COPIES.
	(dom_opt_initialize_block): Push a marker on CONST_AND_COPIES_STACK.

From-SVN: r87670
2004-09-17 15:16:07 -06:00
Jan Hubicka
2c459e7487 re PR tree-optimization/17509 (ICE in verify_cgraph_node)
PR tree-optimization/17509
	* tree-optimize.c (update_inlined_to_pointers): New function.
	(tree_rest_of_compilation): Use it.

From-SVN: r87669
2004-09-17 21:04:56 +00:00
Devang Patel
0456cbf665 dbxout.c (get_lang_number): New.
* dbxout.c (get_lang_number): New.
       (dbxout_init): Include lang number in N_SO  stab.
       * dbxout.h (N_SO_AS, N_SO_C, N_SO_ANSI_C, N_SO_CC, N_SO_FORTRAN,
       N_SO_PASCAL, N_SO_FORTRAN90, N_SO_OBJC, N_SO_OBJCPLUS): New #define.

testsuite
       * gcc.dg/20040813-1.c: New test.

From-SVN: r87663
2004-09-17 11:47:19 -07:00
Diego Novillo
7eae8eb2b1 re PR tree-optimization/17273 (ICE in get_indirect_ref_operands)
PR tree-optimization/17273
	* tree-ssa.c (replace_immediate_uses): Call fold_stmt if the
	replacement is a constant.

testsuite/ChangeLog

	PR tree-optimization/17273
	* gcc.c-torture/compile/pr17273.c: New test.

From-SVN: r87662
2004-09-17 14:42:51 -04:00
Joseph Myers
98c3a78277 c-tree.h (enum c_typespec_keyword): New.
* c-tree.h (enum c_typespec_keyword): New.
	(struct c_declspecs): Adjust description of "type".  Remove
	specbits, explicit_int_p and explicit_char_p.  Rename
	typedef_signed_p to explicit_signed_p.  Add default_int_p, long_p,
	short_p, signed_p, unsigned_p and complex_p.
	(finish_declspecs): New.
	* c-parse.in (datadef, datadecl, setspecs, decl, component_decl,
	typename): Call finish_declspecs.
	* c-decl.c (finish_declspecs): New.
	(declspecs_add_type): Check for combinations which cannot occur in
	valid specifier lists.  Update comments.
	(shadow_tag_warned): Remove checks done in finish_declspecs.
	Don't report useless type name if type defaulted to int.
	(grokdeclarator): Remove checks and actions done in
	finish_declspecs.  Don't allow for type being NULL.  Update for
	datastructures changes.  Initialize decl_attr.
	(build_null_declspecs, quals_from_declspecs): Update for
	datastructures changes.

testsuite:
	* gcc.dg/declspec-4.c, gcc.dg/declspec-5.c, gcc.dg/declspec-6.c:
	Update expected messages.
	* gcc.dg/declspec-13.c: New test.

From-SVN: r87660
2004-09-17 19:18:05 +01:00
Sylvain Pion
254ea84c12 * doc/extend.texi: Fix duplicated word.
From-SVN: r87657
2004-09-17 17:24:17 +00:00
Paul Brook
4cdf72233b gfortran.h (struct gfc_linebuf): Don't use C99 empty arrays.
* gfortran.h (struct gfc_linebuf): Don't use C99 empty arrays.
	(gfc_linebuf_header_size): Define.
	* scanner.c (load_file): Use it.

From-SVN: r87655
2004-09-17 17:07:43 +00:00
Toon Moene
fa151acf6d invoke.texi: Remove stray explanation on -freduce-all-givs and -fmove-all-movables.
2004-09-17  Toon Moene  <toon@moene.indiv.nluug.nl>

	* doc/invoke.texi: Remove stray explanation on
	-freduce-all-givs and -fmove-all-movables.

From-SVN: r87651
2004-09-17 15:51:58 +00:00
James A. Morrison
cd1a8088eb cfg.texi: Use @smallexample.
2004-09-17  James Morrison  <phython@gcc.gnu.org>

        * doc/cfg.texi: Use @smallexample.
        * doc/md.texi: Likewise.
        * doc/tree-ssa.texi: Likewise.
        * doc/extend.texi: Likewise.  Use @r{} in comments.
        * doc/trouble.texi: Use @r{} in comments.

From-SVN: r87646
2004-09-17 13:57:03 +00:00
David Edelsohn
57f0099a96 * gcc.dg/darwin-longlong.c: XFAIL on AIX and SPE.
From-SVN: r87645
2004-09-17 09:48:43 -04:00
Vincent Celier
93ed8a01c6 prj-attr-pm.ads, [...]: New files, to split some private capabilities of the general project manager.
2004-09-17  Vincent Celier  <celier@gnat.com>

	* prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
	capabilities of the general project manager.

From-SVN: r87644
2004-09-17 15:46:12 +02:00
Hans-Peter Nilsson
58ea87a9f2 configure.ac (gcc_cv_gld_version): Handle whitespace before "VERSION=".
* configure.ac (gcc_cv_gld_version): Handle whitespace before
	"VERSION=".
	* aclocal.m4 (_gcc_COMPUTE_GAS_VERSION): Ditto.
	* configure: Regenerate.

From-SVN: r87643
2004-09-17 12:45:34 +00:00
Diego Novillo
47bb500f21 pr17252.c: Use post-increment to change what 'a' is pointing to.
* gcc.c-torture/execute/pr17252.c: Use post-increment to
	change what 'a' is pointing to.

From-SVN: r87642
2004-09-17 08:22:19 -04:00
Joern Rennecke
788bb47dc4 Be more precise in last entry.
From-SVN: r87641
2004-09-17 13:01:33 +01:00
Joern Rennecke
0360319200 sh.c (sh_gimplify_va_arg_expr): Don't call pass_by_reference.
* sh.c (sh_gimplify_va_arg_expr): Don't call pass_by_reference.
	(sh_pass_by_reference): Work around std_gimplify_va_arg_expr bug.
	* t-sh (MULTILIB_CPUS): s/ML_m/ML_sh/g .
	* t-sh64 (MULTILIB_CPU_DIRS): Likewise.  Match trailing slashes
	in substitutions.
	(MULTILIB_DIRNAMES): Remove defunct removal of /media32.

From-SVN: r87640
2004-09-17 12:53:14 +01:00
Kazu Hirata
b01d837fa2 basic-block.h, [...]: Fix comment typos.
* basic-block.h, c-decl.c, c-parse.in, cgraphunit.c, ddg.c,
	gimplify.c, lambda-code.c, optabs.c, predict.c,
	tree-scalar-evolution.c, tree-sra.c, tree-ssa-loop-ch.c,
	tree-ssa.c, vec.h: Fix comment typos.  Follow spelling
	conventions.

From-SVN: r87637
2004-09-17 09:14:12 +00:00
Kazu Hirata
4ec7afd748 compat.texi, [...]: Use @option around options.
* doc/compat.texi, doc/cpp.texi, doc/cppopts.texi,
	doc/extend.texi, doc/install.texi, doc/invoke.texi,
	doc/sourcebuild.texi, doc/tm.texi, doc/tree-ssa.texi,
	doc/trouble.texi: Use @option around options.

From-SVN: r87635
2004-09-17 08:22:53 +00:00
Richard Sandiford
6eab2bc3dc * Makefile.in (gen-protos.o): Depend on errors.h.
From-SVN: r87634
2004-09-17 07:15:22 +00:00
Mark Mitchell
996c2b5248 re PR c++/16002 (Strange error message with new parser)
PR c++/16002
	* parser.c (cp_parser_simple_declaration): Commit to tentative
	parses after seeing a decl-specifier.
	(cp_parser_simple_declaration): Eliminate spurious message.
	(cp_parser_init_declarator): Adjust error message.

	PR c++/16029
	* lex.c (unqualified_name_lookup_error): Mark the dummy
	declaration as used.

	PR c++/16002
	* g++.dg/template/error18.C: New test.

	PR c++/16029
	* g++.dg/warn/Wunused-8.C: New test.

From-SVN: r87633
2004-09-17 07:01:11 +00:00
Steven Bosscher
275a418708 re PR rtl-optimization/17513 (ICE: verify_flow_info failed after gcse)
PR tree-optimization/17513
	* cfgexpand.c (construct_init_block): Clear EDGE_EXECUTABLE
	for successors of the entry block.

	* gcc.dg/20040916-1.c: New test.

From-SVN: r87632
2004-09-17 06:23:54 +00:00
Uros Bizjak
b355f2229a re PR rtl-optimization/15187 (Inefficient if optimization with -O2 -ffast-math)
PR rtl-optimization/15187
	* ifcvt.c (noce_try_cmove_arith): Exit early if total
	insn_rtx_cost of both branches > BRANCH_COST

From-SVN: r87631
2004-09-17 07:32:36 +02:00
Diego Novillo
7a1162112b re PR tree-optimization/17528 (tree optimization incorrectly optimizes away entire function (incorrect aliasing detection?))
PR tree-optimization/17528
	* tree-ssa-alias.c (compute_flow_insensitive_aliasing): Do not
	erase the may-alias set for a tag when merging it with
	another.

From-SVN: r87624
2004-09-16 21:10:28 -04:00
GCC Administrator
02382b9149 Daily bump.
From-SVN: r87622
2004-09-17 00:16:17 +00:00
Kaz Kojima
e57450ce82 sh.md (call): Extend 32-bit addresses to DImode for 32-bit TARGET_SHMEDIA.
* config/sh/sh.md (call): Extend 32-bit addresses to DImode
	for 32-bit TARGET_SHMEDIA.
	(call_value): Likewise.

From-SVN: r87619
2004-09-16 23:37:00 +00:00
Mark Mitchell
67bcc25224 re PR c++/17501 (Confusion with member templates)
PR c++/17501
	* parser.c (cp_parser_nested_name_specifier): Do not resolve
	typename types if the user explicitly said "typename".

	PR c++/17501
	* g++.dg/template/typename7.C: New test.

From-SVN: r87616
2004-09-16 22:55:13 +00:00
Diego Novillo
1800536a05 tree-ssa-operands.c (add_call_clobber_ops): Make read-only test apply only to TREE_STATIC and DECL_EXTERNAL.
* tree-ssa-operands.c (add_call_clobber_ops): Make read-only
	test apply only to TREE_STATIC and DECL_EXTERNAL.

From-SVN: r87615
2004-09-16 18:16:56 -04:00
Zdenek Dvorak
42759f1ea0 Makefile.in (tree-cfg.o): Add CFGLAYOUT_H dependency.
* Makefile.in (tree-cfg.o): Add CFGLAYOUT_H dependency.
	* basic-block.h (get_dominated_by_region): Declare.
	* dominance.c (get_dominated_by_region): New function.
	* tree-cfg.c: Include cfglayout.h.
	(tree_duplicate_bb): Duplicate also phi nodes.
	(struct ssa_name_map_entry): New type.
	(add_phi_args_after_copy_bb, add_phi_args_after_copy,
	ssa_name_map_entry_hash, ssa_name_map_entry_eq,
	allocate_ssa_names, rewrite_to_new_ssa_names_def,
	rewrite_to_new_ssa_names_use, rewrite_to_new_ssa_names_bb,
	rewrite_to_new_ssa_names, tree_duplicate_sese_region): New functions.
	* tree-flow.h (tree_duplicate_sese_region, add_phi_args_after_copy_bb,
	add_phi_args_after_copy, rewrite_to_new_ssa_names_bb,
	rewrite_to_new_ssa_names, allocate_ssa_names,
	rewrite_into_loop_closed_ssa, verify_loop_closed_ssa): Declare.
	* tree-ssa-loop-ch.c (duplicate_blocks): Removed.
	(copy_loop_headers): Use tree_duplicate_sese_region.

	* gcc.dg/tree-ssa/copy-headers.c: Update outcome.

From-SVN: r87614
2004-09-16 21:29:43 +00:00
Frank Ch. Eigler
2731cf24d2 profile.c (branch_prob): Restore support for USE_MAPPED_LOCATION.
2004-09-16  Frank Ch. Eigler  <fche@redhat.com>

	* profile.c (branch_prob): Restore support for USE_MAPPED_LOCATION.

From-SVN: r87613
2004-09-16 20:42:00 +00:00
Frank Ch. Eigler
8304ad70b7 bprob.exp, bprob.exp: Iterate tests with -ftree-based-profiling also.
2004-09-16  Frank Ch. Eigler  <fche@redhat.com>

	* gcc.misc-tests/bprob.exp, g++.dg/bprob/bprob.exp: Iterate tests
	with -ftree-based-profiling also.
	* lib/profopt.exp: Support late-set profile_option/feedback_option.

From-SVN: r87612
2004-09-16 20:37:09 +00:00
Jeff Law
9fae925b00 tree-into-ssa.c (block_defs_stack): New toplevel varray.
* tree-into-ssa.c (block_defs_stack): New toplevel varray.
	(rewrite_block_data): Remove, no longer used.
	(rewrite_initialize_block_local_data): Remove, no longer used.
	(rewrite_initialize_block): Mark parameters as unused as needed.
	Change references to the block local block_defs to be block_defs_stack.
	Push a marker onto the block_defs_stack.
	(ssa_rewrite_initialize_block): Similarly.
	(rewrite_stmt, ssa_rewrite_stmt): Similarly.
	(ssa_register_new_def): No longer needs varray argument.  Use
	block_defs_stack instead.  No longer handle possibly null block_defs
	varray.  Reverse order of items we push on the stack to make it
	easier to identify our marker.
	(register_new_def): No longer handle possibly null block_defs
	varray.
	(rewrite_finalize_block): Revamp to look for markers in the global
	block_defs_stack varray rather than wiping a block local varray.
	Mark arguments as unused as needed.
	(ssa_rewrite_finalize_block): Similarly.
	(rewrite_into_ssa): Update initialization of dom walker structure
	to reflect that we don't need block local data anymore.  Initialize
	the block_defs_stack varray.
	(rewrite_ssa_into_ssa): Similarly.
	* tree-ssa-dom.c (block_defs_stack): New toplevel varray.
	(struct dom_walk_data): Kill block_defs field.
	(tree_ssa_dominator_optimize): Initialize block_defs_stack.
	(thread_across_edge): Use the global block_defs_stack instead of
	the old block_defs varray.
	(dom_opt_initialize_block_local_data): Update now that we don't have
	block_defs field to check anymore.
	(dom_opt_initialize_block): Push a marker onto block_defs_stack.
	(restore_currdefs_to_original_value): Use the new block_defs_stack
	instead of a block local varray.
	(dom_opt_finalize_block): Similarly.
	(record_equivalencs_from_phis): Similarly.
	(optimize_stmt, register_definitions_for_stmt): Similarly.

From-SVN: r87611
2004-09-16 13:06:12 -06:00
Andrew MacLeod
2d0db225d3 error.c (dump_decl): Make sure there is lang_specific info before checking for DTOR and CTOR decls.
2004-09-16  Andrew MacLeod  <amacleod@redhat.com>

	* error.c (dump_decl): Make sure there is lang_specific info before
	checking for DTOR and CTOR decls.

From-SVN: r87610
2004-09-16 18:52:48 +00:00
Andrew MacLeod
49f48e9ffc re PR tree-optimization/17517 (ICE: SSA corruption)
2004-09-16  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/17517
	* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
	coalesce same-root variables without checking for abnormal PHI usage.

From-SVN: r87609
2004-09-16 18:45:33 +00:00
Daniel Berlin
f67d92e937 [multiple changes]
2004-09-16  Daniel Berlin  <dberlin@dberlin.org>

	* cfgloop.h (duplicate_loop):  Add prototype.
	* cfgloopmanip.c (duplicate_loop): Make non-static.
	* lambda-code.c (perfect_nestify): Factor out test whether
	we can handle this loop into separate function.
	Call it.
	(can_convert_to_perfect_nest): New function.
	(replace_uses_of_x_with_y): Add modify_stmt call.
	* tree-loop-linear.c (linear_transform_loops): Call
	rewrite_into_loop_closed_ssa and free_df.

2004-09-16  Daniel Berlin  <dberlin@dberlin.org>

	* lambda-code.c (invariant_in_loop): is_gimple_min_invariant is
	loop invariant as well.
	(perfect_nestify): new function.
	(gcc_loop_to_lambda_loop): New parameters to track lower bounds,
	upper bounds, and steps.
	Set outerinductionvar properly.
	(gcc_loopnest_to_lambda_loopnest): Add loops and need_perfect
	parameters.
	Return NULL if we need a perfect loop and can't make one.
	(lambda_loopnest_to_gcc_loopnest): Correct algorithm.
	(not_interesting_stmt): New function.
	(phi_loop_edge_uses_def): Ditto.
	(stmt_uses_phi_result): Ditto.
	(stmt_is_bumper_for_loop): Ditto.
	(perfect_nest_p): Ditto.
	(nestify_update_pending_stmts): Ditto.
	(replace_uses_of_x_with_y): Ditto.
	(stmt_uses_op): Ditto.
	(perfect_nestify): Ditto.
	* lambda-mat.c (lambda_matrix_id_p): New function.
	* lambda-trans.c (lambda_trans_matrix_id_p): Ditto.
	* lambda.h: Update prototypes.
	* tree-loop-linear (linear_transform_loop): Use new
	perfect_nest_p. Detect and ignore identity transform.
	* tree-ssa-loop.c (pass_linear_transform): Use TODO_write_loop_closed.

2004-09-16  Sebastian Pop  <pop@cri.ensmp.fr>

	* tree-loop-linear.c (gather_interchange_stats): Add more comments.
	Gather also strides of accessed data.  Pass in the data references
	array.
	(try_interchange_loops): Add a new heuristic for handling the temporal
	locality.  Pass in the data references array.
	(linear_transform_loops): Pass the data references array to
	try_interchange_loops.

From-SVN: r87607
2004-09-16 16:16:14 +00:00
Kazu Hirata
83c9948608 * doc/invoke.texi: Fix typos. Follow spelling conventions.
From-SVN: r87606
2004-09-16 16:12:13 +00:00
Kazu Hirata
1f2959f06e array.c, [...]: Fix comment typos.
* array.c, data.c, decl.c, dependency.c, error.c, f95-lang.c,
	interface.c, intrinsic.c, io.c, misc.c, module.c, parse.h,
	resolve.c, scanner.c, trans-array.c, trans-array.h,
	trans-common.c, trans-const.h, trans-decl.c, trans-expr.c,
	trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.c,
	trans.h: Fix comment typos.  Follow spelling conventions.

From-SVN: r87605
2004-09-16 16:00:45 +00:00
Nathan Sidwell
d1f05f931e class.c (copy_virtuals): Remove.
* class.c (copy_virtuals): Remove.
	(build_primary_vtable): Use copy_list directly.
	(build_secondary_vtable): Likewise.
	(update_vtable_entry_for_fn): Clear BV_CALL_INDEX here.
	(create_vtable_ptr): Likewise.

From-SVN: r87604
2004-09-16 15:21:41 +00:00
Nathan Sidwell
4b30ad7eef c-tree.texi (Classes): Remove index entries for TREE_VIA_{PUBLIC,PROTECTED,PRIVATE}.
* doc/c-tree.texi (Classes): Remove index entries for
	TREE_VIA_{PUBLIC,PROTECTED,PRIVATE}.

From-SVN: r87603
2004-09-16 15:13:34 +00:00
Nathan Sidwell
fbc704f8bb missing changelog entry
missing changelog entry
	* cp-tree.h (struct lang_type_class): Make pure_virtuals a
	VEC(tree).
	(CLASSTYPE_INLINE_FRIENDS, CLASSTYPE_PURE_VIRTUALS): Update
	comments.
	* call.c (build_new_method_call): Don't confirm a pure virtual is
	in CLASSTYPE_PURE_VIRTUALS.  Reorder checks. Make it a warning.
	* class.c (check_methods): CLASSTYPE_INLINE_FRIENDS is a VEC(tree).
	(fixup_inline_methods, finish_struct): Likewise.
	* decl.c (finish_method): Likewise.
	* search.c (dfs_get_pure_virtuals, get_pure_virtuals):
	CLASSTYPE_PURE_VIRTUALS is a VEC(tree).
	* typeck2.c (abstract_virtuals_error): Likewise. Truncate the
	vector to avoid repeating the list in error messages.

From-SVN: r87602
2004-09-16 15:04:34 +00:00
Zdenek Dvorak
2f4675b482 fold-const.c (fold): Fold difference of addresses.
* fold-const.c (fold): Fold difference of addresses.
	(ptr_difference_const): Moved from tree-ssa-loop-ivopts, based on
	get_inner_reference.
	* tree-ssa-loop-ivopts.c (peel_address): Removed.
	(ptr_difference_const): Moved to fold-const.c.
	(split_address_cost): Use get_inner_reference instead of peel_address.
	(ptr_difference_cost): Change type of diff to HOST_WIDE_INT.
	* tree.h (ptr_difference_const): Export.

	* tree-ssa-loop-ivopts.c (dump_iv, dump_use, dump_cand): Add induction
	variable type to the dump.  Fix indentation.
	(idx_find_step): Handle nonconstant array_ref_element_size and
	array_ref_low_bound.
	(idx_record_use): Handle array_ref_element_size and
	array_ref_low_bound.
	(find_interesting_uses_stmt): Handle memory = nontrivial_expression
	statements correctly.
	(get_computation_at, iv_value): Do not unshare expressions here.
	(rewrite_use_outer): Unshare the expression before it is emitted
	to code.
	* tree-ssa-loop-niter.c (unsigned_type_for, signed_type_for):
	Moved to tree.c.
	* tree.c (unsigned_type_for, signed_type_for): Moved from
	tree-ssa-loop-niter.c.  Use langhooks.
	* tree.h (signed_type_for): Export.

From-SVN: r87601
2004-09-16 14:58:01 +00:00
Kazu Hirata
9c763d1957 * search.c: Follow spelling conventions.
From-SVN: r87600
2004-09-16 14:16:42 +00:00
David Edelsohn
8210e4c42d rs6000.c (rs6000_xcoff_asm_named_section): Update prototype.
* config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Update
        prototype.

From-SVN: r87599
2004-09-16 10:09:27 -04:00
Victor Leikehman
d2ccf6aa09 trans-io.c (transfer_array_component): New function.
2004-09-16  Victor Leikehman  <lei@il.ibm.com>

	PR/15364
	* trans-io.c (transfer_array_component): New function.
	(transfer_expr): For array fields, call transfer_array_component.
testsuite/
	* gfortran.dg/der_array_io_1.f90: New test.
	* gfortran.dg/der_array_io_2.f90: New test.
	* gfortran.dg/der_array_io_3.f90: New test.

From-SVN: r87596
2004-09-16 13:29:56 +00:00
Kazu Hirata
de787a9687 * gfortran.texi: Fix a typo.
From-SVN: r87595
2004-09-16 13:13:39 +00:00
Nathan Sidwell
585b44d301 cp-tree.h (struct lang_type_class): Make pure_virtuals a VEC(tree).
* cp-tree.h (struct lang_type_class): Make pure_virtuals a
	VEC(tree).
	(CLASSTYPE_INLINE_FRIENDS, CLASSTYPE_PURE_VIRTUALS): Update
	comments.
	* call.c (build_new_method_call): Don't confirm a pure virtual is
	in CLASSTYPE_PURE_VIRTUALS.  Reorder checks. Make it a warning.
	* class.c (check_methods): CLASSTYPE_INLINE_FRIENDS is a VEC(tree).
	(fixup_inline_methods, finish_struct): Likewise.
	* decl.c (finish_method): Likewise.
	* search.c (dfs_get_pure_virtuals, get_pure_virtuals):
	CLASSTYPE_PURE_VIRTUALS is a VEC(tree).
	* typeck2.c (abstract_virtuals_error): Likewise. Truncate the
	vector to avoid repeating the list in error messages.

From-SVN: r87592
2004-09-16 09:53:40 +00:00
Joseph Myers
a05e4fdbd9 * gcc.pot: Regenerate.
From-SVN: r87590
2004-09-16 09:01:11 +01:00
Andrew Pinski
3dd53121bd re PR libobjc/11572 (GNU libobjc no longer compiled on Darwin)
2004-09-15  Andrew Pinski  <pinskia@physics.uc.edu>

        PR target/11572
        * c-incpath.h (target_c_incpath_s): Add extra_pre_includes.
        Add two parameters to extra_includes.
        (C_INCPATH_INIT): Remove.
        * c-incpath.c (register_include_chains): Call extra_pre_includes
        before adding the standard include directory.
        Update call to extra_includes.
        (!defined TARGET_EXTRA_INCLUDES): Update
        hook_void_charptr_charptr_int and add !define
        TARGET_EXTRA_PRE_INCLUDES.
        (!define TARGET_EXTRA_INCLUDES): Define as
        hook_void_charptr_charptr_int.
        (!define TARGET_EXTRA_PRE_INCLUDES): Likewise.
        (target_c_incpath): Always declare.
        * fixinclude.c (defined TARGET_EXTRA_INCLUDES): Declare a
        empty function.
        (define TARGET_EXTRA_PRE_INCLUDES): Likewise.
        * config/darwin.h: (darwin_register_frameworks): Update for
        the two new parameters.
        (darwin_register_objc_includes): Add prototype.
        (TARGET_EXTRA_PRE_INCLUDES): Define.
        * config/darwin-c.c (darwin_register_objc_includes): New function.
        (darwin_register_frameworks): Update for the two new parameters.
        (target_c_incpath): Remove.
        * config/t-darwin (darwin-c.o): Add $(PREPROCESSOR_DEFINES) to
        the compile line.
        * doc/tm.texi (TARGET_EXTRA_INCLUDES): Document the two new
        parameters.
        (TARGET_EXTRA_PRE_INCLUDES): Document.

        * gcc.c (spec_function): Add replace-outfile.
        (replace_outfile_spec_function): New function.
        * config/darwin.h (LINK_SPEC): Add replace
        -lobjc with -lobjc-gnu if -fgnu-runtime is
        supplied.
        * invoke.texi (replace-outfile): Document.

From-SVN: r87588
2004-09-15 23:49:59 -07:00
Mark Mitchell
511bbc8f91 cxxabi_tweaks.h (__cxa_cdtor_return_type): Define.
* config/cpu/arm/cxxabi_tweaks.h (__cxa_cdtor_return_type):
	Define.
	* config/cpu/generic/cxxabi_tweaks.h (__cxa_cdtor_return_type):
	Define.
	* libsupc++/cxxabi.h (__cxa_cdtor_return_type): New type.
	(__cxa_vec_new): Use it.
	(__cxa_vec_new2): Likewise.
	(__cxa_vec_new3): Likewise.
	(__cxa_vec_cdtor): Likewise.
	(__cxa_vec_cctor): Likeiwse.
	(__cxa_vec_dtor): Likewise.
	(__cxa_vec_cleanup): Likewise.
	(__cxa_vec_delete2): Likewise.
	(__cxa_vec_delete3): Likewise.
	* libsupc++/vec.cc (__cxa_vec_new): Likewise.
	(__cxa_vec_new2): Likewise.
	(__cxa_vec_new3): Likewise.
	(__cxa_vec_cdtor): Likewise.
	(__cxa_vec_cctor): Likeiwse.
	(__cxa_vec_dtor): Likewise.
	(__cxa_vec_cleanup): Likewise.
	(__cxa_vec_delete2): Likewise.
	(__cxa_vec_delete3): Likewise.
	(__aeabi_vec_ctor_nocookie_nodtor): New function.
	(__aeabi_vec_ctor_cookie_nodtor): Likewise.
	(__aeabi_vec_cctor_nocookie_nodtor): Likewise.
	(__aeabi_vec_new_cookie_noctor): Likewise.
	(__aeabi_vec_new_nocookie): Likewise.
	(__aeabi_vec_new_cookie_nodtor): Likewise.
	(__aeabi_vec_new_cookie): Likewise.
	(__aeabi_vec_dtor): Likewise.
	(__aeabi_vec_dtor_cookie): Likewise.
	(__aeabi_vec_delete): Likewise.
	(__aeabi_vec_delete3): Likewise.
	(__aeabi_vec_delete3_nodtor): Likewise.
	(__aeabi_atexit): Likewise.

	* testsuite/g++.old-deja/g++.abi/cxa_vec.C: Adjust for ARM
	EABI.

From-SVN: r87585
2004-09-16 03:41:19 +00:00
Paul Brook
329bed5eb4 Revert accidental commit of unrelated/unfinished changes.
From-SVN: r87583
2004-09-16 02:10:43 +00:00
GCC Administrator
bb15588e23 Daily bump.
From-SVN: r87581
2004-09-16 00:16:16 +00:00
Jan Hubicka
42f97fd2c2 predict.c (expr_expected_value, [...]): New function.
* predict.c (expr_expected_value, strip_builtin_expect): New function.
	(tree_predict_by_opcode): Use it.
	(tree_estimate_probability): Add, for now disabled,
	strip_builtin_expect call.

From-SVN: r87578
2004-09-16 00:01:41 +00:00
James E Wilson
097f3d486a Fix linux kernel miscompilation.
PR target/17455
* config/ia64/ia64.c (ia64_function_ok_for_sibcall): Return false
if current_function_decl is a sibcall.

From-SVN: r87574
2004-09-15 16:26:33 -07:00
Mark Mitchell
04a7518894 varasm.c (default_function_rdodata_section): Make sure to pass along a decl for a link-once section.
* varasm.c (default_function_rdodata_section): Make sure to pass
	along a decl for a link-once section.

	* g++.dg/opt/switch1.C: New test.

From-SVN: r87569
2004-09-15 22:16:33 +00:00
Richard Henderson
e776368b7a tree-ssa-operands.c (add_call_clobber_ops): Fix unused variable warning with code disable.
* tree-ssa-operands.c (add_call_clobber_ops): Fix unused variable
        warning with code disable.  Fix formatting.

From-SVN: r87567
2004-09-15 15:05:39 -07:00
Steven Bosscher
c7f9021961 Makefile.in (tree-ssa-dom.o): Depend on tree-ssa-propagate.h.
* Makefile.in (tree-ssa-dom.o): Depend on tree-ssa-propagate.h.
	* tree-ssa-dom.c (cprop_into_stmt): Recompute TREE_INVARIANT
	after propagating into an ADDR_EXPR.

From-SVN: r87566
2004-09-15 21:47:45 +00:00
Andrew Pinski
2f021b673a re PR rtl-optimization/17427 (powerpc-linux does not bootstrap on HEAD with --disable-checking)
2004-09-15  Andrew Pinski  <apinski@apple.com>

        PR rtl-opt/17427
        * gcse.c (process_insert_insn): insn_invalid_p has side effects.
        Move it out of gcc_assert.

From-SVN: r87565
2004-09-15 14:45:28 -07:00
Kenneth Zadeck
2d2a672d92 turn off code clobbering optimization for static variables until
analysis behind it can be fixed in a couple of days.

From-SVN: r87564
2004-09-15 20:54:38 +00:00
Joseph Myers
971801fff6 attribs.c, [...]: Use %<, %> and %q for quoting in diagnostics going through pretty-print.c.
gcc:
	* attribs.c, builtins.c, c-format.c, c-pch.c, coverage.c,
	except.c, fold-const.c, function.c, langhooks.c, params.c,
	reload.c, reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
	tree-dump.c, tree-mudflap.c, tree.c, varasm.c: Use %<, %> and %q
	for quoting in diagnostics going through pretty-print.c.  Use ''
	for quoting in other diagnostic text.
	* langhooks.c: Include intl.h.  Mark text locating diagnostics for
	translation.
	* Makefile.in (langhooks.o): Update dependencies.
	* pretty-print.h (pp_printf): Mark as accepting GCC diagnostic
	formats.

gcc/testsuite:
	* g++.dg/ext/member-attr.C, g++.dg/warn/deprecated.C,
	gcc.dg/deprecated.c, gcc.dg/noreturn-1.c, gcc.dg/noreturn-4.c:
	Update expected messages.

libmudflap:
	* testsuite/libmudflap.c/pass35-frag.c: Update expected message.

From-SVN: r87563
2004-09-15 21:48:10 +01:00
Zack Weinberg
1daf6f3a5b * Make-lang.in (treelang-warn): Set to $(STRICT_WARN).
From-SVN: r87562
2004-09-15 20:05:11 +00:00
Mark Mitchell
c18a5b6cad configure.ac: Check for COMDAT support.
* configure.ac: Check for COMDAT support.  Robustify check for
	SHF_MERGE support.
	* configure: Regenerated.
	* config.in: Likewise.
	* langhooks-def.h (lhd_comdat_group): New function.
	(LANG_HOOKS_COMDAT_GROUP): New macro.
	(LANG_HOOKS_DECLS): Use it.
	* langhooks.c (lhd_comdat_group): Define.
	* langhooks.h (lang_hooks_for_decls): Add comdat_group.
	* output.h (named_section_flags): Make it a macro.
	(named_section_real): New function.
	(default_no_named_section): Add decl parameter.
	(default_elf_asm_named_section): Likewise.
	(default_coff_asm_named_section): Likewise.
	(default_pe_asm_named_section): Likewise.
	* target.h (gcc_target): Adjust type of named_section.
	* varasm.c (named_section_flags): Rename to named_section_real.
	Add decl parameter.
	(default_no_named_section): Add decl parameter.
	(default_elf_asm_named_section): Use COMDAT, if available.  Deal
	with the case that ASM_COMMENT_START is "@".
	(default_coff_asm_named_section): Add decl parameter.
	(default_pe_asm_named_section): Likewise.
	* config/alpha/alpha.c (vms_asm_named_section): Add decl
	parameter.
	(unicosmk_asm_named_section): Likewise.
	* config/arm/arm.c (arm_elf_asm_named_section): Remove.
	* config/arm/elf.h (TARGET_ASM_NAMED_SECTION): Likewise.
	* config/c4x/c4x.c (c4x_asm_named_section): Add decl parameter.
	* config/cris/cris-protos.h (cris_target_asm_named_section):
	Likewise.
	* config/cris/cris.c (cris_target_asm_named_section):
	Likewise.
	* config/h8300/h8300.c (h8300_asm_named_section): Likewise.
	* config/i386/i386-protos.h (i386_pe_asm_named_section):
	Likewise.
	* config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
	* config/m68k/m68k.c (m68k_coff_asm_named_section): Likewise.
	* config/mcore/mcore.c (mcore_asm_named_section): Likewise.
	* config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section):
	Likewise.
	* config/sparc/sparc.c (sparce_elf_asm_named_section): Likewise.

	* cp-objcp-common.h (LANG_HOOKS_COMDAT_GROUP): Define.
	* cp-tree.h (cxx_comdat_group): Declare.
	* decl.c (cxx_comdat_group): New function.

From-SVN: r87557
2004-09-15 17:03:22 +00:00
Aaron W. LaFramboise
f13ab1ee14 parse.c (eof_buf): Rename eof to eof_buf.
2004-09-15  Aaron W. LaFramboise <aaronavay62@aaronwl.com>

	* parse.c (eof_buf): Rename eof to eof_buf.
	(unexpected_eof): Same.
	(gfc_parse_file): Same.

From-SVN: r87556
2004-09-15 14:19:12 +00:00
Steven G. Kargl
0110c1ec15 check.c (gfc_check_getcwd_sub): New function.
2004-09-15  Steven G. Kargl  <kargls@comcast.net>

	* check.c (gfc_check_getcwd_sub): New function.
	* gfortran.h (GFC_ISYM_GETCWD): New symbol.
	* intrinsic.c (add_functions): Add function definition;
	Use symbol.
	* intrinsic.c (add_subroutines): Add subroutine definitions.
	* intrinsic.h: Add prototypes.
	* iresolve.c (gfc_resolve_getcwd, gfc_resolve_getcwd_sub):
	New functions.
	* trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbol.
libgfortran/
	* intrincics/getcwd.c: New file.
	* Makefile.am: Add getcwd.c.
	* Makefile.in: Regenerated.

From-SVN: r87555
2004-09-15 14:17:26 +00:00
Jan Hubicka
87527e4bcd tree-ssa.c (verify_flow_sensitive_alias_info): Do not walk dead nodes.
* tree-ssa.c (verify_flow_sensitive_alias_info): Do not walk dead nodes.
	* tree-tailcall.c (eliminate_tail_call): Release SSA name.

From-SVN: r87554
2004-09-15 14:15:36 +00:00
Jan Hubicka
fe7139acb1 * tree-cfg.c (remove_bb): Release SSA defs.
From-SVN: r87553
2004-09-15 14:14:03 +00:00
Steven G. Kargl
a8c60d7fff check.c (gfc_check_getcwd_sub): New function.
2004-09-15  Steven G. Kargl  <kargls@comcast.net>

	* check.c (gfc_check_getcwd_sub): New function.
	* gfortran.h (GFC_ISYM_GETCWD): New symbol.
	* intrinsic.c (add_functions): Add function definition;
	Use symbol.
	* intrinsic.c (add_subroutines): Add subroutine definitions.
	* intrinsic.h: Add prototypes.
	* iresolve.c (gfc_resolve_getcwd, gfc_resolve_getcwd_sub):
	New functions.
	* trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbol.
libgfortran/
	* intrinsics/getcwd.c: New file.
	* Makefile.am: Add getcwd.c.
	* Makefile.in: Regenerated.

From-SVN: r87552
2004-09-15 14:09:17 +00:00
Tobias Schlüter
4672f86ad0 re PR fortran/16485 (Private subroutines from different modules collide during linking.)
2004-09-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/16485
	* module.c (write_symbol): Don't fill in module name here.
	(write_symbol0): Fill in here instead.
testsuite/
	* gfortran.dg/same_name_1.f90: New test.

From-SVN: r87551
2004-09-15 13:12:52 +00:00
Kazu Hirata
1a141fe10a * doc/tm.texi: Follow spelling conventions.
From-SVN: r87550
2004-09-15 13:12:33 +00:00
Kazu Hirata
b3a27618a0 * tree-ssa-dom.c: Fix comment typos.
From-SVN: r87549
2004-09-15 13:06:30 +00:00
Diego Novillo
dad975d22d pr17252.c: Fix thinko.
* gcc.c-torture/execute/pr17252.c: Fix thinko.  Don't
	dereference garbage pointers.

From-SVN: r87545
2004-09-15 08:09:55 -04:00
Alan Modra
43e7c6a4d4 linux-unwind.h (struct gcc_pt_regs): Extend to include ccr.
* config/rs6000/linux-unwind.h (struct gcc_pt_regs): Extend to
	include ccr.
	(ppc_fallback_frame_state): Save location of CR.

From-SVN: r87543
2004-09-15 21:13:31 +09:30
Nathan Sidwell
69862840f8 * search.c (get_pure_virtuals): Remove unused variables.
From-SVN: r87542
2004-09-15 11:01:46 +00:00
Nathan Sidwell
16ae29f1e6 cp-tree.h (struct lang_decl_flags): Remove needs_final_overrider.
* cp-tree.h (struct lang_decl_flags): Remove
	needs_final_overrider.
	(DECL_NEEDS_FINAL_OVERRIDER_P): Remove.
	* decl.c (duplicate_decls): Do not copy DECL_NEEDS_FINAL_OVERRIDER_P.
	* class.c (finish_struct_bits): Correct comment about
	CLASSTYPE_PURE_VIRTUALS.
	* search.c (get_pure_virtuals): Remove useless loop.

From-SVN: r87541
2004-09-15 09:43:52 +00:00
Jakub Jelinek
a45f71f537 expr.c (string_constant): Handle also read-only variables initialized to string literals.
* expr.c (string_constant): Handle also read-only variables
	initialized to string literals.

	* gcc.c-torture/execute/builtins/strlen-3.c: New test.
	* gcc.c-torture/execute/builtins/strlen-3-lib.c: New.

From-SVN: r87540
2004-09-15 11:05:03 +02:00
Jakub Jelinek
9a520f4073 builtins.c (expand_builtin_memmove): Optimize memmove (x, y, 1) into memcpy (x, y, 1) if memcpy can be expanded inline.
* builtins.c (expand_builtin_memmove): Optimize memmove (x, y, 1)
	into memcpy (x, y, 1) if memcpy can be expanded inline.

	* gcc.c-torture/execute/builtins/memmove.c (main_test): Formatting.
	* gcc.c-torture/execute/builtins/memmove-2.c: New test.
	* gcc.c-torture/execute/builtins/memmove-2-lib.c: New.

From-SVN: r87539
2004-09-15 10:19:39 +02:00
Zdenek Dvorak
b1d16eff57 re PR tree-optimization/17468 (Java garbage collector miscompiled at -O1 and higher)
PR tree-optimization/17468
	* tree-ssa.c (verify_use, verify_phi_args, verify_ssa):  Verify that
	definition inside a block precede uses.
	* tree-tailcall.c (adjust_return_value): Emit statements in the
	correct order.

From-SVN: r87538
2004-09-15 07:51:33 +00:00
Richard Sandiford
3657919271 * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Delete.
From-SVN: r87537
2004-09-15 06:27:25 +00:00
Eric Botcazou
7c2f2b41c2 * doc/install.texi (sparc-sun-solaris2*): Properly format warning.
From-SVN: r87533
2004-09-15 05:36:05 +00:00
Jeff Law
48732f23bb tree-ssa-dom.c (avail_exprs_stack): New global varray.
* tree-ssa-dom.c (avail_exprs_stack): New global varray.
        (struct dom_walk_block_data): Remove avail_exprs member.
        (tree_ssa_dominator_optimize): Initialize avail_exprs_stack.
        (lookup_avail_expr): No longer need to pass in address of
        the block local available exprs stack.  All callers changed.
        (simplify_cond_and_lookup_avail_expr): Similarly.
        (simplify_switch_and_lookup_avail_expr): Similarly.
        (get_eq_expr_value, record_cond): Likewise.
        (record_dominating_conditions): Likewise.
        (update_rhs_and_lookup_avail_expr): Likewise.
        (record_equivalences_from_stmt): Likewise.
        (dom_opt_initialize_block_local_data): No longer test state of
        block local avail_exprs.
        (dom_opt_initialize_block): Mark unwind point in the global
        avail_expr stack.
        (remove_expressions_from_table): Update to unwind to the
        most recent unwind marker in the global avail_expr stack.
        All callers changed.
        (dom_opt_finalize_block): Mark unwind point in the global
        avail_expr stack as needed.
        (record_cond): Push elements into the global avail_exprs stack.

From-SVN: r87532
2004-09-14 22:38:04 -06:00
Jeff Law
a5c965c17e tree-dfa.c (free_df_for_stmt): No longer static.
* tree-dfa.c (free_df_for_stmt): No longer static.
	(free_df): Update comments.
	* tree-flow.h (free_df_for_stmt): Prototype.
	* tree-ssa-dse.c (dse_optimize_stmt): Call free_df_for_stmt.  Also
	call release_defs.

From-SVN: r87531
2004-09-14 22:12:18 -06:00
Mark Mitchell
bb5ecf2959 re PR c++/17324 (Error: symbol `bRKNS0_IT_SD_EE' is already defined)
PR c++/17324
	* mangle.c (partially_mangled_name): New variable.
	(partially_mangled_name_len): Likewise.
	(save_partially_mangled_name): New function.
	(restore_partially_mangled_name): Likewise.
	(write_encoding): Save and restore partially mangled names around
	calls to get_mostly_instantiated_function_type.
	(write_unqualified_name): Likewise.

	PR c++/17324
	* g++.dg/template/mangle1.C: New test.

From-SVN: r87530
2004-09-15 03:22:19 +00:00
Diego Novillo
391f9afbd2 re PR tree-optimization/17252 (not marking char types as aliasing anything)
PR tree-optimization/17252
	* tree-ssa-alias.c (may_alias_p): Don't assume that a
	pointer may not point to itself when using relaxed
	aliasing rules.

testsuite/ChangeLog

	PR tree-optimization/17252
	* gcc.c-torture/execute/pr17252.c: New test.

From-SVN: r87529
2004-09-14 22:58:28 -04:00
Richard Henderson
67f2362044 re PR middle-end/17397 (gimplify ICE)
PR middle-end/17397
	* gimplify.c (gimplify_addr_expr): Don't inadvertently change types
	while folding <ADDR_EXPR <INDIRECT_REF X>>.

From-SVN: r87528
2004-09-14 19:09:05 -07:00
Andrew Pinski
5ffcd77909 pointer-reference-alias.C: New test.
2004-09-14  Andrew Pinski  <apinski@apple.com>

        * g++.dg/tree-ssa/pointer-reference-alias.C: New test.

2004-09-14  Andrew Pinski  <apinski@apple.com>

        * tree-ssa-copy.c (may_propagate_copy): Don't check the aliasing
        sets of the pointers but the aliasing sets of what they point to.

From-SVN: r87527
2004-09-14 18:18:01 -07:00
GCC Administrator
798e5365d4 Daily bump.
From-SVN: r87523
2004-09-15 00:16:20 +00:00
Roger Sayle
f6ae6c51df re PR rtl-optimization/9771 ([x86] wrong ebp optimisation)
PR rtl-optimization/9771
	* regclass.c (CALL_REALLY_USED_REGNO_P): New macro to eliminate
	conditional compilation in init_reg_sets_1.
	(init_reg_sets_1): Let global_regs[i] take priority over the frame
	(but not stack) pointer exceptions to regs_invalidated_by_call.
	(globalize_reg): Globalizing a fixed register may need to update
	regs_invalidated_by_call.

	* gcc.dg/pr9771-1.c: New test case.

From-SVN: r87516
2004-09-14 22:52:41 +00:00
Diego Novillo
1810f6edaa re PR tree-optimization/15262 ([tree-ssa] Alias analyzer cannot handle addressable fields)
PR tree-optimization/15262
	* tree-dfa.c (dump_variable): Also print the type of the
	variable.
	* tree-ssa-alias.c (compute_flow_insensitive_aliasing): If two
	memory tags are of conflicting alias sets but have no aliased
	symbols in common, add one tag to the alias set of the other.
	(setup_pointers_and_addressables): Remove hack to deal with
	programs with no aliased symbols.
	(may_alias_p): Don't special case aggregate types.


testsuite/ChangeLog

	PR tree-optimization/15262
	* gcc.c-torture/execute/pr15262-1.c: New test.
	* gcc.c-torture/execute/pr15262-2.c: New test.

From-SVN: r87515
2004-09-14 18:45:54 -04:00
Joseph Myers
0e6d31fb86 re PR c/15498 (typo in gcc manual: non-existing locale example en_UK, should be en_GB)
PR c/15498
	* doc/invoke.texi (Environment Variables): Correct example locale.

From-SVN: r87513
2004-09-14 23:30:38 +01:00
Joseph Myers
807ab1f2aa be.po, [...]: Update.
* be.po, ca.po, da.po, de.po, el.po, es.po, fr.po, ja.po, nl.po,
	sv.po, tr.po: Update.
	* gcc.pot: Regenerate.

From-SVN: r87507
2004-09-14 21:31:30 +01:00
Jan Hubicka
ab3b679505 * cfg.c (expunge_block): Revert previous change adding ggc_free call.
From-SVN: r87506
2004-09-14 20:09:47 +00:00
Mark Mitchell
0393a68af0 * config.gcc: Do not build a shared libgcc for arm-none-eabi.
From-SVN: r87504
2004-09-14 19:58:49 +00:00
Mark Mitchell
0c0f840919 config.gcc: Do not build a shared libgcc for arm-none-eabi.
* config.gcc: Do not build a shared libgcc for arm-none-eabi.

[[Split portion of a mixed commit.]]

From-SVN: r87503.2
2004-09-14 19:58:43 +00:00
Joseph Myers
3b53cddc38 c-tree.h (struct c_declspecs): Add const_p, volatile_p and restrict_p.
* c-tree.h (struct c_declspecs): Add const_p, volatile_p and
	restrict_p.
	(struct c_declarator): Change u.array.quals and pointer_quals to
	int.  Add u.array.attrs.
	(quals_from_declspecs): New.
	* c-decl.c (quals_from_declspecs): New.
	(shadow_tag_warned): Give more specific message for useless type
	qualifiers.
	(build_array_declarator, set_array_declarator_inner,
	grokdeclarator, make_pointer_declarator, build_null_declspecs,
	declspecs_add_qual): Update for changed structures.

testsuite:
	* gcc.dg/declspec-12.c: New test.

From-SVN: r87500
2004-09-14 19:59:38 +01:00
Jeff Law
a6e1aa26d9 tree-ssa-dom.c (stmts_to_rescan): Move from a block-local varray to a global varray.
* tree-ssa-dom.c (stmts_to_rescan): Move from a block-local varray
        to a global varray.
        (tree_ssa_dominator_optimize): Allocate stmts_to_rescan.
        (dom_opt_initialize_block_local_data): No longer test stmts_to_rescan's
        state.
        (dom_opt_finalize_block): Update due to change in scope of
        stmts_to_rescan.
        (optimize_stmt): Similarly.

From-SVN: r87494
2004-09-14 09:15:34 -06:00
Kazu Hirata
13795658b5 data.c, [...]: Fix comment typos.
* data.c, decl.c, f95-lang.c, gfortran.h, match.c,
	trans-array.c, trans-common.c, trans-expr.c,
	trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.h: Fix
	comment typos.  Follow spelling conventions.

From-SVN: r87492
2004-09-14 12:37:28 +00:00
Nathan Sidwell
98ddffc1c1 * pt.c (unify): Replace gcc_unreachable with gcc_assert.
From-SVN: r87491
2004-09-14 12:35:28 +00:00
Kazu Hirata
8e3c61c577 cgraph.h, [...]: Fix comment typos.
* cgraph.h, cgraphunit.c, fold-const.c, lambda-mat.c,
	lambda.h, profile.c, tree-optimize.c, tree-sra.c, vec.h: Fix
	comment typos.  Follow spelling conventions.

From-SVN: r87490
2004-09-14 12:21:44 +00:00
Kazu Hirata
0e40b5f29a darwin-c.c, [...]: Follow spelling conventions.
* config/darwin-c.c, config/alpha/alpha.c, config/i386/i386.c,
	config/i386/predicates.md, config/sparc/sparc.c: Follow
	spelling conventions.

From-SVN: r87489
2004-09-14 10:46:00 +00:00
Bud Davis
8121b89976 pr17090.f90: Add directives to test.
2004-09-14  Bud Davis  <bdavis9659@comcast.net>

        * gfortran.dg/pr17090.f90: Add directives to test.

From-SVN: r87488
2004-09-14 09:47:09 +00:00
Zdenek Dvorak
113d659afd Makefile.in (loop-unroll.o): Add HASHTAB_H and RECOG_H dependency.
* Makefile.in (loop-unroll.o): Add HASHTAB_H and RECOG_H dependency.
	* basic-block.h (struct reorder_block_def): Add copy_number field.
	* cfgloop.h (biv_p): Declare.
	* cfgloopmanip.c (duplicate_loop_to_header_edge): Set copy_number.
	* common.opt (fsplit-ivs-in-unroller): New flag.
	* loop-iv.c (biv_p): New function.
	* loop-unroll.c: Include hashtab.h and recog.h.
	(struct iv_to_split, struct split_ivs_info): New types.
	(analyze_ivs_to_split, si_info_start_duplication, split_ivs_in_copies,
	free_si_info, si_info_hash, si_info_eq, analyze_iv_to_split_insn,
	determine_split_iv_delta, get_ivts_expr, allocate_basic_variable,
	insert_base_initialization, split_iv): New functions.
	(peel_loop_completely, unroll_loop_constant_iterations,
	unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
	Use them.
	* doc/invoke.texi (-fsplit-ivs-in-unroller): Document.

Co-Authored-By: Steven Bosscher <stevenb@suse.de>

From-SVN: r87487
2004-09-14 08:05:46 +00:00
Zdenek Dvorak
d840495b15 tree-cfg.c (thread_jumps): Update dominators correctly in case destination of threaded edge dominates its...
* tree-cfg.c (thread_jumps): Update dominators correctly in
	case destination of threaded edge dominates its source.

From-SVN: r87486
2004-09-14 07:49:04 +00:00