xref: /netbsd-src/tests/usr.bin/xlint/lint1/lex_floating.c (revision b2baa50111d645353fa30b4deab0f79d93650c8c)
1*b2baa501Srillig /*	$NetBSD: lex_floating.c,v 1.4 2023/03/28 14:44:34 rillig Exp $	*/
23ce615ebSrillig # 3 "lex_floating.c"
33ce615ebSrillig 
43ce615ebSrillig /*
53ce615ebSrillig  * Tests for lexical analysis of floating constants.
63ce615ebSrillig  *
73ce615ebSrillig  * C99 6.4.4.2 "Floating constants"
83ce615ebSrillig  */
93ce615ebSrillig 
10*b2baa501Srillig /* lint1-extra-flags: -X 351 */
11*b2baa501Srillig 
123ce615ebSrillig void sinkf(float);
133ce615ebSrillig void sinkd(double);
143ce615ebSrillig void sinkl(long double);
153ce615ebSrillig 
163ce615ebSrillig void
test_float(void)173ce615ebSrillig test_float(void)
183ce615ebSrillig {
193ce615ebSrillig 	sinkf(0.0F);
203ce615ebSrillig 	sinkf(0.0f);
213ce615ebSrillig 	sinkf(-0.0F);
223ce615ebSrillig 	sinkf(-0.0f);
233ce615ebSrillig }
243ce615ebSrillig 
253ce615ebSrillig void
test_double(void)263ce615ebSrillig test_double(void)
273ce615ebSrillig {
283ce615ebSrillig 	// https://bugs.java.com/bugdatabase/view_bug.do?bug_id=4396272
293ce615ebSrillig 	sinkd(2.2250738585072012e-308);
30a4a927acSrillig 	/* expect+1: error: syntax error 'x' [249] */
31a4a927acSrillig 	sinkd(1.23x);
323ce615ebSrillig }
333ce615ebSrillig 
343ce615ebSrillig void
test_long_double(void)353ce615ebSrillig test_long_double(void)
363ce615ebSrillig {
373ce615ebSrillig 	sinkl(2.2250738585072012e-308L);
383ce615ebSrillig }
398ee241b0Srillig 
408ee241b0Srillig void
test_hex(void)418ee241b0Srillig test_hex(void)
428ee241b0Srillig {
438ee241b0Srillig 	sinkd(0x1.cp4);
448ee241b0Srillig }
45