https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81448
--- Comment #2 from Bernd Edlinger <bernd.edlinger at hotmail dot de> --- Not really: diff --git a/crypto/evp/evp_locl.h b/crypto/evp/evp_locl.h index 2bb709a..cb44ed8 100644 --- a/crypto/evp/evp_locl.h +++ b/crypto/evp/evp_locl.h @@ -71,8 +71,9 @@ #define BLOCK_CIPHER_func_ecb(cname, cprefix, kstruct, ksched) \ static int cname##_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl) \ {\ - BLOCK_CIPHER_ecb_loop() \ + BLOCK_CIPHER_ecb_loop() { \ cprefix##_ecb_encrypt(in + i, out + i, &((kstruct *)ctx->cipher_data)->ksched, ctx->encrypt);\ + } \ return 1;\ } In file included from e_bf.c:63:0: e_bf.c: In function 'bf_ecb_cipher': evp_locl.h:74:33: error: macro expands to multiple statements [-Werror=multistatement-macros] BLOCK_CIPHER_ecb_loop() { \ ^ evp_locl.h:132:9: note: in expansion of macro 'BLOCK_CIPHER_func_ecb' BLOCK_CIPHER_func_ecb(cname, cprefix, kstruct, ksched) \ ^~~~~~~~~~~~~~~~~~~~~ evp_locl.h:251:9: note: in expansion of macro 'BLOCK_CIPHER_all_funcs' BLOCK_CIPHER_all_funcs(cname, cprefix, cbits, kstruct, ksched) \ ^~~~~~~~~~~~~~~~~~~~~~ e_bf.c:76:1: note: in expansion of macro 'IMPLEMENT_BLOCK_CIPHER' IMPLEMENT_BLOCK_CIPHER(bf, ks, BF, EVP_BF_KEY, NID_bf, 8, 16, 8, 64, ^~~~~~~~~~~~~~~~~~~~~~ evp_locl.h:69:9: note: some parts of macro expansion are not guarded by this 'for' clause for(i=0; i <= inl; i+=bl) ^~~ evp_locl.h:74:9: note: in expansion of macro 'BLOCK_CIPHER_ecb_loop' BLOCK_CIPHER_ecb_loop() { \ ^~~~~~~~~~~~~~~~~~~~~ evp_locl.h:132:9: note: in expansion of macro 'BLOCK_CIPHER_func_ecb' BLOCK_CIPHER_func_ecb(cname, cprefix, kstruct, ksched) \ ^~~~~~~~~~~~~~~~~~~~~ evp_locl.h:251:9: note: in expansion of macro 'BLOCK_CIPHER_all_funcs' BLOCK_CIPHER_all_funcs(cname, cprefix, cbits, kstruct, ksched) \ ^~~~~~~~~~~~~~~~~~~~~~ e_bf.c:76:1: note: in expansion of macro 'IMPLEMENT_BLOCK_CIPHER' IMPLEMENT_BLOCK_CIPHER(bf, ks, BF, EVP_BF_KEY, NID_bf, 8, 16, 8, 64, ^~~~~~~~~~~~~~~~~~~~~~