compilerplugins/clang/vclwidgets.cxx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
New commits: commit f25a15dc99b00dfd2def8bc4d6772b14a78a8a6c Author: Stephan Bergmann <sberg...@redhat.com> Date: Mon Oct 31 21:01:18 2016 +0100 loplugin:vclwidgets: Adapt iterator hack to libc++ Change-Id: I1e4fbb06578b2b1d6de4b57507693b014d36cd3a diff --git a/compilerplugins/clang/vclwidgets.cxx b/compilerplugins/clang/vclwidgets.cxx index 559b70c..2b1da02 100644 --- a/compilerplugins/clang/vclwidgets.cxx +++ b/compilerplugins/clang/vclwidgets.cxx @@ -273,8 +273,11 @@ bool VCLWidgets::VisitVarDecl(const VarDecl * pVarDecl) { } // Apparently I should be doing some kind of lookup for a partial specialisations of std::iterator_traits<T> to see if an // object is an iterator, but that sounds like too much work - std::string s = pVarDecl->getType().getDesugaredType(compiler.getASTContext()).getAsString(); - if (s.find("iterator") != std::string::npos) { + auto t = pVarDecl->getType().getDesugaredType(compiler.getASTContext()); + std::string s = t.getAsString(); + if (s.find("iterator") != std::string::npos + || loplugin::TypeCheck(t).Class("__wrap_iter").StdNamespace()) + { return true; } // std::pair seems to show up in whacky ways in clang's AST. Sometimes it's a class, sometimes it's a typedef, and sometimes _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits