constness fixes, round-trip and fuzz-testing for CHOICE
diff --git a/tests/tests-asn1c-compiler/90-cond-int-type-OK.asn1.-Pfwide-types b/tests/tests-asn1c-compiler/90-cond-int-type-OK.asn1.-Pfwide-types
index a5d364d..f3facef 100644
--- a/tests/tests-asn1c-compiler/90-cond-int-type-OK.asn1.-Pfwide-types
+++ b/tests/tests-asn1c-compiler/90-cond-int-type-OK.asn1.-Pfwide-types
@@ -68,7 +68,7 @@
 /*** <<< CODE [CN-IntegerMinMax] >>> ***/
 
 int
-CN_IntegerMinMax_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+CN_IntegerMinMax_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	const INTEGER_t *st = (const INTEGER_t *)sptr;
 	
@@ -136,7 +136,7 @@
 /*** <<< CODE [CN-IntegerMinLow] >>> ***/
 
 int
-CN_IntegerMinLow_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+CN_IntegerMinLow_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	const INTEGER_t *st = (const INTEGER_t *)sptr;
 	long value;
@@ -214,7 +214,7 @@
 /*** <<< CODE [NO-IntegerMinHigh] >>> ***/
 
 int
-NO_IntegerMinHigh_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+NO_IntegerMinHigh_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	const INTEGER_t *st = (const INTEGER_t *)sptr;
 	long value;
@@ -292,7 +292,7 @@
 /*** <<< CODE [NO-IntegerLowHigh] >>> ***/
 
 int
-NO_IntegerLowHigh_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+NO_IntegerLowHigh_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	unsigned long value;
 	
@@ -369,7 +369,7 @@
 /*** <<< CODE [CN-IntegerLowMax] >>> ***/
 
 int
-CN_IntegerLowMax_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+CN_IntegerLowMax_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	const INTEGER_t *st = (const INTEGER_t *)sptr;
 	long value;
@@ -447,7 +447,7 @@
 /*** <<< CODE [NO-IntegerHighMax] >>> ***/
 
 int
-NO_IntegerHighMax_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+NO_IntegerHighMax_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	const INTEGER_t *st = (const INTEGER_t *)sptr;
 	long value;
@@ -525,7 +525,7 @@
 /*** <<< CODE [NO-IntegerLowestMax] >>> ***/
 
 int
-NO_IntegerLowestMax_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+NO_IntegerLowestMax_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	const INTEGER_t *st = (const INTEGER_t *)sptr;
 	long value;
@@ -603,7 +603,7 @@
 /*** <<< CODE [NO-IntegerOutRange] >>> ***/
 
 int
-NO_IntegerOutRange_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+NO_IntegerOutRange_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	unsigned long value;
 	
@@ -680,7 +680,7 @@
 /*** <<< CODE [NO-IntegerOutValue] >>> ***/
 
 int
-NO_IntegerOutValue_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+NO_IntegerOutValue_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	unsigned long value;
 	
@@ -757,7 +757,7 @@
 /*** <<< CODE [OK-IntegerInRange1] >>> ***/
 
 int
-OK_IntegerInRange1_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+OK_IntegerInRange1_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	long value;
 	
@@ -829,7 +829,7 @@
 /*** <<< CODE [OK-IntegerInRange2] >>> ***/
 
 int
-OK_IntegerInRange2_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+OK_IntegerInRange2_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	long value;
 	
@@ -901,7 +901,7 @@
 /*** <<< CODE [OK-IntegerInRange3] >>> ***/
 
 int
-OK_IntegerInRange3_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+OK_IntegerInRange3_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	long value;
 	
@@ -973,7 +973,7 @@
 /*** <<< CODE [OK-IntegerInRange4] >>> ***/
 
 int
-OK_IntegerInRange4_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+OK_IntegerInRange4_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	long value;
 	
@@ -1045,7 +1045,7 @@
 /*** <<< CODE [OK-IntegerInRange5] >>> ***/
 
 int
-OK_IntegerInRange5_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+OK_IntegerInRange5_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	const INTEGER_t *st = (const INTEGER_t *)sptr;
 	long value;
@@ -1123,7 +1123,7 @@
 /*** <<< CODE [NO-IntegerInRange6] >>> ***/
 
 int
-NO_IntegerInRange6_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+NO_IntegerInRange6_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	
 	if(!sptr) {