Discussion:
[omniORB] Warnings from omniORB header files
Mike Richmond
2010-01-25 22:55:09 UTC
Permalink
I see the following warnings when compiling against the omniORB 4.1.4
headers with Visual C++ 8 options "-W4 -Wp64". C4512 is from -W4,
the others are from -Wp64. I'm happy to squash them at the moment
with #pragma warning, but it would be nice if they could be addressed
in a future version.

...\omniORB_4.1.4\include\omniORB4/stringtypes.h(149) : warning
C4267 : 'argument' : conversion from 'size_t' to 'int', possible loss
of data
...\omniORB_4.1.4\include\omniORB4/stringtypes.h(583) : warning
C4512 : '_CORBA_String_inout' : assignment operator could not be
generated
...\omniORB_4.1.4\include\omniORB4/stringtypes.h(558) : see
declaration of '_CORBA_String_inout'
...\omniORB_4.1.4\include\omniORB4/stringtypes.h(675) : warning
C4312 : 'type cast' : conversion from
'_CORBA_Sequence_String::ptr_arith_t' to 'char *' of greater size
...\omniORB_4.1.4\include\omniORB4/stringtypes.h(685) : warning
C4311 : 'type cast' : pointer truncation from 'char *' to
'_CORBA_Sequence_String::ptr_arith_t'
...\omniORB_4.1.4\include\omniORB4/stringtypes.h(689) : warning
C4311 : 'type cast' : pointer truncation from 'char *' to
'_CORBA_Sequence_String::ptr_arith_t'
...\omniORB_4.1.4\include\omniORB4/wstringtypes.h(554) : warning
C4512 : '_CORBA_WString_inout' : assignment operator could not be
generated
...\omniORB_4.1.4\include\omniORB4/wstringtypes.h(529) : see
declaration of '_CORBA_WString_inout'
...\omniORB_4.1.4\include\omniORB4/wstringtypes.h(647) : warning
C4312 : 'type cast' : conversion from
'_CORBA_Sequence_WString::ptr_arith_t' to '_CORBA_WChar *' of greater
size
...\omniORB_4.1.4\include\omniORB4/wstringtypes.h(658) : warning
C4311 : 'type cast' : pointer truncation from '_CORBA_WChar *' to
'_CORBA_Sequence_WString::ptr_arith_t'
...\omniORB_4.1.4\include\omniORB4/wstringtypes.h(662) : warning
C4311 : 'type cast' : pointer truncation from '_CORBA_WChar *' to
'_CORBA_Sequence_WString::ptr_arith_t'
...\omniORB_4.1.4\include\omniORB4/cdrStream.h(326) : warning C4311 :
'type cast' : pointer truncation from 'void *' to 'omni::ptr_arith_t'
...\omniORB_4.1.4\include\omniORB4/cdrStream.h(328) : warning C4312 :
'type cast' : conversion from 'omni::ptr_arith_t' to 'void *' of
greater size
...\omniORB_4.1.4\include\omniORB4/cdrStream.h(332) : warning C4312 :
'type cast' : conversion from 'omni::ptr_arith_t' to 'void *' of
greater size
...\omniORB_4.1.4\include\omniORB4/cdrStream.h(336) : warning C4312 :
'type cast' : conversion from 'omni::ptr_arith_t' to 'void *' of
greater size
...\omniORB_4.1.4\include\omniORB4/cdrStream.h(337) : warning C4312 :
'type cast' : conversion from 'omni::ptr_arith_t' to '_CORBA_Octet *'
of greater size

... multiple similar warnings in cdrStream.h ...

...\omniORB_4.1.4\include\omniORB4/cdrStream.h(1411) : warning
C4512 : 'cdrStreamAdapter' : assignment operator could not be generated
...\omniORB_4.1.4\include\omniORB4/cdrStream.h(1335) : see
declaration of 'cdrStreamAdapter'
...\omniORB_4.1.4\include\omniORB4/cdrStream.h(1569) : warning
C4512 : 'cdrValueChunkStream' : assignment operator could not be
generated
...\omniORB_4.1.4\include\omniORB4/cdrStream.h(1423) : see
declaration of 'cdrValueChunkStream'
...\omniorb_4.1.4\include\omniorb4\CORBA_Object_vartypes.h(318) :
warning C4512 : 'CORBA::Object_INOUT_arg' : assignment operator could
not be generated
...\omniorb_4.1.4\include\omniorb4\CORBA_Object_vartypes.h
(295) : see declaration of 'CORBA::Object_INOUT_arg'
...\omniorb_4.1.4\include\omniorb4\CORBA_LocalObject_vartypes.h
(302) : warning C4512 : 'CORBA::LocalObject_INOUT_arg' : assignment
operator could not be generated
...\omniorb_4.1.4\include\omniorb4
\CORBA_LocalObject_vartypes.h(279) : see declaration of
'CORBA::LocalObject_INOUT_arg'
...\omniorb_4.1.4\include\omniorb4\CORBA_Any.h(159) : warning C4512 :
'CORBA::Any::from_fixed' : assignment operator could not be generated
...\omniorb_4.1.4\include\omniorb4\CORBA_Any.h(152) : see
declaration of 'CORBA::Any::from_fixed'

... multiple similar warnings in CORBA_Any.h ...

...\omniorb_4.1.4\include\omniorb4\CORBA_ValueBase_vartypes.h(321) :
warning C4512 : 'CORBA::ValueBase_INOUT_arg' : assignment operator
could not be generated
...\omniorb_4.1.4\include\omniorb4\CORBA_ValueBase_vartypes.h
(297) : see declaration of 'CORBA::ValueBase_INOUT_arg'
...\omniorb_4.1.4\include\omniorb4\CORBA_vartypes.h(155) : warning
C4512 : 'CORBA::TypeCode_INOUT_arg' : assignment operator could not
be generated
...\omniorb_4.1.4\include\omniorb4\CORBA_vartypes.h(142) :
see declaration of 'CORBA::TypeCode_INOUT_arg'
...\omniorb_4.1.4\include\omniorb4\CORBA_vartypes.h(189) : warning
C4512 : 'CORBA::TypeCode_OUT_arg' : assignment operator could not be
generated
...\omniorb_4.1.4\include\omniorb4\CORBA_vartypes.h(161) :
see declaration of 'CORBA::TypeCode_OUT_arg'
...\omniORB_4.1.4\include\omniORB4/seqTemplatedecls.h(1947) : warning
C4311 : 'type cast' : pointer truncation from
'CORBA::_objref_InterfaceDef *' to
'_CORBA_Sequence_ObjRef<T,ElemT,T_Helper>::ptr_arith_t'
with
[
T=CORBA::_objref_InterfaceDef,

ElemT=_CORBA_ObjRef_Element<CORBA::_objref_InterfaceDef,CORBA::Interface
Def_Helper>,
T_Helper=CORBA::InterfaceDef_Helper
]
...\omniORB_4.1.4\include\omniORB4/seqTemplatedecls.h(1944):
while compiling class template member function 'void
_CORBA_Sequence_ObjRef<T,ElemT,T_Helper>::freebuf(T **)'
with
[
T=CORBA::_objref_InterfaceDef,

ElemT=_CORBA_ObjRef_Element<CORBA::_objref_InterfaceDef,CORBA::Interface
Def_Helper>,
T_Helper=CORBA::InterfaceDef_Helper
]
...\omniORB_4.1.4\include\omniORB4/seqTemplatedecls.h
(2101) : see reference to class template instantiation
'_CORBA_Sequence_ObjRef<T,ElemT,T_Helper>' being compiled
with
[
T=CORBA::_objref_InterfaceDef,

ElemT=_CORBA_ObjRef_Element<CORBA::_objref_InterfaceDef,CORBA::Interface
Def_Helper>,
T_Helper=CORBA::InterfaceDef_Helper
]
...\omniORB_4.1.4\includeg\omniORB4/ir_defs.hh(765) : see
reference to class template instantiation
'_CORBA_Unbounded_Sequence_ObjRef<T,ElemT,T_Helper>' being compiled
with
[
T=CORBA::_objref_InterfaceDef,

ElemT=_CORBA_ObjRef_Element<CORBA::_objref_InterfaceDef,CORBA::Interface
Def_Helper>,
T_Helper=CORBA::InterfaceDef_Helper
]

... multiple similar warnings in seqTemplatedecls.h ...


I can provide a full list if it would help.

Mike Richmond
Global Graphics Software Ltd
Duncan Grisby
2010-01-25 23:22:48 UTC
Permalink
Post by Mike Richmond
I see the following warnings when compiling against the omniORB 4.1.4
headers with Visual C++ 8 options "-W4 -Wp64". C4512 is from -W4,
the others are from -Wp64. I'm happy to squash them at the moment
with #pragma warning, but it would be nice if they could be addressed
in a future version.
...\omniORB_4.1.4\include\omniORB4/stringtypes.h(149) : warning
C4267 : 'argument' : conversion from 'size_t' to 'int', possible loss
of data
-Wp64 is warning about potential 64 bit issues. What it's not taking
into account is that when omniORB is compiled on a 64 bit platform, a
whole load of the types are defined differently. This particular warning
isn't actually covered by that, but the vast majority of them are. It's
definitely not possible to construct the headers to be free from
warnings of that kind.
Post by Mike Richmond
...\omniORB_4.1.4\include\omniORB4/stringtypes.h(583) : warning
C4512 : '_CORBA_String_inout' : assignment operator could not be
generated
I don't know why the compiler thinks it can't generate an assignment
operatoe here. Does it remove the warning if you define a do-nothing
assignment operator there?

Cheers,

Duncan.
--
-- Duncan Grisby --
-- ***@grisby.org --
-- http://www.grisby.org --
Mike Richmond
2010-01-26 16:37:42 UTC
Permalink
Post by Duncan Grisby
Post by Mike Richmond
I see the following warnings when compiling against the omniORB 4.1.4
headers with Visual C++ 8 options "-W4 -Wp64". C4512 is from -W4,
the others are from -Wp64. I'm happy to squash them at the moment
with #pragma warning, but it would be nice if they could be addressed
in a future version.
...\omniORB_4.1.4\include\omniORB4/stringtypes.h(149) : warning
C4267 : 'argument' : conversion from 'size_t' to 'int', possible loss
of data
-Wp64 is warning about potential 64 bit issues. What it's not taking
into account is that when omniORB is compiled on a 64 bit platform, a
whole load of the types are defined differently. This particular warning
isn't actually covered by that, but the vast majority of them are. It's
definitely not possible to construct the headers to be free from
warnings of that kind.
Fair enough.
Post by Duncan Grisby
Post by Mike Richmond
...\omniORB_4.1.4\include\omniORB4/stringtypes.h(583) : warning
C4512 : '_CORBA_String_inout' : assignment operator could not be
generated
I don't know why the compiler thinks it can't generate an assignment
operatoe here. Does it remove the warning if you define a do-nothing
assignment operator there?
Yes. Adding:

inline _CORBA_String_inout & operator = (const _CORBA_String_inout
&) { return *this; }

removes the warning.


Mike

Loading...