[cfe-dev] Is it possible to getBody() of basic_string::_M_construct() in libstdc++ 8.3.0?
Artem Dergachev via cfe-dev
cfe-dev at lists.llvm.org
Thu Nov 12 16:52:39 PST 2020
If it's not in the AST, it's not in the translation unit. Try searching
the AST dump, maybe you're looking in the wrong place.
Static analyzer is intended to work more or less correctly regardless of
whether the method is present. Like, it doesn't even have to be libc++
to begin with. But i'd be pretty surprised if the body is there but the
static analyzer can't find it. Most likely something else is going on.
You should be looking for the fully instantiated body, not the original
template, because that's what the static analyzer works with. Clang
duplicates the AST for each template instantiation so it should be there
if it's at all available.
On 11/10/20 12:28 AM, Ding Fei via cfe-dev wrote:
> Hi all!
>
> I would like to know if it's possible to get the method body of
> std::__cxx11::basic_string::_M_construct(size_type, _CharT) ?
>
> The question arises when StaticAnalyzer's ExprEnging::defaultEvalCall()
> tries to inline this method but the CXXMethodDecl node for '_M_construct'
> (and a few other similar members) from the AST has no body attached to it.
>
> The body (templated?) should be in the ASTÂ but is hidden somewhere else,
> otherwise the TU would be incomplete.
>
> Any hint would be appreciated, thanks!
>
> --
> Best Regards
>
> Ding Fei
> E-mail: danix800 at gmail.com <mailto:danix800 at gmail.com>
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20201112/43d17daa/attachment-0001.html>
More information about the cfe-dev
mailing list