[omniORB] Another IDL compiler output problem for VC++ in recent snapshots
Carl Thompson
cet@carlthompson.net
Mon, 05 Nov 2001 14:45:04 -0800
The problem seems to be the IDL compiler is generating _raise() methods with
the wrong signature. It is generating
void _raise();
but should be generating
void _raise() const;
The strange thing is that when GCC is used it generates the correct code...
Carl Thompson
Carl Thompson wrote:
> Hello,
>
> I am trying to compile code generated by omniidl with VC++6sp5 but
> I am getting errors related to exception class generation and use It
> works fine with gcc and with older snapshots so I think this is a VC++
> incompatibility introduced in recent snapshots. I am using 20011031.
> The relevant sections of the IDL are:
>
> module LIBSAMS {
> interface Daemon : Component {
> exception NoSuchMStore {};
> exception MSConfExists {};
> exception NoSuchMSConf {};
> exception UserExists {};
> exception NoSuchUser {};
> exception NoSuchAgent {};
>
> ...
>
> };
>
> interface Auth {
> exception InvalidLogin {
> enum ReasonType { UNKNOWN, USERID_TOO_LONG } reason;
> };
>
> ...
>
> };
>
> };
>
>
> The errors I'm getting are:
>
> cl -c -O2 -MT -TP -GX -nologo -D__WIN32__ -D__x86__ -D__NT__
> -D__OSVERSION__=4 -D__OMNIORB4__ -I../../../../omniORB/work/src/include
> -I../../../../omniORB/work/src/include/omniORB4 daemon_ui_impl.cc
> -Foobj/daemon_ui_impl.obj
> daemon_ui_impl.cc
> daemon_ui_impl.cc(159) : error C2259: 'NoSuchUser' : cannot instantiate
> abstract class due to following members:
> corba/ui.h(299) : see declaration of 'NoSuchUser'
> daemon_ui_impl.cc(159) : warning C4259: 'void __thiscall
> CORBA::Exception::_raise(void) const' : pure virtual function was not
> defined
>
> ../../../../omniORB/work/src/include\omniORB4/CORBA_Exception.h(57) :
> see declaration of '_raise'
> daemon_ui_impl.cc(159) : error C2259: 'NoSuchUser' : cannot instantiate
> abstract class due to following members:
> corba/ui.h(299) : see declaration of 'NoSuchUser'
> daemon_ui_impl.cc(159) : warning C4259: 'void __thiscall
> CORBA::Exception::_raise(void) const' : pure virtual function was not
> defined
>
> ../../../../omniORB/work/src/include\omniORB4/CORBA_Exception.h(57) :
> see declaration of '_raise'
> daemon_ui_impl.cc(176) : error C2259: 'UserExists' : cannot instantiate
> abstract class due to following members:
> corba/ui.h(261) : see declaration of 'UserExists'
> daemon_ui_impl.cc(176) : warning C4259: 'void __thiscall
> CORBA::Exception::_raise(void) const' : pure virtual function was not
> defined
>
> ../../../../omniORB/work/src/include\omniORB4/CORBA_Exception.h(57) :
> see declaration of '_raise'
> daemon_ui_impl.cc(176) : error C2259: 'UserExists' : cannot instantiate
> abstract class due to following members:
> corba/ui.h(261) : see declaration of 'UserExists'
> daemon_ui_impl.cc(176) : warning C4259: 'void __thiscall
> CORBA::Exception::_raise(void) const' : pure virtual function was not
> defined
>
> ../../../../omniORB/work/src/include\omniORB4/CORBA_Exception.h(57) :
> see declaration of '_raise'
> daemon_ui_impl.cc(228) : error C2259: 'NoSuchAgent' : cannot instantiate
> abstract class due to following members:
> corba/ui.h(337) : see declaration of 'NoSuchAgent'
> daemon_ui_impl.cc(228) : warning C4259: 'void __thiscall
> CORBA::Exception::_raise(void) const' : pure virtual function was not
> defined
>
> ../../../../omniORB/work/src/include\omniORB4/CORBA_Exception.h(57) :
> see declaration of '_raise'
> daemon_ui_impl.cc(228) : error C2259: 'NoSuchAgent' : cannot instantiate
> abstract class due to following members:
> corba/ui.h(337) : see declaration of 'NoSuchAgent'
> daemon_ui_impl.cc(228) : warning C4259: 'void __thiscall
> CORBA::Exception::_raise(void) const' : pure virtual function was not
> defined
>
> ../../../../omniORB/work/src/include\omniORB4/CORBA_Exception.h(57) :
> see declaration of '_raise'
> daemon_ui_impl.cc(239) : error C2259: 'InvalidLogin' : cannot
> instantiate abstract class due to following members:
> corba/ui.h(502) : see declaration of 'InvalidLogin'
> daemon_ui_impl.cc(239) : warning C4259: 'void __thiscall
> CORBA::Exception::_raise(void) const' : pure virtual function was not
> defined
>
> ../../../../omniORB/work/src/include\omniORB4/CORBA_Exception.h(57) :
> see declaration of '_raise'
> daemon_ui_impl.cc(239) : error C2259: 'InvalidLogin' : cannot
> instantiate abstract class due to following members:
> corba/ui.h(502) : see declaration of 'InvalidLogin'
> daemon_ui_impl.cc(239) : warning C4259: 'void __thiscall
> CORBA::Exception::_raise(void) const' : pure virtual function was not
> defined
>
> ../../../../omniORB/work/src/include\omniORB4/CORBA_Exception.h(57) :
> see declaration of '_raise'
> daemon_ui_impl.cc(247) : error C2259: 'InvalidLogin' : cannot
> instantiate abstract class due to following members:
> corba/ui.h(502) : see declaration of 'InvalidLogin'
> daemon_ui_impl.cc(247) : warning C4259: 'void __thiscall
> CORBA::Exception::_raise(void) const' : pure virtual function was not
> defined
>
> ../../../../omniORB/work/src/include\omniORB4/CORBA_Exception.h(57) :
> see declaration of '_raise'
>
> Thanks,
> Carl Thompson
>
>
>