portability
diff --git a/skeletons/constr_SET.c b/skeletons/constr_SET.c
index dc699f5..2477a38 100644
--- a/skeletons/constr_SET.c
+++ b/skeletons/constr_SET.c
@@ -37,7 +37,7 @@
*/
#define ADVANCE(num_bytes) do { \
size_t num = num_bytes; \
- ptr += num; \
+ (char *)ptr += num; \
size -= num; \
if(ctx->left >= 0) \
ctx->left -= num; \
@@ -128,7 +128,7 @@
/*
* Restore parsing context.
*/
- ctx = (st + specs->ctx_offset);
+ ctx = (ber_dec_ctx_t *)((char *)st + specs->ctx_offset);
/*
* Start to parse where left previously
@@ -256,7 +256,7 @@
skip = ber_skip_length(
BER_TLV_CONSTRUCTED(ptr),
- ptr + tag_len, LEFT - tag_len);
+ (char *)ptr + tag_len, LEFT - tag_len);
switch(skip) {
case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE);
@@ -281,7 +281,7 @@
* Check for duplications: must not overwrite
* already decoded elements.
*/
- if(ASN_SET_ISPRESENT2(st + specs->pres_offset, edx)) {
+ if(ASN_SET_ISPRESENT2((char *)st + specs->pres_offset, edx)) {
ASN_DEBUG("SET %s: Duplicate element %s (%d)",
sd->name, elements[edx].name, edx);
RETURN(RC_FAIL);
@@ -312,7 +312,7 @@
elements[edx].tag_mode);
switch(rval.code) {
case RC_OK:
- ASN_SET_MKPRESENT(st + specs->pres_offset, edx);
+ ASN_SET_MKPRESENT((char *)st + specs->pres_offset, edx);
break;
case RC_WMORE: /* More data expected */
if(!SIZE_VIOLATION) {
@@ -378,7 +378,7 @@
ll = ber_skip_length(
BER_TLV_CONSTRUCTED(ptr),
- ptr + tl, LEFT - tl);
+ (char *)ptr + tl, LEFT - tl);
switch(ll) {
case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE);
/* Fall through */
@@ -398,7 +398,7 @@
unsigned int midx, pres, must;
midx = edx/(8 * sizeof(specs->_mandatory_elements[0]));
- pres = ((unsigned int *)(st+specs->pres_offset))[midx];
+ pres = ((unsigned int *)((char *)st+specs->pres_offset))[midx];
must = ntohl(specs->_mandatory_elements[midx]);
if((pres & must) == must) {