On Sun, Apr 16, 2017 at 05:20:02PM -0700, Aaron Levinson wrote: > From 9e6a9e2b8d58f17c661a3f455e03c95587ec7b18 Mon Sep 17 00:00:00 2001 > From: Aaron Levinson <alevi...@aracnet.com> > Date: Sun, 16 Apr 2017 17:13:31 -0700 > Subject: [PATCH] libavutil/thread.h: Fixed g++ build error when > ASSERT_LEVEL is greater than 1 > > Purpose: libavutil/thread.h: Fixed g++ build error when ASSERT_LEVEL > is greater than 1. This is only relevant when thread.h is included by > C++ files. In this case, the relevant code is only defined if > HAVE_PTHREADS is defined as 1. Use configure --assert-level=2 to do > so. > > Note: Issue discovered as a result of Coverity build failure. Cause > of build failure pinpointed by Hendrik Leppkes. > > Comments: > > -- libavutil/thread.h: Altered ASSERT_PTHREAD_NORET definition such > that it uses av_make_error_string instead of av_err2str(). > av_err2str() uses a "parenthesized type followed by an initializer > list", which is apparently not valid C++. This issue started > occurring because thread.h is now included by the DeckLink C++ > files. The alteration does the equivalent of what av_err2str() > does, but instead declares the character buffer as a local > variable. > --- > libavutil/thread.h | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/libavutil/thread.h b/libavutil/thread.h > index 6e57447..f108e20 100644 > --- a/libavutil/thread.h > +++ b/libavutil/thread.h > @@ -36,8 +36,11 @@ > #define ASSERT_PTHREAD_NORET(func, ...) do { \ > int ret = func(__VA_ARGS__); \ > if (ret) { \ > + char errbuf[AV_ERROR_MAX_STRING_SIZE] = ""; \ > av_log(NULL, AV_LOG_FATAL, AV_STRINGIFY(func) \ > - " failed with error: %s\n", av_err2str(AVERROR(ret))); \ > + " failed with error: %s\n", \ > + av_make_error_string(errbuf, AV_ERROR_MAX_STRING_SIZE, \ > + AVERROR(ret))); \ > abort(); \ > } \ > } while (0)
I don't like limiting ourselves in the common C code of the project because C++ is a bad and limited language. Can't you solve this by bumping the minimal requirement of C++ version? -- Clément B.
signature.asc
Description: PGP signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel