Home | History | Annotate | Line # | Download | only in lint1
      1  1.5  rillig /*	$NetBSD: msg_163.c,v 1.5 2023/07/07 19:45:22 rillig Exp $	*/
      2  1.1  rillig # 3 "msg_163.c"
      3  1.1  rillig 
      4  1.1  rillig // Test for message: a cast does not yield an lvalue [163]
      5  1.1  rillig 
      6  1.5  rillig /* lint1-extra-flags: -X 351 */
      7  1.5  rillig 
      8  1.2  rillig void
      9  1.2  rillig example(char *p, int i)
     10  1.2  rillig {
     11  1.2  rillig 	p++;
     12  1.4  rillig 
     13  1.4  rillig 	/*
     14  1.4  rillig 	 * Using a cast as an lvalue had been a GCC extension until 3.4.
     15  1.4  rillig 	 * It was removed in GCC 4.0.
     16  1.4  rillig 	 *
     17  1.4  rillig 	 * https://gcc.gnu.org/onlinedocs/gcc-3.4.6/gcc/Lvalues.html#Lvalues
     18  1.4  rillig 	 * https://gcc.gnu.org/onlinedocs/gcc-4.0.4/gcc/index.html#toc_C-Extensions
     19  1.4  rillig 	 */
     20  1.4  rillig 	/* expect+2: error: a cast does not yield an lvalue [163] */
     21  1.4  rillig 	/* expect+1: error: operand of 'x++' must be lvalue [114] */
     22  1.4  rillig 	((char *)p)++;
     23  1.4  rillig 
     24  1.2  rillig 	i++;
     25  1.4  rillig 
     26  1.4  rillig 	/* expect+2: error: a cast does not yield an lvalue [163] */
     27  1.4  rillig 	/* expect+1: error: operand of 'x++' must be lvalue [114] */
     28  1.4  rillig 	((int)i)++;
     29  1.2  rillig }
     30