ref: 32d4d874accd322f7e237b734678542fea88393b
parent: 33a89b7ea8db4d9a6fcc802aa85264e13a4ebbaf
author: Jean-Marc Valin <jmvalin@jmvalin.ca>
date: Sat Mar 2 21:45:39 EST 2024
Basic void pointer check Only manage to warn on non-pointers
--- a/include/opus_defines.h
+++ b/include/opus_defines.h
@@ -187,11 +187,13 @@
#define __opus_check_uint_ptr(ptr) (ptr)
#define __opus_check_uint8_ptr(ptr) (ptr)
#define __opus_check_val16_ptr(ptr) (ptr)
+#define __opus_check_void_ptr(ptr) (ptr)
#else
#define __opus_check_int_ptr(ptr) ((ptr) + ((ptr) - (opus_int32*)(ptr)))
#define __opus_check_uint_ptr(ptr) ((ptr) + ((ptr) - (opus_uint32*)(ptr)))
#define __opus_check_uint8_ptr(ptr) ((ptr) + ((ptr) - (opus_uint8*)(ptr)))
#define __opus_check_val16_ptr(ptr) ((ptr) + ((ptr) - (opus_val16*)(ptr)))
+#define __opus_check_void_ptr(x) ((void)((void *)0 == (x)), (x))
#endif
/** @endcond */
@@ -644,7 +646,7 @@
/** Provide external DNN weights from binary object (only when explicitly built without the weights)
* @hideinitializer */
-#define OPUS_SET_DNN_BLOB(data, len) OPUS_SET_DNN_BLOB_REQUEST, (data), __opus_check_int(len)
+#define OPUS_SET_DNN_BLOB(data, len) OPUS_SET_DNN_BLOB_REQUEST, __opus_check_void_ptr(data), __opus_check_int(len)
/**@}*/
--
⑨