Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Daniel Jacobowitz <drow@mvista.com>
To: Per Bothner <per@bothner.com>
Cc: gdb-patches@sources.redhat.com
Subject: Re: Fix PR gdb/265, 64-bit pointers in Java
Date: Wed, 20 Feb 2002 15:44:00 -0000	[thread overview]
Message-ID: <20020220184414.A7963@nevyn.them.org> (raw)
In-Reply-To: <3C742B97.2060609@bothner.com>

On Wed, Feb 20, 2002 at 03:04:55PM -0800, Per Bothner wrote:
> Daniel Jacobowitz wrote:
> >On Mon, Feb 11, 2002 at 12:38:18AM -0500, Daniel Jacobowitz wrote:
> >
> >>I don't know if Java allows the implicit 0x123456789 -> 0x123456789L
> >>conversion that we all know and love in C,
> 
> It doesn't. From the Java Languages Specification 2nd ed 3.10.1:
> 
>   A compile-time error occurs if a decimal literal of type int is larger
>   than 2147483648 (2^31), or if the literal 2147483648 appears anywhere
>   other than as the operand of the unary - operator, or if a hexadecimal
>   or octal int literal does not fit in 32 bits.
> 
> > but it certainly behooves us to act that way on the command line.
> 
> I don't see that.  I think the current error is reasonable, but perhaps
> changing it to a warning would be better.  However, silently changing
> the type may change which overloaded methods gets chosen, so it's a bad
> idea.

Well, it does not silently change the type for conforming input;
integers will still be marked as integers.  The patch allows us to accept
things like:
(gdb) x/i 0x123456789

which really ought to work.

Yes, it means for
(gdb) call foo.bar(0x123456789)
we will call the version expecting a long.  But at the same time we
accept things like

(gdb) ptype baz
type = struct {
  int x;
} *
(gdb) print baz.x

Which is obviously bogus C, but valid "GDB expression evaluator in
C-like mode" syntax.  I think this is a valid extension of existing
practice.

If you disagree with me on that, which you certainly can :), then I
would prefer to have a flag for parse_number saying it created an
implicit long and cause errors if the expression being evaluated is a
method call, etc.  I'm not convinced that's worth the trouble.

> >Per never answered me, 
> 
> Sorry.  I guess I didn't notice the question to me.

Sorry for acting prematurely, then.  I should have nagged first.

> > I'm committing this as reasonably obvious,
> 
> Please don't - it's wrong.
> 
> >>+  if (type == java_int_type && n > (ULONGEST)0xffffffff)
> >>+    type = java_long_type;
> 
> One might argue that if the radix is 10, perhaps it should be
> n > (ULONGEST)0x80000000 (given that Java doesn't have unsigned types).

The problem is that this is used for all expressions, and holding all
expressions to strict Java conformance does not seem right to me at
all.

Thoughts?

-- 
Daniel Jacobowitz                           Carnegie Mellon University
MontaVista Software                         Debian GNU/Linux Developer


  reply	other threads:[~2002-02-20 23:44 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-02-10 21:38 Daniel Jacobowitz
2002-02-11 10:24 ` Tom Tromey
2002-02-11 10:31   ` Daniel Jacobowitz
2002-02-20 14:41 ` Daniel Jacobowitz
2002-02-20 15:04   ` Per Bothner
2002-02-20 15:44     ` Daniel Jacobowitz [this message]
2002-02-20 17:30       ` Per Bothner
2002-02-20 18:05         ` Daniel Jacobowitz
2002-02-20 18:11           ` Per Bothner
2002-02-20 18:55             ` Daniel Jacobowitz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20020220184414.A7963@nevyn.them.org \
    --to=drow@mvista.com \
    --cc=gdb-patches@sources.redhat.com \
    --cc=per@bothner.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox