Displaying 4 results from an estimated 4 matches for "prodcyc".
2011 Apr 06
2
[LLVMdev] Incompatible types at call site
Hi Arushi,
> I got this from C code compiled by llvm-gcc.
>
> There is a consistent prototype for the function
>
> TypHandle Cyclotomic ( hdRes, n, m )
> TypHandle hdRes;
> long n, m;
>
> the call looks as follows,
> hdI = ProdCyc( hdI, Cyclotomic( HdResult, n, 1 ) );
I bet the call occurs before the function is defined. In this case C treats
the callee as being a varargs function (...) of the kind you see in your IR.
Ciao, Duncan.
>
> which is basically
>
> Cyclotomic( HdResult, n, 1 );
>
> The problem...
2011 Apr 06
0
[LLVMdev] Incompatible types at call site
...m C code compiled by llvm-gcc.
>>
>> There is a consistent prototype for the function
>>
>> TypHandle Cyclotomic ( hdRes, n, m )
>> TypHandle hdRes;
>> long n, m;
>>
>> the call looks as follows,
>> hdI = ProdCyc( hdI, Cyclotomic( HdResult, n, 1 ) );
>>
>
> I bet the call occurs before the function is defined. In this case C
> treats
> the callee as being a varargs function (...) of the kind you see in your
> IR.
>
Unfortunately that is't true either :(
Also, the calls which d...
2011 Apr 06
0
[LLVMdev] Incompatible types at call site
...rtran with dragonegg, right? What was the original code?
>
I got this from C code compiled by llvm-gcc.
There is a consistent prototype for the function
TypHandle Cyclotomic ( hdRes, n, m )
TypHandle hdRes;
long n, m;
the call looks as follows,
hdI = ProdCyc( hdI, Cyclotomic( HdResult, n, 1 ) );
which is basically
Cyclotomic( HdResult, n, 1 );
The problem is the fact that it interprets 1 as an int32 instead of an
int64. And later converts it by assuming an unsigned to unsigned cast.
Arushi
-------------- next part --------------
An HTML attachment...
2011 Apr 06
3
[LLVMdev] Incompatible types at call site
Hi Arushi,
> When it asks for the castOpcode, it assumes both types are unsigned(indicated by
> the false arguments).
>
> Is it correct to assume this?
yes, because the behaviour of the original code was undefined.
Ciao, Duncan.
PS: This is the sort of thing that happens when a function is declared with a
prototype such as
void *Cyclotomic(void *, long, int)
but the function