lex_integer_ilp32.c revision 1.3
11.3Srillig/* $NetBSD: lex_integer_ilp32.c,v 1.3 2021/08/21 11:50:57 rillig Exp $ */ 21.1Srillig# 3 "lex_integer_ilp32.c" 31.1Srillig 41.1Srillig/* 51.1Srillig * Tests for lexical analysis of integer constants. 61.1Srillig * 71.1Srillig * C99 6.4.4.1 "Integer constants" 81.1Srillig */ 91.1Srillig 101.3Srillig/* lint1-only-if: ilp32 */ 111.1Srillig 121.1Srilligvoid sinki(int); 131.1Srilligvoid sinku(unsigned int); 141.1Srillig 151.1Srillig/* All platforms supported by lint have 32-bit int in two's complement. */ 161.1Srilligvoid 171.1Srilligtest_signed_int(void) 181.1Srillig{ 191.1Srillig sinki(0); 201.1Srillig 211.1Srillig sinki(-1); 221.1Srillig 231.1Srillig sinki(2147483647); 241.1Srillig 251.1Srillig /* expect+1: 'unsigned long' to 'int' is out of range, arg #1 [295] */ 261.1Srillig sinki(2147483648); 271.1Srillig 281.1Srillig sinki(-2147483647); 291.1Srillig 301.1Srillig /* expect+2: ANSI C treats constant as unsigned, op - [218] */ 311.1Srillig /* expect+1: 'unsigned long' to 'int' is out of range, arg #1 [295] */ 321.1Srillig sinki(-2147483648); 331.1Srillig} 341.1Srillig 351.1Srilligvoid 361.1Srilligtest_unsigned_int(void) 371.1Srillig{ 381.1Srillig sinku(0); 391.1Srillig 401.1Srillig sinku(4294967295U); 411.1Srillig 421.1Srillig /* expect+1: integer constant out of range [252] */ 431.1Srillig sinku(4294967296U); 441.1Srillig} 45