1 1.4 rillig /* $NetBSD: msg_163.c,v 1.4 2021/07/04 12:24:39 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.2 rillig void 7 1.2 rillig example(char *p, int i) 8 1.2 rillig { 9 1.2 rillig p++; 10 1.4 rillig 11 1.4 rillig /* 12 1.4 rillig * Using a cast as an lvalue had been a GCC extension until 3.4. 13 1.4 rillig * It was removed in GCC 4.0. 14 1.4 rillig * 15 1.4 rillig * https://gcc.gnu.org/onlinedocs/gcc-3.4.6/gcc/Lvalues.html#Lvalues 16 1.4 rillig * https://gcc.gnu.org/onlinedocs/gcc-4.0.4/gcc/index.html#toc_C-Extensions 17 1.4 rillig */ 18 1.4 rillig /* expect+2: error: a cast does not yield an lvalue [163] */ 19 1.4 rillig /* expect+1: error: operand of 'x++' must be lvalue [114] */ 20 1.4 rillig ((char *)p)++; 21 1.4 rillig 22 1.2 rillig i++; 23 1.4 rillig 24 1.4 rillig /* expect+2: error: a cast does not yield an lvalue [163] */ 25 1.4 rillig /* expect+1: error: operand of 'x++' must be lvalue [114] */ 26 1.4 rillig ((int)i)++; 27 1.2 rillig } 28