Commit Graph

52871 Commits

Author SHA1 Message Date
Roger Sayle fae111c115 * fold-const.c (operand_equal_p): Clarify documentation.
From-SVN: r71214
2003-09-08 18:57:32 +00:00
Mark Mitchell fa531100f1 re PR c++/11786 (operator() call on variable in other namespace not recognized)
PR c++/11786
	* decl2.c (add_function): Do not complain about seeing the same
	non-function twice.
	* semantics.c (perform_koenig_lookup): Improve documentation.

	PR c++/11786
	* g++.dg/lookup/koenig2.C: New test.

From-SVN: r71213
2003-09-08 18:46:20 +00:00
Richard Henderson c4bb110a19 * optimize.c (maybe_clone_body): Inc/dec function_depth.
From-SVN: r71210
2003-09-08 09:54:13 -07:00
Mark Mitchell f23fb7f525 re PR c++/5296 ([DR115] Pointers to functions and template functions behave different in deduction)
PR c++/5296
	* pt.c (try_one_overload): Add addr_p parameter.
	(resolve_overloaded_unification): Pass it.

	PR c++/5296
	* g++.dg/rtti/typeid2.C: New test.

From-SVN: r71209
2003-09-08 16:53:05 +00:00
Richard Henderson c1f927e84e c-decl.c (c_expand_body_1): Push and pop function context here.
gcc/
        * c-decl.c (c_expand_body_1): Push and pop function context here.
        * tree-optimize.c (tree_rest_of_compilation): ... not here.  Take
        nested argument instead of computing nesting ourselves.

gcc/cp/
        * decl.c (finish_function): Clear current_function_decl.
        * decl2.c (mark_used): Don't push/pop gc context.
        * optimize.c (optimize_function): Likewise.
        * tree.c (cp_cannot_inline_tree_fn): Likewise.
        * pt.c (instantiate_decl): Inc/dec function_depth instead.
        * semantics.c (expand_body): Update for tree_rest_of_compilation
        nested argument.

From-SVN: r71208
2003-09-08 08:56:27 -07:00
Jakub Jelinek 7f14bbe68f toplev.c (rest_of_compilation): Call split_all_insns before regstack if optimizing but not scheduling after reload.
* toplev.c (rest_of_compilation): Call split_all_insns before
	regstack if optimizing but not scheduling after reload.

	* gcc.c-torture/compile/20030904-1.c: New test.

From-SVN: r71203
2003-09-08 09:23:34 +02:00
Jakub Jelinek 5751a10b97 sparc.c (struct machine_function): New type.
* config/sparc/sparc.c (struct machine_function): New type.
	(TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
	(sparc_override_options): Initialize init_machine_status.
	(tls_symbolic_operand, tgd_symbolic_operand, tld_symbolic_operand,
	tie_symbolic_operand, tle_symbolic_operand): New functions.
	(symbolic_operand): Disallow tls_symbolic_operand.
	(symbolic_memory_operand): Likewise.
	(tls_call_delay, sparc_cannot_force_const_mem, legitimate_constant_p,
	constant_address_p, legitimate_pic_operand_p, legitimate_address_p):
	New functions.
	(sparc_tls_symbol): New variable.
	(sparc_tls_get_addr, sparc_tls_got, legitimize_tls_address,
	legitimize_address): New functions.
	(print_operand): Handle %&.
	(sparc_init_machine_status, get_some_local_dynamic_name,
	get_some_local_dynamic_name_1): New functions.
	(sparc_output_dwarf_dtprel): New function.
	* config/sparc/sparc.h (CONSTANT_ADDRESS_P): Moved into
	constant_address_p.
	(LEGITIMATE_PIC_OPERAND_P): Moved into legitimate_pic_operand_p.
	(LEGITIMATE_CONSTANT_P): Moved into legitimate_constant_p.
	(GO_IF_LEGITIMATE_ADDRESS): Moved into legitimate_address_p.
	(LEGITIMIZE_ADDRESS): Moved into legitimize_address.
	(PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
	(TARGET_TLS, TARGET_SUN_TLS, TARGET_GNU_TLS): Define.
	(ASM_OUTPUT_DWARF_DTPREL): Define.
	(PREDICATE_CODES): Add tgd_symbolic_operand, tld_symbolic_operand,
	tie_symbolic_operand, tle_symbolic_operand.
	* config/sparc/sparc.md (UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_TLSLDO,
	UNSPEC_TLSIE, UNSPEC_TLSLE, UNSPEC_TLSLD_BASE): New constants.
	(tls_call_delay): New attribute.
	(in_call_delay): Use it.
	(movqi, movhi, movsi, movdi): Call legitimize_tls_address if needed.
	(tgd_hi22, tgd_lo10, tgd_add32, tgd_add64, tgd_call32, tgd_call64,
	tldm_hi22, tldm_lo10, tldm_add32, tldm_add64, tldm_call32, tldm_call64,
	tldo_hix22, tldo_lox10, tldo_add32, tldo_add64, tie_hi22, tie_lo10,
	tie_ld32, tie_ld64, tie_add32, tie_add64, tle_hix22_sp32,
	tle_lox10_sp32, tle_hix22_sp64, tle_lox10_sp64): New insns.
	(tldo_ldub_sp32, tldo_ldub1_sp32, tldo_ldub2_sp32, tldo_ldsb1_sp32,
	tldo_ldsb2_sp32, tldo_ldub_sp64, tldo_ldub1_sp64, tldo_ldub2_sp64,
	tldo_ldub3_sp64, tldo_ldsb1_sp64, tldo_ldsb2_sp64, tldo_ldsb3_sp64,
	tldo_lduh_sp32, tldo_lduh1_sp32, tldo_ldsh1_sp32, tldo_lduh_sp64,
	tldo_lduh1_sp64, tldo_lduh2_sp64, tldo_ldsh1_sp64, tldo_ldsh2_sp64,
	tldo_lduw_sp32, tldo_lduw_sp64, tldo_lduw1_sp64, tldo_ldsw1_sp64,
	tldo_ldx_sp64, tldo_stb_sp32, tldo_stb_sp64, tldo_sth_sp32,
	tldo_sth_sp64, tldo_stw_sp32, tldo_stw_sp64, tldo_stx_sp64): New
	insns.
	* config/sparc/sparc-protos.h (legitimate_constant_p,
	constant_address_p, legitimate_pic_operand_p, legitimate_address_p,
	legitimize_tls_address, legitimize_address, tls_symbolic_operand,
	tls_call_delay, sparc_output_dwarf_dtprel): New prototypes.
	* config/sparc/linux.h (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
	* config/sparc/linux64.h (TARGET_GNU_TLS, TARGET_SUN_TLS): Likewise.
	* configure.in (sparc*-*-*): Add TLS check.
	* configure: Rebuilt.

From-SVN: r71202
2003-09-08 08:57:05 +02:00
Eric Botcazou 7b65ed5448 re PR target/11689 (g++3.3 emits un-assembleable code for k6 architecture)
PR target/11689
	* config/i386/i386.c (memory_address_length): Fix computation when
	the base is esp or ebp.

From-SVN: r71198
2003-09-08 06:41:49 +00:00
Andrew Pinski 6a4f08f318 * g++.dg/template/crash10.C: Only compile it.
From-SVN: r71197
2003-09-07 23:00:46 -07:00
Andrew Pinski dc4cb34e15 re PR middle-end/11665 (ICE in struct initializer when taking address)
2003-09-07  Andrew Pinski  <pinskia@physics.uc.edu>

        PR middle-end/11665
        * gcc.c-torture/compile/20030907-1.c: New test.
        * g++.dg/init/array11.C: New test.

From-SVN: r71193
2003-09-07 20:05:52 -07:00
GCC Administrator c5ed395d44 Daily bump.
From-SVN: r71191
2003-09-08 00:16:06 +00:00
Mark Mitchell cf9ad9a773 re PR c++/11852 (ICE: g++ with bad struct initializer.)
PR c++/11852
	* varasm.c (initializer_constant_valid_p): Correct logic for
	CONSTRUCTORs.

	PR c++/11852
	* g++.dg/init/struct1.C: New test.

From-SVN: r71187
2003-09-07 23:48:33 +00:00
Mark Mitchell 6ef0aa7b3b re PR c++/12181 (Wrong code with comma operator and c++)
PR c++/12181
	* g++.dg/expr/comma1.C: New test.

From-SVN: r71182
2003-09-07 20:54:11 +00:00
Roger Sayle eb698c5883 expr.c (expand_operands): New function to expand an operand pair.
* expr.c (expand_operands): New function to expand an operand pair.
	(expand_expr): Call expand_operands whenever we need to expand both
	operands of a binary operator.
	(do_store_flag): Likewise for operands of comparison operations.

From-SVN: r71179
2003-09-07 20:34:13 +00:00
Roger Sayle 4f61b3b722 combine.c (combine_simplify_rtx): Don't convert -(A*B) into (-A)*B if we care about sign-dependent rounding.
* combine.c (combine_simplify_rtx): Don't convert -(A*B) into
	(-A)*B if we care about sign-dependent rounding.

From-SVN: r71178
2003-09-07 20:32:16 +00:00
Mark Mitchell ae53e5bcea Fix typo.
From-SVN: r71177
2003-09-07 19:21:05 +00:00
Gabriel Dos Reis a2a9e21c33 re PR c++/11762 (namespace aliasing ICE in warn_extern_redeclared_static)
* c-pretty-print.h (pp_c_left_brace): Declare.
	(pp_c_right_brace): Likewise.
	* c-pretty-print.c (pp_c_left_brace): Now a function
	(pp_c_right_brace): Likewise.

cp/
	PR c++/11762
	* error.c (dump_decl): Handle namespace-alias-definition.
	* decl.c (warn_extern_redeclared_static): There is no point in
	checking changes in storage class specifier for a namespace
	declaration.
	(duplicate_decls): Tidy diagnostic message.
	* cxx-pretty-print.c (pp_cxx_left_brace): New macro.
	(pp_cxx_right_brace): Likewise.
	(pp_cxx_original_namespace_definition): New function.
	(pp_cxx_namespace_alias_definition): Likewise.
	(pp_cxx_declaration): Use them.  Handle NAMESPACE_DECLs.

From-SVN: r71175
2003-09-07 18:52:53 +00:00
Jan Hubicka 1ab237dfa3 * cfgcleanup.c (try_simplify_condjump): Fix again the preivous patch.
From-SVN: r71172
2003-09-07 16:23:41 +00:00
Gabriel Dos Reis 43f9ce0256 * diagnostic.c (warn_deprecated_use): Move to toplev.c
From-SVN: r71168
2003-09-07 11:59:52 +00:00
Jan Hubicka c57e159892 decl2.c (maybe_emit_vtables, [...]): Avoid re-emitting variables in unit-at-a-time mode.
* decl2.c (maybe_emit_vtables, write_out_vars, finish_file):
	Avoid re-emitting variables in unit-at-a-time mode.

From-SVN: r71167
2003-09-07 11:15:46 +00:00
Gabriel Dos Reis dba65e798f langhooks.c (lhd_print_error_function): Move from diagnostic.c.
* langhooks.c (lhd_print_error_function): Move from diagnostic.c.
	* Makefile.in (langhooks.o): Depend on diagnostic.h

From-SVN: r71165
2003-09-07 10:11:28 +00:00
Andrew Pinski 687f4bc133 Forgot to commit the Changelog for the new tests.
From-SVN: r71162
2003-09-06 22:57:10 -07:00
James E Wilson bc49924bc2 * MAINTAINTERS: Update my affiliation and email address.
From-SVN: r71161
2003-09-06 22:52:40 -07:00
James E Wilson 10ef35a9da loop.c (loop_regs_update): Delete else clause for PATTERN rtx and simplify.
* loop.c (loop_regs_update): Delete else clause for PATTERN rtx and
simplify.

From-SVN: r71160
2003-09-06 22:21:35 -07:00
Mark Mitchell 385bce060a re PR c++/11867 (static_cast ignores ambiguity)
PR c++/11687
	* call.c (standard_conversion): Improve comments.
	(perform_direct_initialization): Make sure we return an expression
	of the correct type.
	* typeck.c (build_static_cast): Check for ambiguity and
	accessibility when performing conversions.

	PR c++/11687
	* g++.dg/expr/static_cast5.C: New test.

From-SVN: r71157
2003-09-07 04:10:10 +00:00
Andrew Pinski ef8f74d66d re PR c++/11507 (parser fails to recognize namespace)
2003-09-06  Andrew Pinski  <pinskia@physics.uc.edu>

        PR c++/11507
        * g++.dg/lookup/scoped7.C: New test.

        PR c++/9574
        * g++.dg/other/static1.C: New test.

        PR c++/11490
        * g++.dg/warn/template-1.C: New test.

        PR c++/11432
        * g++.dg/template/crash10.C: New test.

        PR c++/2478
        * g++.dg/overload/VLA.C: New test.

        PR c++/10804
        * g++.dg/template/call1.C: New test.

From-SVN: r71156
2003-09-06 20:43:15 -07:00
R. Kelley Cook 9aec989f02 Makefile.in: Define $REMAKE to be $MAKE with LANGUAGES & BOOT_CFLAGS and use it throughout.
2003-09-07  Kelley Cook  <kelleycook@wideopenwest.com>

	* Makefile.in: Define $REMAKE to be $MAKE with LANGUAGES & BOOT_CFLAGS
	and use it throughout.

From-SVN: r71155
2003-09-07 02:11:40 +00:00
Jan Hubicka 470d9044da * cfgcleanup.c (try_simplify_condjump): Fix my previous patch.
From-SVN: r71153
2003-09-07 00:51:53 +00:00
GCC Administrator 0b22120b62 Daily bump.
From-SVN: r71151
2003-09-07 00:16:07 +00:00
Jan Hubicka ba245151fc cgraph.c (cgraph_mark_reachable_node): Only enqueue finalized functions.
* cgraph.c (cgraph_mark_reachable_node): Only enqueue finalized
	functions.
	(cgraph_varpool_finalize_decl): Notice global symbol when needed.

From-SVN: r71149
2003-09-06 22:47:19 +00:00
Jan Hubicka 7e668417e9 toplev.c (rest_of_decl_compilation): Do not finalize external virables.
* toplev.c  (rest_of_decl_compilation):  Do not finalize external
	virables.

From-SVN: r71148
2003-09-06 22:23:51 +00:00
Jan Hubicka 9778f2f8b5 re PR target/12070 (ICE converting between double and long double with -msoft-float)
PR target/12070
	* calls.c (emit_library_call_value_1): Fix saving of BLKmode arguments.

	PR opt/12082
	* cfgcleanup.c (try_simplify_condjump): Avoid unreachable code warning.

From-SVN: r71147
2003-09-06 21:50:20 +00:00
Gabriel Dos Reis 0761f342c5 * diagnostic.c (announce_function): Move to toplev.c.
From-SVN: r71146
2003-09-06 21:33:46 +00:00
Gabriel Dos Reis c87ceb139f cp-tree.h (add_binding): Remove declaration.
* cp-tree.h (add_binding): Remove declaration.
        * name-lookup.h (supplement_binding): Declare.
        * decl.c (add_binding): Move to name-lookup.c.
        (push_local_binding): Adjust.
        (push_class_binding): Likewise.
        (set_identifier_type_value_with_scope): Likewise.
        * name-lookup.c (supplement_binding): Rename from add_binding.
        Return a bool.  Improve documentation.
        (set_namespace_binding): Adjust.
        * Make-lang.in (cp/name-lookup.o): Depend on toplev.h

From-SVN: r71144
2003-09-06 19:03:44 +00:00
Nathan Sidwell 1f845b302a re PR c++/11794 (using declaration inside nested class seems ignored)
cp:
	PR c++/11794
	* class.c (pushclass): Push dependent using decls for nested
	classes of templates too.
testsuite:
	PR c++/11794
	* g++.dg/parse/using3.C: New test.

From-SVN: r71143
2003-09-06 18:37:57 +00:00
Zdenek Dvorak 082124f5c1 * MAINTAINERS (Write After Approval): Add myself.
From-SVN: r71142
2003-09-06 17:37:09 +00:00
Zdenek Dvorak bad998e07e gcse.c (expr_equiv_p): Don't consider anything to be equal to volatile mem.
* gcse.c (expr_equiv_p): Don't consider anything to be equal to
	volatile mem.

From-SVN: r71140
2003-09-06 17:05:02 +00:00
Roger Sayle 34ff26738c re PR c++/11409 (using declarations and fabs built-in)
PR c++/11409
	* class.c (resolve_address_of_overloaded_function): When building
	list of matching non-template function decls, ignore anticipated
	declarations of undeclared or shadowed GCC builtins.

	* g++.dg/overload/builtin3.C: New test case.

From-SVN: r71139
2003-09-06 16:14:30 +00:00
Steven Bosscher b9c87401ae re PR c++/11595 (crash on duplicate label definition)
PR c++/11595
	* decl.c (define_label): Remove unreachable timevar pop.
	Always return the decl, even if the definition is invalid.

From-SVN: r71138
2003-09-06 15:44:34 +00:00
Kaveh R. Ghazi d85a0aae6d ggc-common.c (init_ggc_heuristics): Don't use the heuristics when gc checking is enabled.
* ggc-common.c (init_ggc_heuristics): Don't use the heuristics
	when gc checking is enabled.

From-SVN: r71137
2003-09-06 15:06:36 +00:00
Steven Bosscher 03845b47e6 re PR c/9862 (spurious warnings with -W -finline-functions)
PR c/9862
	* c-decl.c (c_expand_body_1): Move return warning from here...
	(finish_function): ...to here.

	* gcc.dg/20030906-1.c: New test.
	* gcc.dg/20030906-2.c: Likewise.

From-SVN: r71134
2003-09-06 13:34:00 +00:00
Nathan Sidwell b92bc2a028 re PR c++/12167 (ICE on default argument of class member function if non-simple)
cp:
	PR c++/12167
	* parser.c (cp_parser_late_parsing_default_args): Push & pop the
	unparsed functions queue.
testsuite:
	PR c++/12167
	* g++.dg/parse/defarg5.C: New test.

	* g++.dg/template/non-type-template-argument-1.C: Tweak expected error.

From-SVN: r71133
2003-09-06 11:29:17 +00:00
Josef Zlomek 13f7d3a1c0 fibheap.c (fibheap_replace_key_data): Change type of OKEY to FIBHEAPKEY_T.
* fibheap.c (fibheap_replace_key_data): Change type of OKEY to
	FIBHEAPKEY_T.

From-SVN: r71129
2003-09-06 05:28:03 +00:00
Geoffrey Keating c55a59cc63 darwin.h (PREFERRED_RELOAD_CLASS): Always return a subset of the input class.
* config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Always return
	a subset of the input class.

From-SVN: r71128
2003-09-06 04:07:18 +00:00
Bernardo Innocenti e7f115de8d * include/c_std/std_cstdlib.h: Avoid using missing C library symbols.
From-SVN: r71127
2003-09-06 03:01:01 +02:00
Kazu Hirata e86ac6af9a i860.c: Follow spelling conventions.
* config/i860/i860.c: Follow spelling conventions.
	* config/i860/i860.h: Likewise.
	* config/sh/sh.h: Likewise.

From-SVN: r71126
2003-09-06 00:22:49 +00:00
GCC Administrator 5c30494db4 Daily bump.
From-SVN: r71124
2003-09-06 00:16:08 +00:00
Nitin Yewale c87ec0bae2 h8300-protos.h: Declare h8300_hard_regno_rename_ok
* config/h8300/h8300-protos.h: Declare h8300_hard_regno_rename_ok
	* config/h8300/h8300.h (HARD_REGNO_RENAME_OK): New.
	* config/h8300/h8300.c (h8300_hard_regno_rename_ok): New.

From-SVN: r71119
2003-09-05 20:00:03 +00:00
Roger Sayle 31ff3e0b77 re PR rtl-optimization/1823 (-ftrapv aborts with pointer difference due to division optimization)
PR optimization/1823
	* expmed.c (expand_divmod <EXACT_DIV_EXPR>): Use an unsigned
	multiplication to implement division by constant integer.

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

From-SVN: r71116
2003-09-05 18:28:48 +00:00
Mark Mitchell ceeae2d125 re PR c++/12163 (static_cast + explicit ctor regression)
PR c++/12163
	* call.c (perform_direct_initialization): Correct logic for
	direct-initialization of a class type.

	PR c++/12146
	* pt.c (lookup_template_function): Robustify.

	PR c++/12163
	* g++.dg/expr/static_cast4.C: New test.

	PR c++/12146
	* g++.dg/template/crash9.C: New test.

From-SVN: r71115
2003-09-05 18:04:21 +00:00