diff --git a/tests/93-asn1c-controls-OK.asn1 b/tests/93-asn1c-controls-OK.asn1
index 8102431..b1fb585 100644
--- a/tests/93-asn1c-controls-OK.asn1
+++ b/tests/93-asn1c-controls-OK.asn1
@@ -13,17 +13,21 @@
 
 	Sequence ::= SEQUENCE {
 		ainl INTEGER,
-		aptr INTEGER	/* <asn1c:pointer> */
+		--<ASN1C.RepresentAsPointer>--
+		aptr INTEGER
 	}
 
 	Set ::= SET {
 		ainl Sequence,
-		aptr Sequence	-- <asn1c:pointer>
+		--<ASN1C.RepresentAsPointer>--
+		aptr Sequence
 	}
 
 	Choice ::= CHOICE {
-		setof SET OF INTEGER, -- <asn1c:pointer>
-		aptr Sequence,	-- <asn1c:pointer>
+		--<ASN1C.RepresentAsPointer>--
+		setof SET OF INTEGER,
+		--<ASN1C.RepresentAsPointer>--
+		aptr Sequence,
 		ainl Sequence
 	}
 
diff --git a/tests/93-asn1c-controls-OK.asn1.-EF b/tests/93-asn1c-controls-OK.asn1.-EF
index 8df3402..5288379 100644
--- a/tests/93-asn1c-controls-OK.asn1.-EF
+++ b/tests/93-asn1c-controls-OK.asn1.-EF
@@ -5,17 +5,21 @@
 
 Sequence ::= SEQUENCE {
     ainl	 [0] IMPLICIT INTEGER,
-    aptr	 [1] IMPLICIT INTEGER	/* <asn1c:pointer> */
+    --<ASN1C.RepresentAsPointer>--
+    aptr	 [1] IMPLICIT INTEGER
 }
 
 Set ::= SET {
     ainl	 [0] IMPLICIT Sequence,
-    aptr	 [1] IMPLICIT Sequence	/* <asn1c:pointer> */
+    --<ASN1C.RepresentAsPointer>--
+    aptr	 [1] IMPLICIT Sequence
 }
 
 Choice ::= CHOICE {
-    setof	 [0] IMPLICIT SET OF INTEGER,	/* <asn1c:pointer> */
-    aptr	 [1] IMPLICIT Sequence,	/* <asn1c:pointer> */
+    --<ASN1C.RepresentAsPointer>--
+    setof	 [0] IMPLICIT SET OF INTEGER,
+    --<ASN1C.RepresentAsPointer>--
+    aptr	 [1] IMPLICIT Sequence,
     ainl	 [2] IMPLICIT Sequence
 }
 
diff --git a/tests/93-asn1c-controls-OK.asn1.-P b/tests/93-asn1c-controls-OK.asn1.-P
index 0f777d5..f2d5fe3 100644
--- a/tests/93-asn1c-controls-OK.asn1.-P
+++ b/tests/93-asn1c-controls-OK.asn1.-P
@@ -41,7 +41,7 @@
 };
 static asn_TYPE_tag2member_t asn_MAP_Sequence_1_tag2el[] = {
     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ainl at 15 */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* aptr at 17 */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* aptr at 18 */
 };
 static asn_SEQUENCE_specifics_t asn_SPC_Sequence_1_specs = {
 	sizeof(struct Sequence),
@@ -138,8 +138,8 @@
 	(ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
 };
 static asn_TYPE_tag2member_t asn_MAP_Set_1_tag2el[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ainl at 20 */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* aptr at 22 */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ainl at 21 */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* aptr at 24 */
 };
 static uint8_t asn_MAP_Set_1_mmap[(2 + (8 * sizeof(unsigned int)) - 1) / 8] = {
 	(1 << 7) | (1 << 6)
@@ -293,9 +293,9 @@
 		},
 };
 static asn_TYPE_tag2member_t asn_MAP_Choice_1_tag2el[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* setof at 25 */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* aptr at 26 */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ainl at 28 */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* setof at 28 */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* aptr at 30 */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ainl at 32 */
 };
 static asn_CHOICE_specifics_t asn_SPC_Choice_1_specs = {
 	sizeof(struct Choice),
