Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/driver/cfa.cc

    rdffaeac r157d094  
    1010// Created On       : Tue Aug 20 13:44:49 2002
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jul 13 17:40:12 2018
    13 // Update Count     : 258
     12// Last Modified On : Mon May 14 14:16:33 2018
     13// Update Count     : 244
    1414//
    1515
     
    3737} // prefix
    3838
    39 enum { NumSuffixes = 2 };
    40 const string suffixes[NumSuffixes] = { "cfa", "hfa", };
    41 
    42 bool suffix( string arg ) {
    43         //std::cerr << arg << std::endl;
    44         size_t dot = arg.find_last_of( "." );
    45         //std::cerr << dot << " " << (dot != string::npos ? arg.substr( dot + 1 ) : "fred" ) << std::endl;
    46         if ( dot == string::npos ) return false;
    47         string sx = arg.substr( dot + 1 );
    48         for ( int i = 0; i < NumSuffixes; i += 1 ) {
    49                 if ( sx == suffixes[i] ) return true;
    50         } // for
    51         return false;
    52 } // suffix
    53 
    5439
    5540void shuffle( const char *args[], int S, int E, int N ) {
    5641        // S & E index 1 passed the end so adjust with -1
    57         #ifdef __DEBUG_H__
     42#ifdef __DEBUG_H__
    5843        cerr << "shuffle:" << S << " " << E << " " << N << endl;
    59         #endif // __DEBUG_H__
     44#endif // __DEBUG_H__
    6045        for ( int j = E-1 + N; j > S-1 + N; j -=1 ) {
    61                 #ifdef __DEBUG_H__
     46#ifdef __DEBUG_H__
    6247                cerr << "\t" << j << " " << j-N << endl;
    63                 #endif // __DEBUG_H__
     48#endif // __DEBUG_H__
    6449                args[j] = args[j-N];
    6550        } // for
     
    9479        bool std_flag = false;                                                          // -std= flag
    9580        bool noincstd_flag = false;                                                     // -no-include-stdhdr= flag
    96         bool xflag = false;                                                                     // user supplied -x flag
    9781        bool debugging __attribute(( unused )) = false;         // -g flag
    9882
     
    10488        int nlibs = 0;
    10589
    106         #ifdef __DEBUG_H__
     90#ifdef __DEBUG_H__
    10791        cerr << "CFA:" << endl;
    108         #endif // __DEBUG_H__
     92#endif // __DEBUG_H__
    10993
    11094        // process command-line arguments
    11195
    11296        for ( int i = 1; i < argc; i += 1 ) {
    113                 #ifdef __DEBUG_H__
     97#ifdef __DEBUG_H__
    11498                cerr << "argv[" << i << "]:\"" << argv[i] << "\"" << endl;
    115                 #endif // __DEBUG_H__
     99#endif // __DEBUG_H__
    116100                arg = argv[i];                                                                  // convert to string value
    117                 #ifdef __DEBUG_H__
     101#ifdef __DEBUG_H__
    118102                cerr << "arg:\"" << arg << "\"" << endl;
    119                 #endif // __DEBUG_H__
     103#endif // __DEBUG_H__
    120104                if ( prefix( arg, "-" ) ) {
    121105                        // pass through arguments
     
    178162                                args[nargs] = argv[i];                                  // pass the argument along
    179163                                nargs += 1;
    180                         } else if ( arg == "-x" ) {
    181                                 xflag = true;
     164                        } else if ( arg == "-x" ) {                                     // lost so force along
    182165                                args[nargs] = argv[i];                                  // pass the argument along
    183166                                nargs += 1;
     
    185168                                args[nargs] = argv[i];                                  // pass the argument along
    186169                                nargs += 1;
    187                                 // args[nargs] = ( *new string( string("-D__GCC_X__=") + argv[i] ) ).c_str(); // add the argument for -x
    188                                 // nargs += 1;
    189                         } else if ( prefix( arg, "-x" ) ) {
    190                                 xflag = true;
    191                                 args[nargs] = argv[i];                                  // pass the argument along
    192                                 nargs += 1;
    193                                 // args[nargs] = ( *new string( string("-D__GCC_X__=") + arg.substr(2) ) ).c_str(); // add the argument for -x
    194                                 // nargs += 1;
     170                                args[nargs] = ( *new string( string("-D__GCC_X__=") + argv[i] ) ).c_str(); // add the argument for -x
     171                                nargs += 1;
     172                        } else if ( prefix( arg, "-x" ) ) {                     // lost so force along
     173                                args[nargs] = argv[i];                                  // pass the argument along
     174                                nargs += 1;
     175                                args[nargs] = ( *new string( string("-D__GCC_X__=") + arg.substr(2) ) ).c_str(); // add the argument for -x
     176                                nargs += 1;
    195177                        } else if ( arg == "-w" ) {
    196178                                args[nargs] = argv[i];                                  // pass the argument along
     
    264246                        } // if
    265247                } else {
    266                         bool opt = false;
    267                         if ( ! xflag && suffix( arg ) ) {
    268                                 args[nargs] = "-x";
    269                                 nargs += 1;
    270                                 args[nargs] = "c";
    271                                 nargs += 1;
    272                                 // args[nargs] = ( *new string( string("-D__GCC_X__=c") ) ).c_str(); // add the argument for -x
    273                                 // nargs += 1;
    274                                 opt = true;
    275                         } // if
    276248                        // concatenate other arguments
    277249                        args[nargs] = argv[i];
    278250                        nargs += 1;
    279                         if ( opt ) {
    280                                 args[nargs] = "-x";
    281                                 nargs += 1;
    282                                 args[nargs] = "none";
    283                                 nargs += 1;
    284                                 // args[nargs] = ( *new string( string("-D__GCC_X__=none") ) ).c_str(); // add the argument for -x
    285                                 // nargs += 1;
    286                         } // if
    287251                        nonoptarg = true;
    288                         xflag = false;
    289252                } // if
    290253        } // for
    291254
    292         #ifdef __x86_64__
     255#ifdef __x86_64__
    293256        args[nargs] = "-mcx16";                                                         // allow double-wide CAA
    294257        nargs += 1;
    295         #endif // __x86_64__
    296 
    297         #ifdef __DEBUG_H__
     258#endif // __x86_64__
     259
     260#ifdef __DEBUG_H__
    298261        cerr << "args:";
    299262        for ( int i = 1; i < nargs; i += 1 ) {
     
    301264        } // for
    302265        cerr << endl;
    303         #endif // __DEBUG_H__
     266#endif // __DEBUG_H__
    304267
    305268        if ( cpp_flag && CFA_flag ) {
     
    320283        nargs += 1;
    321284
    322         #ifdef HAVE_LIBCFA
     285#ifdef HAVE_LIBCFA
    323286        if ( link ) {
    324287                #if ! defined(HAVE_LIBCFA_RELEASE)
    325                 if ( ! debug ) {
    326                         cerr << "error: Option -nodebug is unavailable, libcfa was not installed." << endl;
    327                         exit( EXIT_FAILURE );
    328                 } // if
     288                        if ( ! debug ) {
     289                                cerr << "error: Option -nodebug is unavailable, libcfa was not installed." << endl;
     290                                exit( EXIT_FAILURE );
     291                        } // if
    329292                #endif
    330293                #if ! defined(HAVE_LIBCFA_DEBUG)
    331                 if ( debug ) {
    332                         cerr << "error: Option -debug is unavailable, libcfa-d was not installed." << endl;
    333                         exit( EXIT_FAILURE );
    334                 } // if
     294                        if ( debug ) {
     295                                cerr << "error: Option -debug is unavailable, libcfa-d was not installed." << endl;
     296                                exit( EXIT_FAILURE );
     297                        } // if
    335298                #endif
    336299
     
    360323                nargs += 1;
    361324        } // if
    362         #endif // HAVE_LIBCFA
     325#endif // HAVE_LIBCFA
    363326
    364327        // Add exception flags (unconditionally)
     
    456419        args[nargs] = NULL;                                                                     // terminate with NULL
    457420
    458         #ifdef __DEBUG_H__
     421#ifdef __DEBUG_H__
    459422        cerr << "nargs: " << nargs << endl;
    460423        cerr << "args:" << endl;
     
    462425                cerr << " \"" << args[i] << "\"" << endl;
    463426        } // for
    464         #endif // __DEBUG_H__
     427#endif // __DEBUG_H__
    465428
    466429        if ( ! quiet ) {
Note: See TracChangeset for help on using the changeset viewer.