diff options
author | Ubuntu <[email protected]> | 2019-12-14 00:16:42 +0000 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2019-12-18 17:24:42 -0800 |
commit | abfdb836079410d73ce0ee25fb4e8aec7e7c59ae (patch) | |
tree | 760e8819e06df6d06d3f5021de0d389a94504648 /module/os | |
parent | 7cf1fe63316d20ae7986b4060337d0e2966a42b1 (diff) |
cppcheck: (error) Shifting signed 64-bit value by 63 bits
As of cppcheck 1.82 surpress the warning regarding shifting too many
bits for __divdi3() implemention. The algorithm used here is correct.
Reviewed-by: Tony Hutter <[email protected]>
Signed-off-by: Brian Behlendorf <[email protected]>
Closes #9732
Diffstat (limited to 'module/os')
-rw-r--r-- | module/os/linux/spl/spl-generic.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/module/os/linux/spl/spl-generic.c b/module/os/linux/spl/spl-generic.c index 8a14acd11..091a52a78 100644 --- a/module/os/linux/spl/spl-generic.c +++ b/module/os/linux/spl/spl-generic.c @@ -275,7 +275,9 @@ int64_t __divdi3(int64_t u, int64_t v) { int64_t q, t; + // cppcheck-suppress shiftTooManyBitsSigned q = __udivdi3(abs64(u), abs64(v)); + // cppcheck-suppress shiftTooManyBitsSigned t = (u ^ v) >> 63; // If u, v have different return ((q ^ t) - t); // signs, negate q. } |