Changes in / [807d8c3:6a8df56]


Ignore:
Location:
src
Files:
1 deleted
21 edited

Legend:

Unmodified
Added
Removed
  • src/Common/PassVisitor.impl.h

    r807d8c3 r6a8df56  
    20132013}
    20142014
    2015 
     2015//--------------------------------------------------------------------------
     2016// VoidType
    20162017template< typename pass_type >
    20172018void PassVisitor< pass_type >::visit( VoidType * node ) {
     
    20322033}
    20332034
     2035//--------------------------------------------------------------------------
     2036// BasicType
    20342037template< typename pass_type >
    20352038void PassVisitor< pass_type >::visit( BasicType * node ) {
    2036         VISIT_BODY( node );
    2037 }
    2038 
     2039        VISIT_START( node );
     2040
     2041        maybeAccept_impl( node->forall, *this );
     2042
     2043        VISIT_END( node );
     2044}
     2045
     2046template< typename pass_type >
     2047Type * PassVisitor< pass_type >::mutate( BasicType * node ) {
     2048        MUTATE_START( node );
     2049
     2050        maybeMutate_impl( node->forall, *this );
     2051
     2052        MUTATE_END( Type, node );
     2053}
     2054
     2055//--------------------------------------------------------------------------
     2056// PointerType
    20392057template< typename pass_type >
    20402058void PassVisitor< pass_type >::visit( PointerType * node ) {
    2041         VISIT_BODY( node );
    2042 }
    2043 
     2059        VISIT_START( node );
     2060
     2061        maybeAccept_impl( node->forall, *this );
     2062        // xxx - should PointerType visit/mutate dimension?
     2063        maybeAccept_impl( node->base, *this );
     2064
     2065        VISIT_END( node );
     2066}
     2067
     2068template< typename pass_type >
     2069Type * PassVisitor< pass_type >::mutate( PointerType * node ) {
     2070        MUTATE_START( node );
     2071
     2072        maybeMutate_impl( node->forall, *this );
     2073        // xxx - should PointerType visit/mutate dimension?
     2074        maybeMutate_impl( node->base, *this );
     2075
     2076        MUTATE_END( Type, node );
     2077}
     2078
     2079//--------------------------------------------------------------------------
     2080// ArrayType
    20442081template< typename pass_type >
    20452082void PassVisitor< pass_type >::visit( ArrayType * node ) {
    2046         VISIT_BODY( node );
    2047 }
    2048 
     2083        VISIT_START( node );
     2084
     2085        maybeAccept_impl( node->forall, *this );
     2086        maybeAccept_impl( node->dimension, *this );
     2087        maybeAccept_impl( node->base, *this );
     2088
     2089        VISIT_END( node );
     2090}
     2091
     2092template< typename pass_type >
     2093Type * PassVisitor< pass_type >::mutate( ArrayType * node ) {
     2094        MUTATE_START( node );
     2095
     2096        maybeMutate_impl( node->forall, *this );
     2097        maybeMutate_impl( node->dimension, *this );
     2098        maybeMutate_impl( node->base, *this );
     2099
     2100        MUTATE_END( Type, node );
     2101}
     2102
     2103//--------------------------------------------------------------------------
     2104// ReferenceType
    20492105template< typename pass_type >
    20502106void PassVisitor< pass_type >::visit( ReferenceType * node ) {
    2051         VISIT_BODY( node );
    2052 }
    2053 
     2107        VISIT_START( node );
     2108
     2109        maybeAccept_impl( node->forall, *this );
     2110        maybeAccept_impl( node->base, *this );
     2111
     2112        VISIT_END( node );
     2113}
     2114
     2115template< typename pass_type >
     2116Type * PassVisitor< pass_type >::mutate( ReferenceType * node ) {
     2117        MUTATE_START( node );
     2118
     2119        maybeMutate_impl( node->forall, *this );
     2120        maybeMutate_impl( node->base, *this );
     2121
     2122        MUTATE_END( Type, node );
     2123}
     2124
     2125//--------------------------------------------------------------------------
     2126// FunctionType
    20542127template< typename pass_type >
    20552128void PassVisitor< pass_type >::visit( FunctionType * node ) {
    2056         VISIT_BODY( node );
     2129        VISIT_START( node );
     2130
     2131        maybeAccept_impl( node->forall, *this );
     2132        maybeAccept_impl( node->returnVals, *this );
     2133        maybeAccept_impl( node->parameters, *this );
     2134
     2135        VISIT_END( node );
     2136}
     2137
     2138template< typename pass_type >
     2139Type * PassVisitor< pass_type >::mutate( FunctionType * node ) {
     2140        MUTATE_START( node );
     2141
     2142        maybeMutate_impl( node->forall, *this );
     2143        maybeMutate_impl( node->returnVals, *this );
     2144        maybeMutate_impl( node->parameters, *this );
     2145
     2146        MUTATE_END( Type, node );
    20572147}
    20582148
     
    21252215template< typename pass_type >
    21262216void PassVisitor< pass_type >::visit( EnumInstType * node ) {
    2127         VISIT_BODY( node );
     2217        VISIT_START( node );
     2218
     2219        maybeAccept_impl( node->forall, *this );
     2220        maybeAccept_impl( node->parameters, *this );
     2221
     2222        VISIT_END( node );
    21282223}
    21292224
    21302225template< typename pass_type >
    21312226Type * PassVisitor< pass_type >::mutate( EnumInstType * node ) {
    2132         MUTATE_BODY( Type, node );
     2227        MUTATE_START( node );
     2228
     2229        maybeMutate_impl( node->forall, *this );
     2230        maybeMutate_impl( node->parameters, *this );
     2231
     2232        MUTATE_END( Type, node );
    21332233}
    21342234
     
    21592259template< typename pass_type >
    21602260void PassVisitor< pass_type >::visit( TypeInstType * node ) {
    2161         VISIT_BODY( node );
    2162 }
     2261        VISIT_START( node );
     2262
     2263        maybeAccept_impl( node->forall    , *this );
     2264        maybeAccept_impl( node->parameters, *this );
     2265
     2266        VISIT_END( node );
     2267}
     2268
     2269template< typename pass_type >
     2270Type * PassVisitor< pass_type >::mutate( TypeInstType * node ) {
     2271        MUTATE_START( node );
     2272
     2273        maybeMutate_impl( node->forall    , *this );
     2274        maybeMutate_impl( node->parameters, *this );
     2275
     2276        MUTATE_END( Type, node );
     2277}
     2278
    21632279
    21642280template< typename pass_type >
     
    22582374
    22592375template< typename pass_type >
    2260 Type * PassVisitor< pass_type >::mutate( BasicType * node ) {
    2261         MUTATE_BODY( Type, node );
    2262 }
    2263 
    2264 template< typename pass_type >
    2265 Type * PassVisitor< pass_type >::mutate( PointerType * node ) {
    2266         MUTATE_BODY( Type, node );
    2267 }
    2268 
    2269 template< typename pass_type >
    2270 Type * PassVisitor< pass_type >::mutate( ArrayType * node ) {
    2271         MUTATE_BODY( Type, node );
    2272 }
    2273 
    2274 template< typename pass_type >
    2275 Type * PassVisitor< pass_type >::mutate( ReferenceType * node ) {
    2276         MUTATE_BODY( Type, node );
    2277 }
    2278 
    2279 template< typename pass_type >
    2280 Type * PassVisitor< pass_type >::mutate( FunctionType * node ) {
    2281         MUTATE_BODY( Type, node );
    2282 }
    2283 
    2284 template< typename pass_type >
    2285 Type * PassVisitor< pass_type >::mutate( TypeInstType * node ) {
    2286         MUTATE_BODY( Type, node );
    2287 }
    2288 
    2289 template< typename pass_type >
    22902376Type * PassVisitor< pass_type >::mutate( TupleType * node ) {
    22912377        MUTATE_BODY( Type, node );
  • src/Concurrency/Keywords.cc

    r807d8c3 r6a8df56  
    2525#include "InitTweak/InitTweak.h"   // for getPointerBase
    2626#include "Parser/LinkageSpec.h"    // for Cforall
    27 #include "SymTab/AddVisit.h"       // for acceptAndAdd
    2827#include "SynTree/Constant.h"      // for Constant
    2928#include "SynTree/Declaration.h"   // for StructDecl, FunctionDecl, ObjectDecl
  • src/InitTweak/InitTweak.cc

    r807d8c3 r6a8df56  
    296296                ObjectDecl * objDecl = dynamic_cast< ObjectDecl * >( dwt );
    297297                if ( ! objDecl ) return false;
    298                 return ! LinkageSpec::isBuiltin( objDecl->get_linkage() ) &&
    299                         (objDecl->get_init() == nullptr ||
     298                return (objDecl->get_init() == nullptr ||
    300299                                ( objDecl->get_init() != nullptr && objDecl->get_init()->get_maybeConstructed() ))
    301300                        && ! objDecl->get_storageClasses().is_extern
  • src/ResolvExpr/AlternativeFinder.cc

    r807d8c3 r6a8df56  
    204204        } // namespace
    205205
    206         void referenceToRvalueConversion( Expression *& expr ) {
     206        void referenceToRvalueConversion( Expression *& expr, Cost & cost ) {
    207207                if ( dynamic_cast< ReferenceType * >( expr->get_result() ) ) {
    208208                        // cast away reference from expr
    209209                        expr = new CastExpr( expr, expr->get_result()->stripReferences()->clone() );
     210                        cost.incReference();
    210211                }
    211212        }
     
    435436                                        PRINT( std::cerr << "end of formals with varargs function: inc unsafe: " << convCost << std::endl; ; )
    436437                                        // convert reference-typed expressions to value-typed expressions
    437                                         referenceToRvalueConversion( *actualExpr );
     438                                        referenceToRvalueConversion( *actualExpr, convCost );
    438439                                        continue;
    439440                                } else {
     
    565566                                // DOESN'T WORK: grandchild nodes conflict with their cousins
    566567                                //if ( newNeedParents[ curDecl->get_uniqueId() ][ candDecl->get_uniqueId() ]++ > recursionParentLimit ) continue;
    567                                 Expression *varExpr = data.combine();
     568
     569                                Expression *varExpr = data.combine( newerAlt.cvtCost );
    568570                                delete varExpr->get_result();
    569571                                varExpr->set_result( adjType->clone() );
     
    11211123                                        if ( FunctionType *function = dynamic_cast< FunctionType* >( pointer->get_base() ) ) {
    11221124                                                Alternative newFunc( *func );
    1123                                                 referenceToRvalueConversion( newFunc.expr );
     1125                                                referenceToRvalueConversion( newFunc.expr, newFunc.cost );
    11241126                                                makeFunctionAlternatives( newFunc, function, argExpansions,
    11251127                                                        std::back_inserter( candidates ) );
     
    11301132                                                if ( FunctionType *function = dynamic_cast< FunctionType* >( eqvClass.type ) ) {
    11311133                                                        Alternative newFunc( *func );
    1132                                                         referenceToRvalueConversion( newFunc.expr );
     1134                                                        referenceToRvalueConversion( newFunc.expr, newFunc.cost );
    11331135                                                        makeFunctionAlternatives( newFunc, function, argExpansions,
    11341136                                                                std::back_inserter( candidates ) );
     
    11601162                                                                dynamic_cast<FunctionType*>( pointer->get_base() ) ) {
    11611163                                                        Alternative newFunc( *funcOp );
    1162                                                         referenceToRvalueConversion( newFunc.expr );
     1164                                                        referenceToRvalueConversion( newFunc.expr, newFunc.cost );
    11631165                                                        makeFunctionAlternatives( newFunc, function, argExpansions,
    11641166                                                                std::back_inserter( candidates ) );
     
    13441346                for ( AltList::const_iterator agg = funcFinder.alternatives.begin(); agg != funcFinder.alternatives.end(); ++agg ) {
    13451347                        // it's okay for the aggregate expression to have reference type -- cast it to the base type to treat the aggregate as the referenced value
    1346                         std::unique_ptr<Expression> aggrExpr( agg->expr->clone() );
    1347                         Type * aggrType = aggrExpr->get_result();
    1348                         if ( dynamic_cast< ReferenceType * >( aggrType ) ) {
    1349                                 aggrType = aggrType->stripReferences();
    1350                                 aggrExpr.reset( new CastExpr( aggrExpr.release(), aggrType->clone() ) );
    1351                         }
     1348                        Cost cost = agg->cost;
     1349                        Expression * aggrExpr = agg->expr->clone();
     1350                        referenceToRvalueConversion( aggrExpr, cost );
     1351                        std::unique_ptr<Expression> guard( aggrExpr );
     1352
    13521353                        // find member of the given type
    13531354                        if ( StructInstType *structInst = dynamic_cast< StructInstType* >( aggrExpr->get_result() ) ) {
    1354                                 addAggMembers( structInst, aggrExpr.get(), agg->cost, agg->env, memberExpr->get_member() );
     1355                                addAggMembers( structInst, aggrExpr, cost, agg->env, memberExpr->get_member() );
    13551356                        } else if ( UnionInstType *unionInst = dynamic_cast< UnionInstType* >( aggrExpr->get_result() ) ) {
    1356                                 addAggMembers( unionInst, aggrExpr.get(), agg->cost, agg->env, memberExpr->get_member() );
     1357                                addAggMembers( unionInst, aggrExpr, cost, agg->env, memberExpr->get_member() );
    13571358                        } else if ( TupleType * tupleType = dynamic_cast< TupleType * >( aggrExpr->get_result() ) ) {
    1358                                 addTupleMembers( tupleType, aggrExpr.get(), agg->cost, agg->env, memberExpr->get_member() );
     1359                                addTupleMembers( tupleType, aggrExpr, cost, agg->env, memberExpr->get_member() );
    13591360                        } // if
    13601361                } // for
     
    13701371                PRINT( std::cerr << "nameExpr is " << nameExpr->name << std::endl; )
    13711372                for ( auto & data : declList ) {
    1372                         Expression * newExpr = data.combine();
    1373                         // xxx - add in extra cost for with-statement exprs?
    1374                         alternatives.push_back( Alternative( newExpr, env, Cost::zero ) );
     1373                        Cost cost = Cost::zero;
     1374                        Expression * newExpr = data.combine( cost );
     1375                        alternatives.push_back( Alternative( newExpr, env, Cost::zero, cost ) );
    13751376                        PRINT(
    13761377                                std::cerr << "decl is ";
     
    14121413                        // return the lowest cost alternative for the argument
    14131414                        Alternative &choice = winners.front();
    1414                         referenceToRvalueConversion( choice.expr );
     1415                        referenceToRvalueConversion( choice.expr, choice.cost );
    14151416                        alternatives.push_back( Alternative( new SizeofExpr( choice.expr->clone() ), choice.env, Cost::zero ) );
    14161417                } // if
     
    14331434                        // return the lowest cost alternative for the argument
    14341435                        Alternative &choice = winners.front();
    1435                         referenceToRvalueConversion( choice.expr );
     1436                        referenceToRvalueConversion( choice.expr, choice.cost );
    14361437                        alternatives.push_back( Alternative( new AlignofExpr( choice.expr->clone() ), choice.env, Cost::zero ) );
    14371438                } // if
     
    14851486                        AltList & alternatives = finder.get_alternatives();
    14861487                        if ( typesCompatibleIgnoreQualifiers( argType, function->get_parameters().front()->get_type(), indexer, env ) ) {
    1487                                 alternatives.push_back( Alternative( new AttrExpr( data.combine(), argType->clone() ), env, Cost::zero ) );
     1488                                Cost cost = Cost::zero;
     1489                                Expression * newExpr = data.combine( cost );
     1490                                alternatives.push_back( Alternative( new AttrExpr( newExpr, argType->clone() ), env, Cost::zero, cost ) );
    14881491                                for ( DeclarationWithType * retVal : function->returnVals ) {
    14891492                                        alternatives.back().expr->result = retVal->get_type()->clone();
     
    15221525                } else {
    15231526                        for ( auto & data : attrList ) {
    1524                                 alternatives.push_back( Alternative( data.combine(), env, Cost::zero ) );
     1527                                Cost cost = Cost::zero;
     1528                                Expression * newExpr = data.combine( cost );
     1529                                alternatives.push_back( Alternative( newExpr, env, Cost::zero, cost ) );
    15251530                                renameTypes( alternatives.back().expr );
    15261531                        } // for
  • src/ResolvExpr/ConversionCost.cc

    r807d8c3 r6a8df56  
    170170        Cost convertToReferenceCost( Type * src, ReferenceType * dest, const SymTab::Indexer & indexer, const TypeEnvironment & env, PtrsFunction func ) {
    171171                int sdepth = src->referenceDepth(), ddepth = dest->referenceDepth();
    172                 return convertToReferenceCost( src, dest, sdepth-ddepth, indexer, env, func );
     172                Cost cost = convertToReferenceCost( src, dest, sdepth-ddepth, indexer, env, func );
     173                PRINT( std::cerr << "convertToReferenceCost result: " << cost << std::endl; )
     174                return cost;
    173175        }
    174176
  • src/ResolvExpr/Resolver.cc

    r807d8c3 r6a8df56  
    526526                                        Alternative newFunc( func );
    527527                                        // Strip reference from function
    528                                         referenceToRvalueConversion( newFunc.expr );
     528                                        referenceToRvalueConversion( newFunc.expr, newFunc.cost );
    529529
    530530                                        // For all the set of arguments we have try to match it with the parameter of the current function alternative
  • src/ResolvExpr/typeops.h

    r807d8c3 r6a8df56  
    106106
    107107        // in AlternativeFinder.cc
    108         void referenceToRvalueConversion( Expression *& expr );
     108        void referenceToRvalueConversion( Expression *& expr, Cost & cost );
    109109
    110110        // flatten tuple type into list of types
  • src/SymTab/Autogen.cc

    r807d8c3 r6a8df56  
    2424#include <vector>                  // for vector
    2525
    26 #include "AddVisit.h"              // for addVisit
    2726#include "CodeGen/OperatorTable.h" // for isCtorDtor, isCtorDtorAssign
    2827#include "Common/PassVisitor.h"    // for PassVisitor
  • src/SymTab/Indexer.cc

    r807d8c3 r6a8df56  
    603603                                        if ( dynamic_cast< StructInstType * >( t ) || dynamic_cast< UnionInstType * >( t ) ) {
    604604                                                Expression * base = expr->clone();
    605                                                 ResolvExpr::referenceToRvalueConversion( base );
     605                                                ResolvExpr::Cost cost = ResolvExpr::Cost::zero; // xxx - carry this cost into the indexer as a base cost?
     606                                                ResolvExpr::referenceToRvalueConversion( base, cost );
    606607                                                addMembers( t->getAggr(), new MemberExpr( dwt, base ), handleConflicts );
    607608                                        }
     
    705706        }
    706707
    707         Expression * Indexer::IdData::combine() const {
     708        Expression * Indexer::IdData::combine( ResolvExpr::Cost & cost ) const {
    708709                Expression * ret = nullptr;
    709710                if ( baseExpr ) {
    710711                        Expression * base = baseExpr->clone();
    711                         ResolvExpr::referenceToRvalueConversion( base );
     712                        ResolvExpr::referenceToRvalueConversion( base, cost );
    712713                        ret = new MemberExpr( id, base );
    713714                        // xxx - this introduces hidden environments, for now remove them.
  • src/SymTab/Indexer.h

    r807d8c3 r6a8df56  
    2323#include "SynTree/Visitor.h"  // for Visitor
    2424#include "SynTree/SynTree.h"  // for AST nodes
     25
     26namespace ResolvExpr {
     27class Cost;
     28}
    2529
    2630namespace SymTab {
     
    5155                        IdData( DeclarationWithType * id, Expression * baseExpr, BaseSyntaxNode * deleteStmt ) : id( id ), baseExpr( baseExpr ), deleteStmt( deleteStmt ) {}
    5256
    53                         Expression * combine() const;
     57                        Expression * combine( ResolvExpr::Cost & cost ) const;
    5458                };
    5559
  • src/SymTab/Validate.cc

    r807d8c3 r6a8df56  
    6060#include "Parser/LinkageSpec.h"        // for C
    6161#include "ResolvExpr/typeops.h"        // for typesCompatible
    62 #include "SymTab/AddVisit.h"           // for addVisit
    6362#include "SymTab/Autogen.h"            // for SizeType
    6463#include "SynTree/Attribute.h"         // for noAttributes, Attribute
  • src/SynTree/Mutator.cc

    r807d8c3 r6a8df56  
    3232
    3333Mutator::~Mutator() {}
    34 
    35 DeclarationWithType * Mutator::mutate( ObjectDecl *objectDecl ) {
    36         objectDecl->set_type( maybeMutate( objectDecl->get_type(), *this ) );
    37         objectDecl->set_init( maybeMutate( objectDecl->get_init(), *this ) );
    38         objectDecl->set_bitfieldWidth( maybeMutate( objectDecl->get_bitfieldWidth(), *this ) );
    39         mutateAll( objectDecl->attributes, *this );
    40         return objectDecl;
    41 }
    42 
    43 DeclarationWithType * Mutator::mutate( FunctionDecl *functionDecl ) {
    44         functionDecl->set_functionType( maybeMutate( functionDecl->get_functionType(), *this ) );
    45         functionDecl->set_statements( maybeMutate( functionDecl->get_statements(), *this ) );
    46         mutateAll( functionDecl->attributes, *this );
    47         return functionDecl;
    48 }
    49 
    50 Declaration * Mutator::handleAggregateDecl( AggregateDecl *aggregateDecl ) {
    51         mutateAll( aggregateDecl->get_parameters(), *this );
    52         mutateAll( aggregateDecl->get_members(), *this );
    53         return aggregateDecl;
    54 }
    55 
    56 Declaration * Mutator::mutate( StructDecl *aggregateDecl ) {
    57         handleAggregateDecl( aggregateDecl );
    58         return aggregateDecl;
    59 }
    60 
    61 Declaration * Mutator::mutate( UnionDecl *aggregateDecl ) {
    62         handleAggregateDecl( aggregateDecl );
    63         return aggregateDecl;
    64 }
    65 
    66 Declaration * Mutator::mutate( EnumDecl *aggregateDecl ) {
    67         handleAggregateDecl( aggregateDecl );
    68         return aggregateDecl;
    69 }
    70 
    71 Declaration * Mutator::mutate( TraitDecl *aggregateDecl ) {
    72         handleAggregateDecl( aggregateDecl );
    73         return aggregateDecl;
    74 }
    75 
    76 Declaration * Mutator::handleNamedTypeDecl( NamedTypeDecl *typeDecl ) {
    77         mutateAll( typeDecl->get_parameters(), *this );
    78         mutateAll( typeDecl->get_assertions(), *this );
    79         typeDecl->set_base( maybeMutate( typeDecl->get_base(), *this ) );
    80         return typeDecl;
    81 }
    82 
    83 Declaration * Mutator::mutate( TypeDecl *typeDecl ) {
    84         handleNamedTypeDecl( typeDecl );
    85         typeDecl->set_init( maybeMutate( typeDecl->get_init(), *this ) );
    86         return typeDecl;
    87 }
    88 
    89 Declaration * Mutator::mutate( TypedefDecl *typeDecl ) {
    90         handleNamedTypeDecl( typeDecl );
    91         return typeDecl;
    92 }
    93 
    94 AsmDecl * Mutator::mutate( AsmDecl *asmDecl ) {
    95         asmDecl->set_stmt( maybeMutate( asmDecl->get_stmt(), *this ) );
    96         return asmDecl;
    97 }
    98 
    99 
    100 CompoundStmt * Mutator::mutate( CompoundStmt *compoundStmt ) {
    101         mutateAll( compoundStmt->get_kids(), *this );
    102         return compoundStmt;
    103 }
    104 
    105 Statement * Mutator::mutate( ExprStmt *exprStmt ) {
    106         exprStmt->set_expr( maybeMutate( exprStmt->get_expr(), *this ) );
    107         return exprStmt;
    108 }
    109 
    110 Statement * Mutator::mutate( AsmStmt *asmStmt ) {
    111         asmStmt->set_instruction( maybeMutate( asmStmt->get_instruction(), *this ) );
    112         mutateAll( asmStmt->get_output(), *this );
    113         mutateAll( asmStmt->get_input(), *this );
    114         mutateAll( asmStmt->get_clobber(), *this );
    115         return asmStmt;
    116 }
    117 
    118 Statement * Mutator::mutate( IfStmt *ifStmt ) {
    119         mutateAll( ifStmt->get_initialization(), *this );
    120         ifStmt->set_condition( maybeMutate( ifStmt->get_condition(), *this ) );
    121         ifStmt->set_thenPart( maybeMutate( ifStmt->get_thenPart(), *this ) );
    122         ifStmt->set_elsePart( maybeMutate( ifStmt->get_elsePart(), *this ) );
    123         return ifStmt;
    124 }
    125 
    126 Statement * Mutator::mutate( WhileStmt *whileStmt ) {
    127         whileStmt->set_condition( maybeMutate( whileStmt->get_condition(), *this ) );
    128         whileStmt->set_body( maybeMutate( whileStmt->get_body(), *this ) );
    129         return whileStmt;
    130 }
    131 
    132 Statement * Mutator::mutate( ForStmt *forStmt ) {
    133         mutateAll( forStmt->get_initialization(), *this );
    134         forStmt->set_condition( maybeMutate( forStmt->get_condition(), *this ) );
    135         forStmt->set_increment( maybeMutate( forStmt->get_increment(), *this ) );
    136         forStmt->set_body( maybeMutate( forStmt->get_body(), *this ) );
    137         return forStmt;
    138 }
    139 
    140 Statement * Mutator::mutate( SwitchStmt *switchStmt ) {
    141         switchStmt->set_condition( maybeMutate( switchStmt->get_condition(), *this ) );
    142         mutateAll( switchStmt->get_statements(), *this );
    143         return switchStmt;
    144 }
    145 
    146 Statement * Mutator::mutate( CaseStmt *caseStmt ) {
    147         caseStmt->set_condition( maybeMutate( caseStmt->get_condition(), *this ) );
    148         mutateAll (caseStmt->get_statements(), *this );
    149 
    150         return caseStmt;
    151 }
    152 
    153 Statement * Mutator::mutate( BranchStmt *branchStmt ) {
    154         return branchStmt;
    155 }
    156 
    157 Statement * Mutator::mutate( ReturnStmt *returnStmt ) {
    158         returnStmt->set_expr( maybeMutate( returnStmt->get_expr(), *this ) );
    159         return returnStmt;
    160 }
    161 
    162 Statement * Mutator::mutate( ThrowStmt *throwStmt ) {
    163         throwStmt->set_expr( maybeMutate( throwStmt->get_expr(), *this ) );
    164         throwStmt->set_target( maybeMutate( throwStmt->get_target(), *this ) );
    165         return throwStmt;
    166 }
    167 
    168 Statement * Mutator::mutate( TryStmt *tryStmt ) {
    169         tryStmt->set_block( maybeMutate( tryStmt->get_block(), *this ) );
    170         mutateAll( tryStmt->get_catchers(), *this );
    171         tryStmt->set_finally( maybeMutate( tryStmt->get_finally(), *this ) );
    172         return tryStmt;
    173 }
    174 
    175 Statement * Mutator::mutate( CatchStmt *catchStmt ) {
    176         catchStmt->set_decl( maybeMutate( catchStmt->get_decl(), *this ) );
    177         catchStmt->set_cond( maybeMutate( catchStmt->get_cond(), *this ) );
    178         catchStmt->set_body( maybeMutate( catchStmt->get_body(), *this ) );
    179         return catchStmt;
    180 }
    181 
    182 Statement * Mutator::mutate( FinallyStmt *finalStmt ) {
    183         finalStmt->set_block( maybeMutate( finalStmt->get_block(), *this ) );
    184         return finalStmt;
    185 }
    186 
    187 Statement * Mutator::mutate( WaitForStmt *waitforStmt ) {
    188         for( auto & clause : waitforStmt->clauses ) {
    189                 clause.target.function = maybeMutate( clause.target.function, *this );
    190                 mutateAll( clause.target.arguments, *this );
    191 
    192                 clause.statement = maybeMutate( clause.statement, *this );
    193                 clause.condition = maybeMutate( clause.condition, *this );
    194         }
    195 
    196         waitforStmt->timeout.time      = maybeMutate( waitforStmt->timeout.time, *this );
    197         waitforStmt->timeout.statement = maybeMutate( waitforStmt->timeout.statement, *this );
    198         waitforStmt->timeout.condition = maybeMutate( waitforStmt->timeout.condition, *this );
    199         waitforStmt->orelse.statement  = maybeMutate( waitforStmt->orelse.statement, *this );
    200         waitforStmt->orelse.condition  = maybeMutate( waitforStmt->orelse.condition, *this );
    201 
    202         return waitforStmt;
    203 }
    204 
    205 Statement * Mutator::mutate( WithStmt * withStmt ) {
    206         mutateAll( withStmt->exprs, *this );
    207         withStmt->stmt = maybeMutate( withStmt->stmt, *this );
    208         return withStmt;
    209 }
    210 
    211 NullStmt * Mutator::mutate( NullStmt *nullStmt ) {
    212         return nullStmt;
    213 }
    214 
    215 Statement * Mutator::mutate( DeclStmt *declStmt ) {
    216         declStmt->set_decl( maybeMutate( declStmt->get_decl(), *this ) );
    217         return declStmt;
    218 }
    219 
    220 Statement * Mutator::mutate( ImplicitCtorDtorStmt *impCtorDtorStmt ) {
    221         impCtorDtorStmt->set_callStmt( maybeMutate( impCtorDtorStmt->get_callStmt(), *this ) );
    222         return impCtorDtorStmt;
    223 }
    224 
    225 
    226 Expression * Mutator::mutate( ApplicationExpr *applicationExpr ) {
    227         applicationExpr->set_env( maybeMutate( applicationExpr->get_env(), *this ) );
    228         applicationExpr->set_result( maybeMutate( applicationExpr->get_result(), *this ) );
    229         applicationExpr->set_function( maybeMutate( applicationExpr->get_function(), *this ) );
    230         mutateAll( applicationExpr->get_args(), *this );
    231         return applicationExpr;
    232 }
    233 
    234 Expression * Mutator::mutate( UntypedExpr *untypedExpr ) {
    235         untypedExpr->set_env( maybeMutate( untypedExpr->get_env(), *this ) );
    236         untypedExpr->set_result( maybeMutate( untypedExpr->get_result(), *this ) );
    237         mutateAll( untypedExpr->get_args(), *this );
    238         return untypedExpr;
    239 }
    240 
    241 Expression * Mutator::mutate( NameExpr *nameExpr ) {
    242         nameExpr->set_env( maybeMutate( nameExpr->get_env(), *this ) );
    243         nameExpr->set_result( maybeMutate( nameExpr->get_result(), *this ) );
    244         return nameExpr;
    245 }
    246 
    247 Expression * Mutator::mutate( AddressExpr *addressExpr ) {
    248         addressExpr->set_env( maybeMutate( addressExpr->get_env(), *this ) );
    249         addressExpr->set_result( maybeMutate( addressExpr->get_result(), *this ) );
    250         addressExpr->set_arg( maybeMutate( addressExpr->get_arg(), *this ) );
    251         return addressExpr;
    252 }
    253 
    254 Expression * Mutator::mutate( LabelAddressExpr *labelAddressExpr ) {
    255         labelAddressExpr->set_env( maybeMutate( labelAddressExpr->get_env(), *this ) );
    256         labelAddressExpr->set_result( maybeMutate( labelAddressExpr->get_result(), *this ) );
    257         return labelAddressExpr;
    258 }
    259 
    260 Expression * Mutator::mutate( CastExpr *castExpr ) {
    261         castExpr->set_env( maybeMutate( castExpr->get_env(), *this ) );
    262         castExpr->set_result( maybeMutate( castExpr->get_result(), *this ) );
    263         castExpr->set_arg( maybeMutate( castExpr->get_arg(), *this ) );
    264         return castExpr;
    265 }
    266 
    267 Expression * Mutator::mutate( VirtualCastExpr *castExpr ) {
    268         castExpr->set_env( maybeMutate( castExpr->get_env(), *this ) );
    269         castExpr->set_result( maybeMutate( castExpr->get_result(), *this ) );
    270         castExpr->set_arg( maybeMutate( castExpr->get_arg(), *this ) );
    271         return castExpr;
    272 }
    273 
    274 Expression * Mutator::mutate( UntypedMemberExpr *memberExpr ) {
    275         memberExpr->set_env( maybeMutate( memberExpr->get_env(), *this ) );
    276         memberExpr->set_result( maybeMutate( memberExpr->get_result(), *this ) );
    277         memberExpr->set_aggregate( maybeMutate( memberExpr->get_aggregate(), *this ) );
    278         memberExpr->set_member( maybeMutate( memberExpr->get_member(), *this ) );
    279         return memberExpr;
    280 }
    281 
    282 Expression * Mutator::mutate( MemberExpr *memberExpr ) {
    283         memberExpr->set_env( maybeMutate( memberExpr->get_env(), *this ) );
    284         memberExpr->set_result( maybeMutate( memberExpr->get_result(), *this ) );
    285         memberExpr->set_aggregate( maybeMutate( memberExpr->get_aggregate(), *this ) );
    286         return memberExpr;
    287 }
    288 
    289 Expression * Mutator::mutate( VariableExpr *variableExpr ) {
    290         variableExpr->set_env( maybeMutate( variableExpr->get_env(), *this ) );
    291         variableExpr->set_result( maybeMutate( variableExpr->get_result(), *this ) );
    292         return variableExpr;
    293 }
    294 
    295 Expression * Mutator::mutate( ConstantExpr *constantExpr ) {
    296         constantExpr->set_env( maybeMutate( constantExpr->get_env(), *this ) );
    297         constantExpr->set_result( maybeMutate( constantExpr->get_result(), *this ) );
    298 //  maybeMutate( constantExpr->get_constant(), *this )
    299         return constantExpr;
    300 }
    301 
    302 Expression * Mutator::mutate( SizeofExpr *sizeofExpr ) {
    303         sizeofExpr->set_env( maybeMutate( sizeofExpr->get_env(), *this ) );
    304         sizeofExpr->set_result( maybeMutate( sizeofExpr->get_result(), *this ) );
    305         if ( sizeofExpr->get_isType() ) {
    306                 sizeofExpr->set_type( maybeMutate( sizeofExpr->get_type(), *this ) );
    307         } else {
    308                 sizeofExpr->set_expr( maybeMutate( sizeofExpr->get_expr(), *this ) );
    309         }
    310         return sizeofExpr;
    311 }
    312 
    313 Expression * Mutator::mutate( AlignofExpr *alignofExpr ) {
    314         alignofExpr->set_env( maybeMutate( alignofExpr->get_env(), *this ) );
    315         alignofExpr->set_result( maybeMutate( alignofExpr->get_result(), *this ) );
    316         if ( alignofExpr->get_isType() ) {
    317                 alignofExpr->set_type( maybeMutate( alignofExpr->get_type(), *this ) );
    318         } else {
    319                 alignofExpr->set_expr( maybeMutate( alignofExpr->get_expr(), *this ) );
    320         }
    321         return alignofExpr;
    322 }
    323 
    324 Expression * Mutator::mutate( UntypedOffsetofExpr *offsetofExpr ) {
    325         offsetofExpr->set_env( maybeMutate( offsetofExpr->get_env(), *this ) );
    326         offsetofExpr->set_result( maybeMutate( offsetofExpr->get_result(), *this ) );
    327         offsetofExpr->set_type( maybeMutate( offsetofExpr->get_type(), *this ) );
    328         return offsetofExpr;
    329 }
    330 
    331 Expression * Mutator::mutate( OffsetofExpr *offsetofExpr ) {
    332         offsetofExpr->set_env( maybeMutate( offsetofExpr->get_env(), *this ) );
    333         offsetofExpr->set_result( maybeMutate( offsetofExpr->get_result(), *this ) );
    334         offsetofExpr->set_type( maybeMutate( offsetofExpr->get_type(), *this ) );
    335         offsetofExpr->set_member( maybeMutate( offsetofExpr->get_member(), *this ) );
    336         return offsetofExpr;
    337 }
    338 
    339 Expression * Mutator::mutate( OffsetPackExpr *offsetPackExpr ) {
    340         offsetPackExpr->set_env( maybeMutate( offsetPackExpr->get_env(), *this ) );
    341         offsetPackExpr->set_result( maybeMutate( offsetPackExpr->get_result(), *this ) );
    342         offsetPackExpr->set_type( maybeMutate( offsetPackExpr->get_type(), *this ) );
    343         return offsetPackExpr;
    344 }
    345 
    346 Expression * Mutator::mutate( AttrExpr *attrExpr ) {
    347         attrExpr->set_env( maybeMutate( attrExpr->get_env(), *this ) );
    348         attrExpr->set_result( maybeMutate( attrExpr->get_result(), *this ) );
    349         if ( attrExpr->get_isType() ) {
    350                 attrExpr->set_type( maybeMutate( attrExpr->get_type(), *this ) );
    351         } else {
    352                 attrExpr->set_expr( maybeMutate( attrExpr->get_expr(), *this ) );
    353         }
    354         return attrExpr;
    355 }
    356 
    357 Expression * Mutator::mutate( LogicalExpr *logicalExpr ) {
    358         logicalExpr->set_env( maybeMutate( logicalExpr->get_env(), *this ) );
    359         logicalExpr->set_result( maybeMutate( logicalExpr->get_result(), *this ) );
    360         logicalExpr->set_arg1( maybeMutate( logicalExpr->get_arg1(), *this ) );
    361         logicalExpr->set_arg2( maybeMutate( logicalExpr->get_arg2(), *this ) );
    362         return logicalExpr;
    363 }
    364 
    365 Expression * Mutator::mutate( ConditionalExpr *conditionalExpr ) {
    366         conditionalExpr->set_env( maybeMutate( conditionalExpr->get_env(), *this ) );
    367         conditionalExpr->set_result( maybeMutate( conditionalExpr->get_result(), *this ) );
    368         conditionalExpr->set_arg1( maybeMutate( conditionalExpr->get_arg1(), *this ) );
    369         conditionalExpr->set_arg2( maybeMutate( conditionalExpr->get_arg2(), *this ) );
    370         conditionalExpr->set_arg3( maybeMutate( conditionalExpr->get_arg3(), *this ) );
    371         return conditionalExpr;
    372 }
    373 
    374 Expression * Mutator::mutate( CommaExpr *commaExpr ) {
    375         commaExpr->set_env( maybeMutate( commaExpr->get_env(), *this ) );
    376         commaExpr->set_result( maybeMutate( commaExpr->get_result(), *this ) );
    377         commaExpr->set_arg1( maybeMutate( commaExpr->get_arg1(), *this ) );
    378         commaExpr->set_arg2( maybeMutate( commaExpr->get_arg2(), *this ) );
    379         return commaExpr;
    380 }
    381 
    382 Expression * Mutator::mutate( TypeExpr *typeExpr ) {
    383         typeExpr->set_env( maybeMutate( typeExpr->get_env(), *this ) );
    384         typeExpr->set_result( maybeMutate( typeExpr->get_result(), *this ) );
    385         typeExpr->set_type( maybeMutate( typeExpr->get_type(), *this ) );
    386         return typeExpr;
    387 }
    388 
    389 Expression * Mutator::mutate( AsmExpr *asmExpr ) {
    390         asmExpr->set_env( maybeMutate( asmExpr->get_env(), *this ) );
    391         asmExpr->set_inout( maybeMutate( asmExpr->get_inout(), *this ) );
    392         asmExpr->set_constraint( maybeMutate( asmExpr->get_constraint(), *this ) );
    393         asmExpr->set_operand( maybeMutate( asmExpr->get_operand(), *this ) );
    394         return asmExpr;
    395 }
    396 
    397 Expression* Mutator::mutate( ImplicitCopyCtorExpr *impCpCtorExpr ) {
    398         impCpCtorExpr->set_env( maybeMutate( impCpCtorExpr->get_env(), *this ) );
    399         impCpCtorExpr->set_result( maybeMutate( impCpCtorExpr->get_result(), *this ) );
    400         impCpCtorExpr->set_callExpr( maybeMutate( impCpCtorExpr->get_callExpr(), *this ) );
    401         mutateAll( impCpCtorExpr->get_tempDecls(), *this );
    402         mutateAll( impCpCtorExpr->get_returnDecls(), *this );
    403         mutateAll( impCpCtorExpr->get_dtors(), *this );
    404         return impCpCtorExpr;
    405 }
    406 
    407 Expression* Mutator::mutate( ConstructorExpr *ctorExpr ) {
    408         ctorExpr->set_env( maybeMutate( ctorExpr->get_env(), *this ) );
    409         ctorExpr->set_result( maybeMutate( ctorExpr->get_result(), *this ) );
    410         ctorExpr->set_callExpr( maybeMutate( ctorExpr->get_callExpr(), *this ) );
    411         return ctorExpr;
    412 }
    413 
    414 Expression * Mutator::mutate( CompoundLiteralExpr *compLitExpr ) {
    415         compLitExpr->set_env( maybeMutate( compLitExpr->get_env(), *this ) );
    416         compLitExpr->set_result( maybeMutate( compLitExpr->get_result(), *this ) );
    417         compLitExpr->set_initializer( maybeMutate( compLitExpr->get_initializer(), *this ) );
    418         return compLitExpr;
    419 }
    420 
    421 Expression * Mutator::mutate( RangeExpr *rangeExpr ) {
    422         rangeExpr->set_env( maybeMutate( rangeExpr->get_env(), *this ) );
    423         rangeExpr->set_low( maybeMutate( rangeExpr->get_low(), *this ) );
    424         rangeExpr->set_high( maybeMutate( rangeExpr->get_high(), *this ) );
    425         return rangeExpr;
    426 }
    427 
    428 Expression * Mutator::mutate( UntypedTupleExpr *tupleExpr ) {
    429         tupleExpr->set_env( maybeMutate( tupleExpr->get_env(), *this ) );
    430         tupleExpr->set_result( maybeMutate( tupleExpr->get_result(), *this ) );
    431         mutateAll( tupleExpr->get_exprs(), *this );
    432         return tupleExpr;
    433 }
    434 
    435 Expression * Mutator::mutate( TupleExpr *tupleExpr ) {
    436         tupleExpr->set_env( maybeMutate( tupleExpr->get_env(), *this ) );
    437         tupleExpr->set_result( maybeMutate( tupleExpr->get_result(), *this ) );
    438         mutateAll( tupleExpr->get_exprs(), *this );
    439         return tupleExpr;
    440 }
    441 
    442 Expression * Mutator::mutate( TupleIndexExpr *tupleExpr ) {
    443         tupleExpr->set_env( maybeMutate( tupleExpr->get_env(), *this ) );
    444         tupleExpr->set_result( maybeMutate( tupleExpr->get_result(), *this ) );
    445         tupleExpr->set_tuple( maybeMutate( tupleExpr->get_tuple(), *this ) );
    446         return tupleExpr;
    447 }
    448 
    449 Expression * Mutator::mutate( TupleAssignExpr *assignExpr ) {
    450         assignExpr->set_env( maybeMutate( assignExpr->get_env(), *this ) );
    451         assignExpr->set_result( maybeMutate( assignExpr->get_result(), *this ) );
    452         assignExpr->set_stmtExpr( maybeMutate( assignExpr->get_stmtExpr(), *this ) );
    453         return assignExpr;
    454 }
    455 
    456 Expression * Mutator::mutate( StmtExpr *stmtExpr ) {
    457         stmtExpr->set_env( maybeMutate( stmtExpr->get_env(), *this ) );
    458         stmtExpr->set_result( maybeMutate( stmtExpr->get_result(), *this ) );
    459         stmtExpr->set_statements( maybeMutate( stmtExpr->get_statements(), *this ) );
    460         mutateAll( stmtExpr->get_returnDecls(), *this );
    461         mutateAll( stmtExpr->get_dtors(), *this );
    462         return stmtExpr;
    463 }
    464 
    465 Expression * Mutator::mutate( UniqueExpr *uniqueExpr ) {
    466         uniqueExpr->set_env( maybeMutate( uniqueExpr->get_env(), *this ) );
    467         uniqueExpr->set_result( maybeMutate( uniqueExpr->get_result(), *this ) );
    468         uniqueExpr->set_expr( maybeMutate( uniqueExpr->get_expr(), *this ) );
    469         return uniqueExpr;
    470 }
    471 
    472 Expression * Mutator::mutate( UntypedInitExpr * initExpr ) {
    473         initExpr->set_env( maybeMutate( initExpr->get_env(), *this ) );
    474         initExpr->set_result( maybeMutate( initExpr->get_result(), *this ) );
    475         initExpr->set_expr( maybeMutate( initExpr->get_expr(), *this ) );
    476         // not currently mutating initAlts, but this doesn't matter since this node is only used in the resolver.
    477         return initExpr;
    478 }
    479 
    480 Expression * Mutator::mutate( InitExpr * initExpr ) {
    481         initExpr->set_env( maybeMutate( initExpr->get_env(), *this ) );
    482         initExpr->set_result( maybeMutate( initExpr->get_result(), *this ) );
    483         initExpr->set_expr( maybeMutate( initExpr->get_expr(), *this ) );
    484         initExpr->set_designation( maybeMutate( initExpr->get_designation(), *this ) );
    485         return initExpr;
    486 }
    487 
    488 
    489 Type * Mutator::mutate( VoidType *voidType ) {
    490         mutateAll( voidType->get_forall(), *this );
    491         return voidType;
    492 }
    493 
    494 Type * Mutator::mutate( BasicType *basicType ) {
    495         mutateAll( basicType->get_forall(), *this );
    496         return basicType;
    497 }
    498 
    499 Type * Mutator::mutate( PointerType *pointerType ) {
    500         mutateAll( pointerType->get_forall(), *this );
    501         pointerType->set_base( maybeMutate( pointerType->get_base(), *this ) );
    502         return pointerType;
    503 }
    504 
    505 Type * Mutator::mutate( ArrayType *arrayType ) {
    506         mutateAll( arrayType->get_forall(), *this );
    507         arrayType->set_dimension( maybeMutate( arrayType->get_dimension(), *this ) );
    508         arrayType->set_base( maybeMutate( arrayType->get_base(), *this ) );
    509         return arrayType;
    510 }
    511 
    512 Type * Mutator::mutate( ReferenceType * refType ) {
    513         mutateAll( refType->get_forall(), *this );
    514         refType->set_base( maybeMutate( refType->get_base(), *this ) );
    515         return refType;
    516 }
    517 
    518 Type * Mutator::mutate( FunctionType * functionType ) {
    519         mutateAll( functionType->get_forall(), *this );
    520         mutateAll( functionType->get_returnVals(), *this );
    521         mutateAll( functionType->get_parameters(), *this );
    522         return functionType;
    523 }
    524 
    525 Type * Mutator::handleReferenceToType( ReferenceToType *aggregateUseType ) {
    526         mutateAll( aggregateUseType->get_forall(), *this );
    527         mutateAll( aggregateUseType->get_parameters(), *this );
    528         return aggregateUseType;
    529 }
    530 
    531 Type * Mutator::mutate( StructInstType *aggregateUseType ) {
    532         handleReferenceToType( aggregateUseType );
    533         return aggregateUseType;
    534 }
    535 
    536 Type * Mutator::mutate( UnionInstType *aggregateUseType ) {
    537         handleReferenceToType( aggregateUseType );
    538         return aggregateUseType;
    539 }
    540 
    541 Type * Mutator::mutate( EnumInstType *aggregateUseType ) {
    542         handleReferenceToType( aggregateUseType );
    543         return aggregateUseType;
    544 }
    545 
    546 Type * Mutator::mutate( TraitInstType *aggregateUseType ) {
    547         handleReferenceToType( aggregateUseType );
    548         return aggregateUseType;
    549 }
    550 
    551 Type * Mutator::mutate( TypeInstType *aggregateUseType ) {
    552         handleReferenceToType( aggregateUseType );
    553         return aggregateUseType;
    554 }
    55534
    55635Type * Mutator::mutate( TupleType *tupleType ) {
  • src/SynTree/Mutator.h

    r807d8c3 r6a8df56  
    2525        virtual ~Mutator();
    2626  public:
    27         virtual DeclarationWithType * mutate( ObjectDecl * objectDecl );
    28         virtual DeclarationWithType * mutate( FunctionDecl * functionDecl );
    29         virtual Declaration * mutate( StructDecl * aggregateDecl );
    30         virtual Declaration * mutate( UnionDecl * aggregateDecl );
    31         virtual Declaration * mutate( EnumDecl * aggregateDecl );
    32         virtual Declaration * mutate( TraitDecl * aggregateDecl );
    33         virtual Declaration * mutate( TypeDecl * typeDecl );
    34         virtual Declaration * mutate( TypedefDecl * typeDecl );
    35         virtual AsmDecl * mutate( AsmDecl * asmDecl );
     27        virtual DeclarationWithType * mutate( ObjectDecl * objectDecl ) = 0;
     28        virtual DeclarationWithType * mutate( FunctionDecl * functionDecl ) = 0;
     29        virtual Declaration * mutate( StructDecl * aggregateDecl ) = 0;
     30        virtual Declaration * mutate( UnionDecl * aggregateDecl ) = 0;
     31        virtual Declaration * mutate( EnumDecl * aggregateDecl ) = 0;
     32        virtual Declaration * mutate( TraitDecl * aggregateDecl ) = 0;
     33        virtual Declaration * mutate( TypeDecl * typeDecl ) = 0;
     34        virtual Declaration * mutate( TypedefDecl * typeDecl ) = 0;
     35        virtual AsmDecl * mutate( AsmDecl * asmDecl ) = 0;
    3636
    37         virtual CompoundStmt * mutate( CompoundStmt * compoundStmt );
    38         virtual Statement * mutate( ExprStmt * exprStmt );
    39         virtual Statement * mutate( AsmStmt * asmStmt );
    40         virtual Statement * mutate( IfStmt * ifStmt );
    41         virtual Statement * mutate( WhileStmt * whileStmt );
    42         virtual Statement * mutate( ForStmt * forStmt );
    43         virtual Statement * mutate( SwitchStmt * switchStmt );
    44         virtual Statement * mutate( CaseStmt * caseStmt );
    45         virtual Statement * mutate( BranchStmt * branchStmt );
    46         virtual Statement * mutate( ReturnStmt * returnStmt );
    47         virtual Statement * mutate( ThrowStmt * throwStmt );
    48         virtual Statement * mutate( TryStmt * tryStmt );
    49         virtual Statement * mutate( CatchStmt * catchStmt );
    50         virtual Statement * mutate( FinallyStmt * catchStmt );
    51         virtual Statement * mutate( WaitForStmt * waitforStmt );
    52         virtual Statement * mutate( WithStmt * withStmt );
    53         virtual NullStmt * mutate( NullStmt * nullStmt );
    54         virtual Statement * mutate( DeclStmt * declStmt );
    55         virtual Statement * mutate( ImplicitCtorDtorStmt * impCtorDtorStmt );
     37        virtual CompoundStmt * mutate( CompoundStmt * compoundStmt ) = 0;
     38        virtual Statement * mutate( ExprStmt * exprStmt ) = 0;
     39        virtual Statement * mutate( AsmStmt * asmStmt ) = 0;
     40        virtual Statement * mutate( IfStmt * ifStmt ) = 0;
     41        virtual Statement * mutate( WhileStmt * whileStmt ) = 0;
     42        virtual Statement * mutate( ForStmt * forStmt ) = 0;
     43        virtual Statement * mutate( SwitchStmt * switchStmt ) = 0;
     44        virtual Statement * mutate( CaseStmt * caseStmt ) = 0;
     45        virtual Statement * mutate( BranchStmt * branchStmt ) = 0;
     46        virtual Statement * mutate( ReturnStmt * returnStmt ) = 0;
     47        virtual Statement * mutate( ThrowStmt * throwStmt ) = 0;
     48        virtual Statement * mutate( TryStmt * tryStmt ) = 0;
     49        virtual Statement * mutate( CatchStmt * catchStmt ) = 0;
     50        virtual Statement * mutate( FinallyStmt * catchStmt ) = 0;
     51        virtual Statement * mutate( WaitForStmt * waitforStmt ) = 0;
     52        virtual Statement * mutate( WithStmt * withStmt ) = 0;
     53        virtual NullStmt * mutate( NullStmt * nullStmt ) = 0;
     54        virtual Statement * mutate( DeclStmt * declStmt ) = 0;
     55        virtual Statement * mutate( ImplicitCtorDtorStmt * impCtorDtorStmt ) = 0;
    5656
    57         virtual Expression * mutate( ApplicationExpr * applicationExpr );
    58         virtual Expression * mutate( UntypedExpr * untypedExpr );
    59         virtual Expression * mutate( NameExpr * nameExpr );
    60         virtual Expression * mutate( AddressExpr * castExpr );
    61         virtual Expression * mutate( LabelAddressExpr * labAddressExpr );
    62         virtual Expression * mutate( CastExpr * castExpr );
    63         virtual Expression * mutate( VirtualCastExpr * castExpr );
    64         virtual Expression * mutate( UntypedMemberExpr * memberExpr );
    65         virtual Expression * mutate( MemberExpr * memberExpr );
    66         virtual Expression * mutate( VariableExpr * variableExpr );
    67         virtual Expression * mutate( ConstantExpr * constantExpr );
    68         virtual Expression * mutate( SizeofExpr * sizeofExpr );
    69         virtual Expression * mutate( AlignofExpr * alignofExpr );
    70         virtual Expression * mutate( UntypedOffsetofExpr * offsetofExpr );
    71         virtual Expression * mutate( OffsetofExpr * offsetofExpr );
    72         virtual Expression * mutate( OffsetPackExpr * offsetPackExpr );
    73         virtual Expression * mutate( AttrExpr * attrExpr );
    74         virtual Expression * mutate( LogicalExpr * logicalExpr );
    75         virtual Expression * mutate( ConditionalExpr * conditionalExpr );
    76         virtual Expression * mutate( CommaExpr * commaExpr );
    77         virtual Expression * mutate( TypeExpr * typeExpr );
    78         virtual Expression * mutate( AsmExpr * asmExpr );
    79         virtual Expression * mutate( ImplicitCopyCtorExpr * impCpCtorExpr );
    80         virtual Expression * mutate( ConstructorExpr * ctorExpr );
    81         virtual Expression * mutate( CompoundLiteralExpr * compLitExpr );
    82         virtual Expression * mutate( RangeExpr * rangeExpr );
    83         virtual Expression * mutate( UntypedTupleExpr * tupleExpr );
    84         virtual Expression * mutate( TupleExpr * tupleExpr );
    85         virtual Expression * mutate( TupleIndexExpr * tupleExpr );
    86         virtual Expression * mutate( TupleAssignExpr * assignExpr );
    87         virtual Expression * mutate( StmtExpr  * stmtExpr );
    88         virtual Expression * mutate( UniqueExpr  * uniqueExpr );
    89         virtual Expression * mutate( UntypedInitExpr  * initExpr );
    90         virtual Expression * mutate( InitExpr  * initExpr );
     57        virtual Expression * mutate( ApplicationExpr * applicationExpr ) = 0;
     58        virtual Expression * mutate( UntypedExpr * untypedExpr ) = 0;
     59        virtual Expression * mutate( NameExpr * nameExpr ) = 0;
     60        virtual Expression * mutate( AddressExpr * castExpr ) = 0;
     61        virtual Expression * mutate( LabelAddressExpr * labAddressExpr ) = 0;
     62        virtual Expression * mutate( CastExpr * castExpr ) = 0;
     63        virtual Expression * mutate( VirtualCastExpr * castExpr ) = 0;
     64        virtual Expression * mutate( UntypedMemberExpr * memberExpr ) = 0;
     65        virtual Expression * mutate( MemberExpr * memberExpr ) = 0;
     66        virtual Expression * mutate( VariableExpr * variableExpr ) = 0;
     67        virtual Expression * mutate( ConstantExpr * constantExpr ) = 0;
     68        virtual Expression * mutate( SizeofExpr * sizeofExpr ) = 0;
     69        virtual Expression * mutate( AlignofExpr * alignofExpr ) = 0;
     70        virtual Expression * mutate( UntypedOffsetofExpr * offsetofExpr ) = 0;
     71        virtual Expression * mutate( OffsetofExpr * offsetofExpr ) = 0;
     72        virtual Expression * mutate( OffsetPackExpr * offsetPackExpr ) = 0;
     73        virtual Expression * mutate( AttrExpr * attrExpr ) = 0;
     74        virtual Expression * mutate( LogicalExpr * logicalExpr ) = 0;
     75        virtual Expression * mutate( ConditionalExpr * conditionalExpr ) = 0;
     76        virtual Expression * mutate( CommaExpr * commaExpr ) = 0;
     77        virtual Expression * mutate( TypeExpr * typeExpr ) = 0;
     78        virtual Expression * mutate( AsmExpr * asmExpr ) = 0;
     79        virtual Expression * mutate( ImplicitCopyCtorExpr * impCpCtorExpr ) = 0;
     80        virtual Expression * mutate( ConstructorExpr * ctorExpr ) = 0;
     81        virtual Expression * mutate( CompoundLiteralExpr * compLitExpr ) = 0;
     82        virtual Expression * mutate( RangeExpr * rangeExpr ) = 0;
     83        virtual Expression * mutate( UntypedTupleExpr * tupleExpr ) = 0;
     84        virtual Expression * mutate( TupleExpr * tupleExpr ) = 0;
     85        virtual Expression * mutate( TupleIndexExpr * tupleExpr ) = 0;
     86        virtual Expression * mutate( TupleAssignExpr * assignExpr ) = 0;
     87        virtual Expression * mutate( StmtExpr  * stmtExpr ) = 0;
     88        virtual Expression * mutate( UniqueExpr  * uniqueExpr ) = 0;
     89        virtual Expression * mutate( UntypedInitExpr  * initExpr ) = 0;
     90        virtual Expression * mutate( InitExpr  * initExpr ) = 0;
    9191        virtual Expression * mutate( DeletedExpr * delExpr ) = 0;
    9292
    93         virtual Type * mutate( VoidType * basicType );
    94         virtual Type * mutate( BasicType * basicType );
    95         virtual Type * mutate( PointerType * pointerType );
    96         virtual Type * mutate( ArrayType * arrayType );
    97         virtual Type * mutate( ReferenceType * refType );
    98         virtual Type * mutate( FunctionType * functionType );
    99         virtual Type * mutate( StructInstType * aggregateUseType );
    100         virtual Type * mutate( UnionInstType * aggregateUseType );
    101         virtual Type * mutate( EnumInstType * aggregateUseType );
    102         virtual Type * mutate( TraitInstType * aggregateUseType );
    103         virtual Type * mutate( TypeInstType * aggregateUseType );
    104         virtual Type * mutate( TupleType * tupleType );
    105         virtual Type * mutate( TypeofType * typeofType );
    106         virtual Type * mutate( AttrType * attrType );
    107         virtual Type * mutate( VarArgsType * varArgsType );
    108         virtual Type * mutate( ZeroType * zeroType );
    109         virtual Type * mutate( OneType * oneType );
     93        virtual Type * mutate( VoidType * basicType ) = 0;
     94        virtual Type * mutate( BasicType * basicType ) = 0;
     95        virtual Type * mutate( PointerType * pointerType ) = 0;
     96        virtual Type * mutate( ArrayType * arrayType ) = 0;
     97        virtual Type * mutate( ReferenceType * refType ) = 0;
     98        virtual Type * mutate( FunctionType * functionType ) = 0;
     99        virtual Type * mutate( StructInstType * aggregateUseType ) = 0;
     100        virtual Type * mutate( UnionInstType * aggregateUseType ) = 0;
     101        virtual Type * mutate( EnumInstType * aggregateUseType ) = 0;
     102        virtual Type * mutate( TraitInstType * aggregateUseType ) = 0;
     103        virtual Type * mutate( TypeInstType * aggregateUseType ) = 0;
     104        virtual Type * mutate( TupleType * tupleType ) = 0;
     105        virtual Type * mutate( TypeofType * typeofType ) = 0;
     106        virtual Type * mutate( AttrType * attrType ) = 0;
     107        virtual Type * mutate( VarArgsType * varArgsType ) = 0;
     108        virtual Type * mutate( ZeroType * zeroType ) = 0;
     109        virtual Type * mutate( OneType * oneType ) = 0;
    110110
    111         virtual Designation * mutate( Designation * designation );
    112         virtual Initializer * mutate( SingleInit * singleInit );
    113         virtual Initializer * mutate( ListInit * listInit );
    114         virtual Initializer * mutate( ConstructorInit * ctorInit );
     111        virtual Designation * mutate( Designation * designation ) = 0 ;
     112        virtual Initializer * mutate( SingleInit * singleInit ) = 0 ;
     113        virtual Initializer * mutate( ListInit * listInit ) = 0 ;
     114        virtual Initializer * mutate( ConstructorInit * ctorInit ) = 0 ;
    115115
    116         virtual Subrange * mutate( Subrange * subrange );
     116        virtual Subrange * mutate( Subrange * subrange ) = 0;
    117117
    118         virtual Constant * mutate( Constant * constant );
     118        virtual Constant * mutate( Constant * constant ) = 0;
    119119
    120         virtual Attribute * mutate( Attribute * attribute );
     120        virtual Attribute * mutate( Attribute * attribute ) = 0;
    121121
    122         virtual TypeSubstitution * mutate( TypeSubstitution * sub );
    123   private:
    124         virtual Declaration * handleAggregateDecl(AggregateDecl * aggregateDecl );
    125         virtual Declaration * handleNamedTypeDecl(NamedTypeDecl * typeDecl );
    126         virtual Type * handleReferenceToType(ReferenceToType * aggregateUseType );
     122        virtual TypeSubstitution * mutate( TypeSubstitution * sub ) = 0;
    127123};
    128124
  • src/SynTree/Visitor.cc

    r807d8c3 r6a8df56  
    3131
    3232Visitor::~Visitor() {}
    33 
    34 void Visitor::visit( ObjectDecl *objectDecl ) {
    35         maybeAccept( objectDecl->get_type(), *this );
    36         maybeAccept( objectDecl->get_init(), *this );
    37         maybeAccept( objectDecl->get_bitfieldWidth(), *this );
    38         acceptAll( objectDecl->attributes, *this );
    39 }
    40 
    41 void Visitor::visit( FunctionDecl *functionDecl ) {
    42         maybeAccept( functionDecl->get_functionType(), *this );
    43         maybeAccept( functionDecl->get_statements(), *this );
    44         acceptAll( functionDecl->attributes, *this );
    45 }
    46 
    47 void Visitor::handleAggregateDecl( AggregateDecl *aggregateDecl ) {
    48         acceptAll( aggregateDecl->get_parameters(), *this );
    49         acceptAll( aggregateDecl->get_members(), *this );
    50 }
    51 
    52 void Visitor::visit( StructDecl *aggregateDecl ) {
    53         handleAggregateDecl( static_cast< AggregateDecl* >( aggregateDecl ) );
    54 }
    55 
    56 void Visitor::visit( UnionDecl *aggregateDecl ) {
    57         handleAggregateDecl( static_cast< AggregateDecl* >( aggregateDecl ) );
    58 }
    59 
    60 void Visitor::visit( EnumDecl *aggregateDecl ) {
    61         handleAggregateDecl( static_cast< AggregateDecl* >( aggregateDecl ) );
    62 }
    63 
    64 void Visitor::visit( TraitDecl *aggregateDecl ) {
    65         handleAggregateDecl( static_cast< AggregateDecl* >( aggregateDecl ) );
    66 }
    67 
    68 void Visitor::handleNamedTypeDecl( NamedTypeDecl *typeDecl ) {
    69         acceptAll( typeDecl->get_parameters(), *this );
    70         acceptAll( typeDecl->get_assertions(), *this );
    71         maybeAccept( typeDecl->get_base(), *this );
    72 }
    73 
    74 void Visitor::visit( TypeDecl *typeDecl ) {
    75         handleNamedTypeDecl( static_cast< NamedTypeDecl* >( typeDecl ) );
    76         maybeAccept( typeDecl->get_init(), *this );
    77 }
    78 
    79 void Visitor::visit( TypedefDecl *typeDecl ) {
    80         handleNamedTypeDecl( static_cast< NamedTypeDecl* >( typeDecl ) );
    81 }
    82 
    83 void Visitor::visit( AsmDecl *asmDecl ) {
    84         maybeAccept( asmDecl->get_stmt(), *this );
    85 }
    86 
    87 
    88 void Visitor::visit( CompoundStmt *compoundStmt ) {
    89         acceptAll( compoundStmt->get_kids(), *this );
    90 }
    91 
    92 void Visitor::visit( ExprStmt *exprStmt ) {
    93         maybeAccept( exprStmt->get_expr(), *this );
    94 }
    95 
    96 void Visitor::visit( AsmStmt *asmStmt ) {
    97         maybeAccept( asmStmt->get_instruction(), *this );
    98         acceptAll( asmStmt->get_output(), *this );
    99         acceptAll( asmStmt->get_input(), *this );
    100         acceptAll( asmStmt->get_clobber(), *this );
    101 }
    102 
    103 void Visitor::visit( IfStmt *ifStmt ) {
    104         acceptAll( ifStmt->get_initialization(), *this );
    105         maybeAccept( ifStmt->get_condition(), *this );
    106         maybeAccept( ifStmt->get_thenPart(), *this );
    107         maybeAccept( ifStmt->get_elsePart(), *this );
    108 }
    109 
    110 void Visitor::visit( WhileStmt *whileStmt ) {
    111         maybeAccept( whileStmt->get_condition(), *this );
    112         maybeAccept( whileStmt->get_body(), *this );
    113 }
    114 
    115 void Visitor::visit( ForStmt *forStmt ) {
    116         acceptAll( forStmt->get_initialization(), *this );
    117         maybeAccept( forStmt->get_condition(), *this );
    118         maybeAccept( forStmt->get_increment(), *this );
    119         maybeAccept( forStmt->get_body(), *this );
    120 }
    121 
    122 void Visitor::visit( SwitchStmt *switchStmt ) {
    123         maybeAccept( switchStmt->get_condition(), *this );
    124         acceptAll( switchStmt->get_statements(), *this );
    125 }
    126 
    127 void Visitor::visit( CaseStmt *caseStmt ) {
    128         maybeAccept( caseStmt->get_condition(), *this );
    129         acceptAll( caseStmt->get_statements(), *this );
    130 }
    131 
    132 void Visitor::visit( __attribute__((unused)) BranchStmt *branchStmt ) {
    133 }
    134 
    135 void Visitor::visit( ReturnStmt *returnStmt ) {
    136         maybeAccept( returnStmt->get_expr(), *this );
    137 }
    138 
    139 void Visitor::visit( ThrowStmt * throwStmt ) {
    140         maybeAccept( throwStmt->get_expr(), *this );
    141         maybeAccept( throwStmt->get_target(), *this );
    142 }
    143 
    144 void Visitor::visit( TryStmt *tryStmt ) {
    145         maybeAccept( tryStmt->get_block(), *this );
    146         acceptAll( tryStmt->get_catchers(), *this );
    147         maybeAccept( tryStmt->get_finally(), *this );
    148 }
    149 
    150 void Visitor::visit( CatchStmt *catchStmt ) {
    151         maybeAccept( catchStmt->get_decl(), *this );
    152         maybeAccept( catchStmt->get_cond(), *this );
    153         maybeAccept( catchStmt->get_body(), *this );
    154 }
    155 
    156 void Visitor::visit( FinallyStmt *finalStmt ) {
    157         maybeAccept( finalStmt->get_block(), *this );
    158 }
    159 
    160 void Visitor::visit( WaitForStmt *waitforStmt ) {
    161         for( auto & clause : waitforStmt->clauses ) {
    162                 maybeAccept( clause.target.function, *this );
    163                 acceptAll( clause.target.arguments, *this );
    164 
    165                 maybeAccept( clause.statement, *this );
    166                 maybeAccept( clause.condition, *this );
    167         }
    168 
    169         maybeAccept( waitforStmt->timeout.time, *this );
    170         maybeAccept( waitforStmt->timeout.statement, *this );
    171         maybeAccept( waitforStmt->timeout.condition, *this );
    172         maybeAccept( waitforStmt->orelse.statement, *this );
    173         maybeAccept( waitforStmt->orelse.condition, *this );
    174 }
    175 
    176 void Visitor::visit( WithStmt * withStmt ) {
    177         acceptAll( withStmt->exprs, *this );
    178         maybeAccept( withStmt->stmt, *this );
    179 }
    180 
    181 void Visitor::visit( NullStmt * ) {
    182 }
    183 
    184 void Visitor::visit( DeclStmt *declStmt ) {
    185         maybeAccept( declStmt->get_decl(), *this );
    186 }
    187 
    188 void Visitor::visit( ImplicitCtorDtorStmt *impCtorDtorStmt ) {
    189         maybeAccept( impCtorDtorStmt->get_callStmt(), *this );
    190 }
    191 
    192 
    193 void Visitor::visit( ApplicationExpr *applicationExpr ) {
    194         maybeAccept( applicationExpr->get_result(), *this );
    195         maybeAccept( applicationExpr->get_function(), *this );
    196         acceptAll( applicationExpr->get_args(), *this );
    197 }
    198 
    199 void Visitor::visit( UntypedExpr *untypedExpr ) {
    200         maybeAccept( untypedExpr->get_result(), *this );
    201         acceptAll( untypedExpr->get_args(), *this );
    202 }
    203 
    204 void Visitor::visit( NameExpr *nameExpr ) {
    205         maybeAccept( nameExpr->get_result(), *this );
    206 }
    207 
    208 void Visitor::visit( AddressExpr *addressExpr ) {
    209         maybeAccept( addressExpr->get_result(), *this );
    210         maybeAccept( addressExpr->get_arg(), *this );
    211 }
    212 
    213 void Visitor::visit( LabelAddressExpr *labAddressExpr ) {
    214         maybeAccept( labAddressExpr->get_result(), *this );
    215 }
    216 
    217 void Visitor::visit( CastExpr *castExpr ) {
    218         maybeAccept( castExpr->get_result(), *this );
    219         maybeAccept( castExpr->get_arg(), *this );
    220 }
    221 
    222 void Visitor::visit( VirtualCastExpr *castExpr ) {
    223         maybeAccept( castExpr->get_result(), *this );
    224         maybeAccept( castExpr->get_arg(), *this );
    225 }
    226 
    227 void Visitor::visit( UntypedMemberExpr *memberExpr ) {
    228         maybeAccept( memberExpr->get_result(), *this );
    229         maybeAccept( memberExpr->get_aggregate(), *this );
    230         maybeAccept( memberExpr->get_member(), *this );
    231 }
    232 
    233 void Visitor::visit( MemberExpr *memberExpr ) {
    234         maybeAccept( memberExpr->get_result(), *this );
    235         maybeAccept( memberExpr->get_aggregate(), *this );
    236 }
    237 
    238 void Visitor::visit( VariableExpr *variableExpr ) {
    239         maybeAccept( variableExpr->get_result(), *this );
    240 }
    241 
    242 void Visitor::visit( ConstantExpr *constantExpr ) {
    243         maybeAccept( constantExpr->get_result(), *this );
    244         maybeAccept( constantExpr->get_constant(), *this );
    245 }
    246 
    247 void Visitor::visit( SizeofExpr *sizeofExpr ) {
    248         maybeAccept( sizeofExpr->get_result(), *this );
    249         if ( sizeofExpr->get_isType() ) {
    250                 maybeAccept( sizeofExpr->get_type(), *this );
    251         } else {
    252                 maybeAccept( sizeofExpr->get_expr(), *this );
    253         }
    254 }
    255 
    256 void Visitor::visit( AlignofExpr *alignofExpr ) {
    257         maybeAccept( alignofExpr->get_result(), *this );
    258         if ( alignofExpr->get_isType() ) {
    259                 maybeAccept( alignofExpr->get_type(), *this );
    260         } else {
    261                 maybeAccept( alignofExpr->get_expr(), *this );
    262         }
    263 }
    264 
    265 void Visitor::visit( UntypedOffsetofExpr *offsetofExpr ) {
    266         maybeAccept( offsetofExpr->get_result(), *this );
    267         maybeAccept( offsetofExpr->get_type(), *this );
    268 }
    269 
    270 void Visitor::visit( OffsetofExpr *offsetofExpr ) {
    271         maybeAccept( offsetofExpr->get_result(), *this );
    272         maybeAccept( offsetofExpr->get_type(), *this );
    273         maybeAccept( offsetofExpr->get_member(), *this );
    274 }
    275 
    276 void Visitor::visit( OffsetPackExpr *offsetPackExpr ) {
    277         maybeAccept( offsetPackExpr->get_result(), *this );
    278         maybeAccept( offsetPackExpr->get_type(), *this );
    279 }
    280 
    281 void Visitor::visit( AttrExpr *attrExpr ) {
    282         maybeAccept( attrExpr->get_result(), *this );
    283         if ( attrExpr->get_isType() ) {
    284                 maybeAccept( attrExpr->get_type(), *this );
    285         } else {
    286                 maybeAccept( attrExpr->get_expr(), *this );
    287         }
    288 }
    289 
    290 void Visitor::visit( LogicalExpr *logicalExpr ) {
    291         maybeAccept( logicalExpr->get_result(), *this );
    292         maybeAccept( logicalExpr->get_arg1(), *this );
    293         maybeAccept( logicalExpr->get_arg2(), *this );
    294 }
    295 
    296 void Visitor::visit( ConditionalExpr *conditionalExpr ) {
    297         maybeAccept( conditionalExpr->get_result(), *this );
    298         maybeAccept( conditionalExpr->get_arg1(), *this );
    299         maybeAccept( conditionalExpr->get_arg2(), *this );
    300         maybeAccept( conditionalExpr->get_arg3(), *this );
    301 }
    302 
    303 void Visitor::visit( CommaExpr *commaExpr ) {
    304         maybeAccept( commaExpr->get_result(), *this );
    305         maybeAccept( commaExpr->get_arg1(), *this );
    306         maybeAccept( commaExpr->get_arg2(), *this );
    307 }
    308 
    309 void Visitor::visit( TypeExpr *typeExpr ) {
    310         maybeAccept( typeExpr->get_result(), *this );
    311         maybeAccept( typeExpr->get_type(), *this );
    312 }
    313 
    314 void Visitor::visit( AsmExpr *asmExpr ) {
    315         maybeAccept( asmExpr->get_inout(), *this );
    316         maybeAccept( asmExpr->get_constraint(), *this );
    317         maybeAccept( asmExpr->get_operand(), *this );
    318 }
    319 
    320 void Visitor::visit( ImplicitCopyCtorExpr *impCpCtorExpr ) {
    321         maybeAccept( impCpCtorExpr->get_result(), *this );
    322         maybeAccept( impCpCtorExpr->get_callExpr(), *this );
    323         acceptAll( impCpCtorExpr->get_tempDecls(), *this );
    324         acceptAll( impCpCtorExpr->get_returnDecls(), *this );
    325         acceptAll( impCpCtorExpr->get_dtors(), *this );
    326 }
    327 
    328 void Visitor::visit( ConstructorExpr * ctorExpr ) {
    329         maybeAccept( ctorExpr->get_result(), *this );
    330         maybeAccept( ctorExpr->get_callExpr(), *this );
    331 }
    332 
    333 void Visitor::visit( CompoundLiteralExpr *compLitExpr ) {
    334         maybeAccept( compLitExpr->get_result(), *this );
    335         maybeAccept( compLitExpr->get_initializer(), *this );
    336 }
    337 
    338 void Visitor::visit( RangeExpr *rangeExpr ) {
    339         maybeAccept( rangeExpr->get_low(), *this );
    340         maybeAccept( rangeExpr->get_high(), *this );
    341 }
    342 
    343 void Visitor::visit( UntypedTupleExpr *tupleExpr ) {
    344         maybeAccept( tupleExpr->get_result(), *this );
    345         acceptAll( tupleExpr->get_exprs(), *this );
    346 }
    347 
    348 void Visitor::visit( TupleExpr *tupleExpr ) {
    349         maybeAccept( tupleExpr->get_result(), *this );
    350         acceptAll( tupleExpr->get_exprs(), *this );
    351 }
    352 
    353 void Visitor::visit( TupleIndexExpr *tupleExpr ) {
    354         maybeAccept( tupleExpr->get_result(), *this );
    355         maybeAccept( tupleExpr->get_tuple(), *this );
    356 }
    357 
    358 void Visitor::visit( TupleAssignExpr *assignExpr ) {
    359         maybeAccept( assignExpr->get_result(), *this );
    360         maybeAccept( assignExpr->get_stmtExpr(), *this );
    361 }
    362 
    363 void Visitor::visit( StmtExpr *stmtExpr ) {
    364         maybeAccept( stmtExpr->get_result(), *this );
    365         maybeAccept( stmtExpr->get_statements(), *this );
    366         acceptAll( stmtExpr->get_returnDecls(), *this );
    367         acceptAll( stmtExpr->get_dtors(), *this );
    368 }
    369 
    370 void Visitor::visit( UniqueExpr *uniqueExpr ) {
    371         maybeAccept( uniqueExpr->get_result(), *this );
    372         maybeAccept( uniqueExpr->get_expr(), *this );
    373 }
    374 
    375 void Visitor::visit( UntypedInitExpr * initExpr ) {
    376         maybeAccept( initExpr->get_result(), *this );
    377         maybeAccept( initExpr->get_expr(), *this );
    378         // not currently visiting initAlts, but this doesn't matter since this node is only used in the resolver.
    379 }
    380 
    381 void Visitor::visit( InitExpr * initExpr ) {
    382         maybeAccept( initExpr->get_result(), *this );
    383         maybeAccept( initExpr->get_expr(), *this );
    384         maybeAccept( initExpr->get_designation(), *this );
    385 }
    386 
    387 
    388 void Visitor::visit( VoidType *voidType ) {
    389         acceptAll( voidType->get_forall(), *this );
    390 }
    391 
    392 void Visitor::visit( BasicType *basicType ) {
    393         acceptAll( basicType->get_forall(), *this );
    394 }
    395 
    396 void Visitor::visit( PointerType *pointerType ) {
    397         acceptAll( pointerType->get_forall(), *this );
    398         // xxx - should PointerType visit/mutate dimension?
    399         maybeAccept( pointerType->get_base(), *this );
    400 }
    401 
    402 void Visitor::visit( ArrayType *arrayType ) {
    403         acceptAll( arrayType->get_forall(), *this );
    404         maybeAccept( arrayType->get_dimension(), *this );
    405         maybeAccept( arrayType->get_base(), *this );
    406 }
    407 
    408 void Visitor::visit( ReferenceType *refType ) {
    409         acceptAll( refType->get_forall(), *this );
    410         maybeAccept( refType->get_base(), *this );
    411 }
    412 
    413 void Visitor::visit( FunctionType *functionType ) {
    414         acceptAll( functionType->get_forall(), *this );
    415         acceptAll( functionType->get_returnVals(), *this );
    416         acceptAll( functionType->get_parameters(), *this );
    417 }
    418 
    419 void Visitor::handleReferenceToType( ReferenceToType *aggregateUseType ) {
    420         acceptAll( aggregateUseType->get_forall(), *this );
    421         acceptAll( aggregateUseType->get_parameters(), *this );
    422 }
    423 
    424 void Visitor::visit( StructInstType *aggregateUseType ) {
    425         handleReferenceToType( static_cast< ReferenceToType * >( aggregateUseType ) );
    426 }
    427 
    428 void Visitor::visit( UnionInstType *aggregateUseType ) {
    429         handleReferenceToType( static_cast< ReferenceToType * >( aggregateUseType ) );
    430 }
    431 
    432 void Visitor::visit( EnumInstType *aggregateUseType ) {
    433         handleReferenceToType( static_cast< ReferenceToType * >( aggregateUseType ) );
    434 }
    435 
    436 void Visitor::visit( TraitInstType *aggregateUseType ) {
    437         handleReferenceToType( static_cast< ReferenceToType * >( aggregateUseType ) );
    438 }
    439 
    440 void Visitor::visit( TypeInstType *aggregateUseType ) {
    441         handleReferenceToType( static_cast< ReferenceToType * >( aggregateUseType ) );
    442 }
    44333
    44434void Visitor::visit( TupleType *tupleType ) {
  • src/SynTree/Visitor.h

    r807d8c3 r6a8df56  
    2727        // of the given syntax node, but performs no other action.
    2828
    29         virtual void visit( ObjectDecl * objectDecl );
    30         virtual void visit( FunctionDecl * functionDecl );
    31         virtual void visit( StructDecl * aggregateDecl );
    32         virtual void visit( UnionDecl * aggregateDecl );
    33         virtual void visit( EnumDecl * aggregateDecl );
    34         virtual void visit( TraitDecl * aggregateDecl );
    35         virtual void visit( TypeDecl * typeDecl );
    36         virtual void visit( TypedefDecl * typeDecl );
    37         virtual void visit( AsmDecl * asmDecl );
     29        virtual void visit( ObjectDecl * objectDecl ) = 0;
     30        virtual void visit( FunctionDecl * functionDecl ) = 0;
     31        virtual void visit( StructDecl * aggregateDecl ) = 0;
     32        virtual void visit( UnionDecl * aggregateDecl ) = 0;
     33        virtual void visit( EnumDecl * aggregateDecl ) = 0;
     34        virtual void visit( TraitDecl * aggregateDecl ) = 0;
     35        virtual void visit( TypeDecl * typeDecl ) = 0;
     36        virtual void visit( TypedefDecl * typeDecl ) = 0;
     37        virtual void visit( AsmDecl * asmDecl ) = 0;
    3838
    39         virtual void visit( CompoundStmt * compoundStmt );
    40         virtual void visit( ExprStmt * exprStmt );
    41         virtual void visit( AsmStmt * asmStmt );
    42         virtual void visit( IfStmt * ifStmt );
    43         virtual void visit( WhileStmt * whileStmt );
    44         virtual void visit( ForStmt * forStmt );
    45         virtual void visit( SwitchStmt * switchStmt );
    46         virtual void visit( CaseStmt * caseStmt );
    47         virtual void visit( BranchStmt * branchStmt );
    48         virtual void visit( ReturnStmt * returnStmt );
    49         virtual void visit( ThrowStmt * throwStmt );
    50         virtual void visit( TryStmt * tryStmt );
    51         virtual void visit( CatchStmt * catchStmt );
    52         virtual void visit( FinallyStmt * finallyStmt );
    53         virtual void visit( WaitForStmt * waitforStmt );
    54         virtual void visit( WithStmt * withStmt );
    55         virtual void visit( NullStmt * nullStmt );
    56         virtual void visit( DeclStmt * declStmt );
    57         virtual void visit( ImplicitCtorDtorStmt * impCtorDtorStmt );
     39        virtual void visit( CompoundStmt * compoundStmt ) = 0;
     40        virtual void visit( ExprStmt * exprStmt ) = 0;
     41        virtual void visit( AsmStmt * asmStmt ) = 0;
     42        virtual void visit( IfStmt * ifStmt ) = 0;
     43        virtual void visit( WhileStmt * whileStmt ) = 0;
     44        virtual void visit( ForStmt * forStmt ) = 0;
     45        virtual void visit( SwitchStmt * switchStmt ) = 0;
     46        virtual void visit( CaseStmt * caseStmt ) = 0;
     47        virtual void visit( BranchStmt * branchStmt ) = 0;
     48        virtual void visit( ReturnStmt * returnStmt ) = 0;
     49        virtual void visit( ThrowStmt * throwStmt ) = 0;
     50        virtual void visit( TryStmt * tryStmt ) = 0;
     51        virtual void visit( CatchStmt * catchStmt ) = 0;
     52        virtual void visit( FinallyStmt * finallyStmt ) = 0;
     53        virtual void visit( WaitForStmt * waitforStmt ) = 0;
     54        virtual void visit( WithStmt * withStmt ) = 0;
     55        virtual void visit( NullStmt * nullStmt ) = 0;
     56        virtual void visit( DeclStmt * declStmt ) = 0;
     57        virtual void visit( ImplicitCtorDtorStmt * impCtorDtorStmt ) = 0;
    5858
    59         virtual void visit( ApplicationExpr * applicationExpr );
    60         virtual void visit( UntypedExpr * untypedExpr );
    61         virtual void visit( NameExpr * nameExpr );
    62         virtual void visit( CastExpr * castExpr );
    63         virtual void visit( VirtualCastExpr * castExpr );
    64         virtual void visit( AddressExpr * addressExpr );
    65         virtual void visit( LabelAddressExpr * labAddressExpr );
    66         virtual void visit( UntypedMemberExpr * memberExpr );
    67         virtual void visit( MemberExpr * memberExpr );
    68         virtual void visit( VariableExpr * variableExpr );
    69         virtual void visit( ConstantExpr * constantExpr );
    70         virtual void visit( SizeofExpr * sizeofExpr );
    71         virtual void visit( AlignofExpr * alignofExpr );
    72         virtual void visit( UntypedOffsetofExpr * offsetofExpr );
    73         virtual void visit( OffsetofExpr * offsetofExpr );
    74         virtual void visit( OffsetPackExpr * offsetPackExpr );
    75         virtual void visit( AttrExpr * attrExpr );
    76         virtual void visit( LogicalExpr * logicalExpr );
    77         virtual void visit( ConditionalExpr * conditionalExpr );
    78         virtual void visit( CommaExpr * commaExpr );
    79         virtual void visit( TypeExpr * typeExpr );
    80         virtual void visit( AsmExpr * asmExpr );
    81         virtual void visit( ImplicitCopyCtorExpr * impCpCtorExpr );
    82         virtual void visit( ConstructorExpr *  ctorExpr );
    83         virtual void visit( CompoundLiteralExpr * compLitExpr );
    84         virtual void visit( RangeExpr * rangeExpr );
    85         virtual void visit( UntypedTupleExpr * tupleExpr );
    86         virtual void visit( TupleExpr * tupleExpr );
    87         virtual void visit( TupleIndexExpr * tupleExpr );
    88         virtual void visit( TupleAssignExpr * assignExpr );
    89         virtual void visit( StmtExpr *  stmtExpr );
    90         virtual void visit( UniqueExpr *  uniqueExpr );
    91         virtual void visit( UntypedInitExpr *  initExpr );
    92         virtual void visit( InitExpr *  initExpr );
     59        virtual void visit( ApplicationExpr * applicationExpr ) = 0;
     60        virtual void visit( UntypedExpr * untypedExpr ) = 0;
     61        virtual void visit( NameExpr * nameExpr ) = 0;
     62        virtual void visit( CastExpr * castExpr ) = 0;
     63        virtual void visit( VirtualCastExpr * castExpr ) = 0;
     64        virtual void visit( AddressExpr * addressExpr ) = 0;
     65        virtual void visit( LabelAddressExpr * labAddressExpr ) = 0;
     66        virtual void visit( UntypedMemberExpr * memberExpr ) = 0;
     67        virtual void visit( MemberExpr * memberExpr ) = 0;
     68        virtual void visit( VariableExpr * variableExpr ) = 0;
     69        virtual void visit( ConstantExpr * constantExpr ) = 0;
     70        virtual void visit( SizeofExpr * sizeofExpr ) = 0;
     71        virtual void visit( AlignofExpr * alignofExpr ) = 0;
     72        virtual void visit( UntypedOffsetofExpr * offsetofExpr ) = 0;
     73        virtual void visit( OffsetofExpr * offsetofExpr ) = 0;
     74        virtual void visit( OffsetPackExpr * offsetPackExpr ) = 0;
     75        virtual void visit( AttrExpr * attrExpr ) = 0;
     76        virtual void visit( LogicalExpr * logicalExpr ) = 0;
     77        virtual void visit( ConditionalExpr * conditionalExpr ) = 0;
     78        virtual void visit( CommaExpr * commaExpr ) = 0;
     79        virtual void visit( TypeExpr * typeExpr ) = 0;
     80        virtual void visit( AsmExpr * asmExpr ) = 0;
     81        virtual void visit( ImplicitCopyCtorExpr * impCpCtorExpr ) = 0;
     82        virtual void visit( ConstructorExpr *  ctorExpr ) = 0;
     83        virtual void visit( CompoundLiteralExpr * compLitExpr ) = 0;
     84        virtual void visit( RangeExpr * rangeExpr ) = 0;
     85        virtual void visit( UntypedTupleExpr * tupleExpr ) = 0;
     86        virtual void visit( TupleExpr * tupleExpr ) = 0;
     87        virtual void visit( TupleIndexExpr * tupleExpr ) = 0;
     88        virtual void visit( TupleAssignExpr * assignExpr ) = 0;
     89        virtual void visit( StmtExpr *  stmtExpr ) = 0;
     90        virtual void visit( UniqueExpr *  uniqueExpr ) = 0;
     91        virtual void visit( UntypedInitExpr *  initExpr ) = 0;
     92        virtual void visit( InitExpr *  initExpr ) = 0;
    9393        virtual void visit( DeletedExpr * delExpr ) = 0;
    9494
    95         virtual void visit( VoidType * basicType );
    96         virtual void visit( BasicType * basicType );
    97         virtual void visit( PointerType * pointerType );
    98         virtual void visit( ArrayType * arrayType );
    99         virtual void visit( ReferenceType * refType );
    100         virtual void visit( FunctionType * functionType );
    101         virtual void visit( StructInstType * aggregateUseType );
    102         virtual void visit( UnionInstType * aggregateUseType );
    103         virtual void visit( EnumInstType * aggregateUseType );
    104         virtual void visit( TraitInstType * aggregateUseType );
    105         virtual void visit( TypeInstType * aggregateUseType );
    106         virtual void visit( TupleType * tupleType );
    107         virtual void visit( TypeofType * typeofType );
    108         virtual void visit( AttrType * attrType );
    109         virtual void visit( VarArgsType * varArgsType );
    110         virtual void visit( ZeroType * zeroType );
    111         virtual void visit( OneType * oneType );
     95        virtual void visit( VoidType * basicType ) = 0;
     96        virtual void visit( BasicType * basicType ) = 0;
     97        virtual void visit( PointerType * pointerType ) = 0;
     98        virtual void visit( ArrayType * arrayType ) = 0;
     99        virtual void visit( ReferenceType * refType ) = 0;
     100        virtual void visit( FunctionType * functionType ) = 0;
     101        virtual void visit( StructInstType * aggregateUseType ) = 0;
     102        virtual void visit( UnionInstType * aggregateUseType ) = 0;
     103        virtual void visit( EnumInstType * aggregateUseType ) = 0;
     104        virtual void visit( TraitInstType * aggregateUseType ) = 0;
     105        virtual void visit( TypeInstType * aggregateUseType ) = 0;
     106        virtual void visit( TupleType * tupleType ) = 0;
     107        virtual void visit( TypeofType * typeofType ) = 0;
     108        virtual void visit( AttrType * attrType ) = 0;
     109        virtual void visit( VarArgsType * varArgsType ) = 0;
     110        virtual void visit( ZeroType * zeroType ) = 0;
     111        virtual void visit( OneType * oneType ) = 0;
    112112
    113         virtual void visit( Designation * designation );
    114         virtual void visit( SingleInit * singleInit );
    115         virtual void visit( ListInit * listInit );
    116         virtual void visit( ConstructorInit * ctorInit );
     113        virtual void visit( Designation * designation ) = 0;
     114        virtual void visit( SingleInit * singleInit ) = 0;
     115        virtual void visit( ListInit * listInit ) = 0;
     116        virtual void visit( ConstructorInit * ctorInit ) = 0;
    117117
    118         virtual void visit( Subrange * subrange );
     118        virtual void visit( Subrange * subrange ) = 0;
    119119
    120         virtual void visit( Constant * constant );
     120        virtual void visit( Constant * constant ) = 0;
    121121
    122         virtual void visit( Attribute * attribute );
    123   private:
    124         virtual void handleAggregateDecl( AggregateDecl *aggregateDecl );
    125         virtual void handleNamedTypeDecl( NamedTypeDecl *typeDecl );
    126         virtual void handleReferenceToType( ReferenceToType *aggregateUseType );
     122        virtual void visit( Attribute * attribute ) = 0;
    127123};
    128124
  • src/prelude/builtins.c

    r807d8c3 r6a8df56  
    5858static inline long int ?\?( long int ep, unsigned long int y ) { // disallow negative exponent
    5959        if ( y == 0 ) return 1;                                                         // base case
    60     if ( ep == 2 ) return ep << (y - 1);                                // special case, positive shifting only
    61     typeof( ep ) op = 1;                                                                // accumulate odd product
    62     for ( ; y > 1; y >>= 1 ) {                                                  // squaring exponentiation, O(log2 y)
     60        if ( ep == 2 ) return ep << (y - 1);                            // special case, positive shifting only
     61        typeof( ep ) op = 1;                                                            // accumulate odd product
     62        for ( ; y > 1; y >>= 1 ) {                                                      // squaring exponentiation, O(log2 y)
    6363                if ( (y & 1) == 1 ) op *= ep;                                   // odd ?
    6464                ep *= ep;
    6565        } // for
    66     return ep * op;
     66        return ep * op;
    6767} // ?\?
    6868
    69 // FIX ME, cannot resolve the "T op = 1".
    70 
    71 // static inline forall( otype T | { void ?{}( T * this, one_t ); T ?*?( T, T ); } )
    72 // T ?\?( T ep, unsigned long int y ) {
    73 //     if ( y == 0 ) return 1;
    74 //     T op = 1;
    75 //     for ( ; y > 1; y >>= 1 ) {                                                       // squaring exponentiation, O(log2 y)
    76 //              if ( (y & 1) == 1 ) op = op * ep;                               // odd ?
    77 //              ep = ep * ep;
    78 //     } // for
    79 //     return ep * op;
    80 // } // ?\?
     69static inline forall( otype T | { void ?{}( T & this, one_t ); T ?*?( T, T ); } )
     70T ?\?( T ep, unsigned long int y ) {
     71        if ( y == 0 ) return 1;
     72        T op = 1;
     73        for ( ; y > 1; y >>= 1 ) {                                                      // squaring exponentiation, O(log2 y)
     74                if ( (y & 1) == 1 ) op = op * ep;                               // odd ?
     75                ep = ep * ep;
     76        } // for
     77        return ep * op;
     78} // ?\?
    8179
    8280// unsigned computation may be faster and larger
    8381static inline unsigned long int ?\?( unsigned long int ep, unsigned long int y ) { // disallow negative exponent
    8482        if ( y == 0 ) return 1;                                                         // base case
    85     if ( ep == 2 ) return ep << (y - 1);                                // special case, positive shifting only
    86     typeof( ep ) op = 1;                                                                // accumulate odd product
    87     for ( ; y > 1; y >>= 1 ) {                                                  // squaring exponentiation, O(log2 y)
     83        if ( ep == 2 ) return ep << (y - 1);                            // special case, positive shifting only
     84        typeof( ep ) op = 1;                                                            // accumulate odd product
     85        for ( ; y > 1; y >>= 1 ) {                                                      // squaring exponentiation, O(log2 y)
    8886                if ( (y & 1) == 1 ) op *= ep;                                   // odd ?
    8987                ep *= ep;
    9088        } // for
    91     return ep * op;
     89        return ep * op;
    9290} // ?\?
    9391
    9492static inline double ?\?( long int x, signed long int y ) {     // allow negative exponent
    95     if ( y >=  0 ) return (double)(x \ (unsigned long int)y);
    96     else return 1.0 / x \ (unsigned int)(-y);
     93        if ( y >=  0 ) return (double)(x \ (unsigned long int)y);
     94        else return 1.0 / x \ (unsigned int)(-y);
    9795} // ?\?
    9896
  • src/tests/.expect/KRfunctions.x64.txt

    r807d8c3 r6a8df56  
    8282    signed int __a__i_2;
    8383    signed int __b__i_2;
    84     signed int *(*_tmp_cp_ret0)(signed int __x__i_1, signed int __y__i_1);
    85     ((void)(__x__PFPi_ii__2=(((void)(_tmp_cp_ret0=__f10__FPFPi_ii__iPiPid__1(3, (&__a__i_2), (&__b__i_2), 3.5))) , _tmp_cp_ret0)));
    86     ((void)(_tmp_cp_ret0) /* ^?{} */);
     84    signed int *(*_tmp_cp_ret2)(signed int __x__i_1, signed int __y__i_1);
     85    ((void)(__x__PFPi_ii__2=(((void)(_tmp_cp_ret2=__f10__FPFPi_ii__iPiPid__1(3, (&__a__i_2), (&__b__i_2), 3.5))) , _tmp_cp_ret2)));
     86    ((void)(_tmp_cp_ret2) /* ^?{} */);
    8787    const signed int __f1__FCi_iPiPi__2(signed int __a__i_2, signed int *__b__Pi_2, signed int *__c__Pi_2){
    8888        __attribute__ ((unused)) const signed int ___retval_f1__Ci_2;
  • src/tests/.expect/declarationSpecifier.x64.txt

    r807d8c3 r6a8df56  
    698698signed int main(signed int __argc__i_1, char **__argv__PPc_1, char **__envp__PPc_1){
    699699    __attribute__ ((unused)) signed int ___retval_main__i_1;
    700     signed int _tmp_cp_ret0;
    701     ((void)(___retval_main__i_1=(((void)(_tmp_cp_ret0=invoke_main(__argc__i_1, __argv__PPc_1, __envp__PPc_1))) , _tmp_cp_ret0)) /* ?{} */);
    702     ((void)(_tmp_cp_ret0) /* ^?{} */);
     700    signed int _tmp_cp_ret2;
     701    ((void)(___retval_main__i_1=(((void)(_tmp_cp_ret2=invoke_main(__argc__i_1, __argv__PPc_1, __envp__PPc_1))) , _tmp_cp_ret2)) /* ?{} */);
     702    ((void)(_tmp_cp_ret2) /* ^?{} */);
    703703    return ___retval_main__i_1;
    704704}
  • src/tests/.expect/extension.x64.txt

    r807d8c3 r6a8df56  
    186186    __extension__ signed int __c__i_2;
    187187    ((void)(__extension__ __a__i_2=(__extension__ __b__i_2+__extension__ __c__i_2)));
    188     signed int _tmp_cp_ret0;
    189     ((void)(((void)(_tmp_cp_ret0=__extension__ __fred__Fi_i__1(3))) , _tmp_cp_ret0));
    190     ((void)(_tmp_cp_ret0) /* ^?{} */);
     188    signed int _tmp_cp_ret2;
     189    ((void)(((void)(_tmp_cp_ret2=__extension__ __fred__Fi_i__1(3))) , _tmp_cp_ret2));
     190    ((void)(_tmp_cp_ret2) /* ^?{} */);
    191191    __extension__ signed int __mary__Fi_i__2(signed int __p__i_2){
    192192        __attribute__ ((unused)) signed int ___retval_mary__i_2;
  • src/tests/.expect/gccExtensions.x64.txt

    r807d8c3 r6a8df56  
    171171signed int main(signed int __argc__i_1, char **__argv__PPc_1, char **__envp__PPc_1){
    172172    __attribute__ ((unused)) signed int ___retval_main__i_1;
    173     signed int _tmp_cp_ret0;
    174     ((void)(___retval_main__i_1=(((void)(_tmp_cp_ret0=invoke_main(__argc__i_1, __argv__PPc_1, __envp__PPc_1))) , _tmp_cp_ret0)) /* ?{} */);
    175     ((void)(_tmp_cp_ret0) /* ^?{} */);
     173    signed int _tmp_cp_ret2;
     174    ((void)(___retval_main__i_1=(((void)(_tmp_cp_ret2=invoke_main(__argc__i_1, __argv__PPc_1, __envp__PPc_1))) , _tmp_cp_ret2)) /* ?{} */);
     175    ((void)(_tmp_cp_ret2) /* ^?{} */);
    176176    return ___retval_main__i_1;
    177177}
  • src/tests/.expect/literals.x64.txt

    r807d8c3 r6a8df56  
    467467extern struct ifstream *__sin__R9sifstream_1;
    468468void __f__F_c__1(char __v__c_1){
    469     struct ofstream *_tmp_cp_ret0;
    470     struct ofstream *_tmp_cp_ret1;
    471469    struct ofstream *_tmp_cp_ret2;
     470    struct ofstream *_tmp_cp_ret3;
     471    struct ofstream *_tmp_cp_ret4;
    472472    __attribute__ ((unused)) struct ofstream *_thunk0(struct ofstream *_p0){
    473473        return __endl__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0__1(((_Bool (*)(void *__anonymous_object1379))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1380))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1381, _Bool __anonymous_object1382))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1383))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1384, const char *__anonymous_object1385))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1386))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1387, _Bool __anonymous_object1388))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1389))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1390))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1391))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1392))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1393))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1394, const char *__anonymous_object1395))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1396))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1397, const char *__anonymous_object1398))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1399))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1400))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1401, const char *__anonymous_object1402, unsigned long int __anonymous_object1403))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1404, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)_p0));
    474474    }
    475     ((void)(((void)(_tmp_cp_ret2=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1405))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1406))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1407, _Bool __anonymous_object1408))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1409))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1410, const char *__anonymous_object1411))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1412))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1413, _Bool __anonymous_object1414))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1415))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1416))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1417))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1418))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1419))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1420, const char *__anonymous_object1421))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1422))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1423, const char *__anonymous_object1424))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1425))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1426))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1427, const char *__anonymous_object1428, unsigned long int __anonymous_object1429))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1430, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret1=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0c__1(((_Bool (*)(void *__anonymous_object1431))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1432))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1433, _Bool __anonymous_object1434))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1435))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1436, const char *__anonymous_object1437))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1438))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1439, _Bool __anonymous_object1440))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1441))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1442))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1443))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1444))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1445))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1446, const char *__anonymous_object1447))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1448))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1449, const char *__anonymous_object1450))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1451))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1452))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1453, const char *__anonymous_object1454, unsigned long int __anonymous_object1455))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1456, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret0=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1457))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1458))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1459, _Bool __anonymous_object1460))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1461))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1462, const char *__anonymous_object1463))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1464))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1465, _Bool __anonymous_object1466))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1467))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1468))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1469))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1470))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1471))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1472, const char *__anonymous_object1473))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1474))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1475, const char *__anonymous_object1476))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1477))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1478))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1479, const char *__anonymous_object1480, unsigned long int __anonymous_object1481))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1482, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "char ")))) , _tmp_cp_ret0)), __v__c_1)))) , _tmp_cp_ret1)), ((void *(*)(void *__anonymous_object1483))(&_thunk0)))))) , _tmp_cp_ret2));
     475    ((void)(((void)(_tmp_cp_ret4=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1405))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1406))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1407, _Bool __anonymous_object1408))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1409))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1410, const char *__anonymous_object1411))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1412))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1413, _Bool __anonymous_object1414))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1415))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1416))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1417))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1418))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1419))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1420, const char *__anonymous_object1421))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1422))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1423, const char *__anonymous_object1424))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1425))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1426))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1427, const char *__anonymous_object1428, unsigned long int __anonymous_object1429))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1430, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret3=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0c__1(((_Bool (*)(void *__anonymous_object1431))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1432))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1433, _Bool __anonymous_object1434))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1435))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1436, const char *__anonymous_object1437))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1438))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1439, _Bool __anonymous_object1440))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1441))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1442))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1443))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1444))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1445))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1446, const char *__anonymous_object1447))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1448))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1449, const char *__anonymous_object1450))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1451))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1452))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1453, const char *__anonymous_object1454, unsigned long int __anonymous_object1455))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1456, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret2=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1457))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1458))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1459, _Bool __anonymous_object1460))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1461))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1462, const char *__anonymous_object1463))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1464))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1465, _Bool __anonymous_object1466))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1467))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1468))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1469))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1470))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1471))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1472, const char *__anonymous_object1473))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1474))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1475, const char *__anonymous_object1476))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1477))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1478))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1479, const char *__anonymous_object1480, unsigned long int __anonymous_object1481))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1482, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "char ")))) , _tmp_cp_ret2)), __v__c_1)))) , _tmp_cp_ret3)), ((void *(*)(void *__anonymous_object1483))(&_thunk0)))))) , _tmp_cp_ret4));
    476476}
    477477void __f__F_Sc__1(signed char __v__Sc_1){
    478     struct ofstream *_tmp_cp_ret3;
    479     struct ofstream *_tmp_cp_ret4;
    480478    struct ofstream *_tmp_cp_ret5;
     479    struct ofstream *_tmp_cp_ret6;
     480    struct ofstream *_tmp_cp_ret7;
    481481    __attribute__ ((unused)) struct ofstream *_thunk1(struct ofstream *_p0){
    482482        return __endl__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0__1(((_Bool (*)(void *__anonymous_object1484))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1485))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1486, _Bool __anonymous_object1487))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1488))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1489, const char *__anonymous_object1490))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1491))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1492, _Bool __anonymous_object1493))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1494))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1495))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1496))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1497))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1498))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1499, const char *__anonymous_object1500))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1501))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1502, const char *__anonymous_object1503))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1504))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1505))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1506, const char *__anonymous_object1507, unsigned long int __anonymous_object1508))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1509, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)_p0));
    483483    }
    484     ((void)(((void)(_tmp_cp_ret5=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1510))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1511))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1512, _Bool __anonymous_object1513))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1514))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1515, const char *__anonymous_object1516))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1517))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1518, _Bool __anonymous_object1519))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1520))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1521))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1522))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1523))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1524))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1525, const char *__anonymous_object1526))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1527))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1528, const char *__anonymous_object1529))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1530))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1531))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1532, const char *__anonymous_object1533, unsigned long int __anonymous_object1534))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1535, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret4=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0Sc__1(((_Bool (*)(void *__anonymous_object1536))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1537))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1538, _Bool __anonymous_object1539))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1540))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1541, const char *__anonymous_object1542))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1543))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1544, _Bool __anonymous_object1545))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1546))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1547))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1548))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1549))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1550))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1551, const char *__anonymous_object1552))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1553))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1554, const char *__anonymous_object1555))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1556))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1557))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1558, const char *__anonymous_object1559, unsigned long int __anonymous_object1560))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1561, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret3=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1562))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1563))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1564, _Bool __anonymous_object1565))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1566))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1567, const char *__anonymous_object1568))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1569))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1570, _Bool __anonymous_object1571))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1572))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1573))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1574))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1575))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1576))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1577, const char *__anonymous_object1578))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1579))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1580, const char *__anonymous_object1581))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1582))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1583))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1584, const char *__anonymous_object1585, unsigned long int __anonymous_object1586))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1587, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "signed char ")))) , _tmp_cp_ret3)), __v__Sc_1)))) , _tmp_cp_ret4)), ((void *(*)(void *__anonymous_object1588))(&_thunk1)))))) , _tmp_cp_ret5));
     484    ((void)(((void)(_tmp_cp_ret7=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1510))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1511))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1512, _Bool __anonymous_object1513))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1514))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1515, const char *__anonymous_object1516))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1517))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1518, _Bool __anonymous_object1519))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1520))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1521))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1522))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1523))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1524))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1525, const char *__anonymous_object1526))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1527))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1528, const char *__anonymous_object1529))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1530))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1531))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1532, const char *__anonymous_object1533, unsigned long int __anonymous_object1534))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1535, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret6=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0Sc__1(((_Bool (*)(void *__anonymous_object1536))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1537))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1538, _Bool __anonymous_object1539))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1540))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1541, const char *__anonymous_object1542))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1543))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1544, _Bool __anonymous_object1545))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1546))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1547))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1548))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1549))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1550))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1551, const char *__anonymous_object1552))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1553))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1554, const char *__anonymous_object1555))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1556))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1557))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1558, const char *__anonymous_object1559, unsigned long int __anonymous_object1560))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1561, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret5=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1562))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1563))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1564, _Bool __anonymous_object1565))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1566))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1567, const char *__anonymous_object1568))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1569))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1570, _Bool __anonymous_object1571))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1572))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1573))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1574))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1575))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1576))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1577, const char *__anonymous_object1578))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1579))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1580, const char *__anonymous_object1581))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1582))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1583))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1584, const char *__anonymous_object1585, unsigned long int __anonymous_object1586))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1587, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "signed char ")))) , _tmp_cp_ret5)), __v__Sc_1)))) , _tmp_cp_ret6)), ((void *(*)(void *__anonymous_object1588))(&_thunk1)))))) , _tmp_cp_ret7));
    485485}
    486486void __f__F_Uc__1(unsigned char __v__Uc_1){
    487     struct ofstream *_tmp_cp_ret6;
    488     struct ofstream *_tmp_cp_ret7;
    489487    struct ofstream *_tmp_cp_ret8;
     488    struct ofstream *_tmp_cp_ret9;
     489    struct ofstream *_tmp_cp_ret10;
    490490    __attribute__ ((unused)) struct ofstream *_thunk2(struct ofstream *_p0){
    491491        return __endl__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0__1(((_Bool (*)(void *__anonymous_object1589))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1590))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1591, _Bool __anonymous_object1592))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1593))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1594, const char *__anonymous_object1595))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1596))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1597, _Bool __anonymous_object1598))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1599))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1600))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1601))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1602))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1603))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1604, const char *__anonymous_object1605))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1606))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1607, const char *__anonymous_object1608))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1609))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1610))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1611, const char *__anonymous_object1612, unsigned long int __anonymous_object1613))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1614, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)_p0));
    492492    }
    493     ((void)(((void)(_tmp_cp_ret8=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1615))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1616))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1617, _Bool __anonymous_object1618))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1619))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1620, const char *__anonymous_object1621))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1622))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1623, _Bool __anonymous_object1624))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1625))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1626))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1627))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1628))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1629))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1630, const char *__anonymous_object1631))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1632))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1633, const char *__anonymous_object1634))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1635))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1636))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1637, const char *__anonymous_object1638, unsigned long int __anonymous_object1639))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1640, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret7=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0Uc__1(((_Bool (*)(void *__anonymous_object1641))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1642))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1643, _Bool __anonymous_object1644))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1645))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1646, const char *__anonymous_object1647))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1648))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1649, _Bool __anonymous_object1650))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1651))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1652))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1653))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1654))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1655))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1656, const char *__anonymous_object1657))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1658))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1659, const char *__anonymous_object1660))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1661))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1662))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1663, const char *__anonymous_object1664, unsigned long int __anonymous_object1665))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1666, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret6=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1667))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1668))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1669, _Bool __anonymous_object1670))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1671))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1672, const char *__anonymous_object1673))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1674))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1675, _Bool __anonymous_object1676))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1677))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1678))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1679))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1680))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1681))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1682, const char *__anonymous_object1683))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1684))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1685, const char *__anonymous_object1686))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1687))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1688))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1689, const char *__anonymous_object1690, unsigned long int __anonymous_object1691))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1692, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "unsigned char ")))) , _tmp_cp_ret6)), __v__Uc_1)))) , _tmp_cp_ret7)), ((void *(*)(void *__anonymous_object1693))(&_thunk2)))))) , _tmp_cp_ret8));
     493    ((void)(((void)(_tmp_cp_ret10=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1615))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1616))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1617, _Bool __anonymous_object1618))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1619))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1620, const char *__anonymous_object1621))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1622))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1623, _Bool __anonymous_object1624))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1625))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1626))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1627))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1628))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1629))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1630, const char *__anonymous_object1631))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1632))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1633, const char *__anonymous_object1634))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1635))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1636))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1637, const char *__anonymous_object1638, unsigned long int __anonymous_object1639))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1640, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret9=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0Uc__1(((_Bool (*)(void *__anonymous_object1641))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1642))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1643, _Bool __anonymous_object1644))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1645))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1646, const char *__anonymous_object1647))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1648))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1649, _Bool __anonymous_object1650))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1651))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1652))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1653))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1654))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1655))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1656, const char *__anonymous_object1657))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1658))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1659, const char *__anonymous_object1660))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1661))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1662))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1663, const char *__anonymous_object1664, unsigned long int __anonymous_object1665))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1666, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret8=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1667))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1668))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1669, _Bool __anonymous_object1670))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1671))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1672, const char *__anonymous_object1673))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1674))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1675, _Bool __anonymous_object1676))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1677))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1678))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1679))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1680))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1681))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1682, const char *__anonymous_object1683))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1684))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1685, const char *__anonymous_object1686))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1687))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1688))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1689, const char *__anonymous_object1690, unsigned long int __anonymous_object1691))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1692, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "unsigned char ")))) , _tmp_cp_ret8)), __v__Uc_1)))) , _tmp_cp_ret9)), ((void *(*)(void *__anonymous_object1693))(&_thunk2)))))) , _tmp_cp_ret10));
    494494}
    495495void __f__F_s__1(signed short int __v__s_1){
    496     struct ofstream *_tmp_cp_ret9;
    497     struct ofstream *_tmp_cp_ret10;
    498496    struct ofstream *_tmp_cp_ret11;
     497    struct ofstream *_tmp_cp_ret12;
     498    struct ofstream *_tmp_cp_ret13;
    499499    __attribute__ ((unused)) struct ofstream *_thunk3(struct ofstream *_p0){
    500500        return __endl__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0__1(((_Bool (*)(void *__anonymous_object1694))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1695))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1696, _Bool __anonymous_object1697))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1698))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1699, const char *__anonymous_object1700))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1701))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1702, _Bool __anonymous_object1703))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1704))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1705))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1706))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1707))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1708))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1709, const char *__anonymous_object1710))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1711))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1712, const char *__anonymous_object1713))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1714))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1715))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1716, const char *__anonymous_object1717, unsigned long int __anonymous_object1718))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1719, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)_p0));
    501501    }
    502     ((void)(((void)(_tmp_cp_ret11=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1720))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1721))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1722, _Bool __anonymous_object1723))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1724))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1725, const char *__anonymous_object1726))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1727))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1728, _Bool __anonymous_object1729))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1730))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1731))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1732))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1733))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1734))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1735, const char *__anonymous_object1736))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1737))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1738, const char *__anonymous_object1739))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1740))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1741))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1742, const char *__anonymous_object1743, unsigned long int __anonymous_object1744))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1745, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret10=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0s__1(((_Bool (*)(void *__anonymous_object1746))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1747))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1748, _Bool __anonymous_object1749))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1750))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1751, const char *__anonymous_object1752))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1753))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1754, _Bool __anonymous_object1755))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1756))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1757))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1758))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1759))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1760))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1761, const char *__anonymous_object1762))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1763))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1764, const char *__anonymous_object1765))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1766))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1767))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1768, const char *__anonymous_object1769, unsigned long int __anonymous_object1770))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1771, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret9=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1772))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1773))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1774, _Bool __anonymous_object1775))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1776))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1777, const char *__anonymous_object1778))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1779))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1780, _Bool __anonymous_object1781))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1782))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1783))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1784))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1785))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1786))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1787, const char *__anonymous_object1788))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1789))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1790, const char *__anonymous_object1791))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1792))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1793))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1794, const char *__anonymous_object1795, unsigned long int __anonymous_object1796))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1797, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "signed short int")))) , _tmp_cp_ret9)), __v__s_1)))) , _tmp_cp_ret10)), ((void *(*)(void *__anonymous_object1798))(&_thunk3)))))) , _tmp_cp_ret11));
     502    ((void)(((void)(_tmp_cp_ret13=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1720))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1721))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1722, _Bool __anonymous_object1723))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1724))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1725, const char *__anonymous_object1726))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1727))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1728, _Bool __anonymous_object1729))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1730))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1731))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1732))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1733))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1734))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1735, const char *__anonymous_object1736))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1737))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1738, const char *__anonymous_object1739))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1740))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1741))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1742, const char *__anonymous_object1743, unsigned long int __anonymous_object1744))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1745, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret12=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0s__1(((_Bool (*)(void *__anonymous_object1746))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1747))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1748, _Bool __anonymous_object1749))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1750))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1751, const char *__anonymous_object1752))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1753))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1754, _Bool __anonymous_object1755))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1756))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1757))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1758))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1759))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1760))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1761, const char *__anonymous_object1762))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1763))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1764, const char *__anonymous_object1765))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1766))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1767))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1768, const char *__anonymous_object1769, unsigned long int __anonymous_object1770))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1771, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret11=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1772))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1773))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1774, _Bool __anonymous_object1775))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1776))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1777, const char *__anonymous_object1778))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1779))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1780, _Bool __anonymous_object1781))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1782))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1783))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1784))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1785))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1786))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1787, const char *__anonymous_object1788))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1789))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1790, const char *__anonymous_object1791))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1792))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1793))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1794, const char *__anonymous_object1795, unsigned long int __anonymous_object1796))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1797, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "signed short int")))) , _tmp_cp_ret11)), __v__s_1)))) , _tmp_cp_ret12)), ((void *(*)(void *__anonymous_object1798))(&_thunk3)))))) , _tmp_cp_ret13));
    503503}
    504504void __f__F_Us__1(unsigned short int __v__Us_1){
    505     struct ofstream *_tmp_cp_ret12;
    506     struct ofstream *_tmp_cp_ret13;
    507505    struct ofstream *_tmp_cp_ret14;
     506    struct ofstream *_tmp_cp_ret15;
     507    struct ofstream *_tmp_cp_ret16;
    508508    __attribute__ ((unused)) struct ofstream *_thunk4(struct ofstream *_p0){
    509509        return __endl__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0__1(((_Bool (*)(void *__anonymous_object1799))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1800))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1801, _Bool __anonymous_object1802))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1803))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1804, const char *__anonymous_object1805))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1806))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1807, _Bool __anonymous_object1808))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1809))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1810))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1811))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1812))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1813))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1814, const char *__anonymous_object1815))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1816))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1817, const char *__anonymous_object1818))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1819))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1820))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1821, const char *__anonymous_object1822, unsigned long int __anonymous_object1823))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1824, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)_p0));
    510510    }
    511     ((void)(((void)(_tmp_cp_ret14=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1825))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1826))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1827, _Bool __anonymous_object1828))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1829))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1830, const char *__anonymous_object1831))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1832))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1833, _Bool __anonymous_object1834))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1835))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1836))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1837))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1838))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1839))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1840, const char *__anonymous_object1841))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1842))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1843, const char *__anonymous_object1844))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1845))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1846))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1847, const char *__anonymous_object1848, unsigned long int __anonymous_object1849))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1850, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret13=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0Us__1(((_Bool (*)(void *__anonymous_object1851))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1852))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1853, _Bool __anonymous_object1854))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1855))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1856, const char *__anonymous_object1857))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1858))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1859, _Bool __anonymous_object1860))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1861))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1862))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1863))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1864))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1865))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1866, const char *__anonymous_object1867))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1868))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1869, const char *__anonymous_object1870))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1871))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1872))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1873, const char *__anonymous_object1874, unsigned long int __anonymous_object1875))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1876, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret12=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1877))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1878))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1879, _Bool __anonymous_object1880))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1881))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1882, const char *__anonymous_object1883))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1884))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1885, _Bool __anonymous_object1886))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1887))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1888))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1889))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1890))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1891))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1892, const char *__anonymous_object1893))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1894))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1895, const char *__anonymous_object1896))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1897))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1898))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1899, const char *__anonymous_object1900, unsigned long int __anonymous_object1901))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1902, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "unsigned short int")))) , _tmp_cp_ret12)), __v__Us_1)))) , _tmp_cp_ret13)), ((void *(*)(void *__anonymous_object1903))(&_thunk4)))))) , _tmp_cp_ret14));
     511    ((void)(((void)(_tmp_cp_ret16=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1825))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1826))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1827, _Bool __anonymous_object1828))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1829))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1830, const char *__anonymous_object1831))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1832))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1833, _Bool __anonymous_object1834))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1835))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1836))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1837))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1838))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1839))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1840, const char *__anonymous_object1841))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1842))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1843, const char *__anonymous_object1844))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1845))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1846))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1847, const char *__anonymous_object1848, unsigned long int __anonymous_object1849))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1850, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret15=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0Us__1(((_Bool (*)(void *__anonymous_object1851))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1852))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1853, _Bool __anonymous_object1854))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1855))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1856, const char *__anonymous_object1857))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1858))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1859, _Bool __anonymous_object1860))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1861))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1862))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1863))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1864))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1865))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1866, const char *__anonymous_object1867))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1868))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1869, const char *__anonymous_object1870))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1871))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1872))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1873, const char *__anonymous_object1874, unsigned long int __anonymous_object1875))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1876, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret14=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1877))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1878))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1879, _Bool __anonymous_object1880))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1881))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1882, const char *__anonymous_object1883))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1884))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1885, _Bool __anonymous_object1886))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1887))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1888))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1889))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1890))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1891))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1892, const char *__anonymous_object1893))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1894))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1895, const char *__anonymous_object1896))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1897))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1898))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1899, const char *__anonymous_object1900, unsigned long int __anonymous_object1901))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1902, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "unsigned short int")))) , _tmp_cp_ret14)), __v__Us_1)))) , _tmp_cp_ret15)), ((void *(*)(void *__anonymous_object1903))(&_thunk4)))))) , _tmp_cp_ret16));
    512512}
    513513void __f__F_Ul__1(unsigned long int __v__Ul_1){
    514     struct ofstream *_tmp_cp_ret15;
    515     struct ofstream *_tmp_cp_ret16;
    516514    struct ofstream *_tmp_cp_ret17;
     515    struct ofstream *_tmp_cp_ret18;
     516    struct ofstream *_tmp_cp_ret19;
    517517    __attribute__ ((unused)) struct ofstream *_thunk5(struct ofstream *_p0){
    518518        return __endl__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0__1(((_Bool (*)(void *__anonymous_object1904))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1905))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1906, _Bool __anonymous_object1907))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1908))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1909, const char *__anonymous_object1910))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1911))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1912, _Bool __anonymous_object1913))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1914))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1915))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1916))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1917))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1918))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1919, const char *__anonymous_object1920))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1921))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1922, const char *__anonymous_object1923))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1924))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1925))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1926, const char *__anonymous_object1927, unsigned long int __anonymous_object1928))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1929, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)_p0));
    519519    }
    520     ((void)(((void)(_tmp_cp_ret17=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1930))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1931))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1932, _Bool __anonymous_object1933))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1934))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1935, const char *__anonymous_object1936))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1937))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1938, _Bool __anonymous_object1939))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1940))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1941))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1942))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1943))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1944))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1945, const char *__anonymous_object1946))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1947))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1948, const char *__anonymous_object1949))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1950))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1951))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1952, const char *__anonymous_object1953, unsigned long int __anonymous_object1954))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1955, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret16=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0Ul__1(((_Bool (*)(void *__anonymous_object1956))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1957))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1958, _Bool __anonymous_object1959))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1960))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1961, const char *__anonymous_object1962))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1963))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1964, _Bool __anonymous_object1965))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1966))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1967))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1968))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1969))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1970))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1971, const char *__anonymous_object1972))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1973))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1974, const char *__anonymous_object1975))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1976))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1977))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1978, const char *__anonymous_object1979, unsigned long int __anonymous_object1980))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1981, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret15=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1982))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1983))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1984, _Bool __anonymous_object1985))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1986))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1987, const char *__anonymous_object1988))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1989))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1990, _Bool __anonymous_object1991))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1992))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1993))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1994))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1995))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1996))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1997, const char *__anonymous_object1998))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1999))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object2000, const char *__anonymous_object2001))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object2002))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object2003))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object2004, const char *__anonymous_object2005, unsigned long int __anonymous_object2006))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object2007, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "size_t")))) , _tmp_cp_ret15)), __v__Ul_1)))) , _tmp_cp_ret16)), ((void *(*)(void *__anonymous_object2008))(&_thunk5)))))) , _tmp_cp_ret17));
     520    ((void)(((void)(_tmp_cp_ret19=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1930))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1931))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1932, _Bool __anonymous_object1933))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1934))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1935, const char *__anonymous_object1936))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1937))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1938, _Bool __anonymous_object1939))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1940))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1941))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1942))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1943))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1944))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1945, const char *__anonymous_object1946))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1947))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1948, const char *__anonymous_object1949))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1950))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1951))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1952, const char *__anonymous_object1953, unsigned long int __anonymous_object1954))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1955, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret18=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0Ul__1(((_Bool (*)(void *__anonymous_object1956))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1957))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1958, _Bool __anonymous_object1959))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1960))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1961, const char *__anonymous_object1962))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1963))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1964, _Bool __anonymous_object1965))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1966))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1967))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1968))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1969))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1970))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1971, const char *__anonymous_object1972))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1973))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1974, const char *__anonymous_object1975))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1976))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1977))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1978, const char *__anonymous_object1979, unsigned long int __anonymous_object1980))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1981, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret17=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1982))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1983))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1984, _Bool __anonymous_object1985))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1986))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1987, const char *__anonymous_object1988))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1989))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1990, _Bool __anonymous_object1991))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1992))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1993))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1994))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1995))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1996))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1997, const char *__anonymous_object1998))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1999))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object2000, const char *__anonymous_object2001))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object2002))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object2003))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object2004, const char *__anonymous_object2005, unsigned long int __anonymous_object2006))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object2007, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "size_t")))) , _tmp_cp_ret17)), __v__Ul_1)))) , _tmp_cp_ret18)), ((void *(*)(void *__anonymous_object2008))(&_thunk5)))))) , _tmp_cp_ret19));
    521521}
    522522signed int __main__Fi___1(){
     
    13671367signed int main(signed int __argc__i_1, char **__argv__PPc_1, char **__envp__PPc_1){
    13681368    __attribute__ ((unused)) signed int ___retval_main__i_1;
    1369     signed int _tmp_cp_ret0;
    1370     ((void)(___retval_main__i_1=(((void)(_tmp_cp_ret0=invoke_main(__argc__i_1, __argv__PPc_1, __envp__PPc_1))) , _tmp_cp_ret0)) /* ?{} */);
    1371     ((void)(_tmp_cp_ret0) /* ^?{} */);
     1369    signed int _tmp_cp_ret2;
     1370    ((void)(___retval_main__i_1=(((void)(_tmp_cp_ret2=invoke_main(__argc__i_1, __argv__PPc_1, __envp__PPc_1))) , _tmp_cp_ret2)) /* ?{} */);
     1371    ((void)(_tmp_cp_ret2) /* ^?{} */);
    13721372    return ___retval_main__i_1;
    13731373}
Note: See TracChangeset for help on using the changeset viewer.