1 /* $NetBSD: lex_integer_ilp32.c,v 1.8 2023/03/28 14:44:34 rillig Exp $ */ 2 # 3 "lex_integer_ilp32.c" 3 4 /* 5 * Tests for lexical analysis of integer constants. 6 * 7 * C99 6.4.4.1 "Integer constants" 8 */ 9 10 /* lint1-only-if: ilp32 */ 11 /* lint1-extra-flags: -X 351 */ 12 13 void sinki(int); 14 void sinku(unsigned int); 15 16 /* All platforms supported by lint have 32-bit int in two's complement. */ 17 void 18 test_signed_int(void) 19 { 20 sinki(0); 21 22 sinki(-1); 23 24 sinki(2147483647); 25 26 /* expect+1: warning: conversion of 'unsigned long' to 'int' is out of range, arg #1 [295] */ 27 sinki(2147483648); 28 29 sinki(-2147483647); 30 31 /* expect+1: warning: conversion of 'unsigned long' to 'int' is out of range, arg #1 [295] */ 32 sinki(-2147483648); 33 } 34 35 void 36 test_unsigned_int(void) 37 { 38 sinku(0); 39 40 sinku(2147483647); 41 sinku(2147483648); 42 43 sinku(2147483648U); 44 sinku(4294967295U); 45 46 /* expect+1: warning: integer constant out of range [252] */ 47 sinku(4294967296U); 48 } 49