constness fixes, round-trip and fuzz-testing for CHOICE
diff --git a/tests/tests-asn1c-compiler/142-anonymous-types-deco-OK.asn1.-Pfcompound-names b/tests/tests-asn1c-compiler/142-anonymous-types-deco-OK.asn1.-Pfcompound-names
index 5425357..30be937 100644
--- a/tests/tests-asn1c-compiler/142-anonymous-types-deco-OK.asn1.-Pfcompound-names
+++ b/tests/tests-asn1c-compiler/142-anonymous-types-deco-OK.asn1.-Pfcompound-names
@@ -39,7 +39,7 @@
 		.type = &asn_DEF_Type1,
 		.type_selector = 0,
 		{ .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
-		.default_value = 0,
+		0, 0, /* No default value */
 		.name = "t1"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct CommonType, choice.t2),
@@ -48,7 +48,7 @@
 		.type = &asn_DEF_Type2,
 		.type_selector = 0,
 		{ .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
-		.default_value = 0,
+		0, 0, /* No default value */
 		.name = "t2"
 		},
 };
@@ -63,7 +63,7 @@
 	sizeof(((struct CommonType *)0)->present),
 	.tag2el = asn_MAP_CommonType_tag2el_1,
 	.tag2el_count = 2,	/* Count of tags in the map */
-	.canonical_order = 0,
+	0, 0,
 	.ext_start = -1	/* Extensions start */
 };
 asn_TYPE_descriptor_t asn_DEF_CommonType = {
@@ -121,7 +121,7 @@
 /*** <<< CODE [Type1] >>> ***/
 
 static int
-memb_x_constraint_2(asn_TYPE_descriptor_t *td, const void *sptr,
+memb_x_constraint_2(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
 	size_t size;
@@ -147,7 +147,7 @@
 }
 
 static int
-memb_y_constraint_2(asn_TYPE_descriptor_t *td, const void *sptr,
+memb_y_constraint_2(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
 	size_t size;
@@ -182,7 +182,7 @@
 		.type = &asn_DEF_OCTET_STRING,
 		.type_selector = 0,
 		{ .oer_constraints = 0, .per_constraints = 0, .general_constraints =  memb_x_constraint_2 },
-		.default_value = 0,
+		0, 0, /* No default value */
 		.name = "x"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct Type1__anonType, y),
@@ -191,7 +191,7 @@
 		.type = &asn_DEF_OCTET_STRING,
 		.type_selector = 0,
 		{ .oer_constraints = 0, .per_constraints = 0, .general_constraints =  memb_y_constraint_2 },
-		.default_value = 0,
+		0, 0, /* No default value */
 		.name = "y"
 		},
 };
@@ -236,7 +236,7 @@
 		.type = &asn_DEF_anonType_2,
 		.type_selector = 0,
 		{ .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
-		.default_value = 0,
+		0, 0, /* No default value */
 		.name = "anonType"
 		},
 };
@@ -250,7 +250,7 @@
 	sizeof(((struct Type1 *)0)->present),
 	.tag2el = asn_MAP_Type1_tag2el_1,
 	.tag2el_count = 1,	/* Count of tags in the map */
-	.canonical_order = 0,
+	0, 0,
 	.ext_start = -1	/* Extensions start */
 };
 asn_TYPE_descriptor_t asn_DEF_Type1 = {
@@ -308,7 +308,7 @@
 /*** <<< CODE [Type2] >>> ***/
 
 static int
-memb_x_constraint_2(asn_TYPE_descriptor_t *td, const void *sptr,
+memb_x_constraint_2(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
 	size_t size;
@@ -334,7 +334,7 @@
 }
 
 static int
-memb_y_constraint_2(asn_TYPE_descriptor_t *td, const void *sptr,
+memb_y_constraint_2(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
 	size_t size;
@@ -369,7 +369,7 @@
 		.type = &asn_DEF_OCTET_STRING,
 		.type_selector = 0,
 		{ .oer_constraints = 0, .per_constraints = 0, .general_constraints =  memb_x_constraint_2 },
-		.default_value = 0,
+		0, 0, /* No default value */
 		.name = "x"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct Type2__anonType, y),
@@ -378,7 +378,7 @@
 		.type = &asn_DEF_OCTET_STRING,
 		.type_selector = 0,
 		{ .oer_constraints = 0, .per_constraints = 0, .general_constraints =  memb_y_constraint_2 },
-		.default_value = 0,
+		0, 0, /* No default value */
 		.name = "y"
 		},
 };
@@ -423,7 +423,7 @@
 		.type = &asn_DEF_anonType_2,
 		.type_selector = 0,
 		{ .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
-		.default_value = 0,
+		0, 0, /* No default value */
 		.name = "anonType"
 		},
 };
@@ -437,7 +437,7 @@
 	sizeof(((struct Type2 *)0)->present),
 	.tag2el = asn_MAP_Type2_tag2el_1,
 	.tag2el_count = 1,	/* Count of tags in the map */
-	.canonical_order = 0,
+	0, 0,
 	.ext_start = -1	/* Extensions start */
 };
 asn_TYPE_descriptor_t asn_DEF_Type2 = {