vsavchenko added inline comments.
================ Comment at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h:293-296 + SymbolRef Sym = Operand; + while (isa<SymbolCast>(Sym)) + Sym = cast<SymbolCast>(Sym)->Operand; + return Sym; ---------------- ASDenysPetrov wrote: > vsavchenko wrote: > > > Do you think the recursive call is better than the loop? But, I guess, I see > your point. You option could be safer if we had another implementation of the > virtual method. Or you think such alike cast symbol is possible in the > future? Well, for now `ignoreCasts` doesn't make sense to any other `Expr` > successors. Oh, wait, why is it even virtual? I don't think that it should be virtual. Are similar functions in `Expr` virtual? And I think that this implementation should live in `SymExpr` directly. Then it would look like: ``` if (const SymbolCast *ThisAsCast = dyn_cast<SymbolCast>(this)) { return ThisAsCast->ignoreCasts(); } return this; ``` CHANGES SINCE LAST ACTION https://reviews.llvm.org/D103096/new/ https://reviews.llvm.org/D103096 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits