diffs
diff --git a/libasn1compiler/asn1c_C.c b/libasn1compiler/asn1c_C.c
index f7a6c89..48ad42c 100644
--- a/libasn1compiler/asn1c_C.c
+++ b/libasn1compiler/asn1c_C.c
@@ -41,7 +41,7 @@
static int expr_as_xmlvaluelist(arg_t *arg, asn1p_expr_t *expr);
static int expr_elements_count(arg_t *arg, asn1p_expr_t *expr);
static int emit_single_member_PER_constraint(arg_t *arg, asn1cnst_range_t *range, int juscountvalues, char *type);
-static int emit_member_PER_constraints(arg_t *arg, asn1p_expr_t *expr);
+static int emit_member_PER_constraints(arg_t *arg, asn1p_expr_t *expr, const char *pfx);
static int emit_member_table(arg_t *arg, asn1p_expr_t *expr);
static int emit_tag2member_map(arg_t *arg, tag2el_t *tag2el, int tag2el_count, const char *opt_modifier);
static int emit_include_dependencies(arg_t *arg);
@@ -1888,7 +1888,7 @@
}
static int
-emit_member_PER_constraints(arg_t *arg, asn1p_expr_t *expr) {
+emit_member_PER_constraints(arg_t *arg, asn1p_expr_t *expr, const char *pfx) {
int save_target = arg->target->target;
asn1cnst_range_t *range;
asn1p_expr_type_e etype;
@@ -1906,8 +1906,8 @@
REDIR(OT_CTDEFS);
OUT("static asn_per_constraints_t "
- "asn_PER_%s_constr_%d = {\n",
- MKID(expr), expr->_type_unique_index);
+ "asn_PER_%s_%s_constr_%d = {\n",
+ pfx, MKID(expr), expr->_type_unique_index);
etype = expr_get_type(arg, expr);
@@ -2196,7 +2196,7 @@
if(expr->constraints
|| expr->expr_type == ASN_BASIC_ENUMERATED
|| expr->expr_type == ASN_CONSTR_CHOICE) {
- OUT("&asn_PER_%s_constr_%d,\n",
+ OUT("&asn_PER_memb_%s_constr_%d,\n",
MKID(expr),
expr->_type_unique_index);
} else {
@@ -2249,7 +2249,7 @@
OUT("}\n");
OUT("\n");
- if(emit_member_PER_constraints(arg, expr))
+ if(emit_member_PER_constraints(arg, expr, "memb"))
return -1;
REDIR(save_target);
@@ -2268,7 +2268,7 @@
terminal = asn1f_find_terminal_type_ex(arg->asn, expr);
- if(emit_member_PER_constraints(arg, expr))
+ if(emit_member_PER_constraints(arg, expr, "type"))
return -1;
if(HIDE_INNER_DEFS)
@@ -2365,7 +2365,7 @@
if(expr->constraints
|| expr->expr_type == ASN_BASIC_ENUMERATED
|| expr->expr_type == ASN_CONSTR_CHOICE) {
- OUT("&asn_PER_%s_constr_%d,\n",
+ OUT("&asn_PER_type_%s_constr_%d,\n",
p, expr->_type_unique_index);
} else {
OUT("0,\t/* No PER visible constraints */\n");