+2008-02-04 Jerome Guitton <guitton@adacore.com>
+
+ * ada-lang.c (ada_template_to_fixed_record_type_1): Check size
+ of type to guard against a crash.
+
2009-02-04 Jerome Guitton <guitton@adacore.com>
* value.c (value_from_contents_and_address): Always return
else if (is_dynamic_field (type, f))
{
if (dval0 == NULL)
- dval = value_from_contents_and_address (rtype, valaddr, address);
+ {
+ /* rtype's length is computed based on the run-time
+ value of discriminants. If the discriminants are not
+ initialized, the type size may be completely bogus and
+ GDB may fail to allocate a value for it. So check the
+ size first before creating the value. */
+ check_size (rtype);
+ dval = value_from_contents_and_address (rtype, valaddr, address);
+ }
else
dval = dval0;