<div dir="ltr">Hi Daniel:<div><br></div><div>This is because Expr derives from Stmt, not the other way around, so casting a Stmt to an Expr might fail.  </div><div><br></div><div>Try using dyn_cast<> instead and test for null.</div><div><br></div><div>hth...<br>don</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Jul 31, 2016 at 3:45 AM, Daniel Kraut via cfe-users <span dir="ltr"><<a href="mailto:cfe-users@lists.llvm.org" target="_blank">cfe-users@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hello everyone,<div><br></div><div>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:</div><div><br></div><div> /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.</div><div>(SIGABRT) (core dumped ...)<br></div><div> </div><div>Some input is fine, some gets this assertion fail. Does anyone have a hint what code could raise this assertion fail?</div><div><br></div><div>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.</div><div><br></div><div>Thanks everyone who tries to help,</div><div>Daniel Kraut</div></div>
<br>_______________________________________________<br>
cfe-users mailing list<br>
<a href="mailto:cfe-users@lists.llvm.org">cfe-users@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users</a><br>
<br></blockquote></div><br></div>