[LLVMdev] Incompatible types at call site
Duncan Sands
baldrick at free.fr
Wed Apr 6 06:54:12 PDT 2011
Hi Arushi,
> On Wed, Apr 6, 2011 at 8:35 AM, Duncan Sands <baldrick at free.fr
> <mailto:baldrick at free.fr>> wrote:
>
> 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.
>
>
> Unfortunately that is't true either :(
something along these lines is clearly occurring. I suggest you open a bug
report with preprocessed source.
> Also, the calls which do not pass a constant int, do not get the cast on the
> function.
Probably because they have a type, which the compiler can use, while a constant
like "1" gets a default type like i32.
Ciao, Duncan.
>
>
> Ciao, Duncan.
>
>
>
> 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
>
>
>
More information about the llvm-dev
mailing list