support for a class of circular references
diff --git a/tests/70-xer-test-OK.asn1.-P b/tests/70-xer-test-OK.asn1.-P
index 2c356b9..e84e9f7 100644
--- a/tests/70-xer-test-OK.asn1.-P
+++ b/tests/70-xer-test-OK.asn1.-P
@@ -27,11 +27,9 @@
PDU_PR_seqOfZuka,
/* Extensions may appear below */
} PDU_PR;
-extern asn_TYPE_descriptor_t asn_DEF_PDU;
/*** <<< TYPE-DECLS [PDU] >>> ***/
-
typedef struct PDU {
PDU_PR present;
union {
@@ -54,6 +52,10 @@
asn_struct_ctx_t _asn_ctx;
} PDU_t;
+/*** <<< FUNC-DECLS [PDU] >>> ***/
+
+extern asn_TYPE_descriptor_t asn_DEF_PDU;
+
/*** <<< STAT-DEFS [PDU] >>> ***/
static asn_TYPE_member_t asn_MBR_PDU_1[] = {
@@ -165,20 +167,16 @@
/*** <<< INCLUDES [Sequence] >>> ***/
#include <INTEGER.h>
-#include <Sequence.h>
#include <BIT_STRING.h>
#include <UTF8String.h>
#include <constr_SEQUENCE.h>
-/*** <<< DEPS [Sequence] >>> ***/
-
+/*** <<< FWD-DECLS [Sequence] >>> ***/
struct Sequence; /* Forward declaration */
-extern asn_TYPE_descriptor_t asn_DEF_Sequence;
/*** <<< TYPE-DECLS [Sequence] >>> ***/
-
typedef struct Sequence {
INTEGER_t integer;
struct Sequence *sequence /* OPTIONAL */;
@@ -189,6 +187,14 @@
asn_struct_ctx_t _asn_ctx;
} Sequence_t;
+/*** <<< FUNC-DECLS [Sequence] >>> ***/
+
+extern asn_TYPE_descriptor_t asn_DEF_Sequence;
+
+/*** <<< POST-INCLUDE [Sequence] >>> ***/
+
+#include <Sequence.h>
+
/*** <<< STAT-DEFS [Sequence] >>> ***/
static asn_TYPE_member_t asn_MBR_Sequence_1[] = {
@@ -277,11 +283,9 @@
Set_PR_roid, /* Member roid is present */
Set_PR_opaque, /* Member opaque is present */
} Set_PR;
-extern asn_TYPE_descriptor_t asn_DEF_Set;
/*** <<< TYPE-DECLS [Set] >>> ***/
-
typedef struct Set {
RELATIVE_OID_t roid;
OCTET_STRING_t *opaque /* OPTIONAL */;
@@ -294,6 +298,10 @@
asn_struct_ctx_t _asn_ctx;
} Set_t;
+/*** <<< FUNC-DECLS [Set] >>> ***/
+
+extern asn_TYPE_descriptor_t asn_DEF_Set;
+
/*** <<< STAT-DEFS [Set] >>> ***/
static asn_TYPE_member_t asn_MBR_Set_1[] = {
@@ -370,11 +378,9 @@
typedef enum ExtensibleSet_PR {
ExtensibleSet_PR_string, /* Member string is present */
} ExtensibleSet_PR;
-extern asn_TYPE_descriptor_t asn_DEF_ExtensibleSet;
/*** <<< TYPE-DECLS [ExtensibleSet] >>> ***/
-
typedef struct ExtensibleSet {
UTF8String_t *string /* OPTIONAL */;
/*
@@ -390,6 +396,10 @@
asn_struct_ctx_t _asn_ctx;
} ExtensibleSet_t;
+/*** <<< FUNC-DECLS [ExtensibleSet] >>> ***/
+
+extern asn_TYPE_descriptor_t asn_DEF_ExtensibleSet;
+
/*** <<< STAT-DEFS [ExtensibleSet] >>> ***/
static asn_TYPE_member_t asn_MBR_ExtensibleSet_1[] = {
@@ -450,13 +460,8 @@
#include <INTEGER.h>
#include <constr_SEQUENCE.h>
-/*** <<< DEPS [ExtensibleSequence] >>> ***/
-
-extern asn_TYPE_descriptor_t asn_DEF_ExtensibleSequence;
-
/*** <<< TYPE-DECLS [ExtensibleSequence] >>> ***/
-
typedef struct ExtensibleSequence {
UTF8String_t *string /* OPTIONAL */;
/*
@@ -469,6 +474,10 @@
asn_struct_ctx_t _asn_ctx;
} ExtensibleSequence_t;
+/*** <<< FUNC-DECLS [ExtensibleSequence] >>> ***/
+
+extern asn_TYPE_descriptor_t asn_DEF_ExtensibleSequence;
+
/*** <<< STAT-DEFS [ExtensibleSequence] >>> ***/
static asn_TYPE_member_t asn_MBR_ExtensibleSequence_1[] = {
@@ -531,13 +540,8 @@
#include <asn_SET_OF.h>
#include <constr_SET_OF.h>
-/*** <<< DEPS [SetOf] >>> ***/
-
-extern asn_TYPE_descriptor_t asn_DEF_SetOf;
-
/*** <<< TYPE-DECLS [SetOf] >>> ***/
-
typedef struct SetOf {
A_SET_OF(REAL_t) list;
@@ -545,6 +549,10 @@
asn_struct_ctx_t _asn_ctx;
} SetOf_t;
+/*** <<< FUNC-DECLS [SetOf] >>> ***/
+
+extern asn_TYPE_descriptor_t asn_DEF_SetOf;
+
/*** <<< STAT-DEFS [SetOf] >>> ***/
static asn_TYPE_member_t asn_MBR_SetOf_1[] = {
@@ -593,13 +601,8 @@
#include <asn_SET_OF.h>
#include <constr_SET_OF.h>
-/*** <<< DEPS [SetOfNULL] >>> ***/
-
-extern asn_TYPE_descriptor_t asn_DEF_SetOfNULL;
-
/*** <<< TYPE-DECLS [SetOfNULL] >>> ***/
-
typedef struct SetOfNULL {
A_SET_OF(NULL_t) list;
@@ -607,6 +610,10 @@
asn_struct_ctx_t _asn_ctx;
} SetOfNULL_t;
+/*** <<< FUNC-DECLS [SetOfNULL] >>> ***/
+
+extern asn_TYPE_descriptor_t asn_DEF_SetOfNULL;
+
/*** <<< STAT-DEFS [SetOfNULL] >>> ***/
static asn_TYPE_member_t asn_MBR_SetOfNULL_1[] = {
@@ -661,11 +668,9 @@
Member_one = 0,
Member_oneMore = 1
} Member_e;
-extern asn_TYPE_descriptor_t asn_DEF_SetOfEnums;
/*** <<< TYPE-DECLS [SetOfEnums] >>> ***/
-
typedef struct SetOfEnums {
A_SET_OF(ENUMERATED_t) list;
@@ -676,6 +681,7 @@
/*** <<< FUNC-DECLS [SetOfEnums] >>> ***/
/* extern asn_TYPE_descriptor_t asn_DEF_Member_2; // (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_SetOfEnums;
/*** <<< CODE [SetOfEnums] >>> ***/
@@ -837,13 +843,8 @@
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
-/*** <<< DEPS [SequenceOf] >>> ***/
-
-extern asn_TYPE_descriptor_t asn_DEF_SequenceOf;
-
/*** <<< TYPE-DECLS [SequenceOf] >>> ***/
-
typedef struct SequenceOf {
A_SEQUENCE_OF(INTEGER_t) list;
@@ -851,6 +852,10 @@
asn_struct_ctx_t _asn_ctx;
} SequenceOf_t;
+/*** <<< FUNC-DECLS [SequenceOf] >>> ***/
+
+extern asn_TYPE_descriptor_t asn_DEF_SequenceOf;
+
/*** <<< STAT-DEFS [SequenceOf] >>> ***/
static asn_TYPE_member_t asn_MBR_SequenceOf_1[] = {
@@ -899,13 +904,8 @@
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
-/*** <<< DEPS [SeqOfZuka] >>> ***/
-
-extern asn_TYPE_descriptor_t asn_DEF_SeqOfZuka;
-
/*** <<< TYPE-DECLS [SeqOfZuka] >>> ***/
-
typedef struct SeqOfZuka {
A_SEQUENCE_OF(NULL_t) list;
@@ -913,6 +913,10 @@
asn_struct_ctx_t _asn_ctx;
} SeqOfZuka_t;
+/*** <<< FUNC-DECLS [SeqOfZuka] >>> ***/
+
+extern asn_TYPE_descriptor_t asn_DEF_SeqOfZuka;
+
/*** <<< STAT-DEFS [SeqOfZuka] >>> ***/
static asn_TYPE_member_t asn_MBR_SeqOfZuka_1[] = {