msg_129.c revision 1.2 1 1.2 rillig /* $NetBSD: msg_129.c,v 1.2 2021/01/30 22:38:54 rillig Exp $ */
2 1.1 rillig # 3 "msg_129.c"
3 1.1 rillig
4 1.1 rillig // Test for message: expression has null effect [129]
5 1.1 rillig
6 1.2 rillig /* lint1-extra-flags: -h */
7 1.2 rillig
8 1.2 rillig typedef unsigned char uint8_t;
9 1.2 rillig typedef unsigned int uint32_t;
10 1.2 rillig
11 1.2 rillig /*
12 1.2 rillig * XXX: The message 129 looks wrong in this case. There are several comma
13 1.2 rillig * operators, each of them has an assignment as operand, and an assignment
14 1.2 rillig * has side effects.
15 1.2 rillig *
16 1.2 rillig * Nevertheless, when stepping through check_null_effect, the operator ','
17 1.2 rillig * in line 17 says it has no side effect, which is strange.
18 1.2 rillig */
19 1.2 rillig void
20 1.2 rillig uint8_buffer_write_uint32(uint8_t *c, uint32_t l)
21 1.2 rillig {
22 1.2 rillig (*(c++) = (uint8_t)(l & 0xff),
23 1.2 rillig *(c++) = (uint8_t)((l >> 8L) & 0xff),
24 1.2 rillig *(c++) = (uint8_t)((l >> 16L) & 0xff),
25 1.2 rillig *(c++) = (uint8_t)((l >> 24L) & 0xff)); /* expect: 129 */
26 1.2 rillig }
27