OSDN Git Service

* c-common.c (c_format_attribute_table): Make format and
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index c0cc56f..72e101e 100644 (file)
@@ -1,5 +1,307 @@
+2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * c-common.c (c_format_attribute_table): Make format and
+       format_arg attributes apply to function types rather than to
+       decls.
+       (is_valid_printf_arglist): Construct an attribute list and pass
+       that to check_function_format rather than a name.
+       * c-common.h (check_function_format): Adjust prototype.
+       * c-decl.c (duplicate_decls): Preserve attributes from type of
+       built-in decl when allowing for harmless conflict in types.
+       * c-format.c (record_function_format,
+       record_international_format, function_format_list,
+       international_format_info, international_format_list): Remove.
+       (function_format_info): Remove next, name and assembler_name.
+       Make format_num and first_arg_num be unsigned HOST_WIDE_INT.
+       (decode_format_attr): New.
+       (handle_format_attribute): Handle receiving a type rather than a
+       decl.  Call decode_format_attr.  Store format information in a
+       function_format_info.
+       (handle_format_arg_attribute): Correct comment.  Handle receiving
+       a type rather than a decl.  Use unsigned HOST_WIDE_INT for
+       arg_num.
+       (check_format_info_recurse, check_format_info_main): Take argument
+       numbers as unsigned HOST_WIDE_INT.
+       (check_function_format): Take a list of attributes from the
+       function type rather than a name or assembler name.  Check for
+       format attributes in that list and the attributes on the type of
+       the current function rather than looking through
+       function_format_list.
+       (check_format_info): Use unsigned HOST_WIDE_INT for argument
+       numbers.
+       (check_format_info_recurse): Take format_arg attributes from the
+       type of the function calls rather than using
+       international_format_list.  Allow for multiple format_arg
+       attributes.
+       * c-typeck.c (build_function_call): Pass type attributes to
+       check_function_format rather than name or assembler name.  Don't
+       require there to be a name or assembler name to check formats.
+
+2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * attribs.c (decl_attributes): Possibly call
+       insert_default_attributes to insert default attributes on
+       functions in a lazy manner.
+       * builtin-attrs.def: New file; define the default format and
+       format_arg attributes.
+       * c-common.c (c_format_attribute_table): Move to earlier in the
+       file.
+       (c_common_nodes_and_builtins): Initialize format_attribute_table.
+       (enum built_in_attribute, built_in_attributes,
+       c_attrs_initialized, c_init_attributes,
+       c_common_insert_default_attributes): New.
+       (c_common_lang_init): Don't initialize format_attribute_table.  Do
+       call c_init_attributes.
+       * Makefile.in (c-common.o): Depend on builtin-attrs.def.
+       * c-common.h (init_function_format_info): Don't declare.
+       (c_common_insert_default_attributes): Declare.
+       * c-decl.c (implicitly_declare, builtin_function): Call
+       decl_attributes.
+       (init_decl_processing): Don't call init_function_format_info.
+       (insert_default_attributes): New.
+       * c-format.c (handle_format_attribute,
+       handle_format_arg_attribute): Be quiet about inappropriate
+       declaration when applying default attributes.
+       (init_function_format_info): Remove.
+       * tree.h (enum attribute_flags): Add ATTR_FLAG_BUILT_IN.
+       (insert_default_attributes): Declare.
+
+2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * c-format.c (CPLUSPLUS_STD_VER): Define to STD_C94.
+
+2001-10-01  Jim Wilson  <wilson@redhat.com>
+
+       * sched-deps.c (add_dependence): When elide conditional dependence,
+       check that insn doesn't modify cond2.
+
+2001-10-01  Dale Johannesen  <dalej@apple.com>
+
+       * config/rs6000/rs6000.h (enum processor_type): Add support
+       for 7400 (G4) and 7450.
+       (RTX_COSTS): Ditto.
+       * config/rs6000/rs6000.c (rs6000_override_options): Ditto.
+       (rs6000_issue_rate): Ditto.
+       (rs6000_adjust_cost): Fix cycle counts for compares.
+       (debug_stack_info):  Fix an obvious typo.
+       * config/rs6000/rs6000.md: Add functional units for 7400 and 7450.
+       * doc/invoke.texi: Document.
+       * config/rs6000/darwin.h (TARGET_DEFAULT): Set to be reasonable
+       for Darwin.
+       (PROCESSOR_DEFAULT): Ditto.
+
+2001-10-01  Loren J. Rittle  <ljrittle@acm.org>
+
+       * Makefile.in (STAGE2_FLAGS_TO_PASS): Propagate HOST_CC.
+       (fixinc.sh): Map CC, CFLAGS and LDFLAGS to HOST_* versions for
+       later recursive make invocation.
+
+2001-10-01  Hans Boehm  <boehm@acm.org>
+
+       * optabs.c (emit_libcall_block): When using non-call exceptions,
+       don't add REG_LIBCALL reg notes to trapping calls.
+
+2001-10-01  David Billinghurst <David.Billinghurst@riotinto.com>
+
+       * flow.c (propagate_block_delete_libcall): Remove unused first arg
+       (propagate_one_insn):  Update for above change
+
+2001-10-01  David Billinghurst <David.Billinghurst@riotinto.com>
+
+       * unwind-sjlj.c (_Unwind_GetRegionStart, _Unwind_GetDataRelBase,
+       _Unwind_GetTextRelBase): Argument is unused.
+
+Mon Oct  1 19:20:57 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * alias.c (get_alias_set): Try to replace PLACEHOLDER_EXPR.
+       Loop through NOPs, placeholders, and components.
+       Don't go through NOPs if change mode.
+       (record_alias_subset): Do nothing if SUBSET and SET are the same.
+       * emit-rtl.c (set_mem_alias_set): Enable check.
+       * expr.c (find_placeholder): New function.
+       (expand_expr, case PLACEHOLDER_EXPR): Use it.
+       (expand_expr, case COMPONENT_EXPR): Always copy OP0 when we need
+       to modify it and avoid unneeded copies.
+       * expr.h (expand_expr): Always define.
+       (find_placeholder): New declaration.
+
+2001-10-01  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
+
+       * config/m68hc11/m68hc11.md ("add-split"): Fix add split when
+       operand 2 is the stack pointer.
+       ("addr-peephole"): Fix address computation peephole when operand 2
+       is the stack pointer.
+
+Mon Oct  1 09:26:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * config/i386/i386.c (ix86_va_arg): Call set_mem_alias_set.
+       (ix86_setup_incoming_varargs): Likewise.
+
+2001-10-01  Jason Merrill  <jason_merrill@redhat.com>
+
+       * stor-layout.c (layout_type): Don't complain about too-large
+       array here.
+
+Mon Oct  1 06:43:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * function.c (keep_stack_depressed): Don't use delete_insn.
+
+       * expr.h (set_mem_alias_set): Move decl to here.
+       * rtl.h (mem_attrs): New typedef and struct.
+       (union rtunion_def): Add field for mem_attrs.
+       (X0MEMATTR, MEM_ATTRS): New macros.
+       (MEM_ALIAS_SET): Use MEM_ATTRS.
+       (MEM_DECL, MEM_OFFSET, MEM_SIZE, MEM_ALIGN): New macros.
+       (MEM_COPY_ATTRIBUTES): Copy MEM_ATTRS.
+       (set_mem_alias_set): Delete decl from here.
+       
+       * alias.c (set_mem_alias_set): Delete from here.
+       * emit-rtl.c (mem_attrs_htab): New variable.
+       (rtx_htab_mark, rtx_htab_mark_1): Deleted.
+       (mem_attrs_htab_hash, mem_attrs_htab_eq): New functions.
+       (mem_attrs_mark, get_mem_attrs): Likewise.
+       (gen_rtx_MEM): Clear MEM_ATTRS.
+       (set_mem_attributes): Move to here.
+       (set_mem_alias_set): Likewise, and call get_mem_attrs.
+       (init_emit_once): const_int_htab now deletable htab.
+       Initialize mem_attrs_htab.
+       * explow.c (set_mem_attributes): Delete from here.
+       * function.c (put_var_into_stack): Clear MEM_ATTRS.
+       (gen_mem_addressof): Likewise; rework to use set_mem_attributes.
+       * ggc-common.c (ggc_mark_rtx_children, case MEM): New case.
+       * reload1.c (reload): Rework changing REG to MEM.
+
+2001-09-30  H.J. Lu <hjl@gnu.org>
+
+       * acconfig.h (PREFIX_INCLUDE_DIR): New variable.
+       * config.in: Rebuild.
+
+2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
+
+       * config/m68hc11/m68hc11.md ("cmpqi_1"): Fix constraints.
+       ("tsthi_1"): Avoid allocation in register y.
+       ("*movqi_68hc12"): Reorganize and fix constraints.
+       ("zero_extendqisi2"): Prefer d over x and y for operand 1.
+       ("addqi3"): Likewise.
+       ("addhi3"): Fix constraints.
+       ("*logicalhi3_zexthi"): Disparage soft registers.
+
+2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
+
+       * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Fix move of sp
+       to tmp reg.
+
+2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
+
+       * config/m68hc11/m68hc11.h(INCOMING_RETURN_ADDR_RTX): Remove so
+       that we use setjmp/longjmp exceptions.
+
+2001-09-30  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cpphash.h (POOL_ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE,
+       POOL_SIZE, POOL_ROOM, POOL_COMMIT, struct cpp_chunk,
+       struct cpp_pool, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
+       _cpp_pool_alloc, _cpp_next_chunk): Remove.
+       (_cpp_extend_buff, BUFF_ROOM): Update.
+       (_cpp_append_extend_buff): New.
+       (struct cpp_reader): Remove macro_pool, add a_buff.
+       * cppinit.c (cpp_create_reader): Initialize a_buff, instead of
+       macro_pool.
+       (cpp_destroy): Free a_buff instead of macro_pool.
+       * cpplex.c (new_chunk, chunk_suitable, _cpp_next_chunk,
+       new_chunk, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
+       _cpp_pool_alloc, ): Remove.
+       (parse_number, parse_string): Update use of _cpp_extend_buff.
+       (_cpp_extend_buff): Update.
+       (_cpp_append_extend_buff, cpp_aligned_alloc): New.
+       * cpplib.c (glue_header_name, parse_answer):
+       Update use of _cpp_extend_buff.
+       (cpp_register_pragma, cpp_register_pragma_space): Use
+       _cpp_aligned_alloc.
+       (do_assert, do_unassert): Check for EOL, update.
+       * cppmacro.c (stringify_arg, collect_args): Update to use
+       _cpp_extend_buff and _cpp_append_extend_buff.
+       (save_parameter, parse_params, alloc_expansion_token,
+       _cpp_create_definition): Rework memory management.
+
+2001-09-29  Andris Pavenis  <pavenis@lanet.lv>
+
+       * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): Don't
+       update md_exec_prefix.
+       (UPDATE_PATH_HOST_CANONICALIZE): Don't free PATH as it can point
+       to string constant.
+
+2001-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390.h (EXTRA_CC_MODES): Add CCLmode.
+       (SELECT_CC_MODE): Use s390_select_ccmode.
+       * config/s390/s390-protos.h (s390_select_ccmode): Add.
+       * config/s390/s390.c (s390_select_ccmode): New.
+       (s390_match_ccmode): Add CCLmode.
+       (s390_branch_condition_mask, s390_branch_condition_mnemonic): New.
+       (output_branch_condition, output_inverse_branch_condition): Removed.
+       (print_operand): Use s390_branch_condition_mnemonic.
+       * config/s390/s390.md (addsi3_cc, addsi3_cconly, addsi3_cconly2,
+       subsi3_cc, subsi3_cconly): Use logical instructions and CCLmode.
+       (bunordered, bordered, buneq, bungt, bunlt, bnuge, bunle, bltgt): New.
+
+       * config/s390/s390.c (check_and_change_labels): Preserve CC mode
+       when converting conditional branches to far branches.
+       * config/s390/s390.md (cmpstr_const, cmpstr_64, cmpstr_31, cmpint_si,
+       cmpint_di): Use CCSmode instead of CCUmode.
+
+       * config/s390/s390.c (legitimate_la_operand_p): New.
+       * config/s390/s390-protos.h (legitimate_la_operand_p): Add.
+       * config/s390/s390.md (movsi): Convert load address patterns to
+       arithmetic operations when necessary.
+       (addaddr_picR, addaddr_picL, addaddr_picN): Removed.
+       (do_la): Renamed to *do_la and use legitimate_la_operand_p.
+       (*do_la_reg_0): Don't use before reload.
+
+       * config/s390/s390.c (legitimize_address): Make more efficient
+       use of two-register addressing mode.
+
+       * config/s390/s390.c (s390_function_prologue): Fix incorrect prolog
+       with -mno-backchain in some corner cases.
+
+       * config/s390/s390.md (cmpsi_cct): Operands 0 and 1 do not commute.
+
+2001-09-29  Alexandre Oliva  <aoliva@redhat.com>
+
+       * reload.c (find_reloads): Mark new USE insns with QImode.
+       (find_reloads_toplev, find_reloads_address, subst_reg_equivs,
+       find_reloads_subreg_address): Likewise.
+       * regrename.c (note_sets, clear_dead_regs): Abort if pseudos are
+       encountered.
+       * reload1.c (reload_combine_note_use): Likewise, inside USEs and
+       CLOBBERs.
+       (reload): Make sure there are no USEs with mode other than
+       VOIDmode.  At the end, remove those marked with QImode.
+
+2001-09-29  Per Bothner  <per@bothner.com>
+
+       * cppdefault.c (cpp_include_defaults):  Also search PREFIX_INCLUDE_DIR.
+       * Makefile.in (includedir):  Rename to local_includedir.
+       (includedir):  Define as $(prefix)/include.
+       * config.in (PREFIX_INCLUDE_DIR):  New variable.
+       * configure.in (PREFIX_INCLUDE_DIR):  Test for new variable.
+
+2001-09-29  Bernd Schmidt  <bernds@redhat.com>
+
+       * config/i386/i386.c (init_mmx_sse_builtins): Fix type of storelps and
+       storehps builtins.
+       * doc/extend.texi (Vector Extensions): New node.
+       * doc/invoke.texi (Machine Dependent Options): Add documentation for
+        i386 -mmmx, -msse, -m3dnow.
+
+Sat Sep 29 15:08:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * doc/invoke.texi (Optimize Options): Revert an accidental checkin.
+
 2001-09-29  Hans-Peter Nilsson  <hp@axis.com>
 
+       * cse.c (cse_insn) [HAVE_cc0]: Fix typo delete-insn -> delete_insn.
+
        * doc/invoke.texi (Optimize Options): Delete spurious @table.
 
 2001-09-28  Richard Henderson  <rth@redhat.com>