CHOICE XER decoder
git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@552 59561ff5-6e30-0410-9f3c-9617f08c8826
diff --git a/libasn1compiler/asn1c_C.c b/libasn1compiler/asn1c_C.c
index 5b9eae6..2cbe258 100644
--- a/libasn1compiler/asn1c_C.c
+++ b/libasn1compiler/asn1c_C.c
@@ -1508,11 +1508,15 @@
OUT("%s_constraint,\n", p);
OUT("%s_decode_ber,\n", p);
OUT("%s_encode_der,\n", p);
- if(!(expr->expr_type & ASN_CONSTR_MASK)
- && (expr->expr_type != ASN_CONSTR_SEQUENCE))
- OUT("%s_decode_xer,\n", p);
- else
- OUT("0,\t\t\t\t/* Not implemented yet */\n");
+ switch(expr->expr_type) {
+ case ASN_CONSTR_SET:
+ case ASN_CONSTR_SET_OF:
+ case ASN_CONSTR_SEQUENCE_OF:
+ OUT("0,\t\t\t\t/* Not implemented yet */\n");
+ break;
+ default:
+ OUT("%s_decode_xer,\n", p);
+ }
OUT("%s_encode_xer,\n", p);
p = MKID(expr->Identifier);