Fix some -Werror=conversion false positives
diff --git a/release/c/wuffs-unsupported-snapshot.c b/release/c/wuffs-unsupported-snapshot.c
index 550137a..f2e3edd 100644
--- a/release/c/wuffs-unsupported-snapshot.c
+++ b/release/c/wuffs-unsupported-snapshot.c
@@ -19675,7 +19675,7 @@
v_p0 += 1;
}
} else {
- v_indexes[0] = (v_code >> 4);
+ v_indexes[0] = ((uint8_t)((v_code >> 4)));
v_indexes[1] = (v_code & 15);
v_p0 = 0;
while (v_p0 < self->private_impl.f_rle_length) {
@@ -32012,7 +32012,7 @@
v_fa = 0;
v_i = v_i_start;
while (v_i < ((uint64_t)(a_curr.len))) {
- a_curr.ptr[v_i] += v_fa;
+ a_curr.ptr[v_i] = ((uint8_t)(a_curr.ptr[v_i] + v_fa));
v_fa = a_curr.ptr[v_i];
v_i += v_filter_distance;
}
@@ -32038,29 +32038,29 @@
v_c.len = 3;
uint8_t* i_end0_c = v_c.ptr + (((i_slice_c.len - (size_t)(v_c.ptr - i_slice_c.ptr)) / 6) * 6);
while (v_c.ptr < i_end0_c) {
- v_fa0 += v_c.ptr[0];
+ v_fa0 = ((uint8_t)(v_fa0 + v_c.ptr[0]));
v_c.ptr[0] = v_fa0;
- v_fa1 += v_c.ptr[1];
+ v_fa1 = ((uint8_t)(v_fa1 + v_c.ptr[1]));
v_c.ptr[1] = v_fa1;
- v_fa2 += v_c.ptr[2];
+ v_fa2 = ((uint8_t)(v_fa2 + v_c.ptr[2]));
v_c.ptr[2] = v_fa2;
v_c.ptr += 3;
- v_fa0 += v_c.ptr[0];
+ v_fa0 = ((uint8_t)(v_fa0 + v_c.ptr[0]));
v_c.ptr[0] = v_fa0;
- v_fa1 += v_c.ptr[1];
+ v_fa1 = ((uint8_t)(v_fa1 + v_c.ptr[1]));
v_c.ptr[1] = v_fa1;
- v_fa2 += v_c.ptr[2];
+ v_fa2 = ((uint8_t)(v_fa2 + v_c.ptr[2]));
v_c.ptr[2] = v_fa2;
v_c.ptr += 3;
}
v_c.len = 3;
uint8_t* i_end1_c = v_c.ptr + (((i_slice_c.len - (size_t)(v_c.ptr - i_slice_c.ptr)) / 3) * 3);
while (v_c.ptr < i_end1_c) {
- v_fa0 += v_c.ptr[0];
+ v_fa0 = ((uint8_t)(v_fa0 + v_c.ptr[0]));
v_c.ptr[0] = v_fa0;
- v_fa1 += v_c.ptr[1];
+ v_fa1 = ((uint8_t)(v_fa1 + v_c.ptr[1]));
v_c.ptr[1] = v_fa1;
- v_fa2 += v_c.ptr[2];
+ v_fa2 = ((uint8_t)(v_fa2 + v_c.ptr[2]));
v_c.ptr[2] = v_fa2;
v_c.ptr += 3;
}
@@ -32087,13 +32087,13 @@
v_c.len = 4;
uint8_t* i_end0_c = v_c.ptr + (((i_slice_c.len - (size_t)(v_c.ptr - i_slice_c.ptr)) / 4) * 4);
while (v_c.ptr < i_end0_c) {
- v_fa0 += v_c.ptr[0];
+ v_fa0 = ((uint8_t)(v_fa0 + v_c.ptr[0]));
v_c.ptr[0] = v_fa0;
- v_fa1 += v_c.ptr[1];
+ v_fa1 = ((uint8_t)(v_fa1 + v_c.ptr[1]));
v_c.ptr[1] = v_fa1;
- v_fa2 += v_c.ptr[2];
+ v_fa2 = ((uint8_t)(v_fa2 + v_c.ptr[2]));
v_c.ptr[2] = v_fa2;
- v_fa3 += v_c.ptr[3];
+ v_fa3 = ((uint8_t)(v_fa3 + v_c.ptr[3]));
v_c.ptr[3] = v_fa3;
v_c.ptr += 4;
}
@@ -32123,7 +32123,7 @@
v_n = wuffs_base__u64__min(((uint64_t)(a_curr.len)), ((uint64_t)(a_prev.len)));
v_i = 0;
while (v_i < v_n) {
- a_curr.ptr[v_i] += a_prev.ptr[v_i];
+ a_curr.ptr[v_i] = ((uint8_t)(a_curr.ptr[v_i] + a_prev.ptr[v_i]));
v_i += 1;
}
return wuffs_base__make_empty_struct();
@@ -32152,19 +32152,19 @@
if (((uint64_t)(a_prev.len)) == 0) {
v_i = v_filter_distance;
while (v_i < ((uint64_t)(a_curr.len))) {
- a_curr.ptr[v_i] += (a_curr.ptr[(v_i - v_filter_distance)] / 2);
+ a_curr.ptr[v_i] = ((uint8_t)(a_curr.ptr[v_i] + (a_curr.ptr[(v_i - v_filter_distance)] / 2)));
v_i += 1;
}
} else {
v_n = wuffs_base__u64__min(((uint64_t)(a_curr.len)), ((uint64_t)(a_prev.len)));
v_i = 0;
while ((v_i < v_n) && (v_i < v_filter_distance)) {
- a_curr.ptr[v_i] += (a_prev.ptr[v_i] / 2);
+ a_curr.ptr[v_i] = ((uint8_t)(a_curr.ptr[v_i] + (a_prev.ptr[v_i] / 2)));
v_i += 1;
}
v_i = v_filter_distance;
while (v_i < v_n) {
- a_curr.ptr[v_i] += ((uint8_t)(((((uint32_t)(a_curr.ptr[(v_i - v_filter_distance)])) + ((uint32_t)(a_prev.ptr[v_i]))) / 2)));
+ a_curr.ptr[v_i] = ((uint8_t)(a_curr.ptr[v_i] + ((uint8_t)(((((uint32_t)(a_curr.ptr[(v_i - v_filter_distance)])) + ((uint32_t)(a_prev.ptr[v_i]))) / 2)))));
v_i += 1;
}
}
@@ -32359,7 +32359,7 @@
v_n = wuffs_base__u64__min(((uint64_t)(a_curr.len)), ((uint64_t)(a_prev.len)));
v_i = 0;
while ((v_i < v_n) && (v_i < v_filter_distance)) {
- a_curr.ptr[v_i] += a_prev.ptr[v_i];
+ a_curr.ptr[v_i] = ((uint8_t)(a_curr.ptr[v_i] + a_prev.ptr[v_i]));
v_i += 1;
}
v_i = v_filter_distance;
@@ -32386,7 +32386,7 @@
} else {
v_fa = v_fc;
}
- a_curr.ptr[v_i] += ((uint8_t)((v_fa & 255)));
+ a_curr.ptr[v_i] = ((uint8_t)(a_curr.ptr[v_i] + ((uint8_t)((v_fa & 255)))));
v_i += 1;
}
return wuffs_base__make_empty_struct();
@@ -32453,7 +32453,7 @@
} else {
v_fa0 = v_fc0;
}
- v_c.ptr[0] += ((uint8_t)((v_fa0 & 255)));
+ v_c.ptr[0] = ((uint8_t)(v_c.ptr[0] + ((uint8_t)((v_fa0 & 255)))));
v_fa0 = ((uint32_t)(v_c.ptr[0]));
v_fc0 = v_fb0;
v_fb1 = ((uint32_t)(v_p.ptr[1]));
@@ -32476,7 +32476,7 @@
} else {
v_fa1 = v_fc1;
}
- v_c.ptr[1] += ((uint8_t)((v_fa1 & 255)));
+ v_c.ptr[1] = ((uint8_t)(v_c.ptr[1] + ((uint8_t)((v_fa1 & 255)))));
v_fa1 = ((uint32_t)(v_c.ptr[1]));
v_fc1 = v_fb1;
v_fb2 = ((uint32_t)(v_p.ptr[2]));
@@ -32499,7 +32499,7 @@
} else {
v_fa2 = v_fc2;
}
- v_c.ptr[2] += ((uint8_t)((v_fa2 & 255)));
+ v_c.ptr[2] = ((uint8_t)(v_c.ptr[2] + ((uint8_t)((v_fa2 & 255)))));
v_fa2 = ((uint32_t)(v_c.ptr[2]));
v_fc2 = v_fb2;
v_c.ptr += 3;
@@ -32579,7 +32579,7 @@
} else {
v_fa0 = v_fc0;
}
- v_c.ptr[0] += ((uint8_t)((v_fa0 & 255)));
+ v_c.ptr[0] = ((uint8_t)(v_c.ptr[0] + ((uint8_t)((v_fa0 & 255)))));
v_fa0 = ((uint32_t)(v_c.ptr[0]));
v_fc0 = v_fb0;
v_fb1 = ((uint32_t)(v_p.ptr[1]));
@@ -32602,7 +32602,7 @@
} else {
v_fa1 = v_fc1;
}
- v_c.ptr[1] += ((uint8_t)((v_fa1 & 255)));
+ v_c.ptr[1] = ((uint8_t)(v_c.ptr[1] + ((uint8_t)((v_fa1 & 255)))));
v_fa1 = ((uint32_t)(v_c.ptr[1]));
v_fc1 = v_fb1;
v_fb2 = ((uint32_t)(v_p.ptr[2]));
@@ -32625,7 +32625,7 @@
} else {
v_fa2 = v_fc2;
}
- v_c.ptr[2] += ((uint8_t)((v_fa2 & 255)));
+ v_c.ptr[2] = ((uint8_t)(v_c.ptr[2] + ((uint8_t)((v_fa2 & 255)))));
v_fa2 = ((uint32_t)(v_c.ptr[2]));
v_fc2 = v_fb2;
v_fb3 = ((uint32_t)(v_p.ptr[3]));
@@ -32648,7 +32648,7 @@
} else {
v_fa3 = v_fc3;
}
- v_c.ptr[3] += ((uint8_t)((v_fa3 & 255)));
+ v_c.ptr[3] = ((uint8_t)(v_c.ptr[3] + ((uint8_t)((v_fa3 & 255)))));
v_fa3 = ((uint32_t)(v_c.ptr[3]));
v_fc3 = v_fb3;
v_c.ptr += 4;
@@ -34919,8 +34919,8 @@
v_s = wuffs_base__slice_u8__subslice_i(v_s, 1);
}
v_bits_unpacked[0] = ((uint8_t)((v_bits_packed >> v_shift) * v_multiplier));
- v_bits_packed <<= self->private_impl.f_depth;
- v_packs_remaining -= 1;
+ v_bits_packed = ((uint8_t)(v_bits_packed << self->private_impl.f_depth));
+ v_packs_remaining = ((uint8_t)(v_packs_remaining - 1));
wuffs_base__pixel_swizzler__swizzle_interleaved_from_slice(&self->private_impl.f_swizzler, wuffs_base__slice_u8__subslice_i(v_dst, v_i), v_dst_palette, wuffs_base__make_slice_u8(v_bits_unpacked, 1));
}
v_x += (((uint32_t)(1)) << WUFFS_PNG__INTERLACING[self->private_impl.f_interlace_pass][0]);
diff --git a/std/bmp/decode_bmp.wuffs b/std/bmp/decode_bmp.wuffs
index 18cfa08..e23014c 100644
--- a/std/bmp/decode_bmp.wuffs
+++ b/std/bmp/decode_bmp.wuffs
@@ -640,7 +640,7 @@
p0 += 1
} endwhile
} else {
- indexes[0] = code >> 4
+ indexes[0] = (code >> 4) as base.u8
indexes[1] = code & 0x0F
p0 = 0
while p0 < this.rle_length {
diff --git a/std/png/decode_filter_fallback.wuffs b/std/png/decode_filter_fallback.wuffs
index 930a475..8b271c5 100644
--- a/std/png/decode_filter_fallback.wuffs
+++ b/std/png/decode_filter_fallback.wuffs
@@ -33,7 +33,7 @@
while i < args.curr.length(),
inv i_start < 8,
{
- args.curr[i] ~mod+= fa
+ args.curr[i] = args.curr[i] ~mod+ fa
fa = args.curr[i]
i ~mod+= filter_distance
} endwhile
@@ -48,11 +48,11 @@
var fa2 : base.u8
iterate (c = args.curr)(length: 3, advance: 3, unroll: 2) {
- fa0 ~mod+= c[0]
+ fa0 = fa0 ~mod+ c[0]
c[0] = fa0
- fa1 ~mod+= c[1]
+ fa1 = fa1 ~mod+ c[1]
c[1] = fa1
- fa2 ~mod+= c[2]
+ fa2 = fa2 ~mod+ c[2]
c[2] = fa2
}
}
@@ -65,13 +65,13 @@
var fa3 : base.u8
iterate (c = args.curr)(length: 4, advance: 4, unroll: 1) {
- fa0 ~mod+= c[0]
+ fa0 = fa0 ~mod+ c[0]
c[0] = fa0
- fa1 ~mod+= c[1]
+ fa1 = fa1 ~mod+ c[1]
c[1] = fa1
- fa2 ~mod+= c[2]
+ fa2 = fa2 ~mod+ c[2]
c[2] = fa2
- fa3 ~mod+= c[3]
+ fa3 = fa3 ~mod+ c[3]
c[3] = fa3
}
}
@@ -93,7 +93,7 @@
assert i < 0xFFFF_FFFF_FFFF_FFFF via "a < b: a < c; c <= b"(c: n)
assert i < args.curr.length() via "a < b: a < c; c <= b"(c: n)
assert i < args.prev.length() via "a < b: a < c; c <= b"(c: n)
- args.curr[i] ~mod+= args.prev[i]
+ args.curr[i] = args.curr[i] ~mod+ (args.prev[i])
i += 1
} endwhile
}
@@ -116,7 +116,7 @@
{
assert i < 0xFFFF_FFFF_FFFF_FFFF via "a < b: a < c; c <= b"(c: args.curr.length())
assert (i - filter_distance) < args.curr.length() via "(a - b) < c: a < c; 0 <= b"()
- args.curr[i] ~mod+= args.curr[i - filter_distance] / 2
+ args.curr[i] = args.curr[i] ~mod+ (args.curr[i - filter_distance] / 2)
i += 1
assert i >= filter_distance via "a >= b: a >= (b + c); 0 <= c"(c: 1)
} endwhile
@@ -131,7 +131,7 @@
assert i < 0xFFFF_FFFF_FFFF_FFFF via "a < b: a < c; c <= b"(c: n)
assert i < args.curr.length() via "a < b: a < c; c <= b"(c: n)
assert i < args.prev.length() via "a < b: a < c; c <= b"(c: n)
- args.curr[i] ~mod+= args.prev[i] / 2
+ args.curr[i] = args.curr[i] ~mod+ (args.prev[i] / 2)
i += 1
} endwhile
@@ -146,9 +146,9 @@
assert i < args.curr.length() via "a < b: a < c; c <= b"(c: n)
assert i < args.prev.length() via "a < b: a < c; c <= b"(c: n)
assert (i - filter_distance) < args.curr.length() via "(a - b) < c: a < c; 0 <= b"()
- args.curr[i] ~mod+= ((
+ args.curr[i] = args.curr[i] ~mod+ (((
(args.curr[i - filter_distance] as base.u32) +
- (args.prev[i] as base.u32)) / 2) as base.u8
+ (args.prev[i] as base.u32)) / 2) as base.u8)
i += 1
assert i >= filter_distance via "a >= b: a >= (b + c); 0 <= c"(c: 1)
} endwhile
@@ -245,7 +245,7 @@
assert i < 0xFFFF_FFFF_FFFF_FFFF via "a < b: a < c; c <= b"(c: n)
assert i < args.curr.length() via "a < b: a < c; c <= b"(c: n)
assert i < args.prev.length() via "a < b: a < c; c <= b"(c: n)
- args.curr[i] ~mod+= args.prev[i]
+ args.curr[i] = args.curr[i] ~mod+ args.prev[i]
i += 1
} endwhile
@@ -284,7 +284,7 @@
} else {
fa = fc
}
- args.curr[i] ~mod+= (fa & 0xFF) as base.u8
+ args.curr[i] = args.curr[i] ~mod+ ((fa & 0xFF) as base.u8)
i += 1
assert i >= filter_distance via "a >= b: a >= (b + c); 0 <= c"(c: 1)
} endwhile
@@ -337,7 +337,7 @@
} else {
fa0 = fc0
}
- c[0] ~mod+= (fa0 & 0xFF) as base.u8
+ c[0] = c[0] ~mod+ ((fa0 & 0xFF) as base.u8)
fa0 = c[0] as base.u32
fc0 = fb0
@@ -362,7 +362,7 @@
} else {
fa1 = fc1
}
- c[1] ~mod+= (fa1 & 0xFF) as base.u8
+ c[1] = c[1] ~mod+ ((fa1 & 0xFF) as base.u8)
fa1 = c[1] as base.u32
fc1 = fb1
@@ -387,7 +387,7 @@
} else {
fa2 = fc2
}
- c[2] ~mod+= (fa2 & 0xFF) as base.u8
+ c[2] = c[2] ~mod+ ((fa2 & 0xFF) as base.u8)
fa2 = c[2] as base.u32
fc2 = fb2
}
@@ -447,7 +447,7 @@
} else {
fa0 = fc0
}
- c[0] ~mod+= (fa0 & 0xFF) as base.u8
+ c[0] = c[0] ~mod+ ((fa0 & 0xFF) as base.u8)
fa0 = c[0] as base.u32
fc0 = fb0
@@ -472,7 +472,7 @@
} else {
fa1 = fc1
}
- c[1] ~mod+= (fa1 & 0xFF) as base.u8
+ c[1] = c[1] ~mod+ ((fa1 & 0xFF) as base.u8)
fa1 = c[1] as base.u32
fc1 = fb1
@@ -497,7 +497,7 @@
} else {
fa2 = fc2
}
- c[2] ~mod+= (fa2 & 0xFF) as base.u8
+ c[2] = c[2] ~mod+ ((fa2 & 0xFF) as base.u8)
fa2 = c[2] as base.u32
fc2 = fb2
@@ -522,7 +522,7 @@
} else {
fa3 = fc3
}
- c[3] ~mod+= (fa3 & 0xFF) as base.u8
+ c[3] = c[3] ~mod+ ((fa3 & 0xFF) as base.u8)
fa3 = c[3] as base.u32
fc3 = fb3
}
diff --git a/std/png/decode_swizzle_tricky.wuffs b/std/png/decode_swizzle_tricky.wuffs
index 8d2b267..44dd36c 100644
--- a/std/png/decode_swizzle_tricky.wuffs
+++ b/std/png/decode_swizzle_tricky.wuffs
@@ -150,8 +150,8 @@
s = s[1 ..]
}
bits_unpacked[0] = (bits_packed >> shift) ~mod* multiplier
- bits_packed ~mod<<= this.depth
- packs_remaining ~mod-= 1
+ bits_packed = bits_packed ~mod<< this.depth
+ packs_remaining = packs_remaining ~mod- 1
this.swizzler.swizzle_interleaved_from_slice!(
dst: dst[i ..],