+2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com>
+
+ * dwarf2out.c (dwarf2out_late_global_decl): Add locations for
+ symbols that hold a DECL_VALUE_EXPR.
+
2017-06-01 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/80898
{
/* We get called via the symtab code invoking late_global_decl
for symbols that are optimized out. Do not add locations
- for those. */
+ for those, except if they have a DECL_VALUE_EXPR, in which case
+ they are relevant for debuggers. */
varpool_node *node = varpool_node::get (decl);
- if (! node || ! node->definition)
+ if ((! node || ! node->definition) && ! DECL_HAS_VALUE_EXPR_P (decl))
tree_add_const_value_attribute_for_decl (die, decl);
else
add_location_or_const_value_attribute (die, decl, false);
+2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com>
+
+ * debug12.adb, debug12.ads: New testcase.
+
2017-06-01 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/80898
--- /dev/null
+-- { dg-options "-cargs -gdwarf-4 -fdebug-types-section -dA -margs" }
+-- { dg-final { scan-assembler-times "DW_AT_location" 4 } }
+
+package body Debug12 is
+ function Get_A2 return Boolean is
+ begin
+ return A2;
+ end Get_A2;
+end Debug12;
--- /dev/null
+package Debug12 is
+ type Bit_Array is array (Positive range <>) of Boolean
+ with Pack;
+ A : Bit_Array := (1 .. 10 => False);
+ A2 : Boolean renames A (2);
+
+ function Get_A2 return Boolean;
+end Debug12;