clang
clang copied to clipboard
namespace scoping is not handled properly in function and template parameters
structural equivalence currently does not take namespace into consideration, but it should.
file: a.cc namespace x{ class a; } void f(x::a);
file: imported.cc namespace y{ class a; } void f(y::a);
The error is that f(x::a) is said to be equivalent with f(y::a) and the import fails.
There is such error in bitcoin.
There is a related pull request #629.
there is a suspected problem with astreader in ASTContext getCanonicalTemplateTemplateParmDecl(..)