Will Denissen
2008-11-24 20:25:25 UTC
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: ***@asml.com
Web: www.asml.com
<file:///C:/Documents%20and%20Settings/wdenisse/Application%20Data/Micro
soft/Signatures/www.asml.com>
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: ***@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
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