@@ -24355,7 +24355,7 @@ gen_typedef_die (tree decl, dw_die_ref context_die)
type_die = new_die (DW_TAG_typedef, context_die, decl);
origin = decl_ultimate_origin (decl);
if (origin != NULL)
- add_abstract_origin_attribute (type_die, origin);
+ gcc_unreachable (), add_abstract_origin_attribute (type_die, origin);
else
{
tree type = TREE_TYPE (decl);
@@ -24858,6 +24858,16 @@ process_scope_var (tree stmt, tree decl, tree origin, dw_die_ref context_die)
else
die = NULL;
+ if ((origin || DECL_ABSTRACT_ORIGIN (decl))
+ && (TREE_CODE (decl_or_origin) == TYPE_DECL
+ || (VAR_P (decl_or_origin) && TREE_STATIC (decl_or_origin))))
+ {
+ origin = decl_ultimate_origin (decl_or_origin);
+ if (decl && VAR_P (decl))
+ equate_decl_number_to_die (decl, lookup_decl_die (origin));
+ return;
+ }
+
if (die != NULL && die->die_parent == NULL)
add_child_die (context_die, die);
else if (TREE_CODE (decl_or_origin) == IMPORTED_DECL)