On Tue, 22 Jul 2025 at 21:16, Kacper Michajłow <kaspe...@gmail.com> wrote:
>
> The asumption is that DCE will remove references to those functions.
> However some compilers with certain instrumentation enabled doesn't DCE
> those at all, resulting in linking failure. Tested with cl.exe -RTCu -RTCs.
>
> Signed-off-by: Kacper Michajłow <kaspe...@gmail.com>
> ---
>  libavcodec/x86/fdctdsp_init.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/libavcodec/x86/fdctdsp_init.c b/libavcodec/x86/fdctdsp_init.c
> index 92a842433d..d43e45d220 100644
> --- a/libavcodec/x86/fdctdsp_init.c
> +++ b/libavcodec/x86/fdctdsp_init.c
> @@ -31,8 +31,10 @@ av_cold void ff_fdctdsp_init_x86(FDCTDSPContext *c, 
> AVCodecContext *avctx,
>
>      if (!high_bit_depth) {
>          if ((dct_algo == FF_DCT_AUTO || dct_algo == FF_DCT_MMX)) {
> +#if HAVE_SSE2_INLINE
>              if (INLINE_SSE2(cpu_flags))
>                  c->fdct = ff_fdct_sse2;
> +#endif
>          }
>      }
>  }
> --
> 2.50.1
>

This likely would trigger an unused variable (cpu_flags) warning, I've
changed locally to put the whole body in #if.

--- a/libavcodec/x86/fdctdsp_init.c
+++ b/libavcodec/x86/fdctdsp_init.c
@@ -26,6 +26,7 @@
 av_cold void ff_fdctdsp_init_x86(FDCTDSPContext *c, AVCodecContext *avctx,
                                  unsigned high_bit_depth)
 {
+#if HAVE_SSE2_INLINE
     int cpu_flags = av_get_cpu_flags();
     const int dct_algo = avctx->dct_algo;

@@ -35,4 +36,5 @@ av_cold void ff_fdctdsp_init_x86(FDCTDSPContext *c,
AVCodecContext *avctx,
                 c->fdct = ff_fdct_sse2;
         }
     }
+#endif
 }

- Kacper
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to