]> git.ipfire.org Git - thirdparty/glibc.git/commit
not-cancel.h: Support testing fortify build with Clang
authorH.J. Lu <hjl.tools@gmail.com>
Wed, 1 Jan 2025 23:22:36 +0000 (07:22 +0800)
committerH.J. Lu <hjl.tools@gmail.com>
Thu, 2 Jan 2025 20:56:48 +0000 (04:56 +0800)
commited97ef7a4ba990132e5eadcf95cb31ef602f3603
tree74dd5098292e44fbf859d6769d7387ee577d6b5b
parentdbc9a4000703c75cb4867d66d2e2ce796b283893
not-cancel.h: Support testing fortify build with Clang

When Clang is used to test fortify glibc build configured with

--enable-fortify-source=N

clang issues errors like

In file included from tst-rfc3484.c:60:
In file included from ./getaddrinfo.c:81:
../sysdeps/unix/sysv/linux/not-cancel.h:36:10: error: reference to overloaded function could not be resolved; did you mean to call it?
   36 | __typeof (open64) __open64_nocancel;
      |          ^~~~~~~~
../include/bits/../../io/bits/fcntl2.h:127:1: note: possible target for call
  127 | open64 (__fortify_clang_overload_arg (const char *, ,__path), int __oflag,
      | ^
../include/bits/../../io/bits/fcntl2.h:118:1: note: possible target for call
  118 | open64 (__fortify_clang_overload_arg (const char *, ,__path), int __oflag)
      | ^
../include/bits/../../io/bits/fcntl2.h:114:1: note: possible target for call
  114 | open64 (const char *__path, int __oflag, mode_t __mode, ...)
      | ^
../io/fcntl.h:219:12: note: possible target for call
  219 | extern int open64 (const char *__file, int __oflag, ...) __nonnull ((1));
      |            ^

because clang fortify support for functions with variable arguments relies
on function overload.  Update not-cancel.h to avoid __typeof on functions
with variable arguments.

Co-Authored-By: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
Reviewed-by: Sam James <sam@gentoo.org>
sysdeps/unix/sysv/linux/not-cancel.h