From d4fb397fb740403ff36e931106e4f25fbaa36da0 Mon Sep 17 00:00:00 2001 From: vsfos Date: Sat, 18 Feb 2023 22:19:00 +0800 Subject: [PATCH] [vsf] fix compiler warnings for arm clang --- source/component/input/driver/hid/vsf_input_hid.c | 4 ++-- source/kernel/__eda/vsf_eda_bmpevt.c | 5 +++++ source/shell/sys/linux/include/sys/socket.h | 15 +++++++++++++++ source/shell/sys/linux/kernel/fs/vsf_linux_fs.c | 5 +++++ source/shell/sys/linux/port/busybox/busybox.c | 5 +++++ 5 files changed, 32 insertions(+), 2 deletions(-) diff --git a/source/component/input/driver/hid/vsf_input_hid.c b/source/component/input/driver/hid/vsf_input_hid.c index ed3e44c2f..1afad9813 100644 --- a/source/component/input/driver/hid/vsf_input_hid.c +++ b/source/component/input/driver/hid/vsf_input_hid.c @@ -250,9 +250,9 @@ static vsf_err_t __vk_hid_parse_item(vk_input_hid_t *dev, if (size == 1) { value = *buf; } else if (size == 2) { - value = *(uint16_t *)buf; + value = get_unaligned_le16(buf); } else if (size == 4) { - value = *(uint32_t *)buf; + value = get_unaligned_le32(buf); } switch (tag) { diff --git a/source/kernel/__eda/vsf_eda_bmpevt.c b/source/kernel/__eda/vsf_eda_bmpevt.c index ef51efa49..7504a5acc 100644 --- a/source/kernel/__eda/vsf_eda_bmpevt.c +++ b/source/kernel/__eda/vsf_eda_bmpevt.c @@ -76,6 +76,9 @@ static void __vsf_eda_bmpevt_adapter_sync_evthander(vsf_eda_t *eda, vsf_evt_t ev #if __IS_COMPILER_GCC__ # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Wcast-align" +#elif __IS_COMPILER_LLVM__ || __IS_COMPILER_ARM_COMPILER_6__ +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wcast-align" #endif SECTION(".text.vsf.kernel.__vsf_eda_bmpevt_adapter_sync_init") @@ -151,6 +154,8 @@ static vsf_err_t __vsf_eda_bmpevt_adapter_bmpevt_reset(vsf_bmpevt_adapter_t *thi } #if __IS_COMPILER_GCC__ # pragma GCC diagnostic pop +#elif __IS_COMPILER_LLVM__ || __IS_COMPILER_ARM_COMPILER_6__ +# pragma clang diagnostic pop #endif SECTION(".data.vsf.kernel.vsf_eda_bmpevt_adapter_bmpevt_op") diff --git a/source/shell/sys/linux/include/sys/socket.h b/source/shell/sys/linux/include/sys/socket.h index 0fafb26fa..7ae2488bc 100644 --- a/source/shell/sys/linux/include/sys/socket.h +++ b/source/shell/sys/linux/include/sys/socket.h @@ -161,6 +161,15 @@ struct cmsghdr { int cmsg_level; int cmsg_type; }; + +#if __IS_COMPILER_GCC__ +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wcast-align" +#elif __IS_COMPILER_LLVM__ || __IS_COMPILER_ARM_COMPILER_6__ +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wcast-align" +#endif + static inline struct cmsghdr * CMSG_NXTHDR(struct msghdr *__msg, struct cmsghdr *__cmsg) { struct cmsghdr * __ptr; @@ -172,6 +181,12 @@ static inline struct cmsghdr * CMSG_NXTHDR(struct msghdr *__msg, struct cmsghdr return __ptr; } +#if __IS_COMPILER_GCC__ +# pragma GCC diagnostic pop +#elif __IS_COMPILER_LLVM__ || __IS_COMPILER_ARM_COMPILER_6__ +# pragma clang diagnostic pop +#endif + // how for shutdown enum { SHUT_RD = 1 << 0, diff --git a/source/shell/sys/linux/kernel/fs/vsf_linux_fs.c b/source/shell/sys/linux/kernel/fs/vsf_linux_fs.c index c24d9d1c7..2a8811f50 100644 --- a/source/shell/sys/linux/kernel/fs/vsf_linux_fs.c +++ b/source/shell/sys/linux/kernel/fs/vsf_linux_fs.c @@ -83,6 +83,9 @@ #if __IS_COMPILER_GCC__ # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Wcast-align" +#elif __IS_COMPILER_LLVM__ || __IS_COMPILER_ARM_COMPILER_6__ +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wcast-align" #endif /*============================ MACROS ========================================*/ @@ -2702,6 +2705,8 @@ vsf_linux_fd_t * vsf_linux_tx_pipe(vsf_linux_pipe_rx_priv_t *priv_rx) #if __IS_COMPILER_GCC__ # pragma GCC diagnostic pop +#elif __IS_COMPILER_LLVM__ || __IS_COMPILER_ARM_COMPILER_6__ +# pragma clang diagnostic pop #endif // term diff --git a/source/shell/sys/linux/port/busybox/busybox.c b/source/shell/sys/linux/port/busybox/busybox.c index 66166c91b..4d22e12f6 100644 --- a/source/shell/sys/linux/port/busybox/busybox.c +++ b/source/shell/sys/linux/port/busybox/busybox.c @@ -36,6 +36,9 @@ extern int vsf_linux_init_main(int argc, char *argv[]); #if __IS_COMPILER_GCC__ # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Wcast-align" +#elif __IS_COMPILER_LLVM__ || __IS_COMPILER_ARM_COMPILER_6__ +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wcast-align" #endif WEAK(vsf_linux_init_main) int vsf_linux_init_main(int argc, char *argv[]) @@ -73,6 +76,8 @@ int vsf_linux_init_main(int argc, char *argv[]) } #if __IS_COMPILER_GCC__ # pragma GCC diagnostic pop +#elif __IS_COMPILER_LLVM__ || __IS_COMPILER_ARM_COMPILER_6__ +# pragma clang diagnostic pop #endif #endif