Hi, This patch was applied, and thanks for your help. Sorry for late, since we couldn't have time to review.
On Sat, Aug 17, 2019 at 07:11:28AM +0300, Stefan Strogin wrote: > v1->v2: > Use correct static_ASN1_ITEM_start macros instead of ASN1_ITEM_start in > static_ASN1_SEQUENCE_END_ref definition. > --- > src/lib/libcrypto/asn1/asn1t.h | 62 ++++++++++++++++++++++++++++++++++ > 1 file changed, 62 insertions(+) > > diff --git a/src/lib/libcrypto/asn1/asn1t.h b/src/lib/libcrypto/asn1/asn1t.h > index ba380bdf4..e0d5bc1f7 100644 > --- a/src/lib/libcrypto/asn1/asn1t.h > +++ b/src/lib/libcrypto/asn1/asn1t.h > @@ -81,6 +81,9 @@ extern "C" { > #define ASN1_ITEM_start(itname) \ > const ASN1_ITEM itname##_it = { > > +#define static_ASN1_ITEM_start(itname) \ > + static const ASN1_ITEM itname##_it = { > + > #define ASN1_ITEM_end(itname) \ > }; > > @@ -102,6 +105,17 @@ extern "C" { > 0,\ > #tname \ > ASN1_ITEM_end(tname) > +#define static_ASN1_ITEM_TEMPLATE_END(tname) \ > + ;\ > + static_ASN1_ITEM_start(tname) \ > + ASN1_ITYPE_PRIMITIVE,\ > + -1,\ > + &tname##_item_tt,\ > + 0,\ > + NULL,\ > + 0,\ > + #tname \ > + ASN1_ITEM_end(tname) > > > /* This is a ASN1 type which just embeds a template */ > @@ -130,6 +144,7 @@ extern "C" { > static const ASN1_TEMPLATE tname##_seq_tt[] > > #define ASN1_SEQUENCE_END(stname) ASN1_SEQUENCE_END_name(stname, stname) > +#define static_ASN1_SEQUENCE_END(stname) > static_ASN1_SEQUENCE_END_name(stname, stname) > > #define ASN1_SEQUENCE_END_name(stname, tname) \ > ;\ > @@ -142,6 +157,17 @@ extern "C" { > sizeof(stname),\ > #stname \ > ASN1_ITEM_end(tname) > +#define static_ASN1_SEQUENCE_END_name(stname, tname) \ > + ;\ > + static_ASN1_ITEM_start(tname) \ > + ASN1_ITYPE_SEQUENCE,\ > + V_ASN1_SEQUENCE,\ > + tname##_seq_tt,\ > + sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ > + NULL,\ > + sizeof(stname),\ > + #stname \ > + ASN1_ITEM_end(tname) > > #define ASN1_NDEF_SEQUENCE(tname) \ > ASN1_SEQUENCE(tname) > @@ -176,12 +202,24 @@ extern "C" { > sizeof(tname),\ > #tname \ > ASN1_ITEM_end(tname) > +#define static_ASN1_NDEF_SEQUENCE_END(tname) \ > + ;\ > + static_ASN1_ITEM_start(tname) \ > + ASN1_ITYPE_NDEF_SEQUENCE,\ > + V_ASN1_SEQUENCE,\ > + tname##_seq_tt,\ > + sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ > + NULL,\ > + sizeof(tname),\ > + #tname \ > + ASN1_ITEM_end(tname) > > #define ASN1_BROKEN_SEQUENCE_END(stname) ASN1_SEQUENCE_END_ref(stname, > stname) > > #define ASN1_SEQUENCE_END_enc(stname, tname) ASN1_SEQUENCE_END_ref(stname, > tname) > > #define ASN1_SEQUENCE_END_cb(stname, tname) ASN1_SEQUENCE_END_ref(stname, > tname) > +#define static_ASN1_SEQUENCE_END_cb(stname, tname) > static_ASN1_SEQUENCE_END_ref(stname, tname) > > #define ASN1_SEQUENCE_END_ref(stname, tname) \ > ;\ > @@ -194,6 +232,17 @@ extern "C" { > sizeof(stname),\ > #stname \ > ASN1_ITEM_end(tname) > +#define static_ASN1_SEQUENCE_END_ref(stname, tname) \ > + ;\ > + static_ASN1_ITEM_start(tname) \ > + ASN1_ITYPE_SEQUENCE,\ > + V_ASN1_SEQUENCE,\ > + tname##_seq_tt,\ > + sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ > + &tname##_aux,\ > + sizeof(stname),\ > + #stname \ > + ASN1_ITEM_end(tname) > > #define ASN1_NDEF_SEQUENCE_END_cb(stname, tname) \ > ;\ > @@ -238,8 +287,10 @@ extern "C" { > ASN1_CHOICE(tname) > > #define ASN1_CHOICE_END(stname) ASN1_CHOICE_END_name(stname, stname) > +#define static_ASN1_CHOICE_END(stname) static_ASN1_CHOICE_END_name(stname, > stname) > > #define ASN1_CHOICE_END_name(stname, tname) ASN1_CHOICE_END_selector(stname, > tname, type) > +#define static_ASN1_CHOICE_END_name(stname, tname) > static_ASN1_CHOICE_END_selector(stname, tname, type) > > #define ASN1_CHOICE_END_selector(stname, tname, selname) \ > ;\ > @@ -252,6 +303,17 @@ extern "C" { > sizeof(stname),\ > #stname \ > ASN1_ITEM_end(tname) > +#define static_ASN1_CHOICE_END_selector(stname, tname, selname) \ > + ;\ > + static_ASN1_ITEM_start(tname) \ > + ASN1_ITYPE_CHOICE,\ > + offsetof(stname,selname) ,\ > + tname##_ch_tt,\ > + sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\ > + NULL,\ > + sizeof(stname),\ > + #stname \ > + ASN1_ITEM_end(tname) > > #define ASN1_CHOICE_END_cb(stname, tname, selname) \ > ;\ > -- > 2.22.1 >