public inbox for java-prs@sourceware.org
help / color / mirror / Atom feed
From: "greenrd at greenrd dot org" <gcc-bugzilla@gcc.gnu.org>
To: java-prs@gcc.gnu.org
Subject: [Bug java/21016] New: Indirect dispatch code generated when using -findirect-dispatch has wrong line numbers
Date: Thu, 14 Apr 2005 00:55:00 -0000	[thread overview]
Message-ID: <20050414005457.21016.greenrd@greenrd.org> (raw)

(This is superficially similar to bug 16439, in that it involves "synthetic
code" being tagged with insufficiently precise line numbers.)

Compiling the attached .class file with

gcj -findirect-dispatch -shared -S -O0 -g WebappClassLoader.class

results in the following (i386) assembly code for line 1578:

        .loc 1 1578 0
        movl    _CD_org_apache_catalina_loader_WebappClassLoader+200, %eax
        subl    $12, %esp
.LCFI2993:
        pushl   %eax
.LCFI2994:
        call    _Jv_AllocObjectNoFinalizer
        addl    $16, %esp
.LCFI2995:
        movl    %eax, -368(%ebp)
        movl    -368(%ebp), %eax
        movl    %eax, -364(%ebp)
        movl    -364(%ebp), %eax
        movl    %eax, -368(%ebp)
        movl    12(%ebp), %eax
        movl    %eax, -272(%ebp)
        .loc 1 1651 0
        movl    -364(%ebp), %ecx
        movl    _atable_org_apache_catalina_loader_WebappClassLoader+92, %eax
        movl    %eax, %edx
        movl    -272(%ebp), %eax
        subl    $8, %esp
.LCFI2996:
        pushl   %eax
.LCFI2997:
        pushl   %ecx
.LCFI2998:
        call    *%edx
        addl    $16, %esp
.LCFI2999:
        .loc 1 1578 0
        movl    -368(%ebp), %eax
        subl    $12, %esp
.LCFI3000:
        pushl   %eax
.LCFI3001:
        call    _Jv_Throw

Note that while the start and end of this code block is correctly marked as
being from line 1578, the middle (the indirect dispatch) is incorrectly marked
as being from line 1651 (which happens to be the line number of the last
statement in the method.) This causes line numbers in some stack traces to be
incorrect.

Original source file attached below.

# gcj -v
Using built-in specs.
Reading specs from /usr/lib/gcc/i386-redhat-linux/4.0.0/libgcj.spec
rename spec lib to liborig
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --enable-shared --enable-threads=posix
--enable-checking=release --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-languages=c,c++,objc,java,f95,ada
--enable-java-awt=gtk --host=i386-redhat-linux
Thread model: posix
gcc version 4.0.0 20050405 (Red Hat 4.0.0-0.40)

-- 
           Summary: Indirect dispatch code generated when using -findirect-
                    dispatch has wrong line numbers
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: java
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: greenrd at greenrd dot org
                CC: gcc-bugs at gcc dot gnu dot org,java-prs at gcc dot gnu
                    dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21016


             reply	other threads:[~2005-04-14  0:55 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-04-14  0:55 greenrd at greenrd dot org [this message]
2005-04-14  1:02 ` [Bug java/21016] " greenrd at greenrd dot org
2005-04-14  1:06 ` greenrd at greenrd dot org
2005-04-19 19:45 ` pinskia at gcc dot gnu dot org

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=20050414005457.21016.greenrd@greenrd.org \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=java-prs@gcc.gnu.org \
    /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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).