Index: driver/as.cc
===================================================================
--- driver/as.cc	(revision 63f2697285850ff938a9e87a34b857611c35ce02)
+++ driver/as.cc	(revision 130a7785ae9541990654248874f6b041c99f2c76)
@@ -11,6 +11,6 @@
 // Created On       : Wed Aug  1 10:49:42 2018
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Dec  7 16:56:24 2021
-// Update Count     : 115
+// Last Modified On : Tue Dec  7 20:49:15 2021
+// Update Count     : 121
 //
 
@@ -51,11 +51,16 @@
 		if ( (dcursor = strstr( start, ".Ldebug_info0:" ) ) ) { // debug information ?
 
-			if ( char * cursor = strstr( dcursor, ".long\t.LASF" ) ) { // debug information ?
+			if ( char * cursor = strstr( dcursor, ".long\t.LASF" ) ) { // language code ?
 				for ( int i = 0; i < 2; i += 1 ) {		// move N (magic) lines forward
 					cursor = strstr( cursor, "\n" ) + 1;
 				} // for
-
-				cursor -= 2;							// backup over "c\n" language value
-				if ( *(cursor - 1) != 'x' ) {			// 0x before code
+				cursor -= 1;							// backup over '\n'
+				if ( (*(cursor - 3) == '0' && *(cursor - 2) == 'x' && *(cursor - 1) == 'c') ) { // 0xc => C99
+					// Expand file by one byte to hold 2 character Cforall language code.
+					if ( ftruncate( fd, size + 1 ) ) { perror( "ftruncate" ); exit( EXIT_FAILURE ); };
+					memmove( cursor + 1, cursor, start + size - cursor ); // move remaining text 1 character right
+				} else if ( *(cursor - 4) == '0' && *(cursor - 3) == 'x' && *(cursor - 2) == '1' && *(cursor - 1) == 'd' ) { // 0x1d => C11
+					// replace "1d" with "25"
+				} else {
 					for ( int i = 0; i < 6; i += 1 ) {	// move N (magic) lines forward
 						cursor = strstr( cursor, "\n" ) + 1;
@@ -65,13 +70,8 @@
 							 argv[argc - 1], (int)(cursor - dcursor), dcursor );
 					exit( EXIT_FAILURE );
-				};
+				} // if
 
-				// Expand file by one byte to hold 2 character Cforall language code.
-				if ( ftruncate( fd, size + 1 ) ) { perror( "ftruncate" ); exit( EXIT_FAILURE ); };
-
-				memmove( cursor + 2, cursor + 1, start + size - cursor - 1 ); // move remaining text 1 character right
-
-				*(cursor) = '2';						// replace C language value with CFA
-				*(cursor + 1) = '5';
+				*(cursor - 2) = '2';					// replace C/C11 language value with CFA
+				*(cursor - 1) = '5';
 			} // if
 		} // if
