diff --git a/src/gsm/bsslap.c b/src/gsm/bsslap.c
index 7b31d1f..70ded13 100644
--- a/src/gsm/bsslap.c
+++ b/src/gsm/bsslap.c
@@ -217,7 +217,7 @@
 	int ies_len;
 	struct tlv_parsed tp;
 
-	*pdu = (struct bsslap_pdu){};
+	memset(pdu, 0x00, sizeof(*pdu));
 	if (err)
 		*err = NULL;
 
diff --git a/src/gsm/bssmap_le.c b/src/gsm/bssmap_le.c
index 3e90a43..1ee4551 100644
--- a/src/gsm/bssmap_le.c
+++ b/src/gsm/bssmap_le.c
@@ -180,7 +180,7 @@
 					struct osmo_bssmap_le_err **err, void *err_ctx,
 					const uint8_t *elem, uint8_t len)
 {
-	*lt = (struct bssmap_le_location_type){};
+	memset(lt, 0x00, sizeof(*lt));
 
 	if (!elem || len < 1)
 		DEC_ERR(-EINVAL, msgt, iei, LCS_CAUSE_UNSPECIFIED, "zero length");
@@ -348,7 +348,7 @@
 		       struct osmo_bssmap_le_err **err, void *err_ctx,
 		       const uint8_t *data, uint8_t len)
 {
-	*lcs_cause = (struct lcs_cause_ie){};
+	memset(lcs_cause, 0x00, sizeof(*lcs_cause));
 
 	if (!data || len < 1)
 		DEC_ERR(-EINVAL, msgt, iei, LCS_CAUSE_UNSPECIFIED, "zero length");
@@ -558,7 +558,7 @@
 					      struct osmo_bssmap_le_err **err, void *err_ctx,
 					      const struct tlv_parsed *tp)
 {
-	*params = (struct bssmap_le_perform_loc_req){};
+	memset(params, 0x00, sizeof(*params));
 
 	DEC_IE_MANDATORY(msgt, BSSMAP_LE_IEI_LOCATION_TYPE, osmo_bssmap_le_ie_dec_location_type,
 			 &params->location_type);
@@ -606,7 +606,7 @@
 					       struct osmo_bssmap_le_err **err, void *err_ctx,
 					       const struct tlv_parsed *tp)
 {
-	*params = (struct bssmap_le_perform_loc_resp){};
+	memset(params, 0x00, sizeof(*params));
 
 	DEC_IE_OPTIONAL_FLAG(msgt, BSSMAP_LE_IEI_GEO_LOCATION, osmo_bssmap_le_ie_dec_gad, &params->location_estimate,
 			     params->location_estimate_present);
@@ -630,7 +630,7 @@
 						struct osmo_bssmap_le_err **err, void *err_ctx,
 						const struct tlv_parsed *tp)
 {
-	*params = (struct lcs_cause_ie){};
+	memset(params, 0x00, sizeof(*params));
 
 	DEC_IE_MANDATORY(msgt, BSSMAP_LE_IEI_LCS_CAUSE, osmo_lcs_cause_dec, params);
 	return 0;
@@ -647,7 +647,8 @@
 						 struct osmo_bssmap_le_err **err, void *err_ctx,
 						 const struct tlv_parsed *tp)
 {
-	*params = (struct bssmap_le_conn_oriented_info){};
+	memset(params, 0x00, sizeof(*params));
+
 	DEC_IE_MANDATORY(msgt, BSSMAP_LE_IEI_APDU, osmo_bssmap_le_ie_dec_apdu, &params->apdu);
 	return 0;
 }
@@ -711,7 +712,7 @@
 	int ies_len;
 	struct tlv_parsed tp;
 
-	*pdu = (struct bssmap_le_pdu){};
+	memset(pdu, 0x00, sizeof(*pdu));
 
 	if (len < 1)
 		DEC_ERR(-EINVAL, -1, -1, LCS_CAUSE_UNSPECIFIED, "zero length");
@@ -798,7 +799,7 @@
 		return RC; \
 	} while(0)
 
-	*pdu = (struct bssap_le_pdu){};
+	memset(pdu, 0x00, sizeof(*pdu));
 
 	h = msgb_l2(msg);
 	if (!h)
