2006-08-31 Sandra Loosemore * gcc/lto/lto.c (struct lto_context): Remove type field, add language. (lto_read_uleb128): Fix to assemble bytes in the correct order. (lto_read_sleb128): New. (lto_read_form): Make it know about some more attributes. Make it understand DW_FORM_sdata and DW_FORM_udata. (lto_find_integral_type): New. (lto_read_compile_unit_DIE): Return tree instead of void. Set the language in the context. (lto_read_array_type_DIE): New. (lto_read_enumeration_type_DIE): New. (lto_read_enumerator_DIE): New. (lto_read_variable_formal_parameter_constant_DIE): Return the decl instead of void. (lto_read_pointer_type_DIE): Return the type instead of void. (lto_read_subrange_type_DIE): New. (lto_read_base_type_DIE): Return the type instead of void. Also, GCC generates unnamed base_type DIEs, so do something sensible if we get one. (lto_read_DIE): Change type to return the tree value constructed from reading the DIE. Make the boolean "more" flag a parameter instead. Updated all callers. Make it know about the readers for array_type, enumeration_type, and subrange_type, and enumerator DIEs. (lto_collect_child_DIEs): New.