Changeset 381bea6


Ignore:
Timestamp:
Aug 27, 2018, 5:53:45 PM (6 years ago)
Author:
Rob Schluntz <rschlunt@…>
Branches:
ADT, arm-eh, ast-experimental, cleanup-dtors, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
e5ea867
Parents:
b7c89aa (diff), 2a9d12d (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.
Message:

Merge branch 'master' into cleanup-dtors

Files:
12 added
4 edited

Legend:

Unmodified
Added
Removed
  • .gitignore

    rb7c89aa r381bea6  
    5656src/Parser/parser.h
    5757src/Parser/parser.hh
     58src/demangler
    5859
    5960tools/prettyprinter/parser.output
  • driver/as.cc

    rb7c89aa r381bea6  
    1010// Created On       : Wed Aug  1 10:49:42 2018
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Aug  2 17:50:09 2018
    13 // Update Count     : 90
     12// Last Modified On : Wed Aug 22 17:30:24 2018
     13// Update Count     : 93
    1414//
    1515
     
    2323
    2424//#define __DEBUG_H__
     25
     26#ifdef __DEBUG_H__
     27#include <iostream>
     28using namespace std;
     29#endif // __DEBUG_H__
    2530
    2631int main( const int argc, const char * argv[] ) {
  • driver/cc1.cc

    rb7c89aa r381bea6  
    1010// Created On       : Fri Aug 26 14:23:51 2005
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jul 19 10:46:11 2018
    13 // Update Count     : 111
     12// Last Modified On : Thu Aug 23 09:48:40 2018
     13// Update Count     : 122
    1414//
    1515
     
    4747const string suffixes[NumSuffixes] = { "cfa", "hfa", };
    4848
    49 bool suffix( string arg ) {
     49
     50void suffix( string arg, const char * args[], int & nargs ) {
    5051        //std::cerr << arg << std::endl;
    5152        size_t dot = arg.find_last_of( "." );
    5253        //std::cerr << dot << " " << (dot != string::npos ? arg.substr( dot + 1 ) : "fred" ) << std::endl;
    53         if ( dot == string::npos ) return false;
     54        if ( dot == string::npos ) return;
    5455        string sx = arg.substr( dot + 1 );
    5556        for ( int i = 0; i < NumSuffixes; i += 1 ) {
    56                 if ( sx == suffixes[i] ) return true;
    57         } // for
    58         return false;
     57                if ( sx == suffixes[i] ) {
     58                        args[nargs] = "-x";
     59                        nargs += 1;
     60                        args[nargs] = "c";
     61                        nargs += 1;
     62                        return;
     63                } // if
     64        } // for
    5965} // suffix
    6066
    6167
    62 void checkEnv( const char *args[], int &nargs ) {
     68void checkEnv( const char * args[], int & nargs ) {
    6369        char *value;
    6470
    65         value = getenv( "__COMPILER__" );
     71        value = getenv( "__CFA_COMPILER__" );
    6672        if ( value != NULL ) {
    6773                compiler_name = value;
     
    263269
    264270                args[0] = compiler_name.c_str();
     271                suffix( cpp_in, args, nargs );                                  // check suffix
    265272                args[nargs] = cpp_in;
    266273                nargs += 1;
     
    310317
    311318                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
     319                suffix( cpp_in, args, nargs );                                  // check suffix
    318320                args[nargs] = cpp_in;                                                   // input to cpp
    319321                nargs += 1;
     
    354356
    355357        if ( fork() == 0 ) {                                                            // child runs CFA
    356                 cargs[0] = ( *new string( bprefix + "/cfa-cpp" ) ).c_str();
     358                cargs[0] = ( *new string( bprefix + "cfa-cpp" ) ).c_str();
    357359
    358360                // Source file-name used to generate routine names containing global initializations for TU.
  • driver/cfa.cc

    rb7c89aa r381bea6  
    1010// Created On       : Tue Aug 20 13:44:49 2002
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Aug 10 18:17:58 2018
    13 // Update Count     : 259
     12// Last Modified On : Thu Aug 23 15:41:55 2018
     13// Update Count     : 270
    1414//
    1515
     
    4343const string suffixes[NumSuffixes] = { "cfa", "hfa", };
    4444
    45 bool suffix( string arg ) {
     45void suffix( string arg, const char * args[], int & nargs ) {
    4646        //std::cerr << arg << std::endl;
    4747        size_t dot = arg.find_last_of( "." );
    4848        //std::cerr << dot << " " << (dot != string::npos ? arg.substr( dot + 1 ) : "fred" ) << std::endl;
    49         if ( dot == string::npos ) return false;
     49        if ( dot == string::npos ) return;
    5050        string sx = arg.substr( dot + 1 );
    5151        for ( int i = 0; i < NumSuffixes; i += 1 ) {
    52                 if ( sx == suffixes[i] ) return true;
     52                if ( sx == suffixes[i] ) {
     53                        args[nargs] = "-x";
     54                        nargs += 1;
     55                        args[nargs] = "c";
     56                        nargs += 1;
     57                        return;
     58                } // if
    5359        } // for
    54         return false;
    5560} // suffix
    5661
     
    8691        string Major( str( CFA_VERSION_MAJOR ) ), Minor( str( CFA_VERSION_MINOR ) ), Patch( str( CFA_VERSION_PATCH ) );
    8792
    88         string installincdir( CFA_INCDIR );                         // fixed location of include files
    89         string installlibdir( CFA_LIBDIR );                         // fixed location of cc1 and cfa-cpp commands when installed
    90         string srcdriverdir ( TOP_BUILDDIR "driver");                // fixed location of cc1 and cfa-cpp commands when in tree
     93        string installincdir( CFA_INCDIR );                                     // fixed location of include files
     94        string installlibdir( CFA_LIBDIR );                                     // fixed location of cc1 and cfa-cpp commands when installed
     95        string srcdriverdir ( TOP_BUILDDIR "driver");           // fixed location of cc1 and cfa-cpp commands when in tree
    9196
    9297        string heading;                                                                         // banner printed at start of cfa compilation
     
    178183                                if ( i == argc ) continue;                              // next argument available ?
    179184                                compiler_path = argv[i];
    180                                 if ( putenv( (char *)( *new string( string( "__U_COMPILER__=" ) + argv[i]) ).c_str() ) != 0 ) {
     185                                if ( putenv( (char *)( *new string( string( "__CFA_COMPILER__=" ) + argv[i]) ).c_str() ) != 0 ) {
    181186                                        cerr << argv[0] << " error, cannot set environment variable." << endl;
    182187                                        exit( EXIT_FAILURE );
     
    294299                } else {
    295300                        bool opt = false;
    296                         if ( ! xflag && suffix( arg ) ) {
    297                                 args[nargs] = "-x";
    298                                 nargs += 1;
    299                                 args[nargs] = "c";
    300                                 nargs += 1;
     301                        if ( ! xflag ) {
     302                                suffix( arg, args, nargs );                             // check suffix
    301303                                // args[nargs] = ( *new string( string("-D__GCC_X__=c") ) ).c_str(); // add the argument for -x
    302304                                // nargs += 1;
     
    341343                args[nargs] = "-I" CFA_INCDIR;
    342344                nargs += 1;
    343                 if ( ! noincstd_flag ) {                                                        // do not use during build
    344                         args[nargs] = "-I" CFA_INCDIR "/stdhdr";
     345                if ( ! noincstd_flag ) {                                                // do not use during build
     346                        args[nargs] = "-I" CFA_INCDIR "stdhdr";
    345347                        nargs += 1;
    346348                } // if
    347                 args[nargs] = "-I" CFA_INCDIR "/concurrency";
    348                 nargs += 1;
    349                 args[nargs] = "-I" CFA_INCDIR "/containers";
     349                args[nargs] = "-I" CFA_INCDIR "concurrency";
     350                nargs += 1;
     351                args[nargs] = "-I" CFA_INCDIR "containers";
    350352                nargs += 1;
    351353        } else {
    352354                args[nargs] = "-I" TOP_SRCDIR "libcfa/src";
    353355                nargs += 1;
    354                 if ( ! noincstd_flag ) {                                                        // do not use during build
     356                if ( ! noincstd_flag ) {                                                // do not use during build
    355357                        args[nargs] = "-I" TOP_SRCDIR "libcfa/src" "/stdhdr";
    356358                        nargs += 1;
     
    377379        }
    378380
    379         const char * const arch = m32 ? CFA_32_CPU : (m64 ? CFA_64_CPU : CFA_DEFAULT_CPU);
     381        string arch = m32 ? CFA_32_CPU : (m64 ? CFA_64_CPU : CFA_DEFAULT_CPU);
     382        if ( ! m32 && ! m64 && arch == "x86" ) {                        // no override and 32-bit architecture
     383                args[nargs] = "-m32";
     384                nargs += 1;
     385        } // if
    380386        const char * config = debug ? "debug": "nodebug";
    381387        string libdir = libbase + arch + "-" + config;
    382         if( !dirExists(libdir) ) {
     388
     389        if ( ! dirExists( libdir ) ) {
    383390                cerr << argv[0] << " internal error, configuration " << config << " not installed." << endl;
    384391                cerr << "Was looking for " << libdir << endl;
    385392                libdir = libbase + arch + "-" + "nolib";
    386         }
    387 
    388         if( !dirExists(libdir) ) {
     393        } // if
     394
     395        if ( ! dirExists( libdir ) ) {
    389396                cerr << argv[0] << " internal error, cannot find prelude directory." << endl;
    390397                cerr << "Was looking for " << libdir << endl;
    391398                exit( EXIT_FAILURE );
    392         }
     399        } // if
    393400
    394401        args[nargs] = ( *new string( string("-D__CFA_FLAG__=--prelude-dir=" ) + libdir + (intree ? "/prelude" : "")) ).c_str();
     
    470477
    471478        if ( Bprefix.length() == 0 ) {
    472                 Bprefix = !intree ? installlibdir : srcdriverdir;
     479                Bprefix = ! intree ? installlibdir : srcdriverdir;
     480                if ( Bprefix[Bprefix.length() - 1] != '/' ) Bprefix += '/';
    473481                args[nargs] = ( *new string( string("-D__GCC_BPREFIX__=") + Bprefix ) ).c_str();
    474482                nargs += 1;
     
    504512                args[nargs] = "-D__int8_t_defined";                             // prevent gcc type-size attributes
    505513                nargs += 1;
    506                 args[nargs] = ( *new string( string("-B") + Bprefix + "/" ) ).c_str();
     514                args[nargs] = ( *new string( string("-B") + Bprefix ) ).c_str();
    507515                nargs += 1;
    508516                args[nargs] = "-lm";
Note: See TracChangeset for help on using the changeset viewer.