From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <4cdfdc69c18eaaf525552885049926cf@proxima.alt.za> To: 9fans@9fans.net From: Lucio De Re Date: Sat, 29 Oct 2011 17:29:40 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Subject: [9fans] ARM compiler shortcoming? Topicbox-Message-UUID: 3bdbdaba-ead7-11e9-9d60-3106f5b1d025 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