diff --git a/src/shared/cplusplus/Bind.cpp b/src/shared/cplusplus/Bind.cpp index 762922dc5623f9d48227001bc6bdf19463d350ab..74ae70c839abe50b1187c7e110491ea150104d4b 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; }