aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog8
-rw-r--r--gdb/jv-exp.y6
-rw-r--r--gdb/jv-lang.c2
-rw-r--r--gdb/jv-typeprint.c2
-rw-r--r--gdb/testsuite/ChangeLog5
-rw-r--r--gdb/testsuite/gdb.java/jprint.java2
6 files changed, 19 insertions, 6 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 2861743..27d67b5 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2007-05-14 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * jv-exp.y (push_fieldnames): Use STRUCTOP_PTR instead of
+ STRUCTOP_STRUCT.
+ * jv-lang.c (evaluate_subexp_java): Handle STRUCTOP_PTR instead of
+ STRUCTOP_STRUCT.
+ * jv-typeprint.c (java_print_type): Do not crash on NULL varstring.
+
2007-05-14 Ulrich Weigand <uweigand@de.ibm.com>
* gdbarch.sh (read_sp): Remove.
diff --git a/gdb/jv-exp.y b/gdb/jv-exp.y
index bb4e05e..fcbb84f 100644
--- a/gdb/jv-exp.y
+++ b/gdb/jv-exp.y
@@ -1265,7 +1265,7 @@ push_variable (struct stoken name)
}
/* Assuming a reference expression has been pushed, emit the
- STRUCTOP_STRUCT ops to access the field named NAME. If NAME is a
+ STRUCTOP_PTR ops to access the field named NAME. If NAME is a
qualified name (has '.'), generate a field access for each part. */
static void
@@ -1281,9 +1281,9 @@ push_fieldnames (name)
{
/* token.ptr is start of current field name. */
token.length = &name.ptr[i] - token.ptr;
- write_exp_elt_opcode (STRUCTOP_STRUCT);
+ write_exp_elt_opcode (STRUCTOP_PTR);
write_exp_string (token);
- write_exp_elt_opcode (STRUCTOP_STRUCT);
+ write_exp_elt_opcode (STRUCTOP_PTR);
token.ptr += token.length + 1;
}
if (i >= name.length)
diff --git a/gdb/jv-lang.c b/gdb/jv-lang.c
index 07d1f45..17516e0 100644
--- a/gdb/jv-lang.c
+++ b/gdb/jv-lang.c
@@ -928,7 +928,7 @@ evaluate_subexp_java (struct type *expect_type, struct expression *exp,
goto nosideret;
return java_value_string (&exp->elts[pc + 2].string, i);
- case STRUCTOP_STRUCT:
+ case STRUCTOP_PTR:
arg1 = evaluate_subexp_standard (expect_type, exp, pos, noside);
/* Convert object field (such as TYPE.class) to reference. */
if (TYPE_CODE (value_type (arg1)) == TYPE_CODE_STRUCT)
diff --git a/gdb/jv-typeprint.c b/gdb/jv-typeprint.c
index 727f728..b004bf9 100644
--- a/gdb/jv-typeprint.c
+++ b/gdb/jv-typeprint.c
@@ -338,6 +338,6 @@ java_print_type (struct type *type, char *varstring, struct ui_file *stream,
/* For demangled function names, we have the arglist as part of the name,
so don't print an additional pair of ()'s */
- demangled_args = strchr (varstring, '(') != NULL;
+ demangled_args = varstring != NULL && strchr (varstring, '(') != NULL;
c_type_print_varspec_suffix (type, stream, show, 0, demangled_args);
}
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index fabd894..a6b1d97 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-05-14 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * gdb.java/jprint.java (public): Avoid invalid call to static
+ method.
+
2007-05-14 Denis Pilat <denis.pilat@st.com>
* gdb.mi/mi-console.exp, gdb.mi/gdb669.exp, gdb.mi/mi-cli.exp,
diff --git a/gdb/testsuite/gdb.java/jprint.java b/gdb/testsuite/gdb.java/jprint.java
index f17607e..4275e89 100644
--- a/gdb/testsuite/gdb.java/jprint.java
+++ b/gdb/testsuite/gdb.java/jprint.java
@@ -54,7 +54,7 @@ public class jprint extends jvclass {
}
public static void main(String[] args) {
jprint x = new jprint ();
- x.print (44);
+ x.dothat (44);
print (k, 33);
}
}