From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1791) id 83AF23857825; Fri, 11 Mar 2022 17:22:51 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 83AF23857825 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Adhemerval Zanella To: glibc-cvs@sourceware.org Subject: [glibc/azanella/clang] nss: Suppress nss_module.c warning on clang X-Act-Checkin: glibc X-Git-Author: Adhemerval Zanella X-Git-Refname: refs/heads/azanella/clang X-Git-Oldrev: 4c70964c7e37034b4774f48ccd4cdb69d50bb8a6 X-Git-Newrev: 9824fe4bc5ce01dc4b11980367231140e8e07d0f Message-Id: <20220311172251.83AF23857825@sourceware.org> Date: Fri, 11 Mar 2022 17:22:51 +0000 (GMT) X-BeenThere: glibc-cvs@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Glibc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Mar 2022 17:22:51 -0000 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=9824fe4bc5ce01dc4b11980367231140e8e07d0f commit 9824fe4bc5ce01dc4b11980367231140e8e07d0f Author: Adhemerval Zanella Date: Thu Mar 10 08:31:06 2022 -0300 nss: Suppress nss_module.c warning on clang Diff: --- include/libc-diag.h | 13 +++++++++++++ nss/nss_module.c | 7 +++++++ 2 files changed, 20 insertions(+) diff --git a/include/libc-diag.h b/include/libc-diag.h index bc273716e3..182d640a2e 100644 --- a/include/libc-diag.h +++ b/include/libc-diag.h @@ -71,6 +71,19 @@ # define DIAG_IGNORE_Os_NEEDS_COMMENT(version, option) #endif +/* Same as before, but only enables the warning suppression for clang. + It is for clang-only issues and options that only clang emits. */ +#ifdef __clang__ +# define DIAG_PUSH_NEEDS_COMMENT_CLANG _Pragma ("clang diagnostic push") +# define DIAG_POP_NEEDS_COMMENT_CLANG _Pragma ("clang diagnostic pop") +# define DIAG_IGNORE_NEEDS_COMMENT_CLANG(version, option) \ + _Pragma (_DIAG_STR (clang diagnostic ignored option)) +#else +# define DIAG_PUSH_NEEDS_COMMENT_CLANG +# define DIAG_POP_NEEDS_COMMENT_CLANG +# define DIAG_IGNORE_NEEDS_COMMENT_CLANG(version, option) +#endif + /* Some warnings are not support for all compilers. */ #ifndef __clang__ # define DIAG_IGNORE_NEEDS_COMMENT_MAYBE_UNINITIALIZED(VERSION) \ diff --git a/nss/nss_module.c b/nss/nss_module.c index f9a1263e5a..d2e5b7b88b 100644 --- a/nss/nss_module.c +++ b/nss/nss_module.c @@ -33,6 +33,7 @@ #include #include #include +#include /* Suffix after .so of NSS service modules. This is a bit of magic, but we assume LIBNSS_FILES_SO looks like "libnss_files.so.2" and we @@ -40,8 +41,14 @@ except through the auto-generated lib-names.h and some static pointer manipulation. The "-1" accounts for the trailing NUL included in the sizeof. */ + +/* clang issues an warning adding 'unsigned long' to a string does not append + to the string, however it is exactly what code means here. */ +DIAG_PUSH_NEEDS_COMMENT_CLANG; +DIAG_IGNORE_NEEDS_COMMENT_CLANG (13, "-Wstring-plus-int"); static const char *const __nss_shlib_revision = LIBNSS_FILES_SO + sizeof("libnss_files.so") - 1; +DIAG_POP_NEEDS_COMMENT_CLANG; /* A single-linked list used to implement a mapping from service names to NSS modules. (Most systems only use five or so modules, so a