Changes in / [7d94d805:86c934a]


Ignore:
Location:
src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/GenPoly/Lvalue.cc

    r7d94d805 r86c934a  
    465465                                        return ret;
    466466                                }
     467                        } else if ( CastExpr * castExpr = dynamic_cast< CastExpr * > ( arg ) ) {
     468                                // need to move cast to pointer type out a level since address of pointer
     469                                // is not valid C code (can be introduced in prior passes, e.g., InstantiateGeneric)
     470                                if ( InitTweak::getPointerBase( castExpr->result ) ) {
     471                                        addrExpr->arg = castExpr->arg;
     472                                        castExpr->arg = addrExpr;
     473                                        castExpr->result = new PointerType( Type::Qualifiers(), castExpr->result );
     474                                        return castExpr;
     475                                }
    467476                        }
    468477                        return addrExpr;
  • src/main.cc

    r7d94d805 r86c934a  
    8080        exprp = false,
    8181        expraltp = false,
     82        genericsp = false,
    8283        libcfap = false,
    8384        nopreludep = false,
     
    320321                OPTPRINT("instantiateGenerics")
    321322                GenPoly::instantiateGeneric( translationUnit );
     323                if ( genericsp ) {
     324                        dump( translationUnit );
     325                        return 0;
     326                }
    322327                OPTPRINT( "convertLvalue" )
    323328                GenPoly::convertLvalue( translationUnit );
    324329
     330
    325331                if ( bboxp ) {
    326332                        dump( translationUnit );
     
    340346
    341347                CodeTools::fillLocations( translationUnit );
     348                OPTPRINT( "codegen" )
    342349                CodeGen::generate( translationUnit, *output, ! noprotop, prettycodegenp, true, linemarks );
    343350
    344351                CodeGen::FixMain::fix( *output, treep ? "../prelude/bootloader.c" : CFA_LIBDIR "/bootloader.c" );
     352                OPTPRINT( "end" )
    345353
    346354                if ( output != &cout ) {
     
    407415
    408416        int c;
    409         while ( (c = getopt_long( argc, argv, "abBcCdefglLmnNpqrstTvyzZD:F:", long_opts, &long_index )) != -1 ) {
     417        while ( (c = getopt_long( argc, argv, "abBcCdefgGlLmnNpqrstTvyzZD:F:", long_opts, &long_index )) != -1 ) {
    410418                switch ( c ) {
    411419                  case Ast:
     
    442450                  case 'g':                                                                             // bison debugging info (grammar rules)
    443451                        yydebug = true;
     452                        break;
     453                  case 'G':                   // dump AST after instantiate generics
     454                        genericsp = true;
    444455                        break;
    445456                  case LibCFA:
Note: See TracChangeset for help on using the changeset viewer.