Index: driver/cc1.cc
===================================================================
--- driver/cc1.cc	(revision 7c8246d867f7b610be8221b2a38ff71d995b33e8)
+++ driver/cc1.cc	(revision 0bf5340a5746391f536eae5f3f11ca78878925ec)
@@ -10,6 +10,6 @@
 // Created On       : Fri Aug 26 14:23:51 2005
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Aug 30 15:36:42 2019
-// Update Count     : 377
+// Last Modified On : Mon Sep  9 17:50:53 2019
+// Update Count     : 384
 //
 
@@ -58,5 +58,5 @@
 
 
-static string __CFA_FLAGPREFIX__( "__CFA_FLAG" );
+static string __CFA_FLAGPREFIX__( "__CFA_FLAG" );		// "N__=" suffix
 
 static void checkEnv1( const char * args[], int & nargs ) { // stage 1
@@ -70,5 +70,5 @@
 
 		if ( prefix( arg, __CFA_FLAGPREFIX__ ) ) {
-			string val( arg.substr( __CFA_FLAGPREFIX__.size() + 4 ) );
+			string val( arg.substr( arg.find_first_of( "=" ) + 1 ) );
 			if ( prefix( val, "-compiler=" ) ) {
 				compiler_path = val.substr( 10 );
@@ -89,5 +89,5 @@
 
 		if ( prefix( arg, __CFA_FLAGPREFIX__ ) ) {
-			string val( arg.substr( __CFA_FLAGPREFIX__.size() + 4 ) );
+			string val( arg.substr( arg.find_first_of( "=" ) + 1 ) );
 			if ( prefix( val, "-compiler=" ) ) {
 				compiler_path = val.substr( 10 );
@@ -101,5 +101,5 @@
 				bprefix = val.substr( 3 );
 			} else {									// normal flag for cfa-cpp
-				args[nargs++] = ( *new string( arg.substr( __CFA_FLAGPREFIX__.size() + 4 ) ) ).c_str();
+				args[nargs++] = ( *new string( arg.substr( arg.find_first_of( "=" ) + 1 ) ) ).c_str();
 			} // if
 		} // if
@@ -108,5 +108,5 @@
 
 
-static char tmpname[] = P_tmpdir "/CFAXXXXXX.i";
+static char tmpname[] = P_tmpdir "/CFAXXXXXX.ifa";
 static int tmpfilefd = -1;
 static bool startrm = false;
@@ -414,5 +414,5 @@
 			} // if
 		} else {
-			tmpfilefd = mkstemps( tmpname, 2 );
+			tmpfilefd = mkstemps( tmpname, 4 );
 			if ( tmpfilefd == -1 ) {
 				perror( "CC1 Translator error: stage 2, mkstemp" );
@@ -487,8 +487,7 @@
 		args[0] = compiler_path.c_str();
 		args[nargs++] = "-S";							// only compile and put assembler output in specified file
-		if ( save_temps ) {								// make gcc accept .ifa suffix
-			args[nargs++] = "-x";
-			args[nargs++] = "cpp-output";
-		} // if
+		args[nargs++] = "-x";
+		args[nargs++] = "cpp-output";
+
 		args[nargs++] = cfa_cpp_out.c_str();
 		args[nargs] = nullptr;							// terminate argument list
@@ -509,7 +508,7 @@
 
 	wait( &code );										// wait for child to finish
+	rmtmpfile();										// remove tmpname
 
 	if ( WIFSIGNALED(code) ) {							// child failed ?
-		rmtmpfile();									// remove tmpname
 		cerr << "CC1 Translator error: stage 2, child failed " << WTERMSIG(code) << endl;
 		exit( EXIT_FAILURE );
@@ -520,5 +519,4 @@
 	#endif // __DEBUG_H__
 
-	rmtmpfile();										// remove tmpname
 	exit( WEXITSTATUS( code ) );						// stop regardless of success or failure
 } // Stage2
Index: driver/cfa.cc
===================================================================
--- driver/cfa.cc	(revision 7c8246d867f7b610be8221b2a38ff71d995b33e8)
+++ driver/cfa.cc	(revision 0bf5340a5746391f536eae5f3f11ca78878925ec)
@@ -10,6 +10,6 @@
 // Created On       : Tue Aug 20 13:44:49 2002
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Aug 27 06:11:24 2019
-// Update Count     : 416
+// Last Modified On : Mon Sep  9 17:57:40 2019
+// Update Count     : 417
 //
 
@@ -36,8 +36,10 @@
 
 
+static string __CFA_FLAGPREFIX__( "__CFA_FLAG" );		// "N__=" suffix
+
 void Putenv( char * argv[], string arg ) {
 	static int flags = 0;								// environment variables must have unique names
 
-	if ( putenv( (char *)( *new string( string( "__CFA_FLAG" + to_string( flags++ ) + "__=" ) + arg ) ).c_str() ) ) {
+	if ( putenv( (char *)( *new string( string( __CFA_FLAGPREFIX__ + to_string( flags++ ) + "__=" ) + arg ) ).c_str() ) ) {
 		cerr << argv[0] << " error, cannot set environment variable." << endl;
 		exit( EXIT_FAILURE );
