+2000-07-10 Nick Clifton <nickc@cygnus.com>
+
+ * libgcc2.c (next_stack_level): Cast result of computation to
+ (void **) so that the assignment doe snot generate a warning.
+
+2000-07-10 Chandrakala Chavva <cchavva@redhat.com>
+
+ * flags.h : Add new variable flag_single_precision_constant.
+ * toplev.c (display_help) : Add -fsingle-precision-constant option.
+ (flag_single_precision_constant): New.
+ * c-lex.c (yylex): Convert floating point constant to single
+ precision constant.
+ * invoke.texi : Add documentation for this new option.
+
+2000-07-10 Gabriel Dos Reis <gdr@codesourcery.com>
+
+ * diagnostic.c (output_octal): Second parameter is unsigned.
+ (output_long_octal): Likewise.
+ (output_hexadecimal): Likewise.
+ (output_long_hexadecimal): Likewise.
+ (output_format): Adjust arguments extraction. Tweak.
+ (output_verbatim, verbatim): End variable argument list.
+ (report_diagnostic): Improve documentation.
+
+2000-07-10 Benjamin Chelf <chelf@codesourcery.com>
+
+ * c-common.h (build_stmt): Declare.
+ (build_continue_stmt): Likewise.
+ (build_break_stmt): Likewise.
+ (build_return_stmt): Likewise.
+
+ * c-decl.c (do_case): Rewrite to do what previously done in
+ c-parse.in.
+
+ * c-semantics.c (build_stmt): Define.
+ (build_return_stmt): Likewise.
+ (build_break_stmt): Likewise.
+ (build_continue_stmt): Likewise.
+ (build_case_label): Likewise.
+
+ * c-parse.in (BREAK): Change to build tree, then generate RTL.
+ (CONTINUE): Likewise.
+ (RETURN): Likewise.
+ (CASE): Likewise.
+ (DEFAULT): Likewise.
+
+ * c-parse.y: Regenerate.
+ * c-pasre.c: Likewise.
+
+2000-07-09 Jason Merrill <jason@redhat.com>
+
+ * expr.c (expand_expr): Bail earlier if we get an error_mark_node.
+
+ * tree.h (STRIP_NOPS): Check for error_mark_node.
+ (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise.
+ (dwarf2out_*): Remove duplicate declarations.
+
+ * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from
+ DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN.
+
+2000-07-10 Gabriel Dos Reis <gdr@codesourcery.com>
+
+ * diagnostic.c (wrap_text): New function.
+ (maybe_wrap_text): Likewise.
+ (output_add_string): Use it.
+ (output_format): Likewise.
+ (count_error): Use verbatim instead of notice.
+ (report_error_function): Likewise. Don't use plain fprintf.
+ (finish_diagnostic): New function.
+ (output_do_verbatim): Tweak. Commonalize functionalities in
+ output_verbatim and verbatim.
+ (output_verbatim): Adjust.
+ (verbatim): Likewise.
+ (report_diagnostic): Define.
+
+ * diagnostic.h (report_diagnostic): Prototype.
+
+2000-07-09 Zack Weinberg <zack@wolery.cumb.org>
+
+ * cppexp.c (_cpp_parse_expr): Don't use unary plus.
+
+2000-07-09 Neil Booth <NeilB@earthling.net>
+
+ * cpphash.h: ISvspace, is_vspace, is_nvspace: New.
+ IShspace, ISspace: Update.
+
+ * cppinit.c: ISTABLE: Update.
+ V: New.
+
+ * cpplex.c (IS_HSPACE, S_NEWLINE): Remove.
+ (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE.
+ (skip_block_comment, skip_line_comment, parse_string,
+ lex_line): Use is_vspace rather than IS_NEWLINE.
+ (skip_whitespace, lex_line): Clean up to use is_nvspace.
+ (lex_line): Use KNOWN_DIRECTIVE. Any kind of directive
+ gets a BOL flag.
+ (lex_next): Unconditionally stop if within a directive.
+ Treat directives within macro invocations as directives
+ (after parse_args emits error), not as the argument.
+
+2000-07-09 Gabriel Dos Reis <gdr@codesourcery.com>
+
+ * diagnostic.c (diagnostic_args): New macro.
+ (diagnostic_msg): Likewise.
+ (output_formatted_integer): Likewise.
+ (output_state): New data type.
+ (digit_buffer): Make global.
+ (output_add_integer): Rename to output_decimal. Squeeze
+ digit_buffer.
+ (output_long_decimal, output_unsigned_decimal,
+ output_long_unsigned_decimal, output_octal, output_long_octal,
+ output_hexadecimal, output_long_hexadecimal): New functions.
+ (output_append_r): New function.
+ (output_append): Tweak.
+ (output_flush_on): Rename to output_to_stream.
+ (output_format): Change prototype. Improve documentation. Handle
+ more format specifiers.
+ (build_location_prefix): Rename to context_as_prefix.
+ (output_notice): Rename to output_do_printf.
+ (output_printf): Tweak.
+ (line_wrapper_printf): Likewise.
+ (vline_wrapper_message_with_location): Adjust call to renamed
+ functions.
+ (v_message_with_decl): Likewise.
+ (default_print_error_function): Likewise.
+ (save_output_state): New function.
+ (restore_output_state): Likewise.
+ (output_do_verbatim): Likewise.
+ (output_verbatim): Define.
+ (verbatim): Likewise.
+
+ * diagnostic.h (printer_fn): Change return type from void to int.
+ Improve documentation.
+ (output_add_integer): Rename to output_decimal.
+ (output_flush_on, output_format): Don't export.
+ (output_verbatim, verbatim): Declare.
+
+2000-07-08 Toon Moene <toon@moene.indiv.nluug.nl>
+
+ * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR:
+ Check whether c divides op1 exactly if operation is not
+ multiplication.
+
+2000-07-08 Richard Henderson <rth@cygnus.com>
+
+ * final.c (final): Do not abort when reg-stack introduces
+ a new insn.
+
+2000-07-08 Zack Weinberg <zack@wolery.cumb.org>
+
+ * cpplib.h (struct cpp_name): Now struct cpp_string.
+ (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT,
+ CPP_HEADER_NAME): Change to type S.
+ (struct cpp_token): Rename 'name' field to 'str'. Add 'node'
+ field, a cpp_hashnode *. All references to val.name updated
+ to use val.str or val.node as appropriate.
+ (struct cpp_reader): Add spec_nodes field.
+ (cpp_idcmp): Now cpp_ideq; takes a token * and a char *.
+
+ * cpphash.h (struct spec_nodes): New.
+ (enum spell_type): Reorder. Only SPELL_STRING tokens use
+ val.str. All references to 'spelling > SPELL_NONE' updated to
+ match.
+
+ (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and
+ pfile->buffer->inc are not NULL before dereferencing them.
+
+ * cpplex.c (parse_name): Take a pointer to the current token,
+ plus current position and limit as args; return the new
+ position; don't copy the text of a name into the string
+ buffer, instead call cpp_lookup and store the node pointer.
+ If extending a token, copy out the text of the old into a
+ scratch buffer, append the new, look that up and store the new
+ node pointer. Inline.
+ (maybe_paste_with_next): If the result of paste is a NAME,
+ then look up the pasted text and store its node pointer.
+ (lex_line): Adjust for new parse_name interface.
+ Check for L"str", L'str' using spec_nodes->n_L.
+ (spell_token): SPELL_IDENT tokens have their spelling in
+ val.node->name. Handle SPELL_STRING tokens that don't have
+ string delimiters.
+ (_cpp_expand_name_space,
+ (can_paste): Check for L ## "str" using spec_nodes->n_L.
+ (cpp_get_token, special_symbol): No need to call cpp_lookup.
+ (cpp_idcmp): Now cpp_ideq; take a token * and a const char *;
+ return 1=equal 0=not, not a tristate.
+
+ * cpphash.c (var_args_str): Delete.
+ (find_param): Compare node fields directly.
+ (is__va_args__): Use CPP_PEDANTIC. Just compare
+ token->val.node with spec_nodes->n__VA_ARGS__.
+ (dump_funlike_macro): Don't use var_args_str.
+
+ * cpplib.c (_cpp_check_directive): Just walk through
+ spec_nodes->dirs comparing pointers.
+ (get_define_node, do_pragma_poison, detect_if_not_defined,
+ parse_ifdef): The identifier has already been looked up.
+ (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned
+ node.
+ (do_if): Only call detect_if_not_defined at beginning of file.
+ (_cpp_parse_assertion): Only copy string pointers for
+ SPELL_STRING tokens.
+ (pragma_dispatch): Take a node pointer and examine its name
+ field.
+ (_cpp_init_stacks): Also initialize the spec_nodes structure.
+
+ * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after
+ _cpp_init_macros.
+ (cpp_cleanup): Free pfile->spec_nodes. Call _cpp_cleanup_* in
+ reverse order from the corresponding _cpp_init_* routines.
+
+ * cppexp.c (parse_number, parse_charconst, parse_defined,
+ lex): Check val.node->type instead of calling cpp_defined.
+ Use spec_nodes entries where appropriate.
+
+ * fix-header.c, scan-decls.c: Update for interface changes.
+
+2000-07-08 Geoffrey Keating <geoffk@cygnus.com>
+
+ * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for
+ emitting aux_truncdfsf2.
+
+2000-07-03 Donn Terry (donnte@microsoft.com)
+
+ * cppinit.c (print_help): split overlong line into ISO C89
+ maximum chunks.
+
+2000-07-07 Zack Weinberg <zack@wolery.cumb.org>
+
+ * cppexp.c: Update all code for new lexer interface.
+ (op_t, operator codes, struct token, tokentab2, op_to_str): Remove.
+ (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New.
+ * cpplex.c (token_names): Trim leading CPP_ from names; make
+ the strings unsigned.
+ (_cpp_spell_operator): New.
+ (is_macro_disabled): Disable all macros if rescanning
+ preprocessed text.
+ (_cpp_get_directive_token): Remove.
+
+ * cppinit.c: Don't set no_macro_expand.
+ * cpplib.c (read_line_number, do_line): Check only for EOF,
+ not VSPACE.
+ * cpphash.h: Update prototypes.
+ * cpplib.h (CPP_VSPACE): Remove.
+ (struct cpp_reader): Remove no_macro_expand.
+
+2000-07-08 Neil Booth <NeilB@earthling.net>
+
+ * cpphash.c (is__va_args__): New function.
+ (count_params): Fix line reported in error messages. Use
+ is__va_args__. Don't return ')' on error. Flag GNU style
+ rest args macro definitions.
+ (parse_define): Check macro name is not __VA_ARGS__.
+ (save_expansion): Check identifier in non-varargs-macro is
+ not __VA_ARGS__. Don't flag GNU_VARARGS.
+ * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS.
+ (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather
+ than per-token GNU_VARARGS.
+ * cpplib.h (GNU_VARARGS): Remove.
+ (GNU_REST_ARGS): New.
+
+Sat Jul 8 01:38:25 MET DST 2000 Jan Hubicka <jh@suse.cz>
+
+ * i386.md (call_pop, call, call_value_pop): Do not set
+ current_function_uses_pic_offset_table for calls to static
+ functions or indirect calls.
+
+2000-07-07 Jim Wilson <wilson@cygnus.com>
+
+ * config/ia64/ia64.c (rws_access_reg): New local write_count. If
+ is_predicate_reg, then take max write_count of register pair.
+
+2000-07-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * tradcpp.c (main): Rename label `include' to `add_include' to
+ avoid conflicts with variable `include' in traditional C.
+
+2000-07-07 Jakub Jelinek <jakub@redhat.com>
+
+ * integrate.c (copy_insn_list): Remove REG_LABEL notes.
+
+2000-07-07 Jakub Jelinek <jakub@redhat.com>
+
+ * sibcall.c (uses_addressof): Add INMEM argument, check for
+ current_function_internal_arg_pointer outside of MEM rtxs in addition
+ to ADDRESSOFs.
+ (sequence_uses_addressof): Update caller.
+
+2000-07-07 Zack Weinberg <zack@wolery.cumb.org>
+
+ * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE
+ and friends.
+
+2000-07-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * system.h (UNION_INIT_ZERO): New macro for initializing union
+ members in structs.
+
+ * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO.
+
+2000-07-07 Neil Booth <NeilB@earthling.net>
+
+ * cpp.texi: Update.
+
+Fri Jul 7 07:47:35 2000 Jeffrey A Law (law@cygnus.com)
+
+ * final.c (final): Detect out of bounds array access to
+ the insn_lengths array.
+
+2000-07-07 Kazu Hirata <kazu@hxi.com>
+
+ * fold-const.c (fold): Fix a comment typo.
+
+2000-07-07 Neil Booth <NeilB@earthling.net>
+
+ * cpp.texi: Update to new lexer.
+
2000-07-06 Zack Weinberg <zack@wolery.cumb.org>
* tradcpp.c: New file.