Bug Report no. 46

attlogo6876_dk.gif (2280 bytes)

sideHome.gif (2321 bytes) sideDownload.gif (2450 bytes) sideDocumentation.gif (2512 bytes) sideFAQ.gif (2344 bytes) sidePatch.gif (2543 bytes) sideSearch.gif (2403 bytes)

Reported By

Rumen Raykov

Date

8 Feb 1999

Platforms

All

Version

omniORB 2.7.0 and earlier

Description

omniidl2 generates erroneous code when forward declared interfaces are used but not defined within an IDL translation unit. That is to say the definition is given in neither the main IDL file nor any IDL file it (transitively) includes.

In the following example it is not possible to compile the file aSK.cc.

// a.idl

interface i1;

interface i2 {
  i1 op();
};

// b.idl

#include <a.idl>

interface i3 {
  i2 op();
};

interface i1 {
};

Although it is permissible to omit the definition of i1 in a.idl, it must be defined elsewhere, and the stub code it generates must be linked into the application.

Patch

Apply this patch.

The patch changes src/tool/omniidl2/omniORB2_be/o2be_operation.cc

 

For comments, feedback, etc, please see the 'Keeping in touch' page.
Copyright 1999 - AT&T Laboratories Cambridge