diff --git a/sys/include/net/sock/async/types.h b/sys/include/net/sock/async/types.h index c93cd25068..314fff89b9 100644 --- a/sys/include/net/sock/async/types.h +++ b/sys/include/net/sock/async/types.h @@ -15,6 +15,12 @@ extern "C" { #endif +/* This header needs to re-typedef the sock types to prevent cyclic includes */ +#if defined (__clang__) +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wtypedef-redefinition" +#endif + #if defined(SOCK_HAS_ASYNC) || defined(DOXYGEN) /** * @brief Flag types to signify asynchronous sock events @@ -133,11 +139,16 @@ typedef void (*sock_udp_cb_t)(sock_udp_t *sock, sock_async_flags_t type); #ifdef MODULE_SOCK_DTLS #include "sock_dtls_types.h" #endif /* MODULE_SOCK_DTLS */ + #ifdef SOCK_HAS_ASYNC_CTX #include "sock_async_ctx.h" #endif #endif /* defined(SOCK_HAS_ASYNC) || defined(DOXYGEN) */ +#if defined (__clang__) +# pragma clang diagnostic pop +#endif + #ifdef __cplusplus } #endif diff --git a/sys/include/net/sock/dtls.h b/sys/include/net/sock/dtls.h index 3c237ebc1f..bdbabaee1d 100644 --- a/sys/include/net/sock/dtls.h +++ b/sys/include/net/sock/dtls.h @@ -461,6 +461,13 @@ #include #include +/* net/sock/async/types.h included by net/sock.h needs to re-typedef the + * `sock_dtls_t` to prevent cyclic includes */ +#if defined (__clang__) +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wtypedef-redefinition" +#endif + #include "net/sock.h" #include "net/sock/udp.h" #include "net/credman.h" @@ -500,6 +507,10 @@ enum { */ typedef struct sock_dtls sock_dtls_t; +#if defined (__clang__) +# pragma clang diagnostic pop +#endif + /** * @brief Information about a created session. */ diff --git a/sys/include/net/sock/ip.h b/sys/include/net/sock/ip.h index e6000bbfb0..be79478b16 100644 --- a/sys/include/net/sock/ip.h +++ b/sys/include/net/sock/ip.h @@ -273,6 +273,13 @@ #include #include +/* net/sock/async/types.h included by net/sock.h needs to re-typedef the + * `sock_ip_t` to prevent cyclic includes */ +#if defined (__clang__) +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wtypedef-redefinition" +#endif + #include "net/sock.h" #ifdef __cplusplus @@ -287,6 +294,10 @@ extern "C" { */ typedef struct sock_ip sock_ip_t; +#if defined (__clang__) +# pragma clang diagnostic pop +#endif + /** * @brief Creates a new raw IPv4/IPv6 sock object * diff --git a/sys/include/net/sock/tcp.h b/sys/include/net/sock/tcp.h index ebdc374fcc..a8d5310cec 100644 --- a/sys/include/net/sock/tcp.h +++ b/sys/include/net/sock/tcp.h @@ -303,6 +303,13 @@ #include #include +/* net/sock/async/types.h included by net/sock.h needs to re-typedef the + * `sock_tcp_t` and `sock_tcp_queue_t` to prevent cyclic includes */ +#if defined (__clang__) +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wtypedef-redefinition" +#endif + #include "net/sock.h" #ifdef __cplusplus @@ -327,6 +334,10 @@ typedef struct sock_tcp sock_tcp_t; */ typedef struct sock_tcp_queue sock_tcp_queue_t; +#if defined (__clang__) +# pragma clang diagnostic pop +#endif + /** * @brief Establishes a new TCP sock connection * diff --git a/sys/include/net/sock/udp.h b/sys/include/net/sock/udp.h index f8b978e629..428c61af7e 100644 --- a/sys/include/net/sock/udp.h +++ b/sys/include/net/sock/udp.h @@ -273,6 +273,13 @@ #include #include +/* net/sock/async/types.h included by net/sock.h needs to re-typedef the + * `sock_ip_t` to prevent cyclic includes */ +#if defined (__clang__) +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wtypedef-redefinition" +#endif + #include "net/sock.h" #ifdef __cplusplus @@ -289,6 +296,10 @@ typedef struct _sock_tl_ep sock_udp_ep_t; /**< An end point for a UDP sock obj */ typedef struct sock_udp sock_udp_t; +#if defined (__clang__) +# pragma clang diagnostic pop +#endif + /** * @brief Creates a new UDP sock object *