Index: libcfa/src/iostream.cfa
===================================================================
--- libcfa/src/iostream.cfa	(revision 896f083fddb861c71049ab70105420ce1b2344ac)
+++ libcfa/src/iostream.cfa	(revision ffa48a8bcd17b272b20f1563ed18140df52053e1)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Jul 16 07:43:31 2020
-// Update Count     : 1102
+// Last Modified On : Mon Jul 20 15:00:37 2020
+// Update Count     : 1124
 //
 
@@ -167,6 +167,10 @@
 	#define P10_UINT64 10_000_000_000_000_000_000_ULL	// 19 zeroes
 
-	static void base10_128( ostype & os, unsigned int128 val ) {
+	static inline void base10_128( ostype & os, unsigned int128 val ) {
+#if defined(__GNUC__) && __GNUC_PREREQ(7,0)				// gcc version >= 7
 		if ( val > P10_UINT64 ) {
+#else
+		if ( (uint64_t)(val >> 64) != 0 || (uint64_t)val > P10_UINT64 ) { // patch gcc 5 & 6 -O3 bug
+#endif // __GNUC_PREREQ(7,0)
 			base10_128( os, val / P10_UINT64 );			// recursive
 			fmt( os, "%.19lu", (uint64_t)(val % P10_UINT64) );
@@ -176,5 +180,5 @@
 	} // base10_128
 
-	static void base10_128( ostype & os, int128 val ) {
+	static inline void base10_128( ostype & os, int128 val ) {
 		if ( val < 0 ) {
 			fmt( os, "-" );								// leading negative sign
