Alexander_Droste marked an inline comment as done. ================ Comment at: tools/clang/lib/StaticAnalyzer/Core/MemRegion.cpp:653 @@ +652,3 @@ + llvm::SmallString<2> intValAsString; + IndexInArray.toString(intValAsString); + std::string idx{intValAsString.begin(), intValAsString.end()}; ---------------- xazax.hun wrote: > What will be the content of IndexInArray in case the index is not a concrete > int? Will the above code work at all in that case? In case the index is a > variable do we want to include the name of the variable in the index? Right, `getAs<..::ConcreteInt>()` might return a `nullptr`. What do you think of including the number if it is a `nonloc::ConcreteInt`, the name if it is a `nonloc::SymbolValKind` (`getAs<nonloc::SymbolVal>().getSymbol()`) and else keeping the brackets empty?
================ Comment at: tools/clang/lib/StaticAnalyzer/Core/MemRegion.cpp:656 @@ +655,3 @@ + + ArrayIndices = "[" + idx + "]" + ArrayIndices; + ---------------- xazax.hun wrote: > I do not really like this part. You could either use Twine to avoid some > temporal values (and you could also eliminate the string copy this way) or > you could construct the indices using the reverse of idx and than reverse the > whole string after the loop. So would be invoking `push_back` within and `reverse` after the loop sufficient? http://reviews.llvm.org/D16044 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits