[Bug target/41473] [4.5 Regression] dsymutil "Assertion failed ..."
howarth at nitro dot med dot uc dot edu
gcc-bugzilla@gcc.gnu.org
Thu Nov 26 22:35:00 GMT 2009
------- Comment #85 from howarth at nitro dot med dot uc dot edu 2009-11-26 22:35 -------
Created an attachment (id=19160)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19160&action=view)
combined patch that fixes dsymutil asserts
Combined patches...
http://gcc.gnu.org/ml/gcc-patches/2009-11/msg01329.html
http://gcc.gnu.org/ml/gcc-patches/2009-11/msg01452.html
with hand merge of section...
@@ -15719,17 +15705,19 @@ add_location_or_const_value_attribute (d
a constant value. That way we are better to use
add_const_value_attribute
rather than expanding constant value equivalent. */
loc_list = lookup_decl_loc (decl);
- if (loc_list && loc_list->first && loc_list->first == loc_list->last)
+ if (loc_list && loc_list->first && loc_list->first == loc_list->last
+ && loc_list->first->var_loc_note
+ && NOTE_VAR_LOCATION (loc_list->first->var_loc_note)
+ && NOTE_VAR_LOCATION_LOC (loc_list->first->var_loc_note))
{
enum var_init_status status;
struct var_loc_node *node;
node = loc_list->first;
status = NOTE_VAR_LOCATION_STATUS (node->var_loc_note);
- rtl = NOTE_VAR_LOCATION (node->var_loc_note);
- if (GET_CODE (rtl) == VAR_LOCATION
- && GET_CODE (XEXP (rtl, 1)) != PARALLEL)
- rtl = XEXP (XEXP (rtl, 1), 0);
+ rtl = NOTE_VAR_LOCATION_LOC (node->var_loc_note);
+ if (GET_CODE (rtl) != PARALLEL)
+ rtl = XEXP (rtl, 0);
if ((CONSTANT_P (rtl) || GET_CODE (rtl) == CONST_STRING)
&& add_const_value_attribute (die, rtl))
return true;
against current gcc trunk. This patch eliminates all of the asserts in dsymutil
during a bootstrap of gcc trunk.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41473
More information about the Gcc-bugs
mailing list