lex_integer_ilp32.c revision 1.8
11.8Srillig/*	$NetBSD: lex_integer_ilp32.c,v 1.8 2023/03/28 14:44:34 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.8Srillig/* lint1-extra-flags: -X 351 */
121.1Srillig
131.1Srilligvoid sinki(int);
141.1Srilligvoid sinku(unsigned int);
151.1Srillig
161.1Srillig/* All platforms supported by lint have 32-bit int in two's complement. */
171.1Srilligvoid
181.1Srilligtest_signed_int(void)
191.1Srillig{
201.1Srillig	sinki(0);
211.1Srillig
221.1Srillig	sinki(-1);
231.1Srillig
241.1Srillig	sinki(2147483647);
251.1Srillig
261.4Srillig	/* expect+1: warning: conversion of 'unsigned long' to 'int' is out of range, arg #1 [295] */
271.1Srillig	sinki(2147483648);
281.1Srillig
291.1Srillig	sinki(-2147483647);
301.1Srillig
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