<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.3429" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff size=2><SPAN
class=031034615-25112008>Dear Duncan,</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff size=2><SPAN
class=031034615-25112008></SPAN></FONT> </DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff size=2><SPAN
class=031034615-25112008>The following patches did fix the problem
below.</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff size=2><SPAN
class=031034615-25112008></SPAN></FONT> </DIV>
<DIV dir=ltr align=left><FONT face="Courier New" size=2><SPAN
class=031034615-25112008>#diff -r org/omniidl_be/cxx/header/defs.py
omniidl_be/cxx/header/defs.py<BR>946a947,948<BR>>
fqname = id.Name(d.scopedName()).fullyQualify()<BR>>
<BR>950c952,953<BR><
name =
derivedName)<BR>---<BR>>
name =
derivedName,<BR>>
fqname =
fqname)<BR>956c959,960<BR><
name =
derivedName)<BR>---<BR>>
name =
derivedName,<BR>>
fqname = fqname)</SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT> </DIV>
<DIV dir=ltr align=left><FONT face="Courier New" size=2><SPAN
class=031034615-25112008>#diff -r org/omniidl_be/cxx/header/template.py
omniidl_be/cxx/header/template.py<BR>875,877c875,877<BR>< static
inline @name@_slice* alloc() { return @name@_alloc(); }<BR><
static inline @name@_slice* dup(const @name@_slice* p) { return @name@_dup(p);
}<BR>< static inline void free(@name@_slice* p) { @name@_free(p);
}<BR>---<BR>> static inline @name@_slice* alloc() { return
@fqname@_alloc(); }<BR>> static inline @name@_slice* dup(const
@name@_slice* p) { return @fqname@_dup(p); }<BR>> static inline
void free(@name@_slice* p) { @fqname@_free(p); }<BR></SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff size=2><SPAN
class=031034615-25112008></SPAN></FONT> </DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff size=2><SPAN
class=031034615-25112008>Could you please check whether this is a correct
patch?</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff size=2><SPAN
class=031034615-25112008>Although it fixes the problem, it is still not clear to
me why the C++ compiler is </SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff size=2><SPAN
class=031034615-25112008>complaining about ambiguities </SPAN></FONT><FONT
face=Arial color=#0000ff size=2><SPAN class=031034615-25112008>because the
declarations were made in different namespaces?</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff size=2><SPAN
class=031034615-25112008></SPAN></FONT> </DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff size=2><SPAN
class=031034615-25112008>PS: the compiler I used was:</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff size=2><SPAN
class=031034615-25112008><FONT face="Courier New"
color=#000000></FONT></SPAN></FONT> </DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff size=2><SPAN
class=031034615-25112008><FONT face="Courier New" color=#000000>>c++
-v<BR>Using built-in specs.<BR>Target: sparc-sun-solaris2.8<BR>Configured with:
../sources/gcc-4.1.2/configure --disable-nls --prefix=/cadappl/gcc/4.1.2/gcc
--enable-threads=posix --disable-target-optspace
--enable-languages=c,c++<BR>Thread model: posix<BR>gcc version
4.1.2</DIV></FONT></SPAN></FONT>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff size=2><SPAN
class=031034615-25112008></SPAN></FONT> </DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff size=2><SPAN
class=031034615-25112008>Best regard,</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff size=2><SPAN
class=031034615-25112008></SPAN></FONT> </DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff size=2><SPAN
class=031034615-25112008>Will Denissen.</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff size=2><SPAN
class=031034615-25112008></SPAN></FONT> </DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff size=2><SPAN
class=031034615-25112008></SPAN></FONT> </DIV><FONT face=Arial
color=#0000ff size=2></FONT><FONT face=Arial color=#0000ff size=2></FONT><FONT
face=Arial color=#0000ff size=2></FONT><FONT face=Arial color=#0000ff
size=2></FONT><BR>
<BLOCKQUOTE
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid; MARGIN-RIGHT: 0px">
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> omniorb-list-bounces@omniorb-support.com
[mailto:omniorb-list-bounces@omniorb-support.com] <B>On Behalf Of </B>Will
Denissen<BR><B>Sent:</B> Tuesday, November 25, 2008 15:53 PM<BR><B>To:</B>
omniorb-list@omniorb-support.com<BR><B>Subject:</B> [omniORB] Another bug in
omniidl 4.1.3 cxx backend<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV><FONT face=Arial><SPAN class=050234514-25112008>
<DIV><SPAN class=367391514-24112008><FONT color=#0000ff size=2>Dear
Duncan,</FONT></SPAN></DIV>
<DIV><SPAN class=367391514-24112008><FONT color=#0000ff
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=367391514-24112008><FONT color=#0000ff size=2>The following
small idl file reveals <SPAN class=050234514-25112008>a</SPAN> bug in
omniidl 4.1.3 cxx backend</FONT></SPAN></DIV>
<DIV><SPAN class=367391514-24112008><FONT size=2></FONT></SPAN> </DIV>
<DIV><FONT face="Courier New" size=2><SPAN
class=367391514-24112008>------------------- bug<SPAN
class=050234514-25112008>2</SPAN>.idl
---------------------------------</SPAN></FONT></DIV>
<DIV>
<DIV><FONT face="Courier New" size=2><SPAN class=367391514-24112008>module M1
{<BR> struct S {<BR> long T;<BR>
};</SPAN></FONT></DIV>
<DIV><FONT size=2></FONT> </DIV>
<DIV><FONT face="Courier New" size=2><SPAN class=367391514-24112008>
typedef ::M1::S A[4];<BR>};</SPAN></FONT></DIV>
<DIV><FONT size=2></FONT> </DIV>
<DIV><FONT face="Courier New" size=2><SPAN class=367391514-24112008>module M2
{<BR> typedef ::M1::S A[2];<BR>};</SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN
class=367391514-24112008>------------------- end of bug<SPAN
class=050234514-25112008>2</SPAN>.idl
---------------------------</SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN
class=367391514-24112008></SPAN></FONT> </DIV>
<DIV><FONT color=#0000ff size=2><SPAN class=367391514-24112008><SPAN
class=050234514-25112008>feeding the generated C++ code to the compiler
gives:</SPAN></SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2><SPAN class=367391514-24112008><SPAN
class=050234514-25112008></SPAN></SPAN></FONT> </DIV>
<DIV><FONT face="Courier New" size=2><SPAN class=367391514-24112008><SPAN
class=050234514-25112008>bug2.hh: In static member function 'static
M2::A_slice* M2::A_copyHelper::dup(const M2::A_slice*)':<BR>bug2.hh:166:
error: call of overloaded 'A_dup(const M2::A_slice*&)' is
ambiguous<BR>bug2.hh:136: note: candidates are: M2::A_slice* M2::A_dup(const
M2::A_slice*)<BR>bug2.hh:84:
note:
M1::A_slice* M1::A_dup(const M1::A_slice*)<BR>bug2.hh: In static member
function 'static void M2::A_copyHelper::free(M2::A_slice*)':<BR>bug2.hh:167:
error: call of overloaded 'A_free(M2::A_slice*&)' is
ambiguous<BR>bug2.hh:159: note: candidates are: void
M2::A_free(M2::A_slice*)<BR>bug2.hh:107:
note:
void M1::A_free(M1::A_slice*)</SPAN></SPAN></FONT></DIV><FONT
face="Courier New" size=2><SPAN class=367391514-24112008><SPAN
class=050234514-25112008></SPAN></SPAN></FONT></DIV><FONT face="Courier New"
size=2><SPAN class=367391514-24112008><SPAN
class=050234514-25112008></SPAN></SPAN></FONT></SPAN></FONT></DIV>
<DIV><SPAN class=050234514-25112008><SPAN class=367391514-24112008><SPAN
class=050234514-25112008>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><SPAN class=050234514-25112008><FONT face=Arial color=#0000ff size=2>Best
regards,</FONT></SPAN></DIV>
<DIV><SPAN class=050234514-25112008><FONT face=Arial color=#0000ff
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=050234514-25112008><FONT face=Arial color=#0000ff size=2>Will
Denissen</FONT></SPAN></DIV></SPAN></SPAN></SPAN></DIV><BR
clear=all></BLOCKQUOTE><br clear=all> --
The information contained in this communication and any attachments is confidential and may be privileged, and is for the sole use of the intended recipient(s). Any unauthorized review, use, disclosure or distribution is prohibited. Unless explicitly stated otherwise in the body of this communication or the attachment thereto (if any), the information is provided on an AS-IS basis without any express or implied warranties or liabilities. To the extent you are relying on this information, you are doing so at your own risk. If you are not the intended recipient, please notify the sender immediately by replying to this message and destroy all copies of this message and any attachments. ASML is neither liable for the proper and complete transmission of the information contained in this communication, nor for any delay in its receipt.
</BODY></HTML>