FW: [omniORB] Another bug in omniidl 4.1.3 cxx backend --> fixes

Duncan Grisby duncan at grisby.org
Tue Nov 25 16:07:30 GMT 2008


On Tuesday 25 November, Will Denissen wrote:

> The following patches did fix the problem below.

Please only submit patches in unified or context diff format. The old
diff style is too fragile to safely apply, and is hard to understand.

[...]
> Could you please check whether this is a correct patch?  Although it
> fixes the problem, it is still not clear to me why the C++ compiler is
> complaining about ambiguities because the declarations were made in
> different namespaces?

Name clashes between namespaces are a nightmare area in C++ compilers.
There are compilers with mutually incompatible bugs. I am not at all
sure that your suggested fixes are safe to apply, because they may well
trigger bugs in some compilers. Visual C++ is a particular culprit when
it comes to getting it wrong.

This issue looks like a bug in gcc, but I'd have to check in more depth.

Are these issues you're finding in real IDL?  In general, any IDL that
triggers these kinds of bugs is asking for trouble and would better be
resolved by making the IDL less ambiguous. The big risk with fixing some
of these obscure namespace issues is that the fixes can completely break
all code for some compilers. See the OMNIORB_BASE_CTOR macro in
CORBA_sysdep.h for an example of the pain of dealing with this.

Cheers,

Duncan.

-- 
 -- Duncan Grisby         --
  -- duncan at grisby.org     --
   -- http://www.grisby.org --



More information about the omniORB-list mailing list