DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6903>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6903

Exported classes with inlined virtual functions.

           Summary: Exported classes with inlined virtual functions.
           Product: Xerces-C++
           Version: 1.6.0
          Platform: All
               URL: http://cvs.apache.org/viewcvs.cgi/xml-
                    xerces/c/src/xercesc/sax/ErrorHandler.hpp?rev=1.1.1.1&co
                    ntent-type=text/vnd.viewcvs-markup
        OS/Version: All
            Status: NEW
          Severity: Minor
          Priority: Other
         Component: SAX/SAX2
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


Some SAX classes like SAX/ErrorHandler, looks like:

class SAX_EXPORT ErrorHandler
{
public:
    ErrorHandler() {}
    virtual ~ErrorHandler() {}
};

When linking Xerces DLL to my program, my linker (CodeWarrior) gives multiple 
definied warning(s):
ErrorHandler::~ErrorHandler is defined in the XERCES.DLL, and in application.

Since the destructor is virtual, exported, inlined the linker is right.
The descructor should no be inlined, or is should not be exported.

Morover since all of the virtual functions has implementation, the compiler can 
generate a vtbl for it. So the vtbl is also defined twice.

I think that the destructor's implementation should not be inlined.

Regards,
Miklos

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to