xref: /netbsd-src/tests/usr.bin/xlint/lint1/lex_integer_binary.c (revision 6881a4007f077b54e5f51159c52b9b25f57deb0d)
1 /*	$NetBSD: lex_integer_binary.c,v 1.3 2023/03/28 14:44:34 rillig Exp $	*/
2 # 3 "lex_integer_binary.c"
3 
4 /*
5  * Test for parsing binary integer literals in non-GCC mode.
6  * As of C11, binary integer literals are not supported.
7  * Neither are underscores in integer literals.
8  */
9 
10 /* Remove the default -g flag. */
11 /* lint1-flags: -Ac11 -w -X 351 */
12 
13 void sink(unsigned int);
14 
15 void
16 binary_literal(void)
17 {
18 	/*
19 	 * Binary integer literals are a GCC extension, but lint allows them
20 	 * even in non-GCC mode.
21 	 */
22 	sink(0b1111000001011010);
23 
24 	/*
25 	 * Even though it would be useful for binary literals, GCC does not
26 	 * support underscores to separate the digit groups.
27 	 */
28 	/* expect+1: error: syntax error '_0000_0101_1010' [249] */
29 	sink(0b1111_0000_0101_1010);
30 }
31