Changeset f1e012b
- Timestamp:
- Jan 19, 2016, 1:28:25 PM (9 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- ca1c11f
- Parents:
- 71f4e4f
- Location:
- src
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
src/CodeGen/CodeGenerator.cc
r71f4e4f rf1e012b 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed Jan 13 16:26:59201613 // Update Count : 2 3412 // Last Modified On : Tue Jan 19 13:15:44 2016 13 // Update Count : 251 14 14 // 15 15 … … 258 258 259 259 case OT_CALL: 260 case OT_CTOR:261 case OT_DTOR:262 260 // there are no intrinsic definitions of the function call operator or constructors or destructors 263 261 assert( false ); 264 262 break; 263 264 case OT_CTOR: 265 // intrinsic constructors should never be called directly - they should be transformed back into Initializer nodes 266 assert(false); 267 break; 268 269 case OT_DTOR: 270 // intrinsic destructors do nothing - don't generate any code 271 output << " // " << dynamic_cast<VariableExpr*>(applicationExpr->get_function())->get_var()->get_name() << endl; 272 break; 265 273 266 274 case OT_PREFIX: … … 279 287 output << opInfo.symbol; 280 288 break; 289 281 290 282 291 case OT_INFIX: … … 324 333 325 334 case OT_CALL: 335 assert( false ); 336 326 337 case OT_CTOR: 327 338 case OT_DTOR: 328 assert( false ); 339 // intrinsic constructors should never be called 340 // intrinsic destructors do nothing 329 341 break; 330 342 -
src/GenPoly/Specialize.cc
r71f4e4f rf1e012b 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Specialize.cc -- 7 // Specialize.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Tue Sep 22 14:04:13 201513 // Update Count : 1512 // Last Modified On : Tue Jan 19 10:40:37 2016 13 // Update Count : 23 14 14 // 15 15 … … 140 140 return new AddressExpr( new VariableExpr( thunkFunc ) ); 141 141 } 142 142 143 143 Expression * Specialize::doSpecialization( Type *formalType, Expression *actual, InferredParams *inferParams ) { 144 assert( actual->get_results().size() >= 1 ); // using front, should have this assert 144 145 if ( needsSpecialization( formalType, actual->get_results().front(), env ) ) { 145 146 FunctionType *funType; … … 197 198 198 199 Expression * Specialize::mutate( CastExpr *castExpr ) { 200 assert( castExpr->get_results().size() >= 1 && "Check that functions with void return aren't returning a value" ); 199 201 castExpr->get_arg()->acceptMutator( *this ); 200 202 Expression *specialized = doSpecialization( castExpr->get_results().front(), castExpr->get_arg() ); -
src/InitTweak/FixInit.cc
r71f4e4f rf1e012b 10 10 // Created On : Wed Jan 13 16:29:30 2016 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed Jan 13 16:45:37201613 // Update Count : 1712 // Last Modified On : Tue Jan 19 13:25:13 2016 13 // Update Count : 27 14 14 // 15 15 … … 35 35 36 36 virtual ObjectDecl * mutate( ObjectDecl *objDecl ); 37 38 virtual CompoundStmt * mutate( CompoundStmt * compoundStmt ); 37 39 }; 38 40 … … 50 52 ObjectDecl *FixInit::mutate( ObjectDecl *objDecl ) { 51 53 if ( ConstructorInit * ctorInit = dynamic_cast< ConstructorInit * >( objDecl->get_init() ) ) { 52 // a decision should have been made by the resolver, so either ctor is NULL or init isNULL54 // a decision should have been made by the resolver, so ctor and init are not both non-NULL 53 55 assert( ! ctorInit->get_ctor() || ! ctorInit->get_init() ); 54 56 if ( Expression * ctor = ctorInit->get_ctor() ) { … … 61 63 ctorInit->set_init( NULL ); 62 64 } else { 63 // one of them should be non-NULL64 assert( ctorInit->get_ctor() || ctorInit->get_init());65 // no constructor and no initializer, which is okay 66 objDecl->set_init( NULL ); 65 67 } 66 68 delete ctorInit; … … 68 70 return objDecl; 69 71 } 72 73 CompoundStmt * FixInit::mutate( CompoundStmt * compoundStmt ) { 74 std::list< Statement * > & statements = compoundStmt->get_kids(); 75 for ( std::list< Statement * >::iterator it = statements.begin(); it != statements.end(); ++it ) { 76 // remove if instrinsic destructor statement 77 // xxx - test user manually calling intrinsic functions - what happens? 78 if ( ExprStmt * exprStmt = dynamic_cast< ExprStmt * >( *it ) ) { 79 if ( ApplicationExpr * appExpr = dynamic_cast< ApplicationExpr * >( exprStmt->get_expr() ) ) { 80 if ( VariableExpr * function = dynamic_cast< VariableExpr * >( appExpr->get_function() ) ) { 81 if ( function->get_var()->get_name() == "^?{}" && function->get_var()->get_linkage() == LinkageSpec::Intrinsic ) { 82 statements.erase(it++); 83 } 84 } 85 } 86 } 87 } 88 // mutate non-destructor statements 89 return Mutator::mutate( compoundStmt ); 90 } 91 70 92 } // namespace InitTweak 71 93 -
src/InitTweak/RemoveInit.cc
r71f4e4f rf1e012b 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed Jan 13 15:19:35201613 // Update Count : 1 5412 // Last Modified On : Tue Jan 19 11:12:49 2016 13 // Update Count : 165 14 14 // 15 15 … … 59 59 static void generateCtorDtor( std::list< Declaration * > &translationUnit ); 60 60 61 CtorDtor() : inFunction( false ) {} 62 61 63 virtual ObjectDecl * mutate( ObjectDecl * ); 62 64 virtual DeclarationWithType * mutate( FunctionDecl *functionDecl ); … … 71 73 72 74 protected: 75 bool inFunction; 73 76 74 77 // to be added before block ends - use push_front so order is correct … … 93 96 if (objDecl->get_init() && dynamic_cast<TypeInstType*>(objDecl->get_type())) { 94 97 if (SingleInit * single = dynamic_cast<SingleInit*>(objDecl->get_init())) { 95 UntypedExpr *assign = new UntypedExpr( new NameExpr( "?=?" ) ); 98 // xxx this can be more complicated - consider ListInit 99 UntypedExpr *assign = new UntypedExpr( new NameExpr( "?{}" ) ); 96 100 assign->get_args().push_back( new AddressExpr (new NameExpr( objDecl->get_name() ) ) ); 97 101 assign->get_args().push_back( single->get_value()->clone() ); … … 107 111 // hands off if the function returns an lvalue - we don't want to allocate a temporary if a variable's address 108 112 // is being returned 113 // xxx - this should construct rather than assign 109 114 if ( returnStmt->get_expr() && returnVals.size() == 1 && funcName != "?=?" && ! returnVals.front()->get_type()->get_isLvalue() ) { 110 115 ObjectDecl *newObj = new ObjectDecl( tempNamer.newName(), DeclarationNode::NoStorageClass, LinkageSpec::C, 0, returnVals.front()->get_type()->clone(), 0 ); … … 186 191 // hands off if designated or if @= 187 192 if ( tryConstruct( objDecl ) ) { 188 Expression * ctor = makeCtorDtorExpr( "?{}", objDecl, makeInitList( objDecl->get_init() ) ); 189 Expression * dtor = makeCtorDtorExpr( "^?{}", objDecl, std::list< Expression * >() ); 190 191 // need to remember init expression, in case no ctors exist 192 // if ctor does exist, want to use ctor expression instead of init 193 // push this decision to the resolver 194 objDecl->set_init( new ConstructorInit( ctor, objDecl->get_init() ) ); 195 destructorStmts.push_front( new ExprStmt( noLabels, dtor ) ); 193 if ( inFunction ) { 194 Expression * ctor = makeCtorDtorExpr( "?{}", objDecl, makeInitList( objDecl->get_init() ) ); 195 Expression * dtor = makeCtorDtorExpr( "^?{}", objDecl, std::list< Expression * >() ); 196 197 // need to remember init expression, in case no ctors exist 198 // if ctor does exist, want to use ctor expression instead of init 199 // push this decision to the resolver 200 objDecl->set_init( new ConstructorInit( ctor, objDecl->get_init() ) ); 201 destructorStmts.push_front( new ExprStmt( noLabels, dtor ) ); 202 } else { 203 // xxx - find a way to construct/destruct globals 204 // hack: implicit "static" initialization routine for each struct type? or something similar? 205 // --ties into module system 206 } 196 207 } 197 208 return objDecl; … … 200 211 DeclarationWithType * CtorDtor::mutate( FunctionDecl *functionDecl ) { 201 212 // parameters should not be constructed and destructed, so don't mutate FunctionType 213 bool oldInFunc = inFunction; 202 214 mutateAll( functionDecl->get_oldDecls(), *this ); 215 inFunction = true; 203 216 functionDecl->set_statements( maybeMutate( functionDecl->get_statements(), *this ) ); 217 inFunction = oldInFunc; 204 218 return functionDecl; 205 219 } -
src/MakeLibCfa.cc
r71f4e4f rf1e012b 10 10 // Created On : Sat May 16 10:33:33 2015 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : T hu Jan 07 13:34:39201613 // Update Count : 2012 // Last Modified On : Tue Jan 19 13:20:26 2016 13 // Update Count : 40 14 14 // 15 15 … … 54 54 assert( param != funcDecl->get_functionType()->get_parameters().end() ); 55 55 56 if ( (*param)->get_name() == "" ) { 57 (*param)->set_name( paramNamer.newName() ); 58 (*param)->set_linkage( LinkageSpec::C ); 59 } // if 56 for ( ; param != funcDecl->get_functionType()->get_parameters().end(); ++param ) { 57 if ( (*param)->get_name() == "" ) { 58 (*param)->set_name( paramNamer.newName() ); 59 (*param)->set_linkage( LinkageSpec::C ); 60 } 61 newExpr->get_args().push_back( new VariableExpr( *param ) ); 62 } // for 63 64 funcDecl->set_statements( new CompoundStmt( std::list< Label >() ) ); 65 newDecls.push_back( funcDecl ); 60 66 61 67 switch ( opInfo.type ) { … … 65 71 case CodeGen::OT_POSTFIX: 66 72 case CodeGen::OT_INFIX: 67 newExpr->get_args().push_back( new VariableExpr( *param ) );68 break;69 73 case CodeGen::OT_PREFIXASSIGN: 70 74 case CodeGen::OT_POSTFIXASSIGN: 71 75 case CodeGen::OT_INFIXASSIGN: 72 { 73 newExpr->get_args().push_back( new VariableExpr( *param ) ); 74 // UntypedExpr *deref = new UntypedExpr( new NameExpr( "*?" ) ); 75 // deref->get_args().push_back( new VariableExpr( *param ) ); 76 // newExpr->get_args().push_back( deref ); 76 funcDecl->get_statements()->get_kids().push_back( new ReturnStmt( std::list< Label >(), newExpr ) ); 77 77 break; 78 }79 78 case CodeGen::OT_CTOR: 79 // ctors don't return a value 80 if ( funcDecl->get_functionType()->get_parameters().size() == 1 ) { 81 // intrinsic default constructors should do nothing 82 // delete newExpr; 83 break; 84 } else { 85 assert( funcDecl->get_functionType()->get_parameters().size() == 2 ); 86 // anything else is a single parameter constructor that is effectively a C-style assignment 87 // delete newExpr->get_function(); 88 assert(newExpr->get_args().size()==2); 89 newExpr->set_function( new NameExpr( "?=?" ) ); 90 funcDecl->get_statements()->get_kids().push_back( new ExprStmt( std::list< Label >(), newExpr ) ); 91 } 92 break; 80 93 case CodeGen::OT_DTOR: 94 // intrinsic destructors should do nothing 95 // delete newExpr; 96 break; 81 97 case CodeGen::OT_CONSTANT: 82 98 case CodeGen::OT_LABELADDRESS: … … 84 100 assert( false ); 85 101 } // switch 86 87 for ( param++; param != funcDecl->get_functionType()->get_parameters().end(); ++param ) {88 if ( (*param)->get_name() == "" ) {89 (*param)->set_name( paramNamer.newName() );90 (*param)->set_linkage( LinkageSpec::C );91 }92 newExpr->get_args().push_back( new VariableExpr( *param ) );93 } // for94 funcDecl->set_statements( new CompoundStmt( std::list< Label >() ) );95 funcDecl->get_statements()->get_kids().push_back( new ReturnStmt( std::list< Label >(), newExpr ) );96 newDecls.push_back( funcDecl );97 102 } 98 103 … … 107 112 } 108 113 } // namespace LibCfa 109 110 // Local Variables: //111 // tab-width: 4 //112 // mode: c++ //113 // compile-command: "make install" //114 // End: // -
src/Parser/TypeData.cc
r71f4e4f rf1e012b 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // TypeData.cc -- 7 // TypeData.cc -- 8 8 // 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Sat May 16 15:12:51 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : T ue Jul 14 14:57:23 201513 // Update Count : 3 211 // Last Modified By : Rob Schluntz 12 // Last Modified On : Thu Jan 14 10:43:42 2016 13 // Update Count : 36 14 14 // 15 15 … … 436 436 for ( std::list< TypeDecl* >::iterator i = outputList.begin(); i != outputList.end(); ++i ) { 437 437 if ( (*i)->get_kind() == TypeDecl::Any ) { 438 // add assertion parameters to `type' tyvars 439 // add: T * ?=?(T *, T) 438 440 FunctionType *assignType = new FunctionType( Type::Qualifiers(), false ); 439 441 assignType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ) ), 0 ) ); … … 441 443 assignType->get_returnVals().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ), 0 ) ); 442 444 (*i)->get_assertions().push_front( new FunctionDecl( "?=?", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, assignType, 0, false, false ) ); 445 446 // add: void ?{}(T *) 447 FunctionType *ctorType = new FunctionType( Type::Qualifiers(), false ); 448 ctorType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ) ), 0 ) ); 449 (*i)->get_assertions().push_front( new FunctionDecl( "?{}", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, ctorType, 0, false, false ) ); 450 451 // add: void ^?{}(T *) 452 FunctionType *dtorType = new FunctionType( Type::Qualifiers(), false ); 453 dtorType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ) ), 0 ) ); 454 (*i)->get_assertions().push_front( new FunctionDecl( "^?{}", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, dtorType, 0, false, false ) ); 443 455 } // if 444 456 } // for -
src/ResolvExpr/Resolver.cc
r71f4e4f rf1e012b 10 10 // Created On : Sun May 17 12:17:01 2015 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed Jan 13 16:23:51201613 // Update Count : 18612 // Last Modified On : Thu Jan 14 16:45:32 2016 13 // Update Count : 203 14 14 // 15 15 … … 60 60 void resolveAggrInit( AggregateDecl *, InitIterator &, InitIterator & ); 61 61 void resolveSingleAggrInit( Declaration *, InitIterator &, InitIterator & ); 62 void fallbackInit( ConstructorInit * ctorInit ); 62 63 63 64 std::list< Type * > functionReturn; … … 467 468 } 468 469 470 // ConstructorInit - fall back on C-style initializer 471 void Resolver::fallbackInit( ConstructorInit * ctorInit ) { 472 // could not find valid constructor, or found an intrinsic constructor 473 // fall back on C-style initializer 474 delete ctorInit->get_ctor(); 475 ctorInit->set_ctor( NULL ); 476 maybeAccept( ctorInit->get_init(), *this ); 477 } 478 469 479 void Resolver::visit( ConstructorInit *ctorInit ) { 470 480 TypeEnvironment env; 471 481 AlternativeFinder finder( *this, env ); 472 482 finder.find( ctorInit->get_ctor() ); 483 473 484 if ( finder.get_alternatives().size() == 0 ) { 474 // could not find valid constructor 475 delete ctorInit->get_ctor(); 476 ctorInit->set_ctor( NULL ); 477 478 maybeAccept( ctorInit->get_init(), *this ); 485 fallbackInit( ctorInit ); 479 486 } else if ( finder.get_alternatives().size() == 1 ) { 487 Alternative &choice = finder.get_alternatives().front(); 488 if ( ApplicationExpr * appExpr = dynamic_cast< ApplicationExpr * >( choice.expr ) ) { 489 if ( VariableExpr * function = dynamic_cast< VariableExpr * > ( appExpr->get_function() ) ) { 490 if ( function->get_var()->get_linkage() == LinkageSpec::Intrinsic ) { 491 // if the constructor that was found is intrinsic, reset to C-style 492 // initializer so that code generation is easy to handle 493 fallbackInit( ctorInit ); 494 return; 495 } 496 } 497 } 480 498 // found a constructor - can get rid of C-style initializer 481 Alternative &choice = finder.get_alternatives().front();482 499 Expression *newExpr = choice.expr->clone(); 483 500 finishExpr( newExpr, choice.env ); -
src/libcfa/prelude.cf
r71f4e4f rf1e012b 1 // -*- Mode: C -*- 2 // 1 // -*- Mode: C -*- 2 // 3 3 // Copyright (C) Glen Ditchfield 1994, 1999 4 // 4 // 5 5 // prelude.cf -- Standard Cforall Preample for C99 6 // 6 // 7 7 // Author : Glen Ditchfield 8 8 // Created On : Sat Nov 29 07:23:41 2014 … … 116 116 forall( ftype FT ) lvalue FT *?( FT * ); 117 117 118 _Bool +?( _Bool ), -?( _Bool ), ~?( _Bool ); 119 signed int +?( signed int ), -?( signed int ), ~?( signed int ); 120 unsigned int +?( unsigned int ), -?( unsigned int ), ~?( unsigned int ); 121 signed long int +?( signed long int ), -?( signed long int ), ~?( signed long int ); 122 unsigned long int +?( unsigned long int ), -?( unsigned long int ), ~?( unsigned long int ); 123 signed long long int +?( signed long long int ), -?( signed long long int ), ~?( signed long long int ); 124 unsigned long long int +?( unsigned long long int ), -?( unsigned long long int ), ~?( unsigned long long int ); 118 _Bool +?( _Bool ), -?( _Bool ), ~?( _Bool ); 119 signed int +?( signed int ), -?( signed int ), ~?( signed int ); 120 unsigned int +?( unsigned int ), -?( unsigned int ), ~?( unsigned int ); 121 signed long int +?( signed long int ), -?( signed long int ), ~?( signed long int ); 122 unsigned long int +?( unsigned long int ), -?( unsigned long int ), ~?( unsigned long int ); 123 signed long long int +?( signed long long int ), -?( signed long long int ), ~?( signed long long int ); 124 unsigned long long int +?( unsigned long long int ), -?( unsigned long long int ), ~?( unsigned long long int ); 125 125 float +?( float ), -?( float ); 126 126 double +?( double ), -?( double ); … … 626 626 ?+=?( long double _Complex *, long double _Complex ), ?+=?( volatile long double _Complex *, long double _Complex ), 627 627 ?-=?( long double _Complex *, long double _Complex ), ?-=?( volatile long double _Complex *, long double _Complex ); 628 629 630 631 632 633 // ------------------------------------------------------------ 634 // 635 // Section ??? Constructors and Destructors 636 // 637 // ------------------------------------------------------------ 638 639 // default ctor 640 void ?{}( _Bool * ), ?{}( volatile _Bool * ); 641 void ?{}( unsigned char * ), ?{}( volatile unsigned char * ); 642 void ?{}( signed int * ), ?{}( volatile signed int * ); 643 void ?{}( unsigned int * ), ?{}( volatile unsigned int * ); 644 void ?{}( signed long int * ), ?{}( volatile signed long int * ); 645 void ?{}( unsigned long int * ), ?{}( volatile unsigned long int * ); 646 void ?{}( signed long long int * ), ?{}( volatile signed long long int * ); 647 void ?{}( unsigned long long int * ), ?{}( volatile unsigned long long int * ); 648 void ?{}( float * ), ?{}( volatile float * ); 649 void ?{}( double * ), ?{}( volatile double * ); 650 void ?{}( long double * ), ?{}( volatile long double * ); 651 void ?{}( float _Complex * ), ?{}( volatile float _Complex * ); 652 void ?{}( double _Complex * ), ?{}( volatile double _Complex * ); 653 void ?{}( long double _Complex * ), ?{}( volatile long double _Complex * ); 654 655 // copy ctor 656 void ?{}( _Bool *, _Bool ), ?{}( volatile _Bool *, _Bool ); 657 void ?{}( unsigned char *, unsigned char ), ?{}( volatile unsigned char *, unsigned char ); 658 void ?{}( signed int *, signed int), ?{}( volatile signed int *, signed int ); 659 void ?{}( unsigned int *, unsigned int), ?{}( volatile unsigned int *, unsigned int ); 660 void ?{}( signed long int *, signed long int), ?{}( volatile signed long int *, signed long int ); 661 void ?{}( unsigned long int *, unsigned long int), ?{}( volatile unsigned long int *, unsigned long int ); 662 void ?{}( signed long long int *, signed long long int), ?{}( volatile signed long long int *, signed long long int ); 663 void ?{}( unsigned long long int *, unsigned long long int), ?{}( volatile unsigned long long int *, unsigned long long int ); 664 void ?{}( float *, float), ?{}( volatile float *, float ); 665 void ?{}( double *, double), ?{}( volatile double *, double ); 666 void ?{}( long double *, long double), ?{}( volatile long double *, long double ); 667 void ?{}( float _Complex *, float _Complex), ?{}( volatile float _Complex *, float _Complex ); 668 void ?{}( double _Complex *, double _Complex), ?{}( volatile double _Complex *, double _Complex ); 669 void ?{}( long double _Complex *, long double _Complex), ?{}( volatile long double _Complex *, long double _Complex ); 670 671 // dtor 672 void ^?{}( _Bool * ), ^?{}( volatile _Bool * ); 673 void ^?{}( signed int * ), ^?{}( volatile signed int * ); 674 void ^?{}( unsigned int * ), ^?{}( volatile unsigned int * ); 675 void ^?{}( signed long int * ), ^?{}( volatile signed long int * ); 676 void ^?{}( unsigned long int * ), ^?{}( volatile unsigned long int * ); 677 void ^?{}( signed long long int * ), ^?{}( volatile signed long long int * ); 678 void ^?{}( unsigned long long int * ), ^?{}( volatile unsigned long long int * ); 679 void ^?{}( float * ), ^?{}( volatile float * ); 680 void ^?{}( double * ), ^?{}( volatile double * ); 681 void ^?{}( long double * ), ^?{}( volatile long double * ); 682 void ^?{}( float _Complex * ), ^?{}( volatile float _Complex * ); 683 void ^?{}( double _Complex * ), ^?{}( volatile double _Complex * ); 684 void ^?{}( long double _Complex * ), ^?{}( volatile long double _Complex * ); 685 686 // // default ctor 687 // forall( dtype DT ) void ?{}( DT ** ); 688 // forall( dtype DT ) void ?{}( const DT ** ); 689 // forall( dtype DT ) void ?{}( volatile DT ** ); 690 // forall( dtype DT ) void ?{}( const volatile DT ** ); 691 692 // // copy ctor 693 // forall( dtype DT ) void ?{}( DT **, DT* ); 694 // forall( dtype DT ) void ?{}( const DT **, DT* ); 695 // forall( dtype DT ) void ?{}( volatile DT **, DT* ); 696 // forall( dtype DT ) void ?{}( const volatile DT **, DT* ); 697 698 // // dtor 699 // forall( dtype DT ) void ^?{}( DT ** ); 700 // forall( dtype DT ) void ^?{}( const DT ** ); 701 // forall( dtype DT ) void ^?{}( volatile DT ** ); 702 // forall( dtype DT ) void ^?{}( const volatile DT ** ); 703 704 // copied from assignment section 705 // copy constructors 706 forall( ftype FT ) void ?{}( FT **, FT * ); 707 forall( ftype FT ) void ?{}( FT * volatile *, FT * ); 708 709 forall( dtype DT ) void ?{}( DT * *, DT * ); 710 forall( dtype DT ) void ?{}( DT * volatile *, DT * ); 711 forall( dtype DT ) void ?{}( const DT * *, DT * ); 712 forall( dtype DT ) void ?{}( const DT * volatile *, DT * ); 713 forall( dtype DT ) void ?{}( const DT * *, const DT * ); 714 forall( dtype DT ) void ?{}( const DT * volatile *, const DT * ); 715 forall( dtype DT ) void ?{}( volatile DT * *, DT * ); 716 forall( dtype DT ) void ?{}( volatile DT * volatile *, DT * ); 717 forall( dtype DT ) void ?{}( volatile DT * *, volatile DT * ); 718 forall( dtype DT ) void ?{}( volatile DT * volatile *, volatile DT * ); 719 720 forall( dtype DT ) void ?{}( const volatile DT * *, DT * ); 721 forall( dtype DT ) void ?{}( const volatile DT * volatile *, DT * ); 722 forall( dtype DT ) void ?{}( const volatile DT * *, const DT * ); 723 forall( dtype DT ) void ?{}( const volatile DT * volatile *, const DT * ); 724 forall( dtype DT ) void ?{}( const volatile DT * *, volatile DT * ); 725 forall( dtype DT ) void ?{}( const volatile DT * volatile *, volatile DT * ); 726 forall( dtype DT ) void ?{}( const volatile DT * *, const volatile DT * ); 727 forall( dtype DT ) void ?{}( const volatile DT * volatile *, const volatile DT * ); 728 729 forall( dtype DT ) void ?{}( DT * *, void * ); 730 forall( dtype DT ) void ?{}( DT * volatile *, void * ); 731 forall( dtype DT ) void ?{}( const DT * *, void * ); 732 forall( dtype DT ) void ?{}( const DT * volatile *, void * ); 733 forall( dtype DT ) void ?{}( const DT * *, const void * ); 734 forall( dtype DT ) void ?{}( const DT * volatile *, const void * ); 735 forall( dtype DT ) void ?{}( volatile DT * *, void * ); 736 forall( dtype DT ) void ?{}( volatile DT * volatile *, void * ); 737 forall( dtype DT ) void ?{}( volatile DT * *, volatile void * ); 738 forall( dtype DT ) void ?{}( volatile DT * volatile *, volatile void * ); 739 740 forall( dtype DT ) void ?{}( const volatile DT * *, void * ); 741 forall( dtype DT ) void ?{}( const volatile DT * volatile *, void * ); 742 forall( dtype DT ) void ?{}( const volatile DT * *, const void * ); 743 forall( dtype DT ) void ?{}( const volatile DT * volatile *, const void * ); 744 forall( dtype DT ) void ?{}( const volatile DT * *, volatile void * ); 745 forall( dtype DT ) void ?{}( const volatile DT * volatile *, volatile void * ); 746 forall( dtype DT ) void ?{}( const volatile DT * *, const volatile void * ); 747 forall( dtype DT ) void ?{}( const volatile DT * volatile *, const volatile void * ); 748 749 forall( dtype DT ) void ?{}( void * *, DT * ); 750 forall( dtype DT ) void ?{}( void * volatile *, DT * ); 751 forall( dtype DT ) void ?{}( const void * *, DT * ); 752 forall( dtype DT ) void ?{}( const void * volatile *, DT * ); 753 forall( dtype DT ) void ?{}( const void * *, const DT * ); 754 forall( dtype DT ) void ?{}( const void * volatile *, const DT * ); 755 forall( dtype DT ) void ?{}( volatile void * *, DT * ); 756 forall( dtype DT ) void ?{}( volatile void * volatile *, DT * ); 757 forall( dtype DT ) void ?{}( volatile void * *, volatile DT * ); 758 forall( dtype DT ) void ?{}( volatile void * volatile *, volatile DT * ); 759 forall( dtype DT ) void ?{}( const volatile void * *, DT * ); 760 forall( dtype DT ) void ?{}( const volatile void * volatile *, DT * ); 761 forall( dtype DT ) void ?{}( const volatile void * *, const DT * ); 762 forall( dtype DT ) void ?{}( const volatile void * volatile *, const DT * ); 763 forall( dtype DT ) void ?{}( const volatile void * *, volatile DT * ); 764 forall( dtype DT ) void ?{}( const volatile void * volatile *, volatile DT * ); 765 forall( dtype DT ) void ?{}( const volatile void * *, const volatile DT * ); 766 forall( dtype DT ) void ?{}( const volatile void * volatile *, const volatile DT * ); 767 768 void ?{}( void * *, void * ); 769 void ?{}( void * volatile *, void * ); 770 void ?{}( const void * *, void * ); 771 void ?{}( const void * volatile *, void * ); 772 void ?{}( const void * *, const void * ); 773 void ?{}( const void * volatile *, const void * ); 774 void ?{}( volatile void * *, void * ); 775 void ?{}( volatile void * volatile *, void * ); 776 void ?{}( volatile void * *, volatile void * ); 777 void ?{}( volatile void * volatile *, volatile void * ); 778 void ?{}( const volatile void * *, void * ); 779 void ?{}( const volatile void * volatile *, void * ); 780 void ?{}( const volatile void * *, const void * ); 781 void ?{}( const volatile void * volatile *, const void * ); 782 void ?{}( const volatile void * *, volatile void * ); 783 void ?{}( const volatile void * volatile *, volatile void * ); 784 void ?{}( const volatile void * *, const volatile void * ); 785 void ?{}( const volatile void * volatile *, const volatile void * ); 786 787 //forall( dtype DT ) void ?{}( DT * *, forall( dtype DT2 ) const DT2 * ); 788 //forall( dtype DT ) void ?{}( DT * volatile *, forall( dtype DT2 ) const DT2 * ); 789 forall( dtype DT ) void ?{}( const DT * *, forall( dtype DT2 ) const DT2 * ); 790 forall( dtype DT ) void ?{}( const DT * volatile *, forall( dtype DT2 ) const DT2 * ); 791 //forall( dtype DT ) void ?{}( volatile DT * *, forall( dtype DT2 ) const DT2 * ); 792 //forall( dtype DT ) void ?{}( volatile DT * volatile *, forall( dtype DT2 ) const DT2 * ); 793 forall( dtype DT ) void ?{}( const volatile DT * *, forall( dtype DT2 ) const DT2 * ); 794 forall( dtype DT ) void ?{}( const volatile DT * volatile *, forall( dtype DT2 ) const DT2 * ); 795 796 forall( ftype FT ) void ?{}( FT * *, forall( ftype FT2 ) FT2 * ); 797 forall( ftype FT ) void ?{}( FT * volatile *, forall( ftype FT2 ) FT2 * ); 798 799 // default ctors 800 forall( ftype FT ) void ?{}( FT * * ); 801 forall( ftype FT ) void ?{}( FT * volatile * ); 802 803 forall( dtype DT ) void ?{}( DT * *); 804 forall( dtype DT ) void ?{}( DT * volatile *); 805 forall( dtype DT ) void ?{}( const DT * *); 806 forall( dtype DT ) void ?{}( const DT * volatile *); 807 forall( dtype DT ) void ?{}( volatile DT * *); 808 forall( dtype DT ) void ?{}( volatile DT * volatile *); 809 forall( dtype DT ) void ?{}( const volatile DT * *); 810 forall( dtype DT ) void ?{}( const volatile DT * volatile *); 811 812 void ?{}( void * *); 813 void ?{}( void * volatile *); 814 void ?{}( const void * *); 815 void ?{}( const void * volatile *); 816 void ?{}( volatile void * *); 817 void ?{}( volatile void * volatile *); 818 void ?{}( const volatile void * *); 819 void ?{}( const volatile void * volatile *); 820 821 // dtors 822 forall( ftype FT ) void ^?{}( FT * * ); 823 forall( ftype FT ) void ^?{}( FT * volatile * ); 824 825 forall( dtype DT ) void ^?{}( DT * *); 826 forall( dtype DT ) void ^?{}( DT * volatile *); 827 forall( dtype DT ) void ^?{}( const DT * *); 828 forall( dtype DT ) void ^?{}( const DT * volatile *); 829 forall( dtype DT ) void ^?{}( volatile DT * *); 830 forall( dtype DT ) void ^?{}( volatile DT * volatile *); 831 forall( dtype DT ) void ^?{}( const volatile DT * *); 832 forall( dtype DT ) void ^?{}( const volatile DT * volatile *); 833 834 void ^?{}( void * *); 835 void ^?{}( void * volatile *); 836 void ^?{}( const void * *); 837 void ^?{}( const void * volatile *); 838 void ^?{}( volatile void * *); 839 void ^?{}( volatile void * volatile *); 840 void ^?{}( const volatile void * *); 841 void ^?{}( const volatile void * volatile *); -
src/main.cc
r71f4e4f rf1e012b 10 10 // Created On : Fri May 15 23:12:02 2015 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed Jan 13 16:47:25201613 // Update Count : 18 112 // Last Modified On : Tue Jan 19 13:16:23 2016 13 // Update Count : 185 14 14 // 15 15 … … 247 247 OPTPRINT( "fixNames" ) 248 248 CodeGen::fixNames( translationUnit ); 249 OPTPRINT( "tweak " )249 OPTPRINT( "tweakInit" ) 250 250 InitTweak::tweak( translationUnit ); 251 251 … … 266 266 } 267 267 268 OPTPRINT( "fixInit" ) 268 269 // fix ObjectDecl - replaces ConstructorInit nodes 269 270 InitTweak::fix( translationUnit );
Note: See TracChangeset
for help on using the changeset viewer.