regenerated
diff --git a/tests/tests-asn1c-compiler/72-same-names-OK.asn1.-Pfwide-types b/tests/tests-asn1c-compiler/72-same-names-OK.asn1.-Pfwide-types
index 138e561..bda3445 100644
--- a/tests/tests-asn1c-compiler/72-same-names-OK.asn1.-Pfwide-types
+++ b/tests/tests-asn1c-compiler/72-same-names-OK.asn1.-Pfwide-types
@@ -38,9 +38,7 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_Type1,
 		.type_selector = 0,
-		.memb_constraints = 0,	/* Defer constraints checking to the member type */
-		.oer_constraints = 0,	/* OER is not compiled, use -gen-OER */
-		.per_constraints = 0,	/* PER is not compiled, use -gen-PER */
+		{ .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
 		.default_value = 0,
 		.name = "t1"
 		},
@@ -49,9 +47,7 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_Type2,
 		.type_selector = 0,
-		.memb_constraints = 0,	/* Defer constraints checking to the member type */
-		.oer_constraints = 0,	/* OER is not compiled, use -gen-OER */
-		.per_constraints = 0,	/* PER is not compiled, use -gen-PER */
+		{ .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
 		.default_value = 0,
 		.name = "t2"
 		},
@@ -78,15 +74,13 @@
 	"SEQUENCE",
 	"SEQUENCE",
 	&asn_OP_SEQUENCE,
-	SEQUENCE_constraint,
 	asn_DEF_Member_tags_2,
 	sizeof(asn_DEF_Member_tags_2)
 		/sizeof(asn_DEF_Member_tags_2[0]), /* 1 */
 	asn_DEF_Member_tags_2,	/* Same as above */
 	sizeof(asn_DEF_Member_tags_2)
 		/sizeof(asn_DEF_Member_tags_2[0]), /* 1 */
-	0,	/* No OER visible constraints */
-	0,	/* No PER visible constraints */
+	{ 0, 0, SEQUENCE_constraint },
 	asn_MBR_Member_2,
 	2,	/* Elements count */
 	&asn_SPC_Member_specs_2	/* Additional specs */
@@ -98,9 +92,7 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_Member_2,
 		.type_selector = 0,
-		.memb_constraints = 0,	/* Defer constraints checking to the member type */
-		.oer_constraints = 0,	/* OER is not compiled, use -gen-OER */
-		.per_constraints = 0,	/* PER is not compiled, use -gen-PER */
+		{ .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
 		.default_value = 0,
 		.name = ""
 		},
@@ -117,15 +109,13 @@
 	"Type",
 	"Type",
 	&asn_OP_SET_OF,
-	SET_OF_constraint,
 	asn_DEF_Type_tags_1,
 	sizeof(asn_DEF_Type_tags_1)
 		/sizeof(asn_DEF_Type_tags_1[0]), /* 1 */
 	asn_DEF_Type_tags_1,	/* Same as above */
 	sizeof(asn_DEF_Type_tags_1)
 		/sizeof(asn_DEF_Type_tags_1[0]), /* 1 */
-	0,	/* No OER visible constraints */
-	0,	/* No PER visible constraints */
+	{ 0, 0, SET_OF_constraint },
 	asn_MBR_Type_1,
 	1,	/* Single element */
 	&asn_SPC_Type_specs_1	/* Additional specs */
@@ -182,9 +172,7 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_INTEGER,
 		.type_selector = 0,
-		.memb_constraints = 0,	/* Defer constraints checking to the member type */
-		.oer_constraints = 0,	/* OER is not compiled, use -gen-OER */
-		.per_constraints = 0,	/* PER is not compiled, use -gen-PER */
+		{ .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
 		.default_value = 0,
 		.name = "a"
 		},
@@ -193,9 +181,7 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_INTEGER,
 		.type_selector = 0,
-		.memb_constraints = 0,	/* Defer constraints checking to the member type */
-		.oer_constraints = 0,	/* OER is not compiled, use -gen-OER */
-		.per_constraints = 0,	/* PER is not compiled, use -gen-PER */
+		{ .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
 		.default_value = 0,
 		.name = "b"
 		},
@@ -221,15 +207,13 @@
 	"another-name",
 	"another-name",
 	&asn_OP_SEQUENCE,
-	SEQUENCE_constraint,
 	asn_DEF_another_name_tags_3,
 	sizeof(asn_DEF_another_name_tags_3)
 		/sizeof(asn_DEF_another_name_tags_3[0]), /* 1 */
 	asn_DEF_another_name_tags_3,	/* Same as above */
 	sizeof(asn_DEF_another_name_tags_3)
 		/sizeof(asn_DEF_another_name_tags_3[0]), /* 1 */
-	0,	/* No OER visible constraints */
-	0,	/* No PER visible constraints */
+	{ 0, 0, SEQUENCE_constraint },
 	asn_MBR_another_name_3,
 	2,	/* Elements count */
 	&asn_SPC_another_name_specs_3	/* Additional specs */
@@ -241,9 +225,7 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_another_name_3,
 		.type_selector = 0,
-		.memb_constraints = 0,	/* Defer constraints checking to the member type */
-		.oer_constraints = 0,	/* OER is not compiled, use -gen-OER */
-		.per_constraints = 0,	/* PER is not compiled, use -gen-PER */
+		{ .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
 		.default_value = 0,
 		.name = "another-name"
 		},
@@ -266,13 +248,11 @@
 	"one-name",
 	"one-name",
 	&asn_OP_CHOICE,
-	CHOICE_constraint,
 	0,	/* No effective tags (pointer) */
 	0,	/* No effective tags (count) */
 	0,	/* No tags (pointer) */
 	0,	/* No tags (count) */
-	0,	/* No OER visible constraints */
-	0,	/* No PER visible constraints */
+	{ 0, 0, CHOICE_constraint },
 	asn_MBR_one_name_2,
 	1,	/* Elements count */
 	&asn_SPC_one_name_specs_2	/* Additional specs */
@@ -284,9 +264,7 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_one_name_2,
 		.type_selector = 0,
-		.memb_constraints = 0,	/* Defer constraints checking to the member type */
-		.oer_constraints = 0,	/* OER is not compiled, use -gen-OER */
-		.per_constraints = 0,	/* PER is not compiled, use -gen-PER */
+		{ .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
 		.default_value = 0,
 		.name = "one-name"
 		},
@@ -310,15 +288,13 @@
 	"Type1",
 	"Type1",
 	&asn_OP_SEQUENCE,
-	SEQUENCE_constraint,
 	asn_DEF_Type1_tags_1,
 	sizeof(asn_DEF_Type1_tags_1)
 		/sizeof(asn_DEF_Type1_tags_1[0]), /* 1 */
 	asn_DEF_Type1_tags_1,	/* Same as above */
 	sizeof(asn_DEF_Type1_tags_1)
 		/sizeof(asn_DEF_Type1_tags_1[0]), /* 1 */
-	0,	/* No OER visible constraints */
-	0,	/* No PER visible constraints */
+	{ 0, 0, SEQUENCE_constraint },
 	asn_MBR_Type1_1,
 	1,	/* Elements count */
 	&asn_SPC_Type1_specs_1	/* Additional specs */
@@ -472,9 +448,7 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_BIT_STRING,
 		.type_selector = 0,
-		.memb_constraints = memb_a_constraint_3,
-		.oer_constraints = 0,	/* OER is not compiled, use -gen-OER */
-		.per_constraints = 0,	/* PER is not compiled, use -gen-PER */
+		{ .oer_constraints = 0, .per_constraints = 0, .general_constraints =  memb_a_constraint_3 },
 		.default_value = 0,
 		.name = "a"
 		},
@@ -483,9 +457,7 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_INTEGER,
 		.type_selector = 0,
-		.memb_constraints = 0,	/* Defer constraints checking to the member type */
-		.oer_constraints = 0,	/* OER is not compiled, use -gen-OER */
-		.per_constraints = 0,	/* PER is not compiled, use -gen-PER */
+		{ .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
 		.default_value = 0,
 		.name = "b"
 		},
@@ -511,15 +483,13 @@
 	"another-name",
 	"another-name",
 	&asn_OP_SEQUENCE,
-	SEQUENCE_constraint,
 	asn_DEF_another_name_tags_3,
 	sizeof(asn_DEF_another_name_tags_3)
 		/sizeof(asn_DEF_another_name_tags_3[0]), /* 1 */
 	asn_DEF_another_name_tags_3,	/* Same as above */
 	sizeof(asn_DEF_another_name_tags_3)
 		/sizeof(asn_DEF_another_name_tags_3[0]), /* 1 */
-	0,	/* No OER visible constraints */
-	0,	/* No PER visible constraints */
+	{ 0, 0, SEQUENCE_constraint },
 	asn_MBR_another_name_3,
 	2,	/* Elements count */
 	&asn_SPC_another_name_specs_3	/* Additional specs */
@@ -531,9 +501,7 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_another_name_3,
 		.type_selector = 0,
-		.memb_constraints = 0,	/* Defer constraints checking to the member type */
-		.oer_constraints = 0,	/* OER is not compiled, use -gen-OER */
-		.per_constraints = 0,	/* PER is not compiled, use -gen-PER */
+		{ .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
 		.default_value = 0,
 		.name = "another-name"
 		},
@@ -558,15 +526,13 @@
 	"one-name",
 	"one-name",
 	&asn_OP_SEQUENCE,
-	SEQUENCE_constraint,
 	asn_DEF_one_name_tags_2,
 	sizeof(asn_DEF_one_name_tags_2)
 		/sizeof(asn_DEF_one_name_tags_2[0]), /* 1 */
 	asn_DEF_one_name_tags_2,	/* Same as above */
 	sizeof(asn_DEF_one_name_tags_2)
 		/sizeof(asn_DEF_one_name_tags_2[0]), /* 1 */
-	0,	/* No OER visible constraints */
-	0,	/* No PER visible constraints */
+	{ 0, 0, SEQUENCE_constraint },
 	asn_MBR_one_name_2,
 	1,	/* Elements count */
 	&asn_SPC_one_name_specs_2	/* Additional specs */
@@ -578,9 +544,7 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_BIT_STRING,
 		.type_selector = 0,
-		.memb_constraints = memb_a_constraint_8,
-		.oer_constraints = 0,	/* OER is not compiled, use -gen-OER */
-		.per_constraints = 0,	/* PER is not compiled, use -gen-PER */
+		{ .oer_constraints = 0, .per_constraints = 0, .general_constraints =  memb_a_constraint_8 },
 		.default_value = 0,
 		.name = "a"
 		},
@@ -589,9 +553,7 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_INTEGER,
 		.type_selector = 0,
-		.memb_constraints = 0,	/* Defer constraints checking to the member type */
-		.oer_constraints = 0,	/* OER is not compiled, use -gen-OER */
-		.per_constraints = 0,	/* PER is not compiled, use -gen-PER */
+		{ .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
 		.default_value = 0,
 		.name = "b"
 		},
@@ -617,15 +579,13 @@
 	"another-name",
 	"another-name",
 	&asn_OP_SEQUENCE,
-	SEQUENCE_constraint,
 	asn_DEF_another_name_tags_8,
 	sizeof(asn_DEF_another_name_tags_8)
 		/sizeof(asn_DEF_another_name_tags_8[0]), /* 1 */
 	asn_DEF_another_name_tags_8,	/* Same as above */
 	sizeof(asn_DEF_another_name_tags_8)
 		/sizeof(asn_DEF_another_name_tags_8[0]), /* 1 */
-	0,	/* No OER visible constraints */
-	0,	/* No PER visible constraints */
+	{ 0, 0, SEQUENCE_constraint },
 	asn_MBR_another_name_8,
 	2,	/* Elements count */
 	&asn_SPC_another_name_specs_8	/* Additional specs */
@@ -637,9 +597,7 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_another_name_8,
 		.type_selector = 0,
-		.memb_constraints = 0,	/* Defer constraints checking to the member type */
-		.oer_constraints = 0,	/* OER is not compiled, use -gen-OER */
-		.per_constraints = 0,	/* PER is not compiled, use -gen-PER */
+		{ .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
 		.default_value = 0,
 		.name = "another-name"
 		},
@@ -670,15 +628,13 @@
 	"two-name",
 	"two-name",
 	&asn_OP_SET,
-	SET_constraint,
 	asn_DEF_two_name_tags_7,
 	sizeof(asn_DEF_two_name_tags_7)
 		/sizeof(asn_DEF_two_name_tags_7[0]), /* 1 */
 	asn_DEF_two_name_tags_7,	/* Same as above */
 	sizeof(asn_DEF_two_name_tags_7)
 		/sizeof(asn_DEF_two_name_tags_7[0]), /* 1 */
-	0,	/* No OER visible constraints */
-	0,	/* No PER visible constraints */
+	{ 0, 0, SET_constraint },
 	asn_MBR_two_name_7,
 	1,	/* Elements count */
 	&asn_SPC_two_name_specs_7	/* Additional specs */
@@ -690,9 +646,7 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_one_name_2,
 		.type_selector = 0,
-		.memb_constraints = 0,	/* Defer constraints checking to the member type */
-		.oer_constraints = 0,	/* OER is not compiled, use -gen-OER */
-		.per_constraints = 0,	/* PER is not compiled, use -gen-PER */
+		{ .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
 		.default_value = 0,
 		.name = "one-name"
 		},
@@ -701,9 +655,7 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_two_name_7,
 		.type_selector = 0,
-		.memb_constraints = 0,	/* Defer constraints checking to the member type */
-		.oer_constraints = 0,	/* OER is not compiled, use -gen-OER */
-		.per_constraints = 0,	/* PER is not compiled, use -gen-PER */
+		{ .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
 		.default_value = 0,
 		.name = "two-name"
 		},
@@ -726,13 +678,11 @@
 	"Type2",
 	"Type2",
 	&asn_OP_CHOICE,
-	CHOICE_constraint,
 	0,	/* No effective tags (pointer) */
 	0,	/* No effective tags (count) */
 	0,	/* No tags (pointer) */
 	0,	/* No tags (count) */
-	0,	/* No OER visible constraints */
-	0,	/* No PER visible constraints */
+	{ 0, 0, CHOICE_constraint },
 	asn_MBR_Type2_1,
 	2,	/* Elements count */
 	&asn_SPC_Type2_specs_1	/* Additional specs */