Dominik 'Rathann' Mierzejewski: > On Friday, 07 June 2019 at 23:45, U. Artie Eoff wrote: >> The compound literals assigned to "components" >> only exist within the scope of the if/else >> block (thanks Mark Thompson for the better >> explanation). >> >> Thus, after this if/else block, "components" >> ends up pointing to an arbitrary/undefined >> array. With some compilers and depending on >> optimization settings, these arbitrary values >> may end up being the same value (i.e. 0 with >> GNU GCC 9.x). Unfortunately, the GNU GCC >> compiler, at least, never prints any warnings >> about this. >> >> This patch fixes this issue by assigning the >> constant arrays to local variables at function >> scope and then pointing "components" to those >> as necessary. >> >> Fixes #7915 > > Brilliant detective work, Artie. Could you open a bug report with gcc > upstream? A case like this should get an explicit warning from gcc like > you pointed out. > > Regards, > Dominik > A request for this has already been opened [1]. It seems that this is also responsible for filesystem corruption on linux when using a SSD cache + HDD combination (see [2]).
- Andreas [1]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89990 [2]: https://bugzilla.kernel.org/show_bug.cgi?id=203573 _______________________________________________ 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".