Index: src/Common/utility.h
===================================================================
--- src/Common/utility.h	(revision fb16d5c2233951d7eeba58c1cb3de31029d98a82)
+++ src/Common/utility.h	(revision 7ca8441cae61d82ae1ba90cb5e023df1ae2d6bd8)
@@ -441,13 +441,18 @@
 
 template<typename T>
-inline constexpr T ilog2(const T & t) {
-	if ( std::is_integral<T>::value ) {
+inline
+#if __GNUC__ > 4
+constexpr
+#endif
+T ilog2(const T & t) {
+	if(std::is_integral<T>::value) {
 		const constexpr int r = sizeof(t) * __CHAR_BIT__ - 1;
-		if ( sizeof(T) == sizeof(unsigned int ) ) return r - __builtin_clz( t );
-		if ( sizeof(T) == sizeof(unsigned long) ) return r - __builtin_clzl( t );
-		if ( sizeof(T) == sizeof(unsigned long long) ) return r - __builtin_clzll( t );
-	} // if
+		if( sizeof(T) == sizeof(unsigned       int) ) return r - __builtin_clz  ( t );
+		if( sizeof(T) == sizeof(unsigned      long) ) return r - __builtin_clzl ( t );
+		if( sizeof(T) == sizeof(unsigned long long) ) return r - __builtin_clzll( t );
+	}
+	assert(false);
 	return -1;
-} // ilong2
+} // iLog2
 
 
