summaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/testsuite/ChangeLog5
-rw-r--r--gdb/testsuite/gdb.dwarf2/implptr.exp1
-rw-r--r--gdb/valops.c2
4 files changed, 12 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 91861ee8321..27b5a33c549 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2011-07-27 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ Fix crash on lval_computed values.
+ * valops.c (value_zero): Use not_lval for lval_computed.
+
2011-07-27 Tom Tromey <tromey@redhat.com>
* Makefile.in (HFILES_NO_SRCDIR): Add 'common' prefix for
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index cfcc0ff01e0..3060f8e8c96 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2011-07-27 Jan Kratochvil <jan.kratochvil@redhat.com>
+ Fix crash on lval_computed values.
+ * gdb.dwarf2/implptr.exp (print sizeof (j[0])): New test.
+
+2011-07-27 Jan Kratochvil <jan.kratochvil@redhat.com>
+
* gdb.base/help.exp (help whatis): Update the expected string.
2011-07-27 Jan Kratochvil <jan.kratochvil@redhat.com>
diff --git a/gdb/testsuite/gdb.dwarf2/implptr.exp b/gdb/testsuite/gdb.dwarf2/implptr.exp
index a199a84b4ea..0a7d069d258 100644
--- a/gdb/testsuite/gdb.dwarf2/implptr.exp
+++ b/gdb/testsuite/gdb.dwarf2/implptr.exp
@@ -55,6 +55,7 @@ proc implptr_test_bar {} {
"set bar breakpoint for implptr"
gdb_continue_to_breakpoint "continue to bar breakpoint for implptr"
gdb_test "print j" " = \\(intp\\) <synthetic pointer>" "print j in implptr:bar"
+ gdb_test {print sizeof (j[0])} " = 4" {print sizeof (j[0]) in implptr:bar}
gdb_test "print *j" " = 5" "print *j in implptr:bar"
gdb_test "print **k" " = 5" "print **k in implptr:bar"
gdb_test "print ***l" " = 5" "print ***l in implptr:bar"
diff --git a/gdb/valops.c b/gdb/valops.c
index d9cdc134174..ee05d7316a0 100644
--- a/gdb/valops.c
+++ b/gdb/valops.c
@@ -860,7 +860,7 @@ value_zero (struct type *type, enum lval_type lv)
{
struct value *val = allocate_value (type);
- VALUE_LVAL (val) = lv;
+ VALUE_LVAL (val) = (lv == lval_computed ? not_lval : lv);
return val;
}