diff --git a/tests/tests-asn1c-compiler/154-with-REAL-components-OK.asn1.-Pfwide-types b/tests/tests-asn1c-compiler/154-with-REAL-components-OK.asn1.-Pfwide-types
index 529f5c8..6b10989 100644
--- a/tests/tests-asn1c-compiler/154-with-REAL-components-OK.asn1.-Pfwide-types
+++ b/tests/tests-asn1c-compiler/154-with-REAL-components-OK.asn1.-Pfwide-types
@@ -68,7 +68,7 @@
 /*** <<< CODE [WeirdlyConstrainedREAL] >>> ***/
 
 int
-WeirdlyConstrainedREAL_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+WeirdlyConstrainedREAL_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	const REAL_t *st = (const REAL_t *)sptr;
 	double value;
@@ -147,7 +147,7 @@
 /*** <<< CODE [Indirect-IEEE-binary32] >>> ***/
 
 int
-Indirect_IEEE_binary32_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+Indirect_IEEE_binary32_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	
 	if(!sptr) {
@@ -217,7 +217,7 @@
 /*** <<< CODE [IEEE-binary32-w] >>> ***/
 
 int
-IEEE_binary32_w_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+IEEE_binary32_w_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	
 	if(!sptr) {
@@ -287,7 +287,7 @@
 /*** <<< CODE [IEEE-binary32-0w] >>> ***/
 
 int
-IEEE_binary32_0w_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+IEEE_binary32_0w_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	
 	if(!sptr) {
@@ -357,7 +357,7 @@
 /*** <<< CODE [IEEE-binary32-w0] >>> ***/
 
 int
-IEEE_binary32_w0_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+IEEE_binary32_w0_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	
 	if(!sptr) {
@@ -426,7 +426,7 @@
 /*** <<< CODE [IEEE-binary64-w] >>> ***/
 
 int
-IEEE_binary64_w_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+IEEE_binary64_w_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	
 	if(!sptr) {
@@ -492,7 +492,7 @@
 /*** <<< CODE [IEEE-binary64-0w] >>> ***/
 
 int
-IEEE_binary64_0w_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+IEEE_binary64_0w_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	
 	if(!sptr) {
@@ -558,7 +558,7 @@
 /*** <<< CODE [IEEE-binary64-w0] >>> ***/
 
 int
-IEEE_binary64_w0_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+IEEE_binary64_w0_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	
 	if(!sptr) {
@@ -639,7 +639,7 @@
 /*** <<< CODE [Test] >>> ***/
 
 static int
-indirect_ieee_binary32_2_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+indirect_ieee_binary32_2_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	
 	if(!sptr) {
@@ -662,7 +662,7 @@
  * so here we adjust the DEF accordingly.
  */
 static int
-ieee_binary32_w_3_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+ieee_binary32_w_3_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	
 	if(!sptr) {
@@ -685,7 +685,7 @@
  * so here we adjust the DEF accordingly.
  */
 static int
-ieee_binary32_0w_4_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+ieee_binary32_0w_4_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	
 	if(!sptr) {
@@ -708,7 +708,7 @@
  * so here we adjust the DEF accordingly.
  */
 static int
-ieee_binary32_w0_5_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+ieee_binary32_w0_5_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	
 	if(!sptr) {
@@ -828,7 +828,7 @@
 		.type = &asn_DEF_Indirect_IEEE_binary32,
 		.type_selector = 0,
 		{ .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
-		.default_value = 0,
+		0, 0, /* No default value */
 		.name = "indirect-ieee-binary32"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct Test, ieee_binary32_w),
@@ -837,7 +837,7 @@
 		.type = &asn_DEF_IEEE_binary32_w,
 		.type_selector = 0,
 		{ .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
-		.default_value = 0,
+		0, 0, /* No default value */
 		.name = "ieee-binary32-w"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct Test, ieee_binary32_0w),
@@ -846,7 +846,7 @@
 		.type = &asn_DEF_IEEE_binary32_0w,
 		.type_selector = 0,
 		{ .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
-		.default_value = 0,
+		0, 0, /* No default value */
 		.name = "ieee-binary32-0w"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct Test, ieee_binary32_w0),
@@ -855,7 +855,7 @@
 		.type = &asn_DEF_IEEE_binary32_w0,
 		.type_selector = 0,
 		{ .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
-		.default_value = 0,
+		0, 0, /* No default value */
 		.name = "ieee-binary32-w0"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct Test, ieee_binary64_w),
@@ -864,7 +864,7 @@
 		.type = &asn_DEF_IEEE_binary64_w,
 		.type_selector = 0,
 		{ .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
-		.default_value = 0,
+		0, 0, /* No default value */
 		.name = "ieee-binary64-w"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct Test, ieee_binary64_0w),
@@ -873,7 +873,7 @@
 		.type = &asn_DEF_IEEE_binary64_0w,
 		.type_selector = 0,
 		{ .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
-		.default_value = 0,
+		0, 0, /* No default value */
 		.name = "ieee-binary64-0w"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct Test, ieee_binary64_w0),
@@ -882,7 +882,7 @@
 		.type = &asn_DEF_IEEE_binary64_w0,
 		.type_selector = 0,
 		{ .oer_constraints = 0, .per_constraints = 0, .general_constraints = 0 },
-		.default_value = 0,
+		0, 0, /* No default value */
 		.name = "ieee-binary64-w0"
 		},
 };
