Hi, For code like: namespace boost { template <typename T, typename C> T lexical_cast(const C&) { return T(); }
} int g(); long long f(int p); using namespace boost; int main() { auto s = lexical_cast<int>(5); auto p = lexical_cast<int>(6); long long z = lexical_cast<long long>(7); long long a2 = lexical_cast<long long>("1488"); long long a3 = lexical_cast<int>("2137"); g(); int zda = g(); f(5); } why does callExpr(hasDeclaration(functionDecl(returns(qualType(asString("long long")))))) binds to: long long z = lexical_cast<long long>(7); ^~~~~~~~~~~~~~~~~~~~~~~~~~ (and few others) but callExpr(hasDeclaration(functionDecl(returns(qualType(builtinType()))))) binds to only calls of non template functions like: g(); ^~~ int zda = g(); ^~~ f(5); ^~~~ Is it a bug? Piotr
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits