Amendment: this code fails on gcc 3.3.5 but works with gcc 3.2. I tried
a recursive extraction
in many variants (for example taking the code in any.cc, l. 303ff) but
it always failed on 3.3.5.
A compiler bug?
Cheers, Markus
Markus Finck wrote:
>Hello everyone,
>
>I write a CORBA-aware BASIC language and I have a problem with
>"any"-extraction:
>Since the variables of my BASIC have dynamic type assignment they're
>mapped to a CORBA-any.
>Now when I try to convert an any (e.g. from a method call) to my
>variable object, I use the following code:
>
>Bas_Variable Bas_IdlWrapperType::CorbaAnyToVariable(CORBA::Any *any_ptr)
>{
> Bas_Variable var;
>
> CORBA::TypeCode_var tcode = any_ptr->type(); // get any's type
>
> if(tcode->unalias()->kind() == CORBA::tk_any) // ****
> {
> *(any_ptr) >>= ((const CORBA::Any *)any_ptr);
> var = CorbaAnyToVariable(any_ptr);
> }
>
> if(tcode->unalias()->kind() == CORBA::tk_char) // Do the same with
>tk_XXX
> {
> ....
> }
>
> return var;
>}
>
>The if-block at **** should start a recursive extraction that finally
>yields the typed content of "any". Unfortunately, this recursion never
>stops. The really strange thing is that this code has already worked; I
>have no explanation for that. Who can help me?
>
>Thanks, Markus Finck
>
>P.S. I am using Mico 2.3.11 on Suse Linux 9.3, gcc is 3.3.5 (Suse
>standard compiler)
> If anyone is interested in this BASIC, it is GPL'ed on
>www.vug.uni-duisburg.de/~markus/cobasic_en.html
>
>_______________________________________________
>Mico-devel mailing list
>[email protected]
>http://www.mico.org/mailman/listinfo/mico-devel
>
>
_______________________________________________
Mico-devel mailing list
[email protected]
http://www.mico.org/mailman/listinfo/mico-devel