summaryrefslogtreecommitdiff
path: root/external/cppunit
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2014-07-06 15:38:01 +0100
committerCaolán McNamara <caolanm@redhat.com>2014-07-06 15:38:01 +0100
commit745105a4828ca7d82a626792012c379cdd82228a (patch)
treedaa26690a1c47feba33ce2e0e8ff5b8d939780c8 /external/cppunit
parent55aa83da68e61fba781e8771d426035468483509 (diff)
try and help scan-build out wrt cppunit asserts
Change-Id: Id86607802415ad069aa88be98012a5c99f594218
Diffstat (limited to 'external/cppunit')
-rw-r--r--external/cppunit/0001-mark-the-fails-as-no-return.patch.154
-rw-r--r--external/cppunit/UnpackedTarball_cppunit.mk1
2 files changed, 55 insertions, 0 deletions
diff --git a/external/cppunit/0001-mark-the-fails-as-no-return.patch.1 b/external/cppunit/0001-mark-the-fails-as-no-return.patch.1
new file mode 100644
index 000000000000..13961f9e3506
--- /dev/null
+++ b/external/cppunit/0001-mark-the-fails-as-no-return.patch.1
@@ -0,0 +1,54 @@
+From 059fcd2878071616cedb5116a0b2f75b5edbdbe0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
+Date: Sun, 6 Jul 2014 15:34:41 +0100
+Subject: [PATCH] mark the fails as no-return
+
+that might help clang scan-build understand that execution won't continue after
+they fail
+---
+ include/cppunit/Asserter.h | 13 ++++++++++---
+ 1 file changed, 10 insertions(+), 3 deletions(-)
+
+diff --git a/include/cppunit/Asserter.h b/include/cppunit/Asserter.h
+index 94dadaa..ad981b5 100644
+--- a/include/cppunit/Asserter.h
++++ b/include/cppunit/Asserter.h
+@@ -42,17 +42,24 @@ class Message;
+ * CPPUNIT_SOURCELINE() )
+ * \endcode
+ */
++
++#if defined __GNUC__
++# define NORETURN __attribute__((noreturn))
++#else
++# define NORETURN
++#endif
++
+ struct Asserter
+ {
+ /*! \brief Throws a Exception with the specified message and location.
+ */
+- static void CPPUNIT_API fail( const Message &message,
++ NORETURN static void CPPUNIT_API fail( const Message &message,
+ const SourceLine &sourceLine = SourceLine() );
+
+ /*! \brief Throws a Exception with the specified message and location.
+ * \deprecated Use fail( Message, SourceLine ) instead.
+ */
+- static void CPPUNIT_API fail( std::string message,
++ NORETURN static void CPPUNIT_API fail( std::string message,
+ const SourceLine &sourceLine = SourceLine() );
+
+ /*! \brief Throws a Exception with the specified message and location.
+@@ -111,7 +118,7 @@ struct Asserter
+ * what are the differences between the expected and actual value.
+ * \param shortDescription Short description for the failure message.
+ */
+- static void CPPUNIT_API failNotEqual( std::string expected,
++ NORETURN static void CPPUNIT_API failNotEqual( std::string expected,
+ std::string actual,
+ const SourceLine &sourceLine,
+ const AdditionalMessage &additionalMessage = AdditionalMessage(),
+--
+1.9.3
+
diff --git a/external/cppunit/UnpackedTarball_cppunit.mk b/external/cppunit/UnpackedTarball_cppunit.mk
index fbae41b549a8..e2f9fa55d2d9 100644
--- a/external/cppunit/UnpackedTarball_cppunit.mk
+++ b/external/cppunit/UnpackedTarball_cppunit.mk
@@ -18,6 +18,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,cppunit,\
external/cppunit/wundef.patch \
external/cppunit/CPPUNIT_PLUGIN_EXPORT.patch.0 \
external/cppunit/enable-win32-debug.patch \
+ external/cppunit/0001-mark-the-fails-as-no-return.patch.1 \
))
ifeq ($(DISABLE_DYNLOADING),TRUE)
$(eval $(call gb_UnpackedTarball_add_patches,cppunit,\