[jhc] invalid C being produced

John Meacham john at repetae.net
Sun Sep 6 22:03:44 EDT 2009


Hmmm.. That means promote is being called on something of the wrong  
type.  Try compiling with -flint to have it do a full typecheck  
between each pass.

On Sep 6, 2009, at 6:51 PM, Mark Wotton <mwotton at gmail.com> wrote:

> I'll try to narrow it down a bit more, but there's a lot happening  
> here so it might take a while. anyway:
>
> here fromRuby is a haskell function, rb_ary_entry and rb_ary_len are  
> imported C functions. This is in the context of a case expression.
>
>               RT_ARRAY -> T_ARRAY $ unsafePerformIO  $ mapM (liftM  
> fromRuby . rb_ary_entry v) [0..(rb_ary_len v) - 1]
>
> producing the C fragment
>
>            v232742406 = ((struct sCJhc__Prim___x3a*)v100508)->a2;
>            /* ERROR: BaseOp {expBaseOp = Promote, expArgs =  
> [nd505286687]} */
>            wptr_t v100510 = /* ERROR: nothing */;
>            v34 = ((struct sP2_uFE_a__CCall__mysum_uexternal_d3*) 
> v100510)->a1;
>            v188768016 = fFE_a__CCall__mysum_uexternal_d3 
> (v34,v59909010);
>
> which understandably fails to compile. Any ideas?
>
> mark
> -- 
> jhc mailing list
> jhc at haskell.org
> http://www.haskell.org/mailman/listinfo/jhc
>


More information about the jhc mailing list