summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/shared/cplusplus/Bind.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/shared/cplusplus/Bind.cpp b/src/shared/cplusplus/Bind.cpp
index 762922dc56..74ae70c839 100644
--- a/src/shared/cplusplus/Bind.cpp
+++ b/src/shared/cplusplus/Bind.cpp
@@ -1684,7 +1684,21 @@ bool Bind::visit(ParameterDeclarationAST *ast)
type = this->declarator(ast->declarator, type, &declaratorId);
// unsigned equal_token = ast->equal_token;
ExpressionTy expression = this->expression(ast->expression);
- // Argument *symbol = ast->symbol;
+
+ unsigned sourceLocation = ast->firstToken();
+ if (declaratorId)
+ sourceLocation = declaratorId->firstToken();
+
+ const Name *argName = 0;
+ if (declaratorId && declaratorId->name)
+ argName = declaratorId->name->name;
+
+ Argument *arg = control()->newArgument(sourceLocation, argName);
+ arg->setType(type);
+
+ _scope->addMember(arg);
+
+ ast->symbol = arg;
return false;
}