summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus/Semantic.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/cplusplus/Semantic.cpp')
-rw-r--r--src/shared/cplusplus/Semantic.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/shared/cplusplus/Semantic.cpp b/src/shared/cplusplus/Semantic.cpp
index 8baf10d4b0..23e2fa2c95 100644
--- a/src/shared/cplusplus/Semantic.cpp
+++ b/src/shared/cplusplus/Semantic.cpp
@@ -64,9 +64,10 @@ using namespace CPlusPlus;
class Semantic::Data
{
public:
- Data(Semantic *semantic, Control *control)
+ Data(Semantic *semantic, TranslationUnit *translationUnit)
: semantic(semantic),
- control(control),
+ translationUnit(translationUnit),
+ control(translationUnit->control()),
skipFunctionBodies(false),
visibility(Symbol::Public),
ojbcVisibility(Symbol::Protected),
@@ -90,6 +91,7 @@ public:
}
Semantic *semantic;
+ TranslationUnit *translationUnit;
Control *control;
bool skipFunctionBodies;
int visibility;
@@ -103,9 +105,9 @@ public:
CheckName *checkName;
};
-Semantic::Semantic(Control *control)
+Semantic::Semantic(TranslationUnit *translationUnit)
{
- d = new Data(this, control);
+ d = new Data(this, translationUnit);
d->checkSpecifier = new CheckSpecifier(this);
d->checkDeclaration = new CheckDeclaration(this);
d->checkDeclarator = new CheckDeclarator(this);
@@ -117,6 +119,9 @@ Semantic::Semantic(Control *control)
Semantic::~Semantic()
{ delete d; }
+TranslationUnit *Semantic::translationUnit() const
+{ return d->translationUnit; }
+
Control *Semantic::control() const
{ return d->control; }