lex_integer.c revision 1.1
11.1Srillig/* $NetBSD: lex_integer.c,v 1.1 2021/06/19 08:30:08 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.1Srilligvoid sinki(int); 111.1Srilligvoid sinku(unsigned int); 121.1Srillig 131.1Srillig/* All platforms supported by lint have 32-bit int in two's complement. */ 141.1Srilligvoid 151.1Srilligtest_signed_int(void) 161.1Srillig{ 171.1Srillig sinki(0); 181.1Srillig 191.1Srillig sinki(-1); 201.1Srillig 211.1Srillig sinki(2147483647); 221.1Srillig 231.1Srillig /* expect+2: converted from 'long' to 'int' due to prototype */ 241.1Srillig /* expect+1: conversion of 'long' to 'int' is out of range */ 251.1Srillig sinki(2147483648); 261.1Srillig 271.1Srillig sinki(-2147483647); 281.1Srillig 291.1Srillig /* expect+1: converted from 'long' to 'int' due to prototype */ 301.1Srillig sinki(-2147483648); 311.1Srillig} 321.1Srillig 331.1Srilligvoid 341.1Srilligtest_unsigned_int(void) 351.1Srillig{ 361.1Srillig sinku(0); 371.1Srillig 381.1Srillig sinku(4294967295U); 391.1Srillig 401.1Srillig /* expect+2: from 'unsigned long' to 'unsigned int' due to prototype */ 411.1Srillig /* expect+1: conversion of 'unsigned long' to 'unsigned int' is out of range */ 421.1Srillig sinku(4294967296U); 431.1Srillig} 44