[PATCH 23/39] elf: Suppress clang warning on tst-unique4

Sam James sam@gentoo.org
Sun Dec 22 04:42:48 GMT 2024


"H.J. Lu" <hjl.tools@gmail.com> writes:

> From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
>
> clang warns that the instatiation of the variable is required,
> but no definition is available.  They are implemented on
> tst-unique4lib.so.
>
> Checked on x86_64-linux-gnu.
> ---
>  elf/tst-unique4.cc    | 6 ++++++
>  elf/tst-unique4lib.cc | 2 +-
>  2 files changed, 7 insertions(+), 1 deletion(-)
>

OK, given we tried the nicer approach with C++17 inline and it didn't
work great for both tests.

> diff --git a/elf/tst-unique4.cc b/elf/tst-unique4.cc
> index 575c70d3a1..ab727b8dbb 100644
> --- a/elf/tst-unique4.cc
> +++ b/elf/tst-unique4.cc
> @@ -2,7 +2,12 @@
>  #include "tst-unique4.h"
>  
>  #include <cstdio>
> +#include <libc-diag.h>
>  
> +/* clang warns that the instatiation of the variable is required, but
> no

instantiation

> +   definition is available.  They are implemented on tst-unique4lib.so.  */
> +DIAG_PUSH_NEEDS_COMMENT_CLANG;
> +DIAG_IGNORE_NEEDS_COMMENT_CLANG (13, "-Wundefined-var-template");
>  static int a[24] =
>    {
>      S<1>::i, S<2>::i, S<3>::i, S<4>::i, S<5>::i, S<6>::i, S<7>::i, S<8>::i,
> @@ -10,6 +15,7 @@ static int a[24] =
>      S<16>::i, S<17>::i, S<18>::i, S<19>::i, S<20>::i, S<21>::i, S<22>::i,
>      S<23>::i, S<24>::i
>    };
> +DIAG_POP_NEEDS_COMMENT_CLANG;
>  
>  int
>  main (void)
> diff --git a/elf/tst-unique4lib.cc b/elf/tst-unique4lib.cc
> index 17a7cdf567..2829e75cee 100644
> --- a/elf/tst-unique4lib.cc
> +++ b/elf/tst-unique4lib.cc
> @@ -2,7 +2,7 @@
>  #include "tst-unique4.h"
>  
>  template<int N>
> -int S<N>::i = N;
> +int S<N>::i __attribute__ ((used)) = N;
>  template<int N>
>  const int S<N>::j __attribute__ ((used)) = -1;

Reviewed-by: Sam James <sam@gentoo.org>


More information about the Libc-alpha mailing list