summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge changes from merged-arm-thumb-backend-branch onto trunk.rearnsha2000-04-0838-8914/+8447
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33028 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.law2000-04-085-5/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33023 138bc75d-0d04-0410-961f-82ee72b054a4
* * cpp-nullchar.c: Remove test as embedded nullsneil2000-04-081-30/+0
| | | | | | | cause problems. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33022 138bc75d-0d04-0410-961f-82ee72b054a4
* * basic-block.h (conflict_graph_enum_fn): K&R fix.ghazi2000-04-082-1/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33021 138bc75d-0d04-0410-961f-82ee72b054a4
* Correct merge conflictneil2000-04-081-0/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33020 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree.c (tree_expr_nonnegative_p): New function.ghazi2000-04-086-13/+46
| | | | | | | | | | | | | | | * tree.h (tree_expr_nonnegative_p): Declare. * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to elide some sign_compare warnings. (build_conditional_expr): Likewise. cp: * typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to elide some sign_compare warnings. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33019 138bc75d-0d04-0410-961f-82ee72b054a4
* * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo.wehle2000-04-083-8/+57
| | | | | | | | | * i386.md (floathisf2, floathidf2, floathixf2): New patterns. * i386.c (print_operand): Use the proper suffix for a 387 HImode operand. Abort if a 387 operand has an unsupported size. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33018 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc.dg/compare2.c: New test.ghazi2000-04-082-0/+62
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33016 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc.dg/cpp-nullchar.c: New test.neil2000-04-081-0/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33015 138bc75d-0d04-0410-961f-82ee72b054a4
* * cpp-nullchar.c: New test.neil2000-04-081-0/+30
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33014 138bc75d-0d04-0410-961f-82ee72b054a4
* * cppexp.c (parse_charconst): Null does not end characterneil2000-04-085-18/+107
| | | | | | | | | | | | | | constants. * cppinit.c (ISTABLE): Null character handled as whitespace. * cpplex.c (null_warning): new function. (skip_string): Emit warning if nulls encountered. (_cpp_skip_hspace): Emit warning if nulls encountered. (_cpp_lex_token): Emit warning if nulls encountered. Drop them. * cpp.texi: Update. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33013 138bc75d-0d04-0410-961f-82ee72b054a4
* * flow.c (loop_depth): Remove.rth2000-04-072-517/+618
| | | | | | | | | | | | | | | | | | | | | | | | | | | (reg_next_use, cc0_live, mem_set_list): Replace with ... (struct propagate_block_info): New. (life_analysis): Don't allocate reg_next_use. (propagate_block_delete_insn): Break out of propagate_block. Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED. (propagate_block_delete_libcall): Likewise. (propagate_block): Create a propagate_block_info struct to pass to subroutines. Allocate one not two temporary regsets. Don't clobber memory for const calls. Look for clobbers in CALL_INSN_FUNCTION_USAGE. (mark_set_regs): Recognize COND_EXEC. (mark_set_reg): Break out of mark_set_1. (mark_used_reg): Break out of mark_used_regs. (mark_used_regs): Recognize COND_EXEC. (insn_dead_p): Use propagate_block_info struct. (libcall_dead_p, invalidate_mems_from_autoinc): Likewise. (find_auto_inc, try_pre_increment_1): Likewise. (print_rtl_with_bb): Dump regs live at end too. (count_reg_sets_1): Pass in loop_depth. (count_reg_sets, count_reg_references): Likewise. (recompute_reg_usage): Provide it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33012 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix filename for block_lump_real_i4 patch.amylaar2000-04-071-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33011 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix comment.amylaar2000-04-071-4/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33010 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H)rth2000-04-072-2/+7
| | | | | | | not the raw files. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33009 138bc75d-0d04-0410-961f-82ee72b054a4
* * cpplib.c (do_elif): Skip the rest of the line if we'rezack2000-04-077-11/+67
| | | | | | | | | | | | not going to bother evaluating it. (skip_if_group): Clear pfile->only_seen_white. Reorder loop to avoid pointless calls to the lexer. * gcc.dg/cpp-mi2.c: New test. * gcc.dg/cpp-mi2[abc].h: New files. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33008 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix nit.wilson2000-04-072-2/+4
| | | | | | | * config/ia64/ia64.c: Delete stdio.h and ctype.h includes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33007 138bc75d-0d04-0410-961f-82ee72b054a4
* * calls.c (expand_call): emit_queue if we're trying a sibcall.jason2000-04-072-0/+8
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33006 138bc75d-0d04-0410-961f-82ee72b054a4
* * g++.old-deja/g++.abi/vmihint.C: Adjust __vmi_class_type_infonathan2000-04-072-1/+6
| | | | | | | member name. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33005 138bc75d-0d04-0410-961f-82ee72b054a4
* Rename abi::__vmi_class_type_info members.nathan2000-04-073-27/+40
| | | | | | | | | | | | | | | * inc/cxxabi.h (__vmi_class_type_info): Rename details, n_bases, base_list, detail_masks members to vmi_flags, vmi_base_count, vmi_bases and vmi_flags_masks respectively. (__vmi_class_type_info::vmi_flags_masks): Rename details_unknown_mask to flags_unknown_mask. * tinfo.cc (__class_type_info::do_upcast): Adjust. (__vmi_class_type_info::do_find_public_src): Adjust. (__vmi_class_type_info::do_dyncast): Adjust. (__vmi_class_type_info::do_upcast): Adjust. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33004 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.jakub2000-04-073-27/+25
| | | | | | | | | * Makefile.in: Build crtbeginS and crtendS like crtbegin and crtend so they can be multilibbed. (STAGESTUFF): Remove s-crt and s-crtS. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33003 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/alpha/alpha.c (alpha_emit_conditional_move): Failrth2000-04-073-3/+23
| | | | | | | | | if we discover we need a pseudo and no_new_pseudos is true. * config/alpha/alpha.md (ne:DI insn): New. (trunctfsf2, sne): Emit NE instead of non-canonical LTU. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32998 138bc75d-0d04-0410-961f-82ee72b054a4
* * rtl.def (COND_EXEC): New.rth2000-04-078-61/+146
| | | | | | | | | | | | | | | | | | | | * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New. * tm.texi (MAX_CONDITIONAL_EXECUTE): Document. * genconfig.c (have_cond_arith_flag): Remove. (have_cond_exec_flag): New. (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE. (main): Print HAVE_conditional_execution. * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC. (sched_analyze_insn, print_pattern): Likewise. * reload.c (find_equiv_reg): Likewise. * rtlanal.c (reg_referenced_p): Likewise. (note_stores, dead_or_set_regno_p): Likewise. (reg_overlap_mentioned_p): Rewrite to use a switch. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32997 138bc75d-0d04-0410-961f-82ee72b054a4
* * ggc.h (struct rtx_def): Forward declare.rth2000-04-075-0/+27
| | | | | | | | | | * print-rtl.c (debug_rtx_range): New. * rtl.h (debug_rtx_range): Declare. * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32996 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (gcse_main): Don't rebuild the CFG here.rth2000-04-074-103/+113
| | | | | | | | | | | (delete_null_pointer_checks): Likewise. * ssa.c (convert_to_ssa): Likewise. * toplev.c (rest_of_compilation): Do it here instead. Combine sequential calls to TIMEVAR. Consistently use `insns' instead of `get_insns()'. Always split insns after reload when optimizing. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32995 138bc75d-0d04-0410-961f-82ee72b054a4
* * basic-block.h (merge_blocks_nomove): Declare.rth2000-04-073-93/+115
| | | | | | | | | | (tidy_fallthru_edge): Declare. * flow.c (merge_blocks_nomove): Document as merging into previous blocks. Remove cruft from between blocks; remove all edges out of A. (tidy_fallthru_edge): Export. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32994 138bc75d-0d04-0410-961f-82ee72b054a4
* * tinfo.cc (convert_to_base): New function.nathan2000-04-072-25/+41
| | | | | | | | | | | (get_vbase_offset): Remove. Move into convert_to_base. (__vmi_class_type_info::do_find_public_src): Adjust. (__vmi_class_type_info::do_dyncast): Adjust. (__vmi_class_type_info::do_upcast): Adjust. plus commit changelog entry 2000-04-06 Nathan Sidwell <nathan@codesourcery.com> git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32993 138bc75d-0d04-0410-961f-82ee72b054a4
* * ssa.c (compute_conservative_reg_partition): Declare withsamuel2000-04-074-34/+19
| | | | | | | | | | | void arguments. * toplev.c (clean_dump_file): Remove previously-deleted function inadvertantly merged back in. * conflict.c (conflict_graph_add): Use a single call to htab_find_slot to look up and insert. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32992 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.law2000-04-075-5/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32991 138bc75d-0d04-0410-961f-82ee72b054a4
* * genrecog.c (*): Rename _last_insn to last_insn.rth2000-04-072-14/+25
| | | | | | | | (make_insn_sequence): Set the position of the peephole2 C test to be at the last insn. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32990 138bc75d-0d04-0410-961f-82ee72b054a4
* * flow.c (compute_flow_dominators): Free worklist.rth2000-04-072-0/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32983 138bc75d-0d04-0410-961f-82ee72b054a4
* Michael Matz <matzmich@cs.tu-berlin.de>rth2000-04-072-12/+40
| | | | | | | * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32982 138bc75d-0d04-0410-961f-82ee72b054a4
* Forgot the ChangeLog entry in this commit; here it is.samuel2000-04-071-0/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * rtl.h (INSN_P): New macro. (successor_phi_fn): New typedef. (for_each_successor_phi): New prototype. (in_ssa_form): New variable. (PHI_NODE_P): Likewise. * flow.c (calculate_global_regs_live): Add to new_live_at_end from phi nodes in successors. (mark_used_regs): Add PHI case. (set_phi_alternative_reg): New function. (life_analysis): Assert that dead code elimination is not selected when in SSA form. * toplev.c (to_ssa_time): New variable. (from_ssa_time): Likewise. (compile_file): Zero to_ssa_time and from_ssa_time. Print time to convert to and from SSA. (rest_of_compilation): Time convert_to_ssa and convert_from_ssa. (print_time): Compute percent fraction as integer. * ssa.c (PHI_NODE_P): Moved to rtl.h. (convert_to_ssa): Check if we're already in SSA. Don't eliminate dead code in life_analysis. Rerun flow and life analysis at bottom. (eliminate_phi): Use canonical regnos when adding nodes. (mark_reg_in_phi): New function. (mark_phi_and_copy_regs): Likewise. (convert_from_ssa): Rerun life analysis at top. Use coalesced partition. Check for removing a phi node at the end of the block. (compute_coalesced_reg_partition): New function. (coalesce_regs_in_copies): Likewise. (coalesce_reg_in_phi): Likewise. (coalesce_regs_in_sucessor_phi_nodes): Likewise. (for_each_successor_phi): Likewise. (rename_context): New struct. (rename_block): Use a rename_context with rename_insn_1. When renaming sets of a subreg, emit a copy of the entire reg first. (rename_insn_1): Treat data as a rename_context *. Save current insn in set_data. (rename_set_data): Add field set_insn. * Makefile.in (HASHTAB_H): Move up in file. (OBSTACK_H): New macro. (collect2.o): Use OBSTACK_H in dependencies. (sdbout.o): Likewise. (emit-rtl.o): Likewise. (simplify-rtx.o): Likewise. (fix-header.o): Likewise. (OBJS): Add conflict.o. (conflict.o): New rule. * basic-block.h: Include partition.h. (conflict_graph): New typedef. (conflict_graph_enum_fn): Likewise. (conflict_graph_new): New prototype. (conflict_graph_delete): Likewise. (conflict_graph_add): Likewise. (conflict_graph_conflict_p): Likewise. (conflict_graph_enum): Likewise. (conflict_graph_merge_regs): Likewise. (conflict_graph_print): Likewise. (conflict_graph_compute): Likewise. * conflict.c: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32981 138bc75d-0d04-0410-961f-82ee72b054a4
* * tinfo.cc (operator=): Use __builtin_strcmp.jason2000-04-063-2/+7
| | | | | | | * tinfo2.cc (before): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32980 138bc75d-0d04-0410-961f-82ee72b054a4
* * rtl.h (INSN_P): New macro.samuel2000-04-067-69/+1163
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (successor_phi_fn): New typedef. (for_each_successor_phi): New prototype. (in_ssa_form): New variable. (PHI_NODE_P): Likewise. * flow.c (calculate_global_regs_live): Add to new_live_at_end from phi nodes in successors. (mark_used_regs): Add PHI case. (set_phi_alternative_reg): New function. (life_analysis): Assert that dead code elimination is not selected when in SSA form. * toplev.c (to_ssa_time): New variable. (from_ssa_time): Likewise. (compile_file): Zero to_ssa_time and from_ssa_time. Print time to convert to and from SSA. (rest_of_compilation): Time convert_to_ssa and convert_from_ssa. (print_time): Compute percent fraction as integer. * ssa.c (PHI_NODE_P): Moved to rtl.h. (convert_to_ssa): Check if we're already in SSA. Don't eliminate dead code in life_analysis. Rerun flow and life analysis at bottom. (eliminate_phi): Use canonical regnos when adding nodes. (mark_reg_in_phi): New function. (mark_phi_and_copy_regs): Likewise. (convert_from_ssa): Rerun life analysis at top. Use coalesced partition. Check for removing a phi node at the end of the block. (compute_coalesced_reg_partition): New function. (coalesce_regs_in_copies): Likewise. (coalesce_reg_in_phi): Likewise. (coalesce_regs_in_sucessor_phi_nodes): Likewise. (for_each_successor_phi): Likewise. (rename_context): New struct. (rename_block): Use a rename_context with rename_insn_1. When renaming sets of a subreg, emit a copy of the entire reg first. (rename_insn_1): Treat data as a rename_context *. Save current insn in set_data. (rename_set_data): Add field set_insn. * Makefile.in (HASHTAB_H): Move up in file. (OBSTACK_H): New macro. (collect2.o): Use OBSTACK_H in dependencies. (sdbout.o): Likewise. (emit-rtl.o): Likewise. (simplify-rtx.o): Likewise. (fix-header.o): Likewise. (OBJS): Add conflict.o. (conflict.o): New rule. * basic-block.h: Include partition.h. (conflict_graph): New typedef. (conflict_graph_enum_fn): Likewise. (conflict_graph_new): New prototype. (conflict_graph_delete): Likewise. (conflict_graph_add): Likewise. (conflict_graph_conflict_p): Likewise. (conflict_graph_enum): Likewise. (conflict_graph_merge_regs): Likewise. (conflict_graph_print): Likewise. (conflict_graph_compute): Likewise. * conflict.c: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32979 138bc75d-0d04-0410-961f-82ee72b054a4
* * tlink.c (read_repo_files): Don't look for .rpo info forjason2000-04-062-1/+12
| | | | | | | linker flags. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32978 138bc75d-0d04-0410-961f-82ee72b054a4
* * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define.amylaar2000-04-062-1/+23
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32977 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix Copyright.amylaar2000-04-061-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32976 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sh/lib1funcs.asm (___udivsi3_i4):amylaar2000-04-062-1/+7
| | | | | | | | ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr only depends on FMOVD_WORKS. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32975 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd,amylaar2000-04-062-0/+11
| | | | | | | make double constant 8-byte aligned. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32974 138bc75d-0d04-0410-961f-82ee72b054a4
* * cp-tree.h (lang_decl_flags): Rename saved_inline to deferred.mmitchel2000-04-0616-80/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | (DECL_SAVED_INLINE): Rename to ... (DECL_DEFERRED_FN): ... this. (in_function_p): Remove declaration. (mark_inline_for_output): Rename to ... (defer_fn): ... this. * decl.c (finish_function): Adjust call to mark_inline_for_output. (in_function_p): Remove definition. * decl2.c (saved_inlines): Rename to ... (deferred_fns): ... this. (saved_inlines_used): Rename to ... (deferred_fns_used): ... this. (mark_inline_for_output): Rename to ... (defer_fn): ... this. (finish_file): Adjust accordingly. (init_decl2): Likewise. * lex.c (cons_up_default_function): Likewise. * pt.c (mark_decl_instantiated): Likewise. (instantiate_decl): Don't set DECL_DEFER_OUTPUT under any circumstances. * rtti.c (get_tinfo_decl): Adjust call to mark_inline_for_output. * semantics.c (expand_body): Defer more functions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32973 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32,jakub2000-04-063-17/+30
| | | | | | | | | | | | movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64, movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS. (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise. Accept storing GENERAL_REGS into offsetable memory. * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow building a TFmode constant other than 0.0L into GENERAL_REGS. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32972 138bc75d-0d04-0410-961f-82ee72b054a4
* * MAINTAINERS: Added myself.phdm2000-04-062-0/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32971 138bc75d-0d04-0410-961f-82ee72b054a4
* * g++.old-deja/g++.abi/vmihint.C: New test.nathan2000-04-062-0/+74
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32970 138bc75d-0d04-0410-961f-82ee72b054a4
* * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER.scox2000-04-062-0/+8
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32969 138bc75d-0d04-0410-961f-82ee72b054a4
* * cpp-ifparen.c, cpp-missingop.c, cpp-missingparen.c,neil2000-04-067-13/+23
| | | | | | | | cpp-shift.c, cpp-shortcircuit.c, cpp-unary.c: Add FSF copyright. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32968 138bc75d-0d04-0410-961f-82ee72b054a4
* * vec.cc: New file.nathan2000-04-063-2/+171
| | | | | | | | | | * Make-lang.in (CXX_LIB2FUNCS): Add it. (vec.o): Build it. * inc/cxxabi.h (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor, __cxa_vec_delete): Declare. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32967 138bc75d-0d04-0410-961f-82ee72b054a4
* * rtti.c (dfs_class_hint_mark): New static function.nathan2000-04-062-10/+66
| | | | | | | | (dfs_class_hint_unmark): New static function. (class_hint_flags): Use them. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32966 138bc75d-0d04-0410-961f-82ee72b054a4
* * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete.zack2000-04-067-417/+581
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (macro_cleanup): No need to cast pbuf->macro. (collect_expansion): Use _cpp_get_define_token. Goto done if it returns VSPACE. Remove check for trailing space after CPP_COMMENT. (_cpp_create_definition): Don't diddle flags here. Return directly on error. (unsafe_chars): Handle c1 being EOF. (push_macro_expansion): Use unsafe_chars for both accidental-paste checks. Don't push the buffer till after we're done with them. * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New. (PEEKN, FORWARD, GETC, PEEKC): Use them. (cpp_push_buffer): Don't set new->alimit. Set new->mark appropriately. (_cpp_parse_assertion): Don't NUL terminate. (_cpp_lex_token): Fix -traditional macro handling. Don't skip hspace before calling _cpp_parse_assertion. Remove all sets of only_seen_white. Treat '\f' as hspace. Don't do anything special with '\n' here. (maybe_macroexpand): Handle T_EMPTY hash entries without pushing a buffer at all. (cpp_get_token): Handle clearing only_seen_white here. Handle incrementing the line number here. Clear potential_control_macro as well as only_seen_white, if appropriate. (cpp_get_non_space_token): Don't eat CPP_POP tokens. (_cpp_get_define_token): New function, basically like _cpp_get_directive_token was but doesn't eat horizontal space. Don't do anything with only_seen_white here. (_cpp_get_directive_token): Just call _cpp_get_define_token repeatedly till it returns non-hspace. * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete. (conditional_skip, skip_if_group): Return int. (DIRECTIVE_TABLE): Change origin of all conditional directives to "COND". (TRAD_DIRECT_P): New macro. (_cpp_handle_directive): Use _cpp_get_directive_token. Issue an error for a bogus directive, unless -lang-asm. Use TRAD_DIRECT_P. Loop calling handler functions till one returns zero. (get_macro_name): Don't diddle flags here. (do_define): Diddle flags here. Use _cpp_get_directive_token. Create T_EMPTY nodes for #define macro /* nothing */. (do_undef): Don't copy the name. Use _cpp_get_directive_token. Use hp->name when calling pass_thru_directive. (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip): Return the result of conditional_skip and/or skip_if_group. Don't call _cpp_output_line_command. (consider_directive_while_skipping): Use _cpp_get_directive_token. Issue -Wtraditional warnings as appropriate. Don't complain about unrecognized directives. If we are to stop skipping, return the number of the directive that ended the skip. (skip_if_group): Use _cpp_get_directive_token. Turn off macro expansion and line commands while skipping. Return the result of consider_directive_while_skipping, if nonzero. (do_endif): Just set potential_control_macro here. (validate_else): Use _cpp_get_directive_token. (do_assert, do_unassert): Don't save pointers into the token_buffer across calls to the lexer. Use _cpp_get_directive_token. * cpplib.h (cpp_buffer): Remove alimit and colno. Make mark a pointer, not an offset. Replace 'data', which was a generic pointer, with 'macro', which points to a struct hashnode. (cpp_reader): Add 'potential_control_macro' pointer. * cpphash.h (T_UNUSED): Replace with T_EMPTY. (CPP_BUF_GET, CPP_FORWARD): Delete. (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros. (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, ACTIVE_MARK_P): Update. (_cpp_get_define_token): New internal function. * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32965 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.law2000-04-065-5/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32964 138bc75d-0d04-0410-961f-82ee72b054a4