Skip to content

Commit bbb68f1

Browse files
authored
Avoid casting for unrelated types (#140)
1 parent eee3dc2 commit bbb68f1

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

libdivide.h

+6-3
Original file line numberDiff line numberDiff line change
@@ -1392,7 +1392,8 @@ int16_t libdivide_s16_recover(const struct libdivide_s16_t *denom) {
13921392
}
13931393

13941394
int16_t libdivide_s16_branchfree_recover(const struct libdivide_s16_branchfree_t *denom) {
1395-
return libdivide_s16_recover((const struct libdivide_s16_t *)denom);
1395+
const struct libdivide_s16_t den = {denom->magic, denom->more};
1396+
return libdivide_s16_recover(&den);
13961397
}
13971398

13981399
/////////// SINT32
@@ -1564,7 +1565,8 @@ int32_t libdivide_s32_recover(const struct libdivide_s32_t *denom) {
15641565
}
15651566

15661567
int32_t libdivide_s32_branchfree_recover(const struct libdivide_s32_branchfree_t *denom) {
1567-
return libdivide_s32_recover((const struct libdivide_s32_t *)denom);
1568+
const struct libdivide_s32_t den = {denom->magic, denom->more};
1569+
return libdivide_s32_recover(&den);
15681570
}
15691571

15701572
///////////// SINT64
@@ -1728,7 +1730,8 @@ int64_t libdivide_s64_recover(const struct libdivide_s64_t *denom) {
17281730
}
17291731

17301732
int64_t libdivide_s64_branchfree_recover(const struct libdivide_s64_branchfree_t *denom) {
1731-
return libdivide_s64_recover((const struct libdivide_s64_t *)denom);
1733+
const struct libdivide_s64_t den = {denom->magic, denom->more};
1734+
return libdivide_s64_recover(&den);
17321735
}
17331736

17341737
// Simplest possible vector type division: treat the vector type as an array

0 commit comments

Comments
 (0)