Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/CodeGen/CodeGenerator.cc

    r064e3ff r486341f  
    8383        }
    8484
    85         CodeGenerator::CodeGenerator( std::ostream & os ) : indent( *this), cur_indent( 0 ), insideFunction( false ), output( os ), printLabels( *this ) {}
     85        CodeGenerator::CodeGenerator( std::ostream & os, bool mangle ) : indent( *this), cur_indent( 0 ), insideFunction( false ), output( os ), printLabels( *this ), mangle( mangle ) {}
    8686
    8787        CodeGenerator::CodeGenerator( std::ostream & os, std::string init, int indentation, bool infunp )
     
    9595        }
    9696
    97         string mangleName( DeclarationWithType * decl ) {
     97        string CodeGenerator::mangleName( DeclarationWithType * decl ) {
     98                if ( ! mangle ) return decl->get_name();
    9899                if ( decl->get_mangleName() != "" ) {
    99100                        // need to incorporate scope level in order to differentiate names for destructors
     
    148149        void CodeGenerator::visit( ObjectDecl * objectDecl ) {
    149150                extension( objectDecl );
     151                genAttributes( objectDecl->get_attributes() );
     152
    150153                handleStorageClass( objectDecl );
    151154                output << genType( objectDecl->get_type(), mangleName( objectDecl ) );
     
    271274                printDesignators( init->get_designators() );
    272275                output << "{ ";
    273                 if ( init->begin_initializers() == init->end_initializers() ) {
     276                if ( init->begin() == init->end() ) {
    274277                        // illegal to leave initializer list empty for scalar initializers, but always legal to have 0
    275278                        output << "0";
    276279                } else {
    277                         genCommaList( init->begin_initializers(), init->end_initializers() );
     280                        genCommaList( init->begin(), init->end() );
    278281                } // if
    279282                output << " }";
     
    309312                                                        Type * type = InitTweak::getPointerBase( (*arg)->get_results().front() );
    310313                                                        assert( type );
    311                                                         newExpr->get_results().push_back( type );
     314                                                        newExpr->get_results().push_back( type->clone() );
    312315                                                        *arg = newExpr;
    313316                                                } // if
Note: See TracChangeset for help on using the changeset viewer.