[omniORB] echo \; | omniidl -

Luke Deller ldeller at xplantechnology.com
Thu May 27 17:24:37 BST 2004


Hi,

The following output of omniidl is strange:

luked at sor ~ $ echo \; | omniidl -
omniidl: Warning: No back-ends specified; checking IDL for validity
/usr/bin/omnicpp -lang-c++ -undef -D__OMNIIDL__=0x2420  "-":1: Syntax error 
in abstract valuetype
omniidl: 1 error.
luked at sor ~ $

There are two strange things about this output:

Firstly, omniidl seems to think it is processing a file called
   /usr/bin/omnicpp -lang-c++ -undef -D__OMNIIDL__=0x2420  "-"
It would be better if it printed the filename as
   <stdin>

This bogus filename is actually the result of calling PyFile_Name on a pipe 
from os.popen() [see src/tool/omniidl/cxx/idlpython.cc:IdlPyCompile(..)]. 
The bogus filename is normally not seen because it will be replaced with the 
filename from preprocessor output lines like
   # 1 "myfile.idl"
However when the preprocessor is reading from stdin, it prints a line like:
   # 1 ""
which is not parsed correctly by the scanf statement in 
src/tool/omniidl/cxx/idl.ll:parseLineDirective(..)

The second strange thing is the error message "Syntax error in abstract 
valuetype".  The real problem is that there is an extra semicolon in the 
input file, so the given error message is quite cryptic.

Regards,
Luke.

PS: "omniidl -N -" doesn't work, because it tries to open a file called "-".



More information about the omniORB-list mailing list