upgrade: PER related changes


git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@1011 59561ff5-6e30-0410-9f3c-9617f08c8826
diff --git a/tests/43-recursion-OK.asn1.-P b/tests/43-recursion-OK.asn1.-P
index a348036..2c4f3c7 100644
--- a/tests/43-recursion-OK.asn1.-P
+++ b/tests/43-recursion-OK.asn1.-P
@@ -50,13 +50,15 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_Test_structure_1,
 		.memb_constraints = 0,	/* Defer constraints checking to the member type */
+		.per_constraints = 0,	/* PER is not compiled, use -gen-PER */
+		.default_value = 0,
 		.name = ""
 		},
 };
-static ber_tlv_tag_t asn_DEF_t_member1_2_tags[] = {
+static ber_tlv_tag_t asn_DEF_t_member1_tags_2[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
 };
-static asn_SET_OF_specifics_t asn_SPC_t_member1_2_specs = {
+static asn_SET_OF_specifics_t asn_SPC_t_member1_specs_2 = {
 	sizeof(struct t_member1),
 	offsetof(struct t_member1, _asn_ctx),
 	0,	/* XER encoding is XMLDelimitedItemList */
@@ -72,16 +74,18 @@
 	SET_OF_encode_der,
 	SET_OF_decode_xer,
 	SET_OF_encode_xer,
+	0,	/* No PER decoder, -gen-PER to enable */
 	0,	/* Use generic outmost tag fetcher */
-	asn_DEF_t_member1_2_tags,
-	sizeof(asn_DEF_t_member1_2_tags)
-		/sizeof(asn_DEF_t_member1_2_tags[0]), /* 1 */
-	asn_DEF_t_member1_2_tags,	/* Same as above */
-	sizeof(asn_DEF_t_member1_2_tags)
-		/sizeof(asn_DEF_t_member1_2_tags[0]), /* 1 */
+	asn_DEF_t_member1_tags_2,
+	sizeof(asn_DEF_t_member1_tags_2)
+		/sizeof(asn_DEF_t_member1_tags_2[0]), /* 1 */
+	asn_DEF_t_member1_tags_2,	/* Same as above */
+	sizeof(asn_DEF_t_member1_tags_2)
+		/sizeof(asn_DEF_t_member1_tags_2[0]), /* 1 */
+	0,	/* No PER visible constraints */
 	asn_MBR_t_member1_2,
 	1,	/* Single element */
-	&asn_SPC_t_member1_2_specs	/* Additional specs */
+	&asn_SPC_t_member1_specs_2	/* Additional specs */
 };
 
 static asn_TYPE_member_t asn_MBR_t_member2_4[] = {
@@ -90,13 +94,15 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_Test_structure_1,
 		.memb_constraints = 0,	/* Defer constraints checking to the member type */
+		.per_constraints = 0,	/* PER is not compiled, use -gen-PER */
+		.default_value = 0,
 		.name = ""
 		},
 };
-static ber_tlv_tag_t asn_DEF_t_member2_4_tags[] = {
+static ber_tlv_tag_t asn_DEF_t_member2_tags_4[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-static asn_SET_OF_specifics_t asn_SPC_t_member2_4_specs = {
+static asn_SET_OF_specifics_t asn_SPC_t_member2_specs_4 = {
 	sizeof(struct t_member2),
 	offsetof(struct t_member2, _asn_ctx),
 	0,	/* XER encoding is XMLDelimitedItemList */
@@ -112,16 +118,18 @@
 	SEQUENCE_OF_encode_der,
 	SEQUENCE_OF_decode_xer,
 	SEQUENCE_OF_encode_xer,
+	0,	/* No PER decoder, -gen-PER to enable */
 	0,	/* Use generic outmost tag fetcher */
-	asn_DEF_t_member2_4_tags,
-	sizeof(asn_DEF_t_member2_4_tags)
-		/sizeof(asn_DEF_t_member2_4_tags[0]), /* 1 */
-	asn_DEF_t_member2_4_tags,	/* Same as above */
-	sizeof(asn_DEF_t_member2_4_tags)
-		/sizeof(asn_DEF_t_member2_4_tags[0]), /* 1 */
+	asn_DEF_t_member2_tags_4,
+	sizeof(asn_DEF_t_member2_tags_4)
+		/sizeof(asn_DEF_t_member2_tags_4[0]), /* 1 */
+	asn_DEF_t_member2_tags_4,	/* Same as above */
+	sizeof(asn_DEF_t_member2_tags_4)
+		/sizeof(asn_DEF_t_member2_tags_4[0]), /* 1 */
+	0,	/* No PER visible constraints */
 	asn_MBR_t_member2_4,
 	1,	/* Single element */
-	&asn_SPC_t_member2_4_specs	/* Additional specs */
+	&asn_SPC_t_member2_specs_4	/* Additional specs */
 };
 
 static asn_TYPE_member_t asn_MBR_Test_structure_1_1[] = {
@@ -130,6 +138,8 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_t_member1_2,
 		.memb_constraints = 0,	/* Defer constraints checking to the member type */
+		.per_constraints = 0,	/* PER is not compiled, use -gen-PER */
+		.default_value = 0,
 		.name = "t-member1"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct Test_structure_1, t_member2),
@@ -137,6 +147,8 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_t_member2_4,
 		.memb_constraints = 0,	/* Defer constraints checking to the member type */
+		.per_constraints = 0,	/* PER is not compiled, use -gen-PER */
+		.default_value = 0,
 		.name = "t-member2"
 		},
 	{ ATF_POINTER, 1, offsetof(struct Test_structure_1, t_member3),
@@ -144,6 +156,8 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_Test_structure_1,
 		.memb_constraints = 0,	/* Defer constraints checking to the member type */
+		.per_constraints = 0,	/* PER is not compiled, use -gen-PER */
+		.default_value = 0,
 		.name = "t-member3"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct Test_structure_1, t_member4),
@@ -151,23 +165,26 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_INTEGER,
 		.memb_constraints = 0,	/* Defer constraints checking to the member type */
+		.per_constraints = 0,	/* PER is not compiled, use -gen-PER */
+		.default_value = 0,
 		.name = "t-member4"
 		},
 };
-static ber_tlv_tag_t asn_DEF_Test_structure_1_1_tags[] = {
+static ber_tlv_tag_t asn_DEF_Test_structure_1_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-static asn_TYPE_tag2member_t asn_MAP_Test_structure_1_1_tag2el[] = {
+static asn_TYPE_tag2member_t asn_MAP_Test_structure_1_tag2el_1[] = {
     { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, 0, 0 }, /* t-member4 at 19 */
     { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* t-member2 at 16 */
     { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 }, /* t-member3 at 17 */
     { (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), 0, 0, 0 } /* t-member1 at 15 */
 };
-static asn_SEQUENCE_specifics_t asn_SPC_Test_structure_1_1_specs = {
+static asn_SEQUENCE_specifics_t asn_SPC_Test_structure_1_specs_1 = {
 	sizeof(struct Test_structure_1),
 	offsetof(struct Test_structure_1, _asn_ctx),
-	asn_MAP_Test_structure_1_1_tag2el,
+	asn_MAP_Test_structure_1_tag2el_1,
 	4,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
 	-1,	/* Start extensions */
 	-1	/* Stop extensions */
 };
@@ -181,16 +198,18 @@
 	SEQUENCE_encode_der,
 	SEQUENCE_decode_xer,
 	SEQUENCE_encode_xer,
+	0,	/* No PER decoder, -gen-PER to enable */
 	0,	/* Use generic outmost tag fetcher */
-	asn_DEF_Test_structure_1_1_tags,
-	sizeof(asn_DEF_Test_structure_1_1_tags)
-		/sizeof(asn_DEF_Test_structure_1_1_tags[0]), /* 1 */
-	asn_DEF_Test_structure_1_1_tags,	/* Same as above */
-	sizeof(asn_DEF_Test_structure_1_1_tags)
-		/sizeof(asn_DEF_Test_structure_1_1_tags[0]), /* 1 */
+	asn_DEF_Test_structure_1_tags_1,
+	sizeof(asn_DEF_Test_structure_1_tags_1)
+		/sizeof(asn_DEF_Test_structure_1_tags_1[0]), /* 1 */
+	asn_DEF_Test_structure_1_tags_1,	/* Same as above */
+	sizeof(asn_DEF_Test_structure_1_tags_1)
+		/sizeof(asn_DEF_Test_structure_1_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
 	asn_MBR_Test_structure_1_1,
 	4,	/* Elements count */
-	&asn_SPC_Test_structure_1_1_specs	/* Additional specs */
+	&asn_SPC_Test_structure_1_specs_1	/* Additional specs */
 };
 
 
@@ -251,14 +270,16 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_Choice_1,
 		.memb_constraints = 0,	/* Defer constraints checking to the member type */
+		.per_constraints = 0,	/* PER is not compiled, use -gen-PER */
+		.default_value = 0,
 		.name = ""
 		},
 };
-static ber_tlv_tag_t asn_DEF_or_3_tags[] = {
+static ber_tlv_tag_t asn_DEF_or_tags_3[] = {
 	(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
 	(ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
 };
-static asn_SET_OF_specifics_t asn_SPC_or_3_specs = {
+static asn_SET_OF_specifics_t asn_SPC_or_specs_3 = {
 	sizeof(struct or),
 	offsetof(struct or, _asn_ctx),
 	2,	/* XER encoding is XMLValueList */
@@ -274,16 +295,18 @@
 	SET_OF_encode_der,
 	SET_OF_decode_xer,
 	SET_OF_encode_xer,
+	0,	/* No PER decoder, -gen-PER to enable */
 	0,	/* Use generic outmost tag fetcher */
-	asn_DEF_or_3_tags,
-	sizeof(asn_DEF_or_3_tags)
-		/sizeof(asn_DEF_or_3_tags[0]) - 1, /* 1 */
-	asn_DEF_or_3_tags,	/* Same as above */
-	sizeof(asn_DEF_or_3_tags)
-		/sizeof(asn_DEF_or_3_tags[0]), /* 2 */
+	asn_DEF_or_tags_3,
+	sizeof(asn_DEF_or_tags_3)
+		/sizeof(asn_DEF_or_tags_3[0]) - 1, /* 1 */
+	asn_DEF_or_tags_3,	/* Same as above */
+	sizeof(asn_DEF_or_tags_3)
+		/sizeof(asn_DEF_or_tags_3[0]), /* 2 */
+	0,	/* No PER visible constraints */
 	asn_MBR_or_3,
 	1,	/* Single element */
-	&asn_SPC_or_3_specs	/* Additional specs */
+	&asn_SPC_or_specs_3	/* Additional specs */
 };
 
 static asn_TYPE_member_t asn_MBR_Choice_1_1[] = {
@@ -292,6 +315,8 @@
 		.tag_mode = +1,	/* EXPLICIT tag at current level */
 		.type = &asn_DEF_Choice_1,
 		.memb_constraints = 0,	/* Defer constraints checking to the member type */
+		.per_constraints = 0,	/* PER is not compiled, use -gen-PER */
+		.default_value = 0,
 		.name = "and"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct Choice_1, choice.or),
@@ -299,6 +324,8 @@
 		.tag_mode = -1,	/* IMPLICIT tag at current level */
 		.type = &asn_DEF_or_3,
 		.memb_constraints = 0,	/* Defer constraints checking to the member type */
+		.per_constraints = 0,	/* PER is not compiled, use -gen-PER */
+		.default_value = 0,
 		.name = "or"
 		},
 	{ ATF_POINTER, 0, offsetof(struct Choice_1, choice.not),
@@ -306,6 +333,8 @@
 		.tag_mode = +1,	/* EXPLICIT tag at current level */
 		.type = &asn_DEF_Choice_1,
 		.memb_constraints = 0,	/* Defer constraints checking to the member type */
+		.per_constraints = 0,	/* PER is not compiled, use -gen-PER */
+		.default_value = 0,
 		.name = "not"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct Choice_1, choice.other),
@@ -313,23 +342,26 @@
 		.tag_mode = +1,	/* EXPLICIT tag at current level */
 		.type = &asn_DEF_INTEGER,
 		.memb_constraints = 0,	/* Defer constraints checking to the member type */
+		.per_constraints = 0,	/* PER is not compiled, use -gen-PER */
+		.default_value = 0,
 		.name = "other"
 		},
 };
-static asn_TYPE_tag2member_t asn_MAP_Choice_1_1_tag2el[] = {
+static asn_TYPE_tag2member_t asn_MAP_Choice_1_tag2el_1[] = {
     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* and at 22 */
     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* or at 23 */
     { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* not at 24 */
     { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 3, 0, 0 } /* other at 26 */
 };
-static asn_CHOICE_specifics_t asn_SPC_Choice_1_1_specs = {
+static asn_CHOICE_specifics_t asn_SPC_Choice_1_specs_1 = {
 	sizeof(struct Choice_1),
 	offsetof(struct Choice_1, _asn_ctx),
 	offsetof(struct Choice_1, present),
 	sizeof(((struct Choice_1 *)0)->present),
-	asn_MAP_Choice_1_1_tag2el,
+	asn_MAP_Choice_1_tag2el_1,
 	4,	/* Count of tags in the map */
-	0	/* Whether extensible */
+	.canonical_order = 0,
+	.ext_start = -1	/* Extensions start */
 };
 asn_TYPE_descriptor_t asn_DEF_Choice_1 = {
 	"Choice-1",
@@ -341,14 +373,16 @@
 	CHOICE_encode_der,
 	CHOICE_decode_xer,
 	CHOICE_encode_xer,
+	0,	/* No PER decoder, -gen-PER to enable */
 	CHOICE_outmost_tag,
 	0,	/* No effective tags (pointer) */
 	0,	/* No effective tags (count) */
 	0,	/* No tags (pointer) */
 	0,	/* No tags (count) */
+	0,	/* No PER visible constraints */
 	asn_MBR_Choice_1_1,
 	4,	/* Elements count */
-	&asn_SPC_Choice_1_1_specs	/* Additional specs */
+	&asn_SPC_Choice_1_specs_1	/* Additional specs */
 };
 
 
@@ -399,28 +433,30 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_Test_structure_3,
 		.memb_constraints = 0,	/* Defer constraints checking to the member type */
+		.per_constraints = 0,	/* PER is not compiled, use -gen-PER */
+		.default_value = 0,
 		.name = "m1"
 		},
 };
-static ber_tlv_tag_t asn_DEF_Test_structure_2_1_tags[] = {
+static ber_tlv_tag_t asn_DEF_Test_structure_2_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
 };
-static asn_TYPE_tag2member_t asn_MAP_Test_structure_2_1_tag2el[] = {
+static asn_TYPE_tag2member_t asn_MAP_Test_structure_2_tag2el_1[] = {
     { (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), 0, 0, 0 } /* m1 at 28 */
 };
-static uint8_t asn_MAP_Test_structure_2_1_mmap[(1 + (8 * sizeof(unsigned int)) - 1) / 8] = {
+static uint8_t asn_MAP_Test_structure_2_mmap_1[(1 + (8 * sizeof(unsigned int)) - 1) / 8] = {
 	(0 << 7)
 };
-static asn_SET_specifics_t asn_SPC_Test_structure_2_1_specs = {
+static asn_SET_specifics_t asn_SPC_Test_structure_2_specs_1 = {
 	sizeof(struct Test_structure_2),
 	offsetof(struct Test_structure_2, _asn_ctx),
 	offsetof(struct Test_structure_2, _presence_map),
-	asn_MAP_Test_structure_2_1_tag2el,
+	asn_MAP_Test_structure_2_tag2el_1,
 	1,	/* Count of tags in the map */
-	asn_MAP_Test_structure_2_1_tag2el,	/* Same as above */
+	asn_MAP_Test_structure_2_tag2el_1,	/* Same as above */
 	1,	/* Count of tags in the CXER map */
 	0,	/* Whether extensible */
-	(unsigned int *)asn_MAP_Test_structure_2_1_mmap	/* Mandatory elements map */
+	(unsigned int *)asn_MAP_Test_structure_2_mmap_1	/* Mandatory elements map */
 };
 asn_TYPE_descriptor_t asn_DEF_Test_structure_2 = {
 	"Test-structure-2",
@@ -432,16 +468,18 @@
 	SET_encode_der,
 	SET_decode_xer,
 	SET_encode_xer,
+	0,	/* No PER decoder, -gen-PER to enable */
 	0,	/* Use generic outmost tag fetcher */
-	asn_DEF_Test_structure_2_1_tags,
-	sizeof(asn_DEF_Test_structure_2_1_tags)
-		/sizeof(asn_DEF_Test_structure_2_1_tags[0]), /* 1 */
-	asn_DEF_Test_structure_2_1_tags,	/* Same as above */
-	sizeof(asn_DEF_Test_structure_2_1_tags)
-		/sizeof(asn_DEF_Test_structure_2_1_tags[0]), /* 1 */
+	asn_DEF_Test_structure_2_tags_1,
+	sizeof(asn_DEF_Test_structure_2_tags_1)
+		/sizeof(asn_DEF_Test_structure_2_tags_1[0]), /* 1 */
+	asn_DEF_Test_structure_2_tags_1,	/* Same as above */
+	sizeof(asn_DEF_Test_structure_2_tags_1)
+		/sizeof(asn_DEF_Test_structure_2_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
 	asn_MBR_Test_structure_2_1,
 	1,	/* Elements count */
-	&asn_SPC_Test_structure_2_1_specs	/* Additional specs */
+	&asn_SPC_Test_structure_2_specs_1	/* Additional specs */
 };
 
 
@@ -492,28 +530,30 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_Test_structure_2,
 		.memb_constraints = 0,	/* Defer constraints checking to the member type */
+		.per_constraints = 0,	/* PER is not compiled, use -gen-PER */
+		.default_value = 0,
 		.name = "m1"
 		},
 };
-static ber_tlv_tag_t asn_DEF_Test_structure_3_1_tags[] = {
+static ber_tlv_tag_t asn_DEF_Test_structure_3_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
 };
-static asn_TYPE_tag2member_t asn_MAP_Test_structure_3_1_tag2el[] = {
+static asn_TYPE_tag2member_t asn_MAP_Test_structure_3_tag2el_1[] = {
     { (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), 0, 0, 0 } /* m1 at 29 */
 };
-static uint8_t asn_MAP_Test_structure_3_1_mmap[(1 + (8 * sizeof(unsigned int)) - 1) / 8] = {
+static uint8_t asn_MAP_Test_structure_3_mmap_1[(1 + (8 * sizeof(unsigned int)) - 1) / 8] = {
 	(0 << 7)
 };
-static asn_SET_specifics_t asn_SPC_Test_structure_3_1_specs = {
+static asn_SET_specifics_t asn_SPC_Test_structure_3_specs_1 = {
 	sizeof(struct Test_structure_3),
 	offsetof(struct Test_structure_3, _asn_ctx),
 	offsetof(struct Test_structure_3, _presence_map),
-	asn_MAP_Test_structure_3_1_tag2el,
+	asn_MAP_Test_structure_3_tag2el_1,
 	1,	/* Count of tags in the map */
-	asn_MAP_Test_structure_3_1_tag2el,	/* Same as above */
+	asn_MAP_Test_structure_3_tag2el_1,	/* Same as above */
 	1,	/* Count of tags in the CXER map */
 	0,	/* Whether extensible */
-	(unsigned int *)asn_MAP_Test_structure_3_1_mmap	/* Mandatory elements map */
+	(unsigned int *)asn_MAP_Test_structure_3_mmap_1	/* Mandatory elements map */
 };
 asn_TYPE_descriptor_t asn_DEF_Test_structure_3 = {
 	"Test-structure-3",
@@ -525,15 +565,17 @@
 	SET_encode_der,
 	SET_decode_xer,
 	SET_encode_xer,
+	0,	/* No PER decoder, -gen-PER to enable */
 	0,	/* Use generic outmost tag fetcher */
-	asn_DEF_Test_structure_3_1_tags,
-	sizeof(asn_DEF_Test_structure_3_1_tags)
-		/sizeof(asn_DEF_Test_structure_3_1_tags[0]), /* 1 */
-	asn_DEF_Test_structure_3_1_tags,	/* Same as above */
-	sizeof(asn_DEF_Test_structure_3_1_tags)
-		/sizeof(asn_DEF_Test_structure_3_1_tags[0]), /* 1 */
+	asn_DEF_Test_structure_3_tags_1,
+	sizeof(asn_DEF_Test_structure_3_tags_1)
+		/sizeof(asn_DEF_Test_structure_3_tags_1[0]), /* 1 */
+	asn_DEF_Test_structure_3_tags_1,	/* Same as above */
+	sizeof(asn_DEF_Test_structure_3_tags_1)
+		/sizeof(asn_DEF_Test_structure_3_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
 	asn_MBR_Test_structure_3_1,
 	1,	/* Elements count */
-	&asn_SPC_Test_structure_3_1_specs	/* Additional specs */
+	&asn_SPC_Test_structure_3_specs_1	/* Additional specs */
 };