xref: /netbsd-src/tests/usr.bin/xlint/lint1/platform_ldbl64.c (revision 1603ef6585f2749e804782955756b75415115f1c)
1*1603ef65Srillig /*	$NetBSD: platform_ldbl64.c,v 1.5 2023/07/05 11:42:14 rillig Exp $	*/
2b6d6b0c5Srillig # 3 "platform_ldbl64.c"
3b6d6b0c5Srillig 
4b6d6b0c5Srillig /*
5b6d6b0c5Srillig  * Test features that only apply to platforms that have 64-bit long double.
6b6d6b0c5Srillig  */
7b6d6b0c5Srillig 
8cc35e666Srillig /* lint1-extra-flags: -c -h -a -p -b -r -z -X 351 */
9*1603ef65Srillig /* lint1-only-if: ldbl64 */
10b6d6b0c5Srillig 
11f29e29e2Srillig /* CONSTCOND */
12f29e29e2Srillig typedef int bits_per_byte[((unsigned char)-1) == 255 ? 1 : -1];
13f29e29e2Srillig typedef int bytes_per_long_double[sizeof(long double) == 8 ? 1 : -1];
14cc35e666Srillig 
15cc35e666Srillig /* expect+1: warning: floating-point constant out of range [248] */
16cc35e666Srillig double larger_than_ldbl = 1e310;
17cc35e666Srillig /*
18cc35e666Srillig  * Since 'long double' has the same size as 'double', there is no floating
19cc35e666Srillig  * point constant that fits in 'long double' but not in 'double'.
20cc35e666Srillig  */
21cc35e666Srillig /* expect+1: warning: floating-point constant out of range [248] */
22cc35e666Srillig long double larger_than_ldbl_l = 1e310L;
23