diff options
Diffstat (limited to 'src/shared/cplusplus/Control.cpp')
| -rw-r--r-- | src/shared/cplusplus/Control.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/shared/cplusplus/Control.cpp b/src/shared/cplusplus/Control.cpp index e44d84a1ae..7f5fd273ca 100644 --- a/src/shared/cplusplus/Control.cpp +++ b/src/shared/cplusplus/Control.cpp @@ -51,7 +51,6 @@ // THE SOFTWARE. #include "Control.h" -#include "MemoryPool.h" #include "Literals.h" #include "LiteralTable.h" #include "TranslationUnit.h" @@ -125,6 +124,7 @@ public: delete_array_entries(usingNamespaceDirectives); delete_array_entries(enums); delete_array_entries(usingDeclarations); + delete_array_entries(classForwardDeclarations); } NameId *findOrInsertNameId(Identifier *id) @@ -323,6 +323,14 @@ public: return u; } + ForwardClassDeclaration *newForwardClassDeclaration(unsigned sourceLocation, Name *name) + { + ForwardClassDeclaration *c = new ForwardClassDeclaration(translationUnit, + sourceLocation, name); + classForwardDeclarations.push_back(c); + return c; + } + Enum *newEnum(unsigned sourceLocation, Name *name) { Enum *e = new Enum(translationUnit, @@ -478,6 +486,7 @@ public: std::vector<UsingNamespaceDirective *> usingNamespaceDirectives; std::vector<Enum *> enums; std::vector<UsingDeclaration *> usingDeclarations; + std::vector<ForwardClassDeclaration *> classForwardDeclarations; }; Control::Control() @@ -633,4 +642,9 @@ UsingNamespaceDirective *Control::newUsingNamespaceDirective(unsigned sourceLoca UsingDeclaration *Control::newUsingDeclaration(unsigned sourceLocation, Name *name) { return d->newUsingDeclaration(sourceLocation, name); } +ForwardClassDeclaration *Control::newForwardClassDeclaration(unsigned sourceLocation, + Name *name) +{ return d->newForwardClassDeclaration(sourceLocation, name); } + + CPLUSPLUS_END_NAMESPACE |
