Ulrich Drepper [Mon, 3 Jan 2000 21:48:49 +0000 (21:48 +0000)]
(format_char_info): Update comment.
(format_char_info): Update comment. (check_format_info): Recognize 'z'
modifier in the same way 'Z' was recognized. Emit warning for formats
new in ISO C99 only if flag_isoc9x is not set.
* cp-tree.h (CLASSTYPE_VBASECLASSES): Improve documentation.
* class.c (layout_basetypes): Don't set BINFO_INHERITANCE_CHAIN
or unshare_base_binfos for virtual bases here.
* search.c (dfs_get_vbase_types): Do it here.
(get_vbase_types): Adjust.
Jan Hubicka [Mon, 3 Jan 2000 15:49:51 +0000 (16:49 +0100)]
combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
* combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
(make_compound_operation): Choose cheaper alternative between
ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
Jan Hubicka [Mon, 3 Jan 2000 15:23:56 +0000 (16:23 +0100)]
regclass.c (op_costs): Remove global variable.
* regclass.c (op_costs): Remove global variable.
(record_reg_classes): New parameter "op_costs" and "reg_pref".
(record_operand_costs): Break out from ...
(scan_one_insn): ... here.
(dump_regclass): Make dumps nicer.
(regclass): Dump preferrences choosed and changes done during passes.
Mark Mitchell [Sun, 2 Jan 2000 19:41:09 +0000 (19:41 +0000)]
cp-tree.h (dfs_mark_primary_bases_queue_p): New function.
* cp-tree.h (dfs_mark_primary_bases_queue_p): New function.
(layout_basetypes): Remove.
* class.c (propagate_binfo_offsets): Moved here from tree.c.
Update to handle primary virtual bases.
(remove_base_fields): New function, split out from
layout_basetypes.
(dfs_mark_primary_bases_and_set_vbase_offsets): New function.
(layout_virtual_bases): New function, split out from
layout_basetypes. Update to handle primary virtual bases.
(layout_basetypes): Moved here from tree.c. Use
remove_base_fields and layout_virtual_bases.
* search.c (dfs_mark_primary_bases_queue_p): New function.
(mark_primary_bases): Use it.
* tree.c (CEIL): Remove.
(propagate_binfo_offsets): Remove.
(layout_basetypes): Remove.
Mark Mitchell [Sun, 2 Jan 2000 02:13:53 +0000 (02:13 +0000)]
class.c (build_vtable): Don't return a value.
* class.c (build_vtable): Don't return a value. Don't rebuild
vtables for bases that have already been handled.
(prepare_fresh_vtable): Don't rebuild vtables for bases that have
already been handled.
(modify_one_vtable): Adjust accordingly.
(fixup_vtable_deltas1): Likewise.
(finish_struct_1): Likewise.
* class.c (assume_compiled, assume_compiled_node): Add static
prototype.
(add_assume_compiled): Use xmalloc/xstrdup, not malloc/strdup.
* jcf-dump.c (ARRAY_NEW_NUM): Cast long to int in switch.
* jvgenmain.c (usage): Add static prototype with ATTRIBUTE_NORETURN.
* parse.h (OBSOLETE_MODIFIER_WARNING): Rename parameter `modifier'
to `__modifier' to avoid stringifying it.
* parse.y (verify_constructor_circularity): Don't call a variadic
function with a non-literal format string.
(java_check_abstract_methods): Move unreachable code inside
`continue' statement.
(lookup_method_invoke): Call xstrdup, not strdup.
* expr.c (expand_java_field_op): Avoid the use of ANSI string
concatenation.
expr.c (expand_invoke): Layout the loaded class before attempting to use it.
Thu Dec 16 00:09:45 1999 Alexandre Petit-Bianco <apbianco@cygnus.com>
* expr.c (expand_invoke): Layout the loaded class before
attempting to use it.
(expand_java_field_op): Allow final field assignments to take
place in $finit$.
* typeck.c (convert): Return error_mark_node if expr is null.
Kaveh R. Ghazi [Fri, 31 Dec 1999 02:41:24 +0000 (02:41 +0000)]
parse.h (ABSTRACT_CHECK, [...]): Avoid the use of ANSI string concatenation.
* parse.h (ABSTRACT_CHECK, JCONSTRUCTOR_CHECK,
ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
ERROR_CAST_NEEDED_TO_INTEGRAL): Avoid the use of ANSI string
concatenation.
* class.c (class_depth): Return -1 if the class doesn't load
properly.
* expr.c (can_widen_reference_to): Check for errors during depth
computation and return 0 accordingly.
* jcf-parse.c (parse_source_file): Call java_fix_constructors to
create default constructors and add an other error check.
* parse.h (java_fix_constructors): Prototyped.
* parse.y (java_pre_expand_clinit): Likewise.
(build_super_invocation): Re-prototyped to feature one argument.
(java_check_circular_reference): Directly use `current'.
(java_fix_constructors): New function.
(java_check_regular_methods): Don't create default constructors
here, but abort if none were found.
(java_complete_expand_methods): Pre-process <clinit> calling
java_pre_expand_clinit.
(java_pre_expand_clinit): New function.
(fix_constructors): build_super_invocation invoked with the
current method declaration as an argument.
(build_super_invocation): Use the context of the processed method
decl argument instead of current_class.
* typeck.c (lookup_java_method): Take WFLs in method names into
account.
Geoff Keating [Thu, 30 Dec 1999 19:44:13 +0000 (19:44 +0000)]
Make the Fortran front-end use garbage collection:
* com.c (ffecom_init_0): Make double_ftype_double,
float_ftype_float, ldouble_ftype_ldouble,
ffecom_tree_ptr_to_fun_type_void local.
(tracker_head): New static variable.
(mark_tracker_head): New, marker procedure for tracker_head.
(ffecom_save_tree_forever): New procedure.
(ffecom_init_zero_): Remove obstack use.
(ffecom_make_gfrt_): Remove obstack use.
(ffecom_sym_transform_): Remove obstack use, save appropriate trees.
(ffecom_transform_common_): Remove obstack use, save appropriate
trees.
(ffecom_type_namelist_): Remove obstack use, save appropriate
trees.
(ffecom_type_vardesc_): Remove obstack use, save appropriate trees.
(ffecom_lookup_label): Remove obstack use, save appropriate trees.
(duplicate_decls): Remove obstack use.
(finish_function): push & pop ggc context around
rest_of_compilation when building nested function.
(mark_binding_level): New function.
(init_decl_processing): Mark all the GC roots.
(ggc_p): Set to 1.
(lang_mark_tree): New function.
(lang_mark_false_label_stack): New trivial function.
* com.h (ffecom_save_tree_forever): Declare as external.
* lex.c (ffelex_hash_): Use GC to allocate the filename string
even when ffelex_kludge_flag_.
* ste.c (ffeste_io_ialist_): Register a static root.
(ffeste_io_inlist_): Likewise.
(ffeste_io_icilist_): Likewise.
(ffeste_io_cllist_): Likewise.
(ffeste_io_cilist_): Likewise.
(ffeste_io_olist_): Likewise.
* Makefile.in (OBJS): Don't use ggc-callbacks.o.
(OBJDEPS): Likewise.
(GGC_H): New variable.
Update dependencies.
* where.c (ffewhere_head): New global.
(mark_ffewhere_head): New marker procedure for ffewhere_head.
(ffewhere_file_kill): Use GC to do memory management.
(ffewhere_file_new): Use GC to do memory management.
* ggc.j: New file.
Martin v. Loewis [Thu, 30 Dec 1999 03:44:13 +0000 (20:44 -0700)]
Restore i386 binary compatibility in Dwarf EH info.
* config/i386/i386.h (DWARF_FRAME_REGISTERS): Define as 17, the old
value of FIRST_PSEUDO_REGISTER.
* frame.h (DWARF_FRAME_REGISTERS): Default to FIRST_PSEUDO_REGISTER.
(struct frame_state): Use DWARF_FRAME_REGISTERS.
* dwarfout.c (output_reg_number): Ditto.
* dwarf2out.c (reg_number, expand_builtin_init_dwarf_reg_sizes): Ditto.
(DWARF_FRAME_RETURN_COLUMN): Default to DWARF_FRAME_REGISTERS.
Kaveh R. Ghazi [Wed, 29 Dec 1999 21:22:16 +0000 (21:22 +0000)]
crtstuff.c: If !inhibit_libc, include stdlib.h/unistd.h.
* crtstuff.c: If !inhibit_libc, include stdlib.h/unistd.h.
Otherwise provide a declaration for atexit.
(init_dummy): Make sure dummy call to atexit is nevertheless
called with correct number of args.
* frame.c: Update comments referring to other files.
Mark Mitchell [Wed, 29 Dec 1999 20:05:41 +0000 (20:05 +0000)]
class.c (create_vtable_ptr): Put the vtable at the beginning of the class, not the end, in the new ABI.
* class.c (create_vtable_ptr): Put the vtable at the beginning of
the class, not the end, in the new ABI.
* tree.c (propagate_binfo_offsets): Do the right thing for the new
ABI.
Jakub Jelinek [Mon, 27 Dec 1999 08:34:45 +0000 (09:34 +0100)]
h8300.h (TARGET_H8300H, [...]): Make sure UNITS_PER_WORD and BITS_PER_WORD are compile time constants when...
* config/h8300/h8300.h (TARGET_H8300H, TARGET_H8300S): Make sure
UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
compiling libgcc2.
* config/mips/mips.h (TARGET_64BIT): Likewise.
* config/rs6000/rs6000.h (TARGET_POWERPC64): Likewise.
* libgcc2.c: Use {,U}{HW,W,DW}type and DWunion everywhere instead
of {SI,DI}type and DIunion. Define these types to QI/HI modes on
dsps. Give routines proper names if SI/DI modes are not used.
* longlong.h: Use DWunion instead of DIunion.
Mark Mitchell [Sun, 26 Dec 1999 15:28:18 +0000 (15:28 +0000)]
decl.c (store_return_init): Use mode of old RTL generated for DECL_RESULT, not the mode of DECL_RESULT itself.
* decl.c (store_return_init): Use mode of old RTL generated for
DECL_RESULT, not the mode of DECL_RESULT itself.
* semantics.c (finish_named_return_value): Set DECL_UNINLINABLE
for functions that used named return values.