diff options
Diffstat (limited to 'lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp')
-rw-r--r-- | lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp | 40 |
1 files changed, 7 insertions, 33 deletions
diff --git a/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp b/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp index 2c7a1a045d5..145587ac5be 100644 --- a/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp +++ b/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp @@ -921,26 +921,6 @@ PDBASTParser::GetDeclForSymbol(const llvm::pdb::PDBSymbol &symbol) { decl_context, name.c_str(), type->GetForwardCompilerType(), storage, func->hasInlineAttribute()); - std::vector<clang::ParmVarDecl *> params; - if (std::unique_ptr<PDBSymbolTypeFunctionSig> sig = func->getSignature()) { - if (std::unique_ptr<ConcreteSymbolEnumerator<PDBSymbolTypeFunctionArg>> - arg_enum = sig->findAllChildren<PDBSymbolTypeFunctionArg>()) { - while (std::unique_ptr<PDBSymbolTypeFunctionArg> arg = - arg_enum->getNext()) { - Type *arg_type = symbol_file->ResolveTypeUID(arg->getTypeId()); - if (!arg_type) - continue; - - clang::ParmVarDecl *param = m_ast.CreateParameterDeclaration( - nullptr, arg_type->GetForwardCompilerType(), clang::SC_None); - if (param) - params.push_back(param); - } - } - } - if (params.size()) - m_ast.SetFunctionParameters(decl, params.data(), params.size()); - m_uid_to_decl[sym_id] = decl; return decl; @@ -1050,7 +1030,6 @@ clang::DeclContext *PDBASTParser::GetDeclContextContainingSymbol( curr_context); m_parent_to_namespaces[curr_context].insert(namespace_decl); - m_namespaces.insert(namespace_decl); curr_context = namespace_decl; } @@ -1086,23 +1065,18 @@ void PDBASTParser::ParseDeclsForDeclContext( clang::NamespaceDecl * PDBASTParser::FindNamespaceDecl(const clang::DeclContext *parent, llvm::StringRef name) { - NamespacesSet *set; - if (parent) { - auto pit = m_parent_to_namespaces.find(parent); - if (pit == m_parent_to_namespaces.end()) - return nullptr; + if (!parent) + parent = m_ast.GetTranslationUnitDecl(); - set = &pit->second; - } else { - set = &m_namespaces; - } - assert(set); + auto it = m_parent_to_namespaces.find(parent); + if (it == m_parent_to_namespaces.end()) + return nullptr; - for (clang::NamespaceDecl *namespace_decl : *set) + for (auto namespace_decl : it->second) if (namespace_decl->getName().equals(name)) return namespace_decl; - for (clang::NamespaceDecl *namespace_decl : *set) + for (auto namespace_decl : it->second) if (namespace_decl->isAnonymousNamespace()) return FindNamespaceDecl(namespace_decl, name); |