From f3d0642d35faf43ce027607bb117142b347ee1a4 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sat, 26 Oct 2013 22:08:06 +0200 Subject: [PATCH] avutil/utils: check that size_t is unsigned ANSI/ISO C guarantee this, yet there is evidence that there exist platforms where its not so. See: http://www.cs.utah.edu/dept/old/texinfo/glibc-manual-0.02/library_30.html Signed-off-by: Michael Niedermayer --- libavutil/utils.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libavutil/utils.c b/libavutil/utils.c index eb87c906c8..dc841621d0 100644 --- a/libavutil/utils.c +++ b/libavutil/utils.c @@ -40,6 +40,8 @@ unsigned avutil_version(void) av_assert0(LIBAVUTIL_VERSION_MICRO >= 100); av_assert0(HAVE_MMX2 == HAVE_MMXEXT); + av_assert0(((size_t)-1) > 0); // C gurantees this but if false on a platform we care about revert at least b284e1ffe343d6697fb950d1ee517bafda8a9844 + if (av_sat_dadd32(1, 2) != 5) { av_log(NULL, AV_LOG_FATAL, "Libavutil has been build with a broken binutils, please upgrade binutils and rebuild\n"); abort();