fsdev/p9array.h: check scalar type in P9ARRAY_NEW()
Make sure at compile time that the scalar type of the array requested to be created via P9ARRAY_NEW() matches the scalar type of the passed auto reference variable (unique pointer). Suggested-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com> Message-Id: <c1965e2a096835dc9e1d4d659dfb15d96755cbe0.1633097129.git.qemu_oss@crudebyte.com>
This commit is contained in:
parent
30e702abf6
commit
c0451f0bc4
@ -27,6 +27,8 @@
|
|||||||
#ifndef QEMU_P9ARRAY_H
|
#ifndef QEMU_P9ARRAY_H
|
||||||
#define QEMU_P9ARRAY_H
|
#define QEMU_P9ARRAY_H
|
||||||
|
|
||||||
|
#include "qemu/compiler.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* P9Array provides a mechanism to access arrays in common C-style (e.g. by
|
* P9Array provides a mechanism to access arrays in common C-style (e.g. by
|
||||||
* square bracket [] operator) in conjunction with reference variables that
|
* square bracket [] operator) in conjunction with reference variables that
|
||||||
@ -149,6 +151,10 @@
|
|||||||
* @param len - amount of array elements to be allocated immediately
|
* @param len - amount of array elements to be allocated immediately
|
||||||
*/
|
*/
|
||||||
#define P9ARRAY_NEW(scalar_type, auto_var, len) \
|
#define P9ARRAY_NEW(scalar_type, auto_var, len) \
|
||||||
|
QEMU_BUILD_BUG_MSG( \
|
||||||
|
!__builtin_types_compatible_p(scalar_type, typeof(*auto_var)), \
|
||||||
|
"P9Array scalar type mismatch" \
|
||||||
|
); \
|
||||||
p9array_new_##scalar_type((&auto_var), len)
|
p9array_new_##scalar_type((&auto_var), len)
|
||||||
|
|
||||||
#endif /* QEMU_P9ARRAY_H */
|
#endif /* QEMU_P9ARRAY_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user