#ifdef CCAN_CRYPTO_SHA256_USE_OPENSSL
        ctx->c.md_len = 0;
 #else
-       ctx->bytes = -1ULL;
+       ctx->bytes = (size_t)-1;
 #endif
 }
 
 #ifdef CCAN_CRYPTO_SHA256_USE_OPENSSL
        assert(ctx->c.md_len != 0);
 #else
-       assert(ctx->bytes != -1ULL);
+       assert(ctx->bytes != (size_t)-1);
 #endif
 }
 
        uint64_t sizedesc;
        size_t i;
 
-       sizedesc = cpu_to_be64(ctx->bytes << 3);
+       sizedesc = cpu_to_be64((uint64_t)ctx->bytes << 3);
        /* Add '1' bit to terminate, then all 0 bits, up to next block - 8. */
        add(ctx, pad, 1 + ((119 - (ctx->bytes % 64)) % 64));
        /* Add number of bits of data (big endian) */
 
        SHA256_CTX c;
 #else
        uint32_t s[8];
-       uint64_t bytes;
        union {
                uint32_t u32[16];
                unsigned char u8[64];
        } buf;
+       size_t bytes;
 #endif
 };
 
 #else
 #define SHA256_INIT                                                    \
        { { 0x6a09e667ul, 0xbb67ae85ul, 0x3c6ef372ul, 0xa54ff53aul,     \
-           0x510e527ful, 0x9b05688cul, 0x1f83d9abul, 0x5be0cd19ul }, 0 }
+           0x510e527ful, 0x9b05688cul, 0x1f83d9abul, 0x5be0cd19ul },   \
+         { { 0 } }, 0 }
 #endif
 
 /**
 
          LE32_TO_CPU(0xd407a8fc), LE32_TO_CPU(0x1fad409b),
          LE32_TO_CPU(0x51fa46cc), LE32_TO_CPU(0xea528ae5),
          LE32_TO_CPU(0x5fa58ebb), LE32_TO_CPU(0x8be97931) },
-       1073741824,
        { .u32 = { 0x64636261, 0x68676665, 0x65646362, 0x69686766,
-                  0x66656463, 0x6a696867, 0x67666564, 0x6b6a6968 } }
+                  0x66656463, 0x6a696867, 0x67666564, 0x6b6a6968 } },
+       1073741824
 #endif
 };