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 > > >
