i've tried this example with a cc that has com64.c unchanged from sources
(ie, without the change erik suggested),
and a 5c that has no relevant changes at all, and it was fine.

On 29 October 2011 16:29, Lucio De Re <[email protected]> wrote:
> My guess is that the ARM compiler does not like 64-bit values in
> conditional expressions.  The following C snippet:
>
>        typedef unsigned long long      uvlong;
>
>        uvlong uvinf    = ((uvlong)0x7FF00000<<32)|0x00000000;
>        uvlong uvneginf = ((uvlong)0xFFF00000<<32)|0x00000000;
>
>        double u2d(uvlong v);
>
>        double
>        __Inf(int sign)
>        {
>                return u2d(sign < 0 ? uvneginf : uvinf);
>        }
>
> compiled with 8c seems OK, but with 5c causes an error:
>
>        % 5c -FTVw /tmp/nan64.c
>        /tmp/nan64.c:11 unknown vlong LIST
>
> Using an if statement seems to get rid of the problem.
>
> ++L
>
>
>

Reply via email to