This is the mail archive of the gdb-patches@sourceware.cygnus.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Patch: java booleans



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"
}



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]