distinction between an optional member and a member encoded with a pointer

diff --git a/tests/19-param-OK.asn1.-P b/tests/19-param-OK.asn1.-P
index 5f31e82..ec393c0 100644
--- a/tests/19-param-OK.asn1.-P
+++ b/tests/19-param-OK.asn1.-P
@@ -67,21 +67,21 @@
 /*** <<< STAT-DEFS [Certificate] >>> ***/
 
 static asn1_TYPE_member_t asn1_MBR_toBeSigned[] = {
-	{ 0, offsetof(struct toBeSigned, version),
+	{ ATF_NOFLAGS, 0, offsetof(struct toBeSigned, version),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_INTEGER,
 		.memb_constraints = 0,	/* Defer to actual type */
 		.name = "version"
 		},
-	{ 0, offsetof(struct toBeSigned, signature),
+	{ ATF_NOFLAGS, 0, offsetof(struct toBeSigned, signature),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (6 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_OBJECT_IDENTIFIER,
 		.memb_constraints = 0,	/* Defer to actual type */
 		.name = "signature"
 		},
-	{ 0, offsetof(struct toBeSigned, issuer),
+	{ ATF_NOFLAGS, 0, offsetof(struct toBeSigned, issuer),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_Name,
@@ -125,21 +125,21 @@
 };
 
 static asn1_TYPE_member_t asn1_MBR_Certificate[] = {
-	{ 0, offsetof(struct Certificate, toBeSigned),
+	{ ATF_NOFLAGS, 0, offsetof(struct Certificate, toBeSigned),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_toBeSigned,
 		.memb_constraints = 0,	/* Defer to actual type */
 		.name = "toBeSigned"
 		},
-	{ 0, offsetof(struct Certificate, algorithm),
+	{ ATF_NOFLAGS, 0, offsetof(struct Certificate, algorithm),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (6 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_OBJECT_IDENTIFIER,
 		.memb_constraints = 0,	/* Defer to actual type */
 		.name = "algorithm"
 		},
-	{ 0, offsetof(struct Certificate, signature),
+	{ ATF_NOFLAGS, 0, offsetof(struct Certificate, signature),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_BIT_STRING,
@@ -205,7 +205,7 @@
 /*** <<< STAT-DEFS [Name] >>> ***/
 
 static asn1_TYPE_member_t asn1_MBR_Name[] = {
-	{ 0, 0,
+	{ ATF_NOFLAGS, 0, 0,
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_RelativeDistinguishedName,
@@ -317,7 +317,7 @@
 /*** <<< STAT-DEFS [RelativeDistinguishedName] >>> ***/
 
 static asn1_TYPE_member_t asn1_MBR_RelativeDistinguishedName[] = {
-	{ 0, 0,
+	{ ATF_NOFLAGS, 0, 0,
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_IA5String,
diff --git a/tests/31-set-of-OK.asn1.-P b/tests/31-set-of-OK.asn1.-P
index be7e123..b3c6ce6 100644
--- a/tests/31-set-of-OK.asn1.-P
+++ b/tests/31-set-of-OK.asn1.-P
@@ -22,7 +22,7 @@
 /*** <<< STAT-DEFS [Forest] >>> ***/
 
 static asn1_TYPE_member_t asn1_MBR_Forest[] = {
-	{ 0, 0,
+	{ ATF_NOFLAGS, 0, 0,
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_Tree,
@@ -79,14 +79,14 @@
 /*** <<< STAT-DEFS [Tree] >>> ***/
 
 static asn1_TYPE_member_t asn1_MBR_Tree[] = {
-	{ 0, offsetof(struct Tree, height),
+	{ ATF_NOFLAGS, 0, offsetof(struct Tree, height),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_INTEGER,
 		.memb_constraints = 0,	/* Defer to actual type */
 		.name = "height"
 		},
-	{ 0, offsetof(struct Tree, width),
+	{ ATF_NOFLAGS, 0, offsetof(struct Tree, width),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_INTEGER,
@@ -186,7 +186,7 @@
 /*** <<< STAT-DEFS [Stuff] >>> ***/
 
 static asn1_TYPE_member_t asn1_MBR_trees[] = {
-	{ 0, 0,
+	{ ATF_NOFLAGS, 0, 0,
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_Forest,
@@ -221,7 +221,7 @@
 };
 
 static asn1_TYPE_member_t asn1_MBR_anything_member[] = {
-	{ 0, offsetof(struct anything_member, cup_of_coffee),
+	{ ATF_NOFLAGS, 0, offsetof(struct anything_member, cup_of_coffee),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_BIT_STRING,
@@ -263,7 +263,7 @@
 };
 
 static asn1_TYPE_member_t asn1_MBR_anything[] = {
-	{ 0, 0,
+	{ ATF_NOFLAGS, 0, 0,
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_anything_member,
@@ -298,14 +298,14 @@
 };
 
 static asn1_TYPE_member_t asn1_MBR_Stuff[] = {
-	{ 2, offsetof(struct Stuff, trees),
+	{ ATF_POINTER, 2, offsetof(struct Stuff, trees),
 		.tag = (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		.tag_mode = -1,	/* IMPLICIT tag at current level */
 		.type = (void *)&asn1_DEF_trees,
 		.memb_constraints = 0,	/* Defer to actual type */
 		.name = "trees"
 		},
-	{ 1, offsetof(struct Stuff, anything),
+	{ ATF_POINTER, 1, offsetof(struct Stuff, anything),
 		.tag = (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
 		.tag_mode = -1,	/* IMPLICIT tag at current level */
 		.type = (void *)&asn1_DEF_anything,
diff --git a/tests/39-sequence-of-OK.asn1.-P b/tests/39-sequence-of-OK.asn1.-P
index 9a49a79..2b8df8b 100644
--- a/tests/39-sequence-of-OK.asn1.-P
+++ b/tests/39-sequence-of-OK.asn1.-P
@@ -30,7 +30,7 @@
 /*** <<< STAT-DEFS [T] >>> ***/
 
 static asn1_TYPE_member_t asn1_MBR_collection[] = {
-	{ 0, 0,
+	{ ATF_NOFLAGS, 0, 0,
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_T2,
@@ -65,14 +65,14 @@
 };
 
 static asn1_TYPE_member_t asn1_MBR_T[] = {
-	{ 0, offsetof(struct T, int),
+	{ ATF_NOFLAGS, 0, offsetof(struct T, int),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_INTEGER,
 		.memb_constraints = 0,	/* Defer to actual type */
 		.name = "int"
 		},
-	{ 0, offsetof(struct T, collection),
+	{ ATF_NOFLAGS, 0, offsetof(struct T, collection),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_collection,
@@ -138,14 +138,14 @@
 /*** <<< STAT-DEFS [T2] >>> ***/
 
 static asn1_TYPE_member_t asn1_MBR_T2[] = {
-	{ 0, offsetof(struct T2, flag),
+	{ ATF_NOFLAGS, 0, offsetof(struct T2, flag),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_BOOLEAN,
 		.memb_constraints = 0,	/* Defer to actual type */
 		.name = "flag"
 		},
-	{ 0, offsetof(struct T2, str),
+	{ ATF_NOFLAGS, 0, offsetof(struct T2, str),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (12 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_UTF8String,
diff --git a/tests/42-real-life-OK.asn1.-PR b/tests/42-real-life-OK.asn1.-PR
index 04ee81a..63b696d 100644
--- a/tests/42-real-life-OK.asn1.-PR
+++ b/tests/42-real-life-OK.asn1.-PR
@@ -66,7 +66,7 @@
 /*** <<< STAT-DEFS [LogLine] >>> ***/
 
 static asn1_TYPE_member_t asn1_MBR_varsets[] = {
-	{ 0, 0,
+	{ ATF_NOFLAGS, 0, 0,
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_VariablePartSet,
@@ -101,14 +101,14 @@
 };
 
 static asn1_TYPE_member_t asn1_MBR_LogLine[] = {
-	{ 0, offsetof(struct LogLine, line_digest),
+	{ ATF_NOFLAGS, 0, offsetof(struct LogLine, line_digest),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_IA5String,
 		.memb_constraints = 0,	/* Defer to actual type */
 		.name = "line-digest"
 		},
-	{ 0, offsetof(struct LogLine, varsets),
+	{ ATF_NOFLAGS, 0, offsetof(struct LogLine, varsets),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_varsets,
@@ -208,7 +208,7 @@
 /*** <<< STAT-DEFS [VariablePartSet] >>> ***/
 
 static asn1_TYPE_member_t asn1_MBR_vparts[] = {
-	{ 0, 0,
+	{ ATF_NOFLAGS, 0, 0,
 		.tag = -1 /* Ambiguous tag (CHOICE|ANY?) */,
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_VariablePart,
@@ -243,14 +243,14 @@
 };
 
 static asn1_TYPE_member_t asn1_MBR_VariablePartSet[] = {
-	{ 0, offsetof(struct VariablePartSet, vparts),
+	{ ATF_NOFLAGS, 0, offsetof(struct VariablePartSet, vparts),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_vparts,
 		.memb_constraints = memb_vparts_2_constraint,
 		.name = "vparts"
 		},
-	{ 0, offsetof(struct VariablePartSet, resolution),
+	{ ATF_NOFLAGS, 0, offsetof(struct VariablePartSet, resolution),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_ActionItem,
@@ -378,7 +378,7 @@
 /*** <<< STAT-DEFS [VariablePart] >>> ***/
 
 static asn1_TYPE_member_t asn1_MBR_vset[] = {
-	{ 0, 0,
+	{ ATF_NOFLAGS, 0, 0,
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (26 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_VisibleString,
@@ -413,14 +413,14 @@
 };
 
 static asn1_TYPE_member_t asn1_MBR_vrange[] = {
-	{ 0, offsetof(struct vrange, from),
+	{ ATF_NOFLAGS, 0, offsetof(struct vrange, from),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (26 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_VisibleString,
 		.memb_constraints = 0,	/* Defer to actual type */
 		.name = "from"
 		},
-	{ 0, offsetof(struct vrange, to),
+	{ ATF_NOFLAGS, 0, offsetof(struct vrange, to),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (26 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_VisibleString,
@@ -463,14 +463,14 @@
 };
 
 static asn1_TYPE_member_t asn1_MBR_VariablePart[] = {
-	{ 0, offsetof(struct VariablePart, choice.vset),
+	{ ATF_NOFLAGS, 0, offsetof(struct VariablePart, choice.vset),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_vset,
 		.memb_constraints = memb_vset_3_constraint,
 		.name = "vset"
 		},
-	{ 0, offsetof(struct VariablePart, choice.vrange),
+	{ ATF_NOFLAGS, 0, offsetof(struct VariablePart, choice.vrange),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_vrange,
@@ -563,7 +563,7 @@
 /*** <<< STAT-DEFS [ActionItem] >>> ***/
 
 static asn1_TYPE_member_t asn1_MBR_email[] = {
-	{ 0, 0,
+	{ ATF_NOFLAGS, 0, 0,
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (26 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_VisibleString,
@@ -598,14 +598,14 @@
 };
 
 static asn1_TYPE_member_t asn1_MBR_notify[] = {
-	{ 0, offsetof(struct notify, critical),
+	{ ATF_NOFLAGS, 0, offsetof(struct notify, critical),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_BOOLEAN,
 		.memb_constraints = 0,	/* Defer to actual type */
 		.name = "critical"
 		},
-	{ 0, offsetof(struct notify, email),
+	{ ATF_NOFLAGS, 0, offsetof(struct notify, email),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_email,
@@ -648,14 +648,14 @@
 };
 
 static asn1_TYPE_member_t asn1_MBR_ActionItem[] = {
-	{ 0, offsetof(struct ActionItem, accept_as),
+	{ ATF_NOFLAGS, 0, offsetof(struct ActionItem, accept_as),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_ENUMERATED,
 		.memb_constraints = 0,	/* Defer to actual type */
 		.name = "accept-as"
 		},
-	{ 1, offsetof(struct ActionItem, notify),
+	{ ATF_POINTER, 1, offsetof(struct ActionItem, notify),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_notify,
diff --git a/tests/43-recursion-OK.asn1.-P b/tests/43-recursion-OK.asn1.-P
index a38cd02..3ff74e4 100644
--- a/tests/43-recursion-OK.asn1.-P
+++ b/tests/43-recursion-OK.asn1.-P
@@ -39,7 +39,7 @@
 /*** <<< STAT-DEFS [Test-structure-1] >>> ***/
 
 static asn1_TYPE_member_t asn1_MBR_t_member1[] = {
-	{ 0, 0,
+	{ ATF_NOFLAGS, 0, 0,
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_Test_structure_1,
@@ -74,7 +74,7 @@
 };
 
 static asn1_TYPE_member_t asn1_MBR_t_member2[] = {
-	{ 0, 0,
+	{ ATF_NOFLAGS, 0, 0,
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_Test_structure_1,
@@ -109,28 +109,28 @@
 };
 
 static asn1_TYPE_member_t asn1_MBR_Test_structure_1[] = {
-	{ 0, offsetof(struct Test_structure_1, t_member1),
+	{ ATF_NOFLAGS, 0, offsetof(struct Test_structure_1, t_member1),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_t_member1,
 		.memb_constraints = 0,	/* Defer to actual type */
 		.name = "t-member1"
 		},
-	{ 0, offsetof(struct Test_structure_1, t_member2),
+	{ ATF_NOFLAGS, 0, offsetof(struct Test_structure_1, t_member2),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_t_member2,
 		.memb_constraints = 0,	/* Defer to actual type */
 		.name = "t-member2"
 		},
-	{ 1, offsetof(struct Test_structure_1, t_member3),
+	{ ATF_POINTER, 1, offsetof(struct Test_structure_1, t_member3),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_Test_structure_1,
 		.memb_constraints = 0,	/* Defer to actual type */
 		.name = "t-member3"
 		},
-	{ 0, offsetof(struct Test_structure_1, t_member4),
+	{ ATF_NOFLAGS, 0, offsetof(struct Test_structure_1, t_member4),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_INTEGER,
@@ -199,14 +199,14 @@
 typedef struct Choice_1 {
 	Choice_1_PR present;
 	union {
-		struct Choice_1	 and;
+		struct Choice_1	*and;
 		struct or {
 			A_SET_OF(struct Choice_1) list;
 			
 			/* Context for parsing across buffer boundaries */
 			ber_dec_ctx_t _ber_dec_ctx;
 		} or;
-		struct Choice_1	 not;
+		struct Choice_1	*not;
 		INTEGER_t	 other;
 	} choice;
 	
@@ -217,7 +217,7 @@
 /*** <<< STAT-DEFS [Choice-1] >>> ***/
 
 static asn1_TYPE_member_t asn1_MBR_or[] = {
-	{ 0, 0,
+	{ ATF_NOFLAGS, 0, 0,
 		.tag = -1 /* Ambiguous tag (CHOICE|ANY?) */,
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_Choice_1,
@@ -252,28 +252,28 @@
 };
 
 static asn1_TYPE_member_t asn1_MBR_Choice_1[] = {
-	{ 0, offsetof(struct Choice_1, choice.and),
+	{ ATF_POINTER, 0, offsetof(struct Choice_1, choice.and),
 		.tag = (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
 		.tag_mode = +1,	/* EXPLICIT tag at current level */
 		.type = (void *)&asn1_DEF_Choice_1,
 		.memb_constraints = 0,	/* Defer to actual type */
 		.name = "and"
 		},
-	{ 0, offsetof(struct Choice_1, choice.or),
+	{ ATF_NOFLAGS, 0, offsetof(struct Choice_1, choice.or),
 		.tag = (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
 		.tag_mode = -1,	/* IMPLICIT tag at current level */
 		.type = (void *)&asn1_DEF_or,
 		.memb_constraints = 0,	/* Defer to actual type */
 		.name = "or"
 		},
-	{ 0, offsetof(struct Choice_1, choice.not),
+	{ ATF_POINTER, 0, offsetof(struct Choice_1, choice.not),
 		.tag = (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
 		.tag_mode = +1,	/* EXPLICIT tag at current level */
 		.type = (void *)&asn1_DEF_Choice_1,
 		.memb_constraints = 0,	/* Defer to actual type */
 		.name = "not"
 		},
-	{ 0, offsetof(struct Choice_1, choice.other),
+	{ ATF_NOFLAGS, 0, offsetof(struct Choice_1, choice.other),
 		.tag = (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
 		.tag_mode = +1,	/* EXPLICIT tag at current level */
 		.type = (void *)&asn1_DEF_INTEGER,
diff --git a/tests/44-choice-in-sequence-OK.asn1.-P b/tests/44-choice-in-sequence-OK.asn1.-P
index b4d9c71..3c6c152 100644
--- a/tests/44-choice-in-sequence-OK.asn1.-P
+++ b/tests/44-choice-in-sequence-OK.asn1.-P
@@ -69,14 +69,14 @@
 /*** <<< STAT-DEFS [T] >>> ***/
 
 static asn1_TYPE_member_t asn1_MBR_e[] = {
-	{ 0, offsetof(struct e, choice.f),
+	{ ATF_NOFLAGS, 0, offsetof(struct e, choice.f),
 		.tag = (ASN_TAG_CLASS_PRIVATE | (7 << 2)),
 		.tag_mode = -1,	/* IMPLICIT tag at current level */
 		.type = (void *)&asn1_DEF_NULL,
 		.memb_constraints = 0,	/* Defer to actual type */
 		.name = "f"
 		},
-	{ 0, offsetof(struct e, choice.g),
+	{ ATF_NOFLAGS, 0, offsetof(struct e, choice.g),
 		.tag = (ASN_TAG_CLASS_PRIVATE | (8 << 2)),
 		.tag_mode = -1,	/* IMPLICIT tag at current level */
 		.type = (void *)&asn1_DEF_NULL,
@@ -116,14 +116,14 @@
 };
 
 static asn1_TYPE_member_t asn1_MBR_h[] = {
-	{ 0, offsetof(struct h, choice.i),
+	{ ATF_NOFLAGS, 0, offsetof(struct h, choice.i),
 		.tag = (ASN_TAG_CLASS_PRIVATE | (1 << 2)),
 		.tag_mode = -1,	/* IMPLICIT tag at current level */
 		.type = (void *)&asn1_DEF_NULL,
 		.memb_constraints = 0,	/* Defer to actual type */
 		.name = "i"
 		},
-	{ 0, offsetof(struct h, choice.j),
+	{ ATF_NOFLAGS, 0, offsetof(struct h, choice.j),
 		.tag = (ASN_TAG_CLASS_PRIVATE | (2 << 2)),
 		.tag_mode = -1,	/* IMPLICIT tag at current level */
 		.type = (void *)&asn1_DEF_NULL,
@@ -163,28 +163,28 @@
 };
 
 static asn1_TYPE_member_t asn1_MBR_b[] = {
-	{ 0, offsetof(struct b, choice.c),
+	{ ATF_NOFLAGS, 0, offsetof(struct b, choice.c),
 		.tag = (ASN_TAG_CLASS_PRIVATE | (5 << 2)),
 		.tag_mode = -1,	/* IMPLICIT tag at current level */
 		.type = (void *)&asn1_DEF_NULL,
 		.memb_constraints = 0,	/* Defer to actual type */
 		.name = "c"
 		},
-	{ 0, offsetof(struct b, choice.d),
+	{ ATF_NOFLAGS, 0, offsetof(struct b, choice.d),
 		.tag = (ASN_TAG_CLASS_PRIVATE | (6 << 2)),
 		.tag_mode = -1,	/* IMPLICIT tag at current level */
 		.type = (void *)&asn1_DEF_NULL,
 		.memb_constraints = 0,	/* Defer to actual type */
 		.name = "d"
 		},
-	{ 0, offsetof(struct b, choice.e),
+	{ ATF_NOFLAGS, 0, offsetof(struct b, choice.e),
 		.tag = -1 /* Ambiguous tag (CHOICE|ANY?) */,
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_e,
 		.memb_constraints = 0,	/* Defer to actual type */
 		.name = "e"
 		},
-	{ 0, offsetof(struct b, choice.h),
+	{ ATF_NOFLAGS, 0, offsetof(struct b, choice.h),
 		.tag = (ASN_TAG_CLASS_PRIVATE | (9 << 2)),
 		.tag_mode = +1,	/* EXPLICIT tag at current level */
 		.type = (void *)&asn1_DEF_h,
@@ -227,14 +227,14 @@
 };
 
 static asn1_TYPE_member_t asn1_MBR_T[] = {
-	{ 0, offsetof(struct T, a),
+	{ ATF_NOFLAGS, 0, offsetof(struct T, a),
 		.tag = (ASN_TAG_CLASS_PRIVATE | (2 << 2)),
 		.tag_mode = -1,	/* IMPLICIT tag at current level */
 		.type = (void *)&asn1_DEF_NULL,
 		.memb_constraints = 0,	/* Defer to actual type */
 		.name = "a"
 		},
-	{ 0, offsetof(struct T, b),
+	{ ATF_NOFLAGS, 0, offsetof(struct T, b),
 		.tag = -1 /* Ambiguous tag (CHOICE|ANY?) */,
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_b,
diff --git a/tests/46-redefine-OK.asn1.-PR b/tests/46-redefine-OK.asn1.-PR
index ad54f87..c78b29f 100644
--- a/tests/46-redefine-OK.asn1.-PR
+++ b/tests/46-redefine-OK.asn1.-PR
@@ -121,7 +121,7 @@
 /*** <<< STAT-DEFS [ConstructedType] >>> ***/
 
 static asn1_TYPE_member_t asn1_MBR_ConstructedType[] = {
-	{ 0, offsetof(struct ConstructedType, field),
+	{ ATF_NOFLAGS, 0, offsetof(struct ConstructedType, field),
 		.tag = (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
 		.tag_mode = -1,	/* IMPLICIT tag at current level */
 		.type = (void *)&asn1_DEF_PrimitiveType,
diff --git a/tests/47-set-ext-OK.asn1.-P b/tests/47-set-ext-OK.asn1.-P
index 9991cf5..8354a16 100644
--- a/tests/47-set-ext-OK.asn1.-P
+++ b/tests/47-set-ext-OK.asn1.-P
@@ -36,7 +36,7 @@
 /*** <<< STAT-DEFS [T1] >>> ***/
 
 static asn1_TYPE_member_t asn1_MBR_T1[] = {
-	{ 0, offsetof(struct T1, i),
+	{ ATF_NOFLAGS, 0, offsetof(struct T1, i),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_INTEGER,
@@ -118,7 +118,7 @@
 /*** <<< STAT-DEFS [T2] >>> ***/
 
 static asn1_TYPE_member_t asn1_MBR_T2[] = {
-	{ 0, offsetof(struct T2, i),
+	{ ATF_NOFLAGS, 0, offsetof(struct T2, i),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_INTEGER,
@@ -197,7 +197,7 @@
 /*** <<< STAT-DEFS [T3] >>> ***/
 
 static asn1_TYPE_member_t asn1_MBR_T3[] = {
-	{ 0, offsetof(struct T3, choice.i),
+	{ ATF_NOFLAGS, 0, offsetof(struct T3, choice.i),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_INTEGER,
@@ -269,7 +269,7 @@
 /*** <<< STAT-DEFS [T4] >>> ***/
 
 static asn1_TYPE_member_t asn1_MBR_T4[] = {
-	{ 0, offsetof(struct T4, choice.i),
+	{ ATF_NOFLAGS, 0, offsetof(struct T4, choice.i),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
 		.tag_mode = 0,
 		.type = (void *)&asn1_DEF_INTEGER,