ASDenysPetrov added inline comments.

================
Comment at: clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp:1155-1156
 
-    // TODO: Support SymbolCast. Support IntSymExpr when/if we actually
-    // start producing them.
 
----------------
ASDenysPetrov wrote:
> vsavchenko wrote:
> > ASDenysPetrov wrote:
> > > vsavchenko wrote:
> > > > Do we actually produce them?
> > > You can met SymbolCast here if `evalCast` produced it.
> > > See `SValBuilder::evalCastSubKind(nonloc::SymbolVal...)`:
> > > ```
> > >     if (!Loc::isLocType(CastTy))
> > >       if (!IsUnknownOriginalType || !CastTy->isFloatingType() ||
> > >           T->isFloatingType())
> > >         return makeNonLoc(SE, T, CastTy);
> > > ```
> > > Also my patch will produce a lot of integral cast symbols D103096. You 
> > > are welcome to examine it.
> > In my comment I meant `IntSymExpr`
> Oh, anyway :-)
I think we should remove **ConcreteInt** and and as a consequence 
**IntSymExpr**, **SymIntExpr** in the nearest future. SymbolVal should be 
reworked to store a QualType, a RangeSet and an expression pointer itself. IMO 
SymSymExpr and SymbolVal is sufficient to make any calculations. It may help 
generalize a lot of them. **ConcreteInt** is just a special case for SymbolVal. 
More than that **PointerToMember** can be removed as well, because we would get 
an info being a pointer to member from QualType in this way.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D103317/new/

https://reviews.llvm.org/D103317

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to