[PATCH] D16044: getVariableName() for MemRegion

Gábor Horváth via cfe-commits cfe-commits at lists.llvm.org
Wed Feb 3 13:13:09 PST 2016


xazax.hun added inline comments.

================
Comment at: tools/clang/lib/StaticAnalyzer/Core/MemRegion.cpp:662
@@ +661,3 @@
+    else if (auto SV =
+        ER->getIndex().getAs<clang::ento::nonloc::SymbolVal>()) {
+        llvm::SmallString<8> buf;
----------------
Alexander_Droste wrote:
> Alexander_Droste wrote:
> > xazax.hun wrote:
> > > These are the only cases that can occur? So it is not possible to have a loc index? Maybe we could get the value for loc and nonloc ConcreteInts and use getVariableName for everzthing else? Would that wok?
> > `getIndex()` returns a `nonloc` and `loc` is in no subclass relation to `nonloc`.
> > Therefore, `getIndex()` cannot be a `loc` type.
> > 
> > There are actually 5 `nonloc` subclasses but I assumed 
> > that it only makes sense to check for `SymbolVal` and 
> > `ConcreteInt`. 
> > http://clang.llvm.org/doxygen/classclang_1_1ento_1_1NonLoc.html
> > 
> > So would you suggest to only check for `ConcreteInt`
> > and call `getVariableName()` recursively if it isn't one?
> If we want to call `getVariableName` recursively, should we strip the single quotes then?
> Else we would get something like `'x['a']['b']'`. What do you think?
I agree. I think stripping is the way to go.


http://reviews.llvm.org/D16044





More information about the cfe-commits mailing list