[PATCH] D40793: [analyzer] Improve SymbolicRegion::dump() for heap pointers.
    Artem Dergachev via Phabricator via cfe-commits 
    cfe-commits at lists.llvm.org
       
    Mon Dec  4 10:34:07 PST 2017
    
    
  
NoQ created this revision.
Herald added subscribers: cfe-commits, rnkovacs.
Because for every symbol `$x` we can construct exactly two different `MemRegion`s that both get dumped as `SymRegion{$x}`, and i didn't bother fixing it for years, i wanted to at least make the problem apparent. With this patch, the unknown-memory-spaced symbolic region remains `SymRegion{$x}`, while the heap-based memory region is dumped as `HeapSymRegion{$x}`.
Does anybody want me to add tests for this debug print?
Repository:
  rC Clang
https://reviews.llvm.org/D40793
Files:
  lib/StaticAnalyzer/Core/MemRegion.cpp
Index: lib/StaticAnalyzer/Core/MemRegion.cpp
===================================================================
--- lib/StaticAnalyzer/Core/MemRegion.cpp
+++ lib/StaticAnalyzer/Core/MemRegion.cpp
@@ -472,6 +472,8 @@
 }
 
 void SymbolicRegion::dumpToStream(raw_ostream &os) const {
+  if (isa<HeapSpaceRegion>(getSuperRegion()))
+    os << "Heap";
   os << "SymRegion{" << sym << '}';
 }
 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D40793.125367.patch
Type: text/x-patch
Size: 390 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20171204/86464c4c/attachment.bin>
    
    
More information about the cfe-commits
mailing list