Gerald Pfeifer [Sat, 16 Aug 2003 14:02:24 +0000 (14:02 +0000)]
gcc_release (build_sources): Use two new variables EXPORTTAG and EXPORTDATE to make the extraction of...
* gcc_release (build_sources): Use two new variables EXPORTTAG and
EXPORTDATE to make the extraction of sources more transparent and
also allow snapshots (off mainline) without a tag.
Nathan Sidwell [Sat, 16 Aug 2003 13:32:11 +0000 (13:32 +0000)]
re PR c++/11512 (Spurious warning for comma-operator in templates)
PR c++/11512
* stmt.c (expand_expr_stmt_value): Don't warn about any void
typed expression.
cp:
PR c++/11512
* cvt.c (convert_to_void): Indicate which side of conditional has
no effects, and rhs of comma operator. Test for no sideeffect
expressions here and always build a convert expr.
* init.c (expand_default_init): Convert the init to void.
* typeck.c (build_x_compound_expr): Do not check for side effects
here.
(build_compound_expr): Do not convert lhs when building a
template.
testsuite:
PR C++/11512
* g++.dg/template/warn1.C: New.
Jan Hubicka [Sat, 16 Aug 2003 11:04:59 +0000 (13:04 +0200)]
i386.c (ix86_fntype_regparm): Rename from ...
* i386.c (ix86_fntype_regparm): Rename from ...
(ix86_function_regparm): ... this one; add fastcall and local
functions.
(ix86_function_ok_for_sibcall): Update.
(ix86_return_pops_args): Likewise.
(init_cumulative_args): Likewise.
(x86_can_output_mi_thunk): Likewise.
(function_arg): Fix formating.
(x86_this_parameter): Fix fastcall.
(x86_output_mi_thunk): Likewise.
* cgraph.c (cgraph_mark_needed_node): Do not mark functions without
body as reachable; mark nested functions as needed too.
(dump_cgraph): Do not output global.calls.
* cgraph.h (cgraph_global_info): Kill.
* cgraphunit.c (cgraph_finalize_function): Enqueue needed functions.
(record_call_1): Speedup.
(cgraph_analyze_function): Break out from ...; compute inlining
parameters.
(cgraph_finalize_compilation_unit): ... here.
(cgraph_mark_inline): Kill computation of calls.
(cgraph_decide_inlining): Do not compute most of initial values.
Jan Hubicka [Fri, 15 Aug 2003 11:14:01 +0000 (13:14 +0200)]
decl2.c (mark_member_pointers): Rename to...
* decl2.c (mark_member_pointers): Rename to...
(mark_member_pointers_and_eh_tinfos): ... this one; deal with eh tinfos
(lower_function): Update call.
* except.c (eh_type_info): Break out from ...
(build_eh_type): ... here; tinfo is already used.
(finish_eh_spec_block): Mark tinfos as used.
* semantics.c (finish_handler_params): Mark tinfo as used.
* cp-tree.h(eh_type_info): Declare.
Roger Sayle [Thu, 14 Aug 2003 20:53:26 +0000 (20:53 +0000)]
fold-const.c (negate_expr_p): MULT_EXPRs and RDIV_EXPRs are easy to negate if either operand is easy to negate...
* fold-const.c (negate_expr_p): MULT_EXPRs and RDIV_EXPRs are easy
to negate if either operand is easy to negate, if we don't care
about sign-dependent rounding.
(negate_expr): Make the logic to negate a REAL_CST explicit.
Attempt to negate a MULT_EXPR or RDIV_EXPR by negating an operand
that's easy to negate, if we don't honor sign-dependent rounding.
(fold <MULT_EXPR>): Optimize -A * B as A * -B if B is easy to
negate, and the symmetric A * -B as -A * B if A is easy to negate.
(fold <RDIV_EXPR>): Likewise, optimize -A/B and C/-D as A/-B and
-C/D if B and C are cheap to negate. Add an explicit rule to
optimize X/-1.0 as -X when we don't care about signaling NaNs.
Zack Weinberg [Thu, 14 Aug 2003 20:25:14 +0000 (20:25 +0000)]
Makefile.in (tm_file): Rename tm_include_list.
* Makefile.in (tm_file): Rename tm_include_list.
(tm_p_file): Rename tm_p_include_list.
(build_xm_file): Rename build_xm_include_list.
(host_xm_file): Rename host_xm_include_list.
(xm_file): Rename xm_include_list.
(xm_file_list): Add to be substituted.
(cs-config.h, cs-bconfig.h, cs-tconfig.h, cs-tm.h, cs-tm_p.h):
Update to match.
(bt-load.o): Add missing dependency on $(TM_H).
* configure.in: Prefix value of EXTRA_MODES_FILE with config/.
For each of tm_file, tm_p_file, xm_file, host_xm_file, and
build_xm_file, generate both *_file_list and *_include_list
values from it. (xm_file_list was formerly not being generated.)
In *_include_list, prefix the names of all headers found in
$(srcdir)/config with config/. In each loop, consider only
the special case files that can actually appear in that list.
AC_SUBST all *_file_list and all *_include_list variables; do
not AC_SUBST the plain *_file variables.
* configure: Regenerate.
pa.c (pa_adjust_insn_length): Delete adjustment for delay slot in direct calls.
* pa.c (pa_adjust_insn_length): Delete adjustment for delay slot in
direct calls.
(attr_length_call): Include it here. Improve length estimate for
local calls.
(output_call): Use targetm.binds_local_p.
Mohan Embar [Wed, 13 Aug 2003 07:08:29 +0000 (07:08 +0000)]
Make-lang.in: Added missing win32-host.o to JAVA_OBJS, GCJH_OBJS, JCFDUMP_OBJS
* Make-lang.in: Added missing win32-host.o to JAVA_OBJS,
GCJH_OBJS, JCFDUMP_OBJS
* win32-host.c: Removed the unnecessary and broken dependency
on jcf.h
Mark Mitchell [Tue, 12 Aug 2003 22:26:25 +0000 (22:26 +0000)]
re PR c++/11703 (Problem with using enum in placement delete)
PR c++/11703
* call.c (type_passed_as): Use TYPE_SIZE, not TYPE_PRECISION to
determine whether or not to promote types.
(convert_for_arg_passing): Likewise.
* decl2.c (cp_build_parm_decl): Do not set DECL_ARG_TYPE in
templates.
* pt.c (tsubst_decl): Do not expect it to be set.
PR c++/9512
PR c++/10923
* cp-tree.h (check_elaborated_type_specifier): Declare.
(handle_class_head): Remove.
(note_got_semicolon): Likewise.
(note_list_got_semicolon): Likewise.
(finish_class_definition): Likewise.
* decl.c (check_elaborated_type_specifier): Make it public.
Robustify.
(handle_class_head): Remove.
* parser.c (cp_parser_elaborated_type_specifier): Use
check_elaborated_type_specifier.
(cp_parser_class_specifier): Do not call finish_class_definition.
(cp_parser_class_head): Or handle_class_head. Check for
over-qualified names.
* semantics.c (finish_class_definition): Remove.
* parser.c (cp_parser_check_for_definition_in_return_type): New
function.
(cp_parser_simple_declaration): Adjust call to
cp_parser_init_declarator.
(cp_parser_decl_specifier_seq): Change type of
declares_class_or_enum parameter.
(cp_parser_explicit_instantiation): Adjust accordingly.
(cp_parser_type_specifier): Change type of
declares_class_or_enum parameter.
(cp_parser_init_declarator): Add declares_class_or_enum
parameter.
(cp_parser_parameter_declaration): Adjust call to
cp_parser_decl_specifier_seq.
(cp_parser_function_definition): Likewise.
(cp_parser_member_declaration): Likewise.
(cp_parser_single_declaration): Likewise.
* cp-tree.h (lang_type_class): Remove has_call_overloaded,
has_array_ref_overloaded, has_arrow_overloaded, and got_semicolon.
(TYPE_OVERLOADS_CALL_EXPR): Remove.
(TYPE_OVERLOADS_ARRAY_REF): Likewise.
(TYPE_OVERLOADS_ARROW): Likewise.
(CLASSTYPE_GOT_SEMICOLON): Likewise.
* class.c (check_bases): Do not set them.
(finish_struct_1): Likewise.
* decl.c (cp_finish_decl): Do not set CLASSTYPE_GOT_SEMICOLON.
(build_ptrmemfunc_type): Likewise.
(grok_op_properties): Do not set TYPE_OVERLOADS_*.
(start_function): Do not check CLASSTYPE_GOT_SEMICOLON.
* decl2.c (grokfield): Do not set CLASSTYPE_GOT_SEMICOLON.
* lex.c (note_got_semicolon): Remove.
(note_list_got_semicolon): Likewise.
* parser.c (cp_parser_simple_declaration): Do not call
note_list_got_semicolon.
* pt.c (list_eq): Remove.
(lookup_template_class): Do not set CLASSTYPE_GOT_SEMICOLON.
(instantiate_class_template): Do not set TYPE_OVERLOADS*.
(instantiate_class_template): Do not set CLASSTYPE_GOT_SEMICOLON.
* ptree.c (cxx_print_type): Do not print them.
* semantics.c (finish_member_class_template): Do not call
note_list_got_semicolon.
* g++.dg/parse/ret-type2.C: New test.
PR c++/11703
* g++.dg/init/new8.C: New test.
PR c++/10923
* g++.dg/parse/typedef5.C: New test.
PR c++/9512
* g++.dg/parse/qualified2.C: New test.
* g++.old-deja/g++.other/decl5.C: Mark one more instance of
invalid code.
Tom Tromey [Tue, 12 Aug 2003 20:34:51 +0000 (20:34 +0000)]
parse.y (java_check_regular_methods): Typo fixes.
* parse.y (java_check_regular_methods): Typo fixes. Call
check_interface_throws_clauses. Use
check_concrete_throws_clauses.
(check_interface_throws_clauses): New function.
(check_concrete_throws_clauses): New function.
(hack_is_accessible_p): New function.
(find_most_specific_methods_list): Added FIXME.
* typeck.c (lookup_do): Use `flags' argument to decide what to
do. Reimplemented.
(lookup_argument_method_generic): New function.
(lookup_argument_method2): Removed.
* jcf.h (ACC_INVISIBLE): New define.
* jcf-write.c (generate_classfile): Skip invisible methods.
* class.c (add_miranda_methods): New function.
(layout_class_methods): Use it.
(get_access_flags_from_decl): Use ACC_INVISIBLE.
* java-tree.h (METHOD_INVISIBLE): New define.
(lang_decl_func) [invisible]: New field.
(lookup_argument_method_generic): Declare.
(SEARCH_INTERFACE): New define.
(SEARCH_SUPER): Likewise.
(SEARCH_ONLY_INTERFACE): Likewise.
(SEARCH_VISIBLE): Likewise.
(lookup_argument_method2): Removed declaration.
Tom Tromey [Tue, 12 Aug 2003 20:32:28 +0000 (20:32 +0000)]
re PR java/5641 (Verifier ICE on reference to inherited method)
* libjava.jacks/jacks.xfail: Updated to account for new passes.
* libjava.compile/abstr.xfail: Now can compile from bytecode.
* libjava.compile/PR5641.xfail: Now can compile from bytecode.
Jeroen Frijters [Tue, 12 Aug 2003 20:23:22 +0000 (20:23 +0000)]
2003-08-10 Jeroen Frijters <jeroen@frijters.net>
* java/awt/Container.java
(getPreferredSize): Call preferredSize.
(preferredSize): Moved body of getPreferredSize here.
(getMinimumSize): Call minimumSize.
(minimumSize): Moved body of getMinimumSize here.
Roger Sayle [Tue, 12 Aug 2003 01:46:54 +0000 (01:46 +0000)]
simplify-rtx.c (simplify_binary_operation): Replace calls to gen_rtx_NEG and gen_rtx_NOT with calls to simplify_gen_unary...
* simplify-rtx.c (simplify_binary_operation): Replace calls to
gen_rtx_NEG and gen_rtx_NOT with calls to simplify_gen_unary,
and calls to gen_rtx_PLUS, gen_rtx_MULT, gen_rtx_LSHIFTRT,
gen_rtx_ASHIFT and gen_rtx_AND with calls to simplify_gen_binary.
Kaz Kojima [Tue, 12 Aug 2003 01:25:07 +0000 (01:25 +0000)]
lib1funcs.asm (__udivdi3): Add .type and .size information in SHmedia case too.
* config/sh/lib1funcs.asm (__udivdi3): Add .type and .size
information in SHmedia case too.
(__divdi3, __umoddi3, __moddi3, __init_trampoline, __ic_invalidate):
Likewise.
(__set_fpscr): Use an access via GOT for PIC case.
Kaveh R. Ghazi [Mon, 11 Aug 2003 21:50:06 +0000 (21:50 +0000)]
gcse.c (gmalloc): Argument is a size_t.
* gcse.c (gmalloc): Argument is a size_t. Add ATTRIBUTE_MALLOC.
(grealloc): Size argument is a size_t.
(gcalloc): New function. Use throughout in lieu of
gmalloc/memset.
Phil Edwards [Mon, 11 Aug 2003 05:26:58 +0000 (05:26 +0000)]
acinclude.m4: Properly quote variable which will be expanded inside makefiles.
2003-08-11 Phil Edwards <pme@gcc.gnu.org>
* acinclude.m4: Properly quote variable which will be expanded
inside makefiles. Use CXX instead of CC to extract compiler info.
* configure.ac (AC_INIT): Use the new 4-arg form to finally get the
correct form in PACKAGE.
* aclocal.m4, configure: Regenerate.
Nathan Sidwell [Sun, 10 Aug 2003 15:10:35 +0000 (15:10 +0000)]
cp-tree.h (TMPL_ARGS_HAVE_MULTIPLE_LEVELS): non-NULL NODE is always a TREE_VEC of non-zero size.
cp:
* cp-tree.h (TMPL_ARGS_HAVE_MULTIPLE_LEVELS): non-NULL
NODE is always a TREE_VEC of non-zero size.
(NUM_TMPL_ARGS): NODE is always a TREE_VEC.
* decl2.c (arg_assoc): Template args will be a vec.
* error.c (dump_decl) <TEMPLATE_ID_EXPR case>: Call
dump_template_argument_list.
(dump_template_parms): Args will be a vec.
* parser.c (cp_parser_template_argument_list): Produce a
vector, not a list.
* pt.c (coerce_template_parms): Args are always vectors.
(mangle_class_name_for_template): Likewise.
(lookup_template_function): Likewise.
(lookup_template_class): Likewise.
(tsubst_template_args): Likewise.
(tsubst_baselink): Use tsubst_template_args.
(tsubst_qualified_id): Likewise.
(tsubst_copy) <TEMPLATE_ID_EXPR case>: Likewise.
(tsubst_copy_and_build) <TEMPLATE_ID_EXPR case>: Likewise.
(any_dependent_template_args_p): Args are always vectors.
* tree.c (cp_tree_equal): Add TEMPLATE_ID_EXPR case.
Nathan Sidwell [Sun, 10 Aug 2003 14:54:22 +0000 (14:54 +0000)]
re PR c++/10530 (Cannot access non-dependent type within nested template)
cp:
PR c++/10530
* pt.c (dependent_type_p_r): A dependent template-id is a class
type with dependent template arguments, or a bound template
template parameter.
(type_dependent_expression_p): A template function decl cannot
have a dependent context.
testsuite:
PR c++/10530
* g++.dg/template/dependent-name2.C: New test.
Bryce McKinlay [Sun, 10 Aug 2003 02:53:17 +0000 (02:53 +0000)]
re PR libgcj/11778 (System.out PrintStream does too much buffering)
* java/io/PrintStream.java (print): Always flush if auto_flush is
set. Don't check for newline characters.
(write (int)): Implement without using a temporary array.
(write (byte[], int, int): Always flush if auto_flush is set. Don't
check for newline characters.
Fixes PR libgcj/11778.
Per Bothner [Sat, 9 Aug 2003 22:14:07 +0000 (22:14 +0000)]
cppinit.c (cpp_read_main_file): Split out source-independent initialization to separate function ...
* cppinit.c (cpp_read_main_file): Split out source-independent
initialization to separate function ...
(cpp_post_options): New function.
* cppfiles.c (cpp_stack_file): Rename public name to ...
(_cpp_stack_file): New internal function name.
* cpplib.h: Update accordingly.
* cppinit.c: (cpp_create_reader): Initialize cpp_readers line here.
(cpp_read_main_file): Don't initialize line here.
* c-opts.c (c_common_post_options): Call cpp_post_options.
(c_common_parse_file): Call cpp_read_main_file, not cpp_stack_file.
* fix-header.c (read_scan_file): Call cpp_post_options.