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 }
|
#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 {
|
struct psa_key_policy_s {
|
||||||
psa_key_usage_t MBEDTLS_PRIVATE(usage);
|
psa_key_usage_t MBEDTLS_PRIVATE(usage);
|
||||||
psa_algorithm_t MBEDTLS_PRIVATE(alg);
|
psa_algorithm_t MBEDTLS_PRIVATE(alg);
|
||||||
|
|
|
||||||
|
|
@ -9996,12 +9996,10 @@ exit:
|
||||||
/* BEGIN_CASE */
|
/* BEGIN_CASE */
|
||||||
void key_generation_method_init()
|
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 init = PSA_KEY_GENERATION_METHOD_INIT;
|
||||||
psa_key_generation_method_t zero;
|
psa_key_generation_method_t zero;
|
||||||
memset(&zero, 0, sizeof(zero));
|
memset(&zero, 0, sizeof(zero));
|
||||||
|
|
||||||
TEST_EQUAL(func.flags, 0);
|
|
||||||
TEST_EQUAL(init.flags, 0);
|
TEST_EQUAL(init.flags, 0);
|
||||||
TEST_EQUAL(zero.flags, 0);
|
TEST_EQUAL(zero.flags, 0);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue