mirror of
https://github.com/yuzu-mirror/mbedtls.git
synced 2025-12-06 07:12:32 +01:00
Remove initialization function for variable-length struct
Assigning the return value of a function that returns a struct with a
flexible array member does not fill the flexible array member, which leaves
a gap in the initialization that could be surprising to programmers. Also,
this is a borderline case in ABI design which could cause interoperability
problems. So remove this function.
This gets rid of an annoying note from GCC about ABI compatibility on
(at least) x86_64.
```
In file included from include/psa/crypto.h:4820,
from <stdin>:1:
include/psa/crypto_struct.h: In function ‘psa_key_generation_method_init’:
include/psa/crypto_struct.h:244:1: note: the ABI of passing struct with a flexible array member has changed in GCC 4.4
244 | {
| ^
```
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
This commit is contained in:
parent
dc5597b3dd
commit
e7a7013910
|
|
@ -239,13 +239,6 @@ struct psa_key_generation_method_s {
|
|||
*/
|
||||
#define PSA_KEY_GENERATION_METHOD_INIT { 0 }
|
||||
|
||||
static inline struct psa_key_generation_method_s psa_key_generation_method_init(
|
||||
void)
|
||||
{
|
||||
const struct psa_key_generation_method_s v = PSA_KEY_GENERATION_METHOD_INIT;
|
||||
return v;
|
||||
}
|
||||
|
||||
struct psa_key_policy_s {
|
||||
psa_key_usage_t MBEDTLS_PRIVATE(usage);
|
||||
psa_algorithm_t MBEDTLS_PRIVATE(alg);
|
||||
|
|
|
|||
|
|
@ -9996,12 +9996,10 @@ exit:
|
|||
/* BEGIN_CASE */
|
||||
void key_generation_method_init()
|
||||
{
|
||||
psa_key_generation_method_t func = psa_key_generation_method_init();
|
||||
psa_key_generation_method_t init = PSA_KEY_GENERATION_METHOD_INIT;
|
||||
psa_key_generation_method_t zero;
|
||||
memset(&zero, 0, sizeof(zero));
|
||||
|
||||
TEST_EQUAL(func.flags, 0);
|
||||
TEST_EQUAL(init.flags, 0);
|
||||
TEST_EQUAL(zero.flags, 0);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue