summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/libxcrypt/truncating-conversion.patch
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/libxcrypt/truncating-conversion.patch')
-rw-r--r--var/spack/repos/builtin/packages/libxcrypt/truncating-conversion.patch13
1 files changed, 13 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/libxcrypt/truncating-conversion.patch b/var/spack/repos/builtin/packages/libxcrypt/truncating-conversion.patch
new file mode 100644
index 0000000000..2d57003b21
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxcrypt/truncating-conversion.patch
@@ -0,0 +1,13 @@
+diff --git a/lib/alg-yescrypt-opt.c b/lib/alg-yescrypt-opt.c
+index 60a6ccd..a33c6e4 100644
+--- a/lib/alg-yescrypt-opt.c
++++ b/lib/alg-yescrypt-opt.c
+@@ -514,7 +514,7 @@ static volatile uint64_t Smask2var = Smask2;
+ #define PWXFORM_SIMD(X) { \
+ uint64_t x; \
+ FORCE_REGALLOC_1 \
+- uint32_t lo = x = EXTRACT64(X) & Smask2reg; \
++ uint32_t lo = (uint32_t)(x = ((uint64_t)EXTRACT64(X)) & Smask2reg); \
+ FORCE_REGALLOC_2 \
+ uint32_t hi = x >> 32; \
+ X = _mm_mul_epu32(HI32(X), X); \