strict aliasing rules


git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@1122 59561ff5-6e30-0410-9f3c-9617f08c8826
diff --git a/skeletons/tests/check-OCTET_STRING.c b/skeletons/tests/check-OCTET_STRING.c
index b3e298f..120e9c8 100644
--- a/skeletons/tests/check-OCTET_STRING.c
+++ b/skeletons/tests/check-OCTET_STRING.c
@@ -19,6 +19,7 @@
 	int verlen = verify ? strlen(verify) : 0;
 	asn_TYPE_descriptor_t *td = &asn_DEF_OCTET_STRING;
 	OCTET_STRING_t *st = 0;
+	OCTET_STRING_t **stp = &st;
 	asn_dec_rval_t rc;
 	xer_type_decoder_f *decoder = 0;
 
@@ -35,7 +36,7 @@
 		break;
 	}
 
-	rc = decoder(0, td, (void **)&st, tagname, xmlbuf, xmllen);
+	rc = decoder(0, td, (void **)stp, tagname, xmlbuf, xmllen);
 	printf("[%s] => [%s]:%d vs [%s]:%d, code %d\n",
 		xmlbuf,
 		st ? (const char *)st->buf : "", st ? st->size : 0,
diff --git a/skeletons/tests/check-OIDs.c b/skeletons/tests/check-OIDs.c
index a28cd00..4d4c9b5 100644
--- a/skeletons/tests/check-OIDs.c
+++ b/skeletons/tests/check-OIDs.c
@@ -245,13 +245,14 @@
 static void check_xer(int expect_arcs, char *xer) {
 	asn_dec_rval_t rc;
 	RELATIVE_OID_t *st = 0;
+	RELATIVE_OID_t **stp = &st;
 	long arcs[10];
 	int ret;
 	int i;
 
 	printf("[%s] => ", xer); fflush(stdout);
 	rc = asn_DEF_RELATIVE_OID.xer_decoder(0,
-		&asn_DEF_RELATIVE_OID, (void **)&st, "t",
+		&asn_DEF_RELATIVE_OID, (void **)stp, "t",
 			xer, strlen(xer));
 	if(expect_arcs == -1) {
 		if(rc.code != RC_OK)
diff --git a/skeletons/tests/check-REAL.c b/skeletons/tests/check-REAL.c
index e29df50..641da2d 100644
--- a/skeletons/tests/check-REAL.c
+++ b/skeletons/tests/check-REAL.c
@@ -152,6 +152,8 @@
 	REAL_t st;
 	REAL_t *newst0 = 0;
 	REAL_t *newst1 = 0;
+	REAL_t **newst0p = &newst0;
+	REAL_t **newst1p = &newst1;
 	double value0, value1;
 	int ret;
 
@@ -176,12 +178,12 @@
 		reconstr_lens[0], reconstructed[0]
 	);
 
-	rc = xer_decode(0, &asn_DEF_REAL, (void **)&newst0,
+	rc = xer_decode(0, &asn_DEF_REAL, (void **)newst0p,
 		reconstructed[0], reconstr_lens[0]);
 	assert(rc.code == RC_OK);
 	assert(rc.consumed < reconstr_lens[0]);
 
-	rc = xer_decode(0, &asn_DEF_REAL, (void **)&newst1,
+	rc = xer_decode(0, &asn_DEF_REAL, (void **)newst1p,
 		reconstructed[1], reconstr_lens[1]);
 	assert(rc.code == RC_OK);
 	assert(rc.consumed == reconstr_lens[1]);
diff --git a/skeletons/tests/check-length.c b/skeletons/tests/check-length.c
index 312e037..fc764b0 100644
--- a/skeletons/tests/check-length.c
+++ b/skeletons/tests/check-length.c
@@ -39,6 +39,7 @@
 check(int size) {
 	OCTET_STRING_t *os;
 	OCTET_STRING_t *nos = 0;
+	OCTET_STRING_t **nosp = &nos;
 	asn_enc_rval_t erval;
 	asn_dec_rval_t rval;
 	int i;
@@ -61,7 +62,7 @@
 	assert(erval.encoded == buf_off);
 	assert(buf_off > size);
 
-	rval = ber_decode(0, &asn_DEF_OCTET_STRING, (void **)&nos, buf, buf_off);
+	rval = ber_decode(0, &asn_DEF_OCTET_STRING, (void **)nosp, buf, buf_off);
 	assert(rval.code == RC_OK);
 	assert(rval.consumed == buf_off);
 
@@ -116,7 +117,7 @@
 	if(sizeof(tlv_len) <= 4) {
 		ret = ber_fetch_length(0, buf3, sizeof(buf3), &tlv_len);
 		printf("ret=%ld\n", (long)ret);
-		printf("len=0x%x\n", (long)tlv_len);
+		printf("len=0x%x\n", (int)tlv_len);
 		assert(ret == -1);
 	}
 	if(sizeof(tlv_len) <= 8) {