* cp-tree.h: Tweak documentation.
* class.c (build_vbase_pointer_fields): Layout the fields, too.
(avoid_overlap): Remove.
(get_binfo_offset_as_int): New function.
(dfs_serach_base_offsets): Likewise.
(layout_nonempty_base_or_field): Likewise.
(build_base_field): Layout fields here. Avoid placing two objects
of the same type at the same address, under the new ABI.
(build_base_fields): Adjust accordingly.
(create_vtable_ptr): Return the new field, but don't attach it to
TYPE_FIELDS.
(remove_base_field): Remove.
(remove_base_fields): Remove.
(layout_basetypes): Adjust accordingly.
(layout_class_type): Call layout_field for each field, rather than
just making a wholesale call to layout_type.
From-SVN: r32550
* cp-tree.h: Tweak documentation.
* class.c (build_vbase_pointer_fields): Layout the fields, too.
(avoid_overlap): Remove.
(get_binfo_offset_as_int): New function.
(dfs_serach_base_offsets): Likewise.
(layout_nonempty_base_or_field): Likewise.
(build_base_field): Layout fields here. Avoid placing two objects
of the same type at the same address, under the new ABI.
(build_base_fields): Adjust accordingly.
(create_vtable_ptr): Return the new field, but don't attach it to
TYPE_FIELDS.
(remove_base_field): Remove.
(remove_base_fields): Remove.
(layout_basetypes): Adjust accordingly.
(layout_class_type): Call layout_field for each field, rather than
just making a wholesale call to layout_type.
From-SVN: r32549
* flow.c (fixup_reorder_chain): Avoid double labels in the basic block;
end of basic block is jump_insn, not barrier; use create_basic_block
instead of creating basic block by hand.
From-SVN: r32547
* flow.c (reorder_basic_blocks): Account for barriers when writing
over NEXT_INSN (last_bb->end).
(verify_flow_info): Add check for missing barriers.
From-SVN: r32545
* configure.in (hppa configurations): Add pa32-regs.h to the
list of tm files as appropriate.
* configure: Rebuilt.
* pa.c (compute_frame_size): Remove explicit knowledge about FP
register numbering.
(hppa_expand_prologue, hppa_expand_epilogue): Likewise.
(fmpyaddoperands, fmpysuboperands): Likewise.
* pa.h: Remove various definitions which depend on knowing
how registers are numbered.
* pa32-regs.h: New file with PA32 register numbering specific
definitions.
From-SVN: r32527
2000-03-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
* parse.y (resolve_package): Set `next' once a type name has been
progressively discovered.
(resolve_qualified_expression_name): Propagate resolution only if
there are remaining qualifiers. Take into account `q' might have
been cleared after re-qualification.
* parse.y (patch_method_invocation): New local `resolved'.
Section dealing with qualified expression rewritten to use
resolve_field_access.
From-SVN: r32520
* cppfiles.c: Include mkdeps.h.
(find_include_file, read_include_file): Remove _cpp_ prefix
from name, make static.
(_cpp_execute_include): New function, broken out of
do_include.
* cpplib.c: Don't include mkdeps.h.
(struct directive): Remove type field. Reorder entries. The
function takes only one argument.
(struct if_stack): Make type field an int.
(directive_table): Rename to dtable. Generate it, the
prototypes of the directive handlers, and the enum for the
directive numbers, from a template macro.
(do_ifndef, do_include_next, do_import): New functions.
(do_define, do_include, do_endif, do_ifdef, do_if, do_else,
do_undef, do_line, do_elif, do_error, do_pragma, do_warning,
do_ident, do_assert, do_unassert, do_sccs): Take only one
argument.
(do_sccs): Define always, but alter behavior based on
SCCS_DIRECTIVE.
(_cpp_handle_directive, consider_directive_while_skipping):
Restructure for new directive table layout.
(pass_thru_directive): Take a directive number, not a pointer
to a struct directive.
(parse_include): New function, broken out of do_include.
(do_include, do_import, do_include_next): Use parse_include
and _cpp_execute_include.
(do_elif, do_else): Test for T_ELSE specifically when checking
for #elif/#else after #else.
(parse_ifdef): New function, broken out of do_ifdef.
(validate_else): Expect a name arg without a leading #.
(if_directive_name): Delete.
(cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call
directive handlers with only one argument.
* cpphash.h: Update prototypes.
(enum node_type): Remove entries for directives.
* Makefile.in: Update dependencies.
From-SVN: r32519
* function.c (put_var_into_stack): Use type_for_mode to calculate
part_type. Use MEM_SET_IN_STRUCT_P.
* expr.c (store_field): Handle CONCAT.
(store_constructor): Use fields_length.
* tree.c (fields_length): New fn.
* tree.h: Declare it.
From-SVN: r32514
* decl.c (grokfndecl): Set TREE_NOTHROW if TYPE_NOTHROW_P.
* except.c (dtor_nothrow): New fn.
(do_pop_exception): Use it. Take type parm.
(push_eh_cleanup): Take type parm.
(expand_start_catch_block): Pass it.
(build_eh_type_type_ref): Accept null type.
From-SVN: r32510
* cpplib.c (do_pragma_implementation): Fix off-by-one error
truncating a string. Don't assume tokens are nul terminated.
Problem noted by Andreas Jaeger <aj@suse.de>
From-SVN: r32507
* tree.h (record_layout_info_s): New structure.
(record_layout_info): New type.
(new_record_layout_info): New function.
(layout_field): Likewise.
(finish_record_layout): Likewise.
* stor-layout.c (layout_record): Remove.
(new_record_layout_info): New function.
(layout_field): New function, broken out from layout_record.
(finalize_record_size): Likewise.
(compute_record_mode): Likewise.
(finalize_type_size): New function, broken out from layout_type.
(finish_record_layout): Likewise.
(layout_type): Use them.
From-SVN: r32503