[omniORB] Union problem in GCC 4.x

Duncan Grisby duncan at grisby.org
Tue Jun 19 18:11:25 BST 2007


On Friday 18 May, Timothy J Brandt wrote:

> This was originally noted in July 2005.  I wonder if I have missed
> something since then.

Sorry, I've only just had a chance to look at this.

As far as I can see, as well as being reported in July 2005, it was
fixed then as well. omniORB 4.0.7 changes the #ifdef you mention:

[...]
>     #if defined(__GNUG__) || defined(__DECCXX) && (__DECCXX_VER < 60000000)
>     friend class _0RL_tcParser_unionhelper_Test_mTestUnion;
> #else
>     friend class ::_0RL_tcParser_unionhelper_Test_mTestUnion;
> #endif
> 
> => the :: version is necessary for g++ 4

The #ifdef now says 

#if defined(__GNUG__) && (__GNUG__ < 4) || defined(__DECCXX) && (__DECCXX_VER < 60000000)

I'm also bemused by the fact that you say the issue affects omniORB
4.1.0. That doesn't even have a friend declaration there at all, because
it no longer has the tcParser helper functions.

Can you post some IDL that definitely exhibits a problem, the version of
omniORB it's a problem with, and gcc's output?

Cheers,

Duncan.

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



More information about the omniORB-list mailing list