Commit 5bb2ed2c by Mark Mitchell Committed by Mark Mitchell

re PR debug/14328 (gcc3.2.2 generates incorrect debugging enum values)

	PR debug/14328
	* dwarf2out.c (gen_enumeration_type_die): Output all enumeration
	constants as signed values.

From-SVN: r78690
parent 719f407a
2004-02-29 Mark Mitchell <mark@codesourcery.com> 2004-02-29 Mark Mitchell <mark@codesourcery.com>
PR debug/14328
* dwarf2out.c (gen_enumeration_type_die): Output all enumeration
constants as signed values.
PR middle-end/13448 PR middle-end/13448
* c-tree.h (readonly_warning): Rename to ... * c-tree.h (readonly_warning): Rename to ...
(readonly_error): ... this. (readonly_error): ... this.
......
...@@ -10691,20 +10691,20 @@ gen_enumeration_type_die (tree type, dw_die_ref context_die) ...@@ -10691,20 +10691,20 @@ gen_enumeration_type_die (tree type, dw_die_ref context_die)
link != NULL; link = TREE_CHAIN (link)) link != NULL; link = TREE_CHAIN (link))
{ {
dw_die_ref enum_die = new_die (DW_TAG_enumerator, type_die, link); dw_die_ref enum_die = new_die (DW_TAG_enumerator, type_die, link);
tree value = TREE_VALUE (link);
add_name_attribute (enum_die, add_name_attribute (enum_die,
IDENTIFIER_POINTER (TREE_PURPOSE (link))); IDENTIFIER_POINTER (TREE_PURPOSE (link)));
if (host_integerp (TREE_VALUE (link), if (host_integerp (value, TREE_UNSIGNED (TREE_TYPE (value))))
TREE_UNSIGNED (TREE_TYPE (TREE_VALUE (link))))) /* DWARF2 does not provide a way of indicating whether or
{ not enumeration constants are signed or unsigned. GDB
if (tree_int_cst_sgn (TREE_VALUE (link)) < 0) always assumes the values are signed, so we output all
add_AT_int (enum_die, DW_AT_const_value, values as if they were signed. That means that
tree_low_cst (TREE_VALUE (link), 0)); enumeration constants with very large unsigned values
else will appear to have negative values in the debugger. */
add_AT_unsigned (enum_die, DW_AT_const_value, add_AT_int (enum_die, DW_AT_const_value,
tree_low_cst (TREE_VALUE (link), 1)); tree_low_cst (value, tree_int_cst_sgn (value) > 0));
}
} }
} }
else else
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment