This patch was a fix by Julian which corrected a HOST_BITS_PER_WIDE_INT host dependency in dwarf generation. Nios II does not have need_64bit_hwint switched on during configuring, and ran into GDB test FAILs originating from this problem.
2013-04-18 Julian Brown <jul...@codesourcery.com> * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT dependency behavior in enumeration type DIE generation.
Index: gcc/dwarf2out.c =================================================================== --- gcc/dwarf2out.c (revision 407083) +++ gcc/dwarf2out.c (revision 409063) @@ -17025,15 +17025,21 @@ if (TREE_CODE (value) == CONST_DECL) value = DECL_INITIAL (value); - if (host_integerp (value, TYPE_UNSIGNED (TREE_TYPE (value)))) + if (host_integerp (value, TYPE_UNSIGNED (TREE_TYPE (value))) + && (simple_type_size_in_bits (TREE_TYPE (value)) + <= HOST_BITS_PER_WIDE_INT || host_integerp (value, 0))) /* DWARF2 does not provide a way of indicating whether or not enumeration constants are signed or unsigned. GDB always assumes the values are signed, so we output all values as if they were signed. That means that enumeration constants with very large unsigned values will appear to have negative values in the debugger. */ - add_AT_int (enum_die, DW_AT_const_value, - tree_low_cst (value, tree_int_cst_sgn (value) > 0)); + add_AT_int (enum_die, DW_AT_const_value, TREE_INT_CST_LOW (value)); + else + /* Enumeration constants may be wider than HOST_WIDE_INT. Handle + that here. */ + add_AT_double (enum_die, DW_AT_const_value, + TREE_INT_CST_HIGH (value), TREE_INT_CST_LOW (value)); } add_gnat_descriptive_type_attribute (type_die, type, context_die);