Index: src/include/cassert
===================================================================
--- src/include/cassert	(revision 8abee1363a22131d712a8c5c3c31f39aa20d872c)
+++ src/include/cassert	(revision f685679ccf556a852ac2dfac5c217d0fcf9ca7f1)
@@ -9,7 +9,7 @@
 // Author           : Peter A. Buhr
 // Created On       : Thu Aug 18 13:19:26 2016
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Aug  1 11:56:01 2017
-// Update Count     : 16
+// Last Modified By : Andrew Beach
+// Last Modified On : Thu May 23 15:30:00 2017
+// Update Count     : 17
 //
 
@@ -43,6 +43,11 @@
 #endif
 
-template<typename T, typename U>
-static inline __attribute__((nonnull)) T strict_dynamic_cast( const U & src ) {
+enum StrictAllowNull {NonNull, AllowNull};
+
+template<typename T, StrictAllowNull nullable = NonNull, typename U>
+static inline T strict_dynamic_cast( const U & src ) {
+	if (nullable == AllowNull && src == nullptr) {
+		return nullptr;
+	}
 	assert(src);
 	T ret = dynamic_cast<T>(src);
