Re: [PATCH 1/2] tcg: Mark more tcg_out*() functions with attribute 'unused'
On 1/10/21 6:51 PM, Richard Henderson wrote: > On 1/10/21 6:27 AM, Philippe Mathieu-Daudé wrote: >> The tcg_out* functions are utility routines that may or >> may not be used by a particular backend. Similarly to commit >> 4196dca63b8, mark them with the 'unused' attribute to suppress >> spurious warnings if they aren't used. >> >> This fixes the build with --enable-tcg-interpreter: >> >> [98/151] Compiling C object libqemu-arm-softmmu.fa.p/tcg_tcg.c.o >> FAILED: libqemu-arm-softmmu.fa.p/tcg_tcg.c.o >> clang [...] -o libqemu-arm-softmmu.fa.p/tcg_tcg.c.o -c ../tcg/tcg.c >> ../tcg/tcg.c:136:20: error: unused function 'tcg_out_dupi_vec' >> [-Werror,-Wunused-function] >> >> Reported-by: Wataru Ashihara >> Signed-off-by: Philippe Mathieu-Daudé >> --- >> tcg/tcg.c | 30 +- >> 1 file changed, 21 insertions(+), 9 deletions(-) > > > This does too much to fix that Werror, as all of the other functions are > unconditionally used. > > Alternately, I'll re-test and merge my tcg constant branch, which will make > tcg_out_dupi_vec also unconditionally used. Then we don't need > __attribute__((unused)) at all. OK, better then. Regards, Phil.
Re: [PATCH 1/2] tcg: Mark more tcg_out*() functions with attribute 'unused'
On 1/10/21 6:27 AM, Philippe Mathieu-Daudé wrote: > The tcg_out* functions are utility routines that may or > may not be used by a particular backend. Similarly to commit > 4196dca63b8, mark them with the 'unused' attribute to suppress > spurious warnings if they aren't used. > > This fixes the build with --enable-tcg-interpreter: > > [98/151] Compiling C object libqemu-arm-softmmu.fa.p/tcg_tcg.c.o > FAILED: libqemu-arm-softmmu.fa.p/tcg_tcg.c.o > clang [...] -o libqemu-arm-softmmu.fa.p/tcg_tcg.c.o -c ../tcg/tcg.c > ../tcg/tcg.c:136:20: error: unused function 'tcg_out_dupi_vec' > [-Werror,-Wunused-function] > > Reported-by: Wataru Ashihara > Signed-off-by: Philippe Mathieu-Daudé > --- > tcg/tcg.c | 30 +- > 1 file changed, 21 insertions(+), 9 deletions(-) This does too much to fix that Werror, as all of the other functions are unconditionally used. Alternately, I'll re-test and merge my tcg constant branch, which will make tcg_out_dupi_vec also unconditionally used. Then we don't need __attribute__((unused)) at all. r~
[PATCH 1/2] tcg: Mark more tcg_out*() functions with attribute 'unused'
The tcg_out* functions are utility routines that may or may not be used by a particular backend. Similarly to commit 4196dca63b8, mark them with the 'unused' attribute to suppress spurious warnings if they aren't used. This fixes the build with --enable-tcg-interpreter: [98/151] Compiling C object libqemu-arm-softmmu.fa.p/tcg_tcg.c.o FAILED: libqemu-arm-softmmu.fa.p/tcg_tcg.c.o clang [...] -o libqemu-arm-softmmu.fa.p/tcg_tcg.c.o -c ../tcg/tcg.c ../tcg/tcg.c:136:20: error: unused function 'tcg_out_dupi_vec' [-Werror,-Wunused-function] Reported-by: Wataru Ashihara Signed-off-by: Philippe Mathieu-Daudé --- tcg/tcg.c | 30 +- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/tcg/tcg.c b/tcg/tcg.c index 472bf1755bf..a7fc2043cbf 100644 --- a/tcg/tcg.c +++ b/tcg/tcg.c @@ -123,24 +123,36 @@ static void tcg_out_vec_op(TCGContext *s, TCGOpcode opc, unsigned vecl, unsigned vece, const TCGArg *args, const int *const_args); #else -static inline bool tcg_out_dup_vec(TCGContext *s, TCGType type, unsigned vece, - TCGReg dst, TCGReg src) +static __attribute__((unused)) inline bool tcg_out_dup_vec(TCGContext *s, + TCGType type, + unsigned vece, + TCGReg dst, + TCGReg src) { g_assert_not_reached(); } -static inline bool tcg_out_dupm_vec(TCGContext *s, TCGType type, unsigned vece, -TCGReg dst, TCGReg base, intptr_t offset) +static __attribute__((unused)) inline bool tcg_out_dupm_vec(TCGContext *s, +TCGType type, +unsigned vece, +TCGReg dst, +TCGReg base, +intptr_t offset) { g_assert_not_reached(); } -static inline void tcg_out_dupi_vec(TCGContext *s, TCGType type, -TCGReg dst, tcg_target_long arg) +static __attribute__((unused)) inline void tcg_out_dupi_vec(TCGContext *s, +TCGType type, +TCGReg dst, +tcg_target_long arg) { g_assert_not_reached(); } -static inline void tcg_out_vec_op(TCGContext *s, TCGOpcode opc, unsigned vecl, - unsigned vece, const TCGArg *args, - const int *const_args) +static __attribute__((unused)) inline void tcg_out_vec_op(TCGContext *s, + TCGOpcode opc, + unsigned vecl, + unsigned vece, + const TCGArg *args, + const int *const_args) { g_assert_not_reached(); } -- 2.26.2