diff options
author | Thomas Haller <thaller@redhat.com> | 2020-10-19 21:25:08 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2020-12-08 15:20:19 +0100 |
commit | 89bf53c674a0c1dcab0d0e8f8e59e7d88972d641 (patch) | |
tree | e90cfa45cd74435404bc8feec54fee24de0ff613 | |
parent | 80e569edaf1606f118e9fd55d0a2d1670f142bca (diff) | |
download | NetworkManager-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.h | 18 |
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)) |