• Behan Webster's avatar
    crypto: LLVMLinux: Add macro to remove use of VLAIS in crypto code · a0a77af1
    Behan Webster authored
    Add a macro which replaces the use of a Variable Length Array In Struct (VLAIS)
    with a C99 compliant equivalent. This macro instead allocates the appropriate
    amount of memory using an char array.
    
    The new code can be compiled with both gcc and clang.
    
    struct shash_desc contains a flexible array member member ctx declared with
    CRYPTO_MINALIGN_ATTR, so sizeof(struct shash_desc) aligns the beginning
    of the array declared after struct shash_desc with long long.
    
    No trailing padding is required because it is not a struct type that can
    be used in an array.
    
    The CRYPTO_MINALIGN_ATTR is required so that desc is aligned with long long
    as would be the case for a struct containing a member with
    CRYPTO_MINALIGN_ATTR.
    
    If you want to get to the ctx at the end of the shash_desc as before you can do
    so using shash_desc_ctx(shash)
    Signed-off-by: default avatarBehan Webster <behanw@converseincode.com>
    Reviewed-by: default avatarMark Charlebois <charlebm@gmail.com>
    Acked-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    Cc: Michał Mirosław <mirqus@gmail.com>
    a0a77af1
hash.h 9.03 KB