Message ID | 20241221222448.753529-1-hjl.tools@gmail.com |
---|---|
State | Superseded |
Headers | show |
Series | elf: Suppress clang warning on tst-unique4 | expand |
* H. J. Lu: > From: Adhemerval Zanella <adhemerval.zanella@linaro.org> > > clang warns that the instantiation 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(-) > > 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 > + 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; Could a portable version of this use explicit template instantiations? Thanks, Florian
Florian Weimer <fweimer@redhat.com> writes: > * H. J. Lu: > >> From: Adhemerval Zanella <adhemerval.zanella@linaro.org> >> >> clang warns that the instantiation 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(-) >> >> 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 >> + 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; > > Could a portable version of this use explicit template instantiations? https://inbox.sourceware.org/libc-alpha/CAMe9rOpagS=d=HBERSWcTcimrQg23kDOtzD5erkNWfU1_9S6NQ@mail.gmail.com/ thanks, sam
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 + 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;
From: Adhemerval Zanella <adhemerval.zanella@linaro.org> clang warns that the instantiation 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(-)