]>
Commit | Line | Data |
---|---|---|
f412e1b4 PS |
1 | commit a999ae2c722b366b94987941f0ce899f95e8d679 |
2 | Author: Jan Kratochvil <jan.kratochvil@redhat.com> | |
3 | Date: Fri Mar 2 22:08:49 2012 +0100 | |
4 | ||
5 | Fix crash for gdb.fortran/dynamic.exp with gcc-gfortran-4.1.2-51.el5.x86_64. | |
6 | ||
7 | --- a/gdb/valops.c | |
8 | +++ b/gdb/valops.c | |
9 | @@ -1037,7 +1037,8 @@ int | |
10 | value_fetch_lazy (struct value *val) | |
11 | { | |
12 | gdb_assert (value_lazy (val)); | |
13 | - allocate_value_contents (val); | |
14 | + if (VALUE_LVAL (val) != lval_memory) | |
15 | + allocate_value_contents (val); | |
16 | if (value_bitsize (val)) | |
17 | { | |
18 | /* To read a lazy bitfield, read the entire enclosing value. This | |
19 | @@ -1080,11 +1081,15 @@ value_fetch_lazy (struct value *val) | |
20 | ||
21 | if (length) | |
22 | { | |
23 | + /* Delay it after object_address_get_data above. */ | |
24 | + allocate_value_contents (val); | |
25 | addr += value_offset (val); | |
26 | read_value_memory (val, 0, value_stack (val), | |
27 | addr, value_contents_all_raw (val), length); | |
28 | } | |
29 | } | |
30 | + /* Just to be sure it has been called. */ | |
31 | + allocate_value_contents (val); | |
32 | } | |
33 | else if (VALUE_LVAL (val) == lval_register) | |
34 | { |