[Lldb-commits] [PATCH] D66357: Fix GetDIEForDeclContext so it only returns entries matching the provided context

Guilherme Andrade via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Sat Aug 17 11:50:22 PDT 2019


guiandrade added a comment.

In D66357#1633461 <https://reviews.llvm.org/D66357#1633461>, @clayborg wrote:

> Needs a test, but looks good.


Sure, I agree. Though, it's not total clear to me how we could do that.

I imagined something like the following.

  TEST_F(DWARFASTParserClangTests,
         TestGetDIEForDeclContextReturnsOnlyMatchingEntries) {
    auto ast = ClangASTContext(...);
    auto ast_parser = DWARFASTParserClang(ast);
    CompilerDeclContext decl1(nullptr, (void *)1LL);
    CompilerDeclContext decl2(nullptr, (void *)2LL);
    CompilerDeclContext decl3(nullptr, (void *)2LL);
    CompilerDeclContext decl4(nullptr, (void *)3LL);
    ast_parser->LinkDeclContextToDIE(decl1, DWARFDIE());
    ast_parser->LinkDeclContextToDIE(decl2, DWARFDIE());
    ast_parser->LinkDeclContextToDIE(decl3, DWARFDIE());
    ast_parser->LinkDeclContextToDIE(decl4, DWARFDIE());
  
    auto decl_ctx_die_list = ast_parser->GetDIEForDeclContext(decl2);
    EXPECT_EQ(2u, decl_ctx_die_list.size());
    EXPECT_EQ(decl2.GetOpaqueDeclContext(),
              decl_ctx_die_list[0].GetDeclContext().GetOpaqueDeclContext());
    EXPECT_EQ(decl3.GetOpaqueDeclContext(),
              decl_ctx_die_list[1].GetDeclContext().GetOpaqueDeclContext());
  }

But DWARFASTParserClang::LinkDeclContextToDIE is protected. Do you have any ideas to overcome that?

Thanks!


Repository:
  rLLDB LLDB

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D66357/new/

https://reviews.llvm.org/D66357





More information about the lldb-commits mailing list