This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


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

wierd compile bug


I think I've found an interesting compile bug with the C++ code and I
need a bit of help:

1. identifying whether it *might* be caused by compilation switches

2. working out who to send it to



The bug is in the close() member function of my patched
natPlainSocketImpl.cc

Here it is:


  //close (shutdown) the socket
  void
  java::net::PlainSocketImpl::close ()
  {
     int res = ::close (fnum);

    if(res==-1)
      printf("\nclosing %d got errno: %d\n", fnum, errno);

    //reset the socket fd
    fnum = -1;

    if (res == -1 && !(errno == ENOTCONN))
      throw new java::io::IOException( 
              JvNewStringUTF (strerror (errno)));
  }


The bug is really strange, the file handle fnum is being set to -1
before ::close() is called.

I have checked that no other code is doing it (by commenting out the
assignment to fnum in this m-f) and I'm absolutely sure that this must
be what is happening.

I can't see why g++ might do that, it must be able to tell that the
value is being used in the call to ::close().


So, does anyone think this might be a compile switch getting over
enthusiastic?

Or should I report it as a fault? If so to whom?


Nic


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