1*5357c932Srillig /* $NetBSD: lex_integer_ilp32.c,v 1.9 2024/01/28 06:57:41 rillig Exp $ */ 2b7cb676eSrillig # 3 "lex_integer_ilp32.c" 3b7cb676eSrillig 4b7cb676eSrillig /* 5b7cb676eSrillig * Tests for lexical analysis of integer constants. 6b7cb676eSrillig * 7b7cb676eSrillig * C99 6.4.4.1 "Integer constants" 8b7cb676eSrillig */ 9b7cb676eSrillig 10dadd5dc3Srillig /* lint1-only-if: ilp32 */ 11b2baa501Srillig /* lint1-extra-flags: -X 351 */ 12b7cb676eSrillig 13b7cb676eSrillig void sinki(int); 14b7cb676eSrillig void sinku(unsigned int); 15b7cb676eSrillig 16b7cb676eSrillig /* All platforms supported by lint have 32-bit int in two's complement. */ 17b7cb676eSrillig void test_signed_int(void)18b7cb676eSrilligtest_signed_int(void) 19b7cb676eSrillig { 20b7cb676eSrillig sinki(0); 21b7cb676eSrillig 22b7cb676eSrillig sinki(-1); 23b7cb676eSrillig 24b7cb676eSrillig sinki(2147483647); 25b7cb676eSrillig 26*5357c932Srillig /* expect+1: warning: conversion of 'long long' to 'int' is out of range, arg #1 [295] */ 27b7cb676eSrillig sinki(2147483648); 28b7cb676eSrillig 29b7cb676eSrillig sinki(-2147483647); 30b7cb676eSrillig 31b7cb676eSrillig sinki(-2147483648); 32b7cb676eSrillig } 33b7cb676eSrillig 34b7cb676eSrillig void test_unsigned_int(void)35b7cb676eSrilligtest_unsigned_int(void) 36b7cb676eSrillig { 37b7cb676eSrillig sinku(0); 38b7cb676eSrillig 39134e5c5eSrillig sinku(2147483647); 40134e5c5eSrillig sinku(2147483648); 41134e5c5eSrillig 42134e5c5eSrillig sinku(2147483648U); 43b7cb676eSrillig sinku(4294967295U); 44b7cb676eSrillig 45*5357c932Srillig /* expect+1: warning: conversion of 'unsigned long long' to 'unsigned int' is out of range, arg #1 [295] */ 46b7cb676eSrillig sinku(4294967296U); 47b7cb676eSrillig } 48