Skip to content

Trying to fix windows buildbots after #74786 #75566

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Dec 15, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1537,10 +1537,6 @@ void SymbolFilePDB::FindTypes(const lldb_private::TypeQuery &query,

while (auto result = results->getNext()) {

if (MSVCUndecoratedNameParser::DropScope(
result->getRawSymbol().getName()) != basename)
continue;

switch (result->getSymTag()) {
case PDB_SymType::Enum:
case PDB_SymType::UDT:
Expand All @@ -1552,6 +1548,10 @@ void SymbolFilePDB::FindTypes(const lldb_private::TypeQuery &query,
continue;
}

if (MSVCUndecoratedNameParser::DropScope(
result->getRawSymbol().getName()) != basename)
continue;

// This should cause the type to get cached and stored in the `m_types`
// lookup.
if (!ResolveTypeUID(result->getSymIndexId()))
Expand Down
3 changes: 2 additions & 1 deletion lldb/test/API/lang/cpp/unique-types4/TestUniqueTypes4.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,13 @@ def do_test(self, debug_flags):
self.expect_expr("ns::FooDouble::value", result_type="double", result_value="0")
self.expect_expr("ns::FooInt::value", result_type="int", result_value="0")


@skipIfWindows # Skip on windows until we can track down why this stopped working
@skipIf(compiler=no_match("clang"))
@skipIf(compiler_version=["<", "15.0"])
def test_simple_template_names(self):
self.do_test(dict(CFLAGS_EXTRAS="-gsimple-template-names"))

@skipIfWindows # Skip on windows until we can track down why this stopped working
@skipIf(compiler=no_match("clang"))
@skipIf(compiler_version=["<", "15.0"])
def test_no_simple_template_names(self):
Expand Down
14 changes: 12 additions & 2 deletions lldb/unittests/SymbolFile/PDB/SymbolFilePDBTests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -579,15 +579,25 @@ TEST_F(SymbolFilePDBTests, TestMaxMatches) {
static_cast<SymbolFilePDB *>(module->GetSymbolFile());

// Make a type query object we can use for all types and for one type
//
// TODO: this test was ported as is and before the new FindTypes patch
// this test was trying to find all matches, and it would find one. Then
// it would limit its number of matches from zero to < the minimum of the
// number of matches that were found in the first search, or 10. Then it
// would set the max matches to that number (1) and verify it was the
// same (1). This test should be fixed in the figure by updating the
// lldb/unittests/SymbolFile/PDB/Inputs/test-pdb-types.cpp file and
// recompiling the exe + pdb file so that there are actually multiple
// types whose basename is "ClassTypedef" or any other type. Now type
// matches only return a single match, or all of the matches.
TypeQuery query("ClassTypedef");
{
// Find all types that match
TypeResults query_results;
symfile->FindTypes(query, query_results);
TypeMap &results = query_results.GetTypeMap();
EXPECT_GT(results.GetSize(), 1u);
EXPECT_EQ(results.GetSize(), 1u);
}

{
// Find a single type that matches
query.SetFindOne(true);
Expand Down