1 1.5 rillig /* $NetBSD: msg_115.c,v 1.5 2021/07/31 09:14:47 rillig Exp $ */ 2 1.1 rillig # 3 "msg_115.c" 3 1.1 rillig 4 1.1 rillig // Test for message: %soperand of '%s' must be modifiable lvalue [115] 5 1.1 rillig 6 1.2 rillig void 7 1.2 rillig example(const int *const_ptr) 8 1.2 rillig { 9 1.2 rillig 10 1.4 rillig *const_ptr = 3; /* expect: 115 */ 11 1.4 rillig *const_ptr += 1; /* expect: 115 */ 12 1.4 rillig *const_ptr -= 4; /* expect: 115 */ 13 1.4 rillig *const_ptr *= 1; /* expect: 115 */ 14 1.4 rillig *const_ptr /= 5; /* expect: 115 */ 15 1.4 rillig *const_ptr %= 9; /* expect: 115 */ 16 1.4 rillig (*const_ptr)++; /* expect: 115 */ 17 1.2 rillig } 18 1.5 rillig 19 1.5 rillig void 20 1.5 rillig initialize_const_struct_member(void) 21 1.5 rillig { 22 1.5 rillig struct S { 23 1.5 rillig int const member; 24 1.5 rillig }; 25 1.5 rillig 26 1.5 rillig /* FIXME: In an initialization, const members can be assigned. */ 27 1.5 rillig /* expect+1: warning: left operand of '=' must be modifiable lvalue [115] */ 28 1.5 rillig struct S s1 = (struct S) { 12345 }; 29 1.5 rillig if (s1.member != 0) 30 1.5 rillig return; 31 1.5 rillig 32 1.5 rillig struct S s2 = { 12345 }; 33 1.5 rillig if (s2.member != 0) 34 1.5 rillig return; 35 1.5 rillig } 36