summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2020-10-19 21:25:08 +0200
committerThomas Haller <thaller@redhat.com>2020-12-08 15:20:19 +0100
commit89bf53c674a0c1dcab0d0e8f8e59e7d88972d641 (patch)
treee90cfa45cd74435404bc8feec54fee24de0ff613
parent80e569edaf1606f118e9fd55d0a2d1670f142bca (diff)
downloadNetworkManager-89bf53c674a0c1dcab0d0e8f8e59e7d88972d641.tar.gz
shared: fix NM_CAST_STRV_CC() for "char **const" pointers
clang-3.4.2-9.el7.x86_64 otherwise fails: ../src/devices/wifi/nm-wifi-p2p-peer.c:410:44: error: controlling expression type 'const char **const' not compatible with any generic association type if (!nm_utils_strv_equal(priv->groups, peer_info->groups)) { ^~~~~~~~~~~~~~~~~ ../shared/nm-glib-aux/nm-shared-utils.h:1689:78: note: expanded from macro 'nm_utils_strv_equal' #define nm_utils_strv_equal(strv1, strv2) (nm_utils_strv_cmp_n((strv1), -1, (strv2), -1) == 0) ^ ../shared/nm-glib-aux/nm-shared-utils.h:1687:74: note: expanded from macro 'nm_utils_strv_cmp_n' _nm_utils_strv_cmp_n(NM_CAST_STRV_CC(strv1), (len1), NM_CAST_STRV_CC(strv2), (len2)) ^ ../shared/nm-glib-aux/nm-macros-internal.h:706:21: note: expanded from macro 'NM_CAST_STRV_CC' (_Generic ((value), \ ^ (cherry picked from commit 8dc3f07d34d74e37b06461bf311a57df037ca50c) (cherry picked from commit d585ccdb7c2a3307953e099ebd1a2131e03d2419) (cherry picked from commit 9b8a60a9a3153d35fcee072387bd84fa826a55e7)
-rw-r--r--shared/nm-glib-aux/nm-macros-internal.h18
1 files changed, 12 insertions, 6 deletions
diff --git a/shared/nm-glib-aux/nm-macros-internal.h b/shared/nm-glib-aux/nm-macros-internal.h
index e6bfe7ab9a..53c9a017a8 100644
--- a/shared/nm-glib-aux/nm-macros-internal.h
+++ b/shared/nm-glib-aux/nm-macros-internal.h
@@ -687,12 +687,18 @@ NM_G_ERROR_MSG (GError *error)
void *: (const char * *) (value)))
#define NM_CAST_STRV_CC(value) \
(_Generic ((value), \
- const char *const*: (const char *const*) (value), \
- const char * *: (const char *const*) (value), \
- char *const*: (const char *const*) (value), \
- char * *: (const char *const*) (value), \
- const void *: (const char *const*) (value), \
- void *: (const char *const*) (value)))
+ const char *const* : (const char *const*) (value), \
+ const char * * : (const char *const*) (value), \
+ char *const* : (const char *const*) (value), \
+ char * * : (const char *const*) (value), \
+ const void * : (const char *const*) (value), \
+ void * : (const char *const*) (value), \
+ const char *const*const: (const char *const*) (value), \
+ const char * *const: (const char *const*) (value), \
+ char *const*const: (const char *const*) (value), \
+ char * *const: (const char *const*) (value), \
+ const void *const: (const char *const*) (value), \
+ void *const: (const char *const*) (value)))
#else
#define NM_CAST_STRV_MC(value) ((const char * *) (value))
#define NM_CAST_STRV_CC(value) ((const char *const*) (value))