Home | History | Annotate | Line # | Download | only in lint1
msg_158.c revision 1.3
      1 /*	$NetBSD: msg_158.c,v 1.3 2021/03/16 23:39:41 rillig Exp $	*/
      2 # 3 "msg_158.c"
      3 
      4 // Test for message: %s may be used before set [158]
      5 
      6 void sink_int(int);
      7 
      8 void
      9 example(int arg)
     10 {
     11 	int twice_arg;
     12 
     13 	sink_int(twice_arg);	/* expect: 158 */
     14 	twice_arg = 2 * arg;
     15 	sink_int(twice_arg);
     16 }
     17 
     18 void
     19 conditionally_used(int arg)
     20 {
     21 	int twice_arg;
     22 
     23 	if (arg > 0)
     24 		twice_arg = 2 * arg;
     25 	if (arg > 0)
     26 		sink_int(twice_arg);
     27 }
     28 
     29 void
     30 conditionally_unused(int arg)
     31 {
     32 	int twice_arg;
     33 
     34 	if (arg > 0)
     35 		twice_arg = 2 * arg;
     36 
     37 	/*
     38 	 * This situation is not detected by lint as it does not track the
     39 	 * possible code paths for all conditions.
     40 	 */
     41 	if (arg < 0)
     42 		sink_int(twice_arg);
     43 }
     44