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 if (std::optional<ClangASTMetadata> metadata = GetDeclMetadata(decl))
90 if (NamedDecl *named_decl = dyn_cast<NamedDecl>(decl))
94 decl->getDeclKindName(), named_decl->getNameAsString(),
100 decl->getDeclKindName(), user_id);
117 void OverrideOne(clang::Decl *decl) {
118 if (m_backups.contains(decl)) {
122 m_backups[decl] = {decl->getDeclContext(), decl->getLexicalDeclContext()};
124 decl->setDeclContext(decl->getASTContext().getTranslationUnitDecl());
125 decl->setLexicalDeclContext(decl->getASTContext().getTranslationUnitDecl());
129 clang::Decl *decl, clang::DeclContext *base,
132 for (DeclContext *decl_ctx = (decl->*contextFromDecl)(); decl_ctx;
142 clang::Decl *GetEscapedChild(clang::Decl *decl,
145 // decl's DeclContext chains must pass through base.
147 if (!ChainPassesThrough(decl, base, &clang::Decl::getDeclContext,
149 !ChainPassesThrough(decl, base, &clang::Decl::getLexicalDeclContext,
151 return decl;
154 base = clang::dyn_cast<clang::DeclContext>(decl);
162 clang::dyn_cast<clang::DeclContext>(decl)) {
163 for (clang::Decl *decl : context->decls()) {
164 if (clang::Decl *escaped_child = GetEscapedChild(decl)) {
173 void Override(clang::Decl *decl) {
174 if (clang::Decl *escaped_child = GetEscapedChild(decl)) {
180 decl->getDeclKindName(), decl, escaped_child->getDeclKindName(),
185 OverrideOne(decl);
191 void OverrideAllDeclsFromContainingFunction(clang::Decl *decl) {
192 for (DeclContext *decl_context = decl->getLexicalDeclContext();
216 /// While in a CompleteTagDeclsScope, every decl that could be completed will
251 NamedDecl *decl = m_decls_to_complete.pop_back_val();
252 m_decls_already_completed.insert(decl);
254 // The decl that should be completed has to be imported into the target
256 assert(to_context_md->hasOrigin(decl));
258 assert(to_context_md->getOrigin(decl).ctx == m_src_ctx);
260 Decl *original_decl = to_context_md->getOrigin(decl).decl;
262 // Complete the decl now.
264 if (auto *tag_decl = dyn_cast<TagDecl>(decl)) {
274 } else if (auto *container_decl = dyn_cast<ObjCContainerDecl>(decl)) {
279 to_context_md->removeOrigin(decl);
331 clang::Decl *decl) {
334 clang::ASTContext *src_ctx = &decl->getASTContext();
338 decl->getDeclKindName(), decl, src_ctx, dst_ctx);
342 decl_context_override.OverrideAllDeclsFromContainingFunction(decl);
347 result = CopyDecl(dst_ctx, decl);
356 decl->getDeclKindName(), decl, result->getDeclKindName(), result);
532 /// of the decl/offest pairs in \ref source_map
564 std::pair<const D *, O>(parser_decl.decl, item.second));
575 /// \param[out] base_offsets Map of base-class decl to integral offset which
615 record_layout.getVBaseClassOffset(origin_base_cxx_record.decl);
618 record_layout.getBaseClassOffset(origin_base_cxx_record.decl);
621 origin_base_cxx_record.decl, base_offset));
657 const_cast<RecordDecl *>(origin_record.decl));
659 clang::RecordDecl *definition = origin_record.decl->getDefinition();
664 origin_record->getASTContext().getASTRecordLayout(origin_record.decl));
706 static_cast<const void *>(origin_record.decl));
738 (is_virtual ? "Virtual " : ""), base_cxx_record.decl,
739 base_cxx_record.decl->getName(),
741 ? vbase_offsets[base_cxx_record.decl].getQuantity()
742 : base_offsets[base_cxx_record.decl].getQuantity()));
776 // our decl has an origin.
790 void ClangASTImporter::SetRecordLayout(clang::RecordDecl *decl,
792 m_record_decl_to_layout_map.insert(std::make_pair(decl, layout));
795 bool ClangASTImporter::CompleteTagDecl(clang::TagDecl *decl) {
796 DeclOrigin decl_origin = GetDeclOrigin(decl);
801 if (!TypeSystemClang::GetCompleteDecl(decl_origin.ctx, decl_origin.decl))
805 GetDelegate(&decl->getASTContext(), decl_origin.ctx));
808 &decl->getASTContext());
810 delegate_sp->ImportDefinitionTo(decl, decl_origin.decl);
815 bool ClangASTImporter::CompleteTagDeclWithOrigin(clang::TagDecl *decl,
823 GetDelegate(&decl->getASTContext(), origin_ast_ctx));
826 delegate_sp->ImportDefinitionTo(decl, origin_decl);
828 ASTContextMetadataSP context_md = GetContextMetadata(&decl->getASTContext());
830 context_md->setOrigin(decl, DeclOrigin(origin_ast_ctx, origin_decl));
841 if (!TypeSystemClang::GetCompleteDecl(decl_origin.ctx, decl_origin.decl))
848 delegate_sp->ImportDefinitionTo(interface_decl, decl_origin.decl);
876 TagDecl *origin_tag_decl = llvm::dyn_cast<TagDecl>(decl_origin.decl);
883 "Couldn't import decl: {0}");
906 llvm::dyn_cast<ObjCInterfaceDecl>(decl_origin.decl);
913 "Couldn't import decl: {0}");
953 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);
1141 auto getDeclName = [](Decl const *decl) {
1143 if (auto const *from_named_decl = dyn_cast<clang::NamedDecl>(decl)) {
1155 "[ClangASTImporter] ERROR: overwriting an already imported decl "
1165 // that the forward decl from the shared library is the actual import
1224 "Couldn't import decl: {0}");
1341 origin.decl, origin.ctx, &from->getASTContext(),
1427 return m_main.GetDeclOrigin(To).decl;