Bug 3882

Summary: tao_ifr creates idl module CORBA w/o prefix
Product: TAO Reporter: Bogdan Jeram <bjeram>
Component: Interface RepositoryAssignee: DOC Center Support List (internal) <tao-support>
Status: ASSIGNED ---    
Severity: normal    
Priority: P3    
Version: 1.8.1   
Hardware: All   
OS: Linux   

Description Bogdan Jeram 2010-08-09 05:41:21 CDT
Dear all,

if tao_ifr is executed (even on empty idl file) than  it creates a empty IDL module CORBA w/o prefix (omg.org).
So than later we have in IFR two modules CORBA, but with different prefixes (better one with prefix omg.org and the other w/o prefix).

This can be fixed by adding a line:
  idl_global->pragma_prefixes ().push("omg.org");
at the beginning of function:
void fe_populate_global_scope (void)
in fe_init.cpp

and adding lines:
 char *trash;
  idl_global->pragma_prefixes ().pop(trash);
at the end of the same function.

Regards
Bogdan
Comment 1 Jeff Parsons 2010-08-09 08:18:41 CDT
Or it could be fixed by eliminating the creation of the empty CORBA module. I doubt if it's necessary.
Comment 2 Bogdan Jeram 2010-08-09 08:41:01 CDT
I think this automatic creation of CORBA module was, ASFAIK, introducer recently, and I also wondered if it is needed.
Comment 3 Jeff Parsons 2010-08-10 12:55:04 CDT
The CORBA module in question is one recently added to the initialization of the AST in the IDL compiler frontend. I've checked in a change that attaches the
"omg.org" prefix to this module, so at least there will be no mismatch with tao_ifr. The IFR has always stored the predefined types in a special section. Now that the IDL compiler frontend puts them all in an opening of the CORBA module, the IFR could be changed to just read them in from the AST. But this will not be a trivial changes, so as long it the IFR works ok, it isn't a high priority.