lex_integer_ilp32.c revision 1.6
11.6Srillig/* $NetBSD: lex_integer_ilp32.c,v 1.6 2023/02/05 12:25:11 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.4Srillig /* expect+1: warning: conversion of 'unsigned long' to 'int' is out of range, arg #1 [295] */ 261.1Srillig sinki(2147483648); 271.1Srillig 281.1Srillig sinki(-2147483647); 291.1Srillig 301.5Srillig /* expect+2: warning: ANSI C treats constant as unsigned, op '-' [218] */ 311.4Srillig /* expect+1: warning: conversion of '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.6Srillig sinku(2147483647); 411.6Srillig sinku(2147483648); 421.6Srillig 431.6Srillig sinku(2147483648U); 441.1Srillig sinku(4294967295U); 451.1Srillig 461.4Srillig /* expect+1: warning: integer constant out of range [252] */ 471.1Srillig sinku(4294967296U); 481.1Srillig} 49