From 89dba0e57bfe375ad9945de6d99e0fc89c68ce06 Mon Sep 17 00:00:00 2001 From: Roberto Raggi <roberto.raggi@nokia.com> Date: Fri, 13 Aug 2010 10:35:33 +0200 Subject: [PATCH] Create symbols for the formal arguments. --- src/shared/cplusplus/Bind.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/shared/cplusplus/Bind.cpp b/src/shared/cplusplus/Bind.cpp index 762922dc562..74ae70c839a 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; } -- GitLab