Mark Mitchell [Tue, 9 Sep 2003 03:35:31 +0000 (03:35 +0000)]
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
Kaveh R. Ghazi [Tue, 9 Sep 2003 03:29:18 +0000 (03:29 +0000)]
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
Kaveh R. Ghazi [Tue, 9 Sep 2003 03:13:45 +0000 (03:13 +0000)]
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
David Edelsohn [Tue, 9 Sep 2003 01:08:48 +0000 (21:08 -0400)]
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
Jan Hubicka [Tue, 9 Sep 2003 00:31:39 +0000 (02:31 +0200)]
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
GCC Administrator [Tue, 9 Sep 2003 00:16:08 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r71219
Mark Mitchell [Mon, 8 Sep 2003 23:48:58 +0000 (23:48 +0000)]
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
Roger Sayle [Mon, 8 Sep 2003 18:57:32 +0000 (18:57 +0000)]
* fold-const.c (operand_equal_p): Clarify documentation.
From-SVN: r71214
Mark Mitchell [Mon, 8 Sep 2003 18:46:20 +0000 (18:46 +0000)]
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
Richard Henderson [Mon, 8 Sep 2003 16:54:13 +0000 (09:54 -0700)]
* optimize.c (maybe_clone_body): Inc/dec function_depth.
From-SVN: r71210
Mark Mitchell [Mon, 8 Sep 2003 16:53:05 +0000 (16:53 +0000)]
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
Richard Henderson [Mon, 8 Sep 2003 15:56:27 +0000 (08:56 -0700)]
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
Jakub Jelinek [Mon, 8 Sep 2003 07:23:34 +0000 (09:23 +0200)]
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
Jakub Jelinek [Mon, 8 Sep 2003 06:57:05 +0000 (08:57 +0200)]
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
Eric Botcazou [Mon, 8 Sep 2003 06:41:49 +0000 (08:41 +0200)]
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
Andrew Pinski [Mon, 8 Sep 2003 06:00:46 +0000 (06:00 +0000)]
* g++.dg/template/crash10.C: Only compile it.
From-SVN: r71197
Andrew Pinski [Mon, 8 Sep 2003 03:05:52 +0000 (03:05 +0000)]
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
GCC Administrator [Mon, 8 Sep 2003 00:16:06 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r71191
Mark Mitchell [Sun, 7 Sep 2003 23:48:33 +0000 (23:48 +0000)]
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
Mark Mitchell [Sun, 7 Sep 2003 20:54:11 +0000 (20:54 +0000)]
re PR c++/12181 (Wrong code with comma operator and c++)
PR c++/12181
* g++.dg/expr/comma1.C: New test.
From-SVN: r71182
Roger Sayle [Sun, 7 Sep 2003 20:34:13 +0000 (20:34 +0000)]
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
Roger Sayle [Sun, 7 Sep 2003 20:32:16 +0000 (20:32 +0000)]
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
Mark Mitchell [Sun, 7 Sep 2003 19:21:05 +0000 (19:21 +0000)]
Fix typo.
From-SVN: r71177
Gabriel Dos Reis [Sun, 7 Sep 2003 18:52:53 +0000 (18:52 +0000)]
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
Jan Hubicka [Sun, 7 Sep 2003 16:23:41 +0000 (18:23 +0200)]
* cfgcleanup.c (try_simplify_condjump): Fix again the preivous patch.
From-SVN: r71172
Gabriel Dos Reis [Sun, 7 Sep 2003 11:59:52 +0000 (11:59 +0000)]
* diagnostic.c (warn_deprecated_use): Move to toplev.c
From-SVN: r71168
Jan Hubicka [Sun, 7 Sep 2003 11:15:46 +0000 (13:15 +0200)]
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
Gabriel Dos Reis [Sun, 7 Sep 2003 10:11:28 +0000 (10:11 +0000)]
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
Andrew Pinski [Sun, 7 Sep 2003 05:57:10 +0000 (22:57 -0700)]
Forgot to commit the Changelog for the new tests.
From-SVN: r71162
James E Wilson [Sun, 7 Sep 2003 05:52:40 +0000 (22:52 -0700)]
* MAINTAINTERS: Update my affiliation and email address.
From-SVN: r71161
James E Wilson [Sun, 7 Sep 2003 05:21:35 +0000 (22:21 -0700)]
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
Mark Mitchell [Sun, 7 Sep 2003 04:10:10 +0000 (04:10 +0000)]
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
Andrew Pinski [Sun, 7 Sep 2003 03:43:15 +0000 (20:43 -0700)]
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
R. Kelley Cook [Sun, 7 Sep 2003 02:11:40 +0000 (02:11 +0000)]
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
Jan Hubicka [Sun, 7 Sep 2003 00:51:53 +0000 (02:51 +0200)]
* cfgcleanup.c (try_simplify_condjump): Fix my previous patch.
From-SVN: r71153
GCC Administrator [Sun, 7 Sep 2003 00:16:07 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r71151
Jan Hubicka [Sat, 6 Sep 2003 22:47:19 +0000 (00:47 +0200)]
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
Jan Hubicka [Sat, 6 Sep 2003 22:23:51 +0000 (00:23 +0200)]
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
Jan Hubicka [Sat, 6 Sep 2003 21:50:20 +0000 (23:50 +0200)]
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
Gabriel Dos Reis [Sat, 6 Sep 2003 21:33:46 +0000 (21:33 +0000)]
* diagnostic.c (announce_function): Move to toplev.c.
From-SVN: r71146
Gabriel Dos Reis [Sat, 6 Sep 2003 19:03:44 +0000 (19:03 +0000)]
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
Nathan Sidwell [Sat, 6 Sep 2003 18:37:57 +0000 (18:37 +0000)]
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
Zdenek Dvorak [Sat, 6 Sep 2003 17:37:09 +0000 (19:37 +0200)]
* MAINTAINERS (Write After Approval): Add myself.
From-SVN: r71142
Zdenek Dvorak [Sat, 6 Sep 2003 17:05:02 +0000 (19:05 +0200)]
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
Roger Sayle [Sat, 6 Sep 2003 16:14:30 +0000 (16:14 +0000)]
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
Steven Bosscher [Sat, 6 Sep 2003 15:44:34 +0000 (15:44 +0000)]
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
Kaveh R. Ghazi [Sat, 6 Sep 2003 15:06:36 +0000 (15:06 +0000)]
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
Steven Bosscher [Sat, 6 Sep 2003 13:34:00 +0000 (13:34 +0000)]
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
Nathan Sidwell [Sat, 6 Sep 2003 11:29:17 +0000 (11:29 +0000)]
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
Josef Zlomek [Sat, 6 Sep 2003 05:28:03 +0000 (07:28 +0200)]
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
Geoffrey Keating [Sat, 6 Sep 2003 04:07:18 +0000 (04:07 +0000)]
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
Bernardo Innocenti [Sat, 6 Sep 2003 01:01:01 +0000 (03:01 +0200)]
* include/c_std/std_cstdlib.h: Avoid using missing C library symbols.
From-SVN: r71127
Kazu Hirata [Sat, 6 Sep 2003 00:22:49 +0000 (00:22 +0000)]
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
GCC Administrator [Sat, 6 Sep 2003 00:16:08 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r71124
Nitin Yewale [Fri, 5 Sep 2003 20:00:03 +0000 (20:00 +0000)]
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
Roger Sayle [Fri, 5 Sep 2003 18:28:48 +0000 (18:28 +0000)]
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
Mark Mitchell [Fri, 5 Sep 2003 18:04:21 +0000 (18:04 +0000)]
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
Andrew Pinski [Fri, 5 Sep 2003 15:36:37 +0000 (15:36 +0000)]
pretty2.C: Update for change in __FUNCTION__.
2003-09-05 Andrew Pinski <pinskia@physics.uc.edu>
* g++.old-deja/g++.ext/pretty2.C: Update for change
in __FUNCTION__.
* g++.old-deja/g++.ext/pretty3.C: Likewise.
From-SVN: r71114
Nick Clifton [Fri, 5 Sep 2003 15:34:46 +0000 (15:34 +0000)]
Oops - I forgot to commit the change to this file along with the v850e1 patch yesterday.
Oops - I forgot to commit the change to this file along with the v850e1 patch
yesterday. This part of the patch adds support for a --target=v850e1-elf
configuration as well as --target=v850-elf --with-cpu=v850e1.
From-SVN: r71113
Petur Runolfsson [Fri, 5 Sep 2003 12:55:33 +0000 (12:55 +0000)]
re PR libstdc++/9028 (codecvt<wchar_t, char, mbstate_t> doesn't work on Red Hat Linux 8.0.)
2003-09-04 Petur Runolfsson <peturr02@ru.is>
PR libstdc++/9028
* include/bits/fstream.tcc
(basic_filebuf::_M_destroy_internal_buffer): Destroy _M_ext_buf.
(basic_filebuf::basic_filebuf): Initialize _M_ext_buf,
_M_ext_buf_size, _M_ext_next and _M_ext_end.
(basic_filebuf::underflow): Handle variable-width stateless
encodings (codecvt::encoding() == 0), including UTF-8.
* include/std/std_fstream.h (basic_filebuf):
Declare _M_ext_buf, _M_ext_buf_size, _M_ext_next, _M_ext_end.
* testsuite/27_io/basic_filebuf/underflow/wchar_t/1.cc: New test.
* testsuite/27_io/basic_filebuf/underflow/wchar_t/2.cc: New test.
* testsuite/27_io/basic_filebuf/underflow/wchar_t/3.cc: New test.
* testsuite/27_io/basic_filebuf/underflow/wchar_t/4.cc: New test.
* testsuite/27_io/basic_filebuf/underflow/wchar_t/5.cc: New test.
* testsuite/27_io/objects/wchar_t/12.cc: New test.
* testsuite/27_io/objects/wchar_t/13.cc: New test.
From-SVN: r71111
Nathan Sidwell [Fri, 5 Sep 2003 08:38:44 +0000 (08:38 +0000)]
re PR c++/11922 (ICE on type_unification_real)
cp:
PR c++/11922
* pt.c (tsubst_qualified_id): Make sure we get a non-type.
(tsubst_expr, tsubst_copy_and_build): Pass false, not zero, as
is_type_p to lookup_qualified_name.
* semantics.c (finish_call_expr): Refactor some code.
testsuite:
PR c++/11922
* g++/dg/template/qualified-id1.C: New test.
From-SVN: r71109
Nathan Sidwell [Fri, 5 Sep 2003 08:24:28 +0000 (08:24 +0000)]
re PR c++/12037 (Spurious "statement has no effect" in templates)
cp:
PR c++/12037
* cp-tree.h (COMPOUND_EXPR_OVERLOADED): New.
(build_min_non_dep): Declare.
* tree.c (build_min): Propagate TREE_SIDE_EFFECTS.
(build_min_non_dep): New.
* cvt.c (convert_to_void): Don't explicitly copy
TREE_SIDE_EFFECTS, TREE_NO_UNUSED_WARNING.
* call.c (build_new_method_call): Use build_min_non_dep.
* decl2.c (grok_array_decl): Likewise.
(build_offset_ref_call_from_tree): Likewise.
* typeck.c (finish_class_member_access_expr,
build_x_indirect_ref, build_x_binary_op, build_x_unary_op,
build_x_conditional_expr, build_x_compound_expr): Likewise.
(build_static_cast, build_reinterpret_cast,
build_const_cast): Propagate TREE_SIDE_EFFECTS inside a template.
* typeck2.c (build_x_arrow): Use build_min_non_dep.
(build_functional_cast): Propagate TREE_SIDE_EFFECTS inside a
template.
* rtti.c (build_dynamic_cast_1): Set DECL_IS_PURE.
(build_dynamic_cast): Set TREE_SIDE_EFFECTS.
* pt.c (build_non_dependent_expr): Check COMPOUND_EXPR_OVERLOADED.
testsuite:
PR c++/12037
* g++.dg/warn/noeffect4.C: New test.
From-SVN: r71108
Jonathan Wakely [Fri, 5 Sep 2003 08:10:41 +0000 (09:10 +0100)]
index.html: Note that a namespace alias can't be used when...
2003-09-04 Jonathan Wakely <redi@gcc.gnu.org>
* docs/html/faq/index.html: Note that a namespace alias can't be
used when specialising templates in extension namespace.
* docs/html/faq/index.txt: Regenerate.
From-SVN: r71107
Jan Hubicka [Fri, 5 Sep 2003 05:36:47 +0000 (07:36 +0200)]
opts.c (decode_options): Enable unit-at-a-time at -O2.
* opts.c (decode_options): Enable unit-at-a-time at -O2.
* params.def (max-inline-insns-single): Set to 500
(max-inline-insns-auto): Set to 150
* invoke.texi (max-inline-insns-single, max-inline-insns-auto): Update.
From-SVN: r71105
Richard Henderson [Fri, 5 Sep 2003 04:24:30 +0000 (21:24 -0700)]
cgraph.c (cgraph_mark_reachable_node): Split out from ...
* cgraph.c (cgraph_mark_reachable_node): Split out from ...
(cgraph_mark_needed_node): Remove needed argument.
* cgraph.h: Update to match.
* cgraphunit.c (decide_is_function_needed): Split out from ...
(cgraph_finalize_function): Reorg. Avoid deferred_inline_function
if we generated the function.
(record_call_1): Update for cgraph_mark_reachable_node.
* varasm.c (mark_referenced): Likewise.
* objc/objc-act.c (mark_referenced_methods): Likewise.
* decl2.c (mark_member_pointers_and_eh_handlers): Update for
change in cgraph_mark_needed_node arguments.
From-SVN: r71104
DJ Delorie [Fri, 5 Sep 2003 02:12:29 +0000 (22:12 -0400)]
* targhooks.c: Add comment explaining the migration process.
From-SVN: r71103
Jeff Sturm [Fri, 5 Sep 2003 01:54:21 +0000 (01:54 +0000)]
compile.exp: Test with -O3 rather than -O.
* libjava.compile/compile.exp: Test with -O3 rather than -O.
* libjava.lang/lang.exp: Likewise.
From-SVN: r71102
Jeff Sturm [Fri, 5 Sep 2003 01:47:27 +0000 (01:47 +0000)]
libjava.exp (libjava_arguments): Remove unneeded variables.
* lib/libjava.exp (libjava_arguments): Remove unneeded variables.
(test_libjava_from_source): Likewise.
(test_libjava_from_javac): Likewise.
From-SVN: r71101
DJ Delorie [Fri, 5 Sep 2003 00:46:06 +0000 (20:46 -0400)]
Remove duplicate entry, mention PR.
From-SVN: r71100
Eric Christopher [Fri, 5 Sep 2003 00:26:26 +0000 (00:26 +0000)]
t-frv: Fix path for frv-abi.h.
2003-09-04 Eric Christopher <echristo@redhat.com>
* config/frv/t-frv: Fix path for frv-abi.h.
* config/frv/frv-asm.h: Fix string concatenation.
From-SVN: r71099
GCC Administrator [Fri, 5 Sep 2003 00:16:08 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r71097
DJ Delorie [Thu, 4 Sep 2003 23:03:50 +0000 (19:03 -0400)]
builtins.c (apply_args_size): Guard against a NULL cfun.
* builtins.c (apply_args_size): Guard against a NULL cfun.
(expand_builtin_apply_args_1): Likewise.
(expand_builtin_apply_args_1): Likewise.
(expand_builtin_apply): Likewise.
From-SVN: r71095
DJ Delorie [Thu, 4 Sep 2003 22:53:48 +0000 (18:53 -0400)]
configure: Regenerate.
* configure: Regenerate.
* configure.in: Match GNU/KFreeBSD with new kfreebsd*-gnu triplet.
From-SVN: r71094
Rainer Orth [Thu, 4 Sep 2003 21:38:59 +0000 (21:38 +0000)]
re PR target/12101 (i386 Solaris no longer works with GNU as?)
* configure.in (gcc_cv_as_ix86_cmov_sun_syntax): Check if
assembler supports Sun syntax for cmov.
* configure: Regenerate.
* config.in: Likewise.
* config/i386/i386.c: Rename CMOV_SUN_AS_SYNTAX to
HAVE_AS_IX86_CMOV_SUN_SYNTAX.
* config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Remove.
Fixes PR target/12101.
From-SVN: r71089
Matt Austern [Thu, 4 Sep 2003 21:32:48 +0000 (21:32 +0000)]
Correct the behavior of __func__ for C++ special member functions.
* c-common.c (fname_as_string): Use lang_hooks.decl_printable_name
with verbosity 0, instead of DECL_NAME, for human-readable string.
* g++.dg/ext/fnname1.C: New test. (__func__ for C++.)
* g++.dg/ext/fnname2.C: Likewise.
* g++.dg/ext/fnname3.C: Likewise.
From-SVN: r71088
Eric Christopher [Thu, 4 Sep 2003 20:04:44 +0000 (20:04 +0000)]
targhooks.c (default_return_in_memory): Allow unconverted ports.
2003-09-04 Eric Christopher <echristo@redhat.com>
* targhooks.c (default_return_in_memory): Allow
unconverted ports.
From-SVN: r71085
Geoffrey Keating [Thu, 4 Sep 2003 19:48:22 +0000 (19:48 +0000)]
re PR c++/12161 (ICE during bootstrap, locale-inst.c, cp/call.c: 4571)
PR 12161
* decl2.c (mark_used): Use ggc_push_context/ggc_pop_context.
* tree.c (cp_cannot_inline_tree_fn): Likewise.
From-SVN: r71084
Eric Christopher [Thu, 4 Sep 2003 19:41:00 +0000 (19:41 +0000)]
targhooks.c (default_return_in_memory): Fix typo in last checkin.
2003-09-04 Eric Christopher <echristo@redhat.com>
* targhooks.c (default_return_in_memory): Fix typo
in last checkin.
From-SVN: r71083
Eric Christopher [Thu, 4 Sep 2003 19:29:31 +0000 (19:29 +0000)]
targhooks.c (default_return_in_memory): Fix default definition.
2003-09-04 Eric Christopher <echristo@redhat.com>
* targhooks.c (default_return_in_memory): Fix default
definition.
From-SVN: r71082
Bernardo Innocenti [Thu, 4 Sep 2003 19:14:51 +0000 (21:14 +0200)]
m68k.c (m68k_coff_asm_named_section): Restore deleted function.
* config/m68k/m68k.c (m68k_coff_asm_named_section): Restore
deleted function.
* config/m68k/coff.h (M68K_TARGET_COFF): Add flag used to
enable coff-only code in m68k.c.
From-SVN: r71081
Andreas Tobler [Thu, 4 Sep 2003 17:21:51 +0000 (19:21 +0200)]
Makefile.am: Remove build rules for ffitest.
2003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
* Makefile.am: Remove build rules for ffitest.
* Makefile.in: Rebuilt.
From-SVN: r71078
Tom Tromey [Thu, 4 Sep 2003 16:59:22 +0000 (16:59 +0000)]
* configure.host: Removed erroneous comment.
From-SVN: r71077
Tom Tromey [Thu, 4 Sep 2003 16:58:13 +0000 (16:58 +0000)]
natEmbeddedWindow.cc (setWindowPeer): Removed lvalue cast; use correct rvalue cast.
* gnu/java/awt/natEmbeddedWindow.cc (setWindowPeer): Removed
lvalue cast; use correct rvalue cast.
From-SVN: r71076
Michael Matz [Thu, 4 Sep 2003 15:12:49 +0000 (15:12 +0000)]
misc.c: Include "target.h".
* misc.c: Include "target.h".
* Make-lang.in (misc.o): Add dependency on target.h.
From-SVN: r71074
Andreas Tobler [Thu, 4 Sep 2003 14:58:22 +0000 (16:58 +0200)]
sorry forgot the changelog.
From-SVN: r71073
Andreas Tobler [Thu, 4 Sep 2003 14:53:26 +0000 (16:53 +0200)]
java_raw_api.c: Include <stdlib.h> to fix compiler warning about implicit declaration of abort().
2003-08-30 Andreas Tobler <a.tobler@schweiz.ch>
* src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
about implicit declaration of abort().
From-SVN: r71071
Andreas Tobler [Thu, 4 Sep 2003 14:51:43 +0000 (16:51 +0200)]
Andreas Tobler <a.tobler@schweiz.ch>
* include/Makefile.in: Built.
From-SVN: r71070
Andreas Tobler [Thu, 4 Sep 2003 14:49:22 +0000 (16:49 +0200)]
*** empty log message ***
From-SVN: r71069
Andreas Tobler [Thu, 4 Sep 2003 14:47:05 +0000 (16:47 +0200)]
003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
* Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
* Makefile.in: Rebuilt.
* configure.in: Add dejagnu test framework.
* configure: Rebuilt.
* testsuite/Makefile.am: New file.
* testsuite/Makefile.in: Built
* testsuite/lib/libffi-dg.exp: New file.
* testsuite/config/default.exp: Likewise.
* testsuite/libffi.call/call.exp: Likewise.
* testsuite/libffi.call/ffitest.h: Likewise.
* testsuite/libffi.call/closure_fn0.c: Likewise.
* testsuite/libffi.call/closure_fn1.c: Likewise.
* testsuite/libffi.call/closure_fn2.c: Likewise.
* testsuite/libffi.call/closure_fn3.c: Likewise.
* testsuite/libffi.call/cls_1_1byte.c: Likewise.
* testsuite/libffi.call/cls_3_1byte.c: Likewise.
* testsuite/libffi.call/cls_4_1byte.c: Likewise.
* testsuite/libffi.call/cls_2byte.c: Likewise.
* testsuite/libffi.call/cls_3byte1.c: Likewise.
* testsuite/libffi.call/cls_3byte2.c: Likewise.
* testsuite/libffi.call/cls_4byte.c: Likewise.
* testsuite/libffi.call/cls_5byte.c: Likewise.
* testsuite/libffi.call/cls_6byte.c: Likewise.
* testsuite/libffi.call/cls_7byte.c: Likewise.
* testsuite/libffi.call/cls_8byte.c: Likewise.
* testsuite/libffi.call/cls_12byte.c: Likewise.
* testsuite/libffi.call/cls_16byte.c: Likewise.
* testsuite/libffi.call/cls_20byte.c: Likewise.
* testsuite/libffi.call/cls_24byte.c: Likewise.
* testsuite/libffi.call/cls_double.c: Likewise.
* testsuite/libffi.call/cls_float.c: Likewise.
* testsuite/libffi.call/cls_uchar.c: Likewise.
* testsuite/libffi.call/cls_uint.c: Likewise.
* testsuite/libffi.call/cls_ulonglong.c: Likewise.
* testsuite/libffi.call/cls_ushort.c: Likewise.
* testsuite/libffi.call/float.c: Likewise.
* testsuite/libffi.call/float1.c: Likewise.
* testsuite/libffi.call/float2.c: Likewise.
* testsuite/libffi.call/many.c: Likewise.
* testsuite/libffi.call/many_win32.c: Likewise.
* testsuite/libffi.call/nested_struct.c: Likewise.
* testsuite/libffi.call/nested_struct1.c: Likewise.
* testsuite/libffi.call/pyobjc-tc.c: Likewise.
* testsuite/libffi.call/problem1.c: Likewise.
* testsuite/libffi.call/promotion.c: Likewise.
* testsuite/libffi.call/return_ll.c: Likewise.
* testsuite/libffi.call/return_sc.c: Likewise.
* testsuite/libffi.call/return_uc.c: Likewise.
* testsuite/libffi.call/strlen.c: Likewise.
* testsuite/libffi.call/strlen_win32.c: Likewise.
* testsuite/libffi.call/struct1.c: Likewise.
* testsuite/libffi.call/struct2.c: Likewise.
* testsuite/libffi.call/struct3.c: Likewise.
* testsuite/libffi.call/struct4.c: Likewise.
* testsuite/libffi.call/struct5.c: Likewise.
* testsuite/libffi.call/struct6.c: Likewise.
* testsuite/libffi.call/struct7.c: Likewise.
* testsuite/libffi.call/struct8.c: Likewise.
* testsuite/libffi.call/struct9.c: Likewise.
* testsuite/libffi.special/special.exp: New file.
* testsuite/libffi.special/ffitestcxx.h: Likewise.
* testsuite/libffi.special/unwindtest.cc: Likewise.
From-SVN: r71068
Nick Clifton [Thu, 4 Sep 2003 13:20:24 +0000 (13:20 +0000)]
Add support for v850e1 processor - a variant of the v850e.
From-SVN: r71063
Nick Clifton [Thu, 4 Sep 2003 11:50:08 +0000 (11:50 +0000)]
Fix v850 multilibs so that there is only one copy of the default multilib
From-SVN: r71058
Jakub Jelinek [Thu, 4 Sep 2003 10:47:46 +0000 (12:47 +0200)]
libgcc-ia64.ver: Export _Unwind_GetBSP@@GCC_3.3.2.
* config/ia64/libgcc-ia64.ver: Export _Unwind_GetBSP@@GCC_3.3.2.
* config/ia64/unwind-ia64.c (_Unwind_GetBSP): New function.
* unwind.h (_Unwind_GetBSP): New prototype.
* libgcc-std.ver: Add empty GCC_3.3.2 version.
* mkmap-symver.awk: For symbol versions with no exported symbols,
don't put anything into version script, just change all symbol
versions which inherit from it to inherit from its ancestor.
From-SVN: r71057
Eric Christopher [Thu, 4 Sep 2003 09:55:33 +0000 (09:55 +0000)]
mips.c (mips_expand_prologue): Convert to calls.struct_value_rtx hook.
2003-09-04 Eric Christopher <echristo@redhat.com>
* config/mips/mips.c (mips_expand_prologue): Convert to
calls.struct_value_rtx hook.
(reg_or_const_float_1_operand): New.
* config/mips/mips.h: Update Comments.
(mips_arg): Add reg_or_const_float_1_operand.
* config/mips/mips.md (divdf3); Convert to expander.
(divsf3): Ditto.
(*divdf3): New pattern.
(*divsf3): Ditto.
From-SVN: r71056
Nathan Sidwell [Thu, 4 Sep 2003 09:36:20 +0000 (09:36 +0000)]
cp-tree.h (finish_sizeof, [...]): Remove.
cp:
* cp-tree.h (finish_sizeof, finish_alignof): Remove.
(expr_sizeof): Replace with ...
(cxx_sizeof_or_alignof_expr): ... here.
(cxx_sizeof_or_alignof_type): Make complain parameter a bool.
* parser.c (cp_parser_unary_expression): Commonize alignof and
sizeof handling.
* pt.c (tsubst_copy_and_build): Adjust alignof and sizeof
substitution.
* semantics.c (finish_sizeof, finish_alignof): Remove.
* typeck.c (cxx_sizeof_or_alignof_type): Complain parameter
becomes bool. Set TREE_READONLY.
(expr_sizeof): Replace with ...
(cxx_sizeof_or_alignof_expr): ... here. Clear TREE_SIDE_EFFECTS.
From-SVN: r71054
Jan Hubicka [Thu, 4 Sep 2003 08:45:42 +0000 (10:45 +0200)]
toplev.c (wrapup_global_declarations): Fix final pass in unit-at-atime mode.
* toplev.c (wrapup_global_declarations): Fix final pass in
unit-at-atime mode.
From-SVN: r71052
Mark Mitchell [Thu, 4 Sep 2003 07:16:43 +0000 (07:16 +0000)]
Remove cast-as-lvalue extension.
* call.c (build_conditional_expr): Correct formatting.
(convert_like_real): Use lvalue_p, not non_cast_lvalue_p.
(initialize_real): Use real_lvalue_p, not real_non_cast_lvalue_p.
* cp-tree.h (non_cast_lvalue_p): Remove.
(real_non_cast_lvalue_p): Remove.
(non_cast_lvalue_or_else): Remove.
* tree.c (lvalue_p_1): Remove allow_cast_as_lvalue parameter.
(real_lvalue_p): Adjust call to lvalue_p_1.
(non_cast_lvalue_p): Remove.
(non_cast_lvalue_or_else): Remove.
(lvalue_p): Adjust call to lvalue_p_1.
(lvalue_or_else): Simplify.
* typeck.c (build_unary_op): Use lvalue_or_else, not
non_cast_lvalue_or_else.
(build_static_cast): Use real_lvalue_p, not real_non_cast_lvalue_p.
* doc/extend.texi: Document removal of cast-as-lvalue extension in
C++.
* g++.dg/expr/lval1.C: New test.
* g++.dg/ext/lvcast.C: Remove.
From-SVN: r71051
Nicolas Roche [Thu, 4 Sep 2003 06:30:02 +0000 (08:30 +0200)]
* gcc.c (process_command): Fix typo.
From-SVN: r71050
David O'Brien [Thu, 4 Sep 2003 03:35:35 +0000 (03:35 +0000)]
freebsd.h (SIZE_TYPE): Support TARGET_64BIT.
2003-09-03 David O'Brien <obrien@FreeBSD.org>
optimization/11980
* config/i386/freebsd.h (SIZE_TYPE): Support TARGET_64BIT.
(PTRDIFF_TYPE): Likewise.
(WCHAR_TYPE_SIZE): Likewise.
From-SVN: r71049
DJ Delorie [Thu, 4 Sep 2003 03:18:05 +0000 (23:18 -0400)]
targhooks.c: New file.
* targhooks.c: New file.
* targhooks.h: New file.
* Makefile.in: Add targhooks.o support.
(function.o): Depend on$(TARGET_H).
(stmt.o): Likewise.
(combine.o): Depend on $(TREE_H) and $(TARGET_H).
* builtins.c (apply_args_size, expand_builtin_apply_args_1,
expand_builtin_apply): Convert to calls.struct_value_rtx hook.
(expand_builtin_saveregs): Convert to
calls.expand_builtin_saveregs hook.
* c-decl.c (start_decl): Handle new calls.promote_prototypes hook
here, instead of ...
(get_parm_info) ... here.
(store_parm_decls_oldstyle): Convert to calls.promote_prototypes
hook.
(finish_function): Handle calls.promote_prototypes hook here too.
* c-typeck.c (convert_arguments): Convert to
calls.promote_prototypes hook.
(c_convert_parm_for_inlining): Likewise.
* calls.c (initialize_argument_information): Convert to
calls.promote_function_args hook.
(expand_call): Convert to calls.struct_value_rtx,
calls.strict_argument_naming,
calls.pretend_outgoing_varargs_named, and
calls.promote_function_return hooks. Pass fndecl to
aggregate_value_p. Initialize CUMULATIVE_ARGS before calling
hooks, so they can use that.
(emit_library_call_value_1): Likewise.
* combine.c (setup_incoming_promotions): Convert to
calls.promote_function_args hook.
* emit-rtl.c: Convert to calls.struct_value_rtx hook.
* expr.c (expand_assignment): Pass call to aggregate_value_p.
(expand_expr): Likewise.
* expr.h: Remove support for SETUP_INCOMING_VARARGS,
STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED,
RETURN_IN_MEMORY macro defaults.
* final.c (profile_function): Convert to calls.struct_value_rtx
hook.
* function.c (aggregate_value_p): Accept function type tree as
second parameter; try to deduce fntype from it. Convert to
calls.return_in_memory hook.
(assign_parms): Convert to calls.setup_incoming_varargs,
calls.strict_argument_naming, calls.promote_function_args,
calls.pretend_outgoing_varargs_named hooks. Pass fndecl to
aggregate_value_p.
(expand_function_start): Likewise. Convert to
calls.struct_value_rtx hook.
(expand_function_end): Convert to calls.promote_function_return hook.
(allocate_struct_function): Pass fndecl to aggregate_value_p.
* hard-reg-set.h: Update comments to new hook names.
* integrate.c (expand_inline_function): Pass fndecl to aggregate_value_p.
* reg-stack.c (stack_result): Likewise.
* rtl.h (struct_value_rtx, struct_value_incoming_rtx): Delete.
* stmt.c (expand_value_return): Convert to
calls.promote_function_return hook.
* target-def.h: Add TARGET_PROMOTE_FUNCTION_ARGS,
TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
TARGET_STRUCT_VALUE_RTX, TARGET_RETURN_IN_MEMORY,
TARGET_EXPAND_BUILTIN_SAVEREGS, TARGET_SETUP_INCOMING_VARARGS,
TARGET_STRICT_ARGUMENT_NAMING,
TARGET_PRETEND_OUTGOING_VARARGS_NAMED, and TARGET_CALLS.
* target.h: Likewise.
* tree.h (aggregate_value_p): Also takes a tree to deduce function
attributes from (for target hooks).
* doc/tm.texi (PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN,
PROMOTE_PROTOTYPES, RETURN_IN_MEMORY, STRUCT_VALUE_REGNUM,
STRUCT_VALUE, STRUCT_VALUE_INCOMING_REGNUM, STRUCT_VALUE_INCOMING,
EXPAND_BUILTIN_SAVEREGS, SETUP_INCOMING_VARARGS,
STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED): Convert
to hooks.
* config/alpha/alpha.c (alpha_output_mi_thunk_osf): Pass function
to aggregate_value_p.
* config/arm/arm.c (arm_init_cumulative_args,
arm_output_mi_thunk): Likewise.
* config/i386/i386.c (ix86_return_pops_args, x86_this_parameter):
Likewise.
* config/mips/mips.c (mips_save_reg_p, mips_expand_prologue,
mips_can_use_return_insn): Likewise.
* config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
* config/s390/s390.c (s390_output_mi_thunk): Likewise.
* config/sparc/sparc.c (sparc_output_mi_thunk): Pass function to
aggregate_value_p.
* config/story16/stormy16.c (xstormy16_asm_output_mi_thunk): Pass
function to aggregate_value_p.
* objc/objc-act.c (generate_struct_by_value_array): Pass NULL to
aggregate_value_p.
* config/sh/sh-protos.h (sh_builtin_saveregs): Remove.
(sh_attr_renesas_p, sh_cfun_attr_renesas_p, sh_function_arg,
sh_function_arg_advance, sh_pass_in_reg_p): New. * config/sh/sh.c
(sh_handle_renesas_attribute, sh_promote_prototypes,
sh_struct_value_rtx, sh_return_in_memory, sh_builtin_saveregs,
sh_setup_incoming_varargs, sh_strict_argument_naming,
sh_pretend_outgoing_varargs_named): New decls.
(targetm): Add new hooks.
(calc_live_regs): Save MACL and MACH if the function has the
renesas attribute.
(sh_expand_prologue): Support renesas attribute.
(sh_builtin_saveregs): Make static.
(sh_build_va_list): Support renesas attribute.
(sh_va_start): Likewise.
(sh_va_arg): Likewise.
(sh_promote_prototypes): New.
(sh_function_arg): New, moved from sh.h. Support renesas
attribute.
(sh_function_arg_advance): Likewise.
(sh_return_in_memory): Likewise.
(sh_strict_argument_naming): Likewise.
(sh_pretend_outgoing_varargs_named): Likewise.
(sh_struct_value_rtx): New.
(sh_attribute): Add renesas attribute.
(sh_handle_renesas_attribute): New.
(sh_attr_renesas_p, sh_cfun_attr_renesas_p): New.
(sh_ms_bitfield_layout_p): Support renesas attribute also.
(sh_output_mi_thunk): Pass function to aggregate_value_p. *
config/sh/sh.h (TARGET_SWITCHES): Add -mrenesas as an alias for
-mhitachi.
(STRUCT_VALUE_REGNUM, STRUCT_VALUE, RETURN_IN_MEMORY): Moved to
target hooks.
(sh_args): Add renesas_abi flag.
(INIT_CUMULATIVE_ARGS): Set it. Pass fndecl to aggregate_value_p.
(FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Move to sh.c.
(PASS_IN_REG_P): Support renesas attribute. Pass DF and TF on the
stack for the renesas abi.
(STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED,
SETUP_INCOMING_VARARGS, EXPAND_BUILTIN_SAVEREGS,
PROMOTE_PROTOTYPES): Moved to sh.c. * config/sh/sh.md (call): Set
call cookie to indicate renesas calls.
* decl.c (finish_function): Pass fndecl to aggregate_value_p.
* misc.c (default_pass_by_ref): Convert to calls.return_in_memory
hook.
From-SVN: r71048
Mostafa Hagog [Thu, 4 Sep 2003 02:10:32 +0000 (02:10 +0000)]
gcse.c (replace_one_set): New function.
* gcse.c (replace_one_set): New function.
(pre_insert_copy_insn): Change the order of copying
to make copy propagation discover additional PRE opportunities.
From-SVN: r71047