type_quals, cc);
}
- clang::ParmVarDecl *CreateParameterDeclaration(const char *name,
+ clang::ParmVarDecl *CreateParameterDeclaration(clang::DeclContext *decl_ctx,
+ const char *name,
const CompilerType ¶m_type,
int storage);
function_param_types.push_back(type->GetForwardCompilerType());
clang::ParmVarDecl *param_var_decl =
- m_ast.CreateParameterDeclaration(
- name, type->GetForwardCompilerType(), storage);
+ m_ast.CreateParameterDeclaration(containing_decl_ctx, name,
+ type->GetForwardCompilerType(),
+ storage);
assert(param_var_decl);
function_param_decls.push_back(param_var_decl);
PdbCompilandSymId param_uid(func_id.modi, record_offset);
TypeSP type_sp = GetOrCreateType(param_type);
clang::ParmVarDecl *param = m_clang->CreateParameterDeclaration(
- param_name.str().c_str(), type_sp->GetForwardCompilerType(),
- clang::SC_None);
+ function_decl, param_name.str().c_str(),
+ type_sp->GetForwardCompilerType(), clang::SC_None);
lldbassert(m_uid_to_decl.count(toOpaqueUid(param_uid)) == 0);
m_uid_to_decl[toOpaqueUid(param_uid)] = param;
continue;
clang::ParmVarDecl *param = m_ast.CreateParameterDeclaration(
- nullptr, arg_type->GetForwardCompilerType(), clang::SC_None);
+ decl, nullptr, arg_type->GetForwardCompilerType(),
+ clang::SC_None);
if (param)
params.push_back(param);
}
}
ParmVarDecl *ClangASTContext::CreateParameterDeclaration(
- const char *name, const CompilerType ¶m_type, int storage) {
+ clang::DeclContext *decl_ctx, const char *name,
+ const CompilerType ¶m_type, int storage) {
ASTContext *ast = getASTContext();
assert(ast != nullptr);
- return ParmVarDecl::Create(*ast, ast->getTranslationUnitDecl(),
- SourceLocation(), SourceLocation(),
+ return ParmVarDecl::Create(*ast, decl_ctx, SourceLocation(), SourceLocation(),
name && name[0] ? &ast->Idents.get(name) : nullptr,
ClangUtil::GetQualType(param_type), nullptr,
(clang::StorageClass)storage, nullptr);