[openssl-dev] [openssl.org #4476] PATCH: fix cast-alignment of "struct lhash_st *"
Viktor Dukhovni
openssl-users at dukhovni.org
Thu Mar 24 18:55:25 UTC 2016
On Thu, Mar 24, 2016 at 06:41:34PM +0000, Salz, Rich via RT wrote:
> This looks like a good change.
>
> > This clears what looks to be hundreds of alignment related warnings like
> > below.
> >
> > $ git diff include/openssl/lhash.h
> > diff --git a/include/openssl/lhash.h b/include/openssl/lhash.h index
> > 2edd738..5da5054 100644
> > --- a/include/openssl/lhash.h
> > +++ b/include/openssl/lhash.h
> > @@ -180,7 +180,7 @@ void lh_node_usage_stats_bio(const _LHASH *lh, BIO
> > *out); # define LHASH_OF(type) struct lhash_st_##type
> >
> > # define DEFINE_LHASH_OF(type) \
> > - LHASH_OF(type) { int dummy; }; \
> > + LHASH_OF(type) { unsigned long dummy; }; \
> > static ossl_inline LHASH_OF(type) * \
> > lh_##type##_new(unsigned long (*hfn)(const type *), \
> > int (*cfn)(const type *, const type *)) \
>
> Does changing it to "void *dummy" also work?
Not necessarily. A union might be more comprehensive.
LHASH_OF(type) {
union {
void *v;
unsigned long long ull;
uint64_t u64;
long double ld;
} u;
};
using whatever types we're sure to have on all supported platforms.
--
Viktor.
More information about the openssl-dev
mailing list