[x265] Several compiler warnings in MSYS2/MinGW64 with GCC 8.2.0
Mario *LigH* Rohkrämer
contact at ligh.de
Wed Aug 8 12:39:58 CEST 2018
MSYS2 recently updated MinGW64 with GCC 8.2.0 (MinGW32 will keep GCC
7.3.0 due to some internal compiler errors in v8.2.0).
Here are some of the reported warnings (the compilation still passes):
+----
[ 80%] Building CXX object encoder/CMakeFiles/encoder.dir/encoder.cpp.obj
In file included from
H:/development/media-autobuild_suite-master/build/x265-hg/source/encoder/encoder.cpp:36:
H:/development/media-autobuild_suite-master/build/x265-hg/source/encoder/frameencoder.h:
In member function 'void x265::CTURow::init(x265::Entropy&, unsigned int)':
H:/development/media-autobuild_suite-master/build/x265-hg/source/encoder/frameencoder.h:108:46:
warning: 'void* memset(void*, int, size_t)' clearing an object of
non-trivial type 'struct x265::FrameStats'; use assignment or
value-initialization instead [-Wclass-memaccess]
memset(&rowStats, 0, sizeof(rowStats));
^
In file included from
H:/development/media-autobuild_suite-master/build/x265-hg/source/encoder/encoder.cpp:30:
H:/development/media-autobuild_suite-master/build/x265-hg/source/common/framedata.h:41:8:
note: 'struct x265::FrameStats' declared here
struct FrameStats
^~~~~~~~~~
H:/development/media-autobuild_suite-master/build/x265-hg/source/encoder/encoder.cpp:
In member function 'void
x265::Encoder::readAnalysisFile(x265_analysis_data*, int, const
x265_picture*, int)':
H:/development/media-autobuild_suite-master/build/x265-hg/source/encoder/encoder.cpp:3190:43:
warning: 'void* memcpy(void*, const void*, size_t)' copying an object of
non-trivial type 'struct x265::MV' from an array of 'x265_analysis_MV'
{aka 'struct x265_analysis_MV'} [-Wclass-memaccess]
memcpy(val, src, (size * readSize));\
^
H:/development/media-autobuild_suite-master/build/x265-hg/source/encoder/encoder.cpp:3382:21:
note: in expansion of macro 'X265_FREAD'
X265_FREAD(mv[i], sizeof(MV), depthBytes,
m_analysisFileIn, interPic->mv[i]);
^~~~~~~~~~
In file included from
H:/development/media-autobuild_suite-master/build/x265-hg/source/common/lowres.h:30,
from
H:/development/media-autobuild_suite-master/build/x265-hg/source/common/frame.h:29,
from
H:/development/media-autobuild_suite-master/build/x265-hg/source/encoder/encoder.cpp:29:
H:/development/media-autobuild_suite-master/build/x265-hg/source/common/mv.h:37:8:
note: 'struct x265::MV' declared here
struct MV
^~
H:/development/media-autobuild_suite-master/build/x265-hg/source/encoder/encoder.cpp:
In member function 'void
x265::Encoder::readAnalysisFile(x265_analysis_data*, int, const
x265_picture*, int, x265::cuLocation)':
H:/development/media-autobuild_suite-master/build/x265-hg/source/encoder/encoder.cpp:3468:43:
warning: 'void* memcpy(void*, const void*, size_t)' copying an object of
non-trivial type 'struct x265::MV' from an array of 'x265_analysis_MV'
{aka 'struct x265_analysis_MV'} [-Wclass-memaccess]
memcpy(val, src, (size * readSize));\
^
H:/development/media-autobuild_suite-master/build/x265-hg/source/encoder/encoder.cpp:3707:21:
note: in expansion of macro 'X265_FREAD'
X265_FREAD(mv[i], sizeof(MV), depthBytes,
m_analysisFileIn, interPic->mv[i]);
^~~~~~~~~~
In file included from
H:/development/media-autobuild_suite-master/build/x265-hg/source/common/lowres.h:30,
from
H:/development/media-autobuild_suite-master/build/x265-hg/source/common/frame.h:29,
from
H:/development/media-autobuild_suite-master/build/x265-hg/source/encoder/encoder.cpp:29:
H:/development/media-autobuild_suite-master/build/x265-hg/source/common/mv.h:37:8:
note: 'struct x265::MV' declared here
struct MV
^~
H:/development/media-autobuild_suite-master/build/x265-hg/source/encoder/encoder.cpp:
In member function 'bool x265::Encoder::computeSPSRPSIndex()':
H:/development/media-autobuild_suite-master/build/x265-hg/source/encoder/encoder.cpp:4583:61:
warning: 'void* memset(void*, int, size_t)' clearing an object of
non-trivial type 'struct x265::RPS'; use assignment or
value-initialization instead [-Wclass-memaccess]
memset(rpsInSPS, 0, sizeof(RPS) * MAX_NUM_SHORT_TERM_RPS);
^
In file included from
H:/development/media-autobuild_suite-master/build/x265-hg/source/common/framedata.h:28,
from
H:/development/media-autobuild_suite-master/build/x265-hg/source/encoder/encoder.cpp:30:
H:/development/media-autobuild_suite-master/build/x265-hg/source/common/slice.h:45:8:
note: 'struct x265::RPS' declared here
struct RPS
^~~
[ 81%] Building CXX object encoder/CMakeFiles/encoder.dir/api.cpp.obj
H:/development/media-autobuild_suite-master/build/x265-hg/source/encoder/api.cpp:
In function 'const x265_api* x265_api_get_164(int)':
H:/development/media-autobuild_suite-master/build/x265-hg/source/encoder/api.cpp:723:70:
warning: cast between incompatible function types from 'FARPROC' {aka
'long long int (*)()'} to 'api_get_func' {aka 'const x265_api*
(*)(int)'} [-Wcast-function-type]
api_get_func get = (api_get_func)GetProcAddress(h, method);
^
H:/development/media-autobuild_suite-master/build/x265-hg/source/encoder/api.cpp:
In function 'const x265_api* x265_api_query(int, int, int*)':
H:/development/media-autobuild_suite-master/build/x265-hg/source/encoder/api.cpp:817:76:
warning: cast between incompatible function types from 'FARPROC' {aka
'long long int (*)()'} to 'api_query_func' {aka 'const x265_api*
(*)(int, int, int*)'} [-Wcast-function-type]
api_query_func query = (api_query_func)GetProcAddress(h,
method);
^
+----
I guess they may be related to different defaults of warnings being
enabled, so you may have to disable a few more explicitly.
More information about the x265-devel
mailing list