Bug 3949 - TAO_IDL typeprefix support is not compliant to CORBA 3.1 spec
Summary: TAO_IDL typeprefix support is not compliant to CORBA 3.1 spec
Status: ASSIGNED
Alias: None
Product: TAO
Classification: Unclassified
Component: IDL Compiler (show other bugs)
Version: 2.0.0
Hardware: All Linux
: P3 normal
Assignee: DOC Center Support List (internal)
URL:
Depends on:
Blocks:
 
Reported: 2011-01-24 08:13 CST by Martin Corino
Modified: 2018-01-15 11:21 CST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Corino 2011-01-24 08:13:44 CST
The 'typeprefix' support is non-compliant.

TAO_IDL will accept typeprefix for a scoped name *before* the scoped name is declared, i.e.:

typeprefix Components "org.omg";

module Components
{
  ...
};

The spec however (formal/2008-01-04) clearly states on page 78 (par. 7.15.2) that:

"It must denote a previously-declared name of one of the following IDL constructs:"

Therefor the above construct should be illegal and should be declared as:

module Components
{
  typeprefix Components "org.omg";

  ...
};

or

module Components
{
  ...
};
 Components "org.omg";

CIAO currently hosts a number of IDL files with the illegal form which cause errors when compiled with compliant IDL compilers.
Comment 1 Jeff Parsons 2011-01-24 09:52:28 CST
This restriction I believe is new, don't remember seeing it in 3.0, but I do remember ranting about the difficulty of implementing typeprefix without it. No time right now, but it will be a welcome change.