aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2010-05-21 21:00:27 +0000
committerTom Tromey <tromey@redhat.com>2010-05-21 21:00:27 +0000
commit74de6778b16fe5429d512d7250747f4d9e1ed374 (patch)
tree5f3c526668dca2b25e87cd5c0069781ea3528f0d
parentf346a30d48d166e2471126b8121a819ef39e3312 (diff)
downloadgdb-74de6778b16fe5429d512d7250747f4d9e1ed374.zip
gdb-74de6778b16fe5429d512d7250747f4d9e1ed374.tar.gz
gdb-74de6778b16fe5429d512d7250747f4d9e1ed374.tar.bz2
gdb
* eval.c (evaluate_subexp_standard) <BINOP_SUBSCRIPT>: Call evaluate_subexp, not evaluate_subexp_with_coercion. gdb/testsuite * gdb.dwarf2/pieces.exp (pieces_test_f2): New proc. Call it.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/eval.c4
-rw-r--r--gdb/testsuite/ChangeLog5
-rw-r--r--gdb/testsuite/gdb.dwarf2/pieces.exp14
4 files changed, 26 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 067ea48..4db2977 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2010-05-21 Tom Tromey <tromey@redhat.com>
+
+ * eval.c (evaluate_subexp_standard) <BINOP_SUBSCRIPT>: Call
+ evaluate_subexp, not evaluate_subexp_with_coercion.
+
2010-05-21 Pierre Muller <muller@ics.u-strasbg.fr>
* dwarf2read.c (new_symbol): Handle DW_AT_variable_parameter
diff --git a/gdb/eval.c b/gdb/eval.c
index 1dbf6fa..8efb45a 100644
--- a/gdb/eval.c
+++ b/gdb/eval.c
@@ -2059,8 +2059,8 @@ evaluate_subexp_standard (struct type *expect_type,
error (_("':' operator used in invalid context"));
case BINOP_SUBSCRIPT:
- arg1 = evaluate_subexp_with_coercion (exp, pos, noside);
- arg2 = evaluate_subexp_with_coercion (exp, pos, noside);
+ arg1 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
+ arg2 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
if (noside == EVAL_SKIP)
goto nosideret;
if (binop_user_defined_p (op, arg1, arg2))
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 304334d..87bec37 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2010-05-21 Tom Tromey <tromey@redhat.com>
+ * gdb.dwarf2/pieces.exp (pieces_test_f2): New proc.
+ Call it.
+
+2010-05-21 Tom Tromey <tromey@redhat.com>
+
* gdb.dwarf2.pieces.exp: New file.
* gdb.dwarf2.pieces.S: New file.
* gdb.dwarf2.pieces.c: New file.
diff --git a/gdb/testsuite/gdb.dwarf2/pieces.exp b/gdb/testsuite/gdb.dwarf2/pieces.exp
index bdac582..3515586 100644
--- a/gdb/testsuite/gdb.dwarf2/pieces.exp
+++ b/gdb/testsuite/gdb.dwarf2/pieces.exp
@@ -54,4 +54,18 @@ proc pieces_test_f1 {} {
gdb_test "print a.j" " = 14" "print a.j in pieces:f1"
}
+# Function f2 tests for a bug when indexing into an array created
+# using DW_OP_piece.
+proc pieces_test_f2 {} {
+ global csrcfile
+ set line [gdb_get_line_number "f2 breakpoint" $csrcfile]
+ gdb_test "break pieces.c:$line" "Breakpoint 3.*" \
+ "set f2 breakpoint for pieces"
+ gdb_continue_to_breakpoint "continue to f2 breakpoint for pieces"
+ gdb_test "print a" " = .4, 14." "print a in pieces:f2"
+ gdb_test "print a\[0\]" " = 4" "print a\[0\] in pieces:f2"
+ gdb_test "print a\[1\]" " = 14" "print a\[1\] in pieces:f2"
+}
+
pieces_test_f1
+pieces_test_f2