summaryrefslogtreecommitdiff
path: root/app-emulation/wine/files/pr69140.c
diff options
context:
space:
mode:
Diffstat (limited to 'app-emulation/wine/files/pr69140.c')
-rw-r--r--app-emulation/wine/files/pr69140.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/app-emulation/wine/files/pr69140.c b/app-emulation/wine/files/pr69140.c
new file mode 100644
index 00000000..7c9e001f
--- /dev/null
+++ b/app-emulation/wine/files/pr69140.c
@@ -0,0 +1,37 @@
+/* { dg-do compile { target lp64 } } */
+/* { dg-options "-O2 -mincoming-stack-boundary=3" } */
+
+typedef struct {
+ unsigned int buf[4];
+ unsigned char in[64];
+} MD4_CTX;
+
+static void
+MD4Transform (unsigned int buf[4], const unsigned int in[16])
+{
+ unsigned int a, b, c, d;
+ (b) += ((((c)) & ((d))) | ((~(c)) & ((a)))) + (in[7]);
+ (a) += ((((b)) & ((c))) | ((~(b)) & ((d)))) + (in[8]);
+ (d) += ((((a)) & ((b))) | ((~(a)) & ((c)))) + (in[9]);
+ buf[3] += d;
+}
+
+void __attribute__((ms_abi))
+MD4Update (MD4_CTX *ctx, const unsigned char *buf)
+{
+ MD4Transform( ctx->buf, (unsigned int *)ctx->in);
+ MD4Transform( ctx->buf, (unsigned int *)ctx->in);
+}
+
+int
+main(void)
+{
+ MD4_CTX ctx_test =
+ {
+ { 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476 },
+ { 0, 0 }
+ };
+ unsigned char buf[64];
+
+ MD4Update(&ctx_test, (const unsigned char *) &buf);
+}