summaryrefslogtreecommitdiff
path: root/libavcodec/mpegaudio_tablegen.c
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-11-17 23:20:03 +0100
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-12-08 17:51:47 +0100
commit22140374c8980420a3b5c65fcc11d90a04d35946 (patch)
treed8a6033b4c4196c309c806d2e1c2b0b5143f296f /libavcodec/mpegaudio_tablegen.c
parent73bc26acb87e0e0ff74bc26bc9d7c54eceeb0145 (diff)
downloadffmpeg-22140374c8980420a3b5c65fcc11d90a04d35946.tar.gz
avcodec/mpegaudio_tablegen: Avoid write-only buffers
The mpegaudio_tablegen header contains code to initialize several tables; it is included in both the fixed as well as the floating point mpegaudio decoders and some of these tables are only used by the fixed resp. floating point decoders; yet both types are always initialized, leaving the compiler to figure out that one of them is unused. GCC 9.3 fails at this (even with -O3): $ readelf -s mpegaudiodec_fixed.o|grep _float 28: 0000000000001660 32768 OBJECT LOCAL DEFAULT 4 expval_table_float An actually unused table (expval_table_fixed/float) of size 32KiB is kept and initialized (the reason for this is probably that this table is read from, namely to initialize another table: exp_table_fixed/float; of course the float resp. fixed tables are not used in the fixed resp. floating point decoder). Therefore #ifdef the unneeded tables away. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Diffstat (limited to 'libavcodec/mpegaudio_tablegen.c')
-rw-r--r--libavcodec/mpegaudio_tablegen.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/libavcodec/mpegaudio_tablegen.c b/libavcodec/mpegaudio_tablegen.c
index ede7c8e221..ec0d51c67d 100644
--- a/libavcodec/mpegaudio_tablegen.c
+++ b/libavcodec/mpegaudio_tablegen.c
@@ -22,6 +22,7 @@
#include <stdlib.h>
#define CONFIG_HARDCODED_TABLES 0
+#define BUILD_TABLES
#include "libavutil/tablegen.h"
#include "mpegaudio_tablegen.h"
#include "tableprint.h"