From 22662ca56086ddb7240dc84a68ad89c785682f36 Mon Sep 17 00:00:00 2001
From: Reinhard Tartler <siretart@tauware.de>
Date: Sun, 1 Jul 2012 19:38:40 +0200
Subject: [PATCH] attributes: add av_noreturn

Also use it in the declaration of the various exit_program
implementations in avtools.

inspired by a clang-scan report.
---
 cmdutils.h             | 2 +-
 libavutil/attributes.h | 6 ++++++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/cmdutils.h b/cmdutils.h
index 793a1e83c44..ca4f4c1e8c2 100644
--- a/cmdutils.h
+++ b/cmdutils.h
@@ -373,7 +373,7 @@ FILE *get_preset_file(char *filename, size_t filename_size,
  * Do all the necessary cleanup and abort.
  * This function is implemented in the avtools, not cmdutils.
  */
-void exit_program(int ret);
+av_noreturn void exit_program(int ret);
 
 /**
  * Realloc array to hold new_size elements of elem_size.
diff --git a/libavutil/attributes.h b/libavutil/attributes.h
index 7a9b18b808a..292a0a1a88f 100644
--- a/libavutil/attributes.h
+++ b/libavutil/attributes.h
@@ -113,4 +113,10 @@
 #    define av_printf_format(fmtpos, attrpos)
 #endif
 
+#if AV_GCC_VERSION_AT_LEAST(2,5)
+#    define av_noreturn __attribute__((noreturn))
+#else
+#    define av_noreturn
+#endif
+
 #endif /* AVUTIL_ATTRIBUTES_H */
-- 
GitLab