Home | History | Annotate | Line # | Download | only in lint1
      1 /*	$NetBSD: platform_long.c,v 1.6 2024/11/05 04:53:28 rillig Exp $	*/
      2 # 3 "platform_long.c"
      3 
      4 /*
      5  * Test features that only apply to platforms on which size_t is unsigned
      6  * long and ptr_diff is signed long.
      7  */
      8 
      9 /* lint1-only-if: long */
     10 /* lint1-extra-flags: -c -h -a -p -b -r -z -X 351 */
     11 
     12 void to_size(typeof(sizeof(int)));
     13 
     14 /* See should_warn_about_prototype_conversion. */
     15 void
     16 convert_unsigned_char_to_size(unsigned char uc)
     17 {
     18 	/*
     19 	 * In this function call, uc is first promoted to INT. It is then
     20 	 * converted to size_t, which is ULONG. The portable rank of INT
     21 	 * (see INT_RANK in inittyp.c) is lower than the rank of ULONG.
     22 	 * Since the portable rank increases, there is no warning.
     23 	 *
     24 	 * XXX: Investigate whether this rule makes sense. Warning 259 is
     25 	 * about prototype mismatch, not about lossy integer conversions,
     26 	 * and there is a clear mismatch here between INT and LONG,
     27 	 * therefore a warning makes sense.
     28 	 */
     29 	to_size(uc);
     30 }
     31 
     32 /* expect+1: warning: static variable 'unused_variable' unused [226] */
     33 static int unused_variable;
     34