Changeset d029162
- Timestamp:
- May 6, 2016, 2:07:41 PM (7 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 9a92216
- Parents:
- 4e24610 (diff), 4acc87f (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Location:
- src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/driver/cc1.cc
r4e24610 rd029162 10 10 // Created On : Fri Aug 26 14:23:51 2005 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Jan 25 16:05:15201613 // Update Count : 5612 // Last Modified On : Thu May 5 16:04:30 2016 13 // Update Count : 77 14 14 // 15 15 … … 108 108 const char *args[argc + 100]; // leave space for 100 additional cpp command line values 109 109 int nargs = 1; // number of arguments in args list; 0 => command name 110 const char * uargs[20]; // leave space for 20 additional cfa-cpp command line values111 int n uargs = 1; // 0 => command name110 const char *cargs[20]; // leave space for 20 additional cfa-cpp command line values 111 int ncargs = 1; // 0 => command name 112 112 113 113 signal( SIGINT, sigTermHandler ); 114 114 signal( SIGTERM, sigTermHandler ); 115 116 #ifdef __DEBUG_H__ 117 cerr << "Stage1" << endl; 118 #endif // __DEBUG_H__ 115 119 116 120 // process all the arguments … … 153 157 CFA_flag = true; 154 158 } else if ( prefix( arg, D__CFA_FLAGPREFIX__ ) ) { 155 uargs[nuargs] = ( *new string( arg.substr( D__CFA_FLAGPREFIX__.size() ) ) ).c_str();156 n uargs += 1;159 cargs[ncargs] = ( *new string( arg.substr( D__CFA_FLAGPREFIX__.size() ) ) ).c_str(); 160 ncargs += 1; 157 161 } else if ( arg == "-D" && prefix( argv[i + 1], D__CFA_FLAGPREFIX__.substr(2) ) ) { 158 uargs[nuargs] = ( *new string( string( argv[i + 1] ).substr( D__CFA_FLAGPREFIX__.size() - 2 ) ) ).c_str();159 n uargs += 1;162 cargs[ncargs] = ( *new string( string( argv[i + 1] ).substr( D__CFA_FLAGPREFIX__.size() - 2 ) ) ).c_str(); 163 ncargs += 1; 160 164 i += 1; // and the argument 161 165 } else if ( prefix( arg, D__GCC_BPREFIX__ ) ) { … … 317 321 318 322 if ( fork() == 0 ) { // child runs CFA 319 uargs[0] = ( *new string( bprefix + "/cfa-cpp" ) ).c_str(); 320 321 uargs[nuargs] = tmpname; 322 nuargs += 1; 323 cargs[0] = ( *new string( bprefix + "/cfa-cpp" ) ).c_str(); 324 325 // Source file-name used to generate routine names containing global initializations for TU. 326 cargs[ncargs] = ( *new string( "-F" ) ).c_str(); 327 ncargs += 1; 328 cargs[ncargs] = ( *new string( string( cpp_in ) ) ).c_str(); 329 ncargs += 1; 330 331 cargs[ncargs] = tmpname; 332 ncargs += 1; 323 333 if ( o_name != NULL ) { 324 uargs[nuargs] = o_name;325 n uargs += 1;334 cargs[ncargs] = o_name; 335 ncargs += 1; 326 336 } else if ( ! CFA_flag ) { // run cfa-cpp ? 327 uargs[nuargs] = cpp_out;328 n uargs += 1;337 cargs[ncargs] = cpp_out; 338 ncargs += 1; 329 339 } // if 330 uargs[nuargs] = NULL; // terminate argument list331 332 #ifdef __DEBUG_H__ 333 cerr << "cfa-cpp n uargs: " << o_name << " " << CFA_flag << " " << nuargs << endl;334 for ( i = 0; uargs[i] != NULL; i += 1 ) {335 cerr << uargs[i] << " ";340 cargs[ncargs] = NULL; // terminate argument list 341 342 #ifdef __DEBUG_H__ 343 cerr << "cfa-cpp ncargs: " << o_name << " " << CFA_flag << " " << ncargs << endl; 344 for ( i = 0; cargs[i] != NULL; i += 1 ) { 345 cerr << cargs[i] << " "; 336 346 } // for 337 347 cerr << endl; 338 348 #endif // __DEBUG_H__ 339 349 340 execvp( uargs[0], (char * const *)uargs ); // should not return350 execvp( cargs[0], (char * const *)cargs ); // should not return 341 351 perror( "CFA Translator error: cpp level, execvp" ); 342 352 exit( EXIT_FAILURE ); … … 370 380 const char *args[argc + 100]; // leave space for 100 additional cfa command line values 371 381 int nargs = 1; // number of arguments in args list; 0 => command name 382 383 #ifdef __DEBUG_H__ 384 cerr << "Stage2" << endl; 385 #endif // __DEBUG_H__ 372 386 373 387 // process all the arguments … … 467 481 468 482 if ( arg == "-E" ) { 469 #ifdef __DEBUG_H__470 cerr << "Stage1" << endl;471 #endif // __DEBUG_H__472 483 Stage1( argc, argv ); 473 484 } else if ( arg == "-fpreprocessed" ) { 474 #ifdef __DEBUG_H__475 cerr << "Stage2" << endl;476 #endif // __DEBUG_H__477 485 Stage2( argc, argv ); 478 486 } else { -
src/main.cc
r4e24610 rd029162 10 10 // Created On : Fri May 15 23:12:02 2015 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed May 04 16:54:52201613 // Update Count : 19912 // Last Modified On : Fri May 06 14:04:49 2016 13 // Update Count : 203 14 14 // 15 15 … … 98 98 std::ostream *output = &std::cout; 99 99 int long_index; 100 std::list< Declaration* > translationUnit; 100 std::list< Declaration * > translationUnit; 101 const char *filename = NULL; 101 102 102 103 opterr = 0; // prevent getopt from printing error messages 103 104 104 105 int c; 105 while ( (c = getopt_long( argc, argv, "abefglnpqrstvyzD: ", long_opts, &long_index )) != -1 ) {106 while ( (c = getopt_long( argc, argv, "abefglnpqrstvyzD:F:", long_opts, &long_index )) != -1 ) { 106 107 switch ( c ) { 107 108 case Ast: … … 163 164 break; 164 165 case 'D': // ignore -Dxxx 166 break; 167 case 'F': // source file-name without suffix 168 filename = optarg; 165 169 break; 166 170 case '?': … … 173 177 174 178 try { 175 std::string fileName;176 177 179 // choose to read the program from a file or stdin 178 180 if ( optind < argc ) { … … 182 184 exit( 1 ); 183 185 } // if 186 // if running cfa-cpp directly, might forget to pass -F option (and really shouldn't have to) 187 if ( filename == NULL ) filename = argv[ optind ]; 184 188 optind += 1; 185 186 // assert( optind < argc );187 fileName = argv[ optind-1 ]; // placeholder188 // optind += 1;189 189 } else { 190 190 input = stdin; … … 259 259 CodeGen::fixNames( translationUnit ); 260 260 OPTPRINT( "fixGlobalInit" ); 261 InitTweak::fixGlobalInit( translationUnit, file Name );261 InitTweak::fixGlobalInit( translationUnit, filename ); 262 262 OPTPRINT( "tweak" ) 263 263 InitTweak::tweak( translationUnit );
Note: See TracChangeset
for help on using the changeset viewer.