mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-23 18:14:13 +08:00
gdb
* gnu-v3-abi.c (gnuv3_rtti_type): Check TYPE_CPLUS_REALLY_JAVA. * gdbtypes.h (struct cplus_struct_type) <is_java>: New field. (TYPE_CPLUS_REALLY_JAVA): New macro. * dwarf2read.c (process_structure_scope): Set TYPE_CPLUS_REALLY_JAVA. gdb/testsuite * gdb.java/jprint.java (jprint.hi): New field. * gdb.java/jprint.exp: Print string.
This commit is contained in:
parent
177b42fefa
commit
eb2a6f420b
@ -1,3 +1,11 @@
|
||||
2011-07-05 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* gnu-v3-abi.c (gnuv3_rtti_type): Check TYPE_CPLUS_REALLY_JAVA.
|
||||
* gdbtypes.h (struct cplus_struct_type) <is_java>: New field.
|
||||
(TYPE_CPLUS_REALLY_JAVA): New macro.
|
||||
* dwarf2read.c (process_structure_scope): Set
|
||||
TYPE_CPLUS_REALLY_JAVA.
|
||||
|
||||
2011-07-05 Thiago Jung Bauermann <bauerman.ibm.com>
|
||||
|
||||
* ada-lang.c: Fix typos.
|
||||
|
@ -7492,6 +7492,9 @@ process_structure_scope (struct die_info *die, struct dwarf2_cu *cu)
|
||||
}
|
||||
|
||||
do_cleanups (back_to);
|
||||
|
||||
if (HAVE_CPLUS_STRUCT (type))
|
||||
TYPE_CPLUS_REALLY_JAVA (type) = cu->language == language_java;
|
||||
}
|
||||
|
||||
quirk_gcc_member_function_pointer (type, cu->objfile);
|
||||
|
@ -705,6 +705,9 @@ struct cplus_struct_type
|
||||
dynamic. Zero if not yet computed. */
|
||||
int is_dynamic : 2;
|
||||
|
||||
/* Non-zero if this type came from a Java CU. */
|
||||
unsigned int is_java : 1;
|
||||
|
||||
/* For derived classes, the number of base classes is given by
|
||||
n_baseclasses and virtual_field_bits is a bit vector containing
|
||||
one bit per base class. If the base class is virtual, the
|
||||
@ -991,6 +994,7 @@ extern void allocate_gnat_aux_type (struct type *);
|
||||
#define BASETYPE_VIA_PUBLIC(thistype, index) \
|
||||
((!TYPE_FIELD_PRIVATE(thistype, index)) && (!TYPE_FIELD_PROTECTED(thistype, index)))
|
||||
#define TYPE_CPLUS_DYNAMIC(thistype) TYPE_CPLUS_SPECIFIC (thistype)->is_dynamic
|
||||
#define TYPE_CPLUS_REALLY_JAVA(thistype) TYPE_CPLUS_SPECIFIC (thistype)->is_java
|
||||
|
||||
#define BASETYPE_VIA_VIRTUAL(thistype, index) \
|
||||
(TYPE_CPLUS_SPECIFIC(thistype)->virtual_field_bits == NULL ? 0 \
|
||||
|
@ -287,6 +287,10 @@ gnuv3_rtti_type (struct value *value,
|
||||
if (TYPE_CODE (values_type) != TYPE_CODE_CLASS)
|
||||
return NULL;
|
||||
|
||||
/* Java doesn't have RTTI following the C++ ABI. */
|
||||
if (TYPE_CPLUS_REALLY_JAVA (values_type))
|
||||
return NULL;
|
||||
|
||||
/* Determine architecture. */
|
||||
gdbarch = get_type_arch (values_type);
|
||||
|
||||
|
@ -1,3 +1,8 @@
|
||||
2011-07-05 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* gdb.java/jprint.java (jprint.hi): New field.
|
||||
* gdb.java/jprint.exp: Print string.
|
||||
|
||||
2011-07-05 Thiago Jung Bauermann <bauerman.ibm.com>
|
||||
|
||||
* gdb.base/call-sc.c: Fix typos.
|
||||
|
@ -70,4 +70,6 @@ if [set_lang_java] then {
|
||||
# so GDB will report these as "optimized out". See gcc/43260.
|
||||
setup_xfail *-*-* gcc/43260
|
||||
gdb_test "print *jprint.props" " = .*" "print a java.util.Properties"
|
||||
|
||||
gdb_test "print jprint.hi" "= java.lang.String \"hi maude\"" "print a java.lang.String"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
// jprint.java test program.
|
||||
//
|
||||
// Copyright 2004, 2010
|
||||
// Copyright 2004, 2010, 2011
|
||||
// Free Software Foundation, Inc.
|
||||
//
|
||||
// Written by Jeff Johnston <jjohnstn@redhat.com>
|
||||
@ -42,6 +42,7 @@ class jvclass {
|
||||
|
||||
public class jprint extends jvclass {
|
||||
public static Properties props = new Properties ();
|
||||
public static String hi = "hi maude";
|
||||
|
||||
public int dothat (int x) {
|
||||
int y = x + 3;
|
||||
|
Loading…
Reference in New Issue
Block a user