Lines Matching defs:decl

70                                         clang::Decl *decl) {
73 clang::ASTContext *src_ast = &decl->getASTContext();
81 llvm::Expected<clang::Decl *> result = delegate_sp->Import(decl);
84 LLDB_LOG_ERROR(log, result.takeError(), "Couldn't import decl: {0}");
87 ClangASTMetadata *metadata = GetDeclMetadata(decl);
91 if (NamedDecl *named_decl = dyn_cast<NamedDecl>(decl))
95 decl->getDeclKindName(), named_decl->getNameAsString(),
101 decl->getDeclKindName(), user_id);
118 void OverrideOne(clang::Decl *decl) {
119 if (m_backups.contains(decl)) {
123 m_backups[decl] = {decl->getDeclContext(), decl->getLexicalDeclContext()};
125 decl->setDeclContext(decl->getASTContext().getTranslationUnitDecl());
126 decl->setLexicalDeclContext(decl->getASTContext().getTranslationUnitDecl());
130 clang::Decl *decl, clang::DeclContext *base,
133 for (DeclContext *decl_ctx = (decl->*contextFromDecl)(); decl_ctx;
143 clang::Decl *GetEscapedChild(clang::Decl *decl,
146 // decl's DeclContext chains must pass through base.
148 if (!ChainPassesThrough(decl, base, &clang::Decl::getDeclContext,
150 !ChainPassesThrough(decl, base, &clang::Decl::getLexicalDeclContext,
152 return decl;
155 base = clang::dyn_cast<clang::DeclContext>(decl);
163 clang::dyn_cast<clang::DeclContext>(decl)) {
164 for (clang::Decl *decl : context->decls()) {
165 if (clang::Decl *escaped_child = GetEscapedChild(decl)) {
174 void Override(clang::Decl *decl) {
175 if (clang::Decl *escaped_child = GetEscapedChild(decl)) {
181 decl->getDeclKindName(), decl, escaped_child->getDeclKindName(),
186 OverrideOne(decl);
192 void OverrideAllDeclsFromContainingFunction(clang::Decl *decl) {
193 for (DeclContext *decl_context = decl->getLexicalDeclContext();
217 /// While in a CompleteTagDeclsScope, every decl that could be completed will
252 NamedDecl *decl = m_decls_to_complete.pop_back_val();
253 m_decls_already_completed.insert(decl);
255 // The decl that should be completed has to be imported into the target
257 assert(to_context_md->hasOrigin(decl));
259 assert(to_context_md->getOrigin(decl).ctx == m_src_ctx);
261 Decl *original_decl = to_context_md->getOrigin(decl).decl;
263 // Complete the decl now.
265 if (auto *tag_decl = dyn_cast<TagDecl>(decl)) {
275 } else if (auto *container_decl = dyn_cast<ObjCContainerDecl>(decl)) {
280 to_context_md->removeOrigin(decl);
332 clang::Decl *decl) {
335 clang::ASTContext *src_ctx = &decl->getASTContext();
339 decl->getDeclKindName(), decl, src_ctx, dst_ctx);
343 decl_context_override.OverrideAllDeclsFromContainingFunction(decl);
348 result = CopyDecl(dst_ctx, decl);
357 decl->getDeclKindName(), decl, result->getDeclKindName(), result);
533 /// of the decl/offest pairs in \ref source_map
565 std::pair<const D *, O>(parser_decl.decl, item.second));
576 /// \param[out] base_offsets Map of base-class decl to integral offset which
616 record_layout.getVBaseClassOffset(origin_base_cxx_record.decl);
619 record_layout.getBaseClassOffset(origin_base_cxx_record.decl);
622 origin_base_cxx_record.decl, base_offset));
658 const_cast<RecordDecl *>(origin_record.decl));
660 clang::RecordDecl *definition = origin_record.decl->getDefinition();
665 origin_record->getASTContext().getASTRecordLayout(origin_record.decl));
707 static_cast<const void *>(origin_record.decl));
739 (is_virtual ? "Virtual " : ""), base_cxx_record.decl,
740 base_cxx_record.decl->getName(),
742 ? vbase_offsets[base_cxx_record.decl].getQuantity()
743 : base_offsets[base_cxx_record.decl].getQuantity()));
777 // our decl has an origin.
791 void ClangASTImporter::SetRecordLayout(clang::RecordDecl *decl,
793 m_record_decl_to_layout_map.insert(std::make_pair(decl, layout));
796 bool ClangASTImporter::CompleteTagDecl(clang::TagDecl *decl) {
797 DeclOrigin decl_origin = GetDeclOrigin(decl);
802 if (!TypeSystemClang::GetCompleteDecl(decl_origin.ctx, decl_origin.decl))
806 GetDelegate(&decl->getASTContext(), decl_origin.ctx));
809 &decl->getASTContext());
811 delegate_sp->ImportDefinitionTo(decl, decl_origin.decl);
816 bool ClangASTImporter::CompleteTagDeclWithOrigin(clang::TagDecl *decl,
824 GetDelegate(&decl->getASTContext(), origin_ast_ctx));
827 delegate_sp->ImportDefinitionTo(decl, origin_decl);
829 ASTContextMetadataSP context_md = GetContextMetadata(&decl->getASTContext());
831 context_md->setOrigin(decl, DeclOrigin(origin_ast_ctx, origin_decl));
842 if (!TypeSystemClang::GetCompleteDecl(decl_origin.ctx, decl_origin.decl))
849 delegate_sp->ImportDefinitionTo(interface_decl, decl_origin.decl);
877 TagDecl *origin_tag_decl = llvm::dyn_cast<TagDecl>(decl_origin.decl);
884 "Couldn't import decl: {0}");
907 llvm::dyn_cast<ObjCInterfaceDecl>(decl_origin.decl);
914 "Couldn't import decl: {0}");
953 ClangASTMetadata *ClangASTImporter::GetDeclMetadata(const clang::Decl *decl) {
954 DeclOrigin decl_origin = GetDeclOrigin(decl);
958 return ast->GetMetadata(decl_origin.decl);
960 TypeSystemClang *ast = TypeSystemClang::GetASTContext(&decl->getASTContext());
961 return ast->GetMetadata(decl);
965 ClangASTImporter::GetDeclOrigin(const clang::Decl *decl) {
966 ASTContextMetadataSP context_md = GetContextMetadata(&decl->getASTContext());
968 return context_md->getOrigin(decl);
971 void ClangASTImporter::SetDeclOrigin(const clang::Decl *decl,
973 ASTContextMetadataSP context_md = GetContextMetadata(&decl->getASTContext());
975 decl, DeclOrigin(&original_decl->getASTContext(), original_decl));
978 void ClangASTImporter::RegisterNamespaceMap(const clang::NamespaceDecl *decl,
980 ASTContextMetadataSP context_md = GetContextMetadata(&decl->getASTContext());
982 context_md->m_namespace_maps[decl] = namespace_map;
986 ClangASTImporter::GetNamespaceMap(const clang::NamespaceDecl *decl) {
987 ASTContextMetadataSP context_md = GetContextMetadata(&decl->getASTContext());
991 NamespaceMetaMap::iterator iter = namespace_maps.find(decl);
998 void ClangASTImporter::BuildNamespaceMap(const clang::NamespaceDecl *decl) {
999 assert(decl);
1000 ASTContextMetadataSP context_md = GetContextMetadata(&decl->getASTContext());
1002 const DeclContext *parent_context = decl->getDeclContext();
1015 std::string namespace_string = decl->getDeclName().getAsString();
1021 context_md->m_namespace_maps[decl] = new_map;
1059 // Make sure we don't use this decl later to map it back to it's original
1060 // decl. The decl the CxxModuleHandler created has nothing to do with
1062 // ASTImporter to try 'updating' the module decl with the minimal one from
1073 assert(origin.decl != From && "Origin points to itself?");
1085 RegisterImportedDecl(From, origin.decl);
1086 return origin.decl;
1092 // only faster than first completing our current decl and then copying it
1099 auto R = m_main.CopyDecl(&getToContext(), origin.decl);
1142 // that the forward decl from the shared library is the actual import
1209 "Couldn't import decl: {0}");
1328 origin.decl, origin.ctx, &from->getASTContext(),
1414 return m_main.GetDeclOrigin(To).decl;