Index: libcfa/prelude/builtins.c
===================================================================
--- libcfa/prelude/builtins.c	(revision a3d3efc972482110240329dc73c7d3f57a96e914)
+++ libcfa/prelude/builtins.c	(revision dbe8e31c64cb8baf7c809362de907d2cc13b8381)
@@ -10,6 +10,6 @@
 // Created On       : Fri Jul 21 16:21:03 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Jul  8 22:43:14 2020
-// Update Count     : 105
+// Last Modified On : Sun Jul 12 10:40:57 2020
+// Update Count     : 107
 //
 
@@ -95,8 +95,10 @@
 static inline forall( dtype DT ) DT * intptr( uintptr_t addr ) { return (DT *)addr; }
 
+#if __SIZEOF_POINTER__ == 8								// 64-bit mode
 // constructor for 128-bit numbers (all constants are unsigned as +/- are operators)
 static inline void ?{}( unsigned int128 & this, unsigned long int h, unsigned long int l ) {
 	this = (unsigned int128)h << 64 | (unsigned int128)l;
 } // ?{}
+#endif // 64-bit mode
 
 // exponentiation operator implementation
Index: src/Parser/ExpressionNode.cc
===================================================================
--- src/Parser/ExpressionNode.cc	(revision a3d3efc972482110240329dc73c7d3f57a96e914)
+++ src/Parser/ExpressionNode.cc	(revision dbe8e31c64cb8baf7c809362de907d2cc13b8381)
@@ -10,6 +10,6 @@
 // Created On       : Sat May 16 13:17:07 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Jul 11 16:44:49 2020
-// Update Count     : 1034
+// Last Modified On : Sun Jul 12 08:15:12 2020
+// Update Count     : 1039
 //
 
@@ -185,4 +185,8 @@
 
 	// Cannot be just "0"/"1"; sscanf stops at the suffix, if any; value goes over the wall => always generate
+
+#if __SIZEOF_POINTER__ == 8								// 64-bit mode
+	if ( type == 5 ) SemanticError( yylloc, "int128 constant is not supported on this target " + str );
+#endif // 64-bit mode
 	
 	if ( str[0] == '0' ) {								// radix character ?
@@ -215,4 +219,5 @@
 			if ( type < 5 ) {							// not L128 ?
 				sscanf( (char *)str.c_str(), "%llo", &v );
+#if __SIZEOF_POINTER__ == 8								// 64-bit mode
 			} else {									// octal int128 constant
 				unsigned int len = str.length();
@@ -240,4 +245,5 @@
 					str = buf;
 				} // if
+#endif // 64-bit mode
 			} // if
 			//printf( "%#llo %llu\n", v, v );
@@ -246,4 +252,5 @@
 		if ( type < 5 ) {								// not L128 ?
 			sscanf( (char *)str.c_str(), "%llu", &v );
+#if __SIZEOF_POINTER__ == 8								// 64-bit mode
 		} else {										// decimal int128 constant
 			#define P10_UINT64 10'000'000'000'000'000'000ULL // 19 zeroes
@@ -273,4 +280,5 @@
 				str = buf;
 			} // if
+#endif // 64-bit mode
 		} // if
 		//printf( "%llu\n", v );
