+Tue Sep 28 16:43:14 1999 Nick Clifton <nickc@cygnus.com>
+
+ * dwarf2out.c (add_abstract_origin_attribute): Abort if
+ origin_die is NULL.
+ (gen_inlined_enumeration_type_die): Do not abort if the type has
+ not been writeen out.
+ (gen_inlined_structure_type_die): Do not abort if the type has
+ not been writeen out.
+ (gen_inlined_union_type_die): Do not abort if the type has
+ not been writeen out.
+ (gen_tagged_type_instantiation_die): Do not abort if the type
+ has not been written out.
+
Tue Sep 28 14:33:47 1999 Bernd Schmidt <bernds@cygnus.co.uk>
* c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined,
register tree origin;
{
dw_die_ref origin_die = NULL;
+
if (TREE_CODE_CLASS (TREE_CODE (origin)) == 'd')
origin_die = lookup_decl_die (origin);
else if (TREE_CODE_CLASS (TREE_CODE (origin)) == 't')
origin_die = lookup_type_die (origin);
+ if (origin_die == NULL)
+ abort ();
+
add_AT_die_ref (die, DW_AT_abstract_origin, origin_die);
}
{
register dw_die_ref type_die = new_die (DW_TAG_enumeration_type,
scope_die_for (type, context_die));
-
- if (!TREE_ASM_WRITTEN (type))
- abort ();
+ /* We do not check for TREE_ASM_WRITTEN (type) being set, as the type may
+ be incomplete and such types are not marked. */
add_abstract_origin_attribute (type_die, type);
}
{
register dw_die_ref type_die = new_die (DW_TAG_structure_type,
scope_die_for (type, context_die));
-
- if (!TREE_ASM_WRITTEN (type))
- abort ();
+ /* We do not check for TREE_ASM_WRITTEN (type) being set, as the type may
+ be incomplete and such types are not marked. */
add_abstract_origin_attribute (type_die, type);
}
{
register dw_die_ref type_die = new_die (DW_TAG_union_type,
scope_die_for (type, context_die));
-
- if (!TREE_ASM_WRITTEN (type))
- abort ();
+ /* We do not check for TREE_ASM_WRITTEN (type) being set, as the type may
+ be incomplete and such types are not marked. */
add_abstract_origin_attribute (type_die, type);
}
this type (i.e. without any const or volatile qualifiers) so make sure
that we have the main variant (i.e. the unqualified version) of this
type now. */
- if (type != type_main_variant (type)
- || !TREE_ASM_WRITTEN (type))
+ if (type != type_main_variant (type))
abort ();
+ /* Do not check TREE_ASM_WRITTEN(type) as it may not be set if this is
+ an instance of an unresolved type. */
+
switch (TREE_CODE (type))
{
case ERROR_MARK:
on within the current translation unit). So here we just ignore all
file-scope function declarations which are not also definitions. If
and when the debugger needs to know something about these functions,
- it wil have to hunt around and find the DWARF information associated
- with the definition of the function. Note that we can't just check
+ it will have to hunt around and find the DWARF information associated
+ with the definition of the function. Note that we can't just check
`DECL_EXTERNAL' to find out which FUNCTION_DECL nodes represent
definitions and which ones represent mere declarations. We have to
check `DECL_INITIAL' instead. That's because the C front-end