Changeset f8b961b for src/GenPoly/Box.cc


Ignore:
Timestamp:
Dec 3, 2015, 4:37:27 PM (9 years ago)
Author:
Aaron Moss <a3moss@…>
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, string, with_gc
Children:
47534159
Parents:
5bf4712
Message:

Documentation improvements

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/GenPoly/Box.cc

    r5bf4712 rf8b961b  
    5050                FunctionType *makeAdapterType( FunctionType *adaptee, const TyVarMap &tyVars );
    5151
     52                /// Replaces polymorphic return types with out-parameters, replaces calls to polymorphic functions with adapter calls as needed, and adds appropriate type variables to the function call
    5253                class Pass1 : public PolyMutator {
    5354                  public:
     
    8889                };
    8990
     91                /// Moves polymorphic returns in function types to pointer-type parameters, adds type size and assertion parameters to parameter lists as well
    9092                class Pass2 : public PolyMutator {
    9193                  public:
     
    105107                };
    106108
     109                /// Replaces initialization of polymorphic values with alloca, declaration of dtype/ftype with appropriate void expression, and sizeof expressions of polymorphic types with the proper variable
    107110                class Pass3 : public PolyMutator {
    108111                  public:
     
    10081011                        std::list< DeclarationWithType *> inferredParams;
    10091012                        ObjectDecl *newObj = new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::C, 0, new BasicType( Type::Qualifiers(), BasicType::LongUnsignedInt ), 0 );
    1010 ///   ObjectDecl *newFunPtr = new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new FunctionType( Type::Qualifiers(), true ) ), 0 );
     1013//   ObjectDecl *newFunPtr = new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new FunctionType( Type::Qualifiers(), true ) ), 0 );
    10111014                        for ( std::list< TypeDecl *>::const_iterator tyParm = funcType->get_forall().begin(); tyParm != funcType->get_forall().end(); ++tyParm ) {
    10121015                                ObjectDecl *thisParm;
     
    10201023                                // move all assertions into parameter list
    10211024                                for ( std::list< DeclarationWithType *>::iterator assert = (*tyParm)->get_assertions().begin(); assert != (*tyParm)->get_assertions().end(); ++assert ) {
    1022 ///      *assert = (*assert)->acceptMutator( *this );
     1025//      *assert = (*assert)->acceptMutator( *this );
    10231026                                        inferredParams.push_back( *assert );
    10241027                                }
     
    10621065
    10631066                TypeDecl * Pass3::mutate( TypeDecl *typeDecl ) {
    1064 ///   Initializer *init = 0;
    1065 ///   std::list< Expression *> designators;
    1066 ///   scopeTyVars[ typeDecl->get_name() ] = typeDecl->get_kind();
    1067 ///   if ( typeDecl->get_base() ) {
    1068 ///     init = new SimpleInit( new SizeofExpr( handleDecl( typeDecl, typeDecl->get_base() ) ), designators );
    1069 ///   }
    1070 ///   return new ObjectDecl( typeDecl->get_name(), Declaration::Extern, LinkageSpec::C, 0, new BasicType( Type::Qualifiers(), BasicType::UnsignedInt ), init );
     1067//   Initializer *init = 0;
     1068//   std::list< Expression *> designators;
     1069//   scopeTyVars[ typeDecl->get_name() ] = typeDecl->get_kind();
     1070//   if ( typeDecl->get_base() ) {
     1071//     init = new SimpleInit( new SizeofExpr( handleDecl( typeDecl, typeDecl->get_base() ) ), designators );
     1072//   }
     1073//   return new ObjectDecl( typeDecl->get_name(), Declaration::Extern, LinkageSpec::C, 0, new BasicType( Type::Qualifiers(), BasicType::UnsignedInt ), init );
    10711074
    10721075                        scopeTyVars[ typeDecl->get_name() ] = typeDecl->get_kind();
Note: See TracChangeset for help on using the changeset viewer.