gcc bug relating to __declspec(dllimport)?
Mumit Khan
khan@nanotech.wisc.edu
Wed Nov 17 10:06:00 GMT 1999
geoff schmidt <gschmidt@mit.edu> writes:
> Hi!
>
> With gcc 2.95.2 targeting mingw32 from linux, this code:
>
> /*--- xyz.cpp ---------------------------------------------------------------
> */
> #include "xyz.h"
>
> #pragma implementation "foo"
> #pragma interface "foo"
>
> class two: public one {};
>
> /*--- xyz.h -----------------------------------------------------------------
> */
> #pragma interface "bar"
>
> class __declspec(dllimport) one {
> public:
> // virtual ~one(void); // see note
> virtual void func(void);
> } ;
>
> /*---------------------------------------------------------------------------
> */
>
> gets me:
>
> $ gcc xyz.cpp
> xyz.cpp:6: Internal compiler error, output_operand_lossage `invalid
> expression as operand'
>
> If I use -fno-rtti, I have to uncomment the virtual destructor to get
> the same behavior.
>
> I know that this error message has come up on the list before, but I'm
> pretty sure that this instance is an actual bug and not a result of
> trying to do things that are impossible with imported DLL data --
> because the above code is a snippet from the wxWindows cross-platform
> GUI library, which compiles happily under several different windows
> compilers. Or am I missing something obvious?
>
> Am I doing something wrong? Is there a way to work around this? If
> it's a bug, I'd be willing to take a stab at a patch if someone can
> point me in the right direction.
>
There are a few nasty bugs when you have virtual functions and also
inline functions in DLL imported classes. It's going to take quite
a few tweaks in the C++ front end to fix these, and unfortunately
I don't have the time right now. Hopefully someone else will jump
in fix these ... the vtable issue is particular harder to fix since
the GNU C++ vtables use offsets, which don't work for dllimported
functions.
Regards,
Mumit
--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com
More information about the Cygwin
mailing list