Index: driver/as.cc
===================================================================
--- driver/as.cc	(revision c60e50946cae4e184f97d9820dbf62a9ce0f287f)
+++ driver/as.cc	(revision 813dfd86811c81bf957ebaf66f16848f36825be6)
@@ -11,6 +11,6 @@
 // Created On       : Wed Aug  1 10:49:42 2018
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Sep  8 08:40:16 2018
-// Update Count     : 97
+// Last Modified On : Mon Dec  6 16:57:45 2021
+// Update Count     : 104
 //
 
@@ -48,8 +48,9 @@
 		if ( start == (void *)-1 ) { perror( "mmap" ); exit( EXIT_FAILURE ); };
 
-		if ( char * cursor = strstr( start, ".Ldebug_info0:" ) ) { // debug information ?
+		if ( char * dcursor = strstr( start, ".Ldebug_info0:" ) ) { // debug information ?
 			// Expand file by one byte to hold 2 character Cforall language code.
 			if ( ftruncate( fd, size + 1 ) ) { perror( "ftruncate" ); exit( EXIT_FAILURE ); };
 
+			char * cursor = dcursor;
 			for ( int i = 0; i < 8; i += 1 ) {			// move N (magic) lines forward
 				cursor = strstr( cursor, "\n" ) + 1;
@@ -57,5 +58,10 @@
 
 			cursor -= 2;								// backup over "c\n" language value
-			if ( *(cursor - 1) != 'x' ) { fprintf( stderr, "invalid C language code\n" ); exit( EXIT_FAILURE ); };
+			if ( *(cursor - 1) != 'x' ) {				// 0x before code
+				fprintf( stderr, "*** ERROR *** Invalid C language code found in assembler file: %s\n"
+						 "Assembler debug information:\n%.*s",
+						 argv[argc - 1], (int)(cursor - dcursor) + 2, dcursor );
+				exit( EXIT_FAILURE );
+			};
 
 			memmove( cursor + 2, cursor + 1, start + size - cursor - 1 ); // move remaining text 1 character right
