queries_uchar.c revision 1.2
11.2Srillig/* $NetBSD: queries_uchar.c,v 1.2 2024/01/28 08:54:27 rillig Exp $ */ 21.1Srillig# 3 "queries_uchar.c" 31.1Srillig 41.1Srillig/* 51.1Srillig * Tests for queries that are specific to platforms where 'char' has the same 61.1Srillig * representation as 'unsigned char'. 71.1Srillig * 81.1Srillig * See also: 91.1Srillig * queries.c platform-independent tests 101.1Srillig * queries_schar.c for platforms where 'char' is signed 111.1Srillig */ 121.1Srillig 131.1Srillig/* lint1-only-if: uchar */ 141.2Srillig/* lint1-extra-flags: -q 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 -X 351 */ 151.1Srillig 161.1Srilligint 171.1SrilligQ14(char c) 181.1Srillig{ 191.1Srillig /* expect+6: implicit conversion changes sign from 'char' to 'int' [Q3] */ 201.1Srillig /* expect+5: implicit conversion changes sign from 'char' to 'int' [Q3] */ 211.2Srillig /* expect+4: comparison '==' of 'char' with plain integer 92 [Q14] */ 221.2Srillig /* expect+3: implicit conversion changes sign from 'char' to 'int' [Q3] */ 231.2Srillig /* expect+2: comparison '==' of 'char' with plain integer 0 [Q14] */ 241.2Srillig /* expect+1: implicit conversion changes sign from 'char' to 'int' [Q3] */ 251.1Srillig if (c == 'c' || c == L'w' || c == 92 || c == 0) 261.1Srillig return 1; 271.1Srillig return 5; 281.1Srillig} 291.1Srillig 301.1Srillig/* 311.2Srillig * Variables with automatic storage duration often have so small scope that 321.2Srillig * adding the 'const' qualifier hurts readability more than it helps. 331.2Srillig */ 341.2Srilligint 351.2Srillig/* expect+1: const automatic variable 'const_arg' [Q18] */ 361.2SrilligQ18(const int const_arg, int arg) 371.2Srillig{ 381.2Srillig /* expect+1: const automatic variable 'Q18_scalar' [Q18] */ 391.2Srillig const char Q18_scalar = '1'; 401.2Srillig const char Q18_array[] = { '1', '2', '3' }; 411.2Srillig const char Q18_string[] = "123"; 421.2Srillig const char *Q18_string_pointer = "123"; 431.2Srillig 441.2Srillig /* expect+5: implicit conversion changes sign from 'char' to 'int' [Q3] */ 451.2Srillig /* expect+4: implicit conversion changes sign from 'char' to 'int' [Q3] */ 461.2Srillig /* expect+3: implicit conversion changes sign from 'char' to 'int' [Q3] */ 471.2Srillig /* expect+2: implicit conversion changes sign from 'char' to 'int' [Q3] */ 481.2Srillig return const_arg + arg 491.2Srillig + Q18_scalar + Q18_array[0] + Q18_string[0] + Q18_string_pointer[0]; 501.2Srillig} 511.2Srillig 521.2Srillig/* 531.1Srillig * Since queries do not affect the exit status, force a warning to make this 541.1Srillig * test conform to the general expectation that a test that produces output 551.1Srillig * exits non-successfully. 561.1Srillig */ 571.1Srillig/* expect+1: warning: static variable 'unused' unused [226] */ 581.1Srilligstatic int unused; 59