===================================================================
@@ -21424,8 +21424,10 @@ dwarf2out_imported_module_or_decl (tree
void
dwarf2out_decl (tree decl)
{
+ dw_die_ref context_die;
+
/* In LIPO mode, we may output some functions whose type is defined
- in another function that will not be output. This can result in
+ in another function that will not be output. This can result in
undefined location list symbols in the debug type info.
Here we disable the output of the type info for this case.
It is safe since this function and its debug info should never
@@ -21435,8 +21437,8 @@ dwarf2out_decl (tree decl)
tree decl_context, orig_decl;
decl_context = DECL_CONTEXT (decl);
- while (decl_context &&
- TREE_CODE (decl_context) != TRANSLATION_UNIT_DECL)
+ while (decl_context
+ && TREE_CODE (decl_context) != TRANSLATION_UNIT_DECL)
{
struct cgraph_node *node;
@@ -21447,17 +21449,17 @@ dwarf2out_decl (tree decl)
/* Refer to cgraph_mark_functions_to_output() in cgraphunit.c,
if cgraph_is_aux_decl_external() is true,
this function will not be output in LIPO mode. */
- if (TREE_CODE (decl_context) == FUNCTION_DECL &&
- TREE_PUBLIC (decl_context) &&
- (node = cgraph_get_node (decl_context)) &&
- cgraph_is_aux_decl_external (node))
+ if (TREE_CODE (decl_context) == FUNCTION_DECL
+ && TREE_PUBLIC (decl_context)
+ && (node = cgraph_get_node (decl_context))
+ && cgraph_is_aux_decl_external (node))
return;
decl_context = DECL_CONTEXT (orig_decl);
}
}
- dw_die_ref context_die = comp_unit_die ();
+ context_die = comp_unit_die ();
switch (TREE_CODE (decl))
{