Commit Graph

52738 Commits

Author SHA1 Message Date
Jan Hubicka
cd4dea6224 cgraphunit.c (cgraph_finalize_function): Fix handling of extern inline functions.
* cgraphunit.c (cgraph_finalize_function): Fix handling of extern
	inline functions.
	(cgraph_finalize_compilation_unit): Fix crash when dealing with lost
	DECL_SAVED_TREE.

From-SVN: r71245
2003-09-09 20:27:52 +00:00
Roger Sayle
892955bff0 builtins.c (fold_builtin_cabs): Protect the complex argument against multiple evaluation when...
* builtins.c (fold_builtin_cabs): Protect the complex argument
	against multiple evaluation when optimizing cabs* into sqrt*.

From-SVN: r71242
2003-09-09 19:20:42 +00:00
Andreas Tobler
086a4bd7dd 2003-09-09 Andreas Tobler <a.tobler@schweiz.ch>
* src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
	passing correctly.

From-SVN: r71238
2003-09-09 19:37:53 +02:00
Jan Hubicka
f098590080 * varasm.c (notice_global_symbol): Properly deal with weak symbols.
From-SVN: r71236
2003-09-09 13:37:17 +00:00
Kelley Cook
94fd51760c Revert change from yesterday due to parallel make issues.
From-SVN: r71235
2003-09-09 11:44:03 +00:00
Christian Ehrhardt
22898f9a4b re PR bootstrap/12168 (ICE (bus error) in set_mem_attributes_minus_bitpos)
PR bootstrap/12168
	* method.c (use_thunk): Clear DECL_RTL of copied nodes.

From-SVN: r71234
2003-09-09 08:47:35 +00:00
Bernardo Innocenti
860c4900e5 coff.h (REGISTER_NAMES): Add fake register `argptr'
* config/m68k/coff.h (REGISTER_NAMES): Add fake register `argptr'
	* config/m68k/hp320.h (REGISTER_NAMES): Likewise.
	* config/m68k/linux.h (REGISTER_NAMES): Likewise.
	* config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
	* gcc/config/m68k/sgs.h (REGISTER_NAMES): Likewise.
	* config/m68k/m68k-protos.h (m68k_initial_elimination_offset): Add prototype.
	* config/m68k/m68k.c (m68k_frame): New struct, simular to ix86 back-end.
	(m68k_compute_frame_layout): New function.
	(m68k_initial_elimination_offset): New function.
	(m68k_output_function_prologue): ColdFire-specific movem handling.
	(m68k_output_function_epilogue): Likewise.
	* config/m68k/m68k.h (FIRST_PSEOUDO_REGISTER): Make room for argptr reg.
	(ARG_POINTER_REGNUM): Add new definition.
	(INITIAL_FRAME_POINTER_OFFSET): Remove macro.
	(ELIMINABLE_REGS): Define new macro, like in ix86 back-end.
	(CAN_ELIMINATE): Likewise.
	(INITIAL_ELIMINATION_OFFSET): Likewise.

Co-Authored-By: Peter Barada <peter@baradas.org>

From-SVN: r71231
2003-09-09 08:47:19 +02:00
Bernardo Innocenti
ed311a33ac m68k.c (m68k_output_function_prologue): Simplify by removing redundant variable cfa_store_offset.
* config/m68k/m68k.c (m68k_output_function_prologue): Simplify
	by removing redundant variable cfa_store_offset.

From-SVN: r71230
2003-09-09 08:40:46 +02:00
Alan Modra
e517f63617 * libtool.m4 (LD): Correct powerpc64 host match.
From-SVN: r71229
2003-09-09 15:54:39 +09:30
Mark Mitchell
bf9ab6b657 Fix thinko in last patch.
From-SVN: r71228
2003-09-09 03:51:56 +00:00
Mark Mitchell
9649812aae langhooks-def.h (lhd_register_builtin_type): New function.
* langhooks-def.h (lhd_register_builtin_type): New function.
	(LANG_HOOKS_REGISTER_BUILTIN_TYPE): New macro.
	(LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
	* langhooks.h (lang_hooks_for_types): Add register_builtin_type.
	* langhooks.c (lhd_register_builtin_type): New function.
	* c-common.h (c_register_builtin_type): Declare.
	* c-common.c (c_register_builtin_type): New function.
	* c-lang.c (LANG_HOOKS_REGISTER_BUILTIN_TYPE): Define to
	c_register_builtin_type.
	* config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Remove __fpreg,
	__float80, and __float128 macros.
	* config/ia64/ia64.c (ia64_init_builtins): Create __fpreg,
	__float80, and __float128 types.

	* cp-lang.c (LANG_HOOKS_REGISTER_BUILTIN_TYPE): Define to
	c_register_builtin_type.

	* gcc.dg/ia64-types1.c: New test.
	* gcc.dg/ia64-types2.c: Likewise.

From-SVN: r71227
2003-09-09 03:35:31 +00:00
Kaveh R. Ghazi
11bf0eb0c7 builtin-types.def (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, [...]): New.
* builtin-types.def
	(BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE,
	BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
	BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT): New.
	* builtins.def (BUILT_IN_CACOS, BUILT_IN_CACOSF, BUILT_IN_CACOSH,
	BUILT_IN_CACOSHF, BUILT_IN_CACOSHL, BUILT_IN_CACOSL,
	BUILT_IN_CARG, BUILT_IN_CARGF, BUILT_IN_CARGL, BUILT_IN_CASIN,
	BUILT_IN_CASINF, BUILT_IN_CASINH, BUILT_IN_CASINHF,
	BUILT_IN_CASINHL, BUILT_IN_CASINL, BUILT_IN_CATAN,
	BUILT_IN_CATANF, BUILT_IN_CATANH, BUILT_IN_CATANHF,
	BUILT_IN_CATANHL, BUILT_IN_CATANL, BUILT_IN_CCOS, BUILT_IN_CCOSF,
	BUILT_IN_CCOSH, BUILT_IN_CCOSHF, BUILT_IN_CCOSHL, BUILT_IN_CCOSL,
	BUILT_IN_CEXP, BUILT_IN_CEXPF, BUILT_IN_CEXPL, BUILT_IN_CPOW,
	BUILT_IN_CPOWF, BUILT_IN_CPOWL, BUILT_IN_CPROJ, BUILT_IN_CPROJF,
	BUILT_IN_CPROJL, BUILT_IN_CSIN, BUILT_IN_CSINF, BUILT_IN_CSINH,
	BUILT_IN_CSINHF, BUILT_IN_CSINHL, BUILT_IN_CSINL, BUILT_IN_CSQRT,
	BUILT_IN_CSQRTF, BUILT_IN_CSQRTL, BUILT_IN_CTAN, BUILT_IN_CTANF,
	BUILT_IN_CTANH, BUILT_IN_CTANHF, BUILT_IN_CTANHL, BUILT_IN_CTANL):
	New.
	* doc/extend.texi: Document new builtins.

testsuite:
	* gcc.dg/builtins-1.c: Add more _Complex tests.
	* gcc.dg/torture/builtin-attr-1.c: Likewise.

From-SVN: r71226
2003-09-09 03:29:18 +00:00
Kaveh R. Ghazi
df049e595f builtins-1.c: Test existing _Complex functions.
* gcc.dg/builtins-1.c: Test existing _Complex functions.
	* gcc.dg/torture/builtin-attr-1.c: Likewise.

From-SVN: r71225
2003-09-09 03:13:45 +00:00
David Edelsohn
263594d2e4 ios.cc (ios_base::Init::Init): Remove unnecessary qualifier from _S_synced_with_stdio.
* src/ios.cc (ios_base::Init::Init): Remove unnecessary
        qualifier from _S_synced_with_stdio.

From-SVN: r71224
2003-09-08 21:08:48 -04:00
Jan Hubicka
d853a20e6c cgraph.c (cgraph_varpool_finalize_decl): Sanity check duplicated finalization.
* cgraph.c (cgraph_varpool_finalize_decl): Sanity check duplicated
	finalization.
	* cgraphunit.c (decide_is_fnction_needed): Avoid special case of nested
	functions, check for COMDAT.
	(cgraph_assemble_pending_functions): Break out from...
	(cgraph_finalize_function): ... here; allow redefinig of extern inline
	functions.
	(record_call_1): Record function references only in non-unit-at-a-time
	mode.
	(cgraph_analyze_function): Reset current_function_decl.
	(cgraph_finalize_compilation_unit):  Assemble pending functions.

From-SVN: r71221
2003-09-09 00:31:39 +00:00
GCC Administrator
c05e3efaa4 Daily bump.
From-SVN: r71219
2003-09-09 00:16:08 +00:00
Mark Mitchell
3d81ccc618 mklibgcc.in (libcc.a): Depend on stmp-dirs.
* mklibgcc.in (libcc.a): Depend on stmp-dirs.
	(libgov.a): Likewise.
	(libgcc_eh.a): Likewise.

From-SVN: r71217
2003-09-08 23:48:58 +00:00
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