Move type operations to another structure
Every type has free, print, check_constraints, ber_decoder, der_encoder,
xer_decoder, xer_encoder, uper_decoder, uper_encoder and outmost_tag
operations. We move them out to a separate structure asn_TYPE_operation_t.
Combined with previous logic simplification, these operations are based
on ASN.1 basic types, constructed types and string types. So we can
reduce the space occupied by asn_TYPE_descriptor_t variables.
diff --git a/tests/tests-asn1c-compiler/50-constraint-OK.asn1.-Pgen-PER b/tests/tests-asn1c-compiler/50-constraint-OK.asn1.-Pgen-PER
index a732d0e..924cad8 100644
--- a/tests/tests-asn1c-compiler/50-constraint-OK.asn1.-Pgen-PER
+++ b/tests/tests-asn1c-compiler/50-constraint-OK.asn1.-Pgen-PER
@@ -35,18 +35,8 @@
asn_TYPE_descriptor_t asn_DEF_Int1 = {
"Int1",
"Int1",
- NativeInteger_free,
- NativeInteger_print,
- NativeInteger_compare,
+ &asn_OP_NativeInteger,
NativeInteger_constraint,
- NativeInteger_decode_ber,
- NativeInteger_encode_der,
- NativeInteger_decode_xer,
- NativeInteger_encode_xer,
- 0, 0, /* No OER support, use "-gen-OER" to enable */
- NativeInteger_decode_uper,
- NativeInteger_encode_uper,
- 0, /* Use generic outmost tag fetcher */
asn_DEF_Int1_tags_1,
sizeof(asn_DEF_Int1_tags_1)
/sizeof(asn_DEF_Int1_tags_1[0]), /* 1 */
@@ -130,18 +120,8 @@
asn_TYPE_descriptor_t asn_DEF_Int2 = {
"Int2",
"Int2",
- NativeInteger_free,
- NativeInteger_print,
- NativeInteger_compare,
+ &asn_OP_NativeInteger,
Int2_constraint,
- NativeInteger_decode_ber,
- NativeInteger_encode_der,
- NativeInteger_decode_xer,
- NativeInteger_encode_xer,
- 0, 0, /* No OER support, use "-gen-OER" to enable */
- NativeInteger_decode_uper,
- NativeInteger_encode_uper,
- 0, /* Use generic outmost tag fetcher */
asn_DEF_Int2_tags_1,
sizeof(asn_DEF_Int2_tags_1)
/sizeof(asn_DEF_Int2_tags_1[0]), /* 1 */
@@ -225,18 +205,8 @@
asn_TYPE_descriptor_t asn_DEF_Int3 = {
"Int3",
"Int3",
- NativeInteger_free,
- NativeInteger_print,
- NativeInteger_compare,
+ &asn_OP_NativeInteger,
Int3_constraint,
- NativeInteger_decode_ber,
- NativeInteger_encode_der,
- NativeInteger_decode_xer,
- NativeInteger_encode_xer,
- 0, 0, /* No OER support, use "-gen-OER" to enable */
- NativeInteger_decode_uper,
- NativeInteger_encode_uper,
- 0, /* Use generic outmost tag fetcher */
asn_DEF_Int3_tags_1,
sizeof(asn_DEF_Int3_tags_1)
/sizeof(asn_DEF_Int3_tags_1[0]), /* 1 */
@@ -320,18 +290,8 @@
asn_TYPE_descriptor_t asn_DEF_Int4 = {
"Int4",
"Int4",
- NativeInteger_free,
- NativeInteger_print,
- NativeInteger_compare,
+ &asn_OP_NativeInteger,
Int4_constraint,
- NativeInteger_decode_ber,
- NativeInteger_encode_der,
- NativeInteger_decode_xer,
- NativeInteger_encode_xer,
- 0, 0, /* No OER support, use "-gen-OER" to enable */
- NativeInteger_decode_uper,
- NativeInteger_encode_uper,
- 0, /* Use generic outmost tag fetcher */
asn_DEF_Int4_tags_1,
sizeof(asn_DEF_Int4_tags_1)
/sizeof(asn_DEF_Int4_tags_1[0]), /* 1 */
@@ -415,18 +375,8 @@
asn_TYPE_descriptor_t asn_DEF_Int5 = {
"Int5",
"Int5",
- NativeInteger_free,
- NativeInteger_print,
- NativeInteger_compare,
+ &asn_OP_NativeInteger,
Int5_constraint,
- NativeInteger_decode_ber,
- NativeInteger_encode_der,
- NativeInteger_decode_xer,
- NativeInteger_encode_xer,
- 0, 0, /* No OER support, use "-gen-OER" to enable */
- NativeInteger_decode_uper,
- NativeInteger_encode_uper,
- 0, /* Use generic outmost tag fetcher */
asn_DEF_Int5_tags_1,
sizeof(asn_DEF_Int5_tags_1)
/sizeof(asn_DEF_Int5_tags_1[0]), /* 1 */
@@ -509,18 +459,8 @@
asn_TYPE_descriptor_t asn_DEF_ExtensibleExtensions = {
"ExtensibleExtensions",
"ExtensibleExtensions",
- NativeInteger_free,
- NativeInteger_print,
- NativeInteger_compare,
+ &asn_OP_NativeInteger,
ExtensibleExtensions_constraint,
- NativeInteger_decode_ber,
- NativeInteger_encode_der,
- NativeInteger_decode_xer,
- NativeInteger_encode_xer,
- 0, 0, /* No OER support, use "-gen-OER" to enable */
- NativeInteger_decode_uper,
- NativeInteger_encode_uper,
- 0, /* Use generic outmost tag fetcher */
asn_DEF_ExtensibleExtensions_tags_1,
sizeof(asn_DEF_ExtensibleExtensions_tags_1)
/sizeof(asn_DEF_ExtensibleExtensions_tags_1[0]), /* 1 */
@@ -570,18 +510,8 @@
asn_TYPE_descriptor_t asn_DEF_Str1 = {
"Str1",
"Str1",
- IA5String_free,
- IA5String_print,
- IA5String_compare,
+ &asn_OP_IA5String,
IA5String_constraint,
- IA5String_decode_ber,
- IA5String_encode_der,
- IA5String_decode_xer,
- IA5String_encode_xer,
- 0, 0, /* No OER support, use "-gen-OER" to enable */
- IA5String_decode_uper,
- IA5String_encode_uper,
- 0, /* Use generic outmost tag fetcher */
asn_DEF_Str1_tags_1,
sizeof(asn_DEF_Str1_tags_1)
/sizeof(asn_DEF_Str1_tags_1[0]), /* 1 */
@@ -683,18 +613,8 @@
asn_TYPE_descriptor_t asn_DEF_Str2 = {
"Str2",
"Str2",
- IA5String_free,
- IA5String_print,
- IA5String_compare,
+ &asn_OP_IA5String,
Str2_constraint,
- IA5String_decode_ber,
- IA5String_encode_der,
- IA5String_decode_xer,
- IA5String_encode_xer,
- 0, 0, /* No OER support, use "-gen-OER" to enable */
- IA5String_decode_uper,
- IA5String_encode_uper,
- 0, /* Use generic outmost tag fetcher */
asn_DEF_Str2_tags_1,
sizeof(asn_DEF_Str2_tags_1)
/sizeof(asn_DEF_Str2_tags_1[0]), /* 1 */
@@ -820,18 +740,8 @@
asn_TYPE_descriptor_t asn_DEF_Str3 = {
"Str3",
"Str3",
- IA5String_free,
- IA5String_print,
- IA5String_compare,
+ &asn_OP_IA5String,
Str3_constraint,
- IA5String_decode_ber,
- IA5String_encode_der,
- IA5String_decode_xer,
- IA5String_encode_xer,
- 0, 0, /* No OER support, use "-gen-OER" to enable */
- IA5String_decode_uper,
- IA5String_encode_uper,
- 0, /* Use generic outmost tag fetcher */
asn_DEF_Str3_tags_1,
sizeof(asn_DEF_Str3_tags_1)
/sizeof(asn_DEF_Str3_tags_1[0]), /* 1 */
@@ -929,18 +839,8 @@
asn_TYPE_descriptor_t asn_DEF_Str4 = {
"Str4",
"Str4",
- IA5String_free,
- IA5String_print,
- IA5String_compare,
+ &asn_OP_IA5String,
Str4_constraint,
- IA5String_decode_ber,
- IA5String_encode_der,
- IA5String_decode_xer,
- IA5String_encode_xer,
- 0, 0, /* No OER support, use "-gen-OER" to enable */
- IA5String_decode_uper,
- IA5String_encode_uper,
- 0, /* Use generic outmost tag fetcher */
asn_DEF_Str4_tags_1,
sizeof(asn_DEF_Str4_tags_1)
/sizeof(asn_DEF_Str4_tags_1[0]), /* 1 */
@@ -1039,18 +939,8 @@
asn_TYPE_descriptor_t asn_DEF_PER_Visible = {
"PER-Visible",
"PER-Visible",
- IA5String_free,
- IA5String_print,
- IA5String_compare,
+ &asn_OP_IA5String,
PER_Visible_constraint,
- IA5String_decode_ber,
- IA5String_encode_der,
- IA5String_decode_xer,
- IA5String_encode_xer,
- 0, 0, /* No OER support, use "-gen-OER" to enable */
- IA5String_decode_uper,
- IA5String_encode_uper,
- 0, /* Use generic outmost tag fetcher */
asn_DEF_PER_Visible_tags_1,
sizeof(asn_DEF_PER_Visible_tags_1)
/sizeof(asn_DEF_PER_Visible_tags_1[0]), /* 1 */
@@ -1148,18 +1038,8 @@
asn_TYPE_descriptor_t asn_DEF_PER_Visible_2 = {
"PER-Visible-2",
"PER-Visible-2",
- IA5String_free,
- IA5String_print,
- IA5String_compare,
+ &asn_OP_IA5String,
PER_Visible_2_constraint,
- IA5String_decode_ber,
- IA5String_encode_der,
- IA5String_decode_xer,
- IA5String_encode_xer,
- 0, 0, /* No OER support, use "-gen-OER" to enable */
- IA5String_decode_uper,
- IA5String_encode_uper,
- 0, /* Use generic outmost tag fetcher */
asn_DEF_PER_Visible_2_tags_1,
sizeof(asn_DEF_PER_Visible_2_tags_1)
/sizeof(asn_DEF_PER_Visible_2_tags_1[0]), /* 1 */
@@ -1257,18 +1137,8 @@
asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_1 = {
"Not-PER-Visible-1",
"Not-PER-Visible-1",
- IA5String_free,
- IA5String_print,
- IA5String_compare,
+ &asn_OP_IA5String,
Not_PER_Visible_1_constraint,
- IA5String_decode_ber,
- IA5String_encode_der,
- IA5String_decode_xer,
- IA5String_encode_xer,
- 0, 0, /* No OER support, use "-gen-OER" to enable */
- IA5String_decode_uper,
- IA5String_encode_uper,
- 0, /* Use generic outmost tag fetcher */
asn_DEF_Not_PER_Visible_1_tags_1,
sizeof(asn_DEF_Not_PER_Visible_1_tags_1)
/sizeof(asn_DEF_Not_PER_Visible_1_tags_1[0]), /* 1 */
@@ -1366,18 +1236,8 @@
asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_2 = {
"Not-PER-Visible-2",
"Not-PER-Visible-2",
- IA5String_free,
- IA5String_print,
- IA5String_compare,
+ &asn_OP_IA5String,
Not_PER_Visible_2_constraint,
- IA5String_decode_ber,
- IA5String_encode_der,
- IA5String_decode_xer,
- IA5String_encode_xer,
- 0, 0, /* No OER support, use "-gen-OER" to enable */
- IA5String_decode_uper,
- IA5String_encode_uper,
- 0, /* Use generic outmost tag fetcher */
asn_DEF_Not_PER_Visible_2_tags_1,
sizeof(asn_DEF_Not_PER_Visible_2_tags_1)
/sizeof(asn_DEF_Not_PER_Visible_2_tags_1[0]), /* 1 */
@@ -1475,18 +1335,8 @@
asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_3 = {
"Not-PER-Visible-3",
"Not-PER-Visible-3",
- IA5String_free,
- IA5String_print,
- IA5String_compare,
+ &asn_OP_IA5String,
Not_PER_Visible_3_constraint,
- IA5String_decode_ber,
- IA5String_encode_der,
- IA5String_decode_xer,
- IA5String_encode_xer,
- 0, 0, /* No OER support, use "-gen-OER" to enable */
- IA5String_decode_uper,
- IA5String_encode_uper,
- 0, /* Use generic outmost tag fetcher */
asn_DEF_Not_PER_Visible_3_tags_1,
sizeof(asn_DEF_Not_PER_Visible_3_tags_1)
/sizeof(asn_DEF_Not_PER_Visible_3_tags_1[0]), /* 1 */
@@ -1587,18 +1437,8 @@
asn_TYPE_descriptor_t asn_DEF_SIZE_but_not_FROM = {
"SIZE-but-not-FROM",
"SIZE-but-not-FROM",
- IA5String_free,
- IA5String_print,
- IA5String_compare,
+ &asn_OP_IA5String,
SIZE_but_not_FROM_constraint,
- IA5String_decode_ber,
- IA5String_encode_der,
- IA5String_decode_xer,
- IA5String_encode_xer,
- 0, 0, /* No OER support, use "-gen-OER" to enable */
- IA5String_decode_uper,
- IA5String_encode_uper,
- 0, /* Use generic outmost tag fetcher */
asn_DEF_SIZE_but_not_FROM_tags_1,
sizeof(asn_DEF_SIZE_but_not_FROM_tags_1)
/sizeof(asn_DEF_SIZE_but_not_FROM_tags_1[0]), /* 1 */
@@ -1699,18 +1539,8 @@
asn_TYPE_descriptor_t asn_DEF_SIZE_and_FROM = {
"SIZE-and-FROM",
"SIZE-and-FROM",
- IA5String_free,
- IA5String_print,
- IA5String_compare,
+ &asn_OP_IA5String,
SIZE_and_FROM_constraint,
- IA5String_decode_ber,
- IA5String_encode_der,
- IA5String_decode_xer,
- IA5String_encode_xer,
- 0, 0, /* No OER support, use "-gen-OER" to enable */
- IA5String_decode_uper,
- IA5String_encode_uper,
- 0, /* Use generic outmost tag fetcher */
asn_DEF_SIZE_and_FROM_tags_1,
sizeof(asn_DEF_SIZE_and_FROM_tags_1)
/sizeof(asn_DEF_SIZE_and_FROM_tags_1[0]), /* 1 */
@@ -1808,18 +1638,8 @@
asn_TYPE_descriptor_t asn_DEF_Neither_SIZE_nor_FROM = {
"Neither-SIZE-nor-FROM",
"Neither-SIZE-nor-FROM",
- IA5String_free,
- IA5String_print,
- IA5String_compare,
+ &asn_OP_IA5String,
Neither_SIZE_nor_FROM_constraint,
- IA5String_decode_ber,
- IA5String_encode_der,
- IA5String_decode_xer,
- IA5String_encode_xer,
- 0, 0, /* No OER support, use "-gen-OER" to enable */
- IA5String_decode_uper,
- IA5String_encode_uper,
- 0, /* Use generic outmost tag fetcher */
asn_DEF_Neither_SIZE_nor_FROM_tags_1,
sizeof(asn_DEF_Neither_SIZE_nor_FROM_tags_1)
/sizeof(asn_DEF_Neither_SIZE_nor_FROM_tags_1[0]), /* 1 */
@@ -1911,18 +1731,8 @@
asn_TYPE_descriptor_t asn_DEF_Utf8_4 = {
"Utf8-4",
"Utf8-4",
- UTF8String_free,
- UTF8String_print,
- UTF8String_compare,
+ &asn_OP_UTF8String,
Utf8_4_constraint,
- UTF8String_decode_ber,
- UTF8String_encode_der,
- UTF8String_decode_xer,
- UTF8String_encode_xer,
- 0, 0, /* No OER support, use "-gen-OER" to enable */
- UTF8String_decode_uper,
- UTF8String_encode_uper,
- 0, /* Use generic outmost tag fetcher */
asn_DEF_Utf8_4_tags_1,
sizeof(asn_DEF_Utf8_4_tags_1)
/sizeof(asn_DEF_Utf8_4_tags_1[0]), /* 1 */
@@ -2042,18 +1852,8 @@
asn_TYPE_descriptor_t asn_DEF_Utf8_3 = {
"Utf8-3",
"Utf8-3",
- UTF8String_free,
- UTF8String_print,
- UTF8String_compare,
+ &asn_OP_UTF8String,
Utf8_3_constraint,
- UTF8String_decode_ber,
- UTF8String_encode_der,
- UTF8String_decode_xer,
- UTF8String_encode_xer,
- 0, 0, /* No OER support, use "-gen-OER" to enable */
- UTF8String_decode_uper,
- UTF8String_encode_uper,
- 0, /* Use generic outmost tag fetcher */
asn_DEF_Utf8_3_tags_1,
sizeof(asn_DEF_Utf8_3_tags_1)
/sizeof(asn_DEF_Utf8_3_tags_1[0]), /* 1 */
@@ -2144,18 +1944,8 @@
asn_TYPE_descriptor_t asn_DEF_Utf8_2 = {
"Utf8-2",
"Utf8-2",
- UTF8String_free,
- UTF8String_print,
- UTF8String_compare,
+ &asn_OP_UTF8String,
Utf8_2_constraint,
- UTF8String_decode_ber,
- UTF8String_encode_der,
- UTF8String_decode_xer,
- UTF8String_encode_xer,
- 0, 0, /* No OER support, use "-gen-OER" to enable */
- UTF8String_decode_uper,
- UTF8String_encode_uper,
- 0, /* Use generic outmost tag fetcher */
asn_DEF_Utf8_2_tags_1,
sizeof(asn_DEF_Utf8_2_tags_1)
/sizeof(asn_DEF_Utf8_2_tags_1[0]), /* 1 */
@@ -2205,18 +1995,8 @@
asn_TYPE_descriptor_t asn_DEF_Utf8_1 = {
"Utf8-1",
"Utf8-1",
- UTF8String_free,
- UTF8String_print,
- UTF8String_compare,
+ &asn_OP_UTF8String,
UTF8String_constraint,
- UTF8String_decode_ber,
- UTF8String_encode_der,
- UTF8String_decode_xer,
- UTF8String_encode_xer,
- 0, 0, /* No OER support, use "-gen-OER" to enable */
- UTF8String_decode_uper,
- UTF8String_encode_uper,
- 0, /* Use generic outmost tag fetcher */
asn_DEF_Utf8_1_tags_1,
sizeof(asn_DEF_Utf8_1_tags_1)
/sizeof(asn_DEF_Utf8_1_tags_1[0]), /* 1 */
@@ -2328,18 +2108,8 @@
asn_TYPE_descriptor_t asn_DEF_VisibleIdentifier = {
"VisibleIdentifier",
"VisibleIdentifier",
- VisibleString_free,
- VisibleString_print,
- VisibleString_compare,
+ &asn_OP_VisibleString,
VisibleIdentifier_constraint,
- VisibleString_decode_ber,
- VisibleString_encode_der,
- VisibleString_decode_xer,
- VisibleString_encode_xer,
- 0, 0, /* No OER support, use "-gen-OER" to enable */
- VisibleString_decode_uper,
- VisibleString_encode_uper,
- 0, /* Use generic outmost tag fetcher */
asn_DEF_VisibleIdentifier_tags_1,
sizeof(asn_DEF_VisibleIdentifier_tags_1)
/sizeof(asn_DEF_VisibleIdentifier_tags_1[0]), /* 1 */
@@ -2571,18 +2341,8 @@
asn_TYPE_descriptor_t asn_DEF_enum_c_6 = {
"enum-c",
"enum-c",
- NativeEnumerated_free,
- NativeEnumerated_print,
- NativeEnumerated_compare,
+ &asn_OP_NativeEnumerated,
NativeEnumerated_constraint,
- NativeEnumerated_decode_ber,
- NativeEnumerated_encode_der,
- NativeEnumerated_decode_xer,
- NativeEnumerated_encode_xer,
- 0, 0, /* No OER support, use "-gen-OER" to enable */
- NativeEnumerated_decode_uper,
- NativeEnumerated_encode_uper,
- 0, /* Use generic outmost tag fetcher */
asn_DEF_enum_c_tags_6,
sizeof(asn_DEF_enum_c_tags_6)
/sizeof(asn_DEF_enum_c_tags_6[0]), /* 1 */
@@ -2700,18 +2460,8 @@
asn_TYPE_descriptor_t asn_DEF_Sequence = {
"Sequence",
"Sequence",
- SEQUENCE_free,
- SEQUENCE_print,
- SEQUENCE_compare,
+ &asn_OP_SEQUENCE,
SEQUENCE_constraint,
- SEQUENCE_decode_ber,
- SEQUENCE_encode_der,
- SEQUENCE_decode_xer,
- SEQUENCE_encode_xer,
- 0, 0, /* No OER support, use "-gen-OER" to enable */
- SEQUENCE_decode_uper,
- SEQUENCE_encode_uper,
- 0, /* Use generic outmost tag fetcher */
asn_DEF_Sequence_tags_1,
sizeof(asn_DEF_Sequence_tags_1)
/sizeof(asn_DEF_Sequence_tags_1[0]), /* 1 */
@@ -2786,18 +2536,8 @@
asn_TYPE_descriptor_t asn_DEF_SequenceOf = {
"SequenceOf",
"SequenceOf",
- SEQUENCE_OF_free,
- SEQUENCE_OF_print,
- SEQUENCE_OF_compare,
+ &asn_OP_SEQUENCE_OF,
SEQUENCE_OF_constraint,
- SEQUENCE_OF_decode_ber,
- SEQUENCE_OF_encode_der,
- SEQUENCE_OF_decode_xer,
- SEQUENCE_OF_encode_xer,
- 0, 0, /* No OER support, use "-gen-OER" to enable */
- SEQUENCE_OF_decode_uper,
- SEQUENCE_OF_encode_uper,
- 0, /* Use generic outmost tag fetcher */
asn_DEF_SequenceOf_tags_1,
sizeof(asn_DEF_SequenceOf_tags_1)
/sizeof(asn_DEF_SequenceOf_tags_1[0]), /* 1 */
@@ -2880,18 +2620,8 @@
asn_TYPE_descriptor_t asn_DEF_Enum0 = {
"Enum0",
"Enum0",
- NativeEnumerated_free,
- NativeEnumerated_print,
- NativeEnumerated_compare,
+ &asn_OP_NativeEnumerated,
NativeEnumerated_constraint,
- NativeEnumerated_decode_ber,
- NativeEnumerated_encode_der,
- NativeEnumerated_decode_xer,
- NativeEnumerated_encode_xer,
- 0, 0, /* No OER support, use "-gen-OER" to enable */
- NativeEnumerated_decode_uper,
- NativeEnumerated_encode_uper,
- 0, /* Use generic outmost tag fetcher */
asn_DEF_Enum0_tags_1,
sizeof(asn_DEF_Enum0_tags_1)
/sizeof(asn_DEF_Enum0_tags_1[0]), /* 1 */
@@ -2998,18 +2728,8 @@
asn_TYPE_descriptor_t asn_DEF_Enum1 = {
"Enum1",
"Enum1",
- NativeEnumerated_free,
- NativeEnumerated_print,
- NativeEnumerated_compare,
+ &asn_OP_NativeEnumerated,
Enum1_constraint,
- NativeEnumerated_decode_ber,
- NativeEnumerated_encode_der,
- NativeEnumerated_decode_xer,
- NativeEnumerated_encode_xer,
- 0, 0, /* No OER support, use "-gen-OER" to enable */
- NativeEnumerated_decode_uper,
- NativeEnumerated_encode_uper,
- 0, /* Use generic outmost tag fetcher */
asn_DEF_Enum1_tags_1,
sizeof(asn_DEF_Enum1_tags_1)
/sizeof(asn_DEF_Enum1_tags_1[0]), /* 1 */
@@ -3141,18 +2861,8 @@
asn_TYPE_descriptor_t asn_DEF_Identifier = {
"Identifier",
"Identifier",
- VisibleString_free,
- VisibleString_print,
- VisibleString_compare,
+ &asn_OP_VisibleString,
Identifier_constraint,
- VisibleString_decode_ber,
- VisibleString_encode_der,
- VisibleString_decode_xer,
- VisibleString_encode_xer,
- 0, 0, /* No OER support, use "-gen-OER" to enable */
- VisibleString_decode_uper,
- VisibleString_encode_uper,
- 0, /* Use generic outmost tag fetcher */
asn_DEF_Identifier_tags_1,
sizeof(asn_DEF_Identifier_tags_1)
/sizeof(asn_DEF_Identifier_tags_1[0]), /* 1 */