Changes in driver/cc1.cc [bf71cfd:bec4d24]
- File:
-
- 1 edited
-
driver/cc1.cc (modified) (18 diffs)
Legend:
- Unmodified
- Added
- Removed
-
driver/cc1.cc
rbf71cfd rbec4d24 10 10 // Created On : Fri Aug 26 14:23:51 2005 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jul 19 10:46:11201813 // Update Count : 1 1112 // Last Modified On : Mon Sep 3 16:57:05 2018 13 // Update Count : 125 14 14 // 15 15 … … 32 32 string compiler_name( CFA_BACKEND_CC ); // path/name of C compiler 33 33 34 string D__GCC_X__( "-D__GCC_X__=" );35 34 string D__GCC_BPREFIX__( "-D__GCC_BPREFIX__=" ); 36 35 string D__CFA_FLAGPREFIX__( "-D__CFA_FLAG__=" ); … … 47 46 const string suffixes[NumSuffixes] = { "cfa", "hfa", }; 48 47 49 bool suffix( string arg) {48 void suffix( string arg, const char * args[], int & nargs ) { 50 49 //std::cerr << arg << std::endl; 51 50 size_t dot = arg.find_last_of( "." ); 52 51 //std::cerr << dot << " " << (dot != string::npos ? arg.substr( dot + 1 ) : "fred" ) << std::endl; 53 if ( dot == string::npos ) return false;52 if ( dot == string::npos ) return; 54 53 string sx = arg.substr( dot + 1 ); 55 54 for ( int i = 0; i < NumSuffixes; i += 1 ) { 56 if ( sx == suffixes[i] ) return true; 57 } // for 58 return false; 55 if ( sx == suffixes[i] ) { 56 args[nargs] = "-x"; 57 nargs += 1; 58 args[nargs] = "c"; 59 nargs += 1; 60 return; 61 } // if 62 } // for 59 63 } // suffix 60 64 61 65 62 void checkEnv( const char * args[], int &nargs ) {66 void checkEnv( const char * args[], int & nargs ) { 63 67 char *value; 64 68 65 value = getenv( "__C OMPILER__" );69 value = getenv( "__CFA_COMPILER__" ); 66 70 if ( value != NULL ) { 67 71 compiler_name = value; … … 110 114 void Stage1( const int argc, const char * const argv[] ) { 111 115 int code; 112 int i;113 116 114 117 string arg; … … 133 136 cerr << "Stage1" << endl; 134 137 #endif // __DEBUG_H__ 138 checkEnv( args, nargs ); // arguments passed via environment variables 139 #ifdef __DEBUG_H__ 140 for ( int i = 1; i < argc; i += 1 ) { 141 cerr << "argv[" << i << "]:\"" << argv[i] << "\"" << endl; 142 } // for 143 #endif // __DEBUG_H__ 135 144 136 145 // process all the arguments 137 146 138 checkEnv( args, nargs ); // arguments passed via environment variables 139 140 for ( i = 1; i < argc; i += 1 ) { 141 #ifdef __DEBUG_H__ 142 cerr << "argv[" << i << "]:\"" << argv[i] << "\"" << endl; 143 #endif // __DEBUG_H__ 147 for ( int i = 1; i < argc; i += 1 ) { 144 148 arg = argv[i]; 145 #ifdef __DEBUG_H__146 cerr << "arg:\"" << arg << "\"" << endl;147 #endif // __DEBUG_H__148 149 if ( prefix( arg, "-" ) ) { 149 150 // strip g++ flags that are inappropriate or cause duplicates in subsequent passes … … 179 180 ncargs += 1; 180 181 i += 1; // and the argument 181 // } else if ( prefix( arg, D__GCC_X__ ) ) {182 // args[nargs] = "-x";183 // nargs += 1;184 // args[nargs] = ( *new string( arg.substr( D__GCC_X__.size() ) ) ).c_str(); // pass the flag along185 // nargs += 1;186 // } else if ( arg == "-D" && prefix( argv[i + 1], D__GCC_X__.substr(2) ) ) {187 // args[nargs] = "-x";188 // nargs += 1;189 // args[nargs] = ( *new string( string( argv[i + 1] ).substr( D__GCC_X__.size() - 2 ) ) ).c_str(); // pass the flag along190 // nargs += 1;191 // i += 1; // and the argument192 182 } else if ( prefix( arg, D__GCC_BPREFIX__ ) ) { 193 183 bprefix = arg.substr( D__GCC_BPREFIX__.size() ); … … 245 235 #ifdef __DEBUG_H__ 246 236 cerr << "args:"; 247 for ( i = 1; i < nargs; i += 1 ) {237 for ( int i = 1; i < nargs; i += 1 ) { 248 238 cerr << " " << args[i]; 249 239 } // for … … 263 253 264 254 args[0] = compiler_name.c_str(); 255 suffix( cpp_in, args, nargs ); // check suffix 265 256 args[nargs] = cpp_in; 266 257 nargs += 1; … … 275 266 #ifdef __DEBUG_H__ 276 267 cerr << "nargs: " << nargs << endl; 277 for ( i = 0; args[i] != NULL; i += 1 ) {268 for ( int i = 0; args[i] != NULL; i += 1 ) { 278 269 cerr << args[i] << " "; 279 270 } // for … … 310 301 311 302 args[0] = compiler_name.c_str(); 312 if ( suffix( cpp_in ) ) { 313 args[nargs] = "-x"; 314 nargs += 1; 315 args[nargs] = "c"; 316 nargs += 1; 317 } // if 303 suffix( cpp_in, args, nargs ); // check suffix 318 304 args[nargs] = cpp_in; // input to cpp 319 305 nargs += 1; … … 322 308 #ifdef __DEBUG_H__ 323 309 cerr << "cpp nargs: " << nargs << endl; 324 for ( i = 0; args[i] != NULL; i += 1 ) {310 for ( int i = 0; args[i] != NULL; i += 1 ) { 325 311 cerr << args[i] << " "; 326 312 } // for … … 354 340 355 341 if ( fork() == 0 ) { // child runs CFA 356 cargs[0] = ( *new string( bprefix + " /cfa-cpp" ) ).c_str();342 cargs[0] = ( *new string( bprefix + "cfa-cpp" ) ).c_str(); 357 343 358 344 // Source file-name used to generate routine names containing global initializations for TU. … … 375 361 #ifdef __DEBUG_H__ 376 362 cerr << "cfa-cpp ncargs: " << o_name << " " << CFA_flag << " " << ncargs << endl; 377 for ( i = 0; cargs[i] != NULL; i += 1 ) {363 for ( int i = 0; cargs[i] != NULL; i += 1 ) { 378 364 cerr << cargs[i] << " "; 379 365 } // for … … 405 391 406 392 void Stage2( const int argc, const char * const * argv ) { 407 int i;408 409 393 string arg; 410 394 … … 417 401 cerr << "Stage2" << endl; 418 402 #endif // __DEBUG_H__ 403 checkEnv( args, nargs ); // arguments passed via environment variables 404 #ifdef __DEBUG_H__ 405 for ( int i = 1; i < argc; i += 1 ) { 406 cerr << "argv[" << i << "]:\"" << argv[i] << "\"" << endl; 407 } // for 408 #endif // __DEBUG_H__ 419 409 420 410 // process all the arguments 421 411 422 checkEnv( args, nargs ); // arguments passed via environment variables 423 424 for ( i = 1; i < argc; i += 1 ) { 425 #ifdef __DEBUG_H__ 426 cerr << "argv[" << i << "]:\"" << argv[i] << "\"" << endl; 427 #endif // __DEBUG_H__ 412 for ( int i = 1; i < argc; i += 1 ) { 428 413 arg = argv[i]; 429 #ifdef __DEBUG_H__430 cerr << "arg:\"" << arg << "\"" << endl;431 #endif // __DEBUG_H__432 414 if ( prefix( arg, "-" ) ) { 433 415 // strip inappropriate flags … … 474 456 #ifdef __DEBUG_H__ 475 457 cerr << "args:"; 476 for ( i = 1; i < nargs; i += 1 ) {458 for ( int i = 1; i < nargs; i += 1 ) { 477 459 cerr << " " << args[i]; 478 460 } // for … … 490 472 #ifdef __DEBUG_H__ 491 473 cerr << "stage2 nargs: " << nargs << endl; 492 for ( i = 0; args[i] != NULL; i += 1 ) {474 for ( int i = 0; args[i] != NULL; i += 1 ) { 493 475 cerr << args[i] << " "; 494 476 } // for … … 504 486 int main( const int argc, const char * const argv[], __attribute__((unused)) const char * const env[] ) { 505 487 #ifdef __DEBUG_H__ 506 for ( int i = 0; env[i] != NULL; i += 1 ) {488 for ( int int i = 0; env[i] != NULL; i += 1 ) { 507 489 cerr << env[i] << endl; 508 490 } // for
Note:
See TracChangeset
for help on using the changeset viewer.