* cppexp.c (parse_assertion): New.
(lex): Call it for CPP_HASH. Remove CPP_ASSERTION case.
(_cpp_parse_expr): Remove case '#'. Don't set
parsing_if_directive.
* cpphash.c (collect_objlike_expansion,
collect_funlike_expansion, collect_params,
_cpp_create_definition): The list no longer has a trailing
VSPACE token.
* cpphash.h (enum node_type): Add T_ASSERTION.
(struct hashnode): Remove aschain, add pred.
(struct predicate): New.
Update prototypes.
* cpplex.c (expand_token_space): Handle both offset and
nonoffset lists.
(init_token_list, _cpp_free_token_list, _cpp_parse_assertion): Delete.
(_cpp_init_toklist, _cpp_clear_toklist, _cpp_free_toklist,
_cpp_slice_toklist, _cpp_squeeze_toklist, _cpp_equiv_tokens,
_cpp_equiv_toklists): New.
(_cpp_scan_line): Rename to _cpp_scan_until; add ability to
stop at any single-character token, not just newline.
(_cpp_lex_token): Remove special cases for #define and #if.
(cpp_get_token): Expect # as a separate token type. Remove
DIRECTIVE case.
(_cpp_get_directive_token): Remove DIRECTIVE case.
(_cpp_lex_line, _cpp_lex_file, _cpp_init_input_buffer): Update.
* cpplib.c (_cpp_check_directive): Set dirno and
SYNTAX_INCLUDE bit of flags, not dir_handler and dir_flags.
(_cpp_handle_directive): Run # <number> through the same logic
as normal directives.
(do_define): Don't set parsing_define_directive. Use
_cpp_scan_until. The list does not have a VSPACE at the end.
(do_if): Save, clear, and restore only_seen_white around
_cpp_parse_expr.
(skip_if_group): s/CPP_DIRECTIVE/CPP_HASH/
(do_assert, do_unassert): Rewrite.
* cpplib.h (TTYPE_TABLE): Remove CPP_ASSERTION.
(LIST_OFFSET): New flag.
(struct cpp_toklist): Replace dir_handler and dir_flags with
dirno and flags.
(struct cpp_reader): Remove parsing_if_directive and
parsing_define_directive.
From-SVN: r33984
* fixinc/inclhack.def (broken_cabs): Update fix to handle comments
following the cabs decl which terminate on the following line.
Add the corresponding test_text case.
From-SVN: r33983
* gcc_update (self): Set to `$0'.
(touch_files_reexec): Use `$self' instead of `$0'.
Reported by Albert Chin-A-Young <china@thewrittenword.com>
From-SVN: r33974
* decl2.c (finish_anon_union): Generalize error messages to handle
anonymous structures.
* init.c (perform_member_init): Remove `name' parameter.
(build_field_list): New function.
(sort_member_init): Handle anonymous union initialization order
correctly. Check for multiple initializations of the same union.
(emit_base_init): Don't look up fields by name here.
(expand_member_init): Record the result of name lookup for future
reference.
* typeck.c (build_component_ref): Fix formatting.
From-SVN: r33963
* cpplib.c: New feature, #pragma system_header.
* cpp.texi: Document special treatment of system headers, and
the various mechanisms to get a header that special treatment.
From-SVN: r33962
* libjava.mauve/mauve.exp (test_mauve): Call `prune_warnings'.
(test_mauve_sim): Likewise.
(test_mauve): Redirect stderr in system call.
(test_mauve_sim): Likewise.
* lib/libjava.exp (test_libjava_from_source): Call
`prune_warnings'.
(test_libjava_from_javac): Likewise.
(bytecompile_file): Redirect stderr in system call.
* lib/libjava.exp (libjava_find_program): New proc.
(find_jvscan): Use it.
(find_gcjh): New proc.
* libjava.compile/compile.exp: Use "", not $options.
From-SVN: r33959
* fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix):
Don't check the return value of sprintf. Use asprintf to avoid
buffer overflows.
From-SVN: r33955
* config/ia64/crtbegin.asm (__dso_handle): Mark hidden if the
assembler supports it.
(.fini, .init): Use a gp-relative indirect call.
(__do_global_dtors_aux): Preserve the gp; rebundle.
(__do_frame_setup): Likewise.
* config/ia64/crtend.asm (.IA_64.unwind): Don't terminate with -1.
(.init): Use a gp-relative indirect call.
(__do_global_ctors_aux): Preserve the gp.
From-SVN: r33951
* flow.c (commit_one_edge_insertion): Be prepared for a return
insn to be inserted on the edge with a normal jump.
* jump.c (jump_optimize_1): Don't look to create return isns.
* flow.c (flow_delete_insn): Don't adjust reference count of notes.
* jump.c (jump_optimize_1): Likewise.
(returnjump_p): Verify the argument is a JUMP_INSN.
* rtl.def (NOTE): Add 5th element for NOTE_INSN_DELETED_LABEL.
From-SVN: r33950
* class.c (copy_virtuals): New function.
(build_primary_table): Use it.
(build_secondary_vtable): Likewise.
(modify_vtable_entry): Use NULL_TREE, not integer_zero_node, to
indicate that no vcall offset is required.
(add_virtual_function): Likewise.
(modify_all_vtables): Likewise.
(dfs_finish_vtbls): Adjust call to build_vtbl_initializer.
(dfs_accumulate_vtbl_inits): Likewise.
(build_vtbl_initializer): Make changes to handle construction
vtables.
(dfs_build_vcall_offset_vtbl_entries): Likewise.
(build_rtti_vtbl_entries): Likewise.
(build_vtable_entries): Handle a NULL vcall_index.
From-SVN: r33944
2000-05-16 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* sysv4.h (CPP_OS_LINUX_SPEC): Define __unix and __linux according
to given options.
From-SVN: r33942
* mn10200.h (PREFERRED_RELOAD_CLASS): Do not prefer DATA_REGS
if X has VOIDmode either.
(LIMIT_RELOAD_CLASS): Similarly.
* mn10200.md (indirect_jump, tablejump): Use "register_operand",
not "general_operand" to match the processor's capabilities.
From-SVN: r33940