lex_integer.c revision 1.4
11.4Srillig/* $NetBSD: lex_integer.c,v 1.4 2021/06/29 13:58:13 rillig Exp $ */ 21.1Srillig# 3 "lex_integer.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.4Srillig/* lint1-only-if lp64 */ 111.2Srillig 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+2: converted from 'long' to 'int' due to prototype */ 261.1Srillig /* expect+1: conversion of 'long' to 'int' is out of range */ 271.1Srillig sinki(2147483648); 281.1Srillig 291.1Srillig sinki(-2147483647); 301.1Srillig 311.1Srillig /* expect+1: converted from 'long' to 'int' due to prototype */ 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+2: from 'unsigned long' to 'unsigned int' due to prototype */ 431.1Srillig /* expect+1: conversion of 'unsigned long' to 'unsigned int' is out of range */ 441.1Srillig sinku(4294967296U); 451.1Srillig} 46