wierd compile bug

Nic Ferrier nferrier@tapsellferrier.co.uk
Fri Jul 6 13:44:00 GMT 2001


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


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /