[PATCH] D158816: [builtins] Fix signed shift overflows in absvti2.c and negvti2.c
Karl-Johan Karlsson via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sun Aug 27 21:47:09 PDT 2023
This revision was automatically updated to reflect the committed changes.
Closed by commit rG56255e04211f: [builtins] Fix signed shift overflows in absvti2.c and negvti2.c (authored by Ka-Ka).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D158816/new/
https://reviews.llvm.org/D158816
Files:
compiler-rt/lib/builtins/absvti2.c
compiler-rt/lib/builtins/negvti2.c
Index: compiler-rt/lib/builtins/negvti2.c
===================================================================
--- compiler-rt/lib/builtins/negvti2.c
+++ compiler-rt/lib/builtins/negvti2.c
@@ -19,7 +19,7 @@
// Effects: aborts if -a overflows
COMPILER_RT_ABI ti_int __negvti2(ti_int a) {
- const ti_int MIN = (ti_int)1 << ((int)(sizeof(ti_int) * CHAR_BIT) - 1);
+ const ti_int MIN = (tu_int)1 << ((int)(sizeof(ti_int) * CHAR_BIT) - 1);
if (a == MIN)
compilerrt_abort();
return -a;
Index: compiler-rt/lib/builtins/absvti2.c
===================================================================
--- compiler-rt/lib/builtins/absvti2.c
+++ compiler-rt/lib/builtins/absvti2.c
@@ -20,7 +20,7 @@
COMPILER_RT_ABI ti_int __absvti2(ti_int a) {
const int N = (int)(sizeof(ti_int) * CHAR_BIT);
- if (a == ((ti_int)1 << (N - 1)))
+ if (a == (ti_int)((tu_int)1 << (N - 1)))
compilerrt_abort();
const ti_int s = a >> (N - 1);
return (a ^ s) - s;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D158816.553831.patch
Type: text/x-patch
Size: 963 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230828/df6df7f7/attachment.bin>
More information about the llvm-commits
mailing list