strict aliasing rules
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) {