The check for already searched namespaces has disappeared from DeclContextFindDeclByName() recently. This breaks variable evaluation in many cases, for example in this one
namespace ns1 {
int var = 100;
}
namespace ns2 {
int var = 101;
}
int main(void) {
{
using namespace ns1;
printf("var=%d\n", var); // evaluation fails - multiple candidates
}
{
using namespace ns2;
printf("var=%d\n", var); // evaluation fails - multiple candidates
}
}
Minor efficiency improvement - change these 3 lines to:
if (!searched.insert(it->second).first) continue;No need for new patch - just change in final commit.