regenerated
diff --git a/tests/tests-asn1c-compiler/73-circular-OK.asn1.-Pfwide-types b/tests/tests-asn1c-compiler/73-circular-OK.asn1.-Pfwide-types
index 73d0571..51e6411 100644
--- a/tests/tests-asn1c-compiler/73-circular-OK.asn1.-Pfwide-types
+++ b/tests/tests-asn1c-compiler/73-circular-OK.asn1.-Pfwide-types
@@ -41,9 +41,7 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_EpytRef,
 		.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 = ""
 		},
@@ -61,15 +59,13 @@
 	"data",
 	"data",
 	&asn_OP_SEQUENCE_OF,
-	SEQUENCE_OF_constraint,
 	asn_DEF_data_tags_2,
 	sizeof(asn_DEF_data_tags_2)
 		/sizeof(asn_DEF_data_tags_2[0]), /* 1 */
 	asn_DEF_data_tags_2,	/* Same as above */
 	sizeof(asn_DEF_data_tags_2)
 		/sizeof(asn_DEF_data_tags_2[0]), /* 1 */
-	0,	/* No OER visible constraints */
-	0,	/* No PER visible constraints */
+	{ 0, 0, SEQUENCE_OF_constraint },
 	asn_MBR_data_2,
 	1,	/* Single element */
 	&asn_SPC_data_specs_2	/* Additional specs */
@@ -81,9 +77,7 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_data_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 = "data"
 		},
@@ -107,15 +101,13 @@
 	"Type",
 	"Type",
 	&asn_OP_SEQUENCE,
-	SEQUENCE_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, SEQUENCE_constraint },
 	asn_MBR_Type_1,
 	1,	/* Elements count */
 	&asn_SPC_Type_specs_1	/* Additional specs */
@@ -157,15 +149,13 @@
 	"EpytRef",
 	"EpytRef",
 	&asn_OP_SEQUENCE,
-	SEQUENCE_constraint,
 	asn_DEF_EpytRef_tags_1,
 	sizeof(asn_DEF_EpytRef_tags_1)
 		/sizeof(asn_DEF_EpytRef_tags_1[0]), /* 1 */
 	asn_DEF_EpytRef_tags_1,	/* Same as above */
 	sizeof(asn_DEF_EpytRef_tags_1)
 		/sizeof(asn_DEF_EpytRef_tags_1[0]), /* 1 */
-	0,	/* No OER visible constraints */
-	0,	/* No PER visible constraints */
+	{ 0, 0, SEQUENCE_constraint },
 	asn_MBR_Epyt_1,
 	3,	/* Elements count */
 	&asn_SPC_Epyt_specs_1	/* Additional specs */
@@ -218,9 +208,7 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_Type,
 		.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 = ""
 		},
@@ -238,15 +226,13 @@
 	"stype",
 	"stype",
 	&asn_OP_SET_OF,
-	SET_OF_constraint,
 	asn_DEF_stype_tags_2,
 	sizeof(asn_DEF_stype_tags_2)
 		/sizeof(asn_DEF_stype_tags_2[0]), /* 1 */
 	asn_DEF_stype_tags_2,	/* Same as above */
 	sizeof(asn_DEF_stype_tags_2)
 		/sizeof(asn_DEF_stype_tags_2[0]), /* 1 */
-	0,	/* No OER visible constraints */
-	0,	/* No PER visible constraints */
+	{ 0, 0, SET_OF_constraint },
 	asn_MBR_stype_2,
 	1,	/* Single element */
 	&asn_SPC_stype_specs_2	/* Additional specs */
@@ -258,9 +244,7 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_stype_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 = "stype"
 		},
@@ -269,9 +253,7 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_Type,
 		.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 = "type"
 		},
@@ -280,9 +262,7 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_Ypet,
 		.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 = "ypet"
 		},
@@ -308,15 +288,13 @@
 	"Epyt",
 	"Epyt",
 	&asn_OP_SEQUENCE,
-	SEQUENCE_constraint,
 	asn_DEF_Epyt_tags_1,
 	sizeof(asn_DEF_Epyt_tags_1)
 		/sizeof(asn_DEF_Epyt_tags_1[0]), /* 1 */
 	asn_DEF_Epyt_tags_1,	/* Same as above */
 	sizeof(asn_DEF_Epyt_tags_1)
 		/sizeof(asn_DEF_Epyt_tags_1[0]), /* 1 */
-	0,	/* No OER visible constraints */
-	0,	/* No PER visible constraints */
+	{ 0, 0, SEQUENCE_constraint },
 	asn_MBR_Epyt_1,
 	3,	/* Elements count */
 	&asn_SPC_Epyt_specs_1	/* Additional specs */
@@ -490,9 +468,7 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_EnumType,
 		.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 = ""
 		},
@@ -510,15 +486,13 @@
 	"senums",
 	"senums",
 	&asn_OP_SET_OF,
-	SET_OF_constraint,
 	asn_DEF_senums_tags_4,
 	sizeof(asn_DEF_senums_tags_4)
 		/sizeof(asn_DEF_senums_tags_4[0]), /* 1 */
 	asn_DEF_senums_tags_4,	/* Same as above */
 	sizeof(asn_DEF_senums_tags_4)
 		/sizeof(asn_DEF_senums_tags_4[0]), /* 1 */
-	0,	/* No OER visible constraints */
-	0,	/* No PER visible constraints */
+	{ 0, 0, SET_OF_constraint },
 	asn_MBR_senums_4,
 	1,	/* Single element */
 	&asn_SPC_senums_specs_4	/* Additional specs */
@@ -530,9 +504,7 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_Epyt,
 		.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 = "epyt"
 		},
@@ -541,9 +513,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 = asn_DFL_3_set_7,	/* DEFAULT 7 */
 		.name = "plain"
 		},
@@ -552,9 +522,7 @@
 		.tag_mode = 0,
 		.type = &asn_DEF_senums_4,
 		.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 = "senums"
 		},
@@ -563,9 +531,7 @@
 		.tag_mode = +1,	/* EXPLICIT tag at current level */
 		.type = &asn_DEF_IA5String,
 		.type_selector = 0,
-		.memb_constraints = memb_patest1_constraint_1,
-		.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_patest1_constraint_1 },
 		.default_value = 0,
 		.name = "patest1"
 		},
@@ -574,9 +540,7 @@
 		.tag_mode = +1,	/* EXPLICIT tag at current level */
 		.type = &asn_DEF_IA5String,
 		.type_selector = 0,
-		.memb_constraints = memb_patest2_constraint_1,
-		.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_patest2_constraint_1 },
 		.default_value = 0,
 		.name = "patest2"
 		},
@@ -609,15 +573,13 @@
 	"Ypet",
 	"Ypet",
 	&asn_OP_SET,
-	SET_constraint,
 	asn_DEF_Ypet_tags_1,
 	sizeof(asn_DEF_Ypet_tags_1)
 		/sizeof(asn_DEF_Ypet_tags_1[0]), /* 1 */
 	asn_DEF_Ypet_tags_1,	/* Same as above */
 	sizeof(asn_DEF_Ypet_tags_1)
 		/sizeof(asn_DEF_Ypet_tags_1[0]), /* 1 */
-	0,	/* No OER visible constraints */
-	0,	/* No PER visible constraints */
+	{ 0, 0, SET_constraint },
 	asn_MBR_Ypet_1,
 	5,	/* Elements count */
 	&asn_SPC_Ypet_specs_1	/* Additional specs */
@@ -684,15 +646,13 @@
 	"EnumType",
 	"EnumType",
 	&asn_OP_ENUMERATED,
-	ENUMERATED_constraint,
 	asn_DEF_EnumType_tags_1,
 	sizeof(asn_DEF_EnumType_tags_1)
 		/sizeof(asn_DEF_EnumType_tags_1[0]), /* 1 */
 	asn_DEF_EnumType_tags_1,	/* Same as above */
 	sizeof(asn_DEF_EnumType_tags_1)
 		/sizeof(asn_DEF_EnumType_tags_1[0]), /* 1 */
-	0,	/* No OER visible constraints */
-	0,	/* No PER visible constraints */
+	{ 0, 0, ENUMERATED_constraint },
 	0, 0,	/* Defined elsewhere */
 	&asn_SPC_EnumType_specs_1	/* Additional specs */
 };