Nathan Sidwell [Tue, 21 Sep 1999 15:00:41 +0000 (15:00 +0000)]
dyncast1.C: New test.
* g++.old-deja/g++.other/dyncast1.C: New test.
* g++.old-deja/g++.other/dyncast2.C: New test.
* g++.old-deja/g++.other/dyncast3.C: New test.
* g++.old-deja/g++.other/dyncast4.C: New test.
* g++.old-deja/g++.other/dyncast5.C: New test.
* g++.old-deja/g++.eh/catch3.C: New test.
* g++.old-deja/g++.eh/catch3p.C: New test.
* g++.old-deja/g++.eh/catch4.C: New test.
* g++.old-deja/g++.eh/catch4p.C: New test.
* g++.old-deja/g++.eh/catch5.C: New test.
* g++.old-deja/g++.eh/catch5p.C: New test.
* g++.old-deja/g++.eh/catch6.C: New test.
* g++.old-deja/g++.eh/catch6p.C: New test.
* g++.old-deja/g++.eh/catch7.C: New test.
* g++.old-deja/g++.eh/catch7p.C: New test.
* g++.old-deja/g++.eh/catch8.C: New test.
* g++.old-deja/g++.eh/catch8p.C: New test.
* g++.old-deja/g++.eh/catch9.C: New test.
* g++.old-deja/g++.eh/catch9p.C: New test.
From-SVN: r29546
Jeffrey A Law [Tue, 21 Sep 1999 14:47:23 +0000 (14:47 +0000)]
flow.c (merge_blocks_move_successor_nojumps): Delete the BARRIER at the end of the successor...
* flow.c (merge_blocks_move_successor_nojumps): Delete the
BARRIER at the end of the successor, not the BARRIER before
the successor.
From-SVN: r29545
Nathan Sidwell [Tue, 21 Sep 1999 14:40:13 +0000 (14:40 +0000)]
Reimplement dynamic cast and catch matching.
* cp-tree.h (get_dynamic_cast_base_type): Prototype new function
* search.c (dynamic_cast_base_recurse): New function.
(get_dynamic_cast_base_type): New function for dynamic cast.
* rtti.c (build_dynamic_cast_1): Determine source and target
class relationship. Call __dynamic_cast_2.
* tinfo.h (__user_type_info::upcast): New catch dispatcher.
(__user_type_info::dyncast): New dynamic cast dispatcher.
(__user_type_info::sub_kind): New nested enumeration.
(__user_type_info::contained_p): sub_kind predicate.
(__user_type_info::contained_public_p): Likewise.
(__user_type_info::contained_nonpublic_p): Likewise.
(__user_type_info::contained_nonvirtual_p: Likewise.
(__user_type_info::upcast_result): New nested struct.
(__user_type_info::dyncast_result): New nested struct.
(*::do_upcast): New catch function.
(*::do_dyncast): New dynamic cast function.
(__user_type_info::find_public_subobj): New dynamic cast
helper dispatcher.
(*::do_find_public_subobj): New dynamic cast helper function.
* tinfo.cc (__user_type_info::upcast): Define catch dispatcher.
(__user_type_info::dyncast): Define dynamic cast dispatcher.
(*::do_upcast): Define catch function.
(*::do_dyncast): Define dynamic cast function.
(*::do_find_public_subobj): Define dynamic cast helper function.
* tinfo2.cc (__throw_type_match_rtti_2): Use upcast.
(__dynamic_cast): Backwards compatibility wrapper. Use dyncast.
(__dynamic_cast_2): New dynamic cast runtime.
From-SVN: r29544
Jeffrey A Law [Tue, 21 Sep 1999 13:48:59 +0000 (13:48 +0000)]
Makefile.in (gc.o, gc_gc.o): Do not pass -fgnu-runtime to the compiler when building C code.
* Makefile.in (gc.o, gc_gc.o): Do not pass -fgnu-runtime to
the compiler when building C code.
From-SVN: r29543
Jeffrey A Law [Tue, 21 Sep 1999 12:48:36 +0000 (12:48 +0000)]
* pa.c (pa_add_gc_roots): Fix thinko in last change.
From-SVN: r29542
Richard Earnshaw [Tue, 21 Sep 1999 11:31:14 +0000 (11:31 +0000)]
stmt.c (any_pending_cleanups): Don't crash when current_function->stmt is unset.
* stmt.c (any_pending_cleanups): Don't crash when
current_function->stmt is unset.
From-SVN: r29541
Alex Samuel [Tue, 21 Sep 1999 08:53:52 +0000 (08:53 +0000)]
Add myself to the list.
From-SVN: r29540
Mark Mitchell [Tue, 21 Sep 1999 07:45:38 +0000 (07:45 +0000)]
Force check-in to ensure that it is up to date.
From-SVN: r29539
Jeff Law [Tue, 21 Sep 1999 07:45:11 +0000 (01:45 -0600)]
Daily bump.
From-SVN: r29538
Mark Mitchell [Tue, 21 Sep 1999 07:41:01 +0000 (07:41 +0000)]
cp-tree.h (finish_stmt_expr): Change prototype.
* cp-tree.h (finish_stmt_expr): Change prototype.
* expr.c (cplus_expand_expr): Adjust call accordingly.
* init.c (finish_init_stmts): Likewise.
* parse.y (primary): Likewise.
* pt.c (tsubst_copy): Likewise.
* semantics.c (finish_stmt_expr): Don't take two parameters.
Don't remove generated BLOCKs from the block-tree.
From-SVN: r29537
Alexandre Oliva [Tue, 21 Sep 1999 04:06:31 +0000 (04:06 +0000)]
cp-tree.h (finish_stmt_expr): Change prototype.
* cp-tree.h (finish_stmt_expr): Change prototype.
* expr.c (cplus_expand_expr): Adjust call accordingly.
* init.c (finish_init_stmts): Likewise.
* parse.y (primary): Likewise.
* pt.c (tsubst_copy): Likewise.
* semantics.c (finish_stmt_expr): Don't take two parameters.
Don't remove generated BLOCKs from the block-tree.
From-SVN: r29536
Alexandre Oliva [Tue, 21 Sep 1999 04:04:16 +0000 (04:04 +0000)]
emit-rtl.c (init_emit_once): Initialize const_int_rtx before other initializations that may use it for...
* emit-rtl.c (init_emit_once): Initialize const_int_rtx before
other initializations that may use it for relative offsets.
From-SVN: r29535
Alexandre Oliva [Tue, 21 Sep 1999 00:55:08 +0000 (00:55 +0000)]
sol2.h (PREFERRED_DEBUGGING_TYPE): Use stabs.
* config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Use stabs.
(ASM_SPEC): Moved from sol2dbg.h. Added work-around for gas.
* config/i386/sol2dbg.h: Removed.
* config/i386/sol2gas.h: New file, to enable gas work-around.
* configure.in: Use i386/sol2gas.h on Solaris/x86 --with-gas.
Don't use sol2dbg.h.
* configure: Rebuilt.
From-SVN: r29534
Mark Mitchell [Mon, 20 Sep 1999 21:26:06 +0000 (21:26 +0000)]
cp-tree.h (finish_stmt_expr): Change prototype.
* cp-tree.h (finish_stmt_expr): Change prototype.
* expr.c (cplus_expand_expr): Adjust call accordingly.
* init.c (finish_init_stmts): Likewise.
* parse.y (primary): Likewise.
* pt.c (tsubst_copy): Likewise.
* semantics.c (finish_stmt_expr): Don't take two parameters.
Don't remove generated BLOCKs from the block-tree.
From-SVN: r29533
Mark Mitchell [Mon, 20 Sep 1999 20:24:42 +0000 (20:24 +0000)]
* invoke.texi (-fthis-is-variable): Remove documentation.
From-SVN: r29532
Mark Mitchell [Mon, 20 Sep 1999 20:19:04 +0000 (20:19 +0000)]
Remove support for assigning to `this'.
* NEWS: Note that fact.
* class.c (build_vbase_path): Don't check flag_this_is_variable.
* cp-tree.h (EXPR_STMT_ASSIGNS_THIS): Remove.
(language_function): Remove assigns_this, just_assigned_this, and
x_base_init_expr. Add x_vcalls_possible_p. Add vtbls_set_up_p.
(base_init_expr): Remove.
(current_vcalls_possible_p): New macro.
(vtbls_set_up_p): Likewise.
(emit_base_init): Change prototype.
* decl.c (finish_destructor_body): New function, split out from
finish_function.
(current_function_assigns_this): Remove.
(current_function_just_assigned_this): Likewise.
(start_function): Don't set them.
(finish_function): Don't check them. Don't emit
base-initialization code here. Generate code for destructors when
doing semantic analysis.
(finish_stmt): Don't check current_function_just_assigned_this.
* decl2.c (lang_f_options): Remove this-is-variable.
(lang_decode_option): Likewise.
(grokclassfn): Don't check flag_this_is_variable.
* init.c (emit_base_init): Return the expression generated.
(construct_virtual_bases): Don't push/pop obstacks. Fix
typo.
(build_new_1): Don't check flag_this_is_variable.
(get_temp_regvar): Don't set DECL_REGISTER.
(build_vec_init): Don't call use_variable.
* lang-options.h: Remove "-fthis-is-variable" and
"-fno-this-is-variable".
* pt.c (tsubst_expr): Don't check EXPR_STMT_ASSIGNS_THIS.
* search.c (expand_upcast_fixups): Use finish_expr_stmt, not
expand_expr_stmt.
* semantics.c (finish_expr_stmt_real): Rename to ...
(finish_expr_stmt): This. Remove assigned_this parameter.
(begin_if_stmt): Call do_pushlevel before starting the statement.
(begin_compound_stmt): Don't declare __FUNCTION__ in scope-less
blocks.
(setup_vtbl_ptr): Emit initialization code for bases and members
at semantic-analysis time. Emit code to initialize vtables in
destructors here.
(expand_stmt): Use finish_expr_stmt, not finish_expr_stmt_real.
Don't handle CTOR_INITIALIZER any more.
* typeck.c (build_modify_expr): Don't check for assignments to
this.
(c_expand_return): Don't suggest assigning to `this'.
* Makefile.in (decl.o): Depend on RTL_H.
(decl2.o): Likewise.
(class.o): Likewise.
(call.o): Likewise.
(method.o): Likewise.
(search.o): Likewise.
(tree.o): Likewise.
(pt.o): Likewise.
* decl.c (duplicate_decls): When a builtin function is redeclared
as static, make sure it is mangled correctly.
* ir.texi (CTOR_INITIALIZER): Remove mention. Fix typo. Add
detail about the statement-tree.
From-SVN: r29531
Richard Henderson [Mon, 20 Sep 1999 20:11:36 +0000 (13:11 -0700)]
basic-block.h (compute_bb_for_insn): Declare.
* basic-block.h (compute_bb_for_insn): Declare.
* flow.c (compute_bb_for_insn): Export. Don't accept the varray
to use; set size of basic_block_for_insn directly.
(find_basic_blocks): Update.
From-SVN: r29530
Tom Tromey [Mon, 20 Sep 1999 20:09:42 +0000 (20:09 +0000)]
configure: Rebuilt.
* configure: Rebuilt.
* configure.in: Send output of `-fuse-divide-subroutine' test
compilation to /dev/null.
From-SVN: r29529
Kaveh R. Ghazi [Mon, 20 Sep 1999 19:14:48 +0000 (19:14 +0000)]
* flow.c (verify_flow_info): Fix typo, "abort;" -> "abort ();".
From-SVN: r29528
Kaveh R. Ghazi [Mon, 20 Sep 1999 18:59:09 +0000 (18:59 +0000)]
crtstuff.c (ON_EXIT): Delete empty macro definition.
* crtstuff.c (ON_EXIT): Delete empty macro definition.
(__do_global_ctors_aux): Call atexit(), not ON_EXIT().
From-SVN: r29527
Jeffrey A Law [Mon, 20 Sep 1999 17:12:03 +0000 (17:12 +0000)]
Revert this change. Gavin's patch to operand_equal_p is a better fix.
* fold-const.c (fold_range_test): Do not try to fold the range
test if the rhs or lhs has side effects.
From-SVN: r29526
Andreas Schwab [Mon, 20 Sep 1999 16:27:29 +0000 (16:27 +0000)]
Makefile.in (parse.o): Depend on $(JAVA_TREE_H).
1999-09-15 Andreas Schwab <schwab@suse.de>
* Makefile.in (parse.o): Depend on $(JAVA_TREE_H).
From-SVN: r29525
Nathan Sidwell [Mon, 20 Sep 1999 16:19:26 +0000 (16:19 +0000)]
* parse.y (primary): Use build_functional_cast for CV_QUALIFIER.
From-SVN: r29524
Jeffrey A Law [Mon, 20 Sep 1999 14:53:51 +0000 (14:53 +0000)]
basic-block.h (compute_flow_dominators): Declare.
* basic-block.h (compute_flow_dominators): Declare.
* gcse.c (alloc_code_hoist_mem): New function.
(free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise.
(compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise.
(hoist_code, one_code_hoisting_pass): Likewise.
(gcse_main): If optimizing for size, then hoist expressions
computed in multiple dominated basic blocks.
From-SVN: r29523
Nick Clifton [Mon, 20 Sep 1999 14:26:59 +0000 (14:26 +0000)]
Add comment saying that lang_decode_options should not complain about
unrecognised options.
From-SVN: r29522
Jeffrey A Law [Mon, 20 Sep 1999 13:58:33 +0000 (13:58 +0000)]
gcse.c (invalid_nonnull_info): New function.
* gcse.c (invalid_nonnull_info): New function.
(delete_null_pointer_checks): Likewise.
* rtl.h (delete_null_pointer_checks): Declare.
* toplev.c (rest_of_compilation): Call delete_null_pointer_checks.
From-SVN: r29521
Nick Clifton [Mon, 20 Sep 1999 13:48:12 +0000 (13:48 +0000)]
Pass all command line options to both language dependent and language independent
decoders.
From-SVN: r29520
Jeffrey A Law [Mon, 20 Sep 1999 12:34:26 +0000 (12:34 +0000)]
flow.c (merge_blocks_move_predecessor_nojumps): New function.
* flow.c (merge_blocks_move_predecessor_nojumps): New function.
(merge-blocks_move_successor_nojumps): Likewise.
(merge_blocks): Allow merging of some blocks, even if it requires
physical movement of the blocks, but not if it requires new jumps.
From-SVN: r29519
Jeffrey A Law [Mon, 20 Sep 1999 11:52:22 +0000 (11:52 +0000)]
bitmap.c (debug_bitmap_file): Renmaed from bitmap_debug_file.
* bitmap.c (debug_bitmap_file): Renmaed from bitmap_debug_file.
Callers and prototype changed.
* bitmap.h: Fix debug_bitmap and debug_bitmap_file prototypes.
From-SVN: r29518
Alexandre Oliva [Mon, 20 Sep 1999 10:08:10 +0000 (10:08 +0000)]
sol2.h (LINK_SPEC): Avoid the duplication of -YP when both -p and -pg are present.
* config/sparc/sol2.h (LINK_SPEC): Avoid the duplication of
-YP when both -p and -pg are present. From i386/sol2.h.
From-SVN: r29516
Bernd Schmidt [Mon, 20 Sep 1999 10:05:28 +0000 (10:05 +0000)]
Make it possible to prototype port-specific functions (and convert i386 to use this)
From-SVN: r29515
Bernd Schmidt [Mon, 20 Sep 1999 10:00:03 +0000 (10:00 +0000)]
Make it possible to prototype port-specific functions (and convert i386 to use this)
From-SVN: r29514
Jeff Law [Mon, 20 Sep 1999 07:45:08 +0000 (01:45 -0600)]
Daily bump.
From-SVN: r29513
Richard Henderson [Sun, 19 Sep 1999 21:19:38 +0000 (14:19 -0700)]
* c-pragma.c (mark_align_stack): Dereference the void* properly.
From-SVN: r29512
Richard Henderson [Sun, 19 Sep 1999 21:10:58 +0000 (14:10 -0700)]
Forgot to commit last time.
From-SVN: r29511
Mark Mitchell [Sun, 19 Sep 1999 17:00:01 +0000 (17:00 +0000)]
Fix typo in last change
From-SVN: r29510
Mark Mitchell [Sun, 19 Sep 1999 16:04:01 +0000 (16:04 +0000)]
rtl.h (insns_safe_to_move_p): New function.
* rtl.h (insns_safe_to_move_p): New function.
* loop.c (find_and_verify_loops): Use it.
* rtlanal.c (insns_safe_to_move_p): Define it.
From-SVN: r29509
Mark Mitchell [Sun, 19 Sep 1999 15:50:40 +0000 (15:50 +0000)]
* ir.texi: New file.
From-SVN: r29508
Richard Henderson [Sun, 19 Sep 1999 09:56:11 +0000 (02:56 -0700)]
c-pragma.c: Include ggc.h.
* c-pragma.c: Include ggc.h.
* Makefile.in (c-pragma.o): Update.
From-SVN: r29507
Jeff Law [Sun, 19 Sep 1999 07:45:10 +0000 (01:45 -0600)]
Daily bump.
From-SVN: r29506
Mark Mitchell [Sun, 19 Sep 1999 00:33:09 +0000 (00:33 +0000)]
gxxint.texi: G++ now implements namespaces.
* gxxint.texi: G++ now implements namespaces.
* decl.c (pop_label): Don't warn about unused labels more than
once.
* semantics.c (finish_goto_stmt): Always marked used labels as
used.
From-SVN: r29505
Mark Mitchell [Sat, 18 Sep 1999 23:56:18 +0000 (23:56 +0000)]
decl.c (layout_var_decl): Change prototype.
* decl.c (layout_var_decl): Change prototype. Call layout_decl
even when the declaration is external.
(cp_finish_decl): Adjust call to layout_var_decl.
* pt.c (tsubst_expr): Make sure to initialize stmt before using it.
From-SVN: r29504
Alexandre Oliva [Sat, 18 Sep 1999 19:09:32 +0000 (19:09 +0000)]
sol2.h (CPP_SPEC): Support -[p]threads
* config/i386/sol2.h (CPP_SPEC): Support -[p]threads
(LIB_SPEC): Likewise.
(LINK_SPEC): Do not assert -z text with -shared -mimpure-text.
Reindent -YP/-p/-pg.
Copied from config/sparc/sol2.h.
From-SVN: r29503
Richard Henderson [Sat, 18 Sep 1999 18:54:36 +0000 (11:54 -0700)]
c-pragma.c (mark_align_stack): New.
* c-pragma.c (mark_align_stack): New.
(init_pragma): New.
* c-pragma.h (init_pragma): Declare it.
* c-lex.c (init_parse): Call it.
From-SVN: r29502
Alexandre Oliva [Sat, 18 Sep 1999 18:25:50 +0000 (18:25 +0000)]
configure.in: Pick up thread library on Solaris/x86 just like on Solaris/sparc.
* configure.in: Pick up thread library on Solaris/x86 just
like on Solaris/sparc.
* configure: Rebuilt.
From-SVN: r29501
Alex Samuel [Sat, 18 Sep 1999 18:16:44 +0000 (18:16 +0000)]
rtl.h (global_rtx_index): New enum.
* rtl.h (global_rtx_index): New enum.
(global_rtl): Change to array of rtx.
(pc_rtx, cc0_rtx): Redefine accordingly.
(cc0_rtx, stack_pointer_rtx, frame_pointer_rtx): Likewise.
(hard_frame_pointer_rtx, arg_pointer_rtx): Likewise.
(virtual_incoming_args_rtx, virtual_stack_vars_rtx): Likewise.
(virtual_outgoing_args_rtx, virtual_cfa): Likewise.
(const_int_rtx): Change to array of rtx.
(const0_rtx, const1_rtx, const2_rtx, constm1_rtx): Redefine
accordingly.
* emit-rtl.c (global_rtl): Change to array of rtx.
(const_int_rtx): Change to aray of rtx.
(gen_rtx_CONST_INT): Redefine accordingly.
(init_emit_once): Allocate and initialize global_rtl. Likewise
for const_int_rtx. Add both as GC roots.
* genattrtab.c (global_rtl): Update declaration.
From-SVN: r29500
Alexandre Oliva [Sat, 18 Sep 1999 18:06:20 +0000 (18:06 +0000)]
* overload1.C: New test.
From-SVN: r29499
Ulrich Drepper [Sat, 18 Sep 1999 18:06:11 +0000 (18:06 +0000)]
Update.
From-SVN: r29498
Ulrich Drepper [Sat, 18 Sep 1999 18:05:59 +0000 (18:05 +0000)]
(USER_H): Add iso646.h back.
From-SVN: r29497
Jeffrey A Law [Sat, 18 Sep 1999 12:06:24 +0000 (12:06 +0000)]
haifa-sched.c (sched_analyze): Use free_INSN_LIST_list instead of zapping the LOG_LINKS of sched_before_next_call.
* haifa-sched.c (sched_analyze): Use free_INSN_LIST_list instead of
zapping the LOG_LINKS of sched_before_next_call.
From-SVN: r29496
Alexandre Oliva [Sat, 18 Sep 1999 11:23:55 +0000 (11:23 +0000)]
* inline1.C: New test.
From-SVN: r29495
Martin v. Löwis [Sat, 18 Sep 1999 10:46:07 +0000 (10:46 +0000)]
typeck.c (get_member_function_from_ptrfunc): Always consider virtuality inside member pointer.
* typeck.c (get_member_function_from_ptrfunc): Always consider
virtuality inside member pointer.
From-SVN: r29494
Martin v. Löwis [Sat, 18 Sep 1999 10:45:56 +0000 (10:45 +0000)]
New test case.
From-SVN: r29493
Jeff Law [Sat, 18 Sep 1999 07:46:13 +0000 (01:46 -0600)]
Daily bump.
From-SVN: r29492
Jeffrey A Law [Sat, 18 Sep 1999 07:13:31 +0000 (07:13 +0000)]
pa.h (INSN_SETS_ARE_DELAYED): Delete.
* pa.h (INSN_SETS_ARE_DELAYED): Delete.
* pa.c (insn_refs_are_delayed): Renamed from
insn_sets_and_refs_are_delayed.
From-SVN: r29491
Mark Mitchell [Sat, 18 Sep 1999 01:23:20 +0000 (01:23 +0000)]
Turn on function-at-a-time processing.
* cp-tree.h (doing_semantic_analysis_p): New macro.
(SF_DEFAULT): Define to zero, not SF_EXPAND.
(start_handler_parms): Change prototype.
(expand_start_catch_block): Likewise.
(expand_end_catch_block): Likewise.
(expand_start_eh_spec): Likewise.
(expand_end_eh_spec): Declare.
(finish_handler_parms): Change prototype.
(begin_catch_block): Declare.
(finish_handler): Change prototype.
(do_pushlevel): Declare.
(do_poplevel): Likewise.
* decl.c (pushlevel): Don't create
binding levels when not doing semantic analysis.
(poplevel): Don't pop them.
(pushdecl): Assert that we are never called when not doing
semantic analysis.
(pushdecl_top_level): Use push_to_top_level.
(make_label_decl): Don't fiddle with obstacks. Make RTL For the
label when expanding.
(cp_finish_decl): Only inject for-scope variables when doing
semantic analysis. Add comments.
(start_handler_parms): Return the handler parm.
(start_function): Reorganize. Don't clear DECL_INITIAL if it is
already set. Reinitialize from saved function data if available.
Don't pushlevel when not doing semantic analysis.
(store_parm_decls): Only generate RTL when expanding. Only
pushdecl when doing semantic analysis. Set
current_eh_spec_try_block if appropriate.
(finish_function): Simplify. Use do_pushlevel and do_poplevel.
Combine common code. Don't poplevel when not doing semantic
analysis.
(push_cp_function_context): Don't expand functions without an
explicit call to expand_body.
(mark_lang_function): Make eh_spec_try_block and
x_scope_stmt_stack.
* except.c (expand_end_eh_spec): Don't
declare.
(process_start_catch_block): Likewise.
(push_eh_cleanup): Use finish_decl_cleanup.
(initialize_handler_parm): New function.
(expand_start_catch_block): Use it.
(expand_end_catch_block): Use tree-generation functions, not
RTL-generation functions.
(expand_start_eh_spec): Likewise.
(expand_end_eh_spec): Likewise.
(expand_exception_blocks): Simplify.
(start_anon_func): Use do_pushlevel.
(end_anon_func): Use do_poplvel. Call expand_body for the
function.
* expr.c (do_case): Don't call define_case_label.
* init.c (create_temporary_var): Set DECL_CONTEXT for local
variables.
* method.c (emit_thunk): Call expand_body for the
thunk.
(sythesize_method): Likewise.
* parse.y (handler_args): Give it ttype.
(eat_saved_input): Call expand_body.
(base_init): Use do_pushlevel.
(pending_inline): Call expand_body.
(handler): Adjust calls to finish_handler_parms and
finish_handler.
(handler_args): Don't call expand_start_catch_block. Return the
catch parameter. * pt.c (tsubst_expr): Adjust HANDLER handling.
* parse.c: Regenerated.
* rtti.c (synthesize_tinfo_fn): Call finish_function.
* semantics.c (do_pushlevel): Give it external linkage. Build
SCOPE_STMTs.
(do_poplevel): Likewise.
(finish_case_label): Call define_case_label when doing semantic
analysis.
(finish_goto_stmt): Create RTL for labels.
(finish_function_try_block): Set in_function_try_handler
unconditionally.
(finish_function_handler_sequence): Unset it.
(finish_handler_parms): Use expand_start_catch_block even when
building a statement-tree.
(begin_catch_block): New function.
(finish_handler): Move a little RTL-generation logic here.
(finish_decl_cleanup): Allow cleanups for empty declarations.
(finish_named_return_value): Don't pushdecl when not doing
semantic analysis.
(expand_stmt): Don't do semantic analysis for variable
declarations. Handle START_CATCH_STMT. Call expand_label
directly for a LABEL_STMT. Tweak handling of GOTO_STMT. Adjust
HANDLERs. Handle SCOPE_STMT, CTOR_INITIALIZER, and RETURN_INIT.
(expand_body): Let expand_stmt handle CTOR_INITIALIZER,
RETURN_INIT and function try blocks.
From-SVN: r29490
Mark Mitchell [Fri, 17 Sep 1999 23:45:52 +0000 (23:45 +0000)]
cp-tree.h (language_function): Add x_eh_spec_try_block.
* cp-tree.h (language_function): Add x_eh_spec_try_block. Add
x_scope_stmt_stack. Add x_in_charge_parm.
(current_eh_spec_try_block): New macro.
(current_scope_stmt_stack): Likewise.
(current_in_charge_parm): Likewise.
* decl.c (start_function): Initialize current_in_charge_parm.
(finish_function): Use current_in_charge_parm rather than looking
up __in_chrg.
* search.c (expand_indirect_vtbls_init): Likewise.
From-SVN: r29489
Mark Mitchell [Fri, 17 Sep 1999 23:14:49 +0000 (23:14 +0000)]
cp-tree.def (CLEANUP_STMT): Fix spelling in dumps.
* cp-tree.def (CLEANUP_STMT): Fix spelling in dumps.
(TRY_BLOCK): Likewise.
(HANDLER): Likewise.
(START_CATCH_STMT): New tree node.
(SCOPE_STMT): Likewise.
* cp-tree.h (SCOPE_BEGIN_P): New macro.
(SCOPE_NULLIFIED_P): Likewise.
(struct lang_decl_flags): Add pending_inline_p. Adjust dummy.
(struct lang_decl): Add saved_language_function.
(DECL_PENDING_INLINE_INFO): Adjust documentation.
(DECL_PENDING_INLINE_P): New macro.
(TYPE_TI_ARGS): Fix typo in comment.
(DECL_SAVED_TREE): Add to documentation.
(DECL_SAVED_FUNCTION_DATA): New macro.
(START_CATCH_TYPE): Likewise.
(SCOPE_END_P): New macro.
(declare_parm_level): Don't declare.
* decl.c (mark_lang_function): New function, split out from
mark_cp_function_context.
(save_function_data): New function.
(declare_parm_level): Remove.
(finish_function): Use save_function_data to squirrel away
important stuff for later use.
(mark_cp_function_context): Use mark_function_data.
(lang_mark_tree): Likewise.
* lex.c (begin_definition_of_inclass_inline): Set
DECL_PENDING_INLINE_P.
(store_pending_inline): Clear it.
* pt.c (tsubst_decl): Likewise.
From-SVN: r29488
Mark Mitchell [Fri, 17 Sep 1999 22:18:59 +0000 (22:18 +0000)]
functiion.h (struct function): Add x_whole_function_mode_p.
* functiion.h (struct function): Add x_whole_function_mode_p.
(retrofit_block): Declare.
* function.c (retrofit_block): New function.
(identify_blocks): Add assertions. Allow an incomplete set of
block notes if we're still generating code for the function.
* integrate.c: Include loop.h.
(expand_inline_function): Call find_loop_tree_blocks to map block
notes to blocks when in whole-function mode. Use retrofit_block
to insert new BLOCKs for the inlined function, rather than
insert_block.
* stmt.c (expand_fixup): Likewise. Don't use pushlevel/polevel.
* Makefile.in (integrate.o): Depend on loop.h.
From-SVN: r29487
Mark Mitchell [Fri, 17 Sep 1999 22:13:07 +0000 (22:13 +0000)]
tree.h (warn_about_unused_variables): Declare.
* tree.h (warn_about_unused_variables): Declare.
* stmt.c (warn_about_unused_variables): New function, split out
from ...
(expand_end_bindings): Here.
From-SVN: r29486
Mark Mitchell [Fri, 17 Sep 1999 22:04:28 +0000 (22:04 +0000)]
stmt.c (preserve_subexpressions_p): Don't crash when current_function->stmt is unset.
* stmt.c (preserve_subexpressions_p): Don't crash when
current_function->stmt is unset.
From-SVN: r29485
Mark Mitchell [Fri, 17 Sep 1999 22:01:23 +0000 (22:01 +0000)]
stmt.c (expand_start_bindings): Allow callers to pass a flag indicating that no NOTE_INSN_BLOCK_BEG note is...
* stmt.c (expand_start_bindings): Allow callers to pass a flag
indicating that no NOTE_INSN_BLOCK_BEG note is required.
(expand_start_target_temps): Use it.
* except.c (expand_eh_region_start_for_decl): Likewise.
* expr.c (expand_expr): Likewise.
From-SVN: r29484
Gavin Romig-Koch [Fri, 17 Sep 1999 19:06:50 +0000 (19:06 +0000)]
* fold-const.c (operand_equal_p): Pay attention to side effects.
From-SVN: r29483
Jason Merrill [Fri, 17 Sep 1999 18:54:29 +0000 (14:54 -0400)]
typo
From-SVN: r29482
Jason Merrill [Fri, 17 Sep 1999 18:37:48 +0000 (18:37 +0000)]
libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT.
* libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT.
* sparc/sunos4.h (HAVE_ON_EXIT): Remove.
From-SVN: r29481
Jason Merrill [Fri, 17 Sep 1999 18:35:51 +0000 (14:35 -0400)]
new
From-SVN: r29480
Jason Merrill [Fri, 17 Sep 1999 18:35:31 +0000 (18:35 +0000)]
tlink.c (scan_linker_output): Look for keywords before accepting a mangled name in quotes.
* tlink.c (scan_linker_output): Look for keywords before accepting
a mangled name in quotes.
From-SVN: r29479
Nathan Sidwell [Fri, 17 Sep 1999 18:25:54 +0000 (18:25 +0000)]
Revert call.c 1.173 change, do same effect, but more obviously.
* call.c (perform_implicit_conversion): Deal with error_mark_node.
From-SVN: r29478
Mark Mitchell [Fri, 17 Sep 1999 18:15:21 +0000 (18:15 +0000)]
decl.c (warn_extern_redeclared_static): Don't get confused by static member functions.
* decl.c (warn_extern_redeclared_static): Don't get confused by
static member functions.
(duplicate_decls): Merge DECL_THIS_STATIC.
* decl.c (expand_static_init): Make sure assignments to local
statics actually occur.
From-SVN: r29477
Gabriel Dos Reis [Fri, 17 Sep 1999 15:19:20 +0000 (15:19 +0000)]
1999-09017 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
* std/valarray_array.h (__valarray_copy): Fix typo.
From-SVN: r29476
Nathan Sidwell [Fri, 17 Sep 1999 10:59:07 +0000 (10:59 +0000)]
* call.c (perform_implicit_conversion): Deal with error_mark_node.
From-SVN: r29475
Gabriel Dos Reis [Fri, 17 Sep 1999 09:08:26 +0000 (11:08 +0200)]
complext.cc (pow): Don't expect floating point promotion in presence of template argument deduction.
1999-09-17 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
* std/complext.cc (pow): Don't expect floating point promotion
in presence of template argument deduction. There is no such
thing.
From-SVN: r29474
Jeff Law [Fri, 17 Sep 1999 07:45:09 +0000 (01:45 -0600)]
Daily bump.
From-SVN: r29473
Mark Mitchell [Fri, 17 Sep 1999 07:35:07 +0000 (07:35 +0000)]
cp-tree.h (poplevel_class): Declare.
* cp-tree.h (poplevel_class): Declare.
* class.c (popclass): Use poplevel_class, not poplevel.
* decl.c (poplevel_class): Don't make it static. Don't return a
value.
(poplevel): Don't call poplevel_class; abort in a class
binding level is seen.
* semantics.c (finish_translation_unit): Use pop_everything.
* parse.y (member_init): Allow errors.
(pending_inline): Call finish_function.
* parse.c: Regenerated.
* Makefile.in (CONFLICTS): Adjust.
From-SVN: r29472
Jason Merrill [Fri, 17 Sep 1999 06:30:59 +0000 (02:30 -0400)]
revert
From-SVN: r29471
Gabriel Dos Reis [Fri, 17 Sep 1999 03:07:00 +0000 (03:07 +0000)]
Add missing Changelog entry.
From-SVN: r29470
Gabriel Dos Reis [Fri, 17 Sep 1999 01:49:29 +0000 (01:49 +0000)]
error.c: Reduce code duplication.
1999-09-17 Gabriel Dos Reis <gdr@codesourcery.com>
* error.c: Reduce code duplication.
(dump_template_value): New function.
(dump_type_real): Use it.
(dump_decl): Likewise.
(dump_function_name): Likewise.
(dump_function_decl): Don't be too talkative about function return
type variety.
From-SVN: r29469
Jason Merrill [Fri, 17 Sep 1999 01:44:05 +0000 (01:44 +0000)]
decl.c (saved_scope_p): New fn.
* decl.c (saved_scope_p): New fn.
* class.c (pushclass): Don't clear class_cache_obstack if we have
saved scopes.
From-SVN: r29468
Richard Henderson [Thu, 16 Sep 1999 23:48:09 +0000 (16:48 -0700)]
alpha-interix.h (DWARF2_UNWIND_INFO): Define to zero.
* alpha/alpha-interix.h (DWARF2_UNWIND_INFO): Define to zero.
* alpha/osf2or3.h (DWARF2_UNWIND_INFO): Likewise.
From-SVN: r29467
Richard Henderson [Thu, 16 Sep 1999 23:38:51 +0000 (16:38 -0700)]
alpha.md: Revert Thu Nov 26 change that came in through the last gcc2 merge...
* alpha.md: Revert Thu Nov 26 change that came in through the
last gcc2 merge: reinstate (plus (plus ...)) reload patterns.
Avoid earlyclobber when possible.
From-SVN: r29466
Kaveh R. Ghazi [Thu, 16 Sep 1999 22:51:47 +0000 (22:51 +0000)]
libgcc2.c (__do_global_ctors): Call atexit with one arg.
* libgcc2.c (__do_global_ctors): Call atexit with one arg.
* sparc/sunos4.h (on_exit): Wrap prototype parameters in PARAMS().
Define HAVE_ON_EXIT.
From-SVN: r29465
Kaveh R. Ghazi [Thu, 16 Sep 1999 22:33:10 +0000 (22:33 +0000)]
lex.c (init_cpp_parse): Call xcalloc, not malloc/bzero.
* lex.c (init_cpp_parse): Call xcalloc, not malloc/bzero.
* xref.c (SALLOC): Call xstrdup, not xmalloc/strcpy.
From-SVN: r29464
Kaveh R. Ghazi [Thu, 16 Sep 1999 22:20:44 +0000 (22:20 +0000)]
system.h (CTYPE_CONV, [...]): New macros.
* system.h (CTYPE_CONV, TOUPPER, TOLOWER): New macros. Use
CTYPE_CONV in all ctype macros.
* cccp.c (initialize_char_syntax): Use uppercase ctype macro
from system.h.
* cexp.y (initialize_random_junk): Likewise.
* c4x.c (c4x_interrupt_function_p, c4x_handle_pragma): Likewise.
* i370.c (handle_pragma): Likewise.
* i370.h (ASM_OUTPUT_LABELREF, ASM_OUTPUT_ASCII): Likewise.
* v850.c (override_options): Likewise.
* doprint.c (_doprnt): Likewise.
* fixinc/fixincl.c (main, quoted_file_exists, extract_quoted_files):
Likewise.
* fixinc/server.c (load_data): Likewise.
* fold-const.c (real_hex_to_f): Likewise.
* genattr.c (write_upcase, gen_attr): Likewise.
* genattrtab.c (convert_const_symbol_ref, evaluate_eq_attr,
write_upcase): Likewise.
* genemit.c (print_code): Likewise.
* genopinit.c (gen_insn): Likewise.
* genpeep.c (print_code): Likewise.
* genrecog.c (print_code): Likewise.
* optabs.c (init_libfuncs): Likewise.
ch:
* lex.c (maybe_downcase, getlc, handle_generic_pragma,
check_newline): Likewise.
f:
* bad.c (ffebad_finish): Likewise.
* fini.c (main): Likewise.
* intrin.c (ffeintrin_init_0): Likewise.
* lex.c (ffelex_hash_): Likewise.
* src.c (ffesrc_init_1): Likewise.
From-SVN: r29463
Mark Mitchell [Thu, 16 Sep 1999 21:00:21 +0000 (21:00 +0000)]
haifa-sched.c (sched_analyze): Keep the list of notes organized in pairs.
* haifa-sched.c (sched_analyze): Keep the list of notes organized
in pairs.
(reemit_notes): Likewise.
From-SVN: r29462
Alex Samuel [Thu, 16 Sep 1999 19:27:01 +0000 (12:27 -0700)]
ggc.h (ggc_root): Move to ggc-common.c.
Thu Sep 16 11:50:52 1999 Alex Samuel <samuel@codesourcery.com>
* ggc.h (ggc_root): Move to ggc-common.c.
(roots): Remove.
(ggc_mark_rtx, ggc_mark_tree): Change to macro.
(ggc_mark_rtvec, ggc_mark_tree_varray): Declare extern.
(ggc_mark_tree_hash_table, ggc_mark_string, ggc_mark): Likewise.
(ggc_mark_roots, ggc_mark_rtx_children, ggc_mark_tree_children): New.
* ggc-common.c (ggc_root): Move from ggc.h.
(roots): Declare, static.
(ggc_mark_rtx, ggc_mark_tree): Renamed to...
(ggc_mark_rtx_children, ggc_mark_tree_children): Don't check for
null or check/set mark bit.
(ggc_mark_roots): New.
* ggc-simple.c (ggc_collect): Call ggc_mark_roots.
From-SVN: r29461
Mark Mitchell [Thu, 16 Sep 1999 18:54:23 +0000 (18:54 +0000)]
Add missing ChangeLog entry
From-SVN: r29460
Richard Henderson [Thu, 16 Sep 1999 18:38:52 +0000 (11:38 -0700)]
m32r.c: Include toplev.h.
* m32r.c: Include toplev.h.
(*): Add ATTRIBUTE_UNUSED as needed to arguments.
(gen_compare): Rename swap_p to must_swap to match uses.
Add default abort case.
(m32r_output_function_epilogue): Remove unused variables.
(m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
* m32r.h (PROTO, STDIO_PROTO): Rename XPROTO; unconditionally
define to empty parameter list. Update all uses.
(predicate decls): Use enum machine_mode not int.
* m32r.md (movsi): Call abort, not fatal_insn.
(zero_branch_insn, rev_zero_branch_insn): Add default abort case.
From-SVN: r29459
Jason Merrill [Thu, 16 Sep 1999 17:48:20 +0000 (17:48 +0000)]
decl2.c (finish_file): Also call check_global_declarations for the pending_statics list.
* decl2.c (finish_file): Also call check_global_declarations for
the pending_statics list.
From-SVN: r29458
Kaveh R. Ghazi [Thu, 16 Sep 1999 15:45:15 +0000 (15:45 +0000)]
gjavah.c (get_field_name, [...]): Use xmalloc, not malloc.
* gjavah.c (get_field_name, print_method_info, print_include,
add_namelet): Use xmalloc, not malloc.
* jcf-depend.c (add_entry): Likewise. Use xstrdup, not strdup.
(munge): Use xrealloc, not realloc, trust xrealloc to handle a
NULL pointer.
* jcf-io.c (open_in_zip, find_class): Use xstrdup, not strdup.
* jcf-parse.c (jcf_out_of_synch, yyparse): Likewise.
* jcf-path.c (add_entry): Likewise.
* jcf.h (ALLOC, REALLOC): Use xmalloc/xrealloc, not malloc/realloc.
* jv-scan.c (xmalloc): Remove definition.
* jvgenmain.c (xmalloc): Likewise.
* jvspec.c (lang_specific_driver): Use xcalloc, not xmalloc/bzero.
* lex.c (java_store_unicode): Use xrealloc, not realloc.
* parse-scan.y: Use concat, not of xmalloc/assign/strcpy. Use
concat, not xmalloc/sprintf.
(java_push_parser_context): Use xcalloc, not xmalloc/bzero.
(xstrdup): Remove definition.
* parse.y (duplicate_declaration_error_p,
constructor_circularity_msg, verify_constructor_circularity,
check_abstract_method_definitions, java_check_regular_methods,
java_check_abstract_methods, patch_method_invocation,
check_for_static_method_reference, patch_assignment, patch_binop,
patch_cast, array_constructor_check_entry, patch_return,
patch_conditional_expr): Use xstrdup, not strdup.
* zextract.c (ALLOC): Use xmalloc, not malloc.
From-SVN: r29457
Andrew Haley [Thu, 16 Sep 1999 12:06:56 +0000 (12:06 +0000)]
mips.md (movsi_usw): if operand 1 is const_int 0, use $0 instead of 0.
1999-09-14 Andrew Haley <aph@cygnus.com>
* config/mips/mips.md (movsi_usw): if operand 1 is const_int 0,
use $0 instead of 0.
From-SVN: r29456
Bernd Schmidt [Thu, 16 Sep 1999 09:55:48 +0000 (09:55 +0000)]
Bugfix in order_regs_for_reload
From-SVN: r29455
Jeff Law [Thu, 16 Sep 1999 07:45:10 +0000 (01:45 -0600)]
Daily bump.
From-SVN: r29454
Mark Mitchell [Thu, 16 Sep 1999 04:39:52 +0000 (04:39 +0000)]
function.c (identify_blocks): Don't shadow a variable in an outer scope.
* function.c (identify_blocks): Don't shadow a variable in an
outer scope.
* integrate.c (integrate_decl_tree): Don't use pushlevel,
pushdecl, or poplevel to build up the new BLOCK tree.
(expand_inline_function): Likewise.
(integrate_parm_decls): Likewise.
From-SVN: r29453
Mark Mitchell [Thu, 16 Sep 1999 04:16:32 +0000 (04:16 +0000)]
* c-typeck.c (qualify_type): Merge qualifiers from both types.
From-SVN: r29451
Mark Mitchell [Thu, 16 Sep 1999 01:20:45 +0000 (01:20 +0000)]
decl.c (warn_extern_redeclared_static): Simplify.
* decl.c (warn_extern_redeclared_static): Simplify. Catch
problems with extern "C" functions redeclared as static.
(duplicate_decls): When a builtin is redeclared static, make the
new function have internal linkage.
From-SVN: r29450
Brad Lucier [Thu, 16 Sep 1999 01:17:50 +0000 (01:17 +0000)]
toplev.c: Allow -f[no-]math-errno to set (clear) flag_errno_math
* toplev.c: Allow -f[no-]math-errno to set (clear) flag_errno_math
* invoke.texi: Document this change.
From-SVN: r29449
Richard Henderson [Thu, 16 Sep 1999 01:12:25 +0000 (18:12 -0700)]
emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT.
* emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT.
Free the struct.
(mark_emit_status): Renamed from mark_emit_state.
* except.c (mark_eh_status): Renamed from mark_eh_state.
Check not null before marking.
(free_eh_status): New.
* expr.c (mark_expr_status, free_expr_status): New.
* function.c (free_machine_status): New.
(free_after_parsing): New.
(free_after_compilation): Move bits to free_after_parsing; call
free_eh_status, free_expr_status; zero the marked members of the
function state.
(prepare_function_start): No can_garbage_collect.
Call init_eh_for_function.
(expand_dummy_function_end): Free up current_function state.
(mark_function_status): Renamed from mark_function_state.
(mark_function_chain): No can_garbage_collect. Call mark_expr_status.
* function.h (struct function): No can_garbage_collect.
(free_machine_status, free_after_parsing): Declare.
(free_eh_status, free_expr_status): Declare.
* ggc.h (mark_expr_status): Declare.
* stmt.c (free_stmt_status): Free the struct.
(mark_stmt_status): Renamed from mark_stmt_state.
(init_stmt): Don't call init_eh.
(init_stmt_for_function): Don't call init_eh_for_function.
* toplev.c (compile_file): Call init_eh.
(rest_of_compilation): Free basic block info before ggc_collect.
Call free_after_parsing; conditionally call free_after_compilation.
* varasm.c (mark_varasm_status): Renamed from mark_varasm_state.
Check not null before marking.
From-SVN: r29448
Richard Henderson [Thu, 16 Sep 1999 00:54:31 +0000 (17:54 -0700)]
* c-lex.c (yylex): Initialize warn.
From-SVN: r29447
Jeffrey A Law [Thu, 16 Sep 1999 00:38:00 +0000 (00:38 +0000)]
pa.c (emit_move_sequence): Properly set the mode of the scratch register when...
* pa.c (emit_move_sequence): Properly set the mode of the scratch
register when performing secondary reloads for the SAR register.
From-SVN: r29446
Mark Mitchell [Thu, 16 Sep 1999 00:23:25 +0000 (00:23 +0000)]
* tree.h (reorder_block): Change prototype.
From-SVN: r29445