<!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>&nbsp;</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>&nbsp;</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>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
fqname = id.Name(d.scopedName()).fullyQualify()<BR>&gt; 
<BR>950c952,953<BR>&lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
name = 
derivedName)<BR>---<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
name = 
derivedName,<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
fqname = 
fqname)<BR>956c959,960<BR>&lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
name = 
derivedName)<BR>---<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
name = 
derivedName,<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
fqname = fqname)</SPAN></FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</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>&lt;&nbsp;&nbsp; static 
inline @name@_slice* alloc() { return @name@_alloc(); }<BR>&lt;&nbsp;&nbsp; 
static inline @name@_slice* dup(const @name@_slice* p) { return @name@_dup(p); 
}<BR>&lt;&nbsp;&nbsp; static inline void free(@name@_slice* p) { @name@_free(p); 
}<BR>---<BR>&gt;&nbsp;&nbsp; static inline @name@_slice* alloc() { return 
@fqname@_alloc(); }<BR>&gt;&nbsp;&nbsp; static inline @name@_slice* dup(const 
@name@_slice* p) { return @fqname@_dup(p); }<BR>&gt;&nbsp;&nbsp; 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>&nbsp;</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&nbsp;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>&nbsp;</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>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff size=2><SPAN 
class=031034615-25112008><FONT face="Courier New" color=#000000>&gt;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>&nbsp;</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>&nbsp;</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>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff size=2><SPAN 
class=031034615-25112008></SPAN></FONT>&nbsp;</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>&nbsp;</DIV>
  <DIV><SPAN class=367391514-24112008><FONT color=#0000ff size=2>The following 
  small idl file reveals&nbsp;<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>&nbsp;</DIV>
  <DIV><FONT face="Courier New" size=2><SPAN 
  class=367391514-24112008>------------------- bug<SPAN 
  class=050234514-25112008>2</SPAN>.idl 
  &nbsp;---------------------------------</SPAN></FONT></DIV>
  <DIV>
  <DIV><FONT face="Courier New" size=2><SPAN class=367391514-24112008>module M1 
  {<BR>&nbsp; struct S {<BR>&nbsp;&nbsp;&nbsp; long&nbsp; T;<BR>&nbsp; 
  };</SPAN></FONT></DIV>
  <DIV><FONT size=2></FONT>&nbsp;</DIV>
  <DIV><FONT face="Courier New" size=2><SPAN class=367391514-24112008>&nbsp; 
  typedef ::M1::S&nbsp; A[4];<BR>};</SPAN></FONT></DIV>
  <DIV><FONT size=2></FONT>&nbsp;</DIV>
  <DIV><FONT face="Courier New" size=2><SPAN class=367391514-24112008>module M2 
  {<BR>&nbsp; typedef ::M1::S&nbsp; 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>&nbsp;</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>&nbsp;</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*&amp;)' is 
  ambiguous<BR>bug2.hh:136: note: candidates are: M2::A_slice* M2::A_dup(const 
  M2::A_slice*)<BR>bug2.hh:84: 
  note:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  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*&amp;)' is 
  ambiguous<BR>bug2.hh:159: note: candidates are: void 
  M2::A_free(M2::A_slice*)<BR>bug2.hh:107: 
  note:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  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>&nbsp;</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>&nbsp;</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>