]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
meson: Build header tests with -pedantic
authorJan Janssen <medhefgo@web.de>
Fri, 27 May 2022 19:15:22 +0000 (21:15 +0200)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Sun, 29 May 2022 20:06:36 +0000 (05:06 +0900)
By using __extension__, we can silence pedantic errors we cannot or
do not want to fix.

This in particular silences:
 - enum values being outside of int range
 - variadic macros
 - long long being C99
 - type of bit-field ‘type’ is a GCC extension
 - use of C99 bool in public header functions

16 files changed:
src/systemd/meson.build
src/systemd/sd-bus-vtable.h
src/systemd/sd-bus.h
src/systemd/sd-device.h
src/systemd/sd-dhcp-client.h
src/systemd/sd-dhcp-lease.h
src/systemd/sd-dhcp-server.h
src/systemd/sd-dhcp6-client.h
src/systemd/sd-ipv4acd.h
src/systemd/sd-ipv4ll.h
src/systemd/sd-lldp-rx.h
src/systemd/sd-lldp-tx.h
src/systemd/sd-lldp.h
src/systemd/sd-ndisc.h
src/systemd/sd-path.h
src/systemd/sd-resolve.h

index 10a67efbd12e9a53787f6e3c892ac8b1767a43af..c13e88b594878070056c9455008c8a23ffc50b1f 100644 (file)
@@ -86,6 +86,9 @@ foreach header : _systemd_headers + _not_installed_headers + [libudev_h_path]
                              '-Wall',
                              '-Wextra',
                              '-Werror',
+                             '-pedantic',
+                             '-Wno-long-long',
+                             '-Wno-variadic-macros',
                              '-include', meson.current_source_dir() / header,
                              '-o/dev/null',
                              '/dev/null'])
index 8b316fac5ac61e07c13f822024eb5c5cc4b76f15..bed6160042d145330336bc6950529926c55ab932 100644 (file)
@@ -34,7 +34,7 @@ enum {
         _SD_BUS_VTABLE_WRITABLE_PROPERTY = 'W'
 };
 
-enum {
+__extension__ enum {
         SD_BUS_VTABLE_DEPRECATED                   = 1ULL << 0,
         SD_BUS_VTABLE_HIDDEN                       = 1ULL << 1,
         SD_BUS_VTABLE_UNPRIVILEGED                 = 1ULL << 2,
@@ -51,7 +51,7 @@ enum {
 #define SD_BUS_VTABLE_CAPABILITY(x) ((uint64_t) (((x)+1) & 0xFFFF) << 40)
 
 enum {
-        _SD_BUS_VTABLE_PARAM_NAMES     = 1 << 0,
+        _SD_BUS_VTABLE_PARAM_NAMES     = 1 << 0
 };
 
 extern const unsigned sd_bus_object_vtable_format;
@@ -67,8 +67,8 @@ struct sd_bus_vtable {
         /* Please do not initialize this structure directly, use the
          * macros below instead */
 
-        uint8_t type:8;
-        uint64_t flags:56;
+        __extension__ uint8_t type:8;
+        __extension__ uint64_t flags:56;
         union {
                 struct {
                         size_t element_size;
index a07a76170c3a617a896ae4ace5ebd1990a8db77a..1f3e462a0d26ef0946204b95d7a0f6ff7783c5f3 100644 (file)
@@ -55,7 +55,7 @@ typedef struct {
 
 /* Flags */
 
-enum {
+__extension__ enum {
         SD_BUS_CREDS_PID                = 1ULL << 0,
         SD_BUS_CREDS_TID                = 1ULL << 1,
         SD_BUS_CREDS_PPID               = 1ULL << 2,
@@ -94,15 +94,15 @@ enum {
         _SD_BUS_CREDS_ALL               = (1ULL << 34) -1
 };
 
-enum {
+__extension__ enum {
         SD_BUS_NAME_REPLACE_EXISTING  = 1ULL << 0,
         SD_BUS_NAME_ALLOW_REPLACEMENT = 1ULL << 1,
         SD_BUS_NAME_QUEUE             = 1ULL << 2
 };
 
-enum {
+__extension__ enum {
         SD_BUS_MESSAGE_DUMP_WITH_HEADER  = 1ULL << 0,
-        SD_BUS_MESSAGE_DUMP_SUBTREE_ONLY = 1ULL << 1,
+        SD_BUS_MESSAGE_DUMP_SUBTREE_ONLY = 1ULL << 1
 };
 
 /* Callbacks */
index 2d122888644080251d8dc51e0dc9b6cc84b6ff82..55b0338ffe2805340b85ec0e231871d5a2d18a76 100644 (file)
@@ -34,7 +34,7 @@ typedef struct sd_device sd_device;
 typedef struct sd_device_enumerator sd_device_enumerator;
 typedef struct sd_device_monitor sd_device_monitor;
 
-typedef enum sd_device_action_t {
+__extension__ typedef enum sd_device_action_t {
         SD_DEVICE_ADD,
         SD_DEVICE_REMOVE,
         SD_DEVICE_CHANGE,
@@ -45,7 +45,7 @@ typedef enum sd_device_action_t {
         SD_DEVICE_UNBIND,
         _SD_DEVICE_ACTION_MAX,
         _SD_DEVICE_ACTION_INVALID = -EINVAL,
-        _SD_ENUM_FORCE_S64(DEVICE_ACTION),
+        _SD_ENUM_FORCE_S64(DEVICE_ACTION)
 } sd_device_action_t;
 
 /* callback */
index 20c1894aaa15ac5bb29f67473144ab747abb379e..da0d9d2b8be0eb0f75fe45def17e2996419d2e04 100644 (file)
@@ -40,8 +40,8 @@ enum {
         SD_DHCP_CLIENT_EVENT_EXPIRED            = 3,
         SD_DHCP_CLIENT_EVENT_RENEW              = 4,
         SD_DHCP_CLIENT_EVENT_SELECTING          = 5,
-        SD_DHCP_CLIENT_EVENT_TRANSIENT_FAILURE  = 6, /* Sent when we have not received a reply after the first few attempts.
-                                                      * The client may want to start acquiring link-local addresses. */
+        SD_DHCP_CLIENT_EVENT_TRANSIENT_FAILURE  = 6 /* Sent when we have not received a reply after the first few attempts.
+                                                     * The client may want to start acquiring link-local addresses. */
 };
 
 /* https://www.iana.org/assignments/bootp-dhcp-parameters/bootp-dhcp-parameters.xhtml#options */
@@ -212,13 +212,13 @@ enum {
         SD_DHCP_OPTION_PRIVATE_CLASSLESS_STATIC_ROUTE = 249, /* [RFC7844] */
         SD_DHCP_OPTION_PRIVATE_PROXY_AUTODISCOVERY    = 252, /* [RFC7844] */
         SD_DHCP_OPTION_PRIVATE_LAST                   = 254,
-        SD_DHCP_OPTION_END                            = 255, /* [RFC2132] */
+        SD_DHCP_OPTION_END                            = 255 /* [RFC2132] */
 };
 
 /* Suboptions for SD_DHCP_OPTION_RELAY_AGENT_INFORMATION option */
 enum {
         SD_DHCP_RELAY_AGENT_CIRCUIT_ID             = 1,
-        SD_DHCP_RELAY_AGENT_REMOTE_ID              = 2,
+        SD_DHCP_RELAY_AGENT_REMOTE_ID              = 2
 };
 
 typedef struct sd_dhcp_client sd_dhcp_client;
@@ -256,14 +256,14 @@ int sd_dhcp_client_set_client_id(
                 uint8_t type,
                 const uint8_t *data,
                 size_t data_len);
-int sd_dhcp_client_set_iaid_duid(
+__extension__ int sd_dhcp_client_set_iaid_duid(
                 sd_dhcp_client *client,
                 bool iaid_set,
                 uint32_t iaid,
                 uint16_t duid_type,
                 const void *duid,
                 size_t duid_len);
-int sd_dhcp_client_set_iaid_duid_llt(
+__extension__ int sd_dhcp_client_set_iaid_duid_llt(
                 sd_dhcp_client *client,
                 bool iaid_set,
                 uint32_t iaid,
index 578ac6d4db702b2c8bc2f13a8c95b6f89825db68..2a7e720fea5fe490e9f501573b39aa8b484953a9 100644 (file)
@@ -34,7 +34,7 @@ typedef struct sd_dhcp_route sd_dhcp_route;
 sd_dhcp_lease *sd_dhcp_lease_ref(sd_dhcp_lease *lease);
 sd_dhcp_lease *sd_dhcp_lease_unref(sd_dhcp_lease *lease);
 
-typedef enum sd_dhcp_lease_server_type_t {
+__extension__ typedef enum sd_dhcp_lease_server_type_t {
         SD_DHCP_LEASE_DNS,
         SD_DHCP_LEASE_NTP,
         SD_DHCP_LEASE_SIP,
@@ -43,7 +43,7 @@ typedef enum sd_dhcp_lease_server_type_t {
         SD_DHCP_LEASE_LPR,
         _SD_DHCP_LEASE_SERVER_TYPE_MAX,
         _SD_DHCP_LEASE_SERVER_TYPE_INVALID = -EINVAL,
-        _SD_ENUM_FORCE_S64(DHCP_LEASE_SERVER_TYPE),
+        _SD_ENUM_FORCE_S64(DHCP_LEASE_SERVER_TYPE)
 } sd_dhcp_lease_server_type_t;
 
 int sd_dhcp_lease_get_address(sd_dhcp_lease *lease, struct in_addr *addr);
index 371834dd8da455dae8f92b490588ef0374fb2c1b..a8ca76d2ae3ce67711eb95affa5067addece0b3e 100644 (file)
@@ -32,7 +32,7 @@ _SD_BEGIN_DECLARATIONS;
 typedef struct sd_dhcp_server sd_dhcp_server;
 
 enum {
-        SD_DHCP_SERVER_EVENT_LEASE_CHANGED                      = 1 << 0,
+        SD_DHCP_SERVER_EVENT_LEASE_CHANGED                      = 1 << 0
 };
 
 int sd_dhcp_server_new(sd_dhcp_server **ret, int ifindex);
index 9d6b99ca3078ce2236b8c5b66db5b37e8b6b725c..77139a664b5e9eff32bc3d4074f80b04811d8798 100644 (file)
@@ -36,7 +36,7 @@ enum {
         SD_DHCP6_CLIENT_EVENT_RESEND_EXPIRE             = 10,
         SD_DHCP6_CLIENT_EVENT_RETRANS_MAX               = 11,
         SD_DHCP6_CLIENT_EVENT_IP_ACQUIRE                = 12,
-        SD_DHCP6_CLIENT_EVENT_INFORMATION_REQUEST       = 13,
+        SD_DHCP6_CLIENT_EVENT_INFORMATION_REQUEST       = 13
 };
 
 /* https://www.iana.org/assignments/dhcpv6-parameters/dhcpv6-parameters.xhtml#dhcpv6-parameters-2 */
@@ -183,7 +183,7 @@ enum {
         SD_DHCP6_OPTION_SLAP_QUAD                  = 140, /* RFC 8948 */
         SD_DHCP6_OPTION_V6_DOTS_RI                 = 141, /* RFC 8973 */
         SD_DHCP6_OPTION_V6_DOTS_ADDRESS            = 142, /* RFC 8973 */
-        SD_DHCP6_OPTION_IPV6_ADDRESS_ANDSF         = 143, /* RFC 6153 */
+        SD_DHCP6_OPTION_IPV6_ADDRESS_ANDSF         = 143 /* RFC 6153 */
         /* option codes 144-65535 are unassigned */
 };
 
index 90d3f0a0d115900f9b8f4966ef0762958f7d1416..24a0bab7e4ec0024df560090410136a40f15325e 100644 (file)
@@ -31,7 +31,7 @@ _SD_BEGIN_DECLARATIONS;
 enum {
         SD_IPV4ACD_EVENT_STOP           = 0,
         SD_IPV4ACD_EVENT_BIND           = 1,
-        SD_IPV4ACD_EVENT_CONFLICT       = 2,
+        SD_IPV4ACD_EVENT_CONFLICT       = 2
 };
 
 typedef struct sd_ipv4acd sd_ipv4acd;
@@ -50,7 +50,7 @@ int sd_ipv4acd_set_ifname(sd_ipv4acd *acd, const char *interface_name);
 int sd_ipv4acd_get_ifname(sd_ipv4acd *acd, const char **ret);
 int sd_ipv4acd_set_address(sd_ipv4acd *acd, const struct in_addr *address);
 int sd_ipv4acd_is_running(sd_ipv4acd *acd);
-int sd_ipv4acd_start(sd_ipv4acd *acd, bool reset_conflicts);
+__extension__ int sd_ipv4acd_start(sd_ipv4acd *acd, bool reset_conflicts);
 int sd_ipv4acd_stop(sd_ipv4acd *acd);
 sd_ipv4acd *sd_ipv4acd_ref(sd_ipv4acd *acd);
 sd_ipv4acd *sd_ipv4acd_unref(sd_ipv4acd *acd);
index ed014b53f22f558818f1e672dc86d8b10df5b098..58f6f169ecf565caf648f00ee151a69d13759dfd 100644 (file)
@@ -31,7 +31,7 @@ _SD_BEGIN_DECLARATIONS;
 enum {
         SD_IPV4LL_EVENT_STOP            = 0,
         SD_IPV4LL_EVENT_BIND            = 1,
-        SD_IPV4LL_EVENT_CONFLICT        = 2,
+        SD_IPV4LL_EVENT_CONFLICT        = 2
 };
 
 typedef struct sd_ipv4ll sd_ipv4ll;
index bfeac14ce3e3621e554a3b767f3491fb375f6539..fbbe7dc22a417dfa1561659641015f7c950c17d9 100644 (file)
@@ -32,14 +32,14 @@ _SD_BEGIN_DECLARATIONS;
 typedef struct sd_lldp_rx sd_lldp_rx;
 typedef struct sd_lldp_neighbor sd_lldp_neighbor;
 
-typedef enum sd_lldp_rx_event_t {
+__extension__ typedef enum sd_lldp_rx_event_t {
         SD_LLDP_RX_EVENT_ADDED,
         SD_LLDP_RX_EVENT_REMOVED,
         SD_LLDP_RX_EVENT_UPDATED,
         SD_LLDP_RX_EVENT_REFRESHED,
         _SD_LLDP_RX_EVENT_MAX,
         _SD_LLDP_RX_EVENT_INVALID = -EINVAL,
-        _SD_ENUM_FORCE_S64(LLDP_RX_EVENT),
+        _SD_ENUM_FORCE_S64(LLDP_RX_EVENT)
 } sd_lldp_rx_event_t;
 
 typedef void (*sd_lldp_rx_callback_t)(sd_lldp_rx *lldp_rx, sd_lldp_rx_event_t event, sd_lldp_neighbor *n, void *userdata);
index 97ecd5e181bf8b0a0a9a5df2b4a9cd74ac926411..349a2716eb3427c4ebefffa23a5400feafaa0673 100644 (file)
@@ -31,13 +31,13 @@ _SD_BEGIN_DECLARATIONS;
 
 typedef struct sd_lldp_tx sd_lldp_tx;
 
-typedef enum sd_lldp_multicast_mode_t {
+__extension__ typedef enum sd_lldp_multicast_mode_t {
         SD_LLDP_MULTICAST_MODE_NEAREST_BRIDGE,
         SD_LLDP_MULTICAST_MODE_NON_TPMR_BRIDGE,
         SD_LLDP_MULTICAST_MODE_CUSTOMER_BRIDGE,
         _SD_LLDP_MULTICAST_MODE_MAX,
         _SD_LLDP_MULTICAST_MODE_INVALID = -EINVAL,
-        _SD_ENUM_FORCE_S64(LLDP_TX_MODE),
+        _SD_ENUM_FORCE_S64(LLDP_TX_MODE)
 } sd_lldp_multicast_mode_t;
 
 int sd_lldp_tx_new(sd_lldp_tx **ret);
index c32d7894764164e5ab9debb42693f5959823579c..b55c5512f937e26aab054b73b97495d67bc99cd7 100644 (file)
@@ -34,7 +34,7 @@ enum {
         SD_LLDP_TYPE_SYSTEM_DESCRIPTION  = 6,
         SD_LLDP_TYPE_SYSTEM_CAPABILITIES = 7,
         SD_LLDP_TYPE_MGMT_ADDRESS        = 8,
-        SD_LLDP_TYPE_PRIVATE             = 127,
+        SD_LLDP_TYPE_PRIVATE             = 127
 };
 
 /* IEEE 802.1AB-2009 Clause 8.5.2: Chassis subtypes */
@@ -46,7 +46,7 @@ enum {
         SD_LLDP_CHASSIS_SUBTYPE_MAC_ADDRESS         = 4,
         SD_LLDP_CHASSIS_SUBTYPE_NETWORK_ADDRESS     = 5,
         SD_LLDP_CHASSIS_SUBTYPE_INTERFACE_NAME      = 6,
-        SD_LLDP_CHASSIS_SUBTYPE_LOCALLY_ASSIGNED    = 7,
+        SD_LLDP_CHASSIS_SUBTYPE_LOCALLY_ASSIGNED    = 7
 };
 
 /* IEEE 802.1AB-2009 Clause 8.5.3: Port subtype */
@@ -58,7 +58,7 @@ enum {
         SD_LLDP_PORT_SUBTYPE_NETWORK_ADDRESS  = 4,
         SD_LLDP_PORT_SUBTYPE_INTERFACE_NAME   = 5,
         SD_LLDP_PORT_SUBTYPE_AGENT_CIRCUIT_ID = 6,
-        SD_LLDP_PORT_SUBTYPE_LOCALLY_ASSIGNED = 7,
+        SD_LLDP_PORT_SUBTYPE_LOCALLY_ASSIGNED = 7
 };
 
 /* IEEE 802.1AB-2009 Clause 8.5.8: System capabilities */
@@ -73,7 +73,7 @@ enum {
         SD_LLDP_SYSTEM_CAPABILITIES_STATION  = 1 << 7,
         SD_LLDP_SYSTEM_CAPABILITIES_CVLAN    = 1 << 8,
         SD_LLDP_SYSTEM_CAPABILITIES_SVLAN    = 1 << 9,
-        SD_LLDP_SYSTEM_CAPABILITIES_TPMR     = 1 << 10,
+        SD_LLDP_SYSTEM_CAPABILITIES_TPMR     = 1 << 10
 };
 
 #define SD_LLDP_SYSTEM_CAPABILITIES_ALL UINT16_MAX
@@ -107,7 +107,7 @@ enum {
         SD_LLDP_OUI_802_1_SUBTYPE_PROTOCOL_IDENTITY     = 4,
         SD_LLDP_OUI_802_1_SUBTYPE_VID_USAGE_DIGEST      = 5,
         SD_LLDP_OUI_802_1_SUBTYPE_MANAGEMENT_VID        = 6,
-        SD_LLDP_OUI_802_1_SUBTYPE_LINK_AGGREGATION      = 7,
+        SD_LLDP_OUI_802_1_SUBTYPE_LINK_AGGREGATION      = 7
 };
 
 /* IEEE 802.1AB-2009 Annex F */
@@ -115,7 +115,7 @@ enum {
         SD_LLDP_OUI_802_3_SUBTYPE_MAC_PHY_CONFIG_STATUS = 1,
         SD_LLDP_OUI_802_3_SUBTYPE_POWER_VIA_MDI         = 2,
         SD_LLDP_OUI_802_3_SUBTYPE_LINK_AGGREGATION      = 3,
-        SD_LLDP_OUI_802_3_SUBTYPE_MAXIMUM_FRAME_SIZE    = 4,
+        SD_LLDP_OUI_802_3_SUBTYPE_MAXIMUM_FRAME_SIZE    = 4
 };
 
 _SD_END_DECLARATIONS;
index d39a6ddb3104d0735424c9f63cd120ef0fbebaf7..8d457a51e71cde89dadb0b149a271ebb8143eae2 100644 (file)
@@ -42,25 +42,25 @@ enum {
         SD_NDISC_OPTION_RDNSS              = 25,
         SD_NDISC_OPTION_FLAGS_EXTENSION    = 26,
         SD_NDISC_OPTION_DNSSL              = 31,
-        SD_NDISC_OPTION_CAPTIVE_PORTAL     = 37,
+        SD_NDISC_OPTION_CAPTIVE_PORTAL     = 37
 };
 
 /* Route preference, RFC 4191, Section 2.1 */
 enum {
         SD_NDISC_PREFERENCE_LOW    = 3U,
         SD_NDISC_PREFERENCE_MEDIUM = 0U,
-        SD_NDISC_PREFERENCE_HIGH   = 1U,
+        SD_NDISC_PREFERENCE_HIGH   = 1U
 };
 
 typedef struct sd_ndisc sd_ndisc;
 typedef struct sd_ndisc_router sd_ndisc_router;
 
-typedef enum sd_ndisc_event_t {
+__extension__ typedef enum sd_ndisc_event_t {
         SD_NDISC_EVENT_TIMEOUT,
         SD_NDISC_EVENT_ROUTER,
         _SD_NDISC_EVENT_MAX,
         _SD_NDISC_EVENT_INVALID = -EINVAL,
-        _SD_ENUM_FORCE_S64(NDISC_EVENT),
+        _SD_ENUM_FORCE_S64(NDISC_EVENT)
 } sd_ndisc_event_t;
 
 typedef void (*sd_ndisc_callback_t)(sd_ndisc *nd, sd_ndisc_event_t event, sd_ndisc_router *rt, void *userdata);
index 5f2f03c27beefb0a5940ae250a639ed98c58fe15..80c2a672ec1356db6a21eb552895ecf196841ef5 100644 (file)
@@ -110,7 +110,7 @@ enum {
         /* systemd-networkd search paths */
         SD_PATH_SYSTEMD_SEARCH_NETWORK,
 
-        _SD_PATH_MAX,
+        _SD_PATH_MAX
 };
 
 int sd_path_lookup(uint64_t type, const char *suffix, char **path);
index 530bfd516e95784b7afaa85812353f6d78141165..96b974306d662d64a76036df605ccf5cad38cdad 100644 (file)
@@ -47,7 +47,7 @@ typedef _sd_destroy_t sd_resolve_destroy_t;
 enum {
         SD_RESOLVE_GET_HOST    = 1 << 0,
         SD_RESOLVE_GET_SERVICE = 1 << 1,
-        SD_RESOLVE_GET_BOTH = SD_RESOLVE_GET_HOST | SD_RESOLVE_GET_SERVICE,
+        SD_RESOLVE_GET_BOTH = SD_RESOLVE_GET_HOST | SD_RESOLVE_GET_SERVICE
 };
 
 int sd_resolve_default(sd_resolve **ret);