[cfe-users] Casting assertion failed

don hinton via cfe-users cfe-users at lists.llvm.org
Sun Jul 31 12:41:53 PDT 2016

Hi Daniel:

This is because Expr derives from Stmt, not the other way around, so
casting a Stmt to an Expr might fail.

Try using dyn_cast<> instead and test for null.


On Sun, Jul 31, 2016 at 3:45 AM, Daniel Kraut via cfe-users <
cfe-users at lists.llvm.org> wrote:

> Hello everyone,
> I am quite desperate right now finding a bug in my application. I am using
> clang API to travel through its AST a do some static analysis - just
> Visitor, no changes. I am getting this:
>  /usr/lib/llvm-3.8/include/llvm/Support/Casting.h:237: typename
> llvm::cast_retty<X, Y*>::ret_type llvm::cast(Y*) [with X = clang::Expr; Y =
> clang::Stmt; typename llvm::cast_retty<X, Y*>::ret_type = clang::Expr*]:
> Assertion `isa<X>(Val) && "cast<Ty>() argument of incompatible type!"'
> failed.
> (SIGABRT) (core dumped ...)
> Some input is fine, some gets this assertion fail. Does anyone have a hint
> what code could raise this assertion fail?
> I'm using g++ to compile my app, no special flags just c++11. I have Clang
> version 3.8.1 binaries - libclang-dev via Synaptic on my Xubuntu and on my
> CentOS I downloaded binaries from web, both gets the same assertion fail.
> Thanks everyone who tries to help,
> Daniel Kraut
> _______________________________________________
> cfe-users mailing list
> cfe-users at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-users/attachments/20160731/6afea91f/attachment.html>

More information about the cfe-users mailing list