[cfe-users] Casting assertion failed
don hinton via cfe-users
cfe-users at lists.llvm.org
Sun Jul 31 12:41:53 PDT 2016
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!"'
> (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
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the cfe-users