[PATCH] D48205: [analyzer] Assert that nonloc::SymbolVal always wraps a non-Loc-type symbol.

Artem Dergachev via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Jun 25 16:51:08 PDT 2018


NoQ added inline comments.


================
Comment at: lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp:1241
       if (const llvm::APSInt *I =
-              SVB.getKnownValue(State, nonloc::SymbolVal(S)))
+              SVB.getKnownValue(State, SVB.makeSymbolVal(S)))
         return Loc::isLocType(S->getType()) ? (SVal)SVB.makeIntLocVal(*I)
----------------
NoQ wrote:
> george.karpenkov wrote:
> > So what is the difference here? That `SVB.makeSymbolVal` is not always a nonloc?
> That's right; it will be a symbolic region instead.
> 
> It won't affect the result of the calculation though (hopefully) (in the current implementation).
I mean, it will *sometimes* be a symbolic region (when the symbol is of pointer type).


Repository:
  rC Clang

https://reviews.llvm.org/D48205





More information about the cfe-commits mailing list