GCC 3.4 introduced an attribute warn_unused_result to warn when a programmer discards the return value. Applying this judiciously across the codebase can help in fixing a lot of problems. At a high level, functions which return error codes should always be checked. More concretely, consider the functions ff_add_format and the like in avfilter/formats.h. A quick examination shows that a large portion of libavfilter fails to handle the associated errors, usually AVERROR(ENOMEM). The above example was where I observed the utility of this, but it should be useful in many places across the code base.
Signed-off-by: Ganesh Ajjanagadde <gajjanaga...@gmail.com> --- libavutil/attributes.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libavutil/attributes.h b/libavutil/attributes.h index b4b5f13..3b94466 100644 --- a/libavutil/attributes.h +++ b/libavutil/attributes.h @@ -52,6 +52,12 @@ #endif #endif +#if AV_GCC_VERSION_AT_LEAST(3,4) +# define av_warn_unused_result __attribute__((warn_unused_result)) +#else +# define av_warn_unused_result +#endif + #if AV_GCC_VERSION_AT_LEAST(3,1) # define av_noinline __attribute__((noinline)) #elif defined(_MSC_VER) -- 2.6.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel