This is the mail archive of the
gdb-patches@sourceware.cygnus.com
mailing list for the GDB project.
Patch: java booleans
- To: gdb-patches at sourceware dot cygnus dot com
- Subject: Patch: java booleans
- From: Anthony Green <green at cygnus dot com>
- Date: Sat, 4 Mar 2000 20:00:02 -0800
- Reply-to: green at redhat dot com
This patch fixes gdb's treatment of certain boolean values in java.
Before:
(gdb) set lang java
(gdb) p 1 > 2
$1 = 0
After:
(gdb) set lang java
(gdb) p 1 > 2
$1 = false
--
Anthony Green Red Hat
Sunnyvale, California
2000-03-04 Anthony Green <green@redhat.com>
* language.c: Include jv-lang.h.
(lang_bool_type): Add case for java booleans.
Index: gdb/language.c
===================================================================
RCS file: /cvs/src/src/gdb/language.c,v
retrieving revision 1.3
diff -p -r1.3 language.c
*** language.c 2000/03/04 05:11:19 1.3
--- language.c 2000/03/05 03:42:08
***************
*** 41,46 ****
--- 41,47 ----
#include "language.h"
#include "target.h"
#include "parser-defs.h"
+ #include "jv-lang.h"
extern void _initialize_language PARAMS ((void));
*************** lang_bool_type ()
*** 986,991 ****
--- 987,1001 ----
return type;
}
return builtin_type_bool;
+ case language_java:
+ sym = lookup_symbol ("boolean", NULL, VAR_NAMESPACE, NULL, NULL);
+ if (sym)
+ {
+ type = SYMBOL_TYPE (sym);
+ if (type && TYPE_CODE (type) == TYPE_CODE_BOOL)
+ return type;
+ }
+ return java_boolean_type;
default:
return builtin_type_int;
}
For the testsuite....
2000-03-04 Anthony Green <green@redhat.com>
* gdb.java/jv-exp.exp: New file.
Here's the new file:
# Copyright (C) 2000 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# Please email any bugs, comments, and/or additions to this file to:
# bug-gdb@prep.ai.mit.edu
if $tracelevel then {
strace $tracelevel
}
set prms_id 0
set bug_id 0
# Set the current language to Java. This counts as a test. If it
# fails, then we skip the other tests.
proc set_lang_java {} {
global gdb_prompt
if [gdb_test "set language java" "" "set language java"] {
return 0
}
if [gdb_test "show language" ".* source language is \"java\".*"] {
return 0
}
return 1;
}
proc test_comparisons {} {
global gdb_prompt
# Test various comparisons.
gdb_test "p 1 > 2" " = false"
gdb_test "p 1 < 2" " = true"
}
# Start with a fresh gdb.
gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_test "set print sevenbit-strings" ""
gdb_test "set print address off" "" ""
gdb_test "set width 0" ""
if [set_lang_java] then {
test_comparisons
} else {
fail "Java expression tests suppressed"
}