aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/dwarf2out.c28
2 files changed, 21 insertions, 14 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 650bb36..29a0c03 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2000-08-24 Jason Merrill <jason@redhat.com>
+
+ * dwarf2out.c (AT_flag, AT_int, AT_unsigned, AT_string, AT_ref,
+ AT_loc, AT_addr, AT_lbl): Abort on unsuitable input.
+ (get_AT_low_pc, get_AT_hi_pc, get_AT_string, get_AT_flag,
+ get_AT_unsigned, get_AT_ref): Don't call them if get_AT fails.
+
2000-08-24 Greg McGary <greg@mcgary.org>
* optabs.c (init_optabs): Initialize fixtab, fixtrunctab, floattab,
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 731cae6..11e9302 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -4125,7 +4125,7 @@ AT_flag (a)
if (a && AT_class (a) == dw_val_class_flag)
return a->dw_attr_val.v.val_flag;
- return 0;
+ abort ();
}
/* Add a signed integer attribute value to a DIE. */
@@ -4153,7 +4153,7 @@ AT_int (a)
if (a && AT_class (a) == dw_val_class_const)
return a->dw_attr_val.v.val_int;
- return 0;
+ abort ();
}
/* Add an unsigned integer attribute value to a DIE. */
@@ -4181,7 +4181,7 @@ AT_unsigned (a)
if (a && AT_class (a) == dw_val_class_unsigned_const)
return a->dw_attr_val.v.val_unsigned;
- return 0;
+ abort ();
}
/* Add an unsigned double integer attribute value to a DIE. */
@@ -4247,7 +4247,7 @@ AT_string (a)
if (a && AT_class (a) == dw_val_class_str)
return a->dw_attr_val.v.val_str;
- return NULL;
+ abort ();
}
/* Add a DIE reference attribute value to a DIE. */
@@ -4275,7 +4275,7 @@ AT_ref (a)
if (a && AT_class (a) == dw_val_class_die_ref)
return a->dw_attr_val.v.val_die_ref;
- return NULL;
+ abort ();
}
/* Add an FDE reference attribute value to a DIE. */
@@ -4320,7 +4320,7 @@ AT_loc (a)
if (a && AT_class (a) == dw_val_class_loc)
return a->dw_attr_val.v.val_loc;
- return NULL;
+ abort ();
}
/* Add an address constant attribute value to a DIE. */
@@ -4348,7 +4348,7 @@ AT_addr (a)
if (a && AT_class (a) == dw_val_class_addr)
return a->dw_attr_val.v.val_addr;
- return NULL;
+ abort ();
}
/* Add a label identifier attribute value to a DIE. */
@@ -4394,7 +4394,7 @@ AT_lbl (a)
|| AT_class (a) == dw_val_class_lbl_offset))
return a->dw_attr_val.v.val_lbl_id;
- return NULL;
+ abort ();
}
/* Get the attribute of type attr_kind. */
@@ -4436,7 +4436,7 @@ get_AT_low_pc (die)
register dw_die_ref die;
{
register dw_attr_ref a = get_AT (die, DW_AT_low_pc);
- return AT_lbl (a);
+ return a ? AT_lbl (a) : NULL;
}
/* Return the "high pc" attribute value, typically associated with
@@ -4449,7 +4449,7 @@ get_AT_hi_pc (die)
register dw_die_ref die;
{
register dw_attr_ref a = get_AT (die, DW_AT_high_pc);
- return AT_lbl (a);
+ return a ? AT_lbl (a) : NULL;
}
/* Return the value of the string attribute designated by ATTR_KIND, or
@@ -4461,7 +4461,7 @@ get_AT_string (die, attr_kind)
register enum dwarf_attribute attr_kind;
{
register dw_attr_ref a = get_AT (die, attr_kind);
- return AT_string (a);
+ return a ? AT_string (a) : NULL;
}
/* Return the value of the flag attribute designated by ATTR_KIND, or -1
@@ -4473,7 +4473,7 @@ get_AT_flag (die, attr_kind)
register enum dwarf_attribute attr_kind;
{
register dw_attr_ref a = get_AT (die, attr_kind);
- return AT_flag (a);
+ return a ? AT_flag (a) : 0;
}
/* Return the value of the unsigned attribute designated by ATTR_KIND, or 0
@@ -4485,7 +4485,7 @@ get_AT_unsigned (die, attr_kind)
register enum dwarf_attribute attr_kind;
{
register dw_attr_ref a = get_AT (die, attr_kind);
- return AT_unsigned (a);
+ return a ? AT_unsigned (a) : 0;
}
static inline dw_die_ref
@@ -4494,7 +4494,7 @@ get_AT_ref (die, attr_kind)
register enum dwarf_attribute attr_kind;
{
register dw_attr_ref a = get_AT (die, attr_kind);
- return AT_ref (a);
+ return a ? AT_ref (a) : NULL;
}
static inline int