[omniORB] gcc and multiple virtual inheritance
zee
zeyu@kasenna.com
Mon, 18 Feb 2002 15:52:57 -0800
This is a multi-part message in MIME format.
------=_NextPart_000_0068_01C1B894.55C0E4E0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Hi there, i recently ran into a problem with fairly basic operations. I =
have an IDL that says:
module A {
interface B {
};
interface C : B {
};
};
This would generate C++ classes:
A::_impl_B
A::_impl_C
POA_A::B
POA_A::C
in the skeletons. My implementation of B and C would then be:
A_C_impl : public POA_A::C, PortableServer::RefCountServantBase
The constructor code for A_C_impl generated by gcc is bad and would =
corrupt the heap with segvs. Both gcc-2.95.2 and gcc-3.0.2 exhibit this =
problem.
Had anybody else seen this? How do you guys implement interface =
inheritance using gcc? do you use a tie based implementation?
z
P.S. there was some info posted last year about this but i couldn't =
find any post of solutions.
http://www.uk.research.att.com/omniORB/archives/2001-06/0182.html
------=_NextPart_000_0068_01C1B894.55C0E4E0
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2712.300" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>Hi there, i recently ran into a problem =
with fairly=20
basic operations. I have an IDL that says:</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>module A {</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>interface B {</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2> };</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>interface C : B {</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2> };</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>};</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>This would generate C++ =
classes:</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>A::_impl_B</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>A::_impl_C</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>POA_A::B</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>POA_A::C</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>in the skeletons. My =
implementation of B and=20
C would then be:</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>A_C_impl : public POA_A::C,=20
PortableServer::RefCountServantBase</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>The constructor code for A_C_impl =
generated by=20
gcc is bad and would corrupt the heap with segvs. Both gcc-2.95.2 =
and=20
gcc-3.0.2 exhibit this problem.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>Had anybody else seen this? How =
do you guys=20
implement interface inheritance using gcc? do you use a tie based=20
implementation?</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>z</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>P.S. there was some info posted =
last year=20
about this but i couldn't find any post of solutions.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><A=20
href=3D"http://www.uk.research.att.com/omniORB/archives/2001-06/0182.html=
">http://www.uk.research.att.com/omniORB/archives/2001-06/0182.html</A></=
DIV></BODY></HTML>
------=_NextPart_000_0068_01C1B894.55C0E4E0--