+2000-11-22 Zack Weinberg <zack@wolery.stanford.edu>
+
+ * Makefile.in, config.gcc, configure.in: Expunge remaining
+ traces of facility for running MD files through C preprocessor.
+
+2000-11-22 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * gcov.texi: Add magic comments for texi2pod.pl.
+ * Makefile.in: Add rules to generate and install gcov.1.
+ * gcov.1: New (generated) file.
+
+2000-11-21 Richard Henderson <rth@redhat.com>
+
+ * regrename.c (scan_rtx_reg): Terminate the chain rather than
+ abort on mark_read with NO_REGS.
+
+2000-11-21 Mike Stump <mrs@wrs.com>
+
+ * fixinc/fixtests.c (TEST_FOR_FIX_PROC_HEAD): Fix to allow
+ compilation with older compilers, such as /bin/cc on SunOS.
+ * fixinc/fixfixes.c (FIX_PROC_HEAD): Ditto.
+
+2000-11-21 Richard Henderson <rth@redhat.com>
+
+ * varasm.c (record_constant): Pad the constructed
+ constant_descriptor appropriately.
+
+Wed Nov 22 00:52:55 2000 J"orn Rennecke <amylaar@redhat.com>
+
+ * rtl.h (traverse_md_constants): Declare.
+ (struct md_constant): Define.
+ * Makefile.in (HOST_RTL): Add hashtab.o .
+ (OBJS): Add hashtab.o .
+ (hashtab.o): New rule.
+ (rtl.o): Depends on HASHTAB_H.
+ * rtl.c (hashtab.h): #include.
+ (md_constants): New static variable.
+ (def_hash, def_name_eq_p, read_constants): New static functions.
+ (traverse_md_constants): New function.
+ (read_name): Do constant expansion.
+ (read_rtx): Recognize define_constants.
+ * gencodes.c (print_md_constant): New function.
+ (main): Emit #defines for all constant definitions encountered.
+ * md.texi (Constant Definitions): New node.
+ * gensupport.c (xcalloc): New function.
+
+2000-11-21 Richard Henderson <rth@redhat.com>
+
+ * config/alpha/alpha.c (alpha_split_tfmode_frobsign): New.
+ * config/alpha/alpha-protos.h: Declare it.
+ * config/alpha/alpha.md (abstf_internal): Use it.
+ (negtf_internal): Likewise.
+ (andnotdi3): Unstar the name.
+ (movtf_internal): Add o/G alternative.
+
+2000-11-21 Zack Weinberg <zack@wolery.stanford.edu>
+
+ * stringpool.c (stringpool_statistics): Also report number and
+ percentage of entries which are identifiers.
+
+2000-11-21 Diego Novillo <dnovillo@redhat.com>
+
+ * gcse.c (hoist_expr_reaches_here_p): Do not mark expr_bb as
+ visited before visiting it.
+
+2000-11-21 Nick Clifton <nickc@redhat.com>
+
+ * config/arm/arm.h: Accept TARGET_CPU_arm9tdmi,
+ TARGET_CPU_strongarm110 and TARGET_SPU_strongarm1100.
+
+ * config.gcc: Accept --with-cpu=arm9 and --with-cpu=arm9tdmi.
+
+2000-11-21 Richard Henderson <rth@redhat.com>
+
+ * c-common.c (c_unsafe_for_reeval): New function.
+ (add_c_tree_codes): Register it.
+ * c-common.h: Declare it.
+ * tree.c (lang_unsafe_for_reeval): New hook.
+ (unsafe_for_reeval): Call it.
+ * tree.h: Declare it.
+
+2000-11-21 Richard Henderson <rth@redhat.com>
+
+ * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify @GOT
+ references as well.
+
+2000-11-21 Neil Booth <neilb@earthling.net>
+
+ * do_includes: Revert to using cpp_read_file.
+
+2000-11-21 Bernd Schmidt <bernds@redhat.co.uk>
+
+ * loop.c (consec_sets_giv): If the reg we're examining is anything
+ but UNKNOWN_INDUCT, do nothing.
+ Reset the reg's type to UNKNOWN_INDUCT before returning.
+
+ Mostly from Vladimir Makarov (vmakarov@redhat.com)
+ * ia64.md (attr itanium_class): Define insn types as described in
+ Itanium docs.
+ (all insn patterns): Use itanium_class, not type attributes.
+ Occasionally split alternatives as necessary.
+ (attr type): Compute from new attr itanium_class.
+
+2000-11-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * tradcpp.c (output_line_command): Mark system headers as such in
+ `line' commands.
+
+2000-11-21 Jakub Jelinek <jakub@redhat.com>
+
+ * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): Sparc has .file/.loc
+ support in as as well.
+ * configure: Regenerate.
+
+2000-11-20 Richard Henderson <rth@redhat.com>
+
+ * c-lex.c (orig_filename): New variable.
+ (init_c_lex): Set it. Move call to cpp_start_read ...
+ (yyparse): ... here. New function.
+ * c-parse.in (yyparse_1): Rename the parser entry point.
+ * c-tree.h: Declare it.
+
+2000-11-21 Jakub Jelinek <jakub@redhat.com>
+
+ * expr.c (do_compare_and_jump): If op0 was replaced by promoted
+ integer constant, use type of op1 for comparison.
+
+2000-11-20 Stan Shebs <shebs@apple.com>
+
+ * config/rs6000/xm-darwin.h: New file, Darwin host definitions.
+ * config/rs6000/x-darwin: New file, Darwin host fragment.
+ * config.gcc (powerpc-*-darwin*): New host.
+ * system.h (HAVE_DESIGNATED_INITIALIZERS): Allow this to be
+ overridden by a config file.
+
+2000-11-20 Neil Booth <neilb@earthling.net>
+
+ * cppmacro.c (paste_tokens): Rename from paste_payloads.
+ Change token type after pasting spellings.
+ (paste_all_tokens): Use it.
+ * gcc.dg/cpp/paste2.c: Update test.
+ * objc/execute/paste.m: New test.
+
+2000-11-20 Richard Henderson <rth@redhat.com>
+
+ * dwarf.h (FMT_CODE): Adjust argument order; fix mapping to
+ dwarf_subscr_data_formats bits.
+ * dwarfout.c (simple_type_size_in_bits): Handle a type with
+ no computed size as size zero.
+ (field_byte_offset): Likewise.
+ (subscript_data_attribute): Handle a range with no upper bound.
+
+2000-11-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gansidecl.h (const): Check __STDC__ before undef'ing `const'.
+
+2000-11-20 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * c-typeck.c (build_conditional_expr): When merging type
+ qualifiers for conditional expressions between a pointer and a
+ pointer to a void type, merge the qualifiers on the target types
+ rather than the pointer type. Remove obsolete conditioned out
+ code.
+
+2000-11-20 Neil Booth <neilb@earthling.net>
+
+ * c-lang.c (lang_init_options): Update call to
+ cpp_reader_init.
+ * cppmain.c (main): Similarly.
+ * fix-header.c (read_scan_file): Similarly.
+ * cp/lex.c (lang_init_options): Similarly.
+ * objc/objc-act.c (lang_init_options): Similarly.
+ * cppexp.c (parse_number): Only warn for unextended C89.
+ * cppinit.c (set_lang): New function.
+ (cpp_reader_init): Take a LANG argument and pass it to set_lang.
+ (COMMAND_LINE_OPTIONS): New option std=c++98.
+ (cpp_handle_option): Use set_lang.
+ * cpplex.c (_cpp_lex_token): Warn pedantically if not C99.
+ * cppib.h (enum_c_lang): New enumeration. Update comments.
+
+2000-11-20 Will Cohen <wcohen@redhat.com>
+
+ * calls.c (expand_call): Clear target only when target is in
+ hard register and current_function_check_memory_usage is set.
+
+2000-11-20 Bernd Schmidt <bernds@redhat.co.uk>
+
+ * toplev.c (rest_of_compilation): Run optimize_mode_switching even
+ if not optimizing.
+ * sh.c (emit_sf_insn, emit_df_insn): Just call emit_insn.
+
+2000-11-19 Richard Henderson <rth@redhat.com>
+
+ * crtstuff.c (force_to_data): Use array size 1 not 0.
+
+ * dwarf2out.c (simple_type_size_in_bits): Handle a type with
+ no computed size as size zero.
+ (field_byte_offset): Likewise.
+
+2000-11-20 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * config.gcc: Fix another typo.
+
+2000-11-19 Richard Henderson <rth@redhat.com>
+
+ * c-decl.c (grokdeclarator): Support flexible array members.
+ Use open-ended ranges for these and zero-length arrays.
+ * c-typeck.c (push_init_level): Validate the context of
+ initialization of a zero-length array.
+ * tree.c (int_fits_type_p): Be prepared for missing bounds.
+ * varasm.c (array_size_for_constructor): New.
+ (output_constructor): Use it for arrays of unspecified length.
+ * extend.texi (Zero Length): Mention C99 flexible array members.
+ Document initialization in a top-level struct as valid.
+
+2000-11-19 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * config.gcc, invoke.texi: Fix errors in spelling of "deprecated".
+
+ * alias.c (mems_in_disjoint_alias_sets_p): Do use alias sets in
+ stdarg and varargs functions.
+
+2000-11-19 Zack Weinberg <zack@wolery.stanford.edu>
+
+ * gcc.c (process_command): Define 'j' variable when
+ MODIFY_TARGET_NAME is defined.
+
+2000-11-19 Richard Henderson <rth@redhat.com>
+
+ * stor-layout.c (variable_size): Only put SAVE_EXPRs on pending_sizes.
+
+2000-11-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+
+ * rs6000/rs6000.c (rs6000_encode_section_info): Fix string length
+ calculation and allocation.
+
+2000-11-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * builtins.c (c_getstr): Constify variable.
+ * gmon-sol2.c (_mcleanup): Comment out #endif labels.
+ * conflict.c (const_conflict_graph_arc): New typedef.
+ (arc_hash, arc_eq): Avoid needlessly casting away const-ness.
+ * cppmacro.c (builtin_macro): Likewise.
+ * dwarf2out.c (output_comp_unit): Constify variable.
+ * fix-header.c (v_fatal): Add ATTRIBUTE_PRINTF.
+ * protoize.c (IS_SAME_PATH_CHAR): Use TOUPPER, not toupper.
+ * ssa.c (ssa_rename_from_hash_function): Avoid needlessly casting
+ away const-ness.
+ * tradcpp.c (rescan, do_line, macroexpand, macarg): Use
+ ISALNUM/ISDIGIT/ISPRINT, not isalnum/isdigit/isprint.
+ * varasm.c (const_str_htab_hash, const_str_htab_eq,
+ compare_constant_1, record_constant_1): Constify.
+
+2000-11-18 Richard Henderson <rth@redhat.com>
+
+ * c-decl.c (grokdeclarator): Special case the creation of an
+ index for a zero-length array.
+ * tree.c (build_index_type): Revert Oct 20 change.
+
+2000-11-18 Marek Michalkiewicz <marekm@linux.org.pl>
+
+ * config/avr/avr-protos.h (avr_output_addr_vec_elt): Prototype.
+ * config/avr/avr.c (jump_tables_size): New variable.
+ (function_prologue): Initialize it as 0.
+ (function_epilogue): Add it to function_size.
+ (avr_output_addr_vec_elt): New function. Count words in jump
+ tables in jump_tables_size. Move code ...
+ * config/avr/avr.h (ASM_OUTPUT_ADDR_VEC_ELT): ... from here.
+ Call avr_output_addr_vec_elt instead.
+ * config/avr/avr.md (tablejump): Remove disabled define_expand.
+
+2000-11-18 Mark Mitchell <mark@codesourcery.com>
+
+ * configure.in: Make --enable-new-gxx-abi the default.
+ * configure: Likewise.
+
+2000-11-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * Makefile.in (tradcpp.o, tradcif.o): Depend on tradcpp.h.
+
+ * tradcif.y: Include tradcpp.h. Constify. Make functions static.
+ Move extern function declarations to tradcpp.h.
+
+ * tradcpp.c: Likewise.
+
+ * tradcpp.h: New file.
+
+2000-11-18 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * c-decl.c (check_for_loop_decls): New function.
+ * c-parse.in (for_init_stmt): New.
+ (select_or_iter_stmt): Use for_init_stmt.
+ * c-tree.h (check_for_loop_decls): New declaration.
+
+2000-11-18 Neil Booth <neilb@earthling.net>
+
+ * cppinit.c: Update comments.
+ (cpp_reader_init): Make -imacro and -include use the standard
+ #include "" search path.
+ (do_includes): New function.
+
+2000-11-18 Ben Elliston <bje@redhat.com>
+
+ * config/sh/crt1.asm (start_l): Move PC-relative move instruction
+ out of a branch delay slot.
+
+2000-11-17 Richard Henderson <rth@redhat.com>
+
+ * config/alpha/elf.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
+ (ASM_SPEC): Disable and enable .mdebug based on -gstabs.
+ (ASM_FILE_START): Only write out ecoff .file directive if
+ emitting mdebug debugging.
+
+2000-11-17 Richard Henderson <rth@redhat.com>
+
+ * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): New. Detect
+ whether as accepts .file/.loc and produces dwarf2 line info.
+ * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Default on if
+ the assembler supports it.
+ * config.in, configure: Regenerate.
+
+2000-11-17 Richard Henderson <rth@redhat.com>
+
+ * fixinc/mkfixinc.sh: Don't disable fixincludes for any linux*.
+
+2000-11-17 Jim Wilson <wilson@redhat.com>
+
+ * config/ia64/ia64.c (emit_insn_group_barriers, case CALL_INSN):
+ Don't clear need_barrier is next_insn is a CALL_INSN, or has
+ instruction type B or UNKNOWN.
+
+2000-11-17 Neil Booth <neilb@earthling.net>
+
+ * cpperror.c (print_file_and_line): Don't display line number if 0.
+
+2000-11-17 Zack Weinberg <zack@wolery.stanford.edu>
+
+ * ggc.h: Delete ggc_add_string_root and ggc_mark_string. Add
+ digit_vector and digit_string.
+ * stringpool.c (digit_vector): New.
+ (ggc_alloc_string): Use digit_string.
+
+ * stmt.c (digit_strings): Delete.
+ (init_stmt): Do not initialize digit_strings.
+ (expand_asm_operands): Use ggc.h's digit_string macro.
+ * toplev.c (mark_file_stack): Delete.
+ (compile_file): Don't call init_tree_codes.
+ (main): No need to make the file stack a GC root.
+ * tree.c (init_tree_codes): Delete.
+ * tree.h (init_tree_codes): Delete.
+
+ * c-lex.c: Don't include ggc.h.
+ (mark_splay_tree_node, mark_splay_tree): Delete.
+ (init_c_lex): No need to ggc_strdup string constant. Don't add
+ file_info_tree to GGC roots.
+ (cb_enter_file, cb_rename_file): No need to ggc_strdup
+ ip->nominal_fname.
+
+ * Makefile.in (c-lex.o): No longer depends on $(GGC_H).
+
+ * dbxout.c (dbxout_init),
+ dwarf2out.c (dwarf2out_line),
+ ggc-common.c (ggc_mark_rtx_children, ggc_mark_trees),
+ varasm.c (mark_const_hash_entry, mark_pool_constant, init_varasm_once),
+ xcoffout.c (xcoffout_source_file),
+ i386.c (load_pic_register):
+ Delete call(s) to ggc_add_string_root and/or ggc_mark_string.
+
+ * except.c (create_rethrow_ref),
+ profile.c (init_edge_profiler),
+ toplev.c (compile_file),
+ varasm.c (named_section, assemble_static_space,
+ assemble_trampoline_template, output_constant_def, force_const_mem),
+ i386.c (load_pic_register),
+ ia64.c (ia64_encode_section_info),
+ rs6000.c (rs6000_emit_load_toc_table, create_TOC_reference,
+ rs6000_emit_prologue, rs6000_emit_epilogue),
+ rs6000.md (load_toc_aix_si, load_toc_aix_di):
+ Change ggc_alloc_string (var, -1) to ggc_strdup (var).
+
+ * profile.c (output_func_start_profiler),
+ tree.c (make_node),
+ i386.c (load_pic_register): No need to ggc_strdup string constant.
+
+2000-11-17 Hans-Peter Nilsson <hp@axis.com>
+
+ * Makefile.in (config.status): Depend on config.gcc.
+ * configure.in <for machine in $build $host $target>: Move
+ contents of loop into config.gcc, removing autoconf quoting.
+ Fix changequote bug for alpha*-*-vxworks*.
+ * configure: Regenerate.
+ * config.gcc: New.
+
+2000-11-16 Zack Weinberg <zack@wolery.stanford.edu>
+
+ * c-parse.in (if_prefix): Find the filename and line number at
+ $-2 and $-1 respectively.
+ * diagnostic.c (error_recursion): Add missing newline, use
+ fputs, translate string.
+
+2000-11-16 Zack Weinberg <zack@wolery.stanford.edu>
+
+ * stringpool.c: New file.
+ * ggc-common.c (ggc_mark_string_ptr, ggc_add_string_root): Delete.
+ (ggc_alloc_string): Now in stringpool.o.
+ * ggc-page.c, ggc-simple.c: Do not define or allocate empty_string.
+ * ggc.h: Delete prototype of ggc_add_string_root. #define
+ ggc_add_string_root and ggc_mark_string to nothing. Prototype
+ init_stringpool and stringpool_statistics.
+ (ggc_alloc_string): Returns a const char *.
+ * tree.c (hash_table, do_identifier_warnings): Delete.
+ (init_obstacks): Don't initialize the identifier hash table.
+ (get_identifier, maybe_get_identifier, start_identifier_warnings,
+ set_identifier_size): Now in stringpool.c.
+ * tree.h (struct tree_string): Constify pointer field.
+ (approx_sqrt): Prototype.
+
+ * Makefile.in (stringpool.o): Add rule, mention in OBJS.
+
+ * toplev.c (approx_sqrt): New function.
+ (compile_file): Call stringpool_statistics if mem_report is on.
+ (main): Call init_stringpool.
+
+ * builtins.c (c_strlen), c-decl.c (finish_decl), c-lex.c
+ (process_directive), c-typeck.c (constructor_asmspec, struct
+ initializer_stack, start_init), except.c (create_rethrow_ref),
+ stmt.c (digit_strings), toplev.c (decode_f_option), tree.c
+ (built_in_filename), varasm,c (in_named_name,
+ assemble_static_space, struct constant_descriptor, struct
+ deferred_string, struct pool_constant, force_const_mem),
+ i386.c (pic_label_name, global_offset_table_name), rs6000.c
+ (rs6000_emit_prologue, rs6000_emit_epilogue) : Constify a char *.
+
+ * c-common.c (combine_strings): Combine strings in scratch
+ buffer, then pass to build_string.
+ * optabs.c (init_libfuncs), profile.c (init_edge_profiler,
+ output_func_start_profiler), stmt.c (init_stmt), alpha.c
+ (alpha_need_linkage), arm.c (arm_encode_call_attribute),
+ i386.c (load_pic_register), ia64.c (ia64_encode_section_info),
+ rs6000.c (rs6000_encode_section_info): Create string in
+ scratch buffer, then pass to ggc_alloc_string.
+
+ * stmt.c (expand_asm_operands): If we must adjust the
+ constraint strings, do so by creating a new one, not by
+ modifying the old one in place. Constify some char *s.
+ * config/pa/pa.c (hppa_encode_label): Drop unnecessary second
+ argument. Create string in scratch buffer, then pass to
+ ggc_alloc_string.
+ * config/pa/pa-protos.h: Update prototype.
+ * config/pa/elf.h, config/pa/pa.h, config/pa/som.h:
+ hppa_encode_label takes only one argument.
+
+2000-11-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * mcore.c (mcore_expand_prolog): Call xmalloc/xrealloc, not
+ malloc/realloc.
+
+ * cpplib.c (glue_header_name): Likewise.
+
+ * fixincl.c (run_compiles, start_fixer): Likewise.
+
+ * fixlib.c (load_file_data): Likewise.
+
+ * mkdeps.c (munge): Likewise.
+
+2000-11-17 Hans-Peter Nilsson <hp@axis.com>
+
+ * defaults.h [EH_FRAME_SECTION_ASM_OP] (EH_FRAME_SECTION): Remove
+ trailing ';'. Fix formatting.
+
+2000-11-16 Jim Wilson <wilson@redhat.com>
+
+ * config/ia64/ia64.h (MASK_INLINE_DIV_LAT, MASK_INLINE_DIV_THR):
+ Shift masks left by one to avoid conflict.
+
+ * config/ia64/ia64.c (ia64_encode_section_info): Disallow decls with
+ DECL_EXTERNAL set.
+
+2000-11-16 Nick Clifton <nickc@redhat.com>
+
+ * config/arm/arm.c (output_arm_prologue): Note nested functions.
+ (arm_expand_prologue): For nested functions preserve the
+ static chain register during stack frame creation.
+
+ * config/arm/arm.h (STATIC_CHAIN_REGNUM): Change to 12.
+ (ARM_INITIAL_FRAME_ELIMINATION_OFFSET): For a nested function
+ with a stack frame there is a 4 byte gap between the arg
+ pointer and the hard frame pointer (used to preserve the
+ static chain register during stack frame creation).
+
+2000-11-16 DJ Delorie <dj@redhat.com>
+
+ * rtl.c (read_rtx): Provide suitable names for unnamed
+ define_insn and define_insn_and_split patterns, based on file
+ and line numbers.
+
+2000-11-15 Neil Booth <neilb@earthling.net>
+
+ * cpplib.c (start_directive, end_directive): New functions.
+ (_cpp_handle_directive, run_directive): Use them.
+ (_cpp_handle_directive): Don't -Wtraditional on indented
+ null directives.
+ (_cpp_push_buffer): Don't re-clear was_skipping.
+ * cpplib.h (struct cpp_reader): New member la_saved.
+ * cppmacro.c (cpp_get_token): Don't interpret _Pragma in
+ directives.
+
+ gcc.dg/cpp/_Pragma1.c: Update.
+ gcc.dg/cpp/_Pragma2.c: New test.
+
+2000-11-15 Mark Mitchell <mark@codesourcery.com>
+
+ * toplev.c (wrapup_global_declarations): Don't write out
+ artificial static variables that aren't needed.
+
+2000-11-15 Bernd Schmidt <bernds@redhat.co.uk>
+
+ * ia64.c (struct group): New structure.
+ (last_group): New static array.
+ (group_idx): New static variable.
+ (emit_group_barrier_after, errata_find_address_regs, errata_emit_nops):
+ New static functions.
+ (emit_insn_group_barriers): Initialize and keep track of group_idx
+ and last_group.
+ Call errata_emit_nops if TARGET_B_STEP or TARGET_A_STEP.
+ Replace all calls to emit_insn_after that emit a group barrier to use
+ emit_group_barrier_after.
+ * ia64.h (MASK_B_STEP): New.
+ (other MASK_XXX macros): Renumbered.
+ (TARGET_B_STEP): New.
+ (TARGET_SWITCHES): Add -mb-step.
+
+2000-11-15 Fred Fish <fnf@be.com>
+
+ * fixinc/mkfixinc.sh (fixincludes): Add *-*-beos* to list of
+ machines for which fixincludes is not needed.
+ * config/i386/x-beos (STMP_FIXPROTO): Don't run fixproto.
+
+2000-11-15 Jason Merrill <jason@redhat.com>
+
+ * diagnostic.c (finish_abort): New fn.
+ (fancy_abort, error_recursion): Use it.
+ * toplev.c (crash_signal): Likewise.
+ * diagnostic.h: Declare it.
+
+2000-11-13 Andrew Haley <aph@redhat.com>
+
+ * tree.c (build_type_no_quals): New function.
+ * tree.h (build_type_no_quals): Declare.
+ * c-common.c (c_get_alias_set): When considering type
+ compatibility for pointer types, ignore cv-qualifiers anywhere in
+ a pointer chain.
+
+2000-11-15 Graham Stott <grahams@redhat.com>
+
+ * regrename.c (scan_rtx_rtx): Skip to the next chain on
+ encountering a terminated chain.
+
+2000-11-14 Mark Mitchell <mark@codesourcery.com>
+
+ * configure.in: Move check for V3 above check for C++ header-file
+ directory.
+ * configure: Regenerated.
+
+2000-11-14 DJ Delorie <dj@redhat.com>
+
+ * config/v850/v850.c: Remove obstacks.
+
+Tue Nov 14 21:54:31 2000 Marek Michalkiewicz <marekm@linux.org.pl> & Denis Chertykov <denisc@overta.ru>
+
+ * config/avr/avr.c (avr_case_values_threshold): New.
+ (avr_override_options): Set it depending on options, make it large
+ when not optimizing to work around "unable to generate reloads".
+
+ * config/avr/avr.h (TARGET_SWITCHES): Add -mno-tablejump option.
+ (EXTRA_SECTION_FUNCTIONS): Make the .progmem.gcc_sw_table section
+ executable if not AVR_MEGA. Make sure jump tables are word-aligned.
+ (JUMP_TABLES_IN_TEXT_SECTION): Define as 0, not 1.
+ (ASM_OUTPUT_ADDR_VEC_ELT): Optimize, use "rjmp" if not AVR_MEGA.
+ (avr_case_values_threshold): Declare as extern int.
+ (CASE_VALUES_THRESHOLD): Define as avr_case_values_threshold.
+
+ * config/avr/avr.md (tablejump): Removed.
+ (*tablejump_rjmp): New for jump tables made from "rjmp" instructions.
+ (*tablejump_lib, *tablejump_enh, *tablejump): Change to expect the
+ index in the table, not multiplied by 2.
+ (casesi): Change to match the above insns. Always enable.
+
+ * config/avr/libgcc.S (__tablejump__): Rename to __tablejump2__.
+ Change to expect the word address of the table, multiply it by 2
+ here and not in the caller. Change "adiw" to faster "inc".
+
+2000-11-14 Neil Booth <neilb@earthling.net>
+
+ * cppexp.c (parse_defined): Call cpp_get_token not
+ _cpp_get_token.
+ (lex): Similarly.
+ * cpplex.c (cpp_output_line): Similarly.
+ * cpplib.c (glue_header_name, do_line, do_ident,
+ parse_answer, parse_assertion): Similarly.
+ (_cpp_handle_diretive): Don't save to lookaheads
+ when processing directives.
+ * cppmacro.c (parse_arg, expand_arg): Call cpp_get_token not
+ _cpp_get_token.
+ (funlike_invocation_p): Don't save to lookaheads
+ when pre-expanding arguments.
+ (_cpp_get_token): Delete.
+ (cpp_get_token): Merge contents of _cpp_get_token.
+
+2000-11-14 Jakub Jelinek <jakub@redhat.com>
+
+ * builtins.c (expand_builtin_setjmp): Set
+ current_function_calls_setjmp.
+ (expand_builtin_longjmp): Set current_function_calls_longjmp.
+
+ * config/sparc/sparc.md (builtin_setjmp_setup): New expand.
+ (do_builtin_setjmp_setup): New insn.
+
+Tue Nov 14 12:34:56 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * tree.c (get_unwidened): Use host_integerp and tree_low_cst.
+ (int_fits_type_p): For variable bounds, call force_fit_type.
+
+2000-11-14 Jakub Jelinek <jakub@redhat.com>
+
+ * varasm.c (struct deferred_string): New structure.
+ (const_str_htab): New variable.
+ (STRHASH): New macro.
+ (mark_const_str_htab_1, mark_const_str_htab, const_str_htab_hash,
+ constr_str_htab_eq, const_str_htab_del): New functions.
+ (output_constant_def): Add DEFER argument, defer string
+ constants until mark_constant_pool time if requested.
+ (mark_constant_pool): Walk the insn chain even if const_str_htab is
+ not empty.
+ (mark_constants): If a SYMBOL_REF for deferred string is found,
+ output it and remove from hash table.
+ (output_addressed_constants): Set DEFER to 0 in call to
+ output_constant_def.
+ * rtl.h (STRING_POOL_ADDRESS_P): Define.
+ (output_constant_def): Adjust prototype.
+ * expr.c (expand_expr): Set DEFER to 1 in call to output_constant_def.
+
+2000-11-14 Chandrakala Chavva <cchavva@redhat.com>
+
+ * optabs.c (expand_complex_ab):: Use overflow-trapping optabs for
+ signed types if flag_trapv.
+
+2000-11-14 Zack Weinberg <zack@wolery.stanford.edu>
+
+ * tradcpp.c, tradcif.y: Update FSF mailing address, delete
+ reference to GPLv1.
+
+2000-11-14 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * c-common.h (CTI_C_SIZE_TYPE): Update comment.
+
+2000-11-14 Jakub Jelinek <jakub@redhat.com>
+
+ * varasm.c (struct varasm_status): Change x_const_rtx_sym_hash_table
+ to array of pool_constnat pointers.
+ (struct pool_constant): Add next_sym and label members.
+ (struct pool_sym): Remove.
+ (init_varasm_status): Change pool_sym into pool_constant.
+ (mark_pool_constant): Mark pc->label string as well.
+ (mark_pool_sym_hash_table): Remove.
+ (mark_varasm_status): Remove it from caller as well.
+ (free_varasm_status): Don't free pool_sym structures.
+ (force_const_mem): Don't allocate pool_sym structure, instead
+ fill pool->label and chain it into rtx_sym hash table.
+ (find_pool_constant, mark_constant_pool): Use pool_constant instead
+ of pool_sym.
+
+2000-11-14 Jakub Jelinek <jakub@redhat.com>
+
+ * reload1.c (emit_input_reload_insns): Honour forcing of constants
+ into memory by PREFERRED_RELOAD_CLASS NO_REGS.
+
+2000-11-14 Michael Matz <matzmich@cs.tu-berlin.de>
+
+ * dominance.c: New file.
+ * Makefile.in (OBJS): Add dominance.o.
+
+ * flow.c (compute_flow_dominators): Remove.
+ (compute_immediate_dominators): Remove.
+ (compute_immediate_postdominators): Remove.
+ * basic-block.h: Remove their prototypes.
+ (calculate_dominance_info): Add prototype.
+
+ * dce.c (eliminate_dead_code): Change calls to above functions.
+ Don't compute dominators but only immediate dominators.
+ * flow.c (flow_loops_find): Change callers.
+ * gcse.c (compute_code_hoist_data): Likewise.
+ * haifa-sched.c (schedule_insns): Likewise.
+ * ifcvt.c (if_convert): Likewise.
+ * ssa.c (convert_to_ssa): Likewise, and only compute immediate
+ dominators.
+
2000-11-14 Richard Henderson <rth@redhat.com>
* stmt.c (warn_if_unused_value): Don't warn if the expression
2000-11-13 Neil Booth <neilb@earthling.net>
- * cpplex.c (_cpp_lex_token): CPP_COMMENT and true CPP_EOF
- cases return without MI check.
- * cpplib.c (do_diagnostic): Take boolean of whether to
- print the directive name.
- (do_error, do_warning): Update.
- (do_pragma_dependency): Use it.
- * cpplib.h (VARARGS_FIRST): Delete.
- (struct cpp_token): Delete integer.
- * cppmacro.c (enter_macro_context): Move disabled check
- to _cpp_get_token.
- (_cpp_get_token): Simplify into a single loop.
+ * cpplex.c (_cpp_lex_token): CPP_COMMENT and true CPP_EOF
+ cases return without MI check.
+ * cpplib.c (do_diagnostic): Take boolean of whether to
+ print the directive name.
+ (do_error, do_warning): Update.
+ (do_pragma_dependency): Use it.
+ * cpplib.h (VARARGS_FIRST): Delete.
+ (struct cpp_token): Delete integer.
+ * cppmacro.c (enter_macro_context): Move disabled check
+ to _cpp_get_token.
+ (_cpp_get_token): Simplify into a single loop.
2000-11-13 Richard Earnshaw <rearnsha@arm.com>
* configure.in: Turn on libstdc++ V3 by default.
* configure: Regenerated.
-
+
* fixinc/mkfixinc.sh: Use the ordinary fixincludes on Solaris.
2000-11-12 Jakub Jelinek <jakub@redhat.com>
of #include headers.
2000-11-12 Marc Espie <espie@openbsd.org>
-
+
* configure.in: Fix filds test.
* configure: Regen.
2000-11-12 Neil Booth <neilb@earthling.net>
- * cppexp.c: Don't worry about pfile->skipping.
- * cpplib.c (struct if_stack): Make was_skipping unsigned char.
- (cpp_handle_directive): Save pfile->skipping in struct cpp_buffer
- for handled directives.
- (skip_rest_of_line): Use _cpp_lex_token after popping contexts
- and releasing lookaheads.
- (do_ifdef, do_ifndef, do_if): Use buffer->was_skipping.
- (do_else, do_elif, push_conditional): Update logic.
- (do_endif): Set buffer->was_skipping rather than pfile->skipping.
- (unwind_if_stack): Inline into cpp_pop_buffer.
- (cpp_push_buffer): Clear ifs->was_skipping for cpp_handle_directive.
- * cpplex.c (_cpp_lex_token): Clear skipping on EOF. Handle
- multiple-include optimisation.
- * cpplib.h (struct cpp_buffer): New member was_skipping.
- * cppmacro.c (_cpp_get_token): Loop whilst pfile->skipping. This
- works because skipping == 0 in directives.
- (_cpp_release_lookahead): Renamed from release_lookahead.
- (cpp_get_token): No need to check skipping as _cpp_get_token does
- this for us. No need to handle MI optimisation.
+ * cppexp.c: Don't worry about pfile->skipping.
+ * cpplib.c (struct if_stack): Make was_skipping unsigned char.
+ (cpp_handle_directive): Save pfile->skipping in struct cpp_buffer
+ for handled directives.
+ (skip_rest_of_line): Use _cpp_lex_token after popping contexts
+ and releasing lookaheads.
+ (do_ifdef, do_ifndef, do_if): Use buffer->was_skipping.
+ (do_else, do_elif, push_conditional): Update logic.
+ (do_endif): Set buffer->was_skipping rather than pfile->skipping.
+ (unwind_if_stack): Inline into cpp_pop_buffer.
+ (cpp_push_buffer): Clear ifs->was_skipping for cpp_handle_directive.
+ * cpplex.c (_cpp_lex_token): Clear skipping on EOF. Handle
+ multiple-include optimisation.
+ * cpplib.h (struct cpp_buffer): New member was_skipping.
+ * cppmacro.c (_cpp_get_token): Loop whilst pfile->skipping. This
+ works because skipping == 0 in directives.
+ (_cpp_release_lookahead): Renamed from release_lookahead.
+ (cpp_get_token): No need to check skipping as _cpp_get_token does
+ this for us. No need to handle MI optimisation.
Sat Nov 11 21:14:02 2000 Mark P Mitchell <mark@codesourcery.com>
* fixinc/inclhack.def (sunos_matherr_decl): Bypass matherr
declarations that use `__MATH_EXCEPTION' in their prototypes, too.
* fixinc/fixincl.x: Regenerated.
-
+
2000-11-11 Bruce Korb <bkorb@gnu.org>
* fixinc/inclhack.def (avoid_bool_type): avoid commenting out #endif
2000-11-11 Jason Merrill <jason@redhat.com>
- * function.c (assign_parms): If TREE_ADDRESSABLE is set, try to
+ * function.c (assign_parms): If TREE_ADDRESSABLE is set, try to
give the parm a register and then call put_var_into_stack.
* stmt.c (expand_decl): Likewise.
* cppexp.c (lex): Don't handle CPP_PLACEMARKER.
* cpplex.c (_cpp_lex_token): Rename skip_newlines to next_bol
* cpplib.c (skip_rest_of_line, check_eol, cpp_push_buffer):
- Similarly.
+ Similarly.
* cpplib.h: Remove CPP_PLACEMARKER.
(struct lexer_state): Rename skip_newlines to next_bol.
* cppmacro.c (stringify_arg): Don't handle CPP_PLACEMARKER.
* config/ia64/ia64.md (extendsfdf2, extendsftf2, extenddftf2): Emit
a no-op move if regs are equal.
* toplev.c (rest_of_compilation): Do the noop moves elimination pass
- when calling jump after post-reload splitting.
+ when calling jump after post-reload splitting.
2000-11-09 Jan van Male <jan.vanmale@fenk.wau.nl>
- * c-tree.texi: Fix typos.
- * extend.texi: Likewise
- * gcov.texi: Likewise
- * rtl.texi: Likewise
- * tm.texi: Likewise
+ * c-tree.texi: Fix typos.
+ * extend.texi: Likewise
+ * gcov.texi: Likewise
+ * rtl.texi: Likewise
+ * tm.texi: Likewise
2000-11-09 Hans-Peter Nilsson <hp@axis.com>
* c-common.c (flag_dump_translation_unit): Define it.
(strip_array_types): New function.
* c-decl.c (c_decode_option): Handle -fdump-translation-unit.
- * c-lang.c (finish_file): Call dump_node_to_file if
+ * c-lang.c (finish_file): Call dump_node_to_file if
flag_dump_translation_unit.
* c-semantics.c (mark_rtl_for_local_static): Fix typo in comment.
* c-tree.h (DECL_C_BIT_FIELD): Remove declaration.
* c-dump.c: New file.
-
+
2000-11-09 Christopher Faylor <cgf@cygnus.com>
* config/i386/cygwin.h: Add mingw startfile prefix.
2000-11-09 Graham Stott <grahams@redhat.com>
- * config/i386/i386.md (mmx_pinsrw): Output operands in correct
+ * config/i386/i386.md (mmx_pinsrw): Output operands in correct
order for -mintel-syntax. Remove comment now that the operand
order has been checked.
(mmx_pextrw): Likewise.
2000-11-08 Neil Booth <neilb@earthling.net>
- Move directive handling into the lexer itself.
-
- * cpplex.c (_cpp_lex_token): Handle directives directly.
- In the case of a directive interrupting a function-like
- macro invocation, use extra_char since read_ahead is
- used to store the '#'. Return a CPP_EOF in this case.
- * cppmacro.c (parse_arg): No need to handle CPP_DHASH any more.
- (cpp_get_token): Don't handle directives here.
- * cpplib.h: Remove CPP_DHASH token type.
+ Move directive handling into the lexer itself.
+
+ * cpplex.c (_cpp_lex_token): Handle directives directly.
+ In the case of a directive interrupting a function-like
+ macro invocation, use extra_char since read_ahead is
+ used to store the '#'. Return a CPP_EOF in this case.
+ * cppmacro.c (parse_arg): No need to handle CPP_DHASH any more.
+ (cpp_get_token): Don't handle directives here.
+ * cpplib.h: Remove CPP_DHASH token type.
Wed Nov 8 21:53:41 MET 2000 Jan Hubicka <jh@suse.cz>
passed in multiple non-contiguous locations.
2000-11-08 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
-
+
* README.gnat: Remove file.
2000-11-08 Alexandre Oliva <aoliva@redhat.com>
* c-lang.c (start_cdtor, finish_cdtor): New functions.
(finish_file): Use them in building constructor/destructor functions.
- * config/alpha/alpha.h (HAS_INIT_SECTION, LD_INIT_SWITCH,
+ * config/alpha/alpha.h (HAS_INIT_SECTION, LD_INIT_SWITCH,
LD_FINI_SWITCH): Move ...
* config/alpha/osf.h: ... here.
* config/alpha/alpha-interix.h: Don't undef them.
2000-11-06 Neil Booth <neilb@earthling.net>
- * tradcpp.c (special_symbol): Assign an null string rather
+ * tradcpp.c (special_symbol): Assign an null string rather
than writing to an unallocated buffer.
2000-11-06 Neil Booth <neilb@earthling.net>
2000-11-04 Neil Booth <neilb@earthling.net>
- * cpplex.c (parse_string): Don't allow multiline strings in
- #include family directives.
+ * cpplex.c (parse_string): Don't allow multiline strings in
+ #include family directives.
2000-11-04 Neil Booth <neilb@earthling.net>
* cpplib.c (do_line): Only warn pedantically if not reading
- preprocessed input.
+ preprocessed input.
2000-11-04 Alexandre Oliva <aoliva@redhat.com>
sparc/sparc.h, sparc/sysv4.h, sparc/vxsim.h, sparc/vxsparc.h,
v850/rtems.h, vax/netbsd.h, vax/openbsd.h, vax/ultrix.h, vax/vax.h,
vax/vaxv.h, vax/vms.h, we32k/we32k.h
-
+
Replace -A() with -A=, the new assertion syntax.
Thu Nov 2 21:52:35 2000 J"orn Rennecke <amylaar@redhat.com>
2000-11-02 Zack Weinberg <zackw@Stanford.EDU>
- Integrated CPP.
-
- * c-lex.c (init_c_lex): Update cpp_start_read call.
- (cb_ident): Update for new callback prototype.
- (cb_def_pragma): Update for new cpp_get_token prototype.
- (c_lex): Similarly. Use cpp_get_line.
-
- * c-parse.in (finish_parse): Update for new cpp_finish
- prototype.
-
- * cp/lex.c (finish_parse): Similarly.
+ Integrated CPP.
+
+ * c-lex.c (init_c_lex): Update cpp_start_read call.
+ (cb_ident): Update for new callback prototype.
+ (cb_def_pragma): Update for new cpp_get_token prototype.
+ (c_lex): Similarly. Use cpp_get_line.
+
+ * c-parse.in (finish_parse): Update for new cpp_finish
+ prototype.
+
+ * cp/lex.c (finish_parse): Similarly.
2000-11-01 Geoff Keating <geoffk@cygnus.com>
2000-11-01 Neil Booth <neilb@earthling.net>
- * cpplib.c (run_directive): Use correct line number for output
- of _Pragma. Remember any in-progress directive.
-
- * gcc.dg/cpp/vararg2.c, gcc.dg/cpp/_Pragm1.c: New tests.
+ * cpplib.c (run_directive): Use correct line number for output
+ of _Pragma. Remember any in-progress directive.
+
+ * gcc.dg/cpp/vararg2.c, gcc.dg/cpp/_Pragm1.c: New tests.
2000-11-01 Richard Henderson <rth@redhat.com>
2000-11-01 Richard Henderson <rth@redhat.com>
* stmt.c (expand_start_null_loop): New.
- (expand_end_null_loop): New.
+ (expand_end_null_loop): New.
* c-semantics.c (genrtl_do_stmt): Use them.
* tree.h: Declare them.
(dwarf2out_end_block, dwarf2out_label): Likewise.
* final.c (final_scan_insn, case NOTE_INSN_DELETED_LABEL): Likewise
* config/ia64/ia64.h (ASM_OUTPUT_DEBUG_LABEL): Define.
-
+
2000-10-31 Richard Henderson <rth@redhat.com>
* dwarf2out.c (struct dw_loc_descr_struct): Add dw_loc_addr.
2000-10-31 Bernd Schmidt <bernds@redhat.co.uk>
- * config/i386/i386.c (ix86_init_builtins): Correct return type
+ * config/i386/i386.c (ix86_init_builtins): Correct return type
building v4hi_ftype_v4hi_int_int tree node.
(ix86_expand_builtin): Use correct operand numbers 0 and 1.
Copy operand 0 into a Pmode register, don't generate a MEM rtx.
2000-10-29 Neil Booth <neilb@earthling.net>
* cppmacro.c (_cpp_create_definition): Optimize the case of
- a macro defined to itself.
+ a macro defined to itself.
2000-10-29 Neil Booth <neilb@earthling.net>
2000-10-28 Neil Booth <neilb@earthling.net>
New macro expander.
-
+
* cpplib.c (struct answer): New.
(struct if_stack): Use cpp_lexer_pos rather than line and col.
Rename cmacro mi_cmacro.
_cpp_cleanup_hashtable.
* Makefile.in: Remove cppoutput.c.
-
+
* cppoutput.c: Delete
* fixheader.c (read_scan_file): Update for new cpp_get_token
* scan.h (recognized_function): Update prototype.
* po/POTFILES.in: Remove cppoutput.c.
-
+
2000-10-27 Mark Mitchell <mark@codesourcery.com>
* c-typeck.c (check_init_type_bitfields): Remove.
2000-10-21 Mike Coleman <mcoleman2@kc.rr.com>
* c-pragma.c (handle_pragma_pack): Initialize align to -1.
- Improve error messages. Correct parsing of
+ Improve error messages. Correct parsing of
#pragma pack(pop [,id]). Do not check the user-supplied
alignment if we're popping.
2000-10-27 Bernd Schmidt <bernds@redhat.co.uk>
Richard Henderson <rth@redhat.com>
- * regrename.c: Rewrite to handle multi-register modes and
- cond_exec instructions.
- * Makefile.in (regrename.o): Update dependancies.
- * recog.h (struct operand_alternative): Add is_address.
- * recog.c (preprocess_constraints) [case 'p']: Set it.
+ * regrename.c: Rewrite to handle multi-register modes and
+ cond_exec instructions.
+ * Makefile.in (regrename.o): Update dependancies.
+ * recog.h (struct operand_alternative): Add is_address.
+ * recog.c (preprocess_constraints) [case 'p']: Set it.
2000-10-27 Zack Weinberg <zack@wolery.stanford.edu>
switch is given, nothing otherwise.
* configure.lang: Delete.
- * Makefile.in: Expunge all traces of extra_c_objs,
- extra_cxx_objs, and extra_cpp_objs. Set MAYBE_CPPLIB from
- @maybe_cpplib@. Add $(MAYBE_CPPLIB) to C_AND_OBJC_OBJS. Set
- warning options via a three level scheme so that -pedantic and
- -Wtraditional are not used for non-C front ends: LOOSE_WARN,
- STRICT1_WARN, STRICT2_WARN -> $(@D)-warn, GCC_WARN_CFLAGS ->
- WARN_CFLAGS. Distinguish STAGE1_CFLAGS from BOOT_CFLAGS.
+ * Makefile.in: Expunge all traces of extra_c_objs,
+ extra_cxx_objs, and extra_cpp_objs. Set MAYBE_CPPLIB from
+ @maybe_cpplib@. Add $(MAYBE_CPPLIB) to C_AND_OBJC_OBJS. Set
+ warning options via a three level scheme so that -pedantic and
+ -Wtraditional are not used for non-C front ends: LOOSE_WARN,
+ STRICT1_WARN, STRICT2_WARN -> $(@D)-warn, GCC_WARN_CFLAGS ->
+ WARN_CFLAGS. Distinguish STAGE1_CFLAGS from BOOT_CFLAGS.
Add -I$(@D) and -I$(srcdir)/$(@D) to INCLUDES.
Set OUTPUT_OPTION, ZLIB, ZLIBINC. Do not set P,
- LANG_FLAGS_TO_PASS. Add OUTPUT_OPTION to all object-file
- generation rules. Wrap all rules that change the current
- directory in parentheses; pmake doesn't spawn a new shell for
- each command. Expunge all references to $(P). When one
- command depends on another and they're run all at once, use &&
- to separate them, not ;. Add libgcc_s$(SHLIB_EXT) to files
- deleted on make clean. Force OUTPUT_OPTION='-o $@' in stage2
- and beyond.
+ LANG_FLAGS_TO_PASS. Add OUTPUT_OPTION to all object-file
+ generation rules. Wrap all rules that change the current
+ directory in parentheses; pmake doesn't spawn a new shell for
+ each command. Expunge all references to $(P). When one
+ command depends on another and they're run all at once, use &&
+ to separate them, not ;. Add libgcc_s$(SHLIB_EXT) to files
+ deleted on make clean. Force OUTPUT_OPTION='-o $@' in stage2
+ and beyond.
* objc/Make-lang.in: Wrap all rules that change the current
directory in parentheses. Expunge all references to $(P).