necto wrote:

> This sounds plausible and also very disappointing. We do all of that 
> complicated work just to throw it away. So much waste. Is there a way to make 
> it work? I recall, some of the simplify* fns should return SVal. That can 
> represent concrete ints - the outcome of the perfect constrained symbols. -- 
> I just looked it up and `SimpleSValBuilder::simplifySVal` for example, 
> returns SVals, just like `simplifyUntilFixpoint`. So what API do you refer to 
> exactly? What is the flow for dropping this concrete value?

I refer to

```C++
SymbolRef simplify(ProgramStateRef State, SymbolRef Sym) {
  SVal SimplifiedVal = simplifyToSVal(State, Sym);
  if (SymbolRef SimplifiedSym = SimplifiedVal.getAsSymbol())
    return SimplifiedSym;
  return Sym;
}
```
in RangedConstraintManager.cpp

It wraps `simplifyToSVal` that does not discard concrete values. I'll try to 
use `simplifyToSVal` in the 3 places `simplify` is used in and handle concrete 
values there



https://github.com/llvm/llvm-project/pull/210912
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to