* except.c (expand_throw): Use TYPE_PTR_P to check for pointers.
* decl.c (check_tag_decl): Do complain about null friend decl at
file scope.
From-SVN: r23856
* toplev.c (no_new_pseudos): Define.
(rest_of_compilation): Set no_new_pseudos as needed.
* emit-rtl.c (gen_reg_rtx): Abort if we try to create a new pseudo
if no_new_pseudos is set.
* rtl.h (no_new_pseudos): Declare it.
* reload1.c (reload): Update comments.
* md.texi: Corresponding changes.
* reload1.c (reg_used_in_insn): Renamed from reg_used_by_pseudo.
(choose_reload_regs): Rename it here as well. When computing it,
also merge in used hardregs.
From-SVN: r23855
1998-11-25 Dave Love <d.love@dl.ac.uk>
* g77.f-torture/execute/u77-test.f (main): Avoid testing [f]statb
element, which fails on some systems.
* g77.f-torture/execute/labug1.f: New test.
From-SVN: r23854
* except.c (expand_throw): Use cp_finish_decl for the throw temp.
* cvt.c (build_up_reference): Pass DIRECT_BIND down into
cp_finish_decl.
* init.c (expand_default_init): Check for DIRECT_BIND instead of
DECL_ARTIFICIAL.
Fixes Sec15/1/P15140.C, g++.eh/ctor1.C.
* call.c (build_over_call): Use build_decl.
* except.c (expand_throw): Just use convert, not
build_reinterpret_cast.
Fixes Sec15/P15113.C.
From-SVN: r23845
* lex.c (handle_generic_pragma): Use token_buffer.
* decl.c (check_tag_decl): Don't complain about null friend decl.
* Make-lang.in (DEMANGLER_PROG): Move the output argumnts to the
first position.
* lex.c (check_newline): Use ISALPHA.
(readescape): Use ISGRAPH.
(yyerror): Use ISGRAPH.
* search.c (get_abstract_virtuals): Do not use initial
CLASSTYPE_ABSTRACT_VIRTUALS.
* typeck2.c (abstract_virtuals_error): Show location of abstract
declaration.
* call.c (build_new_method_call): Use
CLASSTYPE_ABSTRACT_VIRTUAL, rather than recalculate.
* class.c (finish_struct_bits): Don't bother working out whether
get_abstract_virtuals will do anything, just do it.
From-SVN: r23836
Tue Nov 24 17:06:38 1998 Per Bothner <bothner@cygnus.com>
* (generate_classfile): Always write class access flag with
ACC_SUPER set.
Tue Nov 24 16:34:33 1998 Alexandre Petit-Bianco <apbianco@cygnus.com>
* class.c (maybe_layout_super_class): New function.
(layout_class): Reorganized. Loop on class methods dispatched into
a new function. Call maybe_layout_super_class.
(layout_class_methods, layout_class_method): New functions.
* expr.c (expand_java_NEW): Call layout_class_methods on loaded
class.
(expand_invoke): Likewise.
* java-tree.h (all_class_list): New global variable declared.
(layout_class_methods, layout_class_method): New function
prototypes.
(LAYOUT_SEEN_CLASS_METHODS): New macro.
* jcf-parse.c (all_class_list): New global variable.
(load_class): Extended what class_or_name can be. Use parser
context mechanism to save globals before calling jcf_parse.
(jcf_parse_source): Don't parse twice if HAS_BEEN_ALREADY_PARSED_P
is set on the file name.
(jcf_parse): Layout class methods when Object is loaded, otherwise
record class in all_class_list for delayed method layout.
(parse_class_file): Use LAYOUT_SEEN_CLASS_METHODS.
* lang.c (put_decl_node): Decode <init> into the decl context
class name.
* lex.c (java_allocate_new_line): Use xmalloc.
* parse.h (INCOMPLETE_TYPE_P): Redefined to work with incomplete
pointers, not TREE_LIST elements.
(struct parser_ctxt): Fixed comment indentations, added comments
and reordered some fields.
(java_check_methods): Function prototype removed.
* parse.y (java_push_parser_context): Use xmalloc.
(java_parser_context_restore_global): Pop extra pushed ctxp only
when there's nothing next.
(maybe_create_class_interface_decl): Fixed comment, add new
created class decl to all_class_list.
(method_header): Use GET_REAL_TYPE on argument's types.
(method_declarator): Use GET_REAL_TYPE, change type to the real
type in TREE_LIST dependency node. Build argument list with the
real type.
(create_jdep_list): Use xmalloc. Removed allocation error message.
(obtain_incomplete_type): Fixed leading comment. Broadened
incoming argument meaning.
(register_incomplete_type): Use xmalloc. Removed allocation error
message.
(safe_layout_class): Fixed leading comment.
(jdep_resolve_class): Reversed if statement condition and switch
if and else bodies.
(resolve_and_layout): Fixed leading comment. Broadened incoming
argument meaning.
(complete_class_report_errors): New local variable name, for
clarity. purify_type_name used for all error cases.
(java_get_real_method_name): Stricter check on constructors.
(java_check_regular_methods): Reverse methods list only if not
already laid out. Layout artificial constructor.
(java_check_methods): Deleted.
(source_start_java_method): Obtain incomplete type for patchable
method arguments.
(java_layout_classes): Fixed leading comment. Use
LAYOUT_SEEN_CLASS_METHODS, use a loop to check methods. Added else
statement to layout operation, reuse LAYOUT_SEEN_CLASS_METHODS
before returning. Fixed comments.
(java_expand_classes): Check for errors up front.
(patch_method_invocation): Class to search is resolved and laid
out.
A step forward truly mixing .class and .java during package
compilation. Includes a Per's patch.
From-SVN: r23834
�
* java-tree.def (CASE_EXPR, DEFAULT_EXPR): Kind is 'x', not '1'.
* parse.y (java_complete_tree): For CASE_EXPR and DEFAULT_EXPR,
set TREE_SIDE_EFFECTS (otherwise expand_expr may skip them).
From-SVN: r23830
�
* java-tree.def (CASE_EXPR, DEFAULT_EXPR): Kind is 'x', not '1'.
* parse.y (java_complete_tree): For CASE_EXPR and DEFAULT_EXPR,
set TREE_SIDE_EFFECTS (otherwise expand_expr may skip them).
From-SVN: r23829
* class.c (add_method): Build up OVERLOADs properly for conversion ops.
* search.c (lookup_conversions): Handle getting real OVERLOADs.
(add_conversions): Likewise. Revert last change.
* call.c (add_conv_candidate): Pass totype to add_candidate instead
of fn. Don't add a new candidate if the last one was for the same
type.
(print_z_candidates): Handle getting a type as a function.
(joust): If we got two conversion candidates to the same type,
just pick one.
(build_object_call): Lose 'templates'.
(build_user_type_conversion_1): Handle getting real OVERLOADs.
Fixes g++.jason/overload7.C.
From-SVN: r23822
* typeck2.c (process_init_constructor): If there are elements
that don't have initializers and they need to have constructors
run, supply them with initializers.
Fixes Sec12/6_1/P12176.C.
* class.c (finish_struct_1): A class with a 0-width bitfield is
still empty.
Fixes Sec9/6/R09387.r0. Really this time.
From-SVN: r23819
* libgcc2.c (top_elt): Remove top_elt, it isn't thread safe.
The strategy we now use is to pre allocate the top_elt along
with the EH context so that each thread has its own top_elt.
This is necessary as the dynmanic cleanup chain is used on the
top element of the stack and each thread MUST have its own.
(eh_context_static): Likewise.
(new_eh_context): Likewise.
(__sjthrow): Likewise.
From-SVN: r23818
* pt.c (instantiate_class_template): Don't try to figure out what
specialization to use for a partial instantiation. Correct
typos in a couple of comments. Avoid calling uses_template_parms
multiple times.
From-SVN: r23808