[omniORB] Two bugs in omniidl

Will Denissen Will.Denissen at asml.com
Mon Nov 24 15:24:40 GMT 2008


Dear Duncan,
 
The following small idl files reveals two bugs in omniidl 4.1.3 cxx
backend
 
------------------- bug.idl  ---------------------------------
module tst_mod {
  const   double  C1 = 0.00000001;
 
  typedef long    T;
 
  struct S_tag {
    ::tst_mod::T  T;
    ::tst_mod::T  S;
  };
};
------------------- end of bug.idl ---------------------------

 

It will generate

 

------------------- bugSK.cc ---------------------------------

// This file is generated by omniidl (C++ backend)- omniORB_4_1. Do not
edit.

#include "bug.hh"
#include <omniORB4/IOP_S.h>
#include <omniORB4/IOP_C.h>
#include <omniORB4/callDescriptor.h>
#include <omniORB4/callHandle.h>
#include <omniORB4/objTracker.h>


OMNI_USING_NAMESPACE(omni)

static const char* _0RL_library_version = omniORB_4_1;

 

#if defined(HAS_Cplusplus_Namespace) && defined(_MSC_VER)
// MSVC++ does not give the constant external linkage othewise.
namespace tst_mod { 
  extern const ::CORBA::Double C1 = 1e-08.0;
} 
#else
const ::CORBA::Double tst_mod::C1 = 1e-08.0;
#endif

void
tst_mod::S_tag::operator>>= (cdrStream &_n) const
{
  T >>= _n;
  S >>= _n;

}

void
tst_mod::S_tag::operator<<= (cdrStream &_n)
{
  (tst_mod::T&)T <<= _n;
  (T&)S <<= _n;

}

------------------- end of bugSK.cc --------------------------

 

BUG:

 1) For the special constant C1 it will print the wrong value in C++.

 2) For the second field of the structure the type is not fully
qualified

    and therefore it is interpreted as being the 1st field of the
structure by the C++ compiler

 

 

Is there an easy fix for this?

 

Will.

 

 

W(ill).J.A. Denissen Ph.D

Principal Software Architect

 

ASML Netherlands B.V.

Building 7, De Run 6665, 

5504 DT Veldhoven, 

The Netherlands

 

Phone: +31.40.268.3277

Email: Will.Denissen at asml.com

Web: www.asml.com
<file:///C:/Documents%20and%20Settings/wdenisse/Application%20Data/Micro
soft/Signatures/www.asml.com> 
 


-- 
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. 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20081124/1d1b733c/attachment.htm


More information about the omniORB-list mailing list