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