[omniORB] bug with recursive structures in omniORB3

Markus Redeker markus@ibp.de
Thu, 23 Mar 2000 15:08:54 +0100


Hi,

there is a bug in omniOrb v3 (CVS version, updated today). If I call omniidl
with option -Wba and try to compile the following piece of IDL, the compiler
gets into an infinite recursion:

enum num { c1, c2 };

struct foo 
{	
	union value switch(num) {
	case c1: long l;
	case c2: sequence<foo> k; 
	} bar;
};


If I stop the compiler, I get the following output:

omniidl -bcxx -Wbh=.h -Wbs=.cc -Wba test.idl
make: *** Deleting file test.h'
make: *** [test.h] Deleting file test.cc'
Traceback (innermost last):
  File "/home/markus/omni/bin/i586_linux_2.0_glibc/omniidlrun.py", line 92,
in ?
    omniidl.main.main()
  File "./main.py", line 410, in main
  File "./__init__.py", line 231, in run
  File "./dynskel/__init__.py", line 100, in run
  File "./dynskel/__init__.py", line 89, in generate
  File "./idlast.py", line 141, in accept
  File "./dynskel/typecode.py", line 330, in visitAST
  File "./idlast.py", line 429, in accept
  File "./dynskel/typecode.py", line 420, in visitStruct
  File "./idlast.py", line 539, in accept
  File "./dynskel/typecode.py", line 513, in visitUnion
  File "./idlast.py", line 429, in accept
  File "./dynskel/typecode.py", line 420, in visitStruct
  File "./idlast.py", line 539, in accept
  File "./dynskel/typecode.py", line 513, in visitUnion
  File "./idlast.py", line 429, in accept

...and this goes on and on, for hundreds of lines.

Without the option -Wba, everything works fine.


Markus