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