Changes in src/InitTweak/GenInit.h [0bd3faf:11df881]
- File:
-
- 1 edited
-
src/InitTweak/GenInit.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/InitTweak/GenInit.h
r0bd3faf r11df881 22 22 #include "Common/CodeLocation.h" 23 23 #include "GenPoly/ScopedSet.h" // for ScopedSet 24 #include "SynTree/SynTree.h" // for Visitor Nodes 24 25 25 26 namespace InitTweak { 26 27 /// Adds return value temporaries and wraps Initializers in ConstructorInit nodes 28 void genInit( std::list< Declaration * > & translationUnit ); 27 29 void genInit( ast::TranslationUnit & translationUnit ); 28 30 29 31 /// Converts return statements into copy constructor calls on the hidden return variable. 30 32 /// This pass must happen before auto-gen. 33 void fixReturnStatements( std::list< Declaration * > & translationUnit ); 31 34 void fixReturnStatements( ast::TranslationUnit & translationUnit ); 32 35 33 36 /// generates a single ctor/dtor statement using objDecl as the 'this' parameter and arg as the optional argument 37 ImplicitCtorDtorStmt * genCtorDtor( const std::string & fname, ObjectDecl * objDecl, Expression * arg = nullptr ); 34 38 ast::ptr<ast::Stmt> genCtorDtor (const CodeLocation & loc, const std::string & fname, const ast::ObjectDecl * objDecl, const ast::Expr * arg = nullptr); 35 39 36 40 /// creates an appropriate ConstructorInit node which contains a constructor, destructor, and C-initializer 41 ConstructorInit * genCtorInit( ObjectDecl * objDecl ); 37 42 ast::ConstructorInit * genCtorInit( const CodeLocation & loc, const ast::ObjectDecl * objDecl ); 38 43 39 class ManagedTypes final { 44 class ManagedTypes { 45 public: 46 bool isManaged( ObjectDecl * objDecl ) const ; // determine if object is managed 47 bool isManaged( Type * type ) const; // determine if type is managed 48 49 void handleDWT( DeclarationWithType * dwt ); // add type to managed if ctor/dtor 50 void handleStruct( StructDecl * aggregateDecl ); // add type to managed if child is managed 51 52 void beginScope(); 53 void endScope(); 54 private: 55 GenPoly::ScopedSet< std::string > managedTypes; 56 }; 57 58 class ManagedTypes_new { 40 59 public: 41 60 bool isManaged( const ast::ObjectDecl * objDecl ) const ; // determine if object is managed
Note:
See TracChangeset
for help on using the changeset viewer.