I didn't notice it at first, because the patch wasn't inline, but the union here needed to be initialized with memset or use a different kind of initializer.
I went with the memset on top of your patch: --- bn_nist.c 17 Jul 2016 21:21:40 -0000 1.16 +++ bn_nist.c 17 Jul 2016 22:00:45 -0000 @@ -59,6 +59,7 @@ #include <machine/endian.h> #include <stdint.h> +#include <string.h> #include "bn_lcl.h" @@ -568,7 +569,8 @@ BN_nist_mod_224(BIGNUM *r, const BIGNUM BN_ULONG bn[BN_NIST_224_TOP]; unsigned int ui[BN_NIST_224_TOP * sizeof(BN_ULONG) / sizeof(unsigned int)]; - } buf = {0}; + } buf; + memset(&buf, 0, sizeof(buf)); BN_ULONG c_d[BN_NIST_224_TOP], *res; uintptr_t mask; union { On Thu, Jul 14, 2016 at 8:39 AM, Bob Beck <b...@openbsd.org> wrote: > I'm ok with this. > > > On Thu, Jul 14, 2016 at 4:57 AM, Kinichiro Inoguchi < > kinichiro.inogu...@gmail.com> wrote: > > > Hi, > > > > When I build LibreSSL portable on HP-UX 11.3 with HP C/aC++ compiler, > > this warning is detected. > > > > ... > > "bn/bn_nist.c", line 611: warning #2549-D: variable "buf" is used before > > its value is set > > nist_set_224(buf.bn, c_d, 14, 13, 12, 11, 10, 9, 8); > > ^ > > ... > > > > To initialize these variables before using, I would like to apply the > > patch. > > OK ? > > > > Here is original topic on GitHub. > > https://github.com/libressl-portable/openbsd/pull/19 > > > > Best Regards, > > > > kinichiro inoguchi > > > > >