}
else
{
- dw2_asm_output_data_uleb128 (curr->vbegin, "Location view begin");
- dw2_asm_output_data_uleb128 (curr->vend, "Location view end");
+ dw2_asm_output_data_uleb128 (ZERO_VIEW_P (curr->vbegin)
+ ? 0 : curr->vbegin, "Location view begin");
+ dw2_asm_output_data_uleb128 (ZERO_VIEW_P (curr->vend)
+ ? 0 : curr->vend, "Location view end");
}
#endif /* DW_LLE_view_pair */
}
else
{
- dw2_asm_output_data_uleb128 (curr->vbegin,
+ dw2_asm_output_data_uleb128 (ZERO_VIEW_P (curr->vbegin)
+ ? 0 : curr->vbegin,
"View list begin (%s)",
list_head->vl_symbol);
- dw2_asm_output_data_uleb128 (curr->vend,
+ dw2_asm_output_data_uleb128 (ZERO_VIEW_P (curr->vend)
+ ? 0 : curr->vend,
"View list end (%s)",
list_head->vl_symbol);
}
layout. */
/* { dg-final { scan-assembler-times "\\(DIE \\(\[^\n\]*\\) DW_TAG_lexical_block" 0 } } */
+/* Each inline instance should have DW_AT_entry_pc and DW_AT_GNU_entry_view. */
+/* { dg-final { scan-assembler-times " DW_AT_entry_pc" 6 } } */
+/* { dg-final { scan-assembler-times " DW_AT_GNU_entry_view" 6 } } */
/* There are 3 DW_AT_inline attributes: one per abstract inline instance.
The value of the attribute must be 0x3, meaning the function was
/* Explicitly use dwarf-5 which uses DW_FORM_implicit_const. */
/* { dg-do compile } */
-/* { dg-options "-O -g3 -gdwarf-5 -dA -fgnu89-inline" } */
+/* { dg-options "-O -g3 -gdwarf-5 -dA -fgnu89-inline -gno-as-loc-support" } */
/* There are 6 inlined subroutines:
- One for each subroutine inlined into main, that's 3.
layout. */
/* { dg-final { scan-assembler-times "\\(DIE \\(\[^\n\]*\\) DW_TAG_lexical_block" 0 } } */
+/* Each inline instance should have DW_AT_entry_pc and DW_AT_GNU_entry_view. */
+/* { dg-final { scan-assembler-times " DW_AT_entry_pc" 6 } } */
+/* { dg-final { scan-assembler-times " DW_AT_GNU_entry_view" 6 } } */
+/* { dg-final { scan-assembler-times "uleb128\[^\n\]*LVU\[^\n\]* (View list|Location view) (begin|end)" 0 } } */
+/* { dg-final { scan-assembler-times "uleb128\[^\n\]*0xffffffff\[^\n\]* (View list|Location view) (begin|end)" 0 } } */
/* There are 3 DW_AT_inline attributes: one per abstract inline instance.
The value of the attribute must be 0x3, meaning the function was
dwarf2out_as_loc_support = dwarf2out_default_as_loc_support ();
if (!OPTION_SET_P (dwarf2out_as_locview_support))
dwarf2out_as_locview_support = dwarf2out_default_as_locview_support ();
+ if (dwarf2out_as_locview_support && !dwarf2out_as_loc_support)
+ {
+ if (OPTION_SET_P (dwarf2out_as_locview_support))
+ warning_at (UNKNOWN_LOCATION, 0,
+ "%<-gas-locview-support%> is forced disabled "
+ "without %<-gas-loc-support%>");
+ dwarf2out_as_locview_support = false;
+ }
if (!OPTION_SET_P (debug_variable_location_views))
{
= (flag_var_tracking
&& debug_info_level >= DINFO_LEVEL_NORMAL
&& dwarf_debuginfo_p ()
- && !dwarf_strict
- && dwarf2out_as_loc_support
- && dwarf2out_as_locview_support);
+ && !dwarf_strict);
}
else if (debug_variable_location_views == -1 && dwarf_version != 5)
{